1 \ $DEFINE DEBUG
-ZX
-TRACER
3 ;; ////////////////////////////////////////////////////////////////////////// //
4 : (ZX
-TRACE
-CFA
) ( cfa
-- )
7 \
." ***tracing: " DUP UR
-ZX
-WORD
-NAME
-BY
-CFA IFNOT
" NOT FOUND!" UFE
-FATAL
ENDIF XTYPE CR
10 ;; do not trace already traced word
11 DUP UR
-ZX
-WORD
-USED
-BY
-CFA?
IF DROP EXIT
ENDIF
12 \ DUP UR
-ZX
-WORD
-NAME
-BY
-CFA DROP
." !!! " XTYPE CR
15 DUP UR
-ZX
-WORD
-USED
-BY
-CFA
-1!
17 \
." used: " DUP UR
-ZX
-WORD
-NAME
-BY
-CFA IFNOT
" NOT FOUND!" UFE
-FATAL
ENDIF XTYPE CR
19 ;; do not trace non
-forth words
20 DUP UR
-ZX
-WORD
-TYPE
-BY
-CFA FWT
-FORTH
<> IF
21 $IFDEF DEBUG
-ZX
-TRACER
22 ." NOTFORTH: " DUP UR
-ZX
-WORD
-NAME
-BY
-CFA IFNOT
" NOT FOUND!" UFE
-FATAL
ENDIF XTYPE CR
26 ;; special DEFERed words
27 UR
-ZX
-WORD
-NAME
-BY
-CFA IFNOT
" NOT FOUND!" UFE
-FATAL
ENDIF
30 " EMIT6" UR
-ZX
-FIND
-WORD
IF RECURSE
ENDIF
31 " EMIT8" UR
-ZX
-FIND
-WORD
IF RECURSE
ENDIF
34 " XEMIT6" UR
-ZX
-FIND
-WORD
IF RECURSE
ENDIF
35 " XEMIT8" UR
-ZX
-FIND
-WORD
IF RECURSE
ENDIF
37 2DUP
" WHEREX" STR
= IF
38 " WHEREX6" UR
-ZX
-FIND
-WORD
IF RECURSE
ENDIF
39 " WHEREX8" UR
-ZX
-FIND
-WORD
IF RECURSE
ENDIF
41 2DUP
" WHEREY" STR
= IF
42 " WHEREY6" UR
-ZX
-FIND
-WORD
IF RECURSE
ENDIF
43 " WHEREY8" UR
-ZX
-FIND
-WORD
IF RECURSE
ENDIF
45 2DUP
" GOTOXY" STR
= IF
46 " GOTOXY6" UR
-ZX
-FIND
-WORD
IF RECURSE
ENDIF
47 " GOTOXY8" UR
-ZX
-FIND
-WORD
IF RECURSE
ENDIF
49 2DUP
" GOTOXY16" STR
= IF
50 " GOTOXY6_16" UR
-ZX
-FIND
-WORD
IF RECURSE
ENDIF
51 " GOTOXY8_16" UR
-ZX
-FIND
-WORD
IF RECURSE
ENDIF
53 2DUP
" WHEREXY16" STR
= IF
54 " WHERE6_16" UR
-ZX
-FIND
-WORD
IF RECURSE
ENDIF
55 " WHERE8_16" UR
-ZX
-FIND
-WORD
IF RECURSE
ENDIF
62 \ DUP UR
-ZX
-WORD
-TYPE
-BY
-CFA
3 SPACES
. CR
68 $IFDEF DEBUG
-ZX
-TRACER
69 ." **tracing: " DUP UR
-ZX
-WORD
-NAME
-BY
-CFA IFNOT
" NOT FOUND!" UFE
-FATAL
ENDIF XTYPE CR
75 ;; trace labels
(this also determines word
end)
76 DP@
TO ZX
-TRACER
-SAVED
-DP
78 ZX
-TRACER
-SAVED
-DP DP
!
81 ZX
-TRACER
-WORD
-END SWAP
88 ;; trace word compiled by
(COMPILE
) too
89 DUP @ UR
-ZX
-WORD
-FLAGS
-BY
-CFA FWF
-COMPILE AND
IF
97 $IFDEF DEBUG
-ZX
-TRACER
98 ." DONE tracing: " UR
-ZX
-WORD
-NAME
-BY
-CFA IFNOT
" NOT FOUND!" UFE
-FATAL
ENDIF XTYPE CR
105 ;; ////////////////////////////////////////////////////////////////////////// //
106 : ZX
-TRACE
-ALLOWED?
( -- flag
)
107 UR
-PASS?
0= UR
-AFTER
-TRACE?
0= AND
110 : ZX
-TRACE
( -- ) \ wordname
111 \
" ZX word tracer is broken for now" UFE
-FATAL
113 BL WORD COUNT UR
-ZX
-FIND
-WORD IFNOT
" NOT FOUND!" UFE
-FATAL
ENDIF
116 ZX
-TRACE
-ALLOWED? IFNOT
117 ." tracing zx word: " DUP UR
-ZX
-WORD
-NAME
-BY
-CFA IFNOT
" NOT FOUND!" UFE
-FATAL
ENDIF XTYPE CR
124 : ZX
-DECOMP
( -- ) \ wordname
125 BL WORD COUNT UR
-ZX
-FIND
-WORD IFNOT
" NOT FOUND!" UFE
-FATAL
ENDIF
129 DP@
TO ZX
-TRACER
-SAVED
-DP
132 ZX
-TRACER
-SAVED
-DP DP
!