[Oberon] System-V - Frame Clipping

Tomas Kral thomas.kral at email.cz
Mon Mar 4 15:39:39 CET 2019


On Mon, 4 Mar 2019 11:28:31 +0100
Andreas Pirklbauer <andreas_pirklbauer at yahoo.com> wrote:

> mask := SYSTEM.VAL(SET, ASR(7FFFFFFFH, 31-x));

Hi Andreas,

Thank you, will toy with your line code.

The mask above is interesting, not sure I get the idea yet, as I still
use older version of D.CopyPattern();

Only thinking about complement 31-x, if could be coded as -x?

mask := SYSTEM.VAL(SET, ASR(7FFFFFFFH, -(x) ));

As display buffer is reversed like in the mirror, so
shift right is visually moving pixels left on the screen and vice versa.

7FFFFFFFH = binary all ones, except MSB, are shifted left, x, 31
complement times.

As LSL, ASR, ROR, are allowed on SETs, I am thinking of an
equivalent.

mask := ASR(-{31}, -(x)); but I do fear is not the same thing.

Apologies for analysing too much :-)

Thank you.

-- 
Tomas Kral <thomas.kral at email.cz>


More information about the Oberon mailing list