<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">> On Tue Oct 10 14:28:56 CEST 2017Thomas Kral wrote:</span></font><div class=""><span style="font-family: monospace; white-space: pre-wrap;" class="">></span></div><div class=""><span style="font-family: monospace; white-space: pre-wrap;" class="">> </span><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">After re-reading chapter 14.1. of PO2013 plus Andreas’s</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">> git repo `building-tools', I wish to do an exercise of</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">> initial system boot over serial line.</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">> ...</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">> It would be interesting to recreate Oberon0.Mod from</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">> what we know it does accomplish, I am also thinking to</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">> enrich it with some test commands to aid implementing</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">> of 4-bit raster ops, if not too silly an idea?
>
> Many thanks
> Tomas Kral <thomas.kral at email.cz></span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">> </span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class=""><br class=""></span></font></div><div class=""><span style="font-family: monospace; white-space: pre-wrap;" class="">I have not included an Oberon 2013 </span><span style="white-space: pre-wrap; font-family: monospace;" class="">version </span><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">of </span></font><span style="white-space: pre-wrap; font-family: monospace;" class="">Oberon0.Mod yet, mainly</span></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">because I don’t need it. </span></font><span style="white-space: pre-wrap; font-family: monospace;" class="">But it would be fairly </span><span style="white-space: pre-wrap; font-family: monospace;" class="">easy to recreate, </span><span style="white-space: pre-wrap; font-family: monospace;" class="">if you</span></div><div class=""><span style="white-space: pre-wrap; font-family: monospace;" class="">already have </span><span style="white-space: pre-wrap; font-family: monospace;" class="">a suitable </span><span style="font-family: monospace; white-space: pre-wrap;" class="">partner program running on a “host” system</span></div><div class=""><span style="font-family: monospace; white-space: pre-wrap;" class="">that hosts your boot file (in the </span><span style="white-space: pre-wrap; font-family: monospace;" class="">stream format described in my</span></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">repo), such as module ORC.Mod which you can get from</span></font></div><div class=""><span style="font-family: monospace; white-space: pre-wrap;" class=""><br class=""></span></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class=""><a href="http://www" class="">http://www</a>.<a href="http://inf.ethz.ch/personal/wirth/ProjectOberon/Sources/ORC.Mod.txt" class="">inf.ethz.ch/personal/wirth/ProjectOberon/Sources/ORC.Mod.txt</a></span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class=""><br class=""></span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">You can quite literally program “the inverse” of this program, e.g.,</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class=""><br class=""></span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class=""><br class=""></span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">MODULE Oberon0; (*cmd interpreter downloaded to target system via serial line*)</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">  ....</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class=""> </span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">  PROCEDURE RS*; (*receive, then send sequence of items (inverse of ORC.SR)*)</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">    ...</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">  BEGIN</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">    RecInt(x);</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">    REPEAT</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">      IF x = ... THEN</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">      ELSIF x = ... THEN</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">      ELSIF x = ... THEN</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">      …</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">      END ;</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">      RecInt(x)</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">    UNTIL x = 0;</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">  END RS;</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class=""><br class=""></span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">END Oberon0.</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class=""><br class=""></span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class=""><br class=""></span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class=""><br class=""></span></font></div></body></html>