Mercurial > repos > blastem
comparison debug.c @ 1312:9ab3f6781202
Allow adding .w or .b to select just the low word or byte of a register in a 68K debugger print command
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Fri, 31 Mar 2017 19:11:04 -0700 |
parents | 26bdbf1f7e33 |
children | b27d7bf1107e |
comparison
equal
deleted
inserted
replaced
1311:26bdbf1f7e33 | 1312:9ab3f6781202 |
---|---|
106 default: | 106 default: |
107 fprintf(stderr, "Unrecognized format character: %c\n", format_char); | 107 fprintf(stderr, "Unrecognized format character: %c\n", format_char); |
108 } | 108 } |
109 if (param[0] == 'd' && param[1] >= '0' && param[1] <= '7') { | 109 if (param[0] == 'd' && param[1] >= '0' && param[1] <= '7') { |
110 value = context->dregs[param[1]-'0']; | 110 value = context->dregs[param[1]-'0']; |
111 if (param[2] == '.') { | |
112 if (param[3] == 'w') { | |
113 value &= 0xFFFF; | |
114 } else if (param[3] == 'b') { | |
115 value &= 0xFF; | |
116 } | |
117 } | |
111 } else if (param[0] == 'a' && param[1] >= '0' && param[1] <= '7') { | 118 } else if (param[0] == 'a' && param[1] >= '0' && param[1] <= '7') { |
112 value = context->aregs[param[1]-'0']; | 119 value = context->aregs[param[1]-'0']; |
120 if (param[2] == '.') { | |
121 if (param[3] == 'w') { | |
122 value &= 0xFFFF; | |
123 } else if (param[3] == 'b') { | |
124 value &= 0xFF; | |
125 } | |
126 } | |
113 } else if (param[0] == 'S' && param[1] == 'R') { | 127 } else if (param[0] == 'S' && param[1] == 'R') { |
114 value = (context->status << 8); | 128 value = (context->status << 8); |
115 for (int flag = 0; flag < 5; flag++) { | 129 for (int flag = 0; flag < 5; flag++) { |
116 value |= context->flags[flag] << (4-flag); | 130 value |= context->flags[flag] << (4-flag); |
117 } | 131 } |