retroforth/interface/malloc.retro
crc 21d23ee3e7 add missing source data for words in script: mem: and double:
FossilOrigin-Name: bb2a1fd9b46acdf68d79753792e9201cf6690efee2eaa350341faa39636d0d71
2023-10-22 16:18:59 +00:00

38 lines
1 KiB
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--a) ALLOC mem:invoke ;
:mem:store (an--) STORE mem:invoke ;
:mem:fetch (a--n) FETCH mem:invoke ;
:mem:free (a--) FREE mem:invoke ;
:mem:resize (an--) RESIZE mem:invoke ;
}}
:mem:cell+ (nn-n) #8 * + ;
:mem:fetch-double (n-nn)
dup #1 mem:cell+ fetch push mem:fetch pop ;
:mem:store-double (ann-nn)
push push dup-pair #1 mem:cell+ pop mem:store pop mem:store ;
'interface/malloc.retro 'mem:alloc d:set-source
'interface/malloc.retro 'mem:store d:set-source
'interface/malloc.retro 'mem:fetch d:set-source
'interface/malloc.retro 'mem:free d:set-source
'interface/malloc.retro 'mem:size d:set-source
'interface/malloc.retro 'mem:resize d:set-source
'interface/malloc.retro 'mem:cell+ d:set-source
'interface/malloc.retro 'mem:fetch-double d:set-source
'interface/malloc.retro 'mem:store-double d:set-source
~~~