retroforth/interface/malloc.retro
crc dd742823b2 add mem:fetch-double, mem:cell+, double:swap from Rick Carlino
FossilOrigin-Name: 37e2a4d285b6245656eda3514955b7c4da3e840948ef022802536881f1a654c2
2022-08-22 09:26:07 +00:00

26 lines
493 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 ;
~~~