b2f8d20500
FossilOrigin-Name: 9361f871748717cdb067983a00b3dd074a0317f72fa6a804bbc150ef89072b02
28 lines
585 B
Forth
28 lines
585 B
Forth
# Malloc
|
|
|
|
~~~
|
|
|
|
{{
|
|
:mem:invoke #15 io:scan-for io:invoke ;
|
|
|
|
#0 'ALLOC const
|
|
#1 'FREE const
|
|
#2 'STORE const
|
|
#3 'FETCH const
|
|
#4 'RESIZE const
|
|
|
|
---reveal---
|
|
|
|
:mem:alloc (n--aa) ALLOC mem:invoke ;
|
|
:mem:store (an--) STORE mem:invoke ;
|
|
:mem:fetch (a--n) FETCH mem:invoke ;
|
|
:mem:free (aa--) FREE mem:invoke ;
|
|
:mem:resize (aan--) RESIZE mem:invoke ;
|
|
}}
|
|
|
|
:mem:cell+ (nnn-n) #4 * + ;
|
|
:mem:fetch-double (n-nn)
|
|
dup-pair #1 mem:cell+ fetch push mem:fetch pop ;
|
|
:mem:store-double (aann-nn)
|
|
push push dup-pair #1 mem:cell+ pop mem:store pop mem:store ;
|
|
~~~
|