void disassemble_puts_code(int ascol, WORD pradr, int wordc, WORD wordv[])
{
void disassemble_puts_code(int ascol, WORD pradr, int wordc, WORD wordv[])
{
}
void disassemble_cmd_adr_x(CMDTYPE cmdtype, const char *cmdname, WORD word, WORD adr, WORD pradr)
{
}
void disassemble_cmd_adr_x(CMDTYPE cmdtype, const char *cmdname, WORD word, WORD adr, WORD pradr)
{
cnt += fprintf(stdout, " %-7s ", cmdname);
if(cmdtype == R_ADR_X) {
cnt += fprintf(stdout, "%s,", g = grstr((word & 0x00F0) >> 4));
cnt += fprintf(stdout, " %-7s ", cmdname);
if(cmdtype == R_ADR_X) {
cnt += fprintf(stdout, "%s,", g = grstr((word & 0x00F0) >> 4));
void disassemble_cmd_r(CMDTYPE cmdtype, const char *cmdname, WORD word, WORD pradr)
{
void disassemble_cmd_r(CMDTYPE cmdtype, const char *cmdname, WORD word, WORD pradr)
{
cnt += fprintf(stdout, " %-7s ", cmdname);
if(cmdtype == R1_R2) {
g1 = grstr((word & 0x00F0) >> 4);
cnt += fprintf(stdout, " %-7s ", cmdname);
if(cmdtype == R1_R2) {
g1 = grstr((word & 0x00F0) >> 4);
cnt = fprintf(stdout, " DC %-5d ", word);
disassemble_puts_code(cnt, pradr, 1, (WORD []){word});
fprintf(stdout, " ::" );
cnt = fprintf(stdout, " DC %-5d ", word);
disassemble_puts_code(cnt, pradr, 1, (WORD []){word});
fprintf(stdout, " ::" );
cnt = fprintf(stdout, " DS %-5d ", wcnt);
disassemble_puts_code(cnt, pradr, 1, (WORD []){0});
cnt = fprintf(stdout, " DS %-5d ", wcnt);
disassemble_puts_code(cnt, pradr, 1, (WORD []){0});
fprintf(stdout, "\n");
disassemble_puts_code(0, pradr+1, 1, (WORD []){0});
}
fprintf(stdout, "\n");
disassemble_puts_code(0, pradr+1, 1, (WORD []){0});
}
fprintf(stdout, "MAIN START\n");
for(word = fgetword(fp); !feof(fp); i++, word = fgetword(fp)) {
fprintf(stdout, "MAIN START\n");
for(word = fgetword(fp); !feof(fp); i++, word = fgetword(fp)) {
cmdtype = getcmdtype(cmd);
if(word == 0){
if(inst == true) { /* プログラム領域の場合 */
disassemble_cmd_r(NONE, "nop", 0, i);
} else { /* データ領域の場合 */
cmdtype = getcmdtype(cmd);
if(word == 0){
if(inst == true) { /* プログラム領域の場合 */
disassemble_cmd_r(NONE, "nop", 0, i);
} else { /* データ領域の場合 */
- for(i = start; i <= end; i++) {
- word = sys->memory[i];
- cmdname = getcmdname(cmd = word & 0xFF00);
+ for(int i = start; i <= end; i++) {
+ cmd = sys->memory[i] & 0xFF00;
+ cmdname = getcmdname(cmd);
if(inst == true) { /* プログラム領域の場合 */
disassemble_cmd_r(NONE, "nop", 0, i);
} else { /* データ領域の場合。メモリーでは、DC 0とみなす */
disassemble_dc(0, i);
}
} else if(cmd == 0) {
if(inst == true) { /* プログラム領域の場合 */
disassemble_cmd_r(NONE, "nop", 0, i);
} else { /* データ領域の場合。メモリーでは、DC 0とみなす */
disassemble_dc(0, i);
}
} else if(cmd == 0) {
- disassemble_cmd_adr_x(cmdtype, cmdname, word, sys->memory[i+1], i);
+ disassemble_cmd_adr_x(cmdtype, cmdname, sys->memory[i], sys->memory[i+1], i);
- disassemble_cmd_r(cmdtype, cmdname, word, i);
+ disassemble_cmd_r(cmdtype, cmdname, sys->memory[i], i);