home *** CD-ROM | disk | FTP | other *** search
- 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 )
-
-