[Oberon] FPGA - Bitmaps.Mod

Tomas Kral thomas.kral at email.cz
Wed Apr 5 11:26:28 CEST 2017


Hi,

As part of my exercise I have converted ETH `Bitmaps.Mod' to V07. It
should be the basis for a bit map editor - `Paint.Mod' - next exercise
of mine.

It is far from perfect, just made it to compile under V07, without
much thoughts.  

Few notes>>>

[a] Bitmaps.DisplayBlock* is just copied from Display.CopyBlock*
with source and destination addresses modified as thus:

sa := B.address + u0*4 + sy*128; da := Display.Base + v0*4 + dy*128;

I am looking for a better idea, as I believe bitmap needs to be clipped
to fit into a visible area of a target frame.

[b] New bitmap is allocated as a constant buffer
CONST
  BufSize = 10000H;
...
BEGIN
  NEW(buffer)
END Bitmaps.

I am looking for a better way, as I believe the size needed can be
calculated from Width, Height of the bitmap. 

TYPE
  Bitmap* = POINTER TO BitmapDesc;
  BitmapDesc* = RECORD  (* cf. Display.DisplayBlock  *)
    width*, height*, depth*: INTEGER;  (* offset 0, 2, 4 *)
    wth*, address*: LONGINT;  (* offset 8, 12 *)
    size: LONGINT
END;

[c] Bitmaps are allocated as an array of CHAR's. Is it a good idea to
use BYTE's instead?

P.S. I could enclose the whole module, but I am not sure if it is
allowed by the list server.

Many thanks
Tomas


More information about the Oberon mailing list