[Oberon] FPGA - Inline Patterns
Tomas Kral
thomas.kral at email.cz
Tue Apr 25 13:19:13 CEST 2017
Hi,
I am toying with ETH `Bitmaps.Mod' now compiled under RISC/FPGA, and
partly ported, supporting so far B&W Copy, CopyBlock.
$..$ helps with me testing Bitmaps.CopyPattern, I pass various patterns
defined in Display.Mod to it.
In various languages, FORTRAN, BASIC, there is DATA statement. I
understand these are frowned upon in Wirthian true language sense.
But If I needed a persistent constant block of data, could I use
CONST somehow? What is the recommended way?
Tomas
On Mon, 24 Apr 2017 20:34:29 +0200
Andreas Pirklbauer <andreas_pirklbauer at yahoo.com> wrote:
> A string enclosed by $ . . . $, as is used in modules Display or
> Input for example, is called HexString (see ORS.HexString). HexString
> is a little feature that elegantly addressed a small problem, but it
> was never intended to be widely used. That’s why it is not published
> in the language report - which means that it *is* officially not part
> of the language. But if you know what you are doing, you can - it
> likely won’t go away. And if it does, well, then you’d notice ;-)
> Andreas
>
> ----------------------------------------------------------------------------------
> > Jörg joerg.straube at iaeth.ch Mon Apr 24 18:10:34 CEST 2017
> > Officially, the Oberon language only offers expression for constant
> > "array of chars”, called string constants.
> > The constant "array of bytes" you are refering to is a feature of
> > the compiler, not described in the language as far as I know.
>
> > It is also used eg. in the keyboard driver to translate keyboard
> > strokes to chars.
>
> > br
> > Jörg
>
> ----------------------------------------------------------------------------------
>
> > Am 24.04.2017 um 17:53 schrieb Tomas Kral <thomas.kral at email.cz
> > <https://lists.inf.ethz.ch/mailman/listinfo/oberon>>:
> >
> > Hi,
> >
> > I have just discovered this interesting and useful construct, found
> > in `Display.Mod', defining a pattern.
> >
> > block := SYSTEM.ADR($0808 FFFF C3C3 C3C3 FFFF$);
> >
> > pattern = w(byte) h(byte) {raster(byte)}
> >
> > block* is exported, so can also be used in user modules.
> >
> > Tomas
> > --
> > Oberon at lists.inf.ethz.ch
> > <https://lists.inf.ethz.ch/mailman/listinfo/oberon> mailing list
> > for ETH Oberon and related systems
> > https://lists.inf.ethz.ch/mailman/listinfo/oberon
> > <https://lists.inf.ethz.ch/mailman/listinfo/oberon>
>
More information about the Oberon
mailing list