[Oberon] System5 - Optimised CopyBlock()

Tomas Kral thomas.kral at email.cz
Fri Feb 22 16:52:27 CET 2019


On Fri, 22 Feb 2019 16:11:43 +0100
Jörg <joerg.straube at iaeth.ch> wrote:

> As hint: My structure looks like this:

Joerg, thank you, will revisit my horizontal code, soon.
Meanwhile, I stubbed out (dy = sy) case, so I now have...

PROCEDURE CopyBlock*(sx, sy, w, h, dx, dy, mode: INTEGER);
BEGIN IF dy = sy THEN INC(dy) END ; (*not implemented*)
...
IF dx = sx THEN (*vertical scroll*)
  (*use of SYSTEM.COPY()*)
ELSIF dy = sy THEN (*not implemented*)
ELSIF n <= 0 THEN (*shift diagonal right*)
  (*use of ROR*)
ELSE (*n > 0 shift diagonal left*)
  (*use of ROR*)
END ;
...
END CopyBlock;

I know ugly, but will make do until resolved. Horizontal move does not
seem as frequent as vertical one anyway, right?

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


More information about the Oberon mailing list