summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/cpu/mb86233/mb86233.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/cpu/mb86233/mb86233.c')
-rw-r--r--src/emu/cpu/mb86233/mb86233.c658
1 files changed, 329 insertions, 329 deletions
diff --git a/src/emu/cpu/mb86233/mb86233.c b/src/emu/cpu/mb86233/mb86233.c
index 0369412ae87..d5f31d15fb6 100644
--- a/src/emu/cpu/mb86233/mb86233.c
+++ b/src/emu/cpu/mb86233/mb86233.c
@@ -25,29 +25,29 @@ CPU_DISASSEMBLE( mb86233 );
union MB86233_REG
{
- INT32 i;
- UINT32 u;
- float f;
+ INT32 i;
+ UINT32 u;
+ float f;
};
struct mb86233_state
{
- UINT16 pc;
- MB86233_REG a;
- MB86233_REG b;
- MB86233_REG d;
- MB86233_REG p;
-
- UINT16 reps;
- UINT16 pcs[4];
- UINT8 pcsp;
- UINT32 eb;
- UINT32 shift;
- UINT32 repcnt;
- UINT16 sr;
-
- UINT32 gpr[16];
- UINT32 extport[0x30];
+ UINT16 pc;
+ MB86233_REG a;
+ MB86233_REG b;
+ MB86233_REG d;
+ MB86233_REG p;
+
+ UINT16 reps;
+ UINT16 pcs[4];
+ UINT8 pcsp;
+ UINT32 eb;
+ UINT32 shift;
+ UINT32 repcnt;
+ UINT16 sr;
+
+ UINT32 gpr[16];
+ UINT32 extport[0x30];
legacy_cpu_device *device;
address_space *program;
@@ -55,14 +55,14 @@ struct mb86233_state
int icount;
/* FIFO */
- int fifo_wait;
+ int fifo_wait;
mb86233_fifo_read_func fifo_read_cb;
mb86233_fifo_write_func fifo_write_cb;
/* internal RAM */
- UINT32 *RAM;
- UINT32 *ARAM, *BRAM;
- UINT32 *Tables;
+ UINT32 *RAM;
+ UINT32 *ARAM, *BRAM;
+ UINT32 *Tables;
};
INLINE mb86233_state *get_safe_token(device_t *device)
@@ -76,28 +76,28 @@ INLINE mb86233_state *get_safe_token(device_t *device)
MACROS
***************************************************************************/
-#define GETPC() cpustate->pc
-#define GETA() cpustate->a
-#define GETB() cpustate->b
-#define GETD() cpustate->d
-#define GETP() cpustate->p
-#define GETSR() cpustate->sr
-#define GETGPR(a) cpustate->gpr[a]
-#define GETSHIFT() cpustate->shift
-#define GETPCS() cpustate->pcs
-#define GETPCSP() cpustate->pcsp
-#define GETEB() cpustate->eb
-#define GETREPS() cpustate->reps
-#define GETEXTPORT() cpustate->extport
-#define GETFIFOWAIT() cpustate->fifo_wait
-#define GETARAM() cpustate->ARAM
-#define GETBRAM() cpustate->BRAM
-#define ALU(cs,a) mb86233_alu(cs,a)
-#define GETREPCNT() cpustate->repcnt
-
-#define ROPCODE(a) cpustate->direct->read_decrypted_dword(a<<2)
-#define RDMEM(a) cpustate->program->read_dword((a<<2))
-#define WRMEM(a,v) cpustate->program->write_dword((a<<2), v)
+#define GETPC() cpustate->pc
+#define GETA() cpustate->a
+#define GETB() cpustate->b
+#define GETD() cpustate->d
+#define GETP() cpustate->p
+#define GETSR() cpustate->sr
+#define GETGPR(a) cpustate->gpr[a]
+#define GETSHIFT() cpustate->shift
+#define GETPCS() cpustate->pcs
+#define GETPCSP() cpustate->pcsp
+#define GETEB() cpustate->eb
+#define GETREPS() cpustate->reps
+#define GETEXTPORT() cpustate->extport
+#define GETFIFOWAIT() cpustate->fifo_wait
+#define GETARAM() cpustate->ARAM
+#define GETBRAM() cpustate->BRAM
+#define ALU(cs,a) mb86233_alu(cs,a)
+#define GETREPCNT() cpustate->repcnt
+
+#define ROPCODE(a) cpustate->direct->read_decrypted_dword(a<<2)
+#define RDMEM(a) cpustate->program->read_dword((a<<2))
+#define WRMEM(a,v) cpustate->program->write_dword((a<<2), v)
/***************************************************************************
Initialization and Shutdown
@@ -121,7 +121,7 @@ static CPU_INIT( mb86233 )
cpustate->Tables = (UINT32*) device->machine().root_device().memregion(_config->tablergn)->base();
}
- cpustate->RAM = auto_alloc_array(device->machine(), UINT32, 2 * 0x200); /* 2x 2KB */
+ cpustate->RAM = auto_alloc_array(device->machine(), UINT32, 2 * 0x200); /* 2x 2KB */
memset( cpustate->RAM, 0, 2 * 0x200 * sizeof(UINT32) );
cpustate->ARAM = &cpustate->RAM[0];
cpustate->BRAM = &cpustate->RAM[0x200];
@@ -148,9 +148,9 @@ static CPU_RESET( mb86233 )
Status Register
***************************************************************************/
-#define ZERO_FLAG (1 << 0)
-#define SIGN_FLAG (1 << 1)
-#define EXTERNAL_FLAG (1 << 2) //This seems to be a flag coming from some external circuit??
+#define ZERO_FLAG (1 << 0)
+#define SIGN_FLAG (1 << 1)
+#define EXTERNAL_FLAG (1 << 2) //This seems to be a flag coming from some external circuit??
static void FLAGSF( mb86233_state *cpustate, float v )
{
@@ -184,36 +184,36 @@ static int COND( mb86233_state *cpustate, UINT32 cond )
{
switch( cond )
{
- case 0x00: /* eq */
+ case 0x00: /* eq */
if ( (GETSR() & ZERO_FLAG) ) return 1;
break;
- case 0x01: /* ge */
+ case 0x01: /* ge */
if ( (GETSR() & ZERO_FLAG) || ((GETSR() & SIGN_FLAG)==0) ) return 1;
break;
- case 0x02: /* le */
+ case 0x02: /* le */
if ( (GETSR() & ZERO_FLAG) || (GETSR() & SIGN_FLAG) ) return 1;
break;
- case 0x06: /* never */
+ case 0x06: /* never */
break;
case 0x0a:
if(GETSR() & EXTERNAL_FLAG) return 1;
break;
- case 0x10: /* --r12 != 0 */
+ case 0x10: /* --r12 != 0 */
GETGPR(12)--;
if ( GETGPR(12) != 0 ) return 1;
break;
- case 0x11: /* --r13 != 0 */
+ case 0x11: /* --r13 != 0 */
GETGPR(13)--;
if ( GETGPR(13) != 0 ) return 1;
break;
- case 0x16: /* always */
+ case 0x16: /* always */
return 1;
default:
@@ -232,142 +232,142 @@ static int COND( mb86233_state *cpustate, UINT32 cond )
static void ALU( mb86233_state *cpustate, UINT32 alu)
{
- float ftmp;
+ float ftmp;
switch(alu)
{
- case 0x00: /* NOP */
+ case 0x00: /* NOP */
break;
- case 0x01: /* D = D & A */
+ case 0x01: /* D = D & A */
GETD().u &= GETA().u;
FLAGSI(cpustate, GETD().u);
break;
- case 0x02: /* D = D | A */
+ case 0x02: /* D = D | A */
GETD().u |= GETA().u;
FLAGSI(cpustate, GETD().u);
break;
- case 0x03: /* D = D ^ A */
+ case 0x03: /* D = D ^ A */
GETD().u ^= GETA().u;
FLAGSI(cpustate, GETD().u);
break;
- case 0x05: /* CMP D,A */
+ case 0x05: /* CMP D,A */
ftmp = GETD().f - GETA().f;
FLAGSF(cpustate, ftmp);
cpustate->icount--;
break;
- case 0x06: /* D = D + A */
+ case 0x06: /* D = D + A */
GETD().f += GETA().f;
FLAGSF(cpustate, GETD().f);
cpustate->icount--;
break;
- case 0x07: /* D = D - A */
+ case 0x07: /* D = D - A */
GETD().f -= GETA().f;
FLAGSF(cpustate, GETD().f);
cpustate->icount--;
break;
- case 0x08: /* P = A * B */
+ case 0x08: /* P = A * B */
GETP().f = GETA().f * GETB().f;
cpustate->icount--;
break;
- case 0x09: /* D = D + P; P = A * B */
+ case 0x09: /* D = D + P; P = A * B */
GETD().f += GETP().f;
GETP().f = GETA().f * GETB().f;
FLAGSF(cpustate, GETD().f);
cpustate->icount--;
break;
- case 0x0A: /* D = D - P; P = A * B */
+ case 0x0A: /* D = D - P; P = A * B */
GETD().f -= GETP().f;
GETP().f = GETA().f * GETB().f;
FLAGSF(cpustate, GETD().f);
cpustate->icount--;
break;
- case 0x0B: /* D = fabs(D) */
+ case 0x0B: /* D = fabs(D) */
GETD().f = fabs( GETD().f );
FLAGSF(cpustate, GETD().f);
cpustate->icount--;
break;
- case 0x0C: /* D = D + P */
+ case 0x0C: /* D = D + P */
GETD().f += GETP().f;
FLAGSF(cpustate, GETD().f);
cpustate->icount--;
break;
- case 0x0D: /* D = P; P = A * B */
+ case 0x0D: /* D = P; P = A * B */
GETD().f = GETP().f;
GETP().f = GETA().f * GETB().f;
FLAGSF(cpustate, GETD().f);
cpustate->icount--;
break;
- case 0x0E: /* D = float(D) */
+ case 0x0E: /* D = float(D) */
GETD().f = (float)GETD().i;
FLAGSF(cpustate, GETD().f);
cpustate->icount--;
break;
- case 0x0F: /* D = int(D) */
+ case 0x0F: /* D = int(D) */
GETD().i = (INT32)GETD().f;
FLAGSI(cpustate, GETD().u);
break;
- case 0x10: /* D = D / A */
+ case 0x10: /* D = D / A */
if ( GETA().u != 0 )
GETD().f = GETD().f / GETA().f;
FLAGSF(cpustate, GETD().f);
cpustate->icount--;
break;
- case 0x11: /* D = -D */
+ case 0x11: /* D = -D */
GETD().f = -GETD().f;
FLAGSF(cpustate, GETD().f);
cpustate->icount--;
break;
- case 0x13: /* D = A + B */
+ case 0x13: /* D = A + B */
GETD().f = GETA().f + GETB().f;
FLAGSF(cpustate, GETD().f);
cpustate->icount--;
break;
- case 0x14: /* D = B - A */
+ case 0x14: /* D = B - A */
GETD().f = GETB().f - GETA().f;
FLAGSF(cpustate, GETD().f);
cpustate->icount--;
break;
- case 0x16: /* LSR D, SHIFT */
+ case 0x16: /* LSR D, SHIFT */
GETD().u >>= GETSHIFT();
FLAGSI(cpustate, GETD().u);
break;
- case 0x17: /* LSL D, SHIFT */
+ case 0x17: /* LSL D, SHIFT */
GETD().u <<= GETSHIFT();
FLAGSI(cpustate, GETD().u);
break;
- case 0x18: /* ASR D, SHIFT */
+ case 0x18: /* ASR D, SHIFT */
// GETD().u = (GETD().u & 0x80000000) | (GETD().u >> GETSHIFT());
GETD().i >>= GETSHIFT();
FLAGSI(cpustate, GETD().u);
break;
- case 0x1A: /* D = D + A */
+ case 0x1A: /* D = D + A */
GETD().i += GETA().i;
FLAGSI(cpustate, GETD().u);
break;
- case 0x1B: /* D = D - A */
+ case 0x1B: /* D = D - A */
GETD().i -= GETA().i;
FLAGSI(cpustate, GETD().u);
break;
@@ -395,11 +395,11 @@ static UINT32 ScaleExp(unsigned int v,int scale)
static UINT32 GETEXTERNAL( mb86233_state *cpustate, UINT32 EB, UINT32 offset )
{
- UINT32 addr;
+ UINT32 addr;
- if ( EB == 0 && offset >= 0x20 && offset <= 0x2f ) /* TGP Tables in ROM - FIXME - */
+ if ( EB == 0 && offset >= 0x20 && offset <= 0x2f ) /* TGP Tables in ROM - FIXME - */
{
- if(offset>=0x20 && offset<=0x23) //SIN from value at RAM(0x20) in 0x4000/PI steps
+ if(offset>=0x20 && offset<=0x23) //SIN from value at RAM(0x20) in 0x4000/PI steps
{
UINT32 r;
UINT32 value=GETEXTPORT()[0x20];
@@ -454,7 +454,7 @@ static UINT32 GETEXTERNAL( mb86233_state *cpustate, UINT32 EB, UINT32 offset )
}
if((a.u^b.u)&0x80000000)
- sign=16; //the negative values are in the high word
+ sign=16; //the negative values are in the high word
if((exp&0x70)!=0x70)
index=0;
@@ -484,15 +484,15 @@ static UINT32 GETEXTERNAL( mb86233_state *cpustate, UINT32 EB, UINT32 offset )
res=0x4000-res;
- if((a.u&0x80000000) && (b.u&0x80000000)) //3rd quadrant
+ if((a.u&0x80000000) && (b.u&0x80000000)) //3rd quadrant
{
res=0x8000|res;
}
- else if((a.u&0x80000000) && !(b.u&0x80000000)) //2nd quadrant
+ else if((a.u&0x80000000) && !(b.u&0x80000000)) //2nd quadrant
{
res=res&0x7fff;
}
- else if(!(a.u&0x80000000) && (b.u&0x80000000)) //2nd quadrant
+ else if(!(a.u&0x80000000) && (b.u&0x80000000)) //2nd quadrant
{
res=0x8000|res;
}
@@ -556,9 +556,9 @@ static UINT32 GETEXTERNAL( mb86233_state *cpustate, UINT32 EB, UINT32 offset )
static void SETEXTERNAL( mb86233_state *cpustate, UINT32 EB, UINT32 offset, UINT32 value )
{
- UINT32 addr;
+ UINT32 addr;
- if ( EB == 0 && offset >= 0x20 && offset <= 0x2f ) /* TGP Tables in ROM - FIXME - */
+ if ( EB == 0 && offset >= 0x20 && offset <= 0x2f ) /* TGP Tables in ROM - FIXME - */
{
GETEXTPORT()[offset] = value;
@@ -589,7 +589,7 @@ static void SETEXTERNAL( mb86233_state *cpustate, UINT32 EB, UINT32 offset, UINT
static UINT32 GETREGS( mb86233_state *cpustate, UINT32 reg, int source )
{
- UINT32 mode = ( reg >> 6 ) & 0x07;
+ UINT32 mode = ( reg >> 6 ) & 0x07;
reg &= 0x3f;
@@ -602,52 +602,52 @@ static UINT32 GETREGS( mb86233_state *cpustate, UINT32 reg, int source )
switch( reg )
{
- case 0x10: /* A */
+ case 0x10: /* A */
return GETA().u;
- case 0x11: /* A.e */
+ case 0x11: /* A.e */
return (GETA().u >> 23) & 0xff;
- case 0x12: /* A.m */
+ case 0x12: /* A.m */
return (GETA().u & 0x7fffff) | ((GETA().u&0x80000000) >> 8);
- case 0x13: /* B */
+ case 0x13: /* B */
return GETB().u;
- case 0x14: /* B.e */
+ case 0x14: /* B.e */
return (GETB().u >> 23) & 0xff;
- case 0x15: /* B.m */
+ case 0x15: /* B.m */
return (GETB().u & 0x7fffff) | ((GETB().u&0x80000000) >> 8);
- case 0x19: /* D */
+ case 0x19: /* D */
return GETD().u;
- case 0x1A: /* D.e */
+ case 0x1A: /* D.e */
return (GETD().u >> 23) & 0xff;
- case 0x1B: /* D.m */
+ case 0x1B: /* D.m */
return (GETD().u & 0x7fffff) | ((GETD().u&0x80000000) >> 8);
- case 0x1C: /* P */
+ case 0x1C: /* P */
return GETP().u;
- case 0x1D: /* P.e */
+ case 0x1D: /* P.e */
return (GETP().u >> 23) & 0xff;
- case 0x1E: /* P.m */
+ case 0x1E: /* P.m */
return (GETP().u & 0x7fffff) | ((GETP().u&0x80000000) >> 8);
- case 0x1F: /* Shift */
+ case 0x1F: /* Shift */
return GETSHIFT();
- case 0x20: /* Parallel Port */
+ case 0x20: /* Parallel Port */
logerror( "TGP: Parallel port read at PC:%04x\n", GETPC() );
return 0;
- case 0x21: /* FIn */
+ case 0x21: /* FIn */
{
- UINT32 fifo_data;
+ UINT32 fifo_data;
if ( cpustate->fifo_read_cb )
{
@@ -661,10 +661,10 @@ static UINT32 GETREGS( mb86233_state *cpustate, UINT32 reg, int source )
return 0;
}
- case 0x22: /* FOut */
+ case 0x22: /* FOut */
return 0;
- case 0x23: /* EB */
+ case 0x23: /* EB */
return GETEB();
case 0x34:
@@ -675,9 +675,9 @@ static UINT32 GETREGS( mb86233_state *cpustate, UINT32 reg, int source )
break;
}
}
- else if ( mode == 2 ) /* Indexed */
+ else if ( mode == 2 ) /* Indexed */
{
- UINT32 addr = reg & 0x1f;
+ UINT32 addr = reg & 0x1f;
if ( source )
{
@@ -696,9 +696,9 @@ static UINT32 GETREGS( mb86233_state *cpustate, UINT32 reg, int source )
return addr;
}
- else if( mode == 6 ) /* Indexed with postop */
+ else if( mode == 6 ) /* Indexed with postop */
{
- UINT32 addr = 0;
+ UINT32 addr = 0;
if ( source )
{
@@ -742,7 +742,7 @@ static UINT32 GETREGS( mb86233_state *cpustate, UINT32 reg, int source )
static void SETREGS( mb86233_state *cpustate, UINT32 reg, UINT32 val )
{
- int mode = ( reg >> 6) & 0x07;
+ int mode = ( reg >> 6) & 0x07;
reg &= 0x3f;
@@ -759,61 +759,61 @@ static void SETREGS( mb86233_state *cpustate, UINT32 reg, UINT32 val )
switch( reg )
{
- case 0x10: /* A */
+ case 0x10: /* A */
GETA().u = val;
break;
- case 0x11: /* A.e */
+ case 0x11: /* A.e */
GETA().u &= ~((0x0000007f) << 23);
GETA().u |= (( val & 0xff ) << 23 );
break;
- case 0x12: /* A.m */
+ case 0x12: /* A.m */
GETA().u &= ~( 0x807fffff );
GETA().u |= ( val & 0x7fffff );
GETA().u |= ( val & 0x800000 ) << 8;
break;
- case 0x13: /* B */
+ case 0x13: /* B */
GETB().u = val;
break;
- case 0x14: /* B.e */
+ case 0x14: /* B.e */
GETB().u &= ~((0x0000007f) << 23);
GETB().u |= (( val & 0xff ) << 23 );
break;
- case 0x15: /* B.m */
+ case 0x15: /* B.m */
GETB().u &= ~( 0x807fffff );
GETB().u |= ( val & 0x7fffff );
GETB().u |= ( val & 0x800000 ) << 8;
break;
- case 0x19: /* D */
+ case 0x19: /* D */
GETD().u = val;
break;
- case 0x1A: /* D.e */
+ case 0x1A: /* D.e */
GETD().u &= ~((0x0000007f) << 23);
GETD().u |= (( val & 0xff ) << 23 );
break;
- case 0x1B: /* B.m */
+ case 0x1B: /* B.m */
GETD().u &= ~( 0x807fffff );
GETD().u |= ( val & 0x7fffff );
GETD().u |= ( val & 0x800000 ) << 8;
break;
- case 0x1C: /* P */
+ case 0x1C: /* P */
GETP().u = val;
break;
- case 0x1D: /* P.e */
+ case 0x1D: /* P.e */
GETP().u &= ~((0x0000007f) << 23);
GETP().u |= (( val & 0xff ) << 23 );
break;
- case 0x1E: /* P.m */
+ case 0x1E: /* P.m */
GETP().u &= ~( 0x807fffff );
GETP().u |= ( val & 0x7fffff );
GETP().u |= ( val & 0x800000 ) << 8;
@@ -862,7 +862,7 @@ static void SETREGS( mb86233_state *cpustate, UINT32 reg, UINT32 val )
static UINT32 INDIRECT( mb86233_state *cpustate, UINT32 reg, int source )
{
- UINT32 mode = ( reg >> 6 ) & 0x07;
+ UINT32 mode = ( reg >> 6 ) & 0x07;
if ( mode == 0 || mode == 1 || mode == 3 )
{
@@ -870,7 +870,7 @@ static UINT32 INDIRECT( mb86233_state *cpustate, UINT32 reg, int source )
}
else if ( mode == 2 )
{
- UINT32 addr = reg & 0x1f;
+ UINT32 addr = reg & 0x1f;
if ( source )
{
@@ -891,7 +891,7 @@ static UINT32 INDIRECT( mb86233_state *cpustate, UINT32 reg, int source )
}
else if ( mode == 6 || mode == 7 )
{
- UINT32 addr = 0;
+ UINT32 addr = 0;
if ( source )
{
@@ -943,8 +943,8 @@ static CPU_EXECUTE( mb86233 )
while( cpustate->icount > 0 )
{
- UINT32 val;
- UINT32 opcode;
+ UINT32 val;
+ UINT32 opcode;
debugger_instruction_hook(device, GETPC());
@@ -954,12 +954,12 @@ static CPU_EXECUTE( mb86233 )
switch( (opcode >> 26) & 0x3f )
{
- case 0x00: /* dual move */
+ case 0x00: /* dual move */
{
- UINT32 r1 = opcode & 0x1ff;
- UINT32 r2 = ( opcode >> 9 ) & 0x7f;
- UINT32 alu = ( opcode >> 21 ) & 0x1f;
- UINT32 op = ( opcode >> 16 ) & 0x1f;
+ UINT32 r1 = opcode & 0x1ff;
+ UINT32 r2 = ( opcode >> 9 ) & 0x7f;
+ UINT32 alu = ( opcode >> 21 ) & 0x1f;
+ UINT32 op = ( opcode >> 16 ) & 0x1f;
ALU( cpustate, alu );
@@ -997,30 +997,30 @@ static CPU_EXECUTE( mb86233 )
}
break;
- case 0x7: /* LD/MOV */
+ case 0x7: /* LD/MOV */
{
- UINT32 r1 = opcode & 0x1ff;
- UINT32 r2 = ( opcode >> 9 ) & 0x7f;
- UINT32 alu = ( opcode >> 21 ) & 0x1f;
- UINT32 op = ( opcode >> 16 ) & 0x1f;
+ UINT32 r1 = opcode & 0x1ff;
+ UINT32 r2 = ( opcode >> 9 ) & 0x7f;
+ UINT32 alu = ( opcode >> 21 ) & 0x1f;
+ UINT32 op = ( opcode >> 16 ) & 0x1f;
switch( op )
{
- case 0x04: /* MOV RAM->External */
+ case 0x04: /* MOV RAM->External */
{
SETEXTERNAL(cpustate, GETEB(), r2, GETARAM()[r1]);
ALU(cpustate, alu);
}
break;
- case 0x0c: /* MOV RAM->BRAM */
+ case 0x0c: /* MOV RAM->BRAM */
{
GETBRAM()[r2] = GETARAM()[r1];
ALU(cpustate, alu);
}
break;
- case 0x1d: /* MOV RAM->Reg */
+ case 0x1d: /* MOV RAM->Reg */
{
if ( r1 & 0x180 )
{
@@ -1061,7 +1061,7 @@ static CPU_EXECUTE( mb86233 )
}
break;
- case 0x1f: /* MOV Reg->Reg */
+ case 0x1f: /* MOV Reg->Reg */
{
if ( r1 == 0x10 && r2 == 0xf )
{
@@ -1082,7 +1082,7 @@ static CPU_EXECUTE( mb86233 )
}
break;
- case 0x0f: /* MOV RAMInd->BRAMInd */
+ case 0x0f: /* MOV RAMInd->BRAMInd */
{
val = GETARAM()[INDIRECT(cpustate,r1,1)];
ALU(cpustate, alu);
@@ -1090,7 +1090,7 @@ static CPU_EXECUTE( mb86233 )
}
break;
- case 0x13: /* MOV BRAMInd->RAMInd */
+ case 0x13: /* MOV BRAMInd->RAMInd */
{
val = GETBRAM()[INDIRECT(cpustate,r1,1)];
ALU(cpustate, alu);
@@ -1098,7 +1098,7 @@ static CPU_EXECUTE( mb86233 )
}
break;
- case 0x10: /* MOV RAMInd->RAM */
+ case 0x10: /* MOV RAMInd->RAM */
{
val = GETBRAM()[INDIRECT(cpustate,r1,1)];
ALU(cpustate, alu);
@@ -1106,9 +1106,9 @@ static CPU_EXECUTE( mb86233 )
}
break;
- case 0x1e: /* External->Reg */
+ case 0x1e: /* External->Reg */
{
- UINT32 offset;
+ UINT32 offset;
if ( ( r2 >> 6 ) & 1 )
offset = INDIRECT(cpustate,r1,1);
@@ -1121,7 +1121,7 @@ static CPU_EXECUTE( mb86233 )
}
break;
- case 0x03: /* RAM->External Ind */
+ case 0x03: /* RAM->External Ind */
{
val = GETARAM()[r1];
ALU(cpustate, alu);
@@ -1129,7 +1129,7 @@ static CPU_EXECUTE( mb86233 )
}
break;
- case 0x07: /* RAMInd->External */
+ case 0x07: /* RAMInd->External */
{
val = GETARAM()[INDIRECT(cpustate,r1,1)];
ALU(cpustate, alu);
@@ -1137,7 +1137,7 @@ static CPU_EXECUTE( mb86233 )
}
break;
- case 0x08: /* External->RAM */
+ case 0x08: /* External->RAM */
{
val = GETEXTERNAL(cpustate, GETEB(),INDIRECT(cpustate,r1,1));
ALU(cpustate, alu);
@@ -1145,7 +1145,7 @@ static CPU_EXECUTE( mb86233 )
}
break;
- case 0x0b: /* External->RAMInd */
+ case 0x0b: /* External->RAMInd */
{
val = GETEXTERNAL(cpustate, GETEB(),INDIRECT(cpustate,r1,1));
ALU(cpustate, alu);
@@ -1160,10 +1160,10 @@ static CPU_EXECUTE( mb86233 )
}
break;
- case 0x0e: /* LDIMM24 */
+ case 0x0e: /* LDIMM24 */
{
- UINT32 sub = (opcode>>24) & 0x03;
- UINT32 imm = opcode & 0xffffff;
+ UINT32 sub = (opcode>>24) & 0x03;
+ UINT32 imm = opcode & 0xffffff;
/* sign extend 24->32 */
if ( imm & 0x800000 )
@@ -1190,16 +1190,16 @@ static CPU_EXECUTE( mb86233 )
}
break;
- case 0x0f: /* REP/CLEAR/FLAGS */
+ case 0x0f: /* REP/CLEAR/FLAGS */
{
- UINT32 alu = ( opcode >> 20 ) & 0x1f;
- UINT32 sub2 = ( opcode >> 16 ) & 0x0f;
+ UINT32 alu = ( opcode >> 20 ) & 0x1f;
+ UINT32 sub2 = ( opcode >> 16 ) & 0x0f;
ALU(cpustate, alu );
- if( sub2 == 0x00 ) /* CLEAR reg */
+ if( sub2 == 0x00 ) /* CLEAR reg */
{
- UINT32 reg = opcode & 0x1f;
+ UINT32 reg = opcode & 0x1f;
switch( reg )
{
@@ -1216,9 +1216,9 @@ static CPU_EXECUTE( mb86233 )
break;
}
}
- else if ( sub2 == 0x04 ) /* REP xxx */
+ else if ( sub2 == 0x04 ) /* REP xxx */
{
- UINT32 sub3 = ( opcode >> 12 ) & 0x0f;
+ UINT32 sub3 = ( opcode >> 12 ) & 0x0f;
if ( sub3 == 0 )
{
@@ -1235,30 +1235,30 @@ static CPU_EXECUTE( mb86233 )
GETPC()++;
}
}
- else if ( sub2 == 0x02 ) /* CLRFLAGS */
+ else if ( sub2 == 0x02 ) /* CLRFLAGS */
{
GETSR() &= ~(opcode&0xfff);
}
- else if ( sub2 == 0x06 ) /* SETFLAGS */
+ else if ( sub2 == 0x06 ) /* SETFLAGS */
{
GETSR() |= (opcode&0xfff);
}
}
break;
- case 0x10: /* LDIMM rx */
+ case 0x10: /* LDIMM rx */
{
- UINT32 sub = (opcode>>24) & 0x03;
- UINT32 imm = opcode & 0xffff;
+ UINT32 sub = (opcode>>24) & 0x03;
+ UINT32 imm = opcode & 0xffff;
GETGPR(sub) = imm;
}
break;
- case 0x13: /* LDIMM r1x */
+ case 0x13: /* LDIMM r1x */
{
- UINT32 sub = (opcode>>24) & 0x03;
- UINT32 imm = opcode & 0xffffff;
+ UINT32 sub = (opcode>>24) & 0x03;
+ UINT32 imm = opcode & 0xffffff;
if ( sub == 0 ) /* R12 */
GETGPR(12) = imm & 0xff;
@@ -1269,10 +1269,10 @@ static CPU_EXECUTE( mb86233 )
}
break;
- case 0x14: /* LDIMM m,e */
+ case 0x14: /* LDIMM m,e */
{
- UINT32 sub = (opcode>>24) & 0x03;
- UINT32 imm = opcode & 0xffffff;
+ UINT32 sub = (opcode>>24) & 0x03;
+ UINT32 imm = opcode & 0xffffff;
if ( sub == 0 ) /* A */
{
@@ -1295,10 +1295,10 @@ static CPU_EXECUTE( mb86233 )
}
break;
- case 0x15: /* LDIMM m,e */
+ case 0x15: /* LDIMM m,e */
{
- UINT32 sub = (opcode>>24) & 0x03;
- UINT32 imm = opcode & 0xffffff;
+ UINT32 sub = (opcode>>24) & 0x03;
+ UINT32 imm = opcode & 0xffffff;
if ( sub == 0 ) /* B.e again? */
{
@@ -1323,10 +1323,10 @@ static CPU_EXECUTE( mb86233 )
}
break;
- case 0x16: /* LDIMM m,e */
+ case 0x16: /* LDIMM m,e */
{
- UINT32 sub = (opcode>>24) & 0x03;
- UINT32 imm = opcode & 0xffffff;
+ UINT32 sub = (opcode>>24) & 0x03;
+ UINT32 imm = opcode & 0xffffff;
if ( sub == 1 ) /* clear + D.m */
{
@@ -1349,10 +1349,10 @@ static CPU_EXECUTE( mb86233 )
}
break;
- case 0x17: /* LDIMM special reg */
+ case 0x17: /* LDIMM special reg */
{
- UINT32 sub = (opcode>>24) & 0x03;
- UINT32 imm = opcode & 0xffffff;
+ UINT32 sub = (opcode>>24) & 0x03;
+ UINT32 imm = opcode & 0xffffff;
if ( sub == 0x03 )
{
@@ -1365,10 +1365,10 @@ static CPU_EXECUTE( mb86233 )
}
break;
- case 0x18: /* LDIMM external reg */
+ case 0x18: /* LDIMM external reg */
{
- UINT32 sub = (opcode>>24) & 0x03;
- UINT32 imm = opcode & 0xffffff;
+ UINT32 sub = (opcode>>24) & 0x03;
+ UINT32 imm = opcode & 0xffffff;
if ( sub == 0x03 )
{
@@ -1381,7 +1381,7 @@ static CPU_EXECUTE( mb86233 )
}
break;
- case 0x1d: //LDIMM to Rep regs
+ case 0x1d: //LDIMM to Rep regs
{
UINT32 sub = (opcode>>24)&0x3;
UINT32 imm = opcode&0xffffff;
@@ -1396,21 +1396,21 @@ static CPU_EXECUTE( mb86233 )
}
break;
- case 0x2f: /* Conditional Branches */
+ case 0x2f: /* Conditional Branches */
{
- UINT32 cond = ( opcode >> 20 ) & 0x1f;
- UINT32 subtype = ( opcode >> 16 ) & 0x0f;
- UINT32 data = opcode & 0xffff;
+ UINT32 cond = ( opcode >> 20 ) & 0x1f;
+ UINT32 subtype = ( opcode >> 16 ) & 0x0f;
+ UINT32 data = opcode & 0xffff;
if( COND(cpustate, cond) )
{
switch( subtype )
{
- case 0x00: /* BRIF <addr> */
+ case 0x00: /* BRIF <addr> */
GETPC() = data - 1;
break;
- case 0x02: /* BRIF indirect */
+ case 0x02: /* BRIF indirect */
if ( data & 0x4000 )
data = GETREGS(cpustate,data&0x3f,0) - 1;
else
@@ -1423,13 +1423,13 @@ static CPU_EXECUTE( mb86233 )
GETPC() = data;
break;
- case 0x04: /* BSIF <addr> */
+ case 0x04: /* BSIF <addr> */
GETPCS()[GETPCSP()] = GETPC();
GETPCSP()++;
GETPC() = data - 1;
break;
- case 0x06: /* BSIF indirect */
+ case 0x06: /* BSIF indirect */
GETPCS()[GETPCSP()] = GETPC();
GETPCSP()++;
if ( data & 0x4000 )
@@ -1444,16 +1444,16 @@ static CPU_EXECUTE( mb86233 )
GETPC() = data;
break;
- case 0x0a: /* RTIF */
+ case 0x0a: /* RTIF */
--GETPCSP();
GETPC() = GETPCS()[GETPCSP()];
break;
- case 0x0c: /* LDIF */
+ case 0x0c: /* LDIF */
SETREGS(cpustate,((data>>9)&0x3f), GETARAM()[data&0x1FF] );
break;
- case 0x0e: /* RIIF */
+ case 0x0e: /* RIIF */
logerror( "TGP: RIIF unimplemented at PC:%04x\n", GETPC() );
break;
@@ -1465,21 +1465,21 @@ static CPU_EXECUTE( mb86233 )
}
break;
- case 0x3f: /* Inverse Conditional Branches */
+ case 0x3f: /* Inverse Conditional Branches */
{
- UINT32 cond = ( opcode >> 20 ) & 0x1f;
- UINT32 subtype = ( opcode >> 16 ) & 0x0f;
- UINT32 data = opcode & 0xffff;
+ UINT32 cond = ( opcode >> 20 ) & 0x1f;
+ UINT32 subtype = ( opcode >> 16 ) & 0x0f;
+ UINT32 data = opcode & 0xffff;
if( !COND(cpustate, cond) )
{
switch( subtype )
{
- case 0x00: /* BRUL <addr> */
+ case 0x00: /* BRUL <addr> */
GETPC() = data - 1;
break;
- case 0x02: /* BRUL indirect */
+ case 0x02: /* BRUL indirect */
if ( data & 0x4000 )
data = GETREGS(cpustate,data&0x3f,0) - 1;
else
@@ -1492,13 +1492,13 @@ static CPU_EXECUTE( mb86233 )
GETPC() = data;
break;
- case 0x04: /* BSUL <addr> */
+ case 0x04: /* BSUL <addr> */
GETPCS()[GETPCSP()] = GETPC();
GETPCSP()++;
GETPC() = data - 1;
break;
- case 0x06: /* BSUL indirect */
+ case 0x06: /* BSUL indirect */
GETPCS()[GETPCSP()] = GETPC();
GETPCSP()++;
if ( data & 0x4000 )
@@ -1513,16 +1513,16 @@ static CPU_EXECUTE( mb86233 )
GETPC() = data;
break;
- case 0x0a: /* RTUL */
+ case 0x0a: /* RTUL */
--GETPCSP();
GETPC() = GETPCS()[GETPCSP()];
break;
- case 0x0c: /* LDUL */
+ case 0x0c: /* LDUL */
SETREGS(cpustate,((data>>9)&0x3f), GETARAM()[data&0x1FF] );
break;
- case 0x0e: /* RIUL */
+ case 0x0e: /* RIUL */
logerror( "TGP: RIIF unimplemented at PC:%04x\n", GETPC() );
break;
@@ -1566,33 +1566,33 @@ static CPU_SET_INFO( mb86233 )
switch (state)
{
case CPUINFO_INT_PC:
- case CPUINFO_INT_REGISTER + MB86233_PC: GETPC() = info->i; break;
- case CPUINFO_INT_REGISTER + MB86233_A: GETA().u = info->i; break;
- case CPUINFO_INT_REGISTER + MB86233_B: GETB().u = info->i; break;
- case CPUINFO_INT_REGISTER + MB86233_P: GETP().u = info->i; break;
- case CPUINFO_INT_REGISTER + MB86233_D: GETD().u = info->i; break;
- case CPUINFO_INT_REGISTER + MB86233_REP: GETREPS() = info->i; break;
+ case CPUINFO_INT_REGISTER + MB86233_PC: GETPC() = info->i; break;
+ case CPUINFO_INT_REGISTER + MB86233_A: GETA().u = info->i; break;
+ case CPUINFO_INT_REGISTER + MB86233_B: GETB().u = info->i; break;
+ case CPUINFO_INT_REGISTER + MB86233_P: GETP().u = info->i; break;
+ case CPUINFO_INT_REGISTER + MB86233_D: GETD().u = info->i; break;
+ case CPUINFO_INT_REGISTER + MB86233_REP: GETREPS() = info->i; break;
case CPUINFO_INT_SP:
- case CPUINFO_INT_REGISTER + MB86233_SP: GETPCSP() = info->i; break;
- case CPUINFO_INT_REGISTER + MB86233_EB: GETEB() = info->i; break;
- case CPUINFO_INT_REGISTER + MB86233_SHIFT: GETSHIFT() = info->i; break;
- case CPUINFO_INT_REGISTER + MB86233_FLAGS: GETSR() = info->i; break;
- case CPUINFO_INT_REGISTER + MB86233_R0: GETGPR(0) = info->i; break;
- case CPUINFO_INT_REGISTER + MB86233_R1: GETGPR(1) = info->i; break;
- case CPUINFO_INT_REGISTER + MB86233_R2: GETGPR(2) = info->i; break;
- case CPUINFO_INT_REGISTER + MB86233_R3: GETGPR(3) = info->i; break;
- case CPUINFO_INT_REGISTER + MB86233_R4: GETGPR(4) = info->i; break;
- case CPUINFO_INT_REGISTER + MB86233_R5: GETGPR(5) = info->i; break;
- case CPUINFO_INT_REGISTER + MB86233_R6: GETGPR(6) = info->i; break;
- case CPUINFO_INT_REGISTER + MB86233_R7: GETGPR(7) = info->i; break;
- case CPUINFO_INT_REGISTER + MB86233_R8: GETGPR(8) = info->i; break;
- case CPUINFO_INT_REGISTER + MB86233_R9: GETGPR(9) = info->i; break;
- case CPUINFO_INT_REGISTER + MB86233_R10: GETGPR(10) = info->i; break;
- case CPUINFO_INT_REGISTER + MB86233_R11: GETGPR(11) = info->i; break;
- case CPUINFO_INT_REGISTER + MB86233_R12: GETGPR(12) = info->i; break;
- case CPUINFO_INT_REGISTER + MB86233_R13: GETGPR(13) = info->i; break;
- case CPUINFO_INT_REGISTER + MB86233_R14: GETGPR(14) = info->i; break;
- case CPUINFO_INT_REGISTER + MB86233_R15: GETGPR(15) = info->i; break;
+ case CPUINFO_INT_REGISTER + MB86233_SP: GETPCSP() = info->i; break;
+ case CPUINFO_INT_REGISTER + MB86233_EB: GETEB() = info->i; break;
+ case CPUINFO_INT_REGISTER + MB86233_SHIFT: GETSHIFT() = info->i; break;
+ case CPUINFO_INT_REGISTER + MB86233_FLAGS: GETSR() = info->i; break;
+ case CPUINFO_INT_REGISTER + MB86233_R0: GETGPR(0) = info->i; break;
+ case CPUINFO_INT_REGISTER + MB86233_R1: GETGPR(1) = info->i; break;
+ case CPUINFO_INT_REGISTER + MB86233_R2: GETGPR(2) = info->i; break;
+ case CPUINFO_INT_REGISTER + MB86233_R3: GETGPR(3) = info->i; break;
+ case CPUINFO_INT_REGISTER + MB86233_R4: GETGPR(4) = info->i; break;
+ case CPUINFO_INT_REGISTER + MB86233_R5: GETGPR(5) = info->i; break;
+ case CPUINFO_INT_REGISTER + MB86233_R6: GETGPR(6) = info->i; break;
+ case CPUINFO_INT_REGISTER + MB86233_R7: GETGPR(7) = info->i; break;
+ case CPUINFO_INT_REGISTER + MB86233_R8: GETGPR(8) = info->i; break;
+ case CPUINFO_INT_REGISTER + MB86233_R9: GETGPR(9) = info->i; break;
+ case CPUINFO_INT_REGISTER + MB86233_R10: GETGPR(10) = info->i; break;
+ case CPUINFO_INT_REGISTER + MB86233_R11: GETGPR(11) = info->i; break;
+ case CPUINFO_INT_REGISTER + MB86233_R12: GETGPR(12) = info->i; break;
+ case CPUINFO_INT_REGISTER + MB86233_R13: GETGPR(13) = info->i; break;
+ case CPUINFO_INT_REGISTER + MB86233_R14: GETGPR(14) = info->i; break;
+ case CPUINFO_INT_REGISTER + MB86233_R15: GETGPR(15) = info->i; break;
}
}
@@ -1607,108 +1607,108 @@ CPU_GET_INFO( mb86233 )
switch (state)
{
/* --- the following bits of info are returned as 64-bit signed integers --- */
- case CPUINFO_INT_CONTEXT_SIZE: info->i = sizeof(mb86233_state); break;
- case CPUINFO_INT_INPUT_LINES: info->i = 0; break;
- case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; 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 = 1; break;
- case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 4; 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 = 2; break;
-
- case CPUINFO_INT_DATABUS_WIDTH + AS_PROGRAM: info->i = 32; break;
- case CPUINFO_INT_ADDRBUS_WIDTH + AS_PROGRAM: info->i = 32; break;
- case CPUINFO_INT_ADDRBUS_SHIFT + AS_PROGRAM: info->i = -2; break;
- case CPUINFO_INT_DATABUS_WIDTH + AS_DATA: info->i = 32; break;
- case CPUINFO_INT_ADDRBUS_WIDTH + AS_DATA: info->i = 32; break;
- case CPUINFO_INT_ADDRBUS_SHIFT + AS_DATA: info->i = 0; 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_PREVIOUSPC: /* not implemented */ break;
+ case CPUINFO_INT_CONTEXT_SIZE: info->i = sizeof(mb86233_state); break;
+ case CPUINFO_INT_INPUT_LINES: info->i = 0; break;
+ case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; 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 = 1; break;
+ case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 4; 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 = 2; break;
+
+ case CPUINFO_INT_DATABUS_WIDTH + AS_PROGRAM: info->i = 32; break;
+ case CPUINFO_INT_ADDRBUS_WIDTH + AS_PROGRAM: info->i = 32; break;
+ case CPUINFO_INT_ADDRBUS_SHIFT + AS_PROGRAM: info->i = -2; break;
+ case CPUINFO_INT_DATABUS_WIDTH + AS_DATA: info->i = 32; break;
+ case CPUINFO_INT_ADDRBUS_WIDTH + AS_DATA: info->i = 32; break;
+ case CPUINFO_INT_ADDRBUS_SHIFT + AS_DATA: info->i = 0; 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_PREVIOUSPC: /* not implemented */ break;
case CPUINFO_INT_PC:
- case CPUINFO_INT_REGISTER + MB86233_PC: info->i = GETPC(); break;
- case CPUINFO_INT_REGISTER + MB86233_A: info->i = GETA().u; break;
- case CPUINFO_INT_REGISTER + MB86233_B: info->i = GETB().u; break;
- case CPUINFO_INT_REGISTER + MB86233_P: info->i = GETP().u; break;
- case CPUINFO_INT_REGISTER + MB86233_D: info->i = GETD().u; break;
- case CPUINFO_INT_REGISTER + MB86233_REP: info->i = GETREPS(); break;
+ case CPUINFO_INT_REGISTER + MB86233_PC: info->i = GETPC(); break;
+ case CPUINFO_INT_REGISTER + MB86233_A: info->i = GETA().u; break;
+ case CPUINFO_INT_REGISTER + MB86233_B: info->i = GETB().u; break;
+ case CPUINFO_INT_REGISTER + MB86233_P: info->i = GETP().u; break;
+ case CPUINFO_INT_REGISTER + MB86233_D: info->i = GETD().u; break;
+ case CPUINFO_INT_REGISTER + MB86233_REP: info->i = GETREPS(); break;
case CPUINFO_INT_SP:
- case CPUINFO_INT_REGISTER + MB86233_SP: info->i = GETPCSP(); break;
- case CPUINFO_INT_REGISTER + MB86233_EB: info->i = GETEB(); break;
- case CPUINFO_INT_REGISTER + MB86233_SHIFT: info->i = GETSHIFT(); break;
- case CPUINFO_INT_REGISTER + MB86233_FLAGS: info->i = GETSR(); break;
- case CPUINFO_INT_REGISTER + MB86233_R0: info->i = GETGPR(0); break;
- case CPUINFO_INT_REGISTER + MB86233_R1: info->i = GETGPR(1); break;
- case CPUINFO_INT_REGISTER + MB86233_R2: info->i = GETGPR(2); break;
- case CPUINFO_INT_REGISTER + MB86233_R3: info->i = GETGPR(3); break;
- case CPUINFO_INT_REGISTER + MB86233_R4: info->i = GETGPR(4); break;
- case CPUINFO_INT_REGISTER + MB86233_R5: info->i = GETGPR(5); break;
- case CPUINFO_INT_REGISTER + MB86233_R6: info->i = GETGPR(6); break;
- case CPUINFO_INT_REGISTER + MB86233_R7: info->i = GETGPR(7); break;
- case CPUINFO_INT_REGISTER + MB86233_R8: info->i = GETGPR(8); break;
- case CPUINFO_INT_REGISTER + MB86233_R9: info->i = GETGPR(9); break;
- case CPUINFO_INT_REGISTER + MB86233_R10: info->i = GETGPR(10); break;
- case CPUINFO_INT_REGISTER + MB86233_R11: info->i = GETGPR(11); break;
- case CPUINFO_INT_REGISTER + MB86233_R12: info->i = GETGPR(12); break;
- case CPUINFO_INT_REGISTER + MB86233_R13: info->i = GETGPR(13); break;
- case CPUINFO_INT_REGISTER + MB86233_R14: info->i = GETGPR(14); break;
- case CPUINFO_INT_REGISTER + MB86233_R15: info->i = GETGPR(15); break;
+ case CPUINFO_INT_REGISTER + MB86233_SP: info->i = GETPCSP(); break;
+ case CPUINFO_INT_REGISTER + MB86233_EB: info->i = GETEB(); break;
+ case CPUINFO_INT_REGISTER + MB86233_SHIFT: info->i = GETSHIFT(); break;
+ case CPUINFO_INT_REGISTER + MB86233_FLAGS: info->i = GETSR(); break;
+ case CPUINFO_INT_REGISTER + MB86233_R0: info->i = GETGPR(0); break;
+ case CPUINFO_INT_REGISTER + MB86233_R1: info->i = GETGPR(1); break;
+ case CPUINFO_INT_REGISTER + MB86233_R2: info->i = GETGPR(2); break;
+ case CPUINFO_INT_REGISTER + MB86233_R3: info->i = GETGPR(3); break;
+ case CPUINFO_INT_REGISTER + MB86233_R4: info->i = GETGPR(4); break;
+ case CPUINFO_INT_REGISTER + MB86233_R5: info->i = GETGPR(5); break;
+ case CPUINFO_INT_REGISTER + MB86233_R6: info->i = GETGPR(6); break;
+ case CPUINFO_INT_REGISTER + MB86233_R7: info->i = GETGPR(7); break;
+ case CPUINFO_INT_REGISTER + MB86233_R8: info->i = GETGPR(8); break;
+ case CPUINFO_INT_REGISTER + MB86233_R9: info->i = GETGPR(9); break;
+ case CPUINFO_INT_REGISTER + MB86233_R10: info->i = GETGPR(10); break;
+ case CPUINFO_INT_REGISTER + MB86233_R11: info->i = GETGPR(11); break;
+ case CPUINFO_INT_REGISTER + MB86233_R12: info->i = GETGPR(12); break;
+ case CPUINFO_INT_REGISTER + MB86233_R13: info->i = GETGPR(13); break;
+ case CPUINFO_INT_REGISTER + MB86233_R14: info->i = GETGPR(14); break;
+ case CPUINFO_INT_REGISTER + MB86233_R15: info->i = GETGPR(15); 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(mb86233); break;
- case CPUINFO_FCT_INIT: info->init = CPU_INIT_NAME(mb86233); break;
- case CPUINFO_FCT_RESET: info->reset = CPU_RESET_NAME(mb86233); break;
- case CPUINFO_FCT_EXIT: info->exit = NULL; break;
- case CPUINFO_FCT_EXECUTE: info->execute = CPU_EXECUTE_NAME(mb86233); break;
- case CPUINFO_FCT_BURN: info->burn = NULL; break;
- case CPUINFO_FCT_DISASSEMBLE: info->disassemble = CPU_DISASSEMBLE_NAME(mb86233); break;
- case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &cpustate->icount; break;
+ case CPUINFO_FCT_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(mb86233); break;
+ case CPUINFO_FCT_INIT: info->init = CPU_INIT_NAME(mb86233); break;
+ case CPUINFO_FCT_RESET: info->reset = CPU_RESET_NAME(mb86233); break;
+ case CPUINFO_FCT_EXIT: info->exit = NULL; break;
+ case CPUINFO_FCT_EXECUTE: info->execute = CPU_EXECUTE_NAME(mb86233); break;
+ case CPUINFO_FCT_BURN: info->burn = NULL; break;
+ case CPUINFO_FCT_DISASSEMBLE: info->disassemble = CPU_DISASSEMBLE_NAME(mb86233); 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, "MB86233"); break;
- case CPUINFO_STR_FAMILY: strcpy(info->s, "Fujitsu MB86233"); break;
- case CPUINFO_STR_VERSION: strcpy(info->s, "1.0"); break;
- case CPUINFO_STR_SOURCE_FILE: strcpy(info->s, __FILE__); break;
- case CPUINFO_STR_CREDITS: strcpy(info->s, "Copyright Miguel Angel Horna and Ernesto Corvi"); break;
+ case CPUINFO_STR_NAME: strcpy(info->s, "MB86233"); break;
+ case CPUINFO_STR_FAMILY: strcpy(info->s, "Fujitsu MB86233"); break;
+ case CPUINFO_STR_VERSION: strcpy(info->s, "1.0"); break;
+ case CPUINFO_STR_SOURCE_FILE: strcpy(info->s, __FILE__); break;
+ case CPUINFO_STR_CREDITS: strcpy(info->s, "Copyright Miguel Angel Horna and Ernesto Corvi"); break;
case CPUINFO_STR_FLAGS:
- sprintf(info->s, "%c%c", (GETSR()&SIGN_FLAG) ? 'N' : 'n', (GETSR()&ZERO_FLAG) ? 'Z' : 'z' );
- break;
-
- case CPUINFO_STR_REGISTER + MB86233_FLAGS:
- sprintf(info->s, "FL:%c%c", (GETSR()&SIGN_FLAG) ? 'N' : 'n', (GETSR()&ZERO_FLAG) ? 'Z' : 'z' );
- break;
-
- case CPUINFO_STR_REGISTER + MB86233_PC: sprintf(info->s, "PC:%04X", GETPC()); break;
- case CPUINFO_STR_REGISTER + MB86233_A: sprintf(info->s, "PA:%08X (%f)", GETA().u, GETA().f); break;
- case CPUINFO_STR_REGISTER + MB86233_B: sprintf(info->s, "PB:%08X (%f)", GETB().u, GETB().f); break;
- case CPUINFO_STR_REGISTER + MB86233_P: sprintf(info->s, "PP:%08X (%f)", GETP().u, GETP().f); break;
- case CPUINFO_STR_REGISTER + MB86233_D: sprintf(info->s, "PD:%08X (%f)", GETD().u, GETD().f); break;
- case CPUINFO_STR_REGISTER + MB86233_REP: sprintf(info->s, "REPS:%08X", GETREPS()); break;
- case CPUINFO_STR_REGISTER + MB86233_SP: sprintf(info->s, "PCSP:%1X", GETPCSP()); break;
- case CPUINFO_STR_REGISTER + MB86233_EB: sprintf(info->s, "EB:%08X", GETEB()); break;
- case CPUINFO_STR_REGISTER + MB86233_SHIFT: sprintf(info->s, "SHIFT:%08X", GETSHIFT()); break;
- case CPUINFO_STR_REGISTER + MB86233_R0: sprintf(info->s, "R0:%08X", GETGPR(0)); break;
- case CPUINFO_STR_REGISTER + MB86233_R1: sprintf(info->s, "R1:%08X", GETGPR(1)); break;
- case CPUINFO_STR_REGISTER + MB86233_R2: sprintf(info->s, "R2:%08X", GETGPR(2)); break;
- case CPUINFO_STR_REGISTER + MB86233_R3: sprintf(info->s, "R3:%08X", GETGPR(3)); break;
- case CPUINFO_STR_REGISTER + MB86233_R4: sprintf(info->s, "R4:%08X", GETGPR(4)); break;
- case CPUINFO_STR_REGISTER + MB86233_R5: sprintf(info->s, "R5:%08X", GETGPR(5)); break;
- case CPUINFO_STR_REGISTER + MB86233_R6: sprintf(info->s, "R6:%08X", GETGPR(6)); break;
- case CPUINFO_STR_REGISTER + MB86233_R7: sprintf(info->s, "R7:%08X", GETGPR(7)); break;
- case CPUINFO_STR_REGISTER + MB86233_R8: sprintf(info->s, "R8:%08X", GETGPR(8)); break;
- case CPUINFO_STR_REGISTER + MB86233_R9: sprintf(info->s, "R9:%08X", GETGPR(9)); break;
- case CPUINFO_STR_REGISTER + MB86233_R10: sprintf(info->s, "R10:%08X", GETGPR(10)); break;
- case CPUINFO_STR_REGISTER + MB86233_R11: sprintf(info->s, "R11:%08X", GETGPR(11)); break;
- case CPUINFO_STR_REGISTER + MB86233_R12: sprintf(info->s, "R12:%08X", GETGPR(12)); break;
- case CPUINFO_STR_REGISTER + MB86233_R13: sprintf(info->s, "R13:%08X", GETGPR(13)); break;
- case CPUINFO_STR_REGISTER + MB86233_R14: sprintf(info->s, "R14:%08X", GETGPR(14)); break;
- case CPUINFO_STR_REGISTER + MB86233_R15: sprintf(info->s, "R15:%08X", GETGPR(15)); break;
+ sprintf(info->s, "%c%c", (GETSR()&SIGN_FLAG) ? 'N' : 'n', (GETSR()&ZERO_FLAG) ? 'Z' : 'z' );
+ break;
+
+ case CPUINFO_STR_REGISTER + MB86233_FLAGS:
+ sprintf(info->s, "FL:%c%c", (GETSR()&SIGN_FLAG) ? 'N' : 'n', (GETSR()&ZERO_FLAG) ? 'Z' : 'z' );
+ break;
+
+ case CPUINFO_STR_REGISTER + MB86233_PC: sprintf(info->s, "PC:%04X", GETPC()); break;
+ case CPUINFO_STR_REGISTER + MB86233_A: sprintf(info->s, "PA:%08X (%f)", GETA().u, GETA().f); break;
+ case CPUINFO_STR_REGISTER + MB86233_B: sprintf(info->s, "PB:%08X (%f)", GETB().u, GETB().f); break;
+ case CPUINFO_STR_REGISTER + MB86233_P: sprintf(info->s, "PP:%08X (%f)", GETP().u, GETP().f); break;
+ case CPUINFO_STR_REGISTER + MB86233_D: sprintf(info->s, "PD:%08X (%f)", GETD().u, GETD().f); break;
+ case CPUINFO_STR_REGISTER + MB86233_REP: sprintf(info->s, "REPS:%08X", GETREPS()); break;
+ case CPUINFO_STR_REGISTER + MB86233_SP: sprintf(info->s, "PCSP:%1X", GETPCSP()); break;
+ case CPUINFO_STR_REGISTER + MB86233_EB: sprintf(info->s, "EB:%08X", GETEB()); break;
+ case CPUINFO_STR_REGISTER + MB86233_SHIFT: sprintf(info->s, "SHIFT:%08X", GETSHIFT()); break;
+ case CPUINFO_STR_REGISTER + MB86233_R0: sprintf(info->s, "R0:%08X", GETGPR(0)); break;
+ case CPUINFO_STR_REGISTER + MB86233_R1: sprintf(info->s, "R1:%08X", GETGPR(1)); break;
+ case CPUINFO_STR_REGISTER + MB86233_R2: sprintf(info->s, "R2:%08X", GETGPR(2)); break;
+ case CPUINFO_STR_REGISTER + MB86233_R3: sprintf(info->s, "R3:%08X", GETGPR(3)); break;
+ case CPUINFO_STR_REGISTER + MB86233_R4: sprintf(info->s, "R4:%08X", GETGPR(4)); break;
+ case CPUINFO_STR_REGISTER + MB86233_R5: sprintf(info->s, "R5:%08X", GETGPR(5)); break;
+ case CPUINFO_STR_REGISTER + MB86233_R6: sprintf(info->s, "R6:%08X", GETGPR(6)); break;
+ case CPUINFO_STR_REGISTER + MB86233_R7: sprintf(info->s, "R7:%08X", GETGPR(7)); break;
+ case CPUINFO_STR_REGISTER + MB86233_R8: sprintf(info->s, "R8:%08X", GETGPR(8)); break;
+ case CPUINFO_STR_REGISTER + MB86233_R9: sprintf(info->s, "R9:%08X", GETGPR(9)); break;
+ case CPUINFO_STR_REGISTER + MB86233_R10: sprintf(info->s, "R10:%08X", GETGPR(10)); break;
+ case CPUINFO_STR_REGISTER + MB86233_R11: sprintf(info->s, "R11:%08X", GETGPR(11)); break;
+ case CPUINFO_STR_REGISTER + MB86233_R12: sprintf(info->s, "R12:%08X", GETGPR(12)); break;
+ case CPUINFO_STR_REGISTER + MB86233_R13: sprintf(info->s, "R13:%08X", GETGPR(13)); break;
+ case CPUINFO_STR_REGISTER + MB86233_R14: sprintf(info->s, "R14:%08X", GETGPR(14)); break;
+ case CPUINFO_STR_REGISTER + MB86233_R15: sprintf(info->s, "R15:%08X", GETGPR(15)); break;
}
}