mirror of
https://github.com/forth-ev/VolksForth.git
synced 2024-06-26 08:29:29 +00:00
65 lines
2.6 KiB
Plaintext
65 lines
2.6 KiB
Plaintext
|
|
\ tools for decompiling, clv12oct87
|
|
|
|
( interactive use )
|
|
|
|
Onlyforth Tools also definitions
|
|
|
|
| : ?: ?cr dup 4 u.r ." :" ;
|
|
| : @? dup @ 6 u.r ;
|
|
| : c? dup c@ 3 .r ;
|
|
| : bl $24 col - 0 max spaces ;
|
|
|
|
: s ( adr - adr+)
|
|
( print literal string)
|
|
?: space c? 4 spaces dup count type
|
|
dup c@ + 1+ bl ; ( count + re)
|
|
|
|
: n ( adr - adr+2)
|
|
( print name of next word by its cfa)
|
|
?: @? 2 spaces
|
|
dup @ >name .name 2+ bl ;
|
|
|
|
: k ( adr - adr+2)
|
|
( print literal value)
|
|
?: @? 2+ bl ;
|
|
|
|
( tools for decompiling, interactive )
|
|
|
|
: d ( adr n - adr+n) ( dump n bytes)
|
|
2dup swap ?: 3 spaces swap 0
|
|
DO c? 1+ LOOP
|
|
4 spaces -rot type bl ;
|
|
|
|
: c ( adr - adr+1)
|
|
( print byte as unsigned value)
|
|
1 d ;
|
|
|
|
: b ( adr - adr+2)
|
|
( print branch target location )
|
|
?: @? dup @ over + 6 u.r 2+ bl ;
|
|
|
|
( used for : )
|
|
( Name String Literal Dump Clit Branch )
|
|
( - - - - - - )
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
( debugging utilities bp 19 02 85 )
|
|
|
|
|
|
: unravel \ unravel perform (abort"
|
|
rdrop rdrop rdrop
|
|
cr ." trace dump is " cr
|
|
BEGIN rp@ r0 @ -
|
|
WHILE r> dup 8 u.r space
|
|
2- @ >name .name cr
|
|
REPEAT (error ;
|
|
|
|
' unravel errorhandler !
|
|
|