mirror of
https://github.com/forth-ev/VolksForth.git
synced 2024-11-22 05:32:28 +00:00
35 lines
2.1 KiB
Forth
35 lines
2.1 KiB
Forth
|
\ *** Block No. 0 Hexblock 0
|
|||
|
\\ *** Allocate *** 12oct86we
|
|||
|
|
|||
|
Dieses File enth<EFBFBD>lt die Betriebssystemroutinen, mit denen man
|
|||
|
RAM-Speicher beim Betriebssystem an- und abmelden kann.
|
|||
|
|
|||
|
MALLOC erwartet die - doppelt genaue - Anzahl der zu reservie-
|
|||
|
renden Bytes und gibt die Langadresse des allokierten Speicher-
|
|||
|
bereichs zur<EFBFBD>ck. Wenn nicht genug Speicherplatz zur Verf<EFBFBD>gung
|
|||
|
steht, wird der Befehl abgebrochen.
|
|||
|
|
|||
|
MFREE gibt den Speicher ab laddr wieder frei. Bei Fehlern wird
|
|||
|
der Befehl abgebrochen.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
\ *** Block No. 1 Hexblock 1
|
|||
|
\ malloc mfree 16oct86we
|
|||
|
|
|||
|
Code malloc ( d -- laddr )
|
|||
|
.l SP ) A7 -) move .w $48 # A7 -) move 1 trap
|
|||
|
6 A7 addq .l D0 SP ) move
|
|||
|
;c: 2dup or 0= abort" No more RAM" ;
|
|||
|
|
|||
|
Code mfree ( laddr -- )
|
|||
|
.l SP )+ A7 -) move .w $49 # A7 -) move 1 trap
|
|||
|
6 A7 addq .w D0 SP -) move ;c: abort" mfree Error!" ;
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|