VolksForth/archive/6502/CBM/UF83_380/convert/debugtools.txt
2020-07-15 09:48:43 +02:00

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 !