O2Hawk: Start disassembly
This commit is contained in:
parent
33d53638e9
commit
c427d280ba
BizHawk.Emulation.Cores/CPUs/Intel8048
|
@ -8,54 +8,54 @@ namespace BizHawk.Emulation.Common.Components.I8048
|
|||
{
|
||||
static string[] table =
|
||||
{
|
||||
"NEG DP+i8", // 00
|
||||
"NOP", // 00
|
||||
"???", // 01
|
||||
"???", // 02
|
||||
"COM DP+i8", // 03
|
||||
"LSR DP+i8", // 04
|
||||
"???", // 05
|
||||
"ROR DP+i8", // 06
|
||||
"ASR DP+i8", // 07
|
||||
"ASL DP+i8", // 08
|
||||
"ROL DP+i8", // 09
|
||||
"DEC DP+i8", // 0a
|
||||
"OUT BUS,A", // 02
|
||||
"ADD A,i8", // 03
|
||||
"JP R0", // 04
|
||||
"EI", // 05
|
||||
"???", // 06
|
||||
"DEC A", // 07
|
||||
"IN A,BUS", // 08
|
||||
"IN A,P1", // 09
|
||||
"IN A,P2", // 0a
|
||||
"???", // 0b
|
||||
"INC DP+i8", // 0c
|
||||
"TST DP+i8", // 0d
|
||||
"JMP DP+i8", // 0e
|
||||
"CLR DP+i8", // 0f
|
||||
"PAGE 2", // 10
|
||||
"PAGE 3", // 11
|
||||
"NOP", // 12
|
||||
"SYNC", // 13
|
||||
"???", // 14
|
||||
"???", // 15
|
||||
"LBRA i16", // 16
|
||||
"LBSR i16", // 17
|
||||
"???", // 18
|
||||
"DAA", // 19
|
||||
"ORCC i8", // 1a
|
||||
"???", // 1b
|
||||
"ANDCC i8", // 1c
|
||||
"SEX", // 1d
|
||||
"EXG i8", // 1e
|
||||
"TFR i8", // 1f
|
||||
"BRA i8", // 20
|
||||
"BRN i8", // 21
|
||||
"BHI i8", // 22
|
||||
"BLS i8", // 23
|
||||
"BHS i8", // 24
|
||||
"BLO i8", // 25
|
||||
"BNE i8", // 26
|
||||
"BEQ i8", // 27
|
||||
"BVC i8", // 28
|
||||
"BVS i8", // 29
|
||||
"BPL i8", // 2a
|
||||
"BMI i8", // 2b
|
||||
"BGE i8", // 2c
|
||||
"BLT i8", // 2d
|
||||
"BGT i8", // 2e
|
||||
"BLE i8", // 2f
|
||||
"MOV A,P4", // 0c
|
||||
"MOV A,P5", // 0d
|
||||
"MOV A,P6", // 0e
|
||||
"MOV A,P7", // 0f
|
||||
"INC @R0", // 10
|
||||
"INC @R1", // 11
|
||||
"JPB 0", // 12
|
||||
"ADC A,i8", // 13
|
||||
"CALL @R0", // 14
|
||||
"DI", // 15
|
||||
"JP TF", // 16
|
||||
"INC A", // 17
|
||||
"INC R0", // 18
|
||||
"INC R1", // 19
|
||||
"INC R2", // 1a
|
||||
"INC R3", // 1b
|
||||
"INC R4", // 1c
|
||||
"INC R5", // 1d
|
||||
"INC R6", // 1e
|
||||
"INC R7", // 1f
|
||||
"XCH A,@R0", // 20
|
||||
"XCH A,@R1", // 21
|
||||
"???", // 22
|
||||
"MOV A,i8", // 23
|
||||
"JP R1", // 24
|
||||
"EN", // 25
|
||||
"JP !T0", // 26
|
||||
"CLR A", // 27
|
||||
"XCH A,R0", // 28
|
||||
"XCH A,R1", // 29
|
||||
"XCH A,R2", // 2a
|
||||
"XCH A,R3", // 2b
|
||||
"XCH A,R4", // 2c
|
||||
"XCH A,R5", // 2d
|
||||
"XCH A,R6", // 2e
|
||||
"XCH A,R7", // 2f
|
||||
"LEAX ix16", // 30
|
||||
"LEAY ix16", // 31
|
||||
"LEAS ix16", // 32
|
||||
|
@ -288,197 +288,6 @@ namespace BizHawk.Emulation.Common.Components.I8048
|
|||
bytes.Add(dlo);
|
||||
result = result.Replace("i16", string.Format("#{0:X2}{1:X2}h", dhi, dlo));
|
||||
}
|
||||
else if (result.Contains("ex16"))
|
||||
{
|
||||
byte dhi = reader(addr++);
|
||||
byte dlo = reader(addr++);
|
||||
bytes.Add(dhi);
|
||||
bytes.Add(dlo);
|
||||
result = result.Replace("ex16", "(" + string.Format("#{0:X2}{1:X2}h", dhi, dlo) + ")");
|
||||
}
|
||||
else if (result.Contains("ix16"))
|
||||
{
|
||||
byte d = reader(addr++);
|
||||
bytes.Add(d);
|
||||
|
||||
string temp_reg = "";
|
||||
|
||||
switch ((d >> 5) & 3)
|
||||
{
|
||||
case 0: temp_reg = "X"; break;
|
||||
case 1: temp_reg = "Y"; break;
|
||||
case 2: temp_reg = "US"; break;
|
||||
case 3: temp_reg = "SP"; break;
|
||||
}
|
||||
|
||||
if ((d & 0x80) == 0)
|
||||
{
|
||||
short tempdis = (short)(d & 0x1F);
|
||||
if (tempdis >= 16)
|
||||
tempdis -= 32;
|
||||
|
||||
result = result.Replace("ix16", temp_reg + " + ea");
|
||||
result = result.Replace("ea", string.Format("{0:N}h", tempdis));
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((d & 0x10) == 0x10)
|
||||
{
|
||||
switch (d & 0xF)
|
||||
{
|
||||
case 0x0:
|
||||
result = result.Replace("ix16", "???");
|
||||
break;
|
||||
case 0x1:
|
||||
result = result.Replace("ix16","(" + temp_reg + ")++");
|
||||
break;
|
||||
case 0x2:
|
||||
result = result.Replace("ix16", "???");
|
||||
break;
|
||||
case 0x3:
|
||||
result = result.Replace("ix16", "--(" + temp_reg + ")");
|
||||
break;
|
||||
case 0x4:
|
||||
result = result.Replace("ix16", "(" + temp_reg + ")");
|
||||
break;
|
||||
case 0x5:
|
||||
result = result.Replace("ix16", "(" + temp_reg + " + B)");
|
||||
break;
|
||||
case 0x6:
|
||||
result = result.Replace("ix16", "(" + temp_reg + " + A)");
|
||||
break;
|
||||
case 0x7:
|
||||
result = result.Replace("ix16", "???");
|
||||
break;
|
||||
case 0x8:
|
||||
byte e = reader(addr++);
|
||||
bytes.Add(e);
|
||||
result = result.Replace("ix16", "(" + temp_reg + " + ea)");
|
||||
result = result.Replace("ea", string.Format("{0:X2}h", e));
|
||||
break;
|
||||
case 0x9:
|
||||
byte f = reader(addr++);
|
||||
bytes.Add(f);
|
||||
byte g = reader(addr++);
|
||||
bytes.Add(g);
|
||||
result = result.Replace("ix16", "(" + temp_reg + " + ea)");
|
||||
result = result.Replace("ea", string.Format("{0:X2}{1:X2}h", f, g));
|
||||
break;
|
||||
case 0xA:
|
||||
result = result.Replace("ix16", "???");
|
||||
break;
|
||||
case 0xB:
|
||||
result = result.Replace("ix16", "(" + temp_reg + " + D)");
|
||||
break;
|
||||
case 0xC:
|
||||
temp_reg = "PC";
|
||||
byte h = reader(addr++);
|
||||
bytes.Add(h);
|
||||
result = result.Replace("ix16", "(" + temp_reg + " + ea)");
|
||||
result = result.Replace("ea", string.Format("{0:X2}h", h));
|
||||
break;
|
||||
case 0xD:
|
||||
temp_reg = "PC";
|
||||
byte i = reader(addr++);
|
||||
bytes.Add(i);
|
||||
byte j = reader(addr++);
|
||||
bytes.Add(j);
|
||||
result = result.Replace("ix16", "(" + temp_reg + " + ea)");
|
||||
result = result.Replace("ea", string.Format("{0:X2}{1:X2}h", i, j));
|
||||
break;
|
||||
case 0xE:
|
||||
result = result.Replace("ix16", "???");
|
||||
break;
|
||||
case 0xF:
|
||||
if (((d >> 5) & 3) == 0)
|
||||
{
|
||||
byte k = reader(addr++);
|
||||
bytes.Add(k);
|
||||
byte l = reader(addr++);
|
||||
bytes.Add(l);
|
||||
result = result.Replace("ix16", "(" + string.Format("{0:X2}{1:X2}h", k, l) + ")");
|
||||
}
|
||||
else
|
||||
{
|
||||
result = result.Replace("ix16", "???");
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (d & 0xF)
|
||||
{
|
||||
case 0x0:
|
||||
result = result.Replace("ix16", temp_reg + "+");
|
||||
break;
|
||||
case 0x1:
|
||||
result = result.Replace("ix16", temp_reg + "++");
|
||||
break;
|
||||
case 0x2:
|
||||
result = result.Replace("ix16", "-" + temp_reg);
|
||||
break;
|
||||
case 0x3:
|
||||
result = result.Replace("ix16", "--" + temp_reg);
|
||||
break;
|
||||
case 0x4:
|
||||
result = result.Replace("ix16", temp_reg);
|
||||
break;
|
||||
case 0x5:
|
||||
result = result.Replace("ix16", temp_reg + " + B");
|
||||
break;
|
||||
case 0x6:
|
||||
result = result.Replace("ix16", temp_reg + " + A");
|
||||
break;
|
||||
case 0x7:
|
||||
result = result.Replace("ix16", "???");
|
||||
break;
|
||||
case 0x8:
|
||||
byte e = reader(addr++);
|
||||
bytes.Add(e);
|
||||
result = result.Replace("ix16", temp_reg + " + ea");
|
||||
result = result.Replace("ea", string.Format("{0:X2}h", e));
|
||||
break;
|
||||
case 0x9:
|
||||
byte f = reader(addr++);
|
||||
bytes.Add(f);
|
||||
byte g = reader(addr++);
|
||||
bytes.Add(g);
|
||||
result = result.Replace("ix16", temp_reg + " + ea");
|
||||
result = result.Replace("ea", string.Format("{0:X2}{1:X2}h", f, g));
|
||||
break;
|
||||
case 0xA:
|
||||
result = result.Replace("ix16", "???");
|
||||
break;
|
||||
case 0xB:
|
||||
result = result.Replace("ix16", temp_reg + " + D");
|
||||
break;
|
||||
case 0xC:
|
||||
temp_reg = "PC";
|
||||
byte h = reader(addr++);
|
||||
bytes.Add(h);
|
||||
result = result.Replace("ix16", temp_reg + " + ea");
|
||||
result = result.Replace("ea", string.Format("{0:X2}h", h));
|
||||
break;
|
||||
case 0xD:
|
||||
temp_reg = "PC";
|
||||
byte i = reader(addr++);
|
||||
bytes.Add(i);
|
||||
byte j = reader(addr++);
|
||||
bytes.Add(j);
|
||||
result = result.Replace("ix16", temp_reg + " + ea");
|
||||
result = result.Replace("ea", string.Format("{0:X2}{1:X2}h", i, j));
|
||||
break;
|
||||
case 0xE:
|
||||
result = result.Replace("ix16", "???");
|
||||
break;
|
||||
case 0xF:
|
||||
result = result.Replace("ix16", "???");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
StringBuilder ret = new StringBuilder();
|
||||
ret.Append(string.Format("{0:X4}: ", origaddr));
|
||||
|
|
|
@ -25,20 +25,20 @@ namespace BizHawk.Emulation.Common.Components.I8048
|
|||
{
|
||||
case 0x00: OP_IMP(IDLE); break; // NOP
|
||||
case 0x01: ILLEGAL(); break; // ILLEGAL
|
||||
case 0x02: ILLEGAL(); break; // ILLEGAL
|
||||
case 0x02: IN_OUT_BUS(OUT); break; // OUT BUS,A
|
||||
case 0x03: OP_A_DIR(ADD8); break; // ADD A,#
|
||||
case 0x04: JP_2k(0); break; // JP 2K 0
|
||||
case 0x05: OP_IMP(EI); break; // EI
|
||||
case 0x06: ILLEGAL(); break; // ILLEGAL
|
||||
case 0x07: OP_IMP(DECA); break; // DEC A
|
||||
case 0x08: IN_BUS(IN); break; // IN A,BUS
|
||||
case 0x08: IN_OUT_BUS(IN); break; // IN A,BUS
|
||||
case 0x09: IN_OUT_A(IN, 1); break; // IN A,1
|
||||
case 0x0A: IN_OUT_A(IN, 2); break; // IN A,2
|
||||
case 0x0B: ILLEGAL(); break; // ILLEGAL
|
||||
case 0x0C: ILLEGAL(); break; // ILLEGAL
|
||||
case 0x0D: ILLEGAL(); break; // ILLEGAL
|
||||
case 0x0E: ILLEGAL(); break; // ILLEGAL
|
||||
case 0x0F: ILLEGAL(); break; // ILLEGAL
|
||||
case 0x0C: MOV_A_P4(4); break; // MOV A,P4
|
||||
case 0x0D: MOV_A_P4(5); break; // MOV A,P5
|
||||
case 0x0E: MOV_A_P4(6); break; // MOV A,P6
|
||||
case 0x0F: MOV_A_P4(7); break; // MOV A,P7
|
||||
case 0x10: OP_A_R(INC_RAM, R0); break; // INC #,R0
|
||||
case 0x11: OP_A_R(INC_RAM, R1); break; // INC #,R1
|
||||
case 0x12: JPB(0); break; // JPB 0
|
||||
|
@ -47,14 +47,14 @@ namespace BizHawk.Emulation.Common.Components.I8048
|
|||
case 0x15: OP_IMP(DI); break; // DI
|
||||
case 0x16: JP_COND(TF, RES_TF); break; // JP TF
|
||||
case 0x17: OP_IMP(INCA); break; // INC A
|
||||
case 0x18: ILLEGAL(); break; // ILLEGAL
|
||||
case 0x19: ILLEGAL(); break; // ILLEGAL
|
||||
case 0x1A: ILLEGAL(); break; // ILLEGAL
|
||||
case 0x1B: ILLEGAL(); break; // ILLEGAL
|
||||
case 0x1C: ILLEGAL(); break; // ILLEGAL
|
||||
case 0x1D: ILLEGAL(); break; // ILLEGAL
|
||||
case 0x1E: ILLEGAL(); break; // ILLEGAL
|
||||
case 0x1F: ILLEGAL(); break; // ILLEGAL
|
||||
case 0x18: OP_R_IMP(INC8, R0); break; // INC R0
|
||||
case 0x19: OP_R_IMP(INC8, R1); break; // INC R1
|
||||
case 0x1A: OP_R_IMP(INC8, R2); break; // INC R2
|
||||
case 0x1B: OP_R_IMP(INC8, R3); break; // INC R3
|
||||
case 0x1C: OP_R_IMP(INC8, R4); break; // INC R4
|
||||
case 0x1D: OP_R_IMP(INC8, R5); break; // INC R5
|
||||
case 0x1E: OP_R_IMP(INC8, R6); break; // INC R6
|
||||
case 0x1F: OP_R_IMP(INC8, R7); break; // INC R7
|
||||
case 0x20: OP_A_R(XCH_RAM, R0); break; // XCH A,@R0
|
||||
case 0x21: OP_A_R(XCH_RAM, R1); break; // XCH A,@R1
|
||||
case 0x22: ILLEGAL(); break; // ILLEGAL
|
||||
|
@ -80,19 +80,19 @@ namespace BizHawk.Emulation.Common.Components.I8048
|
|||
case 0x36: JP_COND(T0, IDLE); break; // JP T0
|
||||
case 0x37: OP_IMP(COM); break; // COM A
|
||||
case 0x38: ILLEGAL(); break; // ILLEGAL
|
||||
case 0x39: ILLEGAL(); break; // ILLEGAL
|
||||
case 0x3A: ILLEGAL(); break; // ILLEGAL
|
||||
case 0x39: OUT_P(1); break; // OUT P1,A
|
||||
case 0x3A: OUT_P(2); break; // OUT P2,A
|
||||
case 0x3B: ILLEGAL(); break; // ILLEGAL
|
||||
case 0x3C: ILLEGAL(); break; // ILLEGAL
|
||||
case 0x3D: ILLEGAL(); break; // ILLEGAL
|
||||
case 0x3E: ILLEGAL(); break; // ILLEGAL
|
||||
case 0x3F: ILLEGAL(); break; // ILLEGAL
|
||||
case 0x3C: MOV_P4_A(4); break; // MOV P4,A
|
||||
case 0x3D: MOV_P4_A(5); break; // MOV P5,A
|
||||
case 0x3E: MOV_P4_A(6); break; // MOV P6,A
|
||||
case 0x3F: MOV_P4_A(7); break; // MOV P7,A
|
||||
case 0x40: OP_A_R(OR8RAM, R0); break; // OR A,@R0
|
||||
case 0x41: OP_A_R(OR8RAM, R1); break; // OR A,@R1
|
||||
case 0x42: MOV_R(A, TIM); break; // MOV A,TIM
|
||||
case 0x43: OP_A_DIR(OR8); break; // OR A,#
|
||||
case 0x44: JP_2k(2); break; // JP 2K 2
|
||||
case 0x45: ILLEGAL(); break; // ILLEGAL
|
||||
case 0x45: OP_IMP(ST_CNT); break; // START CNT
|
||||
case 0x46: JP_COND(!T1, IDLE); break; // JP NT1
|
||||
case 0x47: OP_IMP(SWP); break; // SWP
|
||||
case 0x48: OP_A_R(OR8, R0); break; // OR A,R0
|
||||
|
@ -108,7 +108,7 @@ namespace BizHawk.Emulation.Common.Components.I8048
|
|||
case 0x52: JPB(2); break; // JPB 2
|
||||
case 0x53: OP_A_DIR(AND8); break; // AND A,#
|
||||
case 0x54: CALL(2); break; // CALL
|
||||
case 0x55: ILLEGAL(); break; // ILLEGAL
|
||||
case 0x55: OP_IMP(ST_T); break; // START TIMER
|
||||
case 0x56: JP_COND(T1, IDLE); break; // JP T1
|
||||
case 0x57: OP_IMP(DA); break; // DA A
|
||||
case 0x58: OP_A_R(AND8, R0); break; // AND A,R0
|
||||
|
@ -124,7 +124,7 @@ namespace BizHawk.Emulation.Common.Components.I8048
|
|||
case 0x62: MOV_R(TIM, A); break; // MOV TIM,A
|
||||
case 0x63: ILLEGAL(); break; // ILLEGAL
|
||||
case 0x64: JP_2k(3); break; // JP 2K 3
|
||||
case 0x65: ILLEGAL(); break; // ILLEGAL
|
||||
case 0x65: OP_IMP(STP_CNT); break; // STOP CNT
|
||||
case 0x66: ILLEGAL(); break; // ILLEGAL
|
||||
case 0x67: OP_IMP(RRC); break; // RRC
|
||||
case 0x68: OP_A_R(ADD8, R0); break; // ADD A,R0
|
||||
|
@ -151,10 +151,10 @@ namespace BizHawk.Emulation.Common.Components.I8048
|
|||
case 0x7D: OP_A_R(ADC8, R5); break; // ADC A,R5
|
||||
case 0x7E: OP_A_R(ADC8, R6); break; // ADC A,R6
|
||||
case 0x7F: OP_A_R(ADC8, R7); break; // ADC A,R7
|
||||
case 0x80: ILLEGAL(); break; // ILLEGAL
|
||||
case 0x81: ILLEGAL(); break; // ILLEGAL
|
||||
case 0x80: MOVX_A_R(0); break; // MOVX A,R0
|
||||
case 0x81: MOVX_A_R(1); break; // MOVX A,R1
|
||||
case 0x82: ILLEGAL(); break; // ILLEGAL
|
||||
case 0x83: ILLEGAL(); break; // ILLEGAL
|
||||
case 0x83: RET(); break; // RET
|
||||
case 0x84: JP_2k(4); break; // JP 2K 4
|
||||
case 0x85: OP_IMP(CL0); break; // CLR F0
|
||||
case 0x86: JP_COND(!IRQPending, IDLE); break; // JP !IRQ
|
||||
|
@ -167,10 +167,10 @@ namespace BizHawk.Emulation.Common.Components.I8048
|
|||
case 0x8D: OP_EXP_A(OR8, P5); break; // OR P5,A
|
||||
case 0x8E: OP_EXP_A(OR8, P6); break; // OR P6,A
|
||||
case 0x8F: OP_EXP_A(OR8, P7); break; // OR P7,A
|
||||
case 0x90: ILLEGAL(); break; // ILLEGAL
|
||||
case 0x91: ILLEGAL(); break; // ILLEGAL
|
||||
case 0x90: MOVX_R_A(0); break; // MOVX R0,A
|
||||
case 0x91: MOVX_R_A(1); break; // MOVX R1,A
|
||||
case 0x92: JPB(4); break; // JPB 4
|
||||
case 0x93: ILLEGAL(); break; // ILLEGAL
|
||||
case 0x93: RETR(); break; //RETR
|
||||
case 0x94: CALL(4); break; // CALL
|
||||
case 0x95: OP_IMP(CM0); break; // COM F0
|
||||
case 0x96: JP_COND(Regs[A] != 0, IDLE); break; // JP (A != 0)
|
||||
|
@ -186,7 +186,7 @@ namespace BizHawk.Emulation.Common.Components.I8048
|
|||
case 0xA0: OP_A_R(MOVT_RAM, R0); break; // MOV @R0,A
|
||||
case 0xA1: OP_A_R(MOVT_RAM, R1); break; // MOV @R1,A
|
||||
case 0xA2: ILLEGAL(); break; // ILLEGAL
|
||||
case 0xA3: ILLEGAL(); break; // ILLEGAL
|
||||
case 0xA3: MOV_A_A(); break; // MOV A,@A
|
||||
case 0xA4: JP_2k(5); break; // JP 2K 5
|
||||
case 0xA5: OP_IMP(CL1); break; // CLR F1
|
||||
case 0xA6: ILLEGAL(); break; // ILLEGAL
|
||||
|
@ -250,7 +250,7 @@ namespace BizHawk.Emulation.Common.Components.I8048
|
|||
case 0xE0: ILLEGAL(); break; // ILLEGAL
|
||||
case 0xE1: ILLEGAL(); break; // ILLEGAL
|
||||
case 0xE2: ILLEGAL(); break; // ILLEGAL
|
||||
case 0xE3: ILLEGAL(); break; // ILLEGAL
|
||||
case 0xE3: MOV3_A_A(); break; // MOV3 A,@A
|
||||
case 0xE4: JP_2k(7); break; // JP 2K 7
|
||||
case 0xE5: OP_IMP(SEL_MB0); break; // SEL MB 0
|
||||
case 0xE6: JP_COND(!FlagC, IDLE); break; // JP NC
|
||||
|
|
|
@ -83,6 +83,9 @@ namespace BizHawk.Emulation.Common.Components.I8048
|
|||
public const ushort MOV_RAM = 77;
|
||||
public const ushort MOVT = 78;
|
||||
public const ushort MOVT_RAM = 79;
|
||||
public const ushort ST_CNT = 80;
|
||||
public const ushort STP_CNT = 81;
|
||||
public const ushort ST_T = 82;
|
||||
|
||||
public I8048()
|
||||
{
|
||||
|
@ -317,6 +320,15 @@ namespace BizHawk.Emulation.Common.Components.I8048
|
|||
break;
|
||||
case MOVT_RAM:
|
||||
|
||||
break;
|
||||
case ST_CNT:
|
||||
|
||||
break;
|
||||
case STP_CNT:
|
||||
|
||||
break;
|
||||
case ST_T:
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -83,7 +83,7 @@ namespace BizHawk.Emulation.Common.Components.I8048
|
|||
IRQS = 9;
|
||||
}
|
||||
|
||||
public void IN_BUS(ushort oper)
|
||||
public void IN_OUT_BUS(ushort oper)
|
||||
{
|
||||
PopulateCURINSTR(IDLE,
|
||||
IDLE,
|
||||
|
@ -98,6 +98,141 @@ namespace BizHawk.Emulation.Common.Components.I8048
|
|||
IRQS = 9;
|
||||
}
|
||||
|
||||
public void OUT_P(ushort port)
|
||||
{
|
||||
PopulateCURINSTR(IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
port, A);
|
||||
|
||||
IRQS = 9;
|
||||
}
|
||||
|
||||
public void RET()
|
||||
{
|
||||
PopulateCURINSTR(IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE);
|
||||
|
||||
IRQS = 9;
|
||||
}
|
||||
|
||||
public void RETR()
|
||||
{
|
||||
PopulateCURINSTR(IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE);
|
||||
|
||||
IRQS = 9;
|
||||
}
|
||||
|
||||
public void MOV_A_P4(ushort port)
|
||||
{
|
||||
PopulateCURINSTR(IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE);
|
||||
|
||||
IRQS = 9;
|
||||
}
|
||||
|
||||
public void MOV_P4_A(ushort port)
|
||||
{
|
||||
PopulateCURINSTR(IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE);
|
||||
|
||||
IRQS = 9;
|
||||
}
|
||||
|
||||
public void MOV_A_A()
|
||||
{
|
||||
PopulateCURINSTR(IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE);
|
||||
|
||||
IRQS = 9;
|
||||
}
|
||||
|
||||
public void MOV3_A_A()
|
||||
{
|
||||
PopulateCURINSTR(IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE);
|
||||
|
||||
IRQS = 9;
|
||||
}
|
||||
|
||||
public void MOVX_A_R(ushort reg)
|
||||
{
|
||||
PopulateCURINSTR(IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE);
|
||||
|
||||
IRQS = 9;
|
||||
}
|
||||
|
||||
public void MOVX_R_A(ushort reg)
|
||||
{
|
||||
PopulateCURINSTR(IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE,
|
||||
IDLE);
|
||||
|
||||
IRQS = 9;
|
||||
}
|
||||
|
||||
public void OP_A_DIR(ushort oper)
|
||||
{
|
||||
PopulateCURINSTR(IDLE,
|
||||
|
|
Loading…
Reference in New Issue