| 1234567891011121314151617181920212223242526272829303132 |
- DEFINITION MODULE Memory ;
- (* MC64 virtual machine memory: a single linear byte array.
- Machine addresses (IP, SP, FP, GP, OFP) are LONGCARD offsets
- into this array. No host allocation is performed. *)
- EXPORT QUALIFIED MaxMem, Init, ArenaBase, TopOfMemory, heapPointer,
- ReadByte, WriteByte, ReadSlot, WriteSlot, ReadWord, WriteWord,
- ReadLong, WriteLong, CopyBytes, FillBytes, LoadImage ;
- CONST MaxMem = 16777216 ; (* 16 MiB *)
- VAR heapPointer: LONGCARD ;
- PROCEDURE Init ;
- PROCEDURE ArenaBase () : LONGCARD ;
- PROCEDURE TopOfMemory () : LONGCARD ;
- PROCEDURE ReadByte (a: LONGCARD) : CARDINAL ;
- PROCEDURE WriteByte (a: LONGCARD; b: CARDINAL) ;
- PROCEDURE ReadSlot (a: LONGCARD) : LONGCARD ;
- PROCEDURE WriteSlot (a: LONGCARD; v: LONGCARD) ;
- PROCEDURE ReadWord (a: LONGCARD) : CARDINAL ;
- PROCEDURE WriteWord (a: LONGCARD; v: CARDINAL) ;
- PROCEDURE ReadLong (a: LONGCARD) : LONGINT ;
- PROCEDURE WriteLong (a: LONGCARD; v: LONGINT) ;
- PROCEDURE CopyBytes (src, dst: LONGCARD; n: LONGCARD) ;
- PROCEDURE FillBytes (dst: LONGCARD; n: LONGCARD; b: CARDINAL) ;
- PROCEDURE LoadImage (VAR data: ARRAY OF CHAR; off: CARDINAL; dst: LONGCARD; n: CARDINAL) ;
- END Memory.
|