<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>If you will have questions about BlackBox, you are welcome to
      this board<br>
    </p>
    <p><a class="moz-txt-link-freetext" href="https://community.blackboxframework.org/">https://community.blackboxframework.org/</a></p>
    <p>we also did chat recently<br>
    </p>
    <p><a class="moz-txt-link-freetext" href="https://matrix.to/#/#blackbox:matrix.org">https://matrix.to/#/#blackbox:matrix.org</a><br>
    </p>
    <p>It is more easy to share questions and screenshot sometimes in
      chat format.<br>
    </p>
    <p><br>
    </p>
    <p>Best regards,</p>
    <p>Ivan Denisov<br>
    </p>
    <p><br>
    </p>
    <div class="moz-cite-prefix">25.01.2022 21:52, Ala'a Mohammad пишет:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAJ--6maZG4io69+uN9zSKQgeKOXbS4vRuofPM57OEp-SuarRjw@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">Hi,
        <div><br>
        </div>
        <div>I do not want to start multiple rabbit holes. But here I
          go. There is another version of BlackBox which is based on the
          'Base' from the link given. Its url is <a
            href="https://blackbox.oberon.org/" moz-do-not-send="true"
            class="moz-txt-link-freetext">https://blackbox.oberon.org/</a>.
          I did not dig deeper, since I already have invested time in
          other one, but it is on my 'explore' list.</div>
        <div>One clear distinction is the multiple documents as multiple
          windows (in contrast to the BlackBox at <a
            href="https://blackboxframework.org/" moz-do-not-send="true"
            class="moz-txt-link-freetext">https://blackboxframework.org/</a>
          , which has the multiple documents inside one Window).</div>
        <div><br>
        </div>
        <div>HiH and Have fun.</div>
        <div><br>
        </div>
        <div>Regards,</div>
      </div>
      <br>
      <div class="gmail_quote">
        <div dir="ltr" class="gmail_attr">On Tue, Jan 25, 2022 at 12:14
          PM Joe Turner <<a href="mailto:medianjoe@mailfence.com"
            moz-do-not-send="true" class="moz-txt-link-freetext">medianjoe@mailfence.com</a>>
          wrote:<br>
        </div>
        <blockquote class="gmail_quote" style="margin:0px 0px 0px
          0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
          <div style="font-family:arial;font-size:13px">
            <div>Hi Pablo,</div>
            <div>Many thanks for the links. I wasn't aware of Blackbox
              or component Pascal. I use Linux but it seems to work
              flawlessly with Wine. The book looks really good too. <br>
            </div>
            <div>Joe<br>
            </div>
            <br>
            <div>January 24, 2022 8:19:02 PM CET Pablo Cayuela <<a
                href="mailto:pablo.cayuela@gmail.com" target="_blank"
                moz-do-not-send="true" class="moz-txt-link-freetext">pablo.cayuela@gmail.com</a>>
              wrote:
              <blockquote type="cite">
                <div dir="ltr"><br>
                  <br>
                  On Mon, Jan 24, 2022 at 11:14 AM Joe Turner <<a
                    href="mailto:medianjoe@mailfence.com"
                    target="_blank" moz-do-not-send="true"
                    class="moz-txt-link-freetext">medianjoe@mailfence.com</a>>
                  wrote:<br>
                  ><br>
                  > I'm working through the book "Into the Realm of
                  Oberon" which is written for Oberon-2. I can't figure
                  out how to translate the following program into
                  Oberon-07 (I'm using the OBNC compiler):<br>
                  ><br>
                  > MODULE case;<br>
                  > IMPORT In,Out;<br>
                  ><br>
                  > VAR countVowels: INTEGER; ch: CHAR;<br>
                  ><br>
                  > BEGIN<br>
                  >   In.Open;<br>
                  >   countVowels:=0;<br>
                  >   LOOP<br>
                  >     In.Char(ch);<br>
                  >     IF ~In.Done THEN EXIT END;<br>
                  >     CASE ch OF<br>
                  >       "a", "e", "i", "o", "u",<br>
                  >       "A", "E","I","O","U": INC(countVowels)<br>
                  >     ELSE<br>
                  >     END;<br>
                  >   END;<br>
                  >   Out.Int(countVowels,0);<br>
                  >   Out.String(" vowels read.");Out.Ln;<br>
                  > END case.<br>
                  ><br>
                  > Oberon-07 doesn't allow LOOP, EXIT, or ELSE in
                  CASE.<br>
                  > Thanks in advance for any help.<br>
                  <div>></div>
                  <div><br>
                  </div>
                  <div>
                    <div>Hi Joe,<br>
                    </div>
                    <div>One way for you to use Oberon-2 syntax is to
                      employ BlackBox Component Pascal Environment:</div>
                    <div><a
                        href="https://blackboxframework.org/index.php?cID=home,en-us"
                        target="_blank" moz-do-not-send="true"
                        class="moz-txt-link-freetext">https://blackboxframework.org/index.php?cID=home,en-us</a></div>
                    <div>One public domain good book for practicing with
                      BB CP is this:</div>
                    <div><a
                        href="https://cslab.pepperdine.edu/warford/ComputingFundamentals/"
                        target="_blank" moz-do-not-send="true"
                        class="moz-txt-link-freetext">https://cslab.pepperdine.edu/warford/ComputingFundamentals/</a></div>
                    <div>And its resources:</div>
                    <div><a
                        href="http://www.zinnamturm.eu/downloadsOS.htm#Pbox"
                        target="_blank" moz-do-not-send="true"
                        class="moz-txt-link-freetext">http://www.zinnamturm.eu/downloadsOS.htm#Pbox</a></div>
                    <div><br>
                    </div>
                    <div>Another way to use Oberon-2 syntax is to employ
                      Oberon System 3 with Gadgets under Windows or
                      Linux:</div>
                    <div><a
href="https://github.com/pcayuela/oldftpETHZOberon/tree/master/System3/Win95NT"
                        target="_blank" moz-do-not-send="true"
                        class="moz-txt-link-freetext">https://github.com/pcayuela/oldftpETHZOberon/tree/master/System3/Win95NT</a></div>
                    <div><a
href="https://github.com/pcayuela/oldftpETHZOberon/tree/master/System3/Unix"
                        target="_blank" moz-do-not-send="true"
                        class="moz-txt-link-freetext">https://github.com/pcayuela/oldftpETHZOberon/tree/master/System3/Unix</a></div>
                    <div><br>
                    </div>
                    <div>In BlackBox your program counts the vowels on
                      the viewer from where it is called. <br>
                    </div>
                    <div>In Oberon System 3, it counts the vowels after
                      the command line in any viewer.</div>
                    <div>I've only modified your program puting the
                      executable part inside a procedure to call it from
                      any viewer inside of Oberon System 3 or BlackBox
                      CP:</div>
                    <div><br>
                    </div>
                    <div>MODULE Case;<br>
                      IMPORT In,Out;<br>
                      <br>
                      VAR countVowels: INTEGER; ch: CHAR;<br>
                      <br>
                      PROCEDURE Vowcount *;<br>
                      BEGIN<br>
                        In.Open;<br>
                        countVowels:=0;<br>
                        LOOP<br>
                          In.Char(ch);<br>
                          IF ~In.Done THEN EXIT END;<br>
                          CASE ch OF<br>
                            "a", "e", "i", "o", "u",<br>
                            "A", "E","I","O","U": INC(countVowels)<br>
                          ELSE<br>
                          END;<br>
                        END;<br>
                        Out.Int(countVowels,0);<br>
                        Out.String(" vowels read.");Out.Ln;<br>
                      END Vowcount;<br>
                      END Case.</div>
                  </div>
                  <div><br>
                  </div>
                  <div>Best regards,</div>
                  <div>Prof Pablo Cayuela</div>
                  <div>Argentina</div>
                  <div><br>
                  </div>
                </div>
                <pre style="font-size:13px">--
<a href="mailto:Oberon@lists.inf.ethz.ch" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">Oberon@lists.inf.ethz.ch</a> mailing list for ETH Oberon and related systems
<a href="https://lists.inf.ethz.ch/mailman/listinfo/oberon" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">https://lists.inf.ethz.ch/mailman/listinfo/oberon</a>
</pre>
              </blockquote>
            </div>
          </div>
          -- Sent with <a href="https://mailfence.com" target="_blank"
            moz-do-not-send="true" class="moz-txt-link-freetext">https://mailfence.com</a>
          Secure and private email
          --<br>
          <a href="mailto:Oberon@lists.inf.ethz.ch" target="_blank"
            moz-do-not-send="true" class="moz-txt-link-freetext">Oberon@lists.inf.ethz.ch</a>
          mailing list for ETH Oberon and related systems<br>
          <a href="https://lists.inf.ethz.ch/mailman/listinfo/oberon"
            rel="noreferrer" target="_blank" moz-do-not-send="true"
            class="moz-txt-link-freetext">https://lists.inf.ethz.ch/mailman/listinfo/oberon</a><br>
        </blockquote>
      </div>
      <br>
      <fieldset class="moz-mime-attachment-header"></fieldset>
      <pre class="moz-quote-pre" wrap="">--
<a class="moz-txt-link-abbreviated" href="mailto:Oberon@lists.inf.ethz.ch">Oberon@lists.inf.ethz.ch</a> mailing list for ETH Oberon and related systems
<a class="moz-txt-link-freetext" href="https://lists.inf.ethz.ch/mailman/listinfo/oberon">https://lists.inf.ethz.ch/mailman/listinfo/oberon</a>
</pre>
    </blockquote>
  </body>
</html>