static const char* mon_register_print_ex(int mem) { static char buff[80]; R65C02_regs_t *regs; if (monitor_diskspace_dnr(mem) >= 0) { if (!check_drive_emu_level_ok(monitor_diskspace_dnr(mem) + 8)) { return ""; } } else if (mem != e_comp_space) { log_error(LOG_ERR, "Unknown memory space!"); return ""; } regs = mon_interfaces[mem]->cpu_R65C02_regs; sprintf(buff, "A:%02X X:%02X Y:%02X SP:%02x %c%c-%c%c%c%c%c", mon_register_get_val(mem, e_A), mon_register_get_val(mem, e_X), mon_register_get_val(mem, e_Y), mon_register_get_val(mem, e_SP), R65C02_REGS_GET_SIGN(regs) ? 'N' : '.', R65C02_REGS_GET_OVERFLOW(regs) ? 'V' : '.', R65C02_REGS_GET_BREAK(regs) ? 'B' : '.', R65C02_REGS_GET_DECIMAL(regs) ? 'D' : '.', R65C02_REGS_GET_INTERRUPT(regs) ? 'I' : '.', R65C02_REGS_GET_ZERO(regs) ? 'Z' : '.', R65C02_REGS_GET_CARRY(regs) ? 'C' : '.'); return buff; }
static void mon_register_print(int mem) { mos6510_regs_t *regs; if (monitor_diskspace_dnr(mem) >= 0) { if (!check_drive_emu_level_ok(monitor_diskspace_dnr(mem) + 8)) { return; } } else if (mem != e_comp_space) { log_error(LOG_ERR, "Unknown memory space!"); return; } regs = mon_interfaces[mem]->cpu_regs; mon_out(" ADDR AC XR YR SP 00 01 NV-BDIZC "); if (mon_interfaces[mem]->get_line_cycle != NULL) { mon_out("LIN CYC STOPWATCH\n"); } else { mon_out(" STOPWATCH\n"); } mon_out(".;%04x %02x %02x %02x %02x %02x %02x %d%d%c%d%d%d%d%d", addr_location(mon_register_get_val(mem, e_PC)), mon_register_get_val(mem, e_A), mon_register_get_val(mem, e_X), mon_register_get_val(mem, e_Y), mon_register_get_val(mem, e_SP), mon_get_mem_val(mem, 0), mon_get_mem_val(mem, 1), TEST(MOS6510_REGS_GET_SIGN(regs)), TEST(MOS6510_REGS_GET_OVERFLOW(regs)), '1', TEST(MOS6510_REGS_GET_BREAK(regs)), TEST(MOS6510_REGS_GET_DECIMAL(regs)), TEST(MOS6510_REGS_GET_INTERRUPT(regs)), TEST(MOS6510_REGS_GET_ZERO(regs)), TEST(MOS6510_REGS_GET_CARRY(regs))); if (mon_interfaces[mem]->get_line_cycle != NULL) { unsigned int line, cycle; int half_cycle; mon_interfaces[mem]->get_line_cycle(&line, &cycle, &half_cycle); if (half_cycle == -1) { mon_out(" %03i %03i", line, cycle); } else { mon_out(" %03i %03i %i", line, cycle, half_cycle); } } mon_stopwatch_show(" ", "\n"); }
/* TODO: should use mon_register_list_get */ static void mon_register_print(int mem) { h6809_regs_t *regs; if (monitor_diskspace_dnr(mem) >= 0) { if (!check_drive_emu_level_ok(monitor_diskspace_dnr(mem) + 8)) { return; } } else if (mem != e_comp_space) { log_error(LOG_ERR, "Unknown memory space!"); return; } regs = mon_interfaces[mem]->h6809_cpu_regs; mon_out(" ADDR A B X Y SP U DP EFHINZVC\n"); mon_out(".;%04x %02x %02x %04x %04x %04x %04x %02x %c%c%c%c%c%c%c%c\n", addr_location(mon_register_get_val(mem, e_PC)), mon_register_get_val(mem, e_A), mon_register_get_val(mem, e_B), mon_register_get_val(mem, e_X), mon_register_get_val(mem, e_Y), mon_register_get_val(mem, e_SP), mon_register_get_val(mem, e_U), mon_register_get_val(mem, e_DP), (H6809_REGS_TEST_E(regs) ? '1' : '.'), (H6809_REGS_TEST_F(regs) ? '1' : '.'), (H6809_REGS_TEST_H(regs) ? '1' : '.'), (H6809_REGS_TEST_I(regs) ? '1' : '.'), (H6809_REGS_TEST_N(regs) ? '1' : '.'), (H6809_REGS_TEST_Z(regs) ? '1' : '.'), (H6809_REGS_TEST_V(regs) ? '1' : '.'), (H6809_REGS_TEST_C(regs) ? '1' : '.') ); }
/* TODO: try to make this a generic function, move it into mon_register.c and remove mon_register_list_get from the monitor_cpu_type_t struct */ static mon_reg_list_t *mon_register_list_get6809(int mem) { mon_reg_list_t *mon_reg_list, *regs; mon_reg_list = regs = lib_malloc(sizeof(mon_reg_list_t) * REG_LIST_6809_SIZE); memcpy(mon_reg_list, mon_reg_list_6809, sizeof(mon_reg_list_t) * REG_LIST_6809_SIZE); do { regs->val = (unsigned int)mon_register_get_val(mem, regs->id); ++regs; } while (regs->name != NULL); return mon_reg_list; }
static mon_reg_list_t *mon_register_list_getR65C02(int mem) { mon_reg_list_t *mon_reg_list; mon_reg_list = lib_malloc(sizeof(mon_reg_list_t) * 9); mon_reg_list[0].name = "PC"; mon_reg_list[0].val = (unsigned int)mon_register_get_val(mem, e_PC); mon_reg_list[0].size = 16; mon_reg_list[0].flags = 0; mon_reg_list[0].next = &mon_reg_list[1]; mon_reg_list[1].name = "AC"; mon_reg_list[1].val = (unsigned int)mon_register_get_val(mem, e_A); mon_reg_list[1].size = 8; mon_reg_list[1].flags = 0; mon_reg_list[1].next = &mon_reg_list[2]; mon_reg_list[2].name = "XR"; mon_reg_list[2].val = (unsigned int)mon_register_get_val(mem, e_X); mon_reg_list[2].size = 8; mon_reg_list[2].flags = 0; mon_reg_list[2].next = &mon_reg_list[3]; mon_reg_list[3].name = "YR"; mon_reg_list[3].val = (unsigned int)mon_register_get_val(mem, e_Y); mon_reg_list[3].size = 8; mon_reg_list[3].flags = 0; mon_reg_list[3].next = &mon_reg_list[4]; mon_reg_list[4].name = "SP"; mon_reg_list[4].val = (unsigned int)mon_register_get_val(mem, e_SP); mon_reg_list[4].size = 8; mon_reg_list[4].flags = 0; mon_reg_list[4].next = &mon_reg_list[5]; mon_reg_list[5].name = "FL"; mon_reg_list[5].val = (unsigned int)mon_register_get_val(mem, e_FLAGS) | 0x20; mon_reg_list[5].size = 8; mon_reg_list[5].flags = 0; mon_reg_list[5].next = &mon_reg_list[6]; mon_reg_list[6].name = "NV-BDIZC"; mon_reg_list[6].val = (unsigned int)mon_register_get_val(mem, e_FLAGS) | 0x20; mon_reg_list[6].size = 8; mon_reg_list[6].flags = 1; mon_reg_list[6].next = NULL; return mon_reg_list; }
/* TODO: should use mon_register_list_get */ static const char* mon_register_print_ex(int mem) { static char buff[80]; h6809_regs_t *regs; if (monitor_diskspace_dnr(mem) >= 0) { if (!check_drive_emu_level_ok(monitor_diskspace_dnr(mem) + 8)) { return ""; } } else if (mem != e_comp_space) { log_error(LOG_ERR, "Unknown memory space!"); return ""; } regs = mon_interfaces[mem]->h6809_cpu_regs; sprintf(buff, "A:%02X B:%02X X:%04X Y:%04X SP:%04X U:%04X DP:%02x %c%c%c%c%c%c%c%c", mon_register_get_val(mem, e_A), mon_register_get_val(mem, e_B), mon_register_get_val(mem, e_X), mon_register_get_val(mem, e_Y), mon_register_get_val(mem, e_SP), mon_register_get_val(mem, e_U), mon_register_get_val(mem, e_DP), H6809_REGS_TEST_E(regs) ? 'E' : '.', H6809_REGS_TEST_F(regs) ? 'F' : '.', H6809_REGS_TEST_H(regs) ? 'H' : '.', H6809_REGS_TEST_I(regs) ? 'I' : '.', H6809_REGS_TEST_N(regs) ? 'N' : '.', H6809_REGS_TEST_Z(regs) ? 'Z' : '.', H6809_REGS_TEST_V(regs) ? 'V' : '.', H6809_REGS_TEST_C(regs) ? 'C' : '.' ); return buff; }
static mon_reg_list_t *mon_register_list_get6502dtv(int mem) { mon_reg_list_t *mon_reg_list; mon_reg_list = lib_malloc(sizeof(mon_reg_list_t) * 24); mon_reg_list[0].name = "PC"; mon_reg_list[0].val = (unsigned int)mon_register_get_val(mem, e_PC); mon_reg_list[0].size = 16; mon_reg_list[0].flags = 0; mon_reg_list[0].next = &mon_reg_list[1]; mon_reg_list[1].name = "AC"; mon_reg_list[1].val = (unsigned int)mon_register_get_val(mem, e_A); mon_reg_list[1].size = 8; mon_reg_list[1].flags = 0; mon_reg_list[1].next = &mon_reg_list[2]; mon_reg_list[2].name = "XR"; mon_reg_list[2].val = (unsigned int)mon_register_get_val(mem, e_X); mon_reg_list[2].size = 8; mon_reg_list[2].flags = 0; mon_reg_list[2].next = &mon_reg_list[3]; mon_reg_list[3].name = "YR"; mon_reg_list[3].val = (unsigned int)mon_register_get_val(mem, e_Y); mon_reg_list[3].size = 8; mon_reg_list[3].flags = 0; mon_reg_list[3].next = &mon_reg_list[4]; mon_reg_list[4].name = "SP"; mon_reg_list[4].val = (unsigned int)mon_register_get_val(mem, e_SP); mon_reg_list[4].size = 8; mon_reg_list[4].flags = 0; mon_reg_list[4].next = &mon_reg_list[5]; /* Note: The DTV always has reg 00 and 01 */ mon_reg_list[5].name = "00"; mon_reg_list[5].val = (unsigned int)mon_get_mem_val(mem, 0); mon_reg_list[5].size = 8; mon_reg_list[5].flags = 0; mon_reg_list[5].next = &mon_reg_list[6]; mon_reg_list[6].name = "01"; mon_reg_list[6].val = (unsigned int)mon_get_mem_val(mem, 1); mon_reg_list[6].size = 8; mon_reg_list[6].flags = 0; mon_reg_list[6].next = &mon_reg_list[7]; mon_reg_list[7].name = "FL"; mon_reg_list[7].val = (unsigned int)mon_register_get_val(mem, e_FLAGS) | 0x20; mon_reg_list[7].size = 8; mon_reg_list[7].flags = 0; mon_reg_list[7].next = &mon_reg_list[8]; mon_reg_list[8].name = "NV-BDIZC"; mon_reg_list[8].val = (unsigned int)mon_register_get_val(mem, e_FLAGS) | 0x20; mon_reg_list[8].size = 8; mon_reg_list[8].flags = 1; mon_reg_list[8].next = &mon_reg_list[9]; mon_reg_list[9].name = "R3"; mon_reg_list[9].val = (unsigned int)mon_register_get_val(mem, e_R3); mon_reg_list[9].size = 8; mon_reg_list[9].flags = 0; mon_reg_list[9].next = &mon_reg_list[10]; mon_reg_list[10].name = "R4"; mon_reg_list[10].val = (unsigned int)mon_register_get_val(mem, e_R4); mon_reg_list[10].size = 8; mon_reg_list[10].flags = 0; mon_reg_list[10].next = &mon_reg_list[11]; mon_reg_list[11].name = "R5"; mon_reg_list[11].val = (unsigned int)mon_register_get_val(mem, e_R5); mon_reg_list[11].size = 8; mon_reg_list[11].flags = 0; mon_reg_list[11].next = &mon_reg_list[12]; mon_reg_list[12].name = "R6"; mon_reg_list[12].val = (unsigned int)mon_register_get_val(mem, e_R6); mon_reg_list[12].size = 8; mon_reg_list[12].flags = 0; mon_reg_list[12].next = &mon_reg_list[13]; mon_reg_list[13].name = "R7"; mon_reg_list[13].val = (unsigned int)mon_register_get_val(mem, e_R7); mon_reg_list[13].size = 8; mon_reg_list[13].flags = 0; mon_reg_list[13].next = &mon_reg_list[14]; mon_reg_list[14].name = "R8"; mon_reg_list[14].val = (unsigned int)mon_register_get_val(mem, e_R8); mon_reg_list[14].size = 8; mon_reg_list[14].flags = 0; mon_reg_list[14].next = &mon_reg_list[15]; mon_reg_list[15].name = "R9"; mon_reg_list[15].val = (unsigned int)mon_register_get_val(mem, e_R9); mon_reg_list[15].size = 8; mon_reg_list[15].flags = 0; mon_reg_list[15].next = &mon_reg_list[16]; mon_reg_list[16].name = "R10"; mon_reg_list[16].val = (unsigned int)mon_register_get_val(mem, e_R10); mon_reg_list[16].size = 8; mon_reg_list[16].flags = 0; mon_reg_list[16].next = &mon_reg_list[17]; mon_reg_list[17].name = "R11"; mon_reg_list[17].val = (unsigned int)mon_register_get_val(mem, e_R11); mon_reg_list[17].size = 8; mon_reg_list[17].flags = 0; mon_reg_list[17].next = &mon_reg_list[18]; mon_reg_list[18].name = "R12"; mon_reg_list[18].val = (unsigned int)mon_register_get_val(mem, e_R12); mon_reg_list[18].size = 8; mon_reg_list[18].flags = 0; mon_reg_list[18].next = &mon_reg_list[19]; mon_reg_list[19].name = "R13"; mon_reg_list[19].val = (unsigned int)mon_register_get_val(mem, e_R13); mon_reg_list[19].size = 8; mon_reg_list[19].flags = 0; mon_reg_list[19].next = &mon_reg_list[20]; mon_reg_list[20].name = "R14"; mon_reg_list[20].val = (unsigned int)mon_register_get_val(mem, e_R14); mon_reg_list[20].size = 8; mon_reg_list[20].flags = 0; mon_reg_list[20].next = &mon_reg_list[21]; mon_reg_list[21].name = "R15"; mon_reg_list[21].val = (unsigned int)mon_register_get_val(mem, e_R15); mon_reg_list[21].size = 8; mon_reg_list[21].flags = 0; mon_reg_list[21].next = &mon_reg_list[22]; mon_reg_list[22].name = "ACM"; mon_reg_list[22].val = (unsigned int)mon_register_get_val(mem, e_ACM); mon_reg_list[22].size = 8; mon_reg_list[22].flags = 0; mon_reg_list[22].next = &mon_reg_list[23]; mon_reg_list[23].name = "YXM"; mon_reg_list[23].val = (unsigned int)mon_register_get_val(mem, e_YXM); mon_reg_list[23].size = 8; mon_reg_list[23].flags = 0; mon_reg_list[23].next = NULL; return mon_reg_list; }
static void mon_register_print(int mem) { mos6510dtv_regs_t *regs; if (monitor_diskspace_dnr(mem) >= 0) { if (!check_drive_emu_level_ok(monitor_diskspace_dnr(mem) + 8)) return; } else if (mem != e_comp_space) { #ifdef CELL_DEBUG printf("ERROR: Unknown memory space!\n"); #endif return; } regs = mon_interfaces[mem]->dtv_cpu_regs; mon_out(" ADDR AC XR YR SP 00 01 NV-BDIZC"); if (mem == e_comp_space && mon_interfaces[mem]->get_line_cycle != NULL) mon_out(" LIN CYC\n"); else mon_out("\n"); mon_out(".;%04x %02x %02x %02x %02x %02x %02x %d%d%c%d%d%d%d%d", addr_location(mon_register_get_val(mem, e_PC)), mon_register_get_val(mem, e_A), mon_register_get_val(mem, e_X), mon_register_get_val(mem, e_Y), mon_register_get_val(mem, e_SP), mon_get_mem_val(mem, 0), mon_get_mem_val(mem, 1), TEST(MOS6510DTV_REGS_GET_SIGN(regs)), TEST(MOS6510DTV_REGS_GET_OVERFLOW(regs)), '1', TEST(MOS6510DTV_REGS_GET_BREAK(regs)), TEST(MOS6510DTV_REGS_GET_DECIMAL(regs)), TEST(MOS6510DTV_REGS_GET_INTERRUPT(regs)), TEST(MOS6510DTV_REGS_GET_ZERO(regs)), TEST(MOS6510DTV_REGS_GET_CARRY(regs))); if (mem == e_comp_space && mon_interfaces[mem]->get_line_cycle != NULL) { unsigned int line, cycle; int half_cycle; mon_interfaces[mem]->get_line_cycle(&line, &cycle, &half_cycle); if (half_cycle==-1) mon_out(" %03i %03i\n", line, cycle); else mon_out(" %03i %03i %i\n", line, cycle, half_cycle); } else { mon_out("\n"); } if (mem == e_comp_space) { mon_out("R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 ACM YXM\n"); mon_out("%02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x\n", mon_register_get_val(mem, e_R3), mon_register_get_val(mem, e_R4), mon_register_get_val(mem, e_R5), mon_register_get_val(mem, e_R6), mon_register_get_val(mem, e_R7), mon_register_get_val(mem, e_R8), mon_register_get_val(mem, e_R9), mon_register_get_val(mem, e_R10), mon_register_get_val(mem, e_R11), mon_register_get_val(mem, e_R12), mon_register_get_val(mem, e_R13), mon_register_get_val(mem, e_R14), mon_register_get_val(mem, e_R15), mon_register_get_val(mem, e_ACM), mon_register_get_val(mem, e_YXM)); } }
static mon_reg_list_t *mon_register_list_get6502(int mem) { mon_reg_list_t *mon_reg_list; mon_reg_list = lib_malloc(sizeof(mon_reg_list_t) * 9); mon_reg_list[0].name = "PC"; mon_reg_list[0].val = (unsigned int)mon_register_get_val(mem, e_PC); mon_reg_list[0].size = 16; mon_reg_list[0].flags = 0; mon_reg_list[0].next = &mon_reg_list[1]; mon_reg_list[1].name = "AC"; mon_reg_list[1].val = (unsigned int)mon_register_get_val(mem, e_A); mon_reg_list[1].size = 8; mon_reg_list[1].flags = 0; mon_reg_list[1].next = &mon_reg_list[2]; mon_reg_list[2].name = "XR"; mon_reg_list[2].val = (unsigned int)mon_register_get_val(mem, e_X); mon_reg_list[2].size = 8; mon_reg_list[2].flags = 0; mon_reg_list[2].next = &mon_reg_list[3]; mon_reg_list[3].name = "YR"; mon_reg_list[3].val = (unsigned int)mon_register_get_val(mem, e_Y); mon_reg_list[3].size = 8; mon_reg_list[3].flags = 0; mon_reg_list[3].next = &mon_reg_list[4]; mon_reg_list[4].name = "SP"; mon_reg_list[4].val = (unsigned int)mon_register_get_val(mem, e_SP); mon_reg_list[4].size = 8; mon_reg_list[4].flags = 0; /* mon_reg_list[4].next = &mon_reg_list[5]; this is depandant upon the following distinction! */ /* FIXME: This is not elegant. The destinction between 6502/6510 should not be done by the memory space. This will change once we have completely separated 6502, 6509, 6510 and Z80. */ if (mem == e_comp_space) { mon_reg_list[4].next = &mon_reg_list[5]; mon_reg_list[5].name = "00"; mon_reg_list[5].val = (unsigned int)mon_get_mem_val(mem, 0); mon_reg_list[5].size = 8; mon_reg_list[5].flags = 0; mon_reg_list[5].next = &mon_reg_list[6]; mon_reg_list[6].name = "01"; mon_reg_list[6].val = (unsigned int)mon_get_mem_val(mem, 1); mon_reg_list[6].size = 8; mon_reg_list[6].flags = 0; mon_reg_list[6].next = &mon_reg_list[7]; } else { mon_reg_list[4].next = &mon_reg_list[7]; } mon_reg_list[7].name = "FL"; mon_reg_list[7].val = (unsigned int)mon_register_get_val(mem, e_FLAGS) | 0x20; mon_reg_list[7].size = 8; mon_reg_list[7].flags = 0; mon_reg_list[7].next = &mon_reg_list[8]; mon_reg_list[8].name = "NV-BDIZC"; mon_reg_list[8].val = (unsigned int)mon_register_get_val(mem, e_FLAGS) | 0x20; mon_reg_list[8].size = 8; mon_reg_list[8].flags = 1; mon_reg_list[8].next = NULL; return mon_reg_list; }
static mon_reg_list_t *mon_register_list_getz80(int mem) { mon_reg_list_t *mon_reg_list; mon_reg_list = lib_malloc(sizeof(mon_reg_list_t) * 14); mon_reg_list[0].name = "PC"; mon_reg_list[0].val = (unsigned int)mon_register_get_val(mem, e_PC); mon_reg_list[0].size = 16; mon_reg_list[0].flags = 0; mon_reg_list[0].next = &mon_reg_list[1]; mon_reg_list[1].name = "AF"; mon_reg_list[1].val = (unsigned int)mon_register_get_val(mem, e_AF); mon_reg_list[1].size = 16; mon_reg_list[1].flags = 0; mon_reg_list[1].next = &mon_reg_list[2]; mon_reg_list[2].name = "BC"; mon_reg_list[2].val = (unsigned int)mon_register_get_val(mem, e_BC); mon_reg_list[2].size = 16; mon_reg_list[2].flags = 0; mon_reg_list[2].next = &mon_reg_list[3]; mon_reg_list[3].name = "DE"; mon_reg_list[3].val = (unsigned int)mon_register_get_val(mem, e_DE); mon_reg_list[3].size = 16; mon_reg_list[3].flags = 0; mon_reg_list[3].next = &mon_reg_list[4]; mon_reg_list[4].name = "HL"; mon_reg_list[4].val = (unsigned int)mon_register_get_val(mem, e_HL); mon_reg_list[4].size = 16; mon_reg_list[4].flags = 0; mon_reg_list[4].next = &mon_reg_list[5]; mon_reg_list[5].name = "IX"; mon_reg_list[5].val = (unsigned int)mon_register_get_val(mem, e_IX); mon_reg_list[5].size = 16; mon_reg_list[5].flags = 0; mon_reg_list[5].next = &mon_reg_list[6]; mon_reg_list[6].name = "IY"; mon_reg_list[6].val = (unsigned int)mon_register_get_val(mem, e_IY); mon_reg_list[6].size = 16; mon_reg_list[6].flags = 0; mon_reg_list[6].next = &mon_reg_list[7]; mon_reg_list[7].name = "SP"; mon_reg_list[7].val = (unsigned int)mon_register_get_val(mem, e_SP); mon_reg_list[7].size = 16; mon_reg_list[7].flags = 0; mon_reg_list[7].next = &mon_reg_list[8]; mon_reg_list[8].name = "I"; mon_reg_list[8].val = (unsigned int)mon_register_get_val(mem, e_I); mon_reg_list[8].size = 8; mon_reg_list[8].flags = 0; mon_reg_list[8].next = &mon_reg_list[9]; mon_reg_list[9].name = "R"; mon_reg_list[9].val = (unsigned int)mon_register_get_val(mem, e_R); mon_reg_list[9].size = 8; mon_reg_list[9].flags = 0; mon_reg_list[9].next = &mon_reg_list[10]; mon_reg_list[10].name = "AF'"; mon_reg_list[10].val = (unsigned int)mon_register_get_val(mem, e_AF2); mon_reg_list[10].size = 16; mon_reg_list[10].flags = 0; mon_reg_list[10].next = &mon_reg_list[11]; mon_reg_list[11].name = "BC'"; mon_reg_list[11].val = (unsigned int)mon_register_get_val(mem, e_BC2); mon_reg_list[11].size = 16; mon_reg_list[11].flags = 0; mon_reg_list[11].next = &mon_reg_list[12]; mon_reg_list[12].name = "DE'"; mon_reg_list[12].val = (unsigned int)mon_register_get_val(mem, e_DE2); mon_reg_list[12].size = 16; mon_reg_list[12].flags = 0; mon_reg_list[12].next = &mon_reg_list[13]; mon_reg_list[13].name = "HL'"; mon_reg_list[13].val = (unsigned int)mon_register_get_val(mem, e_HL2); mon_reg_list[13].size = 16; mon_reg_list[13].flags = 0; mon_reg_list[13].next = NULL; return mon_reg_list; }
static void mon_register_print(int mem) { z80_regs_t *regs; if (monitor_diskspace_dnr(mem) >= 0) { if (!check_drive_emu_level_ok(monitor_diskspace_dnr(mem) + 8)) return; } else if (mem != e_comp_space) { log_error(LOG_ERR, "Unknown memory space!"); return; } regs = mon_interfaces[mem]->z80_cpu_regs; mon_out(" ADDR AF BC DE HL IX IY SP I R AF' BC' DE' HL'\n"); mon_out(".;%04x %04x %04x %04x %04x %04x %04x %04x %02x %02x %04x %04x %04x %04x\n", addr_location(mon_register_get_val(mem, e_PC)), mon_register_get_val(mem, e_AF), mon_register_get_val(mem, e_BC), mon_register_get_val(mem, e_DE), mon_register_get_val(mem, e_HL), mon_register_get_val(mem, e_IX), mon_register_get_val(mem, e_IY), mon_register_get_val(mem, e_SP), mon_register_get_val(mem, e_I), mon_register_get_val(mem, e_R), mon_register_get_val(mem, e_AF2), mon_register_get_val(mem, e_BC2), mon_register_get_val(mem, e_DE2), mon_register_get_val(mem, e_HL2)); }
/* TODO: should use mon_register_list_get */ static void mon_register_print(int mem) { WDC65816_regs_t *regs; unsigned int line = 0, cycle = 0; int half_cycle = -1; if (monitor_diskspace_dnr(mem) >= 0) { if (!check_drive_emu_level_ok(monitor_diskspace_dnr(mem) + 8)) { return; } } else if (mem != e_comp_space) { log_error(LOG_ERR, "Unknown memory space!"); return; } regs = mon_interfaces[mem]->cpu_65816_regs; if (mem == e_comp_space && mon_interfaces[mem]->get_line_cycle != NULL) { mon_interfaces[mem]->get_line_cycle(&line, &cycle, &half_cycle); } if (mon_register_get_val(mem, e_E)) { mon_out(" PB ADDR A B X Y SP DPRE DB NV-BDIZC E"); if (mem == e_comp_space && mon_interfaces[mem]->get_line_cycle != NULL) { mon_out(" LIN CYC"); if (half_cycle != -1) { mon_out(".SB"); } } mon_out("\n.;%02x %04x %02x %02x %02x %02x %02x %04x %02x %d%d1%d%d%d%d%d 1", mon_register_get_val(mem, e_PBR), addr_location(mon_register_get_val(mem, e_PC)), mon_register_get_val(mem, e_A), mon_register_get_val(mem, e_B), mon_register_get_val(mem, e_X) & 0xff, mon_register_get_val(mem, e_Y) & 0xff, mon_register_get_val(mem, e_SP) & 0xff, mon_register_get_val(mem, e_DPR), mon_register_get_val(mem, e_DBR), TEST(WDC65816_REGS_GET_SIGN(regs)), TEST(WDC65816_REGS_GET_OVERFLOW(regs)), TEST(WDC65816_REGS_GET_BREAK(regs)), TEST(WDC65816_REGS_GET_DECIMAL(regs)), TEST(WDC65816_REGS_GET_INTERRUPT(regs)), TEST(WDC65816_REGS_GET_ZERO(regs)), TEST(WDC65816_REGS_GET_CARRY(regs))); } else { mon_out(" PB ADDR"); mon_out(WDC65816_REGS_GET_65816_M(regs) ? " A B " : " CREG"); mon_out(WDC65816_REGS_GET_65816_X(regs) ? " XH X YH Y " : " X Y "); mon_out(" STCK DPRE DB NVMXDIZC E"); if (mem == e_comp_space && mon_interfaces[mem]->get_line_cycle != NULL) { mon_out(" LIN CYC"); if (half_cycle != -1) { mon_out(".SB"); } } mon_out("\n.;%02x %04x", mon_register_get_val(mem, e_PBR), addr_location(mon_register_get_val(mem, e_PC))); if (WDC65816_REGS_GET_65816_M(regs)) { mon_out(" %02x %02x", mon_register_get_val(mem, e_A), mon_register_get_val(mem, e_B)); } else { mon_out(" %02x%02x", mon_register_get_val(mem, e_B), mon_register_get_val(mem, e_A)); } if (WDC65816_REGS_GET_65816_X(regs)) { mon_out(" %02x %02x %02x %02x", mon_register_get_val(mem, e_X) >> 8, mon_register_get_val(mem, e_X) & 0xff, mon_register_get_val(mem, e_Y) >> 8, mon_register_get_val(mem, e_Y) & 0xff); } else { mon_out(" %04x %04x", mon_register_get_val(mem, e_X), mon_register_get_val(mem, e_Y)); } mon_out(" %04x %04x %02x %d%d%d%d%d%d%d%d 0", mon_register_get_val(mem, e_SP), mon_register_get_val(mem, e_DPR), mon_register_get_val(mem, e_DBR), TEST(WDC65816_REGS_GET_SIGN(regs)), TEST(WDC65816_REGS_GET_OVERFLOW(regs)), TEST(WDC65816_REGS_GET_65816_M(regs)), TEST(WDC65816_REGS_GET_65816_X(regs)), TEST(WDC65816_REGS_GET_DECIMAL(regs)), TEST(WDC65816_REGS_GET_INTERRUPT(regs)), TEST(WDC65816_REGS_GET_ZERO(regs)), TEST(WDC65816_REGS_GET_CARRY(regs))); }
static mon_reg_list_t *mon_register_list_get6809(int mem) { mon_reg_list_t *mon_reg_list; mon_reg_list = lib_malloc(sizeof(mon_reg_list_t) * 11); mon_reg_list[0].name = "X"; mon_reg_list[0].val = (unsigned int)mon_register_get_val(mem, e_X); mon_reg_list[0].size = 16; mon_reg_list[0].flags = 0; mon_reg_list[0].next = &mon_reg_list[1]; mon_reg_list[1].name = "Y"; mon_reg_list[1].val = (unsigned int)mon_register_get_val(mem, e_Y); mon_reg_list[1].size = 16; mon_reg_list[1].flags = 0; mon_reg_list[1].next = &mon_reg_list[2]; mon_reg_list[2].name = "U"; mon_reg_list[2].val = (unsigned int)mon_register_get_val(mem, e_U); mon_reg_list[2].size = 16; mon_reg_list[2].flags = 0; mon_reg_list[2].next = &mon_reg_list[3]; mon_reg_list[3].name = "S"; mon_reg_list[3].val = (unsigned int)mon_register_get_val(mem, e_SP); mon_reg_list[3].size = 16; mon_reg_list[3].flags = 0; mon_reg_list[3].next = &mon_reg_list[4]; mon_reg_list[4].name = "PC"; mon_reg_list[4].val = (unsigned int)mon_register_get_val(mem, e_PC); mon_reg_list[4].size = 16; mon_reg_list[4].flags = 0; mon_reg_list[4].next = &mon_reg_list[5]; mon_reg_list[5].name = "DP"; mon_reg_list[5].val = (unsigned int)mon_register_get_val(mem, e_DP); mon_reg_list[5].size = 8; mon_reg_list[5].flags = 0; mon_reg_list[5].next = &mon_reg_list[6]; mon_reg_list[6].name = "CC"; mon_reg_list[6].val = (unsigned int)mon_register_get_val(mem, e_FLAGS); mon_reg_list[6].size = 8; mon_reg_list[6].flags = 0; mon_reg_list[6].next = &mon_reg_list[7]; mon_reg_list[7].name = "EFHINZVC"; mon_reg_list[7].val = (unsigned int)mon_register_get_val(mem, e_FLAGS); mon_reg_list[7].size = 8; mon_reg_list[7].flags = 1; mon_reg_list[7].next = &mon_reg_list[8]; mon_reg_list[8].name = "A"; mon_reg_list[8].val = (unsigned int)mon_register_get_val(mem, e_A); mon_reg_list[8].size = 8; mon_reg_list[8].flags = 0; mon_reg_list[8].next = &mon_reg_list[9]; mon_reg_list[9].name = "B"; mon_reg_list[9].val = (unsigned int)mon_register_get_val(mem, e_B); mon_reg_list[9].size = 8; mon_reg_list[9].flags = 0; mon_reg_list[9].next = &mon_reg_list[10]; mon_reg_list[10].name = "D"; mon_reg_list[10].val = (unsigned int)mon_register_get_val(mem, e_D); mon_reg_list[10].size = 16; mon_reg_list[10].flags = 0; mon_reg_list[10].next = NULL; return mon_reg_list; }