[Oberon] FPGA - Bitmap Replace Horizontal Line

Jörg joerg.straube at iaeth.ch
Mon May 22 11:14:05 CEST 2017

Hi Tomas

These are the definitions Oberon uses
0 = background = black
1 = foreground = white

Paint   = src AND pat (1 in pattern is interpreted as "white")
Invert  = src XOR pat
Replace = draw pattern with "col"
          black: src AND ~pat
          white: src AND pat   (= paint)

-----Original Message-----
From: Oberon [mailto:oberon-bounces at lists.inf.ethz.ch] On Behalf Of Tomas
Sent: Montag, 22. Mai 2017 10:34
To: Oberon@ <lists.inf.ethz.ch.Oberon at lists.inf.ethz.ch>
Subject: [Oberon] FPGA - Bitmap Replace Horizontal Line


I was scratching my head over how to implement the `replace' 
mode. Seems more complicated than `invert' mode, which only applies `/'
set operator in place of `+' in the PaintHLine.Mod (see earlier post)

I thought to erase destination rectangle with $0000$ first than paint
bitmap in the cleared area.

To erase destination rectangle, appears to be done in two steps, paint
black rectangle, then invert it.

The replace mode can be done in three steps:
[a] paint black rectangle
[b] invert black rectangle
[c] paint bitmap in the cleared area

The above replace mode performs 3 times worse to Paint/Invert modes.

What do you think?

Tomas Kral <thomas.kral at email.cz>
Oberon at lists.inf.ethz.ch mailing list for ETH Oberon and related systems

More information about the Oberon mailing list