F8 CPU: Code tidy
This commit is contained in:
parent
1c90bbc273
commit
cee3d411b9
|
@ -50,7 +50,6 @@
|
||||||
END);
|
END);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// LR - LOAD REGISTER
|
/// LR - LOAD REGISTER
|
||||||
/// The LR group of instructions move one or two bytes of data between a source and destination register.
|
/// The LR group of instructions move one or two bytes of data between a source and destination register.
|
||||||
|
@ -565,6 +564,11 @@
|
||||||
END);
|
END);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// LR - LOAD REGISTER
|
||||||
|
/// The LR group of instructions move one or two bytes of data between a source and destination register.
|
||||||
|
/// No status bits are modified.
|
||||||
|
/// </summary>
|
||||||
private void LR_W_J()
|
private void LR_W_J()
|
||||||
{
|
{
|
||||||
PopulateCURINSTR(
|
PopulateCURINSTR(
|
||||||
|
@ -580,6 +584,11 @@
|
||||||
END);
|
END);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// LR - LOAD REGISTER
|
||||||
|
/// The LR group of instructions move one or two bytes of data between a source and destination register.
|
||||||
|
/// No status bits are modified.
|
||||||
|
/// </summary>
|
||||||
private void LR_J_W()
|
private void LR_J_W()
|
||||||
{
|
{
|
||||||
PopulateCURINSTR(
|
PopulateCURINSTR(
|
||||||
|
@ -751,7 +760,9 @@
|
||||||
END);
|
END);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Illegal Opcode
|
||||||
|
/// </summary>
|
||||||
private void ILLEGAL()
|
private void ILLEGAL()
|
||||||
{
|
{
|
||||||
PopulateCURINSTR(
|
PopulateCURINSTR(
|
||||||
|
@ -1064,6 +1075,11 @@
|
||||||
END);
|
END);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// LR - LOAD REGISTER
|
||||||
|
/// The LR group of instructions move one or two bytes of data between a source and destination register.
|
||||||
|
/// No status bits are modified.
|
||||||
|
/// </summary>
|
||||||
private void LR_A_ISAR()
|
private void LR_A_ISAR()
|
||||||
{
|
{
|
||||||
PopulateCURINSTR(
|
PopulateCURINSTR(
|
||||||
|
@ -1074,6 +1090,12 @@
|
||||||
END);
|
END);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// LR - LOAD REGISTER
|
||||||
|
/// The LR group of instructions move one or two bytes of data between a source and destination register.
|
||||||
|
/// ISAR incremented
|
||||||
|
/// No status bits are modified.
|
||||||
|
/// </summary>
|
||||||
private void LR_A_ISAR_INC()
|
private void LR_A_ISAR_INC()
|
||||||
{
|
{
|
||||||
PopulateCURINSTR(
|
PopulateCURINSTR(
|
||||||
|
@ -1084,6 +1106,12 @@
|
||||||
END);
|
END);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// LR - LOAD REGISTER
|
||||||
|
/// The LR group of instructions move one or two bytes of data between a source and destination register.
|
||||||
|
/// ISAR deccremented
|
||||||
|
/// No status bits are modified.
|
||||||
|
/// </summary>
|
||||||
private void LR_A_ISAR_DEC()
|
private void LR_A_ISAR_DEC()
|
||||||
{
|
{
|
||||||
PopulateCURINSTR(
|
PopulateCURINSTR(
|
||||||
|
@ -1094,6 +1122,11 @@
|
||||||
END);
|
END);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// LR - LOAD REGISTER
|
||||||
|
/// The LR group of instructions move one or two bytes of data between a source and destination register.
|
||||||
|
/// No status bits are modified.
|
||||||
|
/// </summary>
|
||||||
private void LR_R_A(byte rIndex)
|
private void LR_R_A(byte rIndex)
|
||||||
{
|
{
|
||||||
// only scratch registers 0-16
|
// only scratch registers 0-16
|
||||||
|
@ -1107,6 +1140,11 @@
|
||||||
END);
|
END);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// LR - LOAD REGISTER
|
||||||
|
/// The LR group of instructions move one or two bytes of data between a source and destination register.
|
||||||
|
/// No status bits are modified.
|
||||||
|
/// </summary>
|
||||||
private void LR_ISAR_A()
|
private void LR_ISAR_A()
|
||||||
{
|
{
|
||||||
PopulateCURINSTR(
|
PopulateCURINSTR(
|
||||||
|
@ -1117,6 +1155,12 @@
|
||||||
END);
|
END);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// LR - LOAD REGISTER
|
||||||
|
/// The LR group of instructions move one or two bytes of data between a source and destination register.
|
||||||
|
/// ISAR incremented
|
||||||
|
/// No status bits are modified.
|
||||||
|
/// </summary>
|
||||||
private void LR_ISAR_A_INC()
|
private void LR_ISAR_A_INC()
|
||||||
{
|
{
|
||||||
PopulateCURINSTR(
|
PopulateCURINSTR(
|
||||||
|
@ -1127,6 +1171,12 @@
|
||||||
END);
|
END);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// LR - LOAD REGISTER
|
||||||
|
/// The LR group of instructions move one or two bytes of data between a source and destination register.
|
||||||
|
/// ISAR decremented
|
||||||
|
/// No status bits are modified.
|
||||||
|
/// </summary>
|
||||||
private void LR_ISAR_A_DEC()
|
private void LR_ISAR_A_DEC()
|
||||||
{
|
{
|
||||||
PopulateCURINSTR(
|
PopulateCURINSTR(
|
||||||
|
@ -1187,7 +1237,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Branch on True - Do not branch
|
/// Branch on True - DO NOT BRANCH
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private void BTN()
|
private void BTN()
|
||||||
{
|
{
|
||||||
|
@ -1290,19 +1340,6 @@
|
||||||
OP_BT_ZCS);
|
OP_BT_ZCS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
private void BT(byte index)
|
|
||||||
{
|
|
||||||
PopulateCURINSTR(
|
|
||||||
// S
|
|
||||||
ROMC_1C_S, // Idle
|
|
||||||
IDLE,
|
|
||||||
IDLE,
|
|
||||||
OP_BT, index); // no END as there is branching logic within OP_BT
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// AM - ADD (BINARY) MEMORY TO ACCUMULATOR
|
/// AM - ADD (BINARY) MEMORY TO ACCUMULATOR
|
||||||
/// The content of the memory iocation addressed by the DC0 registers is added to the accumulator. The sum is returned in the accumulator.
|
/// The content of the memory iocation addressed by the DC0 registers is added to the accumulator. The sum is returned in the accumulator.
|
||||||
|
@ -1473,14 +1510,6 @@
|
||||||
END);
|
END);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
private void BR7()
|
|
||||||
{
|
|
||||||
PopulateCURINSTR(
|
|
||||||
OP_BR7); // no END as there is branching logic within OP_BR7
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Branch if any of the 3 low bits of ISAR are reset
|
/// Branch if any of the 3 low bits of ISAR are reset
|
||||||
/// Testing of ISAR is immediate so we will have to lose a CPU tick in the next phase
|
/// Testing of ISAR is immediate so we will have to lose a CPU tick in the next phase
|
||||||
|
@ -1488,7 +1517,7 @@
|
||||||
private void BR7()
|
private void BR7()
|
||||||
{
|
{
|
||||||
PopulateCURINSTR(
|
PopulateCURINSTR(
|
||||||
OP_BR7); // no END as there is branching logic within OP_BR7
|
OP_BR7);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -1698,19 +1727,7 @@
|
||||||
IDLE,
|
IDLE,
|
||||||
OP_BF_OZCS);
|
OP_BF_OZCS);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
private void BF(byte index)
|
|
||||||
{
|
|
||||||
PopulateCURINSTR(
|
|
||||||
// S
|
|
||||||
ROMC_1C_S, // Idle
|
|
||||||
IDLE,
|
|
||||||
IDLE,
|
|
||||||
OP_BF, index); // no END as there is branching logic within OP_BF
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// INS - INPUT SHORT ADDRESS
|
/// INS - INPUT SHORT ADDRESS
|
||||||
/// Data input to the I/O port specified by the operand of the INS instruction is loaded into the accumulator.
|
/// Data input to the I/O port specified by the operand of the INS instruction is loaded into the accumulator.
|
||||||
|
|
|
@ -118,27 +118,14 @@ namespace BizHawk.Emulation.Cores.Components.FairchildF8
|
||||||
public const byte OP_BT_ZS = 141;
|
public const byte OP_BT_ZS = 141;
|
||||||
public const byte OP_BT_ZC = 142;
|
public const byte OP_BT_ZC = 142;
|
||||||
public const byte OP_BT_ZCS = 143;
|
public const byte OP_BT_ZCS = 143;
|
||||||
|
//public const byte OP_BF = 141;
|
||||||
|
|
||||||
|
|
||||||
public const byte OP_BF = 141;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public const byte OP_IN = 151;
|
public const byte OP_IN = 151;
|
||||||
public const byte OP_OUT = 152;
|
public const byte OP_OUT = 152;
|
||||||
//public const byte OP_AS_IS = 123;
|
|
||||||
//public const byte OP_XS_IS = 124;
|
|
||||||
//public const byte OP_NS_IS = 125;
|
|
||||||
public const byte OP_LR_A_DB_IO = 156;
|
public const byte OP_LR_A_DB_IO = 156;
|
||||||
public const byte OP_DS = 157;
|
public const byte OP_DS = 157;
|
||||||
//public const byte OP_CLEAR_FLAGS = 126;
|
|
||||||
//public const byte OP_SET_FLAGS_SZ = 127;
|
|
||||||
public const byte OP_LIS = 158;
|
public const byte OP_LIS = 158;
|
||||||
|
|
||||||
|
|
||||||
public F3850()
|
public F3850()
|
||||||
{
|
{
|
||||||
Reset();
|
Reset();
|
||||||
|
@ -290,7 +277,6 @@ namespace BizHawk.Emulation.Cores.Components.FairchildF8
|
||||||
//Regs[A] = (byte)(Regs[A] ^ 0xFF);
|
//Regs[A] = (byte)(Regs[A] ^ 0xFF);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
// x <- (x) + 1
|
// x <- (x) + 1
|
||||||
case OP_INC8:
|
case OP_INC8:
|
||||||
ADD_Func(cur_instr[instr_pntr++], cur_instr[instr_pntr++]);
|
ADD_Func(cur_instr[instr_pntr++], cur_instr[instr_pntr++]);
|
||||||
|
@ -564,21 +550,6 @@ namespace BizHawk.Emulation.Cores.Components.FairchildF8
|
||||||
case ROMC_01:
|
case ROMC_01:
|
||||||
Read_Func(DB, PC0l, PC0h);
|
Read_Func(DB, PC0l, PC0h);
|
||||||
RegPC0 = Regs[DB].Bit(7) ? (ushort)(RegPC0 - (byte)((Regs[DB] ^ 0xFF) + 1)) : (ushort)(RegPC0 + Regs[DB]);
|
RegPC0 = Regs[DB].Bit(7) ? (ushort)(RegPC0 - (byte)((Regs[DB] ^ 0xFF) + 1)) : (ushort)(RegPC0 + Regs[DB]);
|
||||||
/*
|
|
||||||
if (Regs[DB].Bit(7))
|
|
||||||
{
|
|
||||||
// sign bit set
|
|
||||||
var cN = (byte)((Regs[DB] ^ 0xFF) + 1);
|
|
||||||
// subtract
|
|
||||||
RegPC0 -= cN;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// positive signed number
|
|
||||||
RegPC0 += Regs[DB];
|
|
||||||
}
|
|
||||||
//RegPC0 += (ushort)((sbyte) Regs[DB]);
|
|
||||||
*/
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// The device whose DC0 address addresses a memory word within the address space of that device must place on the data bus the contents
|
// The device whose DC0 address addresses a memory word within the address space of that device must place on the data bus the contents
|
||||||
|
@ -651,22 +622,6 @@ namespace BizHawk.Emulation.Cores.Components.FairchildF8
|
||||||
case ROMC_0A:
|
case ROMC_0A:
|
||||||
// The contents of the accumulator are treated as a signed binary number, and are added to the contents of every DCO register.
|
// The contents of the accumulator are treated as a signed binary number, and are added to the contents of every DCO register.
|
||||||
RegDC0 = Regs[DB].Bit(7) ? (ushort)(RegDC0 - (byte)((Regs[DB] ^ 0xFF) + 1)) : (ushort)(RegDC0 + Regs[DB]);
|
RegDC0 = Regs[DB].Bit(7) ? (ushort)(RegDC0 - (byte)((Regs[DB] ^ 0xFF) + 1)) : (ushort)(RegDC0 + Regs[DB]);
|
||||||
/*
|
|
||||||
if (Regs[DB].Bit(7))
|
|
||||||
{
|
|
||||||
// sign bit set
|
|
||||||
var cN = (byte)((Regs[DB] ^ 0xFF) + 1);
|
|
||||||
// subtract
|
|
||||||
RegDC0 -= cN;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// positive signed number
|
|
||||||
RegDC0 += Regs[DB];
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
//RegDC0 += (ushort) ((sbyte) Regs[DB]);
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// The device whose address space includes the value in PC1 must place the low order byte of PC1 on the data bus
|
// The device whose address space includes the value in PC1 must place the low order byte of PC1 on the data bus
|
||||||
|
|
Loading…
Reference in New Issue