<html><head></head><body><div style="color:#000; background-color:#fff; font-family:HelveticaNeue-Light, Helvetica Neue Light, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:13px"><div id="yui_3_16_0_1_1453793693200_7664" dir="ltr"><span style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;" id="yui_3_16_0_1_1453793693200_7666" class="">Hi Roel,</span><br></div><div id="yui_3_16_0_1_1453793693200_7664" dir="ltr"><span style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;" class=""><br></span></div><div id="yui_3_16_0_1_1453793693200_7664" dir="ltr"><span style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;" class=""><br></span></div><div id="yui_3_16_0_1_1453793693200_7664" dir="ltr"><span style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;" class="" id="yui_3_16_0_1_1453793693200_9674">The idea to make Experimental Oberon co-exist with Original Oberon is a good one.</span></div><div id="yui_3_16_0_1_1453793693200_7664" dir="ltr"><span style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;" class=""><br></span></div><div id="yui_3_16_0_1_1453793693200_7664" dir="ltr"><span style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;" class=""><br></span></div><div id="yui_3_16_0_1_1453793693200_7664" dir="ltr"><span style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;" class="" id="yui_3_16_0_1_1453793693200_7723">These are just a few hobby experiments that I started back around 1990 on a Ceres computer and that could now be moved forward to Oberon 2013, now that good emulators are available on modern computers. But even on Ceres (whose clock speed was measured in MHz and not in GHz), there was very little flickering on the screen. But one has to program for it, e.g. no redrawing of lines when the line space of a line doesn't in change. If you want you can further increase the efficiency of Insert and Delete, by counting the total deltas (dy) and readjust lines only when the <i id="yui_3_16_0_1_1453793693200_9522">sum</i> of all deltas is different from zero. However, this would be another 50 lines or so of code and I decided it's (probably) not worth the effort (at least on modern computers there would be no visible difference). Already, 200 lines represents about 20% of TextFrames..</span></div><div id="yui_3_16_0_1_1453793693200_7664" dir="ltr"><span style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;" class=""><br></span></div><div id="yui_3_16_0_1_1453793693200_7664" dir="ltr"><br></div><div id="yui_3_16_0_1_1453793693200_7664" dir="ltr"><span style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;" class="" id="yui_3_16_0_1_1453793693200_7975">As a side comment, I also have a version of Original Oberon with a different Insert operation which, on the average, is about 25% faster than Original Oberon (not included in Experimental Oberon though).. On Ceres the difference was nicely visible. In Original Oberon, some lines are first overwritten by the newly inserted lines, and later redisplayed which means that the (raster) block move (CopyBlock) in the middle can't move a very large area in the frame buffer. The new code first uses the block move to adjust reusable lines, and then only displays individual lines in the cleared-up gap area. Surprising that this wasn't caught back then. The slower code was published.<br></span></div><div id="yui_3_16_0_1_1453793693200_7664" dir="ltr"><span style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;" class=""><br></span></div><div id="yui_3_16_0_1_1453793693200_7664" dir="ltr"><span style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;" class=""><br></span></div><div id="yui_3_16_0_1_1453793693200_7664" dir="ltr"><span style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;" class="" id="yui_3_16_0_1_1453793693200_10033">Andreas</span></div><div class="qtdSeparateBR" id="yui_3_16_0_1_1453793693200_7654"><br></div><div class="yahoo_quoted" id="yui_3_16_0_1_1453793693200_7658" style="display: block;">  <div style="font-family: HelveticaNeue-Light, Helvetica Neue Light, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 13px;" id="yui_3_16_0_1_1453793693200_7657"> <div style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;" id="yui_3_16_0_1_1453793693200_7656"> <div dir="ltr" id="yui_3_16_0_1_1453793693200_7655"> <font size="2" face="Arial" id="yui_3_16_0_1_1453793693200_7659"> <hr size="1" id="yui_3_16_0_1_1453793693200_9653"> <b id="yui_3_16_0_1_1453793693200_10035"><span style="font-weight:bold;" id="yui_3_16_0_1_1453793693200_10034">From:</span></b> R. P. de Jong <rdjong@mac.com><br> <b><span style="font-weight: bold;">To:</span></b> Andreas Pirklbauer <andreas_pirklbauer@yahoo.com>; ETH Oberon and related systems <oberon@lists.inf.ethz.ch> <br> <b id="yui_3_16_0_1_1453793693200_10037"><span style="font-weight: bold;" id="yui_3_16_0_1_1453793693200_10036">Sent:</span></b> Tuesday, January 26, 2016 2:22 AM<br> <b id="yui_3_16_0_1_1453793693200_10039"><span style="font-weight: bold;" id="yui_3_16_0_1_1453793693200_10038">Subject:</span></b> Re: [Oberon] Experimental Oberon released<br> </font> </div> <div class="y_msg_container" id="yui_3_16_0_1_1453793693200_7660"><br>Hi Andreas,<br clear="none"><br clear="none">I just have tried out your "Experimental Oberon" in Oberon Workstation.<br clear="none">This is really a nice piece of work! The "live scrolling" is very smooth on the 80 Mc/s simulated RISC5. It even does not get "jerky" if set 20 Mc/s. Nice touch also that the scrolling speed can be chosen by dragging more to the right.<br clear="none">I have made a version of your files in which all the module names, commands etc. are renamed with the prefix "i" (takes the least space in menus). That way Experimental Oberon can co-exist with the standard Project Oberon in the same directory and booted into either one without changing any file.<br clear="none">Thanks for publishing this, and the professional documentation!<br clear="none"><br clear="none">Roel P. de Jong<br clear="none"><br clear="none"><div class="yqt5160409425" id="yqtfd38549"><br clear="none">> On 23 Jan, 2016, at 13:16 , Andreas Pirklbauer <<a shape="rect" ymailto="mailto:andreas_pirklbauer@yahoo.com" href="mailto:andreas_pirklbauer@yahoo.com" id="yui_3_16_0_1_1453793693200_9986">andreas_pirklbauer@yahoo.com</a>> wrote:<br clear="none">> <br clear="none">> An experimental version of Original Oberon 2013 (called "Experimental Oberon") has been released on GitHub:<br clear="none">> <br clear="none">> <a shape="rect" href="https://github.com/andreaspirklbauer/Oberon-experimental" target="_blank">https://github.com/andreaspirklbauer/Oberon-experimental</a><br clear="none">> <br clear="none">> Installation instructions for Experimental Oberon are provided in the README file:<br clear="none">> <br clear="none">> <a shape="rect" href="https://github.com/andreaspirklbauer/Oberon-experimental/blob/master/README.md" target="_blank" id="yui_3_16_0_1_1453793693200_9990">https://github.com/andreaspirklbauer/Oberon-experimental/blob/master/README.md</a><br clear="none">> <br clear="none">> A document describing the differences between Experimental Oberon and Original Oberon can be found in the Documentation folder:<br clear="none">> <br clear="none">> <a shape="rect" href="https://github.com/andreaspirklbauer/Oberon-experimental/blob/master/Documentation/DIFFERENCES-between-Experimental-Oberon-and-Original-Oberon.pdf" target="_blank">https://github.com/andreaspirklbauer/Oberon-experimental/blob/master/Documentation/DIFFERENCES-between-Experimental-Oberon-and-Original-Oberon.pdf</a><br clear="none">> <br clear="none">> The Documentation folder also contains a few demo videos (screen recordings), for example:<br clear="none">> <br clear="none">> <a shape="rect" href="https://github.com/andreaspirklbauer/Oberon-experimental/blob/master/Documentation/DemoMultipleVirtualDisplays.mov" target="_blank">https://github.com/andreaspirklbauer/Oberon-experimental/blob/master/Documentation/DemoMultipleVirtualDisplays.mov</a><br clear="none">> <br clear="none">> <a shape="rect" href="https://github.com/andreaspirklbauer/Oberon-experimental/blob/master/Documentation/DemoOberonContinuousFractionalLineScrollVariableLineSpace.mov" target="_blank">https://github.com/andreaspirklbauer/Oberon-experimental/blob/master/Documentation/DemoOberonContinuousFractionalLineScrollVariableLineSpace.mov</a><br clear="none">> <br clear="none">> If your browser cannot display these videos (or if GitHub prevents you from viewing such large files), you can click on the 'Raw' button to download the videos to your computer.<br clear="none">> <br clear="none">> The source code of Experimental Oberon can be found in the Sources folder:<br clear="none">> <br clear="none">> <a shape="rect" href="https://github.com/andreaspirklbauer/Oberon-experimental/tree/master/Sources" target="_blank">https://github.com/andreaspirklbauer/Oberon-experimental/tree/master/Sources</a><br clear="none">> <br clear="none">> Note: This version of Oberon has been released for purely experimental (and hobby) purposes. You can freely re-use it so long as you state the origin of the code.<br clear="none">> <br clear="none">> Andreas P.</div>> --<br clear="none">> <a shape="rect" ymailto="mailto:Oberon@lists.inf.ethz.ch" href="mailto:Oberon@lists.inf.ethz.ch" id="yui_3_16_0_1_1453793693200_9989">Oberon@lists.inf.ethz.ch</a> mailing list for ETH Oberon and related systems<br clear="none">> <a shape="rect" href="https://lists.inf.ethz.ch/mailman/listinfo/oberon" target="_blank">https://lists.inf.ethz.ch/mailman/listinfo/oberon</a><div class="yqt5160409425" id="yqtfd77452"><br clear="none"></div><br><br></div> </div> </div>  </div></div></body></html>