blob: 5e16a6c57995f28d74290c2923fe91192bf5bcc6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
\ 7.5 Firmware Debugging command group
\ 7.5.1 Automatic stack display
: (.s
depth 0 ?do
depth i - 1- pick .
loop
depth 0<> if ascii < emit space then
;
: showstack ( -- )
['] (.s to status
;
: noshowstack ( -- )
['] noop to status
;
\ 7.5.2 Serial download
: dl ( -- )
;
\ 7.5.3 Dictionary
\ 7.5.3.1 Dictionary search
: .calls ( xt -- )
;
: $sift ( text-addr text-len -- )
;
: sifting ( "text< >" -- )
;
\ : words ( -- )
\ \ Implemented in forth bootstrap.
\ ;
\ 7.5.3.2 Decompiler
\ implemented in see.fs
\ : see ( "old-name< >" -- )
\ ;
\ : (see) ( xt -- )
\ ;
\ 7.5.3.3 Patch
: patch ( "new-name< >old-name< >word-to-patch< >" -- )
;
: (patch) ( new-n1 num1? old-n2 num2? xt -- )
;
\ 7.5.3.4 Forth source-level debugger
: debug ( "old-name< >" -- )
parse-word \ Look up word CFA in dictionary
$find
0 = if
." could not locate word for debugging"
2drop
else
(debug
then
;
: stepping ( -- )
;
: tracing ( -- )
;
: debug-off ( -- )
(debug-off)
;
: resume ( -- )
\ Set interpreter termination flag
1 to terminate?
;
|