home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Frozen Fish 1: Amiga
/
FrozenFish-Apr94.iso
/
bbs
/
alib
/
d9xx
/
d977
/
forth.lha
/
Forth
/
Forth-Map.doc
< prev
next >
Wrap
Text File
|
1994-04-03
|
5KB
|
137 lines
Memory Usage by FORTH 910418 J.Bos Brantford Canada
a3=bp base pointer
a4=ip inner interpreter pointer
a5=sp stack pointer (parameter stack = user stack = forth stack = stack )
a7=rp return stack pointer ( return stack = system stack = Amiga stack )
d5=os outside register, high word must be set to zero 0000
d6=w work register, high word must be set to zero 0000
: next, bp ) jmp, ; ( next, jumps to what FORTH thinks is address 0000 )
addr contents label
0000 3c1c >next< move.w (a4)+,d6 ip )+ w move,
0002 3a33 6800 move.w 0(a3,d6),d5 0 w bp di.l) os move,
0006 4ef3 5800 jmp 0(a3,d5) 0 os bp di.l) jmp,
000a 0000 0000 incomingSP
000e 4928 <- init-forth initial pointer to top in FORTH voc.
0010 f736 < init-user sp0 parameter stack address
0012 f796 < r0 return stack address, not used
0014 f736 < tib terminal input buffer address
0016 001f < width name field width in bytes
0018 0001 < warning error warning mode
001a 0000 < init-fence
001c 0000 < init-dp initial directory pointer
001e 0000 < init-voc-link initial vocabulary link
0020 137c < <-find>
0022 0710 < <?terminal>
0024 1446 < <abort>
0026 145e < <block>
0028 14fe < <cr>
002a 077c < <exit>
002c 152e < <expect>
002e 1654 < <interpret>
0030 06ec < <key>
0032 16ba < <load>
0034 1722 < <number>
0036 32b6 < <page>
0038 17b6 < <r/w>
003a 0736 < <type>
003c 1848 < <vocabulary79>
003e 1904 < <word>
0040 f796 up (user pointer )
0042 f796 rpp (return stack pointer, not used)
----------------
0044 88 execbase start of dictionary (first word)
| |
| |
| |
| dictionary
| |
| |
| |
| v
| <-- last entry in dictionary
|
| pad is located 64 bytes above the latest
| | entry in the dictionary
| v
|
|
|
|
|
| <-- sp@ top of parameter stack
| ^
| |
| parameter stack
|
f736 ---------------- s0 bottom of empty parameter stack
| tib starts at tib @ = F736
| |
| v
| 60 hex bytes
| available for tib
|
| ^
| |
| return stack ( not used, system stack is used )
| -----------------
f796 6520 0 init-r0 = f796 bottom return stack
f798 2020 2 rpp ?? return pointer (not used)
f79a 3362 4 forth directory pointer
--------------------------------------
f79c f736 > 6 sp0 |
f79e f796 > 8 r0 |
f7a0 f736 > 10 tib |
f7a2 1f > 12 width |
f7a4 1 > 14 warning |
f7a6 2dd2 > 16 fence |
f7a8 40d8 > 18 dp |
f7aa 3c74 > 20 voc-link |
f7ac 137c > 22 '-find |
f7ae 710 > 24 '?terminal |
f7b0 1446 > 26 'abort |
f7b2 145e > 28 'block |
f7b4 14fe > 30 'cr |
f7b6 77c > 32 'emit |
f7b8 152e > 34 'expect | 24 words are copied and saved
f7ba 1654 > 36 'interpret | for use at the next session
f7bc 6ec > 38 'key | by 'freeze'
f7be 16ba > 40 'load |
f7c0 1722 > 42 'number |
f7c2 17a8 > 44 'page |
f7c4 17b6 > 46 'r/w |
f7c6 736 > 48 'type |
f7c8 1848 > 50 'vocabulary |
f7ca 1904 > 52 'word |
--------------------------------------
f7cc 11 54 >in 52 hex bytes = 41 user variables
f7ce 10 56 base
f7d0 0 58 blk
f7d2 23be 60 context
f7d4 f734 62 csp
f7d6 23be 64 current
f7d8 ffff 66 dpl
f7da 0 68 fld
f7dc 411a 70 hld
f7de 0 72 offset
f7e0 2b 74 out
f7e2 8747 76 r#
f7e4 4658 78 scr
f7e6 0 80 state
f7e8 7fff 82 first start of buf1 end of user variables
|
|
| 404 hex bytes for block buffer buf1
|
|
fbec starting address of buf2
|
|
| 404 hex bytes for block buffer buf2
|
|
fff0 limit ( end of memory )