[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