<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>