diff options
Diffstat (limited to 'src/emu/cpu/dsp56k/dsp56k.c')
-rw-r--r-- | src/emu/cpu/dsp56k/dsp56k.c | 328 |
1 files changed, 164 insertions, 164 deletions
diff --git a/src/emu/cpu/dsp56k/dsp56k.c b/src/emu/cpu/dsp56k/dsp56k.c index 7ac2c4a2c53..45ac6e01c91 100644 --- a/src/emu/cpu/dsp56k/dsp56k.c +++ b/src/emu/cpu/dsp56k/dsp56k.c @@ -322,7 +322,7 @@ static size_t execute_one_new(dsp56k_core* cpustate) Opcode op(w0, w1); op.evaluate(cpustate); - PC += op.evalSize(); // Special size function needed to handle jmps, etc. + PC += op.evalSize(); // Special size function needed to handle jmps, etc. // TODO: Currently all operations take up 4 cycles (inst->cycles()). return 4; @@ -353,7 +353,7 @@ static CPU_EXECUTE( dsp56k ) { execute_one(cpustate); if (0) cpustate->icount -= execute_one_new(cpustate); - pcu_service_interrupts(cpustate); // TODO: Is it incorrect to service after each instruction? + pcu_service_interrupts(cpustate); // TODO: Is it incorrect to service after each instruction? } } @@ -369,13 +369,13 @@ extern CPU_DISASSEMBLE( dsp56k ); * Internal Memory Maps ****************************************************************************/ static ADDRESS_MAP_START( dsp56156_program_map, AS_PROGRAM, 16, legacy_cpu_device ) - AM_RANGE(0x0000,0x07ff) AM_READWRITE_LEGACY(DSP56K::program_r, DSP56K::program_w) /* 1-5 */ + AM_RANGE(0x0000,0x07ff) AM_READWRITE_LEGACY(DSP56K::program_r, DSP56K::program_w) /* 1-5 */ // AM_RANGE(0x2f00,0x2fff) AM_ROM /* 1-5 PROM reserved memory. Is this the right spot for it? */ ADDRESS_MAP_END static ADDRESS_MAP_START( dsp56156_x_data_map, AS_DATA, 16, legacy_cpu_device ) - AM_RANGE(0x0000,0x07ff) AM_RAM /* 1-5 */ - AM_RANGE(0xffc0,0xffff) AM_READWRITE_LEGACY(DSP56K::peripheral_register_r, DSP56K::peripheral_register_w) /* 1-5 On-chip peripheral registers memory mapped in data space */ + AM_RANGE(0x0000,0x07ff) AM_RAM /* 1-5 */ + AM_RANGE(0xffc0,0xffff) AM_READWRITE_LEGACY(DSP56K::peripheral_register_r, DSP56K::peripheral_register_w) /* 1-5 On-chip peripheral registers memory mapped in data space */ ADDRESS_MAP_END @@ -434,58 +434,58 @@ static CPU_SET_INFO( dsp56k ) case CPUINFO_INT_INPUT_STATE + DSP56K_IRQ_RESET: set_irq_line(cpustate, DSP56K_IRQ_RESET, info->i); break; case CPUINFO_INT_PC: - case CPUINFO_INT_REGISTER + DSP56K_PC: PC = info->i & 0xffff; break; + case CPUINFO_INT_REGISTER + DSP56K_PC: PC = info->i & 0xffff; break; - case CPUINFO_INT_REGISTER + DSP56K_SR: SR = info->i & 0xffff; break; - case CPUINFO_INT_REGISTER + DSP56K_LC: LC = info->i & 0xffff; break; - case CPUINFO_INT_REGISTER + DSP56K_LA: LA = info->i & 0xffff; break; + case CPUINFO_INT_REGISTER + DSP56K_SR: SR = info->i & 0xffff; break; + case CPUINFO_INT_REGISTER + DSP56K_LC: LC = info->i & 0xffff; break; + case CPUINFO_INT_REGISTER + DSP56K_LA: LA = info->i & 0xffff; break; case CPUINFO_INT_SP: - case CPUINFO_INT_REGISTER + DSP56K_SP: SP = info->i & 0xff; break; + case CPUINFO_INT_REGISTER + DSP56K_SP: SP = info->i & 0xff; break; - case CPUINFO_INT_REGISTER + DSP56K_OMR: OMR = info->i & 0xff; break; + case CPUINFO_INT_REGISTER + DSP56K_OMR: OMR = info->i & 0xff; break; - case CPUINFO_INT_REGISTER + DSP56K_X: X = info->i & 0xffffffff; break; - case CPUINFO_INT_REGISTER + DSP56K_Y: Y = info->i & 0xffffffff; break; + case CPUINFO_INT_REGISTER + DSP56K_X: X = info->i & 0xffffffff; break; + case CPUINFO_INT_REGISTER + DSP56K_Y: Y = info->i & 0xffffffff; break; - case CPUINFO_INT_REGISTER + DSP56K_A: A = info->i & (UINT64)U64(0xffffffffffffffff); break; /* could benefit from a better mask? */ - case CPUINFO_INT_REGISTER + DSP56K_B: B = info->i & (UINT64)U64(0xffffffffffffffff); break; /* could benefit from a better mask? */ + case CPUINFO_INT_REGISTER + DSP56K_A: A = info->i & (UINT64)U64(0xffffffffffffffff); break; /* could benefit from a better mask? */ + case CPUINFO_INT_REGISTER + DSP56K_B: B = info->i & (UINT64)U64(0xffffffffffffffff); break; /* could benefit from a better mask? */ - case CPUINFO_INT_REGISTER + DSP56K_R0: R0 = info->i & 0xffff; break; - case CPUINFO_INT_REGISTER + DSP56K_R1: R1 = info->i & 0xffff; break; - case CPUINFO_INT_REGISTER + DSP56K_R2: R2 = info->i & 0xffff; break; - case CPUINFO_INT_REGISTER + DSP56K_R3: R3 = info->i & 0xffff; break; + case CPUINFO_INT_REGISTER + DSP56K_R0: R0 = info->i & 0xffff; break; + case CPUINFO_INT_REGISTER + DSP56K_R1: R1 = info->i & 0xffff; break; + case CPUINFO_INT_REGISTER + DSP56K_R2: R2 = info->i & 0xffff; break; + case CPUINFO_INT_REGISTER + DSP56K_R3: R3 = info->i & 0xffff; break; - case CPUINFO_INT_REGISTER + DSP56K_N0: N0 = info->i & 0xffff; break; - case CPUINFO_INT_REGISTER + DSP56K_N1: N1 = info->i & 0xffff; break; - case CPUINFO_INT_REGISTER + DSP56K_N2: N2 = info->i & 0xffff; break; - case CPUINFO_INT_REGISTER + DSP56K_N3: N3 = info->i & 0xffff; break; + case CPUINFO_INT_REGISTER + DSP56K_N0: N0 = info->i & 0xffff; break; + case CPUINFO_INT_REGISTER + DSP56K_N1: N1 = info->i & 0xffff; break; + case CPUINFO_INT_REGISTER + DSP56K_N2: N2 = info->i & 0xffff; break; + case CPUINFO_INT_REGISTER + DSP56K_N3: N3 = info->i & 0xffff; break; - case CPUINFO_INT_REGISTER + DSP56K_M0: M0 = info->i & 0xffff; break; - case CPUINFO_INT_REGISTER + DSP56K_M1: M1 = info->i & 0xffff; break; - case CPUINFO_INT_REGISTER + DSP56K_M2: M2 = info->i & 0xffff; break; - case CPUINFO_INT_REGISTER + DSP56K_M3: M3 = info->i & 0xffff; break; + case CPUINFO_INT_REGISTER + DSP56K_M0: M0 = info->i & 0xffff; break; + case CPUINFO_INT_REGISTER + DSP56K_M1: M1 = info->i & 0xffff; break; + case CPUINFO_INT_REGISTER + DSP56K_M2: M2 = info->i & 0xffff; break; + case CPUINFO_INT_REGISTER + DSP56K_M3: M3 = info->i & 0xffff; break; /* case CPUINFO_INT_REGISTER + DSP56K_TEMP: TEMP = info->i & 0xffff; break; */ /* case CPUINFO_INT_REGISTER + DSP56K_STATUS: STATUS = info->i & 0xff; break; */ /* The CPU stack */ - case CPUINFO_INT_REGISTER + DSP56K_ST0: ST0 = info->i & 0xffffffff; break; - case CPUINFO_INT_REGISTER + DSP56K_ST1: ST1 = info->i & 0xffffffff; break; - case CPUINFO_INT_REGISTER + DSP56K_ST2: ST2 = info->i & 0xffffffff; break; - case CPUINFO_INT_REGISTER + DSP56K_ST3: ST3 = info->i & 0xffffffff; break; - case CPUINFO_INT_REGISTER + DSP56K_ST4: ST4 = info->i & 0xffffffff; break; - case CPUINFO_INT_REGISTER + DSP56K_ST5: ST5 = info->i & 0xffffffff; break; - case CPUINFO_INT_REGISTER + DSP56K_ST6: ST6 = info->i & 0xffffffff; break; - case CPUINFO_INT_REGISTER + DSP56K_ST7: ST7 = info->i & 0xffffffff; break; - case CPUINFO_INT_REGISTER + DSP56K_ST8: ST8 = info->i & 0xffffffff; break; - case CPUINFO_INT_REGISTER + DSP56K_ST9: ST9 = info->i & 0xffffffff; break; - case CPUINFO_INT_REGISTER + DSP56K_ST10: ST10 = info->i & 0xffffffff; break; - case CPUINFO_INT_REGISTER + DSP56K_ST11: ST11 = info->i & 0xffffffff; break; - case CPUINFO_INT_REGISTER + DSP56K_ST12: ST12 = info->i & 0xffffffff; break; - case CPUINFO_INT_REGISTER + DSP56K_ST13: ST13 = info->i & 0xffffffff; break; - case CPUINFO_INT_REGISTER + DSP56K_ST14: ST14 = info->i & 0xffffffff; break; - case CPUINFO_INT_REGISTER + DSP56K_ST15: ST15 = info->i & 0xffffffff; break; + case CPUINFO_INT_REGISTER + DSP56K_ST0: ST0 = info->i & 0xffffffff; break; + case CPUINFO_INT_REGISTER + DSP56K_ST1: ST1 = info->i & 0xffffffff; break; + case CPUINFO_INT_REGISTER + DSP56K_ST2: ST2 = info->i & 0xffffffff; break; + case CPUINFO_INT_REGISTER + DSP56K_ST3: ST3 = info->i & 0xffffffff; break; + case CPUINFO_INT_REGISTER + DSP56K_ST4: ST4 = info->i & 0xffffffff; break; + case CPUINFO_INT_REGISTER + DSP56K_ST5: ST5 = info->i & 0xffffffff; break; + case CPUINFO_INT_REGISTER + DSP56K_ST6: ST6 = info->i & 0xffffffff; break; + case CPUINFO_INT_REGISTER + DSP56K_ST7: ST7 = info->i & 0xffffffff; break; + case CPUINFO_INT_REGISTER + DSP56K_ST8: ST8 = info->i & 0xffffffff; break; + case CPUINFO_INT_REGISTER + DSP56K_ST9: ST9 = info->i & 0xffffffff; break; + case CPUINFO_INT_REGISTER + DSP56K_ST10: ST10 = info->i & 0xffffffff; break; + case CPUINFO_INT_REGISTER + DSP56K_ST11: ST11 = info->i & 0xffffffff; break; + case CPUINFO_INT_REGISTER + DSP56K_ST12: ST12 = info->i & 0xffffffff; break; + case CPUINFO_INT_REGISTER + DSP56K_ST13: ST13 = info->i & 0xffffffff; break; + case CPUINFO_INT_REGISTER + DSP56K_ST14: ST14 = info->i & 0xffffffff; break; + case CPUINFO_INT_REGISTER + DSP56K_ST15: ST15 = info->i & 0xffffffff; break; } } @@ -497,111 +497,111 @@ CPU_GET_INFO( dsp56k ) switch (state) { /* --- the following bits of info are returned as 64-bit signed integers --- */ - case CPUINFO_INT_CONTEXT_SIZE: info->i = sizeof(dsp56k_core); break; - case CPUINFO_INT_INPUT_LINES: info->i = 4; break; - case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0x0000; break; - case CPUINFO_INT_ENDIANNESS: info->i = ENDIANNESS_LITTLE; break; - case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break; - case CPUINFO_INT_CLOCK_DIVIDER: info->i = 2; break; - case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 2; break; - case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 4; break; - case CPUINFO_INT_MIN_CYCLES: info->i = 1; // ? break; - case CPUINFO_INT_MAX_CYCLES: info->i = 8; // ? break; - - case CPUINFO_INT_DATABUS_WIDTH + AS_PROGRAM: info->i = 16; break; - case CPUINFO_INT_ADDRBUS_WIDTH + AS_PROGRAM: info->i = 16; break; - case CPUINFO_INT_ADDRBUS_SHIFT + AS_PROGRAM: info->i = -1; break; - case CPUINFO_INT_DATABUS_WIDTH + AS_DATA: info->i = 16; break; - case CPUINFO_INT_ADDRBUS_WIDTH + AS_DATA: info->i = 16; break; - case CPUINFO_INT_ADDRBUS_SHIFT + AS_DATA: info->i = -1; break; - case CPUINFO_INT_DATABUS_WIDTH + AS_IO: info->i = 0; break; - case CPUINFO_INT_ADDRBUS_WIDTH + AS_IO: info->i = 0; break; - case CPUINFO_INT_ADDRBUS_SHIFT + AS_IO: info->i = 0; break; - - case CPUINFO_INT_INPUT_STATE + DSP56K_IRQ_MODA: info->i = DSP56K_IRQ_MODA; break; - case CPUINFO_INT_INPUT_STATE + DSP56K_IRQ_MODB: info->i = DSP56K_IRQ_MODB; break; - case CPUINFO_INT_INPUT_STATE + DSP56K_IRQ_MODC: info->i = DSP56K_IRQ_MODC; break; + case CPUINFO_INT_CONTEXT_SIZE: info->i = sizeof(dsp56k_core); break; + case CPUINFO_INT_INPUT_LINES: info->i = 4; break; + case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0x0000; break; + case CPUINFO_INT_ENDIANNESS: info->i = ENDIANNESS_LITTLE; break; + case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break; + case CPUINFO_INT_CLOCK_DIVIDER: info->i = 2; break; + case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 2; break; + case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 4; break; + case CPUINFO_INT_MIN_CYCLES: info->i = 1; // ? break; + case CPUINFO_INT_MAX_CYCLES: info->i = 8; // ? break; + + case CPUINFO_INT_DATABUS_WIDTH + AS_PROGRAM: info->i = 16; break; + case CPUINFO_INT_ADDRBUS_WIDTH + AS_PROGRAM: info->i = 16; break; + case CPUINFO_INT_ADDRBUS_SHIFT + AS_PROGRAM: info->i = -1; break; + case CPUINFO_INT_DATABUS_WIDTH + AS_DATA: info->i = 16; break; + case CPUINFO_INT_ADDRBUS_WIDTH + AS_DATA: info->i = 16; break; + case CPUINFO_INT_ADDRBUS_SHIFT + AS_DATA: info->i = -1; break; + case CPUINFO_INT_DATABUS_WIDTH + AS_IO: info->i = 0; break; + case CPUINFO_INT_ADDRBUS_WIDTH + AS_IO: info->i = 0; break; + case CPUINFO_INT_ADDRBUS_SHIFT + AS_IO: info->i = 0; break; + + case CPUINFO_INT_INPUT_STATE + DSP56K_IRQ_MODA: info->i = DSP56K_IRQ_MODA; break; + case CPUINFO_INT_INPUT_STATE + DSP56K_IRQ_MODB: info->i = DSP56K_IRQ_MODB; break; + case CPUINFO_INT_INPUT_STATE + DSP56K_IRQ_MODC: info->i = DSP56K_IRQ_MODC; break; case CPUINFO_INT_PC: - case CPUINFO_INT_REGISTER + DSP56K_PC: info->i = PC; break; - case CPUINFO_INT_PREVIOUSPC: info->i = cpustate->ppc; break; + case CPUINFO_INT_REGISTER + DSP56K_PC: info->i = PC; break; + case CPUINFO_INT_PREVIOUSPC: info->i = cpustate->ppc; break; - case CPUINFO_INT_REGISTER + DSP56K_SR: info->i = SR; break; - case CPUINFO_INT_REGISTER + DSP56K_LC: info->i = LC; break; - case CPUINFO_INT_REGISTER + DSP56K_LA: info->i = LA; break; + case CPUINFO_INT_REGISTER + DSP56K_SR: info->i = SR; break; + case CPUINFO_INT_REGISTER + DSP56K_LC: info->i = LC; break; + case CPUINFO_INT_REGISTER + DSP56K_LA: info->i = LA; break; case CPUINFO_INT_SP: - case CPUINFO_INT_REGISTER + DSP56K_SP: info->i = SP; break; + case CPUINFO_INT_REGISTER + DSP56K_SP: info->i = SP; break; - case CPUINFO_INT_REGISTER + DSP56K_OMR: info->i = OMR; break; + case CPUINFO_INT_REGISTER + DSP56K_OMR: info->i = OMR; break; - case CPUINFO_INT_REGISTER + DSP56K_X: info->i = X; break; - case CPUINFO_INT_REGISTER + DSP56K_Y: info->i = Y; break; + case CPUINFO_INT_REGISTER + DSP56K_X: info->i = X; break; + case CPUINFO_INT_REGISTER + DSP56K_Y: info->i = Y; break; - case CPUINFO_INT_REGISTER + DSP56K_A: info->i = A; break; - case CPUINFO_INT_REGISTER + DSP56K_B: info->i = B; break; + case CPUINFO_INT_REGISTER + DSP56K_A: info->i = A; break; + case CPUINFO_INT_REGISTER + DSP56K_B: info->i = B; break; - case CPUINFO_INT_REGISTER + DSP56K_R0: info->i = R0; break; - case CPUINFO_INT_REGISTER + DSP56K_R1: info->i = R1; break; - case CPUINFO_INT_REGISTER + DSP56K_R2: info->i = R2; break; - case CPUINFO_INT_REGISTER + DSP56K_R3: info->i = R3; break; + case CPUINFO_INT_REGISTER + DSP56K_R0: info->i = R0; break; + case CPUINFO_INT_REGISTER + DSP56K_R1: info->i = R1; break; + case CPUINFO_INT_REGISTER + DSP56K_R2: info->i = R2; break; + case CPUINFO_INT_REGISTER + DSP56K_R3: info->i = R3; break; - case CPUINFO_INT_REGISTER + DSP56K_N0: info->i = N0; break; - case CPUINFO_INT_REGISTER + DSP56K_N1: info->i = N1; break; - case CPUINFO_INT_REGISTER + DSP56K_N2: info->i = N2; break; - case CPUINFO_INT_REGISTER + DSP56K_N3: info->i = N3; break; + case CPUINFO_INT_REGISTER + DSP56K_N0: info->i = N0; break; + case CPUINFO_INT_REGISTER + DSP56K_N1: info->i = N1; break; + case CPUINFO_INT_REGISTER + DSP56K_N2: info->i = N2; break; + case CPUINFO_INT_REGISTER + DSP56K_N3: info->i = N3; break; - case CPUINFO_INT_REGISTER + DSP56K_M0: info->i = M0; break; - case CPUINFO_INT_REGISTER + DSP56K_M1: info->i = M1; break; - case CPUINFO_INT_REGISTER + DSP56K_M2: info->i = M2; break; - case CPUINFO_INT_REGISTER + DSP56K_M3: info->i = M3; break; + case CPUINFO_INT_REGISTER + DSP56K_M0: info->i = M0; break; + case CPUINFO_INT_REGISTER + DSP56K_M1: info->i = M1; break; + case CPUINFO_INT_REGISTER + DSP56K_M2: info->i = M2; break; + case CPUINFO_INT_REGISTER + DSP56K_M3: info->i = M3; break; /* case CPUINFO_INT_REGISTER + DSP56K_TEMP: info->i = TEMP; break; */ /* case CPUINFO_INT_REGISTER + DSP56K_STATUS: info->i = STATUS; break; */ /* The CPU stack */ - case CPUINFO_INT_REGISTER + DSP56K_ST0: info->i = ST0; break; - case CPUINFO_INT_REGISTER + DSP56K_ST1: info->i = ST1; break; - case CPUINFO_INT_REGISTER + DSP56K_ST2: info->i = ST2; break; - case CPUINFO_INT_REGISTER + DSP56K_ST3: info->i = ST3; break; - case CPUINFO_INT_REGISTER + DSP56K_ST4: info->i = ST4; break; - case CPUINFO_INT_REGISTER + DSP56K_ST5: info->i = ST5; break; - case CPUINFO_INT_REGISTER + DSP56K_ST6: info->i = ST6; break; - case CPUINFO_INT_REGISTER + DSP56K_ST7: info->i = ST7; break; - case CPUINFO_INT_REGISTER + DSP56K_ST8: info->i = ST8; break; - case CPUINFO_INT_REGISTER + DSP56K_ST9: info->i = ST9; break; - case CPUINFO_INT_REGISTER + DSP56K_ST10: info->i = ST10; break; - case CPUINFO_INT_REGISTER + DSP56K_ST11: info->i = ST11; break; - case CPUINFO_INT_REGISTER + DSP56K_ST12: info->i = ST12; break; - case CPUINFO_INT_REGISTER + DSP56K_ST13: info->i = ST13; break; - case CPUINFO_INT_REGISTER + DSP56K_ST14: info->i = ST14; break; - case CPUINFO_INT_REGISTER + DSP56K_ST15: info->i = ST15; break; + case CPUINFO_INT_REGISTER + DSP56K_ST0: info->i = ST0; break; + case CPUINFO_INT_REGISTER + DSP56K_ST1: info->i = ST1; break; + case CPUINFO_INT_REGISTER + DSP56K_ST2: info->i = ST2; break; + case CPUINFO_INT_REGISTER + DSP56K_ST3: info->i = ST3; break; + case CPUINFO_INT_REGISTER + DSP56K_ST4: info->i = ST4; break; + case CPUINFO_INT_REGISTER + DSP56K_ST5: info->i = ST5; break; + case CPUINFO_INT_REGISTER + DSP56K_ST6: info->i = ST6; break; + case CPUINFO_INT_REGISTER + DSP56K_ST7: info->i = ST7; break; + case CPUINFO_INT_REGISTER + DSP56K_ST8: info->i = ST8; break; + case CPUINFO_INT_REGISTER + DSP56K_ST9: info->i = ST9; break; + case CPUINFO_INT_REGISTER + DSP56K_ST10: info->i = ST10; break; + case CPUINFO_INT_REGISTER + DSP56K_ST11: info->i = ST11; break; + case CPUINFO_INT_REGISTER + DSP56K_ST12: info->i = ST12; break; + case CPUINFO_INT_REGISTER + DSP56K_ST13: info->i = ST13; break; + case CPUINFO_INT_REGISTER + DSP56K_ST14: info->i = ST14; break; + case CPUINFO_INT_REGISTER + DSP56K_ST15: info->i = ST15; break; /* --- the following bits of info are returned as pointers to data or functions --- */ - case CPUINFO_FCT_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(dsp56k); break; - case CPUINFO_FCT_INIT: info->init = CPU_INIT_NAME(dsp56k); break; - case CPUINFO_FCT_RESET: info->reset = CPU_RESET_NAME(dsp56k); break; - case CPUINFO_FCT_EXIT: info->exit = CPU_EXIT_NAME(dsp56k); break; - case CPUINFO_FCT_EXECUTE: info->execute = CPU_EXECUTE_NAME(dsp56k); break; - case CPUINFO_FCT_BURN: info->burn = NULL; break; - case CPUINFO_FCT_DISASSEMBLE: info->disassemble = CPU_DISASSEMBLE_NAME(dsp56k); break; - case CPUINFO_FCT_DEBUG_INIT: info->debug_init = NULL; break; - case CPUINFO_FCT_TRANSLATE: info->translate = NULL; break; - case CPUINFO_FCT_READ: info->read = NULL; break; - case CPUINFO_FCT_WRITE: info->write = NULL; break; - case CPUINFO_FCT_READOP: info->readop = NULL; break; - case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &cpustate->icount; break; + case CPUINFO_FCT_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(dsp56k); break; + case CPUINFO_FCT_INIT: info->init = CPU_INIT_NAME(dsp56k); break; + case CPUINFO_FCT_RESET: info->reset = CPU_RESET_NAME(dsp56k); break; + case CPUINFO_FCT_EXIT: info->exit = CPU_EXIT_NAME(dsp56k); break; + case CPUINFO_FCT_EXECUTE: info->execute = CPU_EXECUTE_NAME(dsp56k); break; + case CPUINFO_FCT_BURN: info->burn = NULL; break; + case CPUINFO_FCT_DISASSEMBLE: info->disassemble = CPU_DISASSEMBLE_NAME(dsp56k); break; + case CPUINFO_FCT_DEBUG_INIT: info->debug_init = NULL; break; + case CPUINFO_FCT_TRANSLATE: info->translate = NULL; break; + case CPUINFO_FCT_READ: info->read = NULL; break; + case CPUINFO_FCT_WRITE: info->write = NULL; break; + case CPUINFO_FCT_READOP: info->readop = NULL; break; + case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &cpustate->icount; break; case CPUINFO_PTR_INTERNAL_MEMORY_MAP + AS_DATA: - info->internal_map16 = ADDRESS_MAP_NAME(dsp56156_x_data_map); break; + info->internal_map16 = ADDRESS_MAP_NAME(dsp56156_x_data_map); break; case CPUINFO_PTR_INTERNAL_MEMORY_MAP + AS_PROGRAM: - info->internal_map16 = ADDRESS_MAP_NAME(dsp56156_program_map); break; + info->internal_map16 = ADDRESS_MAP_NAME(dsp56156_program_map); break; /* --- the following bits of info are returned as NULL-terminated strings --- */ - case CPUINFO_STR_NAME: strcpy(info->s, "DSP56156"); break; - case CPUINFO_STR_FAMILY: strcpy(info->s, "Motorola DSP56156"); break; - case CPUINFO_STR_VERSION: strcpy(info->s, "0.1"); break; - case CPUINFO_STR_SOURCE_FILE: strcpy(info->s, __FILE__); break; - case CPUINFO_STR_CREDITS: strcpy(info->s, "Andrew Gardner"); break; + case CPUINFO_STR_NAME: strcpy(info->s, "DSP56156"); break; + case CPUINFO_STR_FAMILY: strcpy(info->s, "Motorola DSP56156"); break; + case CPUINFO_STR_VERSION: strcpy(info->s, "0.1"); break; + case CPUINFO_STR_SOURCE_FILE: strcpy(info->s, __FILE__); break; + case CPUINFO_STR_CREDITS: strcpy(info->s, "Andrew Gardner"); break; case CPUINFO_STR_FLAGS: sprintf(info->s, "%s%s %s%s%s%s%s%s%s%s %s%s", @@ -623,54 +623,54 @@ CPU_GET_INFO( dsp56k ) SE_bit(cpustate) ? "S" : "."); break; - case CPUINFO_STR_REGISTER + DSP56K_PC: sprintf(info->s, "PC : %04x", PC); break; - case CPUINFO_STR_REGISTER + DSP56K_SR: sprintf(info->s, "SR : %04x", SR); break; - case CPUINFO_STR_REGISTER + DSP56K_LC: sprintf(info->s, "LC : %04x", LC); break; - case CPUINFO_STR_REGISTER + DSP56K_LA: sprintf(info->s, "LA : %04x", LA); break; - case CPUINFO_STR_REGISTER + DSP56K_SP: sprintf(info->s, "SP : %02x", SP); break; - case CPUINFO_STR_REGISTER + DSP56K_OMR: sprintf(info->s, "OMR: %02x", OMR); break; + case CPUINFO_STR_REGISTER + DSP56K_PC: sprintf(info->s, "PC : %04x", PC); break; + case CPUINFO_STR_REGISTER + DSP56K_SR: sprintf(info->s, "SR : %04x", SR); break; + case CPUINFO_STR_REGISTER + DSP56K_LC: sprintf(info->s, "LC : %04x", LC); break; + case CPUINFO_STR_REGISTER + DSP56K_LA: sprintf(info->s, "LA : %04x", LA); break; + case CPUINFO_STR_REGISTER + DSP56K_SP: sprintf(info->s, "SP : %02x", SP); break; + case CPUINFO_STR_REGISTER + DSP56K_OMR: sprintf(info->s, "OMR: %02x", OMR); break; - case CPUINFO_STR_REGISTER + DSP56K_X: sprintf(info->s, "X : %04x %04x", X1, X0); break; - case CPUINFO_STR_REGISTER + DSP56K_Y: sprintf(info->s, "Y : %04x %04x", Y1, Y0); break; + case CPUINFO_STR_REGISTER + DSP56K_X: sprintf(info->s, "X : %04x %04x", X1, X0); break; + case CPUINFO_STR_REGISTER + DSP56K_Y: sprintf(info->s, "Y : %04x %04x", Y1, Y0); break; - case CPUINFO_STR_REGISTER + DSP56K_A: sprintf(info->s, "A : %02x %04x %04x", A2,A1,A0); break; - case CPUINFO_STR_REGISTER + DSP56K_B: sprintf(info->s, "B : %02x %04x %04x", B2,B1,B0); break; + case CPUINFO_STR_REGISTER + DSP56K_A: sprintf(info->s, "A : %02x %04x %04x", A2,A1,A0); break; + case CPUINFO_STR_REGISTER + DSP56K_B: sprintf(info->s, "B : %02x %04x %04x", B2,B1,B0); break; - case CPUINFO_STR_REGISTER + DSP56K_R0: sprintf(info->s, "R0 : %04x", R0); break; - case CPUINFO_STR_REGISTER + DSP56K_R1: sprintf(info->s, "R1 : %04x", R1); break; - case CPUINFO_STR_REGISTER + DSP56K_R2: sprintf(info->s, "R2 : %04x", R2); break; - case CPUINFO_STR_REGISTER + DSP56K_R3: sprintf(info->s, "R3 : %04x", R3); break; + case CPUINFO_STR_REGISTER + DSP56K_R0: sprintf(info->s, "R0 : %04x", R0); break; + case CPUINFO_STR_REGISTER + DSP56K_R1: sprintf(info->s, "R1 : %04x", R1); break; + case CPUINFO_STR_REGISTER + DSP56K_R2: sprintf(info->s, "R2 : %04x", R2); break; + case CPUINFO_STR_REGISTER + DSP56K_R3: sprintf(info->s, "R3 : %04x", R3); break; - case CPUINFO_STR_REGISTER + DSP56K_N0: sprintf(info->s, "N0 : %04x", N0); break; - case CPUINFO_STR_REGISTER + DSP56K_N1: sprintf(info->s, "N1 : %04x", N1); break; - case CPUINFO_STR_REGISTER + DSP56K_N2: sprintf(info->s, "N2 : %04x", N2); break; - case CPUINFO_STR_REGISTER + DSP56K_N3: sprintf(info->s, "N3 : %04x", N3); break; + case CPUINFO_STR_REGISTER + DSP56K_N0: sprintf(info->s, "N0 : %04x", N0); break; + case CPUINFO_STR_REGISTER + DSP56K_N1: sprintf(info->s, "N1 : %04x", N1); break; + case CPUINFO_STR_REGISTER + DSP56K_N2: sprintf(info->s, "N2 : %04x", N2); break; + case CPUINFO_STR_REGISTER + DSP56K_N3: sprintf(info->s, "N3 : %04x", N3); break; - case CPUINFO_STR_REGISTER + DSP56K_M0: sprintf(info->s, "M0 : %04x", M0); break; - case CPUINFO_STR_REGISTER + DSP56K_M1: sprintf(info->s, "M1 : %04x", M1); break; - case CPUINFO_STR_REGISTER + DSP56K_M2: sprintf(info->s, "M2 : %04x", M2); break; - case CPUINFO_STR_REGISTER + DSP56K_M3: sprintf(info->s, "M3 : %04x", M3); break; + case CPUINFO_STR_REGISTER + DSP56K_M0: sprintf(info->s, "M0 : %04x", M0); break; + case CPUINFO_STR_REGISTER + DSP56K_M1: sprintf(info->s, "M1 : %04x", M1); break; + case CPUINFO_STR_REGISTER + DSP56K_M2: sprintf(info->s, "M2 : %04x", M2); break; + case CPUINFO_STR_REGISTER + DSP56K_M3: sprintf(info->s, "M3 : %04x", M3); break; /* case CPUINFO_STR_REGISTER + DSP56K_TEMP: sprintf(info->s, "TMP: %04x", TEMP); break; */ /* case CPUINFO_STR_REGISTER + DSP56K_STATUS: sprintf(info->s, "STS: %02x", STATUS); break; */ /* The CPU stack */ - case CPUINFO_STR_REGISTER + DSP56K_ST0: sprintf(info->s, "ST0 : %08x", ST0); break; - case CPUINFO_STR_REGISTER + DSP56K_ST1: sprintf(info->s, "ST1 : %08x", ST1); break; - case CPUINFO_STR_REGISTER + DSP56K_ST2: sprintf(info->s, "ST2 : %08x", ST2); break; - case CPUINFO_STR_REGISTER + DSP56K_ST3: sprintf(info->s, "ST3 : %08x", ST3); break; - case CPUINFO_STR_REGISTER + DSP56K_ST4: sprintf(info->s, "ST4 : %08x", ST4); break; - case CPUINFO_STR_REGISTER + DSP56K_ST5: sprintf(info->s, "ST5 : %08x", ST5); break; - case CPUINFO_STR_REGISTER + DSP56K_ST6: sprintf(info->s, "ST6 : %08x", ST6); break; - case CPUINFO_STR_REGISTER + DSP56K_ST7: sprintf(info->s, "ST7 : %08x", ST7); break; - case CPUINFO_STR_REGISTER + DSP56K_ST8: sprintf(info->s, "ST8 : %08x", ST8); break; - case CPUINFO_STR_REGISTER + DSP56K_ST9: sprintf(info->s, "ST9 : %08x", ST9); break; - case CPUINFO_STR_REGISTER + DSP56K_ST10: sprintf(info->s, "ST10: %08x", ST10); break; - case CPUINFO_STR_REGISTER + DSP56K_ST11: sprintf(info->s, "ST11: %08x", ST11); break; - case CPUINFO_STR_REGISTER + DSP56K_ST12: sprintf(info->s, "ST12: %08x", ST12); break; - case CPUINFO_STR_REGISTER + DSP56K_ST13: sprintf(info->s, "ST13: %08x", ST13); break; - case CPUINFO_STR_REGISTER + DSP56K_ST14: sprintf(info->s, "ST14: %08x", ST14); break; - case CPUINFO_STR_REGISTER + DSP56K_ST15: sprintf(info->s, "ST15: %08x", ST15); break; + case CPUINFO_STR_REGISTER + DSP56K_ST0: sprintf(info->s, "ST0 : %08x", ST0); break; + case CPUINFO_STR_REGISTER + DSP56K_ST1: sprintf(info->s, "ST1 : %08x", ST1); break; + case CPUINFO_STR_REGISTER + DSP56K_ST2: sprintf(info->s, "ST2 : %08x", ST2); break; + case CPUINFO_STR_REGISTER + DSP56K_ST3: sprintf(info->s, "ST3 : %08x", ST3); break; + case CPUINFO_STR_REGISTER + DSP56K_ST4: sprintf(info->s, "ST4 : %08x", ST4); break; + case CPUINFO_STR_REGISTER + DSP56K_ST5: sprintf(info->s, "ST5 : %08x", ST5); break; + case CPUINFO_STR_REGISTER + DSP56K_ST6: sprintf(info->s, "ST6 : %08x", ST6); break; + case CPUINFO_STR_REGISTER + DSP56K_ST7: sprintf(info->s, "ST7 : %08x", ST7); break; + case CPUINFO_STR_REGISTER + DSP56K_ST8: sprintf(info->s, "ST8 : %08x", ST8); break; + case CPUINFO_STR_REGISTER + DSP56K_ST9: sprintf(info->s, "ST9 : %08x", ST9); break; + case CPUINFO_STR_REGISTER + DSP56K_ST10: sprintf(info->s, "ST10: %08x", ST10); break; + case CPUINFO_STR_REGISTER + DSP56K_ST11: sprintf(info->s, "ST11: %08x", ST11); break; + case CPUINFO_STR_REGISTER + DSP56K_ST12: sprintf(info->s, "ST12: %08x", ST12); break; + case CPUINFO_STR_REGISTER + DSP56K_ST13: sprintf(info->s, "ST13: %08x", ST13); break; + case CPUINFO_STR_REGISTER + DSP56K_ST14: sprintf(info->s, "ST14: %08x", ST14); break; + case CPUINFO_STR_REGISTER + DSP56K_ST15: sprintf(info->s, "ST15: %08x", ST15); break; } } |