[Oberon] PO2013 - CopyBlock

Tomas Kral thomas.kral at email.cz
Thu Jul 9 14:52:10 CEST 2020

> What is special with horizontal scrolling?

I can see three cases for horizontal..

[1] n=0 - means simply no shift left nor right
simple horizontal case, on word boundary - works

[2] n#0 - each word is shifted {left|right}
n<0 (*visually right*) & dx > sx - works
n>0 (*visually left*) & dx < sx - works

[3] n#0 - each word is shifted {left|right}
n<0 (*visually right*) & dx < sx - not
n>0 (*visually left*) & dx > sx - not

case 3 (fairly common) does not work
[my] current code overwrite words, as it goes along
from lower to higher addresses or vice versa

diagonal has no problem, as we are minimum by a single line
higher or lower from source

to cover case 3, need to reverse scan direction
and apply different masks on {left|right} edge to case 2

in the pict attached, working 1,2 and/non working case 3 

Tomas Kral <thomas.kral at email.cz>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: horizontal.png
Type: image/png
Size: 26954 bytes
Desc: not available
URL: <http://lists.inf.ethz.ch/pipermail/oberon/attachments/20200709/86945325/attachment.png>

More information about the Oberon mailing list