diff options
Diffstat (limited to 'apps/plugins/rockboy/debug.c')
-rw-r--r-- | apps/plugins/rockboy/debug.c | 699 |
1 files changed, 699 insertions, 0 deletions
diff --git a/apps/plugins/rockboy/debug.c b/apps/plugins/rockboy/debug.c new file mode 100644 index 0000000000..d0e106ba94 --- /dev/null +++ b/apps/plugins/rockboy/debug.c | |||
@@ -0,0 +1,699 @@ | |||
1 | |||
2 | |||
3 | #include <stdio.h> | ||
4 | |||
5 | #include "rockmacros.h" | ||
6 | #include "defs.h" | ||
7 | #include "cpu.h" | ||
8 | #include "mem.h" | ||
9 | #include "fastmem.h" | ||
10 | #include "regs.h" | ||
11 | #include "rc.h" | ||
12 | |||
13 | #include "cpuregs.h" | ||
14 | |||
15 | |||
16 | static char *mnemonic_table[256] = | ||
17 | { | ||
18 | "NOP", | ||
19 | "LD BC,%w", | ||
20 | "LD (BC),A", | ||
21 | "INC BC", | ||
22 | "INC B", | ||
23 | "DEC B", | ||
24 | "LD B,%b", | ||
25 | "RLCA", | ||
26 | "LD (%w),SP", | ||
27 | "ADD HL,BC", | ||
28 | "LD A,(BC)", | ||
29 | "DEC BC", | ||
30 | "INC C", | ||
31 | "DEC C", | ||
32 | "LD C,%b", | ||
33 | "RRCA", | ||
34 | "STOP", | ||
35 | "LD DE,%w", | ||
36 | "LD (DE),A", | ||
37 | "INC DE", | ||
38 | "INC D", | ||
39 | "DEC D", | ||
40 | "LD D,%b", | ||
41 | "RLA", | ||
42 | "JR %o", | ||
43 | "ADD HL,DE", | ||
44 | "LD A,(DE)", | ||
45 | "DEC DE", | ||
46 | "INC E", | ||
47 | "DEC E", | ||
48 | "LD E,%b", | ||
49 | "RRA", | ||
50 | "JR NZ,%o", | ||
51 | "LD HL,%w", | ||
52 | "LD (HLI),A", | ||
53 | "INC HL", | ||
54 | "INC H", | ||
55 | "DEC H", | ||
56 | "LD H,%b", | ||
57 | "DAA", | ||
58 | "JR Z,%o", | ||
59 | "ADD HL,HL", | ||
60 | "LD A,(HLI)", | ||
61 | "DEC HL", | ||
62 | "INC L", | ||
63 | "DEC L", | ||
64 | "LD L,%b", | ||
65 | "CPL", | ||
66 | "JR NC,%o", | ||
67 | "LD SP,%w", | ||
68 | "LD (HLD),A", | ||
69 | "INC SP", | ||
70 | "INC (HL)", | ||
71 | "DEC (HL)", | ||
72 | "LD (HL),%b", | ||
73 | "SCF", | ||
74 | "JR C,%o", | ||
75 | "ADD HL,SP", | ||
76 | "LD A,(HLD)", | ||
77 | "DEC SP", | ||
78 | "INC A", | ||
79 | "DEC A", | ||
80 | "LD A,%b", | ||
81 | "CCF", | ||
82 | "LD B,B", | ||
83 | "LD B,C", | ||
84 | "LD B,D", | ||
85 | "LD B,E", | ||
86 | "LD B,H", | ||
87 | "LD B,L", | ||
88 | "LD B,(HL)", | ||
89 | "LD B,A", | ||
90 | "LD C,B", | ||
91 | "LD C,C", | ||
92 | "LD C,D", | ||
93 | "LD C,E", | ||
94 | "LD C,H", | ||
95 | "LD C,L", | ||
96 | "LD C,(HL)", | ||
97 | "LD C,A", | ||
98 | "LD D,B", | ||
99 | "LD D,C", | ||
100 | "LD D,D", | ||
101 | "LD D,E", | ||
102 | "LD D,H", | ||
103 | "LD D,L", | ||
104 | "LD D,(HL)", | ||
105 | "LD D,A", | ||
106 | "LD E,B", | ||
107 | "LD E,C", | ||
108 | "LD E,D", | ||
109 | "LD E,E", | ||
110 | "LD E,H", | ||
111 | "LD E,L", | ||
112 | "LD E,(HL)", | ||
113 | "LD E,A", | ||
114 | "LD H,B", | ||
115 | "LD H,C", | ||
116 | "LD H,D", | ||
117 | "LD H,E", | ||
118 | "LD H,H", | ||
119 | "LD H,L", | ||
120 | "LD H,(HL)", | ||
121 | "LD H,A", | ||
122 | "LD L,B", | ||
123 | "LD L,C", | ||
124 | "LD L,D", | ||
125 | "LD L,E", | ||
126 | "LD L,H", | ||
127 | "LD L,L", | ||
128 | "LD L,(HL)", | ||
129 | "LD L,A", | ||
130 | "LD (HL),B", | ||
131 | "LD (HL),C", | ||
132 | "LD (HL),D", | ||
133 | "LD (HL),E", | ||
134 | "LD (HL),H", | ||
135 | "LD (HL),L", | ||
136 | "HALT", | ||
137 | "LD (HL),A", | ||
138 | "LD A,B", | ||
139 | "LD A,C", | ||
140 | "LD A,D", | ||
141 | "LD A,E", | ||
142 | "LD A,H", | ||
143 | "LD A,L", | ||
144 | "LD A,(HL)", | ||
145 | "LD A,A", | ||
146 | "ADD A,B", | ||
147 | "ADD A,C", | ||
148 | "ADD A,D", | ||
149 | "ADD A,E", | ||
150 | "ADD A,H", | ||
151 | "ADD A,L", | ||
152 | "ADD A,(HL)", | ||
153 | "ADD A,A", | ||
154 | "ADC A,B", | ||
155 | "ADC A,C", | ||
156 | "ADC A,D", | ||
157 | "ADC A,E", | ||
158 | "ADC A,H", | ||
159 | "ADC A,L", | ||
160 | "ADC A,(HL)", | ||
161 | "ADC A", | ||
162 | "SUB B", | ||
163 | "SUB C", | ||
164 | "SUB D", | ||
165 | "SUB E", | ||
166 | "SUB H", | ||
167 | "SUB L", | ||
168 | "SUB (HL)", | ||
169 | "SUB A", | ||
170 | "SBC A,B", | ||
171 | "SBC A,C", | ||
172 | "SBC A,D", | ||
173 | "SBC A,E", | ||
174 | "SBC A,H", | ||
175 | "SBC A,L", | ||
176 | "SBC A,(HL)", | ||
177 | "SBC A,A", | ||
178 | "AND B", | ||
179 | "AND C", | ||
180 | "AND D", | ||
181 | "AND E", | ||
182 | "AND H", | ||
183 | "AND L", | ||
184 | "AND (HL)", | ||
185 | "AND A", | ||
186 | "XOR B", | ||
187 | "XOR C", | ||
188 | "XOR D", | ||
189 | "XOR E", | ||
190 | "XOR H", | ||
191 | "XOR L", | ||
192 | "XOR (HL)", | ||
193 | "XOR A", | ||
194 | "OR B", | ||
195 | "OR C", | ||
196 | "OR D", | ||
197 | "OR E", | ||
198 | "OR H", | ||
199 | "OR L", | ||
200 | "OR (HL)", | ||
201 | "OR A", | ||
202 | "CP B", | ||
203 | "CP C", | ||
204 | "CP D", | ||
205 | "CP E", | ||
206 | "CP H", | ||
207 | "CP L", | ||
208 | "CP (HL)", | ||
209 | "CP A", | ||
210 | "RET NZ", | ||
211 | "POP BC", | ||
212 | "JP NZ,%w", | ||
213 | "JP %w", | ||
214 | "CALL NZ,%w", | ||
215 | "PUSH BC", | ||
216 | "ADD A,%b", | ||
217 | "RST 0h", | ||
218 | "RET Z", | ||
219 | "RET", | ||
220 | "JP Z,%w", | ||
221 | NULL, | ||
222 | "CALL Z,%w", | ||
223 | "CALL %w", | ||
224 | "ADC A,%b", | ||
225 | "RST 8h", | ||
226 | "RET NC", | ||
227 | "POP DE", | ||
228 | "JP NC,%w", | ||
229 | NULL, | ||
230 | "CALL NC,%w", | ||
231 | "PUSH DE", | ||
232 | "SUB %b", | ||
233 | "RST 10h", | ||
234 | "RET C", | ||
235 | "RETI", | ||
236 | "JP C,%w", | ||
237 | NULL, | ||
238 | "CALL C,%w", | ||
239 | NULL, | ||
240 | "SBC A,%b", | ||
241 | "RST 18h", | ||
242 | "LD (FF00+%b),A", | ||
243 | "POP HL", | ||
244 | "LD (FF00+C),A", | ||
245 | NULL, | ||
246 | NULL, | ||
247 | "PUSH HL", | ||
248 | "AND %b", | ||
249 | "RST 20h", | ||
250 | "ADD SP,%o", | ||
251 | "JP HL", | ||
252 | "LD (%w),A", | ||
253 | NULL, | ||
254 | NULL, | ||
255 | NULL, | ||
256 | "XOR %b", | ||
257 | "RST 28h", | ||
258 | "LD A,(FF00+%b)", | ||
259 | "POP AF", | ||
260 | "LD A,(FF00+C)", | ||
261 | "DI", | ||
262 | NULL, | ||
263 | "PUSH AF", | ||
264 | "OR %b", | ||
265 | "RST 30h", | ||
266 | "LD HL,SP%o", | ||
267 | "LD SP,HL", | ||
268 | "LD A,(%w)", | ||
269 | "EI", | ||
270 | NULL, | ||
271 | NULL, | ||
272 | "CP %b", | ||
273 | "RST 38h" | ||
274 | }; | ||
275 | |||
276 | static char *cb_mnemonic_table[256] = | ||
277 | { | ||
278 | "RLC B", | ||
279 | "RLC C", | ||
280 | "RLC D", | ||
281 | "RLC E", | ||
282 | "RLC H", | ||
283 | "RLC L", | ||
284 | "RLC (HL)", | ||
285 | "RLC A", | ||
286 | "RRC B", | ||
287 | "RRC C", | ||
288 | "RRC D", | ||
289 | "RRC E", | ||
290 | "RRC H", | ||
291 | "RRC L", | ||
292 | "RRC (HL)", | ||
293 | "RRC A", | ||
294 | "RL B", | ||
295 | "RL C", | ||
296 | "RL D", | ||
297 | "RL E", | ||
298 | "RL H", | ||
299 | "RL L", | ||
300 | "RL (HL)", | ||
301 | "RL A", | ||
302 | "RR B", | ||
303 | "RR C", | ||
304 | "RR D", | ||
305 | "RR E", | ||
306 | "RR H", | ||
307 | "RR L", | ||
308 | "RR (HL)", | ||
309 | "RR A", | ||
310 | "SLA B", | ||
311 | "SLA C", | ||
312 | "SLA D", | ||
313 | "SLA E", | ||
314 | "SLA H", | ||
315 | "SLA L", | ||
316 | "SLA (HL)", | ||
317 | "SLA A", | ||
318 | "SRA B", | ||
319 | "SRA C", | ||
320 | "SRA D", | ||
321 | "SRA E", | ||
322 | "SRA H", | ||
323 | "SRA L", | ||
324 | "SRA (HL)", | ||
325 | "SRA A", | ||
326 | "SWAP B", | ||
327 | "SWAP C", | ||
328 | "SWAP D", | ||
329 | "SWAP E", | ||
330 | "SWAP H", | ||
331 | "SWAP L", | ||
332 | "SWAP (HL)", | ||
333 | "SWAP A", | ||
334 | "SRL B", | ||
335 | "SRL C", | ||
336 | "SRL D", | ||
337 | "SRL E", | ||
338 | "SRL H", | ||
339 | "SRL L", | ||
340 | "SRL (HL)", | ||
341 | "SRL A", | ||
342 | "BIT 0,B", | ||
343 | "BIT 0,C", | ||
344 | "BIT 0,D", | ||
345 | "BIT 0,E", | ||
346 | "BIT 0,H", | ||
347 | "BIT 0,L", | ||
348 | "BIT 0,(HL)", | ||
349 | "BIT 0,A", | ||
350 | "BIT 1,B", | ||
351 | "BIT 1,C", | ||
352 | "BIT 1,D", | ||
353 | "BIT 1,E", | ||
354 | "BIT 1,H", | ||
355 | "BIT 1,L", | ||
356 | "BIT 1,(HL)", | ||
357 | "BIT 1,A", | ||
358 | "BIT 2,B", | ||
359 | "BIT 2,C", | ||
360 | "BIT 2,D", | ||
361 | "BIT 2,E", | ||
362 | "BIT 2,H", | ||
363 | "BIT 2,L", | ||
364 | "BIT 2,(HL)", | ||
365 | "BIT 2,A", | ||
366 | "BIT 3,B", | ||
367 | "BIT 3,C", | ||
368 | "BIT 3,D", | ||
369 | "BIT 3,E", | ||
370 | "BIT 3,H", | ||
371 | "BIT 3,L", | ||
372 | "BIT 3,(HL)", | ||
373 | "BIT 3,A", | ||
374 | "BIT 4,B", | ||
375 | "BIT 4,C", | ||
376 | "BIT 4,D", | ||
377 | "BIT 4,E", | ||
378 | "BIT 4,H", | ||
379 | "BIT 4,L", | ||
380 | "BIT 4,(HL)", | ||
381 | "BIT 4,A", | ||
382 | "BIT 5,B", | ||
383 | "BIT 5,C", | ||
384 | "BIT 5,D", | ||
385 | "BIT 5,E", | ||
386 | "BIT 5,H", | ||
387 | "BIT 5,L", | ||
388 | "BIT 5,(HL)", | ||
389 | "BIT 5,A", | ||
390 | "BIT 6,B", | ||
391 | "BIT 6,C", | ||
392 | "BIT 6,D", | ||
393 | "BIT 6,E", | ||
394 | "BIT 6,H", | ||
395 | "BIT 6,L", | ||
396 | "BIT 6,(HL)", | ||
397 | "BIT 6,A", | ||
398 | "BIT 7,B", | ||
399 | "BIT 7,C", | ||
400 | "BIT 7,D", | ||
401 | "BIT 7,E", | ||
402 | "BIT 7,H", | ||
403 | "BIT 7,L", | ||
404 | "BIT 7,(HL)", | ||
405 | "BIT 7,A", | ||
406 | "RES 0,B", | ||
407 | "RES 0,C", | ||
408 | "RES 0,D", | ||
409 | "RES 0,E", | ||
410 | "RES 0,H", | ||
411 | "RES 0,L", | ||
412 | "RES 0,(HL)", | ||
413 | "RES 0,A", | ||
414 | "RES 1,B", | ||
415 | "RES 1,C", | ||
416 | "RES 1,D", | ||
417 | "RES 1,E", | ||
418 | "RES 1,H", | ||
419 | "RES 1,L", | ||
420 | "RES 1,(HL)", | ||
421 | "RES 1,A", | ||
422 | "RES 2,B", | ||
423 | "RES 2,C", | ||
424 | "RES 2,D", | ||
425 | "RES 2,E", | ||
426 | "RES 2,H", | ||
427 | "RES 2,L", | ||
428 | "RES 2,(HL)", | ||
429 | "RES 2,A", | ||
430 | "RES 3,B", | ||
431 | "RES 3,C", | ||
432 | "RES 3,D", | ||
433 | "RES 3,E", | ||
434 | "RES 3,H", | ||
435 | "RES 3,L", | ||
436 | "RES 3,(HL)", | ||
437 | "RES 3,A", | ||
438 | "RES 4,B", | ||
439 | "RES 4,C", | ||
440 | "RES 4,D", | ||
441 | "RES 4,E", | ||
442 | "RES 4,H", | ||
443 | "RES 4,L", | ||
444 | "RES 4,(HL)", | ||
445 | "RES 4,A", | ||
446 | "RES 5,B", | ||
447 | "RES 5,C", | ||
448 | "RES 5,D", | ||
449 | "RES 5,E", | ||
450 | "RES 5,H", | ||
451 | "RES 5,L", | ||
452 | "RES 5,(HL)", | ||
453 | "RES 5,A", | ||
454 | "RES 6,B", | ||
455 | "RES 6,C", | ||
456 | "RES 6,D", | ||
457 | "RES 6,E", | ||
458 | "RES 6,H", | ||
459 | "RES 6,L", | ||
460 | "RES 6,(HL)", | ||
461 | "RES 6,A", | ||
462 | "RES 7,B", | ||
463 | "RES 7,C", | ||
464 | "RES 7,D", | ||
465 | "RES 7,E", | ||
466 | "RES 7,H", | ||
467 | "RES 7,L", | ||
468 | "RES 7,(HL)", | ||
469 | "RES 7,A", | ||
470 | "SET 0,B", | ||
471 | "SET 0,C", | ||
472 | "SET 0,D", | ||
473 | "SET 0,E", | ||
474 | "SET 0,H", | ||
475 | "SET 0,L", | ||
476 | "SET 0,(HL)", | ||
477 | "SET 0,A", | ||
478 | "SET 1,B", | ||
479 | "SET 1,C", | ||
480 | "SET 1,D", | ||
481 | "SET 1,E", | ||
482 | "SET 1,H", | ||
483 | "SET 1,L", | ||
484 | "SET 1,(HL)", | ||
485 | "SET 1,A", | ||
486 | "SET 2,B", | ||
487 | "SET 2,C", | ||
488 | "SET 2,D", | ||
489 | "SET 2,E", | ||
490 | "SET 2,H", | ||
491 | "SET 2,L", | ||
492 | "SET 2,(HL)", | ||
493 | "SET 2,A", | ||
494 | "SET 3,B", | ||
495 | "SET 3,C", | ||
496 | "SET 3,D", | ||
497 | "SET 3,E", | ||
498 | "SET 3,H", | ||
499 | "SET 3,L", | ||
500 | "SET 3,(HL)", | ||
501 | "SET 3,A", | ||
502 | "SET 4,B", | ||
503 | "SET 4,C", | ||
504 | "SET 4,D", | ||
505 | "SET 4,E", | ||
506 | "SET 4,H", | ||
507 | "SET 4,L", | ||
508 | "SET 4,(HL)", | ||
509 | "SET 4,A", | ||
510 | "SET 5,B", | ||
511 | "SET 5,C", | ||
512 | "SET 5,D", | ||
513 | "SET 5,E", | ||
514 | "SET 5,H", | ||
515 | "SET 5,L", | ||
516 | "SET 5,(HL)", | ||
517 | "SET 5,A", | ||
518 | "SET 6,B", | ||
519 | "SET 6,C", | ||
520 | "SET 6,D", | ||
521 | "SET 6,E", | ||
522 | "SET 6,H", | ||
523 | "SET 6,L", | ||
524 | "SET 6,(HL)", | ||
525 | "SET 6,A", | ||
526 | "SET 7,B", | ||
527 | "SET 7,C", | ||
528 | "SET 7,D", | ||
529 | "SET 7,E", | ||
530 | "SET 7,H", | ||
531 | "SET 7,L", | ||
532 | "SET 7,(HL)", | ||
533 | "SET 7,A" | ||
534 | }; | ||
535 | |||
536 | static byte operand_count[256] = | ||
537 | { | ||
538 | 1, 3, 1, 1, 1, 1, 2, 1, 3, 1, 1, 1, 1, 1, 2, 1, | ||
539 | 1, 3, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 1, | ||
540 | 2, 3, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 1, | ||
541 | 2, 3, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 2, 1, | ||
542 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | ||
543 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | ||
544 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | ||
545 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | ||
546 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | ||
547 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | ||
548 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | ||
549 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | ||
550 | 1, 1, 3, 3, 3, 1, 2, 1, 1, 1, 3, 2, 3, 3, 2, 1, | ||
551 | 1, 1, 3, 1, 3, 1, 2, 1, 1, 1, 3, 1, 3, 1, 2, 1, | ||
552 | 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 3, 1, 1, 1, 2, 1, | ||
553 | 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 3, 1, 1, 1, 2, 1 | ||
554 | }; | ||
555 | |||
556 | |||
557 | /* replace with a real interactive debugger eventually... */ | ||
558 | |||
559 | int debug_trace = 0; | ||
560 | |||
561 | rcvar_t debug_exports[] = | ||
562 | { | ||
563 | RCV_BOOL("trace", &debug_trace), | ||
564 | RCV_END | ||
565 | }; | ||
566 | |||
567 | void debug_disassemble(addr a, int c) | ||
568 | { | ||
569 | static int i, j, k; | ||
570 | static byte code; | ||
571 | static byte ops[3]; | ||
572 | static int opaddr; | ||
573 | static char mnemonic[256]; | ||
574 | static char *pattern; | ||
575 | char meow[500],buf[300]; | ||
576 | // int fd; | ||
577 | if(!debug_trace) return; | ||
578 | // fd=open("/rockboy.trace",O_WRONLY|O_APPEND); | ||
579 | // if(fd<0) | ||
580 | // return; | ||
581 | |||
582 | while (c > 0) | ||
583 | { | ||
584 | k = 0; | ||
585 | opaddr = a; | ||
586 | code = ops[k++] = readb(a); a++; | ||
587 | if (code != 0xCB) | ||
588 | { | ||
589 | pattern = mnemonic_table[code]; | ||
590 | if (!pattern) | ||
591 | pattern = "***INVALID***"; | ||
592 | } | ||
593 | else | ||
594 | { | ||
595 | code = ops[k++] = readb(a); a++; | ||
596 | pattern = cb_mnemonic_table[code]; | ||
597 | } | ||
598 | i = j = 0; | ||
599 | while (pattern[i]) | ||
600 | { | ||
601 | if (pattern[i] == '%') | ||
602 | { | ||
603 | switch (pattern[++i]) | ||
604 | { | ||
605 | case 'B': | ||
606 | case 'b': | ||
607 | ops[k] = readb(a); a++; | ||
608 | j += snprintf(mnemonic + j,255-j, | ||
609 | "%02Xh", ops[k++]); | ||
610 | break; | ||
611 | case 'W': | ||
612 | case 'w': | ||
613 | ops[k] = readb(a); a++; | ||
614 | ops[k+1] = readb(a); a++; | ||
615 | j += snprintf(mnemonic + j, 255-j,"%04Xh", | ||
616 | ((ops[k+1] << 8) | ops[k])); | ||
617 | k += 2; | ||
618 | break; | ||
619 | case 'O': | ||
620 | case 'o': | ||
621 | ops[k] = readb(a); a++; | ||
622 | j += snprintf(mnemonic + j, 255-j,"%+d", | ||
623 | (n8)(ops[k++])); | ||
624 | break; | ||
625 | } | ||
626 | i++; | ||
627 | } | ||
628 | else | ||
629 | { | ||
630 | mnemonic[j++] = pattern[i++]; | ||
631 | } | ||
632 | } | ||
633 | mnemonic[j] = 0; | ||
634 | snprintf(buf,299,"%04X ", opaddr); | ||
635 | strcpy(meow,buf); | ||
636 | switch (operand_count[ops[0]]) { | ||
637 | case 1: | ||
638 | snprintf(buf,299,"%02X ", ops[0]); | ||
639 | strcat(meow,buf); | ||
640 | break; | ||
641 | case 2: | ||
642 | snprintf(buf,299,"%02X %02X ", ops[0], ops[1]); | ||
643 | strcat(meow,buf); | ||
644 | break; | ||
645 | case 3: | ||
646 | snprintf(buf,299,"%02X %02X %02X ", ops[0], ops[1], ops[2]); | ||
647 | strcat(meow,buf); | ||
648 | break; | ||
649 | } | ||
650 | snprintf(buf,"%-16.16s", mnemonic); | ||
651 | strcat(meow,buf); | ||
652 | rb->lcd_putsxy(0,0,meow); | ||
653 | rb->lcd_update(); | ||
654 | /* fprintf(fd, | ||
655 | " SP=%04X.%04X BC=%04X.%02X.%02X DE=%04X.%02X " | ||
656 | "HL=%04X.%02X A=%02X F=%02X %c%c%c%c%c", | ||
657 | SP, readw(SP), | ||
658 | BC, readb(BC), readb(0xFF00 | C), | ||
659 | DE, readb(DE), | ||
660 | HL, readb(HL), A, | ||
661 | F, (IME ? 'I' : '-'), | ||
662 | ((F & 0x80) ? 'Z' : '-'), | ||
663 | ((F & 0x40) ? 'N' : '-'), | ||
664 | ((F & 0x20) ? 'H' : '-'), | ||
665 | ((F & 0x10) ? 'C' : '-') | ||
666 | ); | ||
667 | fprintf(fd, | ||
668 | " IE=%02X IF=%02X LCDC=%02X STAT=%02X LY=%02X LYC=%02X", | ||
669 | R_IE, R_IF, R_LCDC, R_STAT, R_LY, R_LYC | ||
670 | );*/ | ||
671 | c--; | ||
672 | } | ||
673 | } | ||
674 | |||
675 | |||
676 | |||
677 | |||
678 | |||
679 | |||
680 | |||
681 | |||
682 | |||
683 | |||
684 | |||
685 | |||
686 | |||
687 | |||
688 | |||
689 | |||
690 | |||
691 | |||
692 | |||
693 | |||
694 | |||
695 | |||
696 | |||
697 | |||
698 | |||
699 | |||