summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/cpu/hcd62121/hcd62121.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/cpu/hcd62121/hcd62121.c')
-rw-r--r--src/emu/cpu/hcd62121/hcd62121.c143
1 files changed, 71 insertions, 72 deletions
diff --git a/src/emu/cpu/hcd62121/hcd62121.c b/src/emu/cpu/hcd62121/hcd62121.c
index 7191d28f523..d579f560fea 100644
--- a/src/emu/cpu/hcd62121/hcd62121.c
+++ b/src/emu/cpu/hcd62121/hcd62121.c
@@ -39,17 +39,17 @@ struct hcd62121_state
/* From the battery check routine at 20:e874 it looks like
bit 3 of the flag register should be the Zero flag. */
-#define _FLAG_Z 0x08
-#define _FLAG_C 0x02
-#define _FLAG_ZL 0x04
-#define _FLAG_CL 0x01
-#define _FLAG_ZH 0x10
+#define _FLAG_Z 0x08
+#define _FLAG_C 0x02
+#define _FLAG_ZL 0x04
+#define _FLAG_CL 0x01
+#define _FLAG_ZH 0x10
-#define mem_readbyte(cs,A) ((UINT8)(cs)->program->read_byte(A))
-#define mem_writebyte(cs,A,V) ((cs)->program->write_byte(A,V))
-#define io_readbyte(cs,A) ((UINT8)(cs)->io->read_byte(A))
-#define io_writebyte(cs,A,V) ((cs)->io->write_byte(A,V))
+#define mem_readbyte(cs,A) ((UINT8)(cs)->program->read_byte(A))
+#define mem_writebyte(cs,A,V) ((cs)->program->write_byte(A,V))
+#define io_readbyte(cs,A) ((UINT8)(cs)->io->read_byte(A))
+#define io_writebyte(cs,A,V) ((cs)->io->write_byte(A,V))
INLINE UINT8 read_op(hcd62121_state *cpustate)
@@ -257,42 +257,42 @@ INLINE int check_cond( hcd62121_state *cpustate, UINT8 op )
{
switch ( op & 0x07 )
{
- case 0x00: /* ZH set */
+ case 0x00: /* ZH set */
if ( cpustate->f & _FLAG_ZH )
return 1;
break;
- case 0x01: /* ZL set */
+ case 0x01: /* ZL set */
if ( cpustate->f & _FLAG_ZL )
return 1;
break;
- case 0x02: /* C set */
+ case 0x02: /* C set */
if ( cpustate->f & _FLAG_C )
return 1;
break;
- case 0x03: /* Z set */
+ case 0x03: /* Z set */
if ( cpustate->f & _FLAG_Z )
return 1;
break;
- case 0x04: /* Z or C set */
+ case 0x04: /* Z or C set */
if ( cpustate->f & ( _FLAG_Z | _FLAG_C ) )
return 1;
break;
- case 0x05: /* CL set */
+ case 0x05: /* CL set */
if ( cpustate->f & _FLAG_CL )
return 1;
break;
- case 0x06: /* C clear */
+ case 0x06: /* C clear */
if ( ! ( cpustate->f & _FLAG_C ) )
return 1;
break;
- case 0x07: /* Z clear */
+ case 0x07: /* Z clear */
if ( ! ( cpustate->f & _FLAG_Z ) )
return 1;
break;
@@ -377,16 +377,16 @@ static CPU_SET_INFO( hcd62121 )
case CPUINFO_INT_INPUT_STATE + 1:
break;
- case CPUINFO_INT_SP: cpustate->sp = info->i; break;
- case CPUINFO_INT_PC: cpustate->ip = info->i; break;
+ case CPUINFO_INT_SP: cpustate->sp = info->i; break;
+ case CPUINFO_INT_PC: cpustate->ip = info->i; break;
- case CPUINFO_INT_REGISTER + HCD62121_IP: cpustate->ip = info->i; break;
- case CPUINFO_INT_REGISTER + HCD62121_SP: cpustate->sp = info->i; break;
- case CPUINFO_INT_REGISTER + HCD62121_LAR: cpustate->lar = info->i; break;
- case CPUINFO_INT_REGISTER + HCD62121_CS: cpustate->cseg = info->i; break;
- case CPUINFO_INT_REGISTER + HCD62121_DS: cpustate->dseg = info->i; break;
- case CPUINFO_INT_REGISTER + HCD62121_SS: cpustate->sseg = info->i; break;
- case CPUINFO_INT_REGISTER + HCD62121_DSIZE: cpustate->dsize = info->i; break;
+ case CPUINFO_INT_REGISTER + HCD62121_IP: cpustate->ip = info->i; break;
+ case CPUINFO_INT_REGISTER + HCD62121_SP: cpustate->sp = info->i; break;
+ case CPUINFO_INT_REGISTER + HCD62121_LAR: cpustate->lar = info->i; break;
+ case CPUINFO_INT_REGISTER + HCD62121_CS: cpustate->cseg = info->i; break;
+ case CPUINFO_INT_REGISTER + HCD62121_DS: cpustate->dseg = info->i; break;
+ case CPUINFO_INT_REGISTER + HCD62121_SS: cpustate->sseg = info->i; break;
+ case CPUINFO_INT_REGISTER + HCD62121_DSIZE: cpustate->dsize = info->i; break;
// case CPUINFO_INT_REGISTER + HCD62121_R00: break;
// case CPUINFO_INT_REGISTER + HCD62121_R02: break;
}
@@ -400,59 +400,59 @@ CPU_GET_INFO( hcd62121 )
switch (state)
{
/* --- the following bits of info are returned as 64-bit signed integers --- */
- case CPUINFO_INT_CONTEXT_SIZE: info->i = sizeof(hcd62121_state); break;
- case CPUINFO_INT_INPUT_LINES: info->i = 2; break;
- case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0xff; break;
- case CPUINFO_INT_ENDIANNESS: info->i = ENDIANNESS_BIG; break;
- case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
- case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
- case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 1; break;
- case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 18; break;
- case CPUINFO_INT_MIN_CYCLES: info->i = 4; /* right? */ break;
- case CPUINFO_INT_MAX_CYCLES: info->i = 48; /* right? */ break;
-
- case CPUINFO_INT_DATABUS_WIDTH + AS_PROGRAM: info->i = 8; break;
- case CPUINFO_INT_ADDRBUS_WIDTH + AS_PROGRAM: info->i = 24; break;
- case CPUINFO_INT_ADDRBUS_SHIFT + AS_PROGRAM: info->i = 0; break;
- case CPUINFO_INT_DATABUS_WIDTH + AS_DATA: info->i = 0; break;
- case CPUINFO_INT_ADDRBUS_WIDTH + AS_DATA: info->i = 0; break;
- case CPUINFO_INT_ADDRBUS_SHIFT + AS_DATA: info->i = 0; break;
- case CPUINFO_INT_DATABUS_WIDTH + AS_IO: info->i = 8; break;
- case CPUINFO_INT_ADDRBUS_WIDTH + AS_IO: info->i = 8; break;
- case CPUINFO_INT_ADDRBUS_SHIFT + AS_IO: info->i = 0; break;
-
- case CPUINFO_INT_SP: info->i = cpustate->sp; break;
- case CPUINFO_INT_PC: info->i = ( cpustate->cseg << 16 ) | cpustate->ip; break;
- case CPUINFO_INT_PREVIOUSPC: info->i = cpustate->prev_pc; break;
+ case CPUINFO_INT_CONTEXT_SIZE: info->i = sizeof(hcd62121_state); break;
+ case CPUINFO_INT_INPUT_LINES: info->i = 2; break;
+ case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0xff; break;
+ case CPUINFO_INT_ENDIANNESS: info->i = ENDIANNESS_BIG; break;
+ case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
+ case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break;
+ case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 1; break;
+ case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 18; break;
+ case CPUINFO_INT_MIN_CYCLES: info->i = 4; /* right? */ break;
+ case CPUINFO_INT_MAX_CYCLES: info->i = 48; /* right? */ break;
+
+ case CPUINFO_INT_DATABUS_WIDTH + AS_PROGRAM: info->i = 8; break;
+ case CPUINFO_INT_ADDRBUS_WIDTH + AS_PROGRAM: info->i = 24; break;
+ case CPUINFO_INT_ADDRBUS_SHIFT + AS_PROGRAM: info->i = 0; break;
+ case CPUINFO_INT_DATABUS_WIDTH + AS_DATA: info->i = 0; break;
+ case CPUINFO_INT_ADDRBUS_WIDTH + AS_DATA: info->i = 0; break;
+ case CPUINFO_INT_ADDRBUS_SHIFT + AS_DATA: info->i = 0; break;
+ case CPUINFO_INT_DATABUS_WIDTH + AS_IO: info->i = 8; break;
+ case CPUINFO_INT_ADDRBUS_WIDTH + AS_IO: info->i = 8; break;
+ case CPUINFO_INT_ADDRBUS_SHIFT + AS_IO: info->i = 0; break;
+
+ case CPUINFO_INT_SP: info->i = cpustate->sp; break;
+ case CPUINFO_INT_PC: info->i = ( cpustate->cseg << 16 ) | cpustate->ip; break;
+ case CPUINFO_INT_PREVIOUSPC: info->i = cpustate->prev_pc; break;
case CPUINFO_INT_INPUT_STATE + 0:
case CPUINFO_INT_INPUT_STATE + 1:
- /* TODO */ break;
-
- case CPUINFO_INT_REGISTER + HCD62121_IP: info->i = cpustate->ip; break;
- case CPUINFO_INT_REGISTER + HCD62121_SP: info->i = cpustate->sp; break;
- case CPUINFO_INT_REGISTER + HCD62121_LAR: info->i = cpustate->lar; break;
- case CPUINFO_INT_REGISTER + HCD62121_CS: info->i = cpustate->cseg; break;
- case CPUINFO_INT_REGISTER + HCD62121_DS: info->i = cpustate->dseg; break;
- case CPUINFO_INT_REGISTER + HCD62121_SS: info->i = cpustate->sseg; break;
- case CPUINFO_INT_REGISTER + HCD62121_DSIZE: info->i = cpustate->dsize; break;
- case CPUINFO_INT_REGISTER + HCD62121_R00: info->i = ( cpustate->reg[0x00] << 24 ) | ( cpustate->reg[0x01] << 16 ) | ( cpustate->reg[0x02] << 8 ) | cpustate->reg[0x03]; break;
+ /* TODO */ break;
+
+ case CPUINFO_INT_REGISTER + HCD62121_IP: info->i = cpustate->ip; break;
+ case CPUINFO_INT_REGISTER + HCD62121_SP: info->i = cpustate->sp; break;
+ case CPUINFO_INT_REGISTER + HCD62121_LAR: info->i = cpustate->lar; break;
+ case CPUINFO_INT_REGISTER + HCD62121_CS: info->i = cpustate->cseg; break;
+ case CPUINFO_INT_REGISTER + HCD62121_DS: info->i = cpustate->dseg; break;
+ case CPUINFO_INT_REGISTER + HCD62121_SS: info->i = cpustate->sseg; break;
+ case CPUINFO_INT_REGISTER + HCD62121_DSIZE: info->i = cpustate->dsize; break;
+ case CPUINFO_INT_REGISTER + HCD62121_R00: info->i = ( cpustate->reg[0x00] << 24 ) | ( cpustate->reg[0x01] << 16 ) | ( cpustate->reg[0x02] << 8 ) | cpustate->reg[0x03]; break;
// case CPUINFO_INT_REGISTER + HCD62121_R02: info->i = cpustate->; 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(hcd62121); break;
- case CPUINFO_FCT_INIT: info->init = CPU_INIT_NAME(hcd62121); break;
- case CPUINFO_FCT_RESET: info->reset = CPU_RESET_NAME(hcd62121); break;
- case CPUINFO_FCT_EXECUTE: info->execute = CPU_EXECUTE_NAME(hcd62121); break;
- case CPUINFO_FCT_DISASSEMBLE: info->disassemble = CPU_DISASSEMBLE_NAME(hcd62121); break;
- case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &cpustate->icount; break;
+ case CPUINFO_FCT_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(hcd62121); break;
+ case CPUINFO_FCT_INIT: info->init = CPU_INIT_NAME(hcd62121); break;
+ case CPUINFO_FCT_RESET: info->reset = CPU_RESET_NAME(hcd62121); break;
+ case CPUINFO_FCT_EXECUTE: info->execute = CPU_EXECUTE_NAME(hcd62121); break;
+ case CPUINFO_FCT_DISASSEMBLE: info->disassemble = CPU_DISASSEMBLE_NAME(hcd62121); break;
+ case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &cpustate->icount; break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case CPUINFO_STR_NAME: strcpy(info->s, "HCD62121"); break;
- case CPUINFO_STR_FAMILY: strcpy(info->s, "Hitachi HCD62121"); 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, "Copyright The MESS Team."); break;
+ case CPUINFO_STR_NAME: strcpy(info->s, "HCD62121"); break;
+ case CPUINFO_STR_FAMILY: strcpy(info->s, "Hitachi HCD62121"); 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, "Copyright The MESS Team."); break;
case CPUINFO_STR_FLAGS:
sprintf(info->s, "%s-%s-%s-%c-%c",
@@ -507,4 +507,3 @@ CPU_GET_INFO( hcd62121 )
}
DEFINE_LEGACY_CPU_DEVICE(HCD62121, hcd62121);
-