forked from audetto/AppleWin
/
Debugger_Wishlist.txt
244 lines (189 loc) · 6.78 KB
/
Debugger_Wishlist.txt
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
Requests (Wishlist):
====================
* HOME/CLS Clear Screen
* DT Define Target
Default disassembly:
D7AF:A9 13 LDA #$13
D7B1:A0 E9 LDY #$E9
Correct disassembly:
DT D7AF:B7B2
D7AF:A9 13 LDA #<CON.ONE
D7B1:A0 E9 LDY #>CON.ONE
* DF Define FAC
* Cleanup Applesoft listing
* DB
* DA
* DF
* Read/Write Track/Sector
DISK 2 READ 11 F 800
DISK 2 WRITE 11 F 800
* Save/Load memory to mounted DOS3.3 disk
DSAVE "LOGO.HGR",2000:3FFF,6,1
DLOAD "LOGO.HGR"
* Save/load memory to mounted ProDOS disk/hard drive
PREFIX
PSAVE "LOGO.HGR",2000:3FFF
PLOAD "LOGO.HGR"
* [ ] HELP BPM on read/write
Nail down syntax:
BPM A7 = R
BPM A7 = W
BPM R A7
BPM W A7
Add support 65D02 to break on read/write memory location
* [ ] HELP BPM
Add help document and examples
* [ ] Fix BUG: (partial) symbols starting with E not parsed propery
sym ErasePlayer1 = 65D3
sym ErasePlayer
Address not found: $000E
* [ ] Color code error messages in red foreground
- HELP CD: Document examples
Helps needs to list:
SEE: HELP PWD
- Allow EQUs to be directly entered in
Foo EQU $1234
Need to check if we have 3 params, 2nd param is EQU, 3rd param is address
- Fix BUG: 0:1 Doesn't work
Work-around, use two hex digits for the address:
00:1
- Debugger: wildcard search support for symbols
SYMBASIC MICRO*
- Debugger:Ability to turn on/off alternative odd/even background coloring in disasm
DISASM ROWCOLOR 0
DISASM ROWCOLOR 0
Why? Default to a custom (black?) background, and then have ANALYSE color-code
the background line color to make it easier to visualize sections.
i.e. See BrkDown reverse engineering PDF -- TODO: Need link
- Debugger: FUNC address:address
Markup function block, with alternating background colors
FUNC 300:31F
FUNC 320:33F
- Debugger: Ability to hide Regs panel
DISASM REGS 0 // Hide Regs and Breakpoints
DISASM REGS 1 // Show Regs only
DISASM REGS 2 // Show Breakpoints only
DISASM REGS 3 // Show Regs and Breakpoints (DEFAULT)
- Debugger: SPRITE <ADDR> <WIDTH> <HEIGHT> [SPAN]
- Debugger: HGRX <addr>
view address as HGR
i.e. HGRX 6000
i.e. HGRX 8000
- Debugger: Color code commands in light blue
Currently, everything is in white, making it hard to see input and output
- Debugger: Command history
Once any non-whitespace character has been entered, Up arrow and Down arrow
should scroll through prev and next command history respectively
- Debugger: Command line editing
Left Arrow Move Cursor Left
Right Arrow Move Cursor Right
Ctrl-A Beginning of Line
Ctrl-D Delete Character
Ctrl-E End of Line
- Debugger: List symbol table
SYMASM LIST
SYMUSER1 LIST
- Debugger: Document: Add help example to list all symbol tables
HELP SYMMAIN
SYMMAIN *
- Debugger: Markup Byte with C_ prefix instead of B_
DB 123
Will auto-generate symbol in SYMASM
B_123
This should be:
G_123
- Debugger: ANALYSE <range>
Utility to help in automatic disassembly.
Like "Sourcer" or "BrkDown"
Automatically markup labels for
* JSR
* JMP
* RTS
* Branches
* LD? abs
* LD? abs,X
* LD? abs,Y
* etc.
Should respect existing `X <range>` as data
Auto-generated labels:
B_#### = Branch target address
F_#### = Function (or F_, or J_, or L_), new command: DF
G_#### = Global Byte
P_#### = Pointer
R_#### = Function return
Z_## = Zero Page
Don't know how to generate:
A_#### = Data Address
W_#### = Data Word
- Debugger: Document: SYMASM and SYMUSER differences
SYMASM data symbols placed here via DB Foo = 100
SYMUSER func symbols placed here via SYM Bar = 200
- Debugger: Symbol tables for DOS 3.3 and ProDOS
SYMUSER2 -> SYMDOS33
SYMSOURCE2 -> SYMPRODOS
- Debugger: Autoexec !
.AWD = Microsoft Fax
.A2D = Apple 2 Debug
.AW2 = AppleWin Disk = icon of app, disk image(s)
RUN AppleWin.a2d // Official AppleWin Supplied Debug Config
RUN Debugger.a2d // User supplied AppleWin Debug Config
- Debugger: Custom Soft switches
SOFT CLEAR
SOFT ADD C050
SOFT ADD 50
SOFT LIST
SOFT LOAD
SOFT SAVE
- New Debugger features:
> 1 SCR shows what the Apple monitor should look like at the current point
> 2 MDS same as ME but shows strings (ie "ABC" instead of "c1 c2 c3"
> 3 TS text search (and may be a hex search function too ?"
- Incorporate Laine Houghton's modifications to debugger (?)
- Source level debugging using WordPad & Merlin asm output (tell WordPad to FIND / GOTO line).
Implemented:
============
* [x] Debugger V2.9.0.14: Cycle Profiling, use PROFILE RESET, and PROFILE LIST.
. DONE: v16.0.0.0 DEBUGGER: (use F7): RESET button to break into the Monitor (preserving memory).
. DONE: v16.0.0.0: DEBUGGER: Ability to search and modify for a value in memory in order to cheat in some games.
. DONE: v16.0.0.0: DEBUGGER: Hex search in debugger
* [x] Version: ?
Debugger: Turn off target columns in dis-assembly
Use:
DISASM TARGET 0 // off
DISASM TARGET 1 // show target byte
DISASM TARGET 2 // show target address
DISASM TARGET 3 // Show target address and byte (DEFAULT)
. Debugger: BLOAD with no arguments should print current save path
. Debugger: FIX BLOAD with bad path!! (should use path of last disk load!)
. Debugger: FIX BSAVE with bad path!! (should use path of last disk load!)
. Debugger: merlin "filename",S6,D1
. Debugger: COLOR RESET
. Debugger: COLOR SAVE ["filename"]
. Debugger: COLOR LOAD ["filename"]
. DONE: help f
. DONE: help m
. DONE: BC:##
. DONE: BD:##
. DONE: BE:##
. DONE: help f
. DONE: help m
. DONE: EA:##
. DONE: E8:##
. DONE: a:##
. DONE: d:##
. DONE: Debugger 2.6.1.19: ADD: AppleSoft symbols to Symbol Table
. DONE: v16.0.0.0: Video: PrintScreen (save to disk with auto file numbering.)
. DONE: v16.0.0.0: Debugger: TEXT show current 40-col text page
. DONE: v16.0.0.0: Debugger: TEXT80 show current 80-col text page
. DONE: v16.0.0.0: Debugger: GR show current lo-res graphics page
. DONE: v16.0.0.0: Debugger: HGR show current hi-res graphis page
. DONE: v16.0.0.0: Debugger: DGR show current double hi-res graphics page
. DONE: v16.0.0.0: Debugger: TEXT1 Show 40 Column Text Page 1
. DONE: v16.0.0.0: Debugger: TEXT2 Show 40 Column Text Page 2
. DONE: v16.0.0.0: Debugger: TEXT81 1 Show 40 Column Text Page 1
. DONE: v16.0.0.0: Debugger: TEXT82 2 Show 40 Column Text Page 1
. DONE: v16.0.0.0: Debugger: HGR1 show Hi-Res Page 1
. DONE: v16.0.0.0: Debugger: HGR2 show Hi-Res Page 2
. DONE: v16.0.0.0: Debugger: DHGR1 show Double Hi-Res Page 1
. DONE: v16.0.0.0: Debugger: DHGR2 show Double Hi-Res Page 2
. DONE: Debugger: shift+ins to paste from clipboard (use Ctrl-V to paste.)