int sim_fetch_register (SIM_DESC sd, int rn, unsigned char *memory, int length) { sim_cpu *cpu; uint16 val; int size = 2; cpu = STATE_CPU (sd, 0); switch (rn) { case A_REGNUM: val = cpu_get_a (cpu); size = 1; break; case B_REGNUM: val = cpu_get_b (cpu); size = 1; break; case D_REGNUM: val = cpu_get_d (cpu); break; case X_REGNUM: val = cpu_get_x (cpu); break; case Y_REGNUM: val = cpu_get_y (cpu); break; case SP_REGNUM: val = cpu_get_sp (cpu); break; case PC_REGNUM: val = cpu_get_pc (cpu); break; case PSW_REGNUM: val = cpu_get_ccr (cpu); size = 1; break; case PAGE_REGNUM: val = cpu_get_page (cpu); size = 1; break; default: val = 0; break; } if (size == 1) { memory[0] = val; } else { memory[0] = val >> 8; memory[1] = val & 0x0FF; } return size; }
static int m68hc11_reg_fetch (SIM_CPU *cpu, int rn, unsigned char *memory, int length) { uint16 val; int size = 2; switch (rn) { case A_REGNUM: val = cpu_get_a (cpu); size = 1; break; case B_REGNUM: val = cpu_get_b (cpu); size = 1; break; case D_REGNUM: val = cpu_get_d (cpu); break; case X_REGNUM: val = cpu_get_x (cpu); break; case Y_REGNUM: val = cpu_get_y (cpu); break; case SP_REGNUM: val = cpu_get_sp (cpu); break; case PC_REGNUM: val = cpu_get_pc (cpu); break; case PSW_REGNUM: val = cpu_get_ccr (cpu); size = 1; break; case PAGE_REGNUM: val = cpu_get_page (cpu); size = 1; break; default: val = 0; break; } if (size == 1) { memory[0] = val; } else { memory[0] = val >> 8; memory[1] = val & 0x0FF; } return size; }