Mercurial > hg > Members > kono > os9 > sbc09
comparison trace.c @ 29:3c14d647bb51
assembler and emulator fix
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 11 Jul 2018 21:16:06 +0900 |
parents | d34482fd6945 |
children | 7c5379eb406e |
comparison
equal
deleted
inserted
replaced
28:d34482fd6945 | 29:3c14d647bb51 |
---|---|
144 restart: | 144 restart: |
145 printf("v09>"); | 145 printf("v09>"); |
146 fgets(s, sizeof(s)-1, stdin); | 146 fgets(s, sizeof(s)-1, stdin); |
147 s[strlen(s)-1] = 0; // chop | 147 s[strlen(s)-1] = 0; // chop |
148 switch (s[0]) { | 148 switch (s[0]) { |
149 default: | |
150 case 'n': // step over | 149 case 'n': // step over |
151 if (nexti()) { | 150 if (nexti()) { |
152 bpskip = -1; | 151 bpskip = -1; |
153 break; | 152 break; |
154 } | 153 } |
154 default: | |
155 case 's': // one step trace | 155 case 's': // one step trace |
156 trskip = 1; | 156 trskip = 1; |
157 if (s[1]) { | 157 if (s[1]) { |
158 trskip = getarg(s+1,0); | 158 trskip = getarg(s+1,0); |
159 } | 159 } |
379 { | 379 { |
380 if (op2==0x3f) { // os9 system call | 380 if (op2==0x3f) { // os9 system call |
381 ofs=3; break; | 381 ofs=3; break; |
382 } | 382 } |
383 } | 383 } |
384 break; | |
384 case 0x11: // page3 | 385 case 0x11: // page3 |
385 { | 386 { |
386 if (op2==0x3f) { // SWI3 | 387 if (op2==0x3f) { // SWI3 |
387 ofs=2; break; | 388 ofs=2; break; |
388 } | 389 } |
389 } | 390 } |
391 break; | |
390 case 0x3f: // SWI | 392 case 0x3f: // SWI |
391 ofs=1; break; | 393 ofs=1; break; |
392 case 0x3c: // CWAI | 394 case 0x3c: // CWAI |
393 case 0x8d: // BSR | 395 case 0x8d: // BSR |
394 case 0x9d: // JSR direct | 396 case 0x9d: // JSR direct |