[Oberon] PO2013 - CopyBlock
Jörg
joerg.straube at iaeth.ch
Thu Jul 9 17:28:52 CEST 2020
Tomas
Your right, there is indeed an error in the original CopyBlock().
I will send a correction to NW.
br
Jörg
Am 09.07.20, 14:52 schrieb "Oberon im Auftrag von Tomas Kral" <oberon-bounces at lists.inf.ethz.ch im Auftrag von thomas.kral at email.cz>:
> 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>
--
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