[Oberon] PO2013 - Texts

JR joerg.straube at iaeth.ch
Mon Jun 1 09:08:38 CEST 2020


If you look at Texts.Mod you see this definition
 (* TextBlock = TextTag offset run {run} "0" len {AsciiCode}.
    run = fnt [name] col voff len. *)
You see, ProjectOberon 2013 implements a sligthly different text format. This is one of the reasons why you can’t read LinzOberon text files 1:1 in ProjectOberon.
Another reason is that the „TextTag“ is different.

Adding text elems (as in LinzOberon) can be done. The consequence of this is twofold: firstly, we have to think of compatibility issues just discussed above. Secondly, the code size of Texts and TextFrames grows quite a bit to handle the text elems and with it the variable line height (currently, all lines have a constant height „lsp“). With only 1 MB of overall memory, the increase in size and complexity of Texts and TextFrames was thought to be an overkill. 
Keep in mind that Texts and TextFrames (two of the key modules of Oberon as almost everything you see on screen is defined by these two modules) are even today in its simpler form not easy to understand for beginners. Text elems add quite a twist to it. As we now are able to address more than 1 MB of (D)RAM, it might be worth porting text elems.


> Am 30.05.2020 um 16:18 schrieb Skulski, Wojciech <skulski at pas.rochester.edu>:
> Andreas:
> does the "type field" signal the intent to enrich the Text with an active element capability, like Oberon V4 did?
> Thanks,
> Wojtek
> ==============================================
> As per syntax defined in the book Project Oberon 2013 and the comment above
>    TextSection = ident header {char}.              # ident = TextTag
>    header = type offset run {run} null length.    # type = “1"
>    run = font [name] color offset length.
> the “1” stands for the “type” field, which is supposed to by a “type discriminator”.
> However, there is no “1” in the actual file. I.e., it’s just not implemented
> in PO 2013. Note: It wasn’t implemented in Ceres-Oberon either.
> --
> Oberon at lists.inf.ethz.ch mailing list for ETH Oberon and related systems
> https://lists.inf.ethz.ch/mailman/listinfo/oberon

More information about the Oberon mailing list