36 lines
622 B
Forth
36 lines
622 B
Forth
0 VALUE LARGE-OBJECT
|
|
0 VALUE LIST-HEAD
|
|
|
|
: HEADING "* " TYPE TYPE EOL ;
|
|
|
|
: TEST
|
|
"Allocate large object (8 MiB)" HEADING
|
|
8 MB ALLOCATE TO LARGE-OBJECT
|
|
LARGE-OBJECT 8 MB BL FILL
|
|
|
|
"Free large object" HEADING
|
|
LARGE-OBJECT FREE
|
|
NULL TO LARGE-OBJECT
|
|
|
|
"Allocate 1000 small objects (200 B)" HEADING
|
|
1000 0 DO
|
|
200 ALLOCATE
|
|
LIST-HEAD OVER !
|
|
TO LIST-HEAD
|
|
LOOP
|
|
|
|
"Free 1000 small objects" HEADING
|
|
LIST-HEAD BEGIN
|
|
?DUP
|
|
WHILE
|
|
DUP @ SWAP FREE
|
|
REPEAT
|
|
|
|
"Allocate 0 bytes" HEADING
|
|
0 ALLOCATE "Result: " TYPE U. EOL
|
|
|
|
"Free a NULL pointer" HEADING
|
|
0 FREE ;
|
|
|
|
TEST
|