8SA1Sim/js/isa/ldx.js

1941 lines
70 KiB
JavaScript

/*
LOAD x Instructions
OPCODE Range: 0x000:0x0FF
Addressing follows the following bit table:
0b000XXXXX Immediate load (8 bit for A-D, 16 bit for paired registers)
0b001XXXXX 16 bit Absolute + 16 bit Immediate Offset (signed)
0b010XXXXX 16 bit Absolute
0b011XXXXX 24 bit Absolute
0b100XXXXX 16 bit Indirect
0b101XXXXX 24 bit Indirect
0b110XXXXX 24 bit Indirect + 16 bit immediate offset (signed)
0b111XXXXX 24 bit Absolute + 16 bit Absolute offset (signed)
Register TO follows the following bit table:
0bXXX00000 [0x00] ABCD
0bXXX00001 [0x01] CDAB
0bXXX00010 [0x02] AL
0bXXX00011 [0x03] AH
0bXXX00100 [0x04] BL
0bXXX00101 [0x05] BH
0bXXX00110 [0x06] CL
0bXXX00111 [0x07] CH
0bXXX01000 [0x08] DL
0bXXX01001 [0x09] DH
0bXXX01010 [0x0A] AB
0bXXX01011 [0x0B] AC
0bXXX01100 [0x0C] AD
0bXXX01101 [0x0D] BA
0bXXX01110 [0x0E] BC
0bXXX01111 [0x0F] BD
0bXXX10000 [0x10] CA
0bXXX10001 [0x11] CB
0bXXX10010 [0x12] CD
0bXXX10011 [0x13] DA
0bXXX10100 [0x14] DB
0bXXX10101 [0x15] DC
0bXXX10110 [0x16] ABSP
0bXXX10111 [0x17] CDSP
0bXXX11000 [0x18] ALSP
0bXXX11001 [0x19] AHSP
0bXXX11010 [0x1A] BLSP
0bXXX11011 [0x1B] BHSP
0bXXX11100 [0x1C]
0bXXX11101 [0x1D]
0bXXX11110 [0x1E] SP
0bXXX11111 [0x1F] SPP
Examples:
24 bit indirect LDAB [SP] -> 0x0D6 [0b10110110] (Stack is pushed with LSW of address first, followed by MSW of address.)
16 bit absolute LDAL 0x0420 -> 0x042 [0b01000010]
*/
//--------------------------- General Purpose Registers LDx Immediates ---------------------------
// 0x000:0x001 not used in this section
// 0x016:0x017 not used in this section
// 0x01C:0x01D not used in this section
class IS_LDA_imm8 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x002;
this.Mnemonic = "LDA";
this.LongName = "LOAD Register A";
this.Aliases = new Array();
this.Type = InstructionTypes.Immediate8;
this.Operands = new Array({Operand: "$", Bitwidth: 8});
this.Words = 2;
this.Cycles = 4;
this.Microcode[2] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_RAIL | CONTROL_PCC;
}
}
is_LDA_i = new IS_LDA_imm8;
Instructions.push(is_LDA_i);
class IS_LDB_imm8 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x004;
this.Mnemonic = "LDB";
this.LongName = "LOAD Register B";
this.Aliases = new Array();
this.Type = InstructionTypes.Immediate8;
this.Operands = new Array({Operand: "$", Bitwidth: 8});
this.Words = 2;
this.Cycles = 4;
this.Microcode[2] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_RBIL | CONTROL_PCC;
}
}
is_LDB_i = new IS_LDB_imm8;
Instructions.push(is_LDB_i);
class IS_LDC_imm8 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x006;
this.Mnemonic = "LDC";
this.LongName = "LOAD Register C";
this.Aliases = new Array();
this.Type = InstructionTypes.Immediate8;
this.Operands = new Array({Operand: "$", Bitwidth: 8});
this.Words = 2;
this.Cycles = 4;
this.Microcode[2] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_RCIL | CONTROL_PCC;
}
}
is_LDC_i = new IS_LDC_imm8;
Instructions.push(is_LDC_i);
class IS_LDD_imm8 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x008;
this.Mnemonic = "LDD";
this.LongName = "LOAD Register D";
this.Aliases = new Array();
this.Type = InstructionTypes.Immediate8;
this.Operands = new Array({Operand: "$", Bitwidth: 8});
this.Words = 2;
this.Cycles = 4;
this.Microcode[2] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_RDIL | CONTROL_PCC;
}
}
is_LDD_i = new IS_LDD_imm8;
Instructions.push(is_LDD_i);
class IS_LDAB_imm16 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x00A;
this.Mnemonic = "LDAB";
this.LongName = "LOAD Register A and B";
this.Aliases = new Array();
this.Type = InstructionTypes.Immediate16;
this.Operands = new Array({Operand: "$", Bitwidth: 16});
this.Words = 2;
this.Cycles = 4;
this.Microcode[2] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_RAIL | CONTROL_RBIH | CONTROL_PCC;
}
}
is_LDAB_i = new IS_LDAB_imm16;
Instructions.push(is_LDAB_i);
class IS_LDAC_imm16 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x00B;
this.Mnemonic = "LDAC";
this.LongName = "LOAD Register A and C";
this.Aliases = new Array();
this.Type = InstructionTypes.Immediate16;
this.Operands = new Array({Operand: "$", Bitwidth: 16});
this.Words = 2;
this.Cycles = 4;
this.Microcode[2] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_RAIL | CONTROL_RCIH | CONTROL_PCC;
}
}
is_LDAC_i = new IS_LDAC_imm16;
Instructions.push(is_LDAC_i);
class IS_LDAD_imm16 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x00C;
this.Mnemonic = "LDAD";
this.LongName = "LOAD Register A and D";
this.Aliases = new Array();
this.Type = InstructionTypes.Immediate16;
this.Operands = new Array({Operand: "$", Bitwidth: 16});
this.Words = 2;
this.Cycles = 4;
this.Microcode[2] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_RAIL | CONTROL_RDIH | CONTROL_PCC;
}
}
is_LDAD_i = new IS_LDAD_imm16;
Instructions.push(is_LDAD_i);
class IS_LDBA_imm16 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x00D;
this.Mnemonic = "LDBA";
this.LongName = "LOAD Register B and A";
this.Aliases = new Array();
this.Type = InstructionTypes.Immediate16;
this.Operands = new Array({Operand: "$", Bitwidth: 16});
this.Words = 2;
this.Cycles = 4;
this.Microcode[2] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_RBIL | CONTROL_RAIH | CONTROL_PCC;
}
}
is_LDBA_i = new IS_LDBA_imm16;
Instructions.push(is_LDBA_i);
class IS_LDBC_imm16 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x00E;
this.Mnemonic = "LDBC";
this.LongName = "LOAD Register B and C";
this.Aliases = new Array();
this.Type = InstructionTypes.Immediate16;
this.Operands = new Array({Operand: "$", Bitwidth: 16});
this.Words = 2;
this.Cycles = 4;
this.Microcode[2] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_RBIL | CONTROL_RCIH | CONTROL_PCC;
}
}
is_LDBC_i = new IS_LDBC_imm16;
Instructions.push(is_LDBC_i);
class IS_LDBD_imm16 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x00F;
this.Mnemonic = "LDBD";
this.LongName = "LOAD Register B and D";
this.Aliases = new Array();
this.Type = InstructionTypes.Immediate16;
this.Operands = new Array({Operand: "$", Bitwidth: 16});
this.Words = 2;
this.Cycles = 4;
this.Microcode[2] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_RBIL | CONTROL_RDIH | CONTROL_PCC;
}
}
is_LDBD_i = new IS_LDBD_imm16;
Instructions.push(is_LDBD_i);
class IS_LDCA_imm16 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x010;
this.Mnemonic = "LDCA";
this.LongName = "LOAD Register C and A";
this.Aliases = new Array();
this.Type = InstructionTypes.Immediate16;
this.Operands = new Array({Operand: "$", Bitwidth: 16});
this.Words = 2;
this.Cycles = 4;
this.Microcode[2] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_RCIL | CONTROL_RAIH | CONTROL_PCC;
}
}
is_LDCA_i = new IS_LDCA_imm16;
Instructions.push(is_LDCA_i);
class IS_LDCB_imm16 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x011;
this.Mnemonic = "LDCB";
this.LongName = "LOAD Register C and B";
this.Aliases = new Array();
this.Type = InstructionTypes.Immediate16;
this.Operands = new Array({Operand: "$", Bitwidth: 16});
this.Words = 2;
this.Cycles = 4;
this.Microcode[2] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_RCIL | CONTROL_RBIH | CONTROL_PCC;
}
}
is_LDCB_i = new IS_LDCB_imm16;
Instructions.push(is_LDCB_i);
class IS_LDCD_imm16 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x012;
this.Mnemonic = "LDCD";
this.LongName = "LOAD Register C and D";
this.Aliases = new Array();
this.Type = InstructionTypes.Immediate16;
this.Operands = new Array({Operand: "$", Bitwidth: 16});
this.Words = 2;
this.Cycles = 4;
this.Microcode[2] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_RCIL | CONTROL_RDIH | CONTROL_PCC;
}
}
is_LDCD_i = new IS_LDCD_imm16;
Instructions.push(is_LDCD_i);
class IS_LDDA_imm16 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x013;
this.Mnemonic = "LDDA";
this.LongName = "LOAD Register D and A";
this.Aliases = new Array();
this.Type = InstructionTypes.Immediate16;
this.Operands = new Array({Operand: "$", Bitwidth: 16});
this.Words = 2;
this.Cycles = 4;
this.Microcode[2] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_RDIL | CONTROL_RAIH | CONTROL_PCC;
}
}
is_LDDA_i = new IS_LDDA_imm16;
Instructions.push(is_LDDA_i);
class IS_LDDB_imm16 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x014;
this.Mnemonic = "LDDB";
this.LongName = "LOAD Register D and B";
this.Aliases = new Array();
this.Type = InstructionTypes.Immediate16;
this.Operands = new Array({Operand: "$", Bitwidth: 16});
this.Words = 2;
this.Cycles = 4;
this.Microcode[2] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_RDIL | CONTROL_RBIH | CONTROL_PCC;
}
}
is_LDDB_i = new IS_LDDB_imm16;
Instructions.push(is_LDDB_i);
class IS_LDDC_imm16 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x015;
this.Mnemonic = "LDDC";
this.LongName = "LOAD Register D and C";
this.Aliases = new Array();
this.Type = InstructionTypes.Immediate16;
this.Operands = new Array({Operand: "$", Bitwidth: 16});
this.Words = 2;
this.Cycles = 4;
this.Microcode[2] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_RDIL | CONTROL_RCIH | CONTROL_PCC;
}
}
is_LDDC_i = new IS_LDDC_imm16;
Instructions.push(is_LDDC_i);
class IS_LDSP_imm16 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x01E;
this.Mnemonic = "LDSP";
this.LongName = "LOAD Stack Pointer";
this.Aliases = new Array();
this.Type = InstructionTypes.Immediate16;
this.Operands = new Array({Operand: "$", Bitwidth: 16});
this.Words = 2;
this.Cycles = 4;
this.Microcode[2] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_SPI;
}
}
is_LDSP_i = new IS_LDSP_imm16;
Instructions.push(is_LDSP_i);
class IS_LDSPP_imm8 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x01F;
this.Mnemonic = "LDSPP";
this.LongName = "LOAD Stack Pointer Page";
this.Aliases = new Array();
this.Type = InstructionTypes.Immediate8;
this.Operands = new Array({Operand: "$", Bitwidth: 8});
this.Words = 2;
this.Cycles = 4;
this.Microcode[2] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_HS | CONTROL_PCC;
}
}
is_LDSPP_i = new IS_LDSPP_imm8;
Instructions.push(is_LDSPP_i);
//--------------------------- General Purpose Registers LDx Absolutes ---------------------------
// 0x01C:0x01D not used in this section
class IS_LDAB_CDabs16 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x040;
this.Mnemonic = "LDAB";
this.LongName = "LOAD Register A and B";
this.Aliases = new Array();
this.Type = InstructionTypes.RegisterAbsolute;
this.Operands = new Array({Operand: "CD", Bitwidth: 16});
this.Words = 1;
this.Cycles = 4;
this.Microcode[2] = CONTROL_OUT_CD | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_RAIL | CONTROL_RBIH;
}
}
is_LDAB_cda = new IS_LDAB_CDabs16();
Instructions.push(is_LDAB_cda);
class IS_LDCD_ABabs16 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x041;
this.Mnemonic = "LDCD";
this.LongName = "LOAD Register C and D";
this.Aliases = new Array();
this.Type = InstructionTypes.RegisterAbsolute;
this.Operands = new Array({Operand: "AB", Bitwidth: 16});
this.Words = 1;
this.Cycles = 4;
this.Microcode[2] = CONTROL_OUT_AB | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_RCIL | CONTROL_RDIH;
}
}
is_LDCD_aba = new IS_LDCD_ABabs16();
Instructions.push(is_LDCD_aba);
class IS_LDAL_abs16 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x042;
this.Mnemonic = "LDAL";
this.LongName = "LOAD Register A from LOW Byte";
this.Aliases = new Array();
this.Type = InstructionTypes.Absolute16;
this.Operands = new Array({Operand: "", Bitwidth: 16});
this.Words = 2;
this.Cycles = 5;
this.Microcode[2] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RAIL | CONTROL_PCC;
}
}
is_LDAL_a = new IS_LDAL_abs16;
Instructions.push(is_LDAL_a);
class IS_LDAH_abs16 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x043;
this.Mnemonic = "LDAH";
this.LongName = "LOAD Register A from HIGH Byte";
this.Aliases = new Array();
this.Type = InstructionTypes.Absolute16;
this.Operands = new Array({Operand: "", Bitwidth: 16});
this.Words = 2;
this.Cycles = 5;
this.Microcode[2] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RAIH | CONTROL_PCC;
}
}
is_LDAH_a = new IS_LDAH_abs16;
Instructions.push(is_LDAH_a);
class IS_LDBL_abs16 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x044;
this.Mnemonic = "LDBL";
this.LongName = "LOAD Register B from LOW Byte";
this.Aliases = new Array();
this.Type = InstructionTypes.Absolute16;
this.Operands = new Array({Operand: "", Bitwidth: 16});
this.Words = 2;
this.Cycles = 5;
this.Microcode[2] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RBIL | CONTROL_PCC;
}
}
is_LDBL_a = new IS_LDBL_abs16;
Instructions.push(is_LDBL_a);
class IS_LDBH_abs16 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x045;
this.Mnemonic = "LDBH";
this.LongName = "LOAD Register B from HIGH Byte";
this.Aliases = new Array();
this.Type = InstructionTypes.Absolute16;
this.Operands = new Array({Operand: "", Bitwidth: 16});
this.Words = 2;
this.Cycles = 5;
this.Microcode[2] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RBIH | CONTROL_PCC;
}
}
is_LDBH_a = new IS_LDBH_abs16;
Instructions.push(is_LDBH_a);
class IS_LDCL_abs16 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x046;
this.Mnemonic = "LDCL";
this.LongName = "LOAD Register C from LOW Byte";
this.Aliases = new Array();
this.Type = InstructionTypes.Absolute16;
this.Operands = new Array({Operand: "", Bitwidth: 16});
this.Words = 2;
this.Cycles = 5;
this.Microcode[2] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RCIL | CONTROL_PCC;
}
}
is_LDCL_a = new IS_LDCL_abs16;
Instructions.push(is_LDCL_a);
class IS_LDCH_abs16 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x047;
this.Mnemonic = "LDCH";
this.LongName = "LOAD Register C from HIGH Byte";
this.Aliases = new Array();
this.Type = InstructionTypes.Absolute16;
this.Operands = new Array({Operand: "", Bitwidth: 16});
this.Words = 2;
this.Cycles = 5;
this.Microcode[2] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RCIH | CONTROL_PCC;
}
}
is_LDCH_a = new IS_LDCH_abs16;
Instructions.push(is_LDCH_a);
class IS_LDDL_abs16 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x048;
this.Mnemonic = "LDDL";
this.LongName = "LOAD Register D from LOW Byte";
this.Aliases = new Array();
this.Type = InstructionTypes.Absolute16;
this.Operands = new Array({Operand: "", Bitwidth: 16});
this.Words = 2;
this.Cycles = 5;
this.Microcode[2] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RDIL | CONTROL_PCC;
}
}
is_LDDL_a = new IS_LDDL_abs16;
Instructions.push(is_LDDL_a);
class IS_LDDH_abs16 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x049;
this.Mnemonic = "LDDH";
this.LongName = "LOAD Register D from HIGH Byte";
this.Aliases = new Array();
this.Type = InstructionTypes.Absolute16;
this.Operands = new Array({Operand: "", Bitwidth: 16});
this.Words = 2;
this.Cycles = 5;
this.Microcode[2] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RDIH | CONTROL_PCC;
}
}
is_LDDH_a = new IS_LDDH_abs16;
Instructions.push(is_LDDH_a);
class IS_LDAB_abs16 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x04A;
this.Mnemonic = "LDAB";
this.LongName = "LOAD Register A and B";
this.Aliases = new Array();
this.Type = InstructionTypes.Absolute16;
this.Operands = new Array({Operand: "", Bitwidth: 16});
this.Words = 2;
this.Cycles = 5;
this.Microcode[2] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RAIL | CONTROL_RBIH | CONTROL_PCC;
}
}
is_LDAB_a = new IS_LDAB_abs16;
Instructions.push(is_LDAB_a);
class IS_LDAC_abs16 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x04B;
this.Mnemonic = "LDAC";
this.LongName = "LOAD Register A and C";
this.Aliases = new Array();
this.Type = InstructionTypes.Absolute16;
this.Operands = new Array({Operand: "", Bitwidth: 16});
this.Words = 2;
this.Cycles = 5;
this.Microcode[2] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RAIL | CONTROL_RCIH | CONTROL_PCC;
}
}
is_LDAC_a = new IS_LDAC_abs16;
Instructions.push(is_LDAC_a);
class IS_LDAD_abs16 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x04C;
this.Mnemonic = "LDAD";
this.LongName = "LOAD Register A and D";
this.Aliases = new Array();
this.Type = InstructionTypes.Absolute16;
this.Operands = new Array({Operand: "", Bitwidth: 16});
this.Words = 2;
this.Cycles = 5;
this.Microcode[2] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RAIL | CONTROL_RDIH | CONTROL_PCC;
}
}
is_LDAD_a = new IS_LDAD_abs16;
Instructions.push(is_LDAD_a);
class IS_LDBA_abs16 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x04D;
this.Mnemonic = "LDBA";
this.LongName = "LOAD Register B and A";
this.Aliases = new Array();
this.Type = InstructionTypes.Absolute16;
this.Operands = new Array({Operand: "", Bitwidth: 16});
this.Words = 2;
this.Cycles = 5;
this.Microcode[2] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RBIL | CONTROL_RAIH | CONTROL_PCC;
}
}
is_LDBA_a = new IS_LDBA_abs16;
Instructions.push(is_LDBA_a);
class IS_LDBC_abs16 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x04E;
this.Mnemonic = "LDBC";
this.LongName = "LOAD Register B and C";
this.Aliases = new Array();
this.Type = InstructionTypes.Absolute16;
this.Operands = new Array({Operand: "", Bitwidth: 16});
this.Words = 2;
this.Cycles = 5;
this.Microcode[2] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RBIL | CONTROL_RCIH | CONTROL_PCC;
}
}
is_LDBC_a = new IS_LDBC_abs16;
Instructions.push(is_LDBC_a);
class IS_LDBD_abs16 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x04F;
this.Mnemonic = "LDBD";
this.LongName = "LOAD Register B and D";
this.Aliases = new Array();
this.Type = InstructionTypes.Absolute16;
this.Operands = new Array({Operand: "", Bitwidth: 16});
this.Words = 2;
this.Cycles = 5;
this.Microcode[2] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RBIL | CONTROL_RDIH | CONTROL_PCC;
}
}
is_LDBD_a = new IS_LDBD_abs16;
Instructions.push(is_LDBD_a);
class IS_LDCA_abs16 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x050;
this.Mnemonic = "LDCA";
this.LongName = "LOAD Register C and A";
this.Aliases = new Array();
this.Type = InstructionTypes.Absolute16;
this.Operands = new Array({Operand: "", Bitwidth: 16});
this.Words = 2;
this.Cycles = 5;
this.Microcode[2] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RCIL | CONTROL_RAIH | CONTROL_PCC;
}
}
is_LDCA_a = new IS_LDCA_abs16;
Instructions.push(is_LDCA_a);
class IS_LDCB_abs16 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x051;
this.Mnemonic = "LDCB";
this.LongName = "LOAD Register C and B";
this.Aliases = new Array();
this.Type = InstructionTypes.Absolute16;
this.Operands = new Array({Operand: "", Bitwidth: 16});
this.Words = 2;
this.Cycles = 5;
this.Microcode[2] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RCIL | CONTROL_RBIH | CONTROL_PCC;
}
}
is_LDCB_a = new IS_LDCB_abs16;
Instructions.push(is_LDCB_a);
class IS_LDCD_abs16 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x052;
this.Mnemonic = "LDCD";
this.LongName = "LOAD Register C and D";
this.Aliases = new Array();
this.Type = InstructionTypes.Absolute16;
this.Operands = new Array({Operand: "", Bitwidth: 16});
this.Words = 2;
this.Cycles = 5;
this.Microcode[2] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RCIL | CONTROL_RDIH | CONTROL_PCC;
}
}
is_LDCD_a = new IS_LDCD_abs16;
Instructions.push(is_LDCD_a);
class IS_LDDA_abs16 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x053;
this.Mnemonic = "LDDA";
this.LongName = "LOAD Register D and A";
this.Aliases = new Array();
this.Type = InstructionTypes.Absolute16;
this.Operands = new Array({Operand: "", Bitwidth: 16});
this.Words = 2;
this.Cycles = 5;
this.Microcode[2] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RDIL | CONTROL_RAIH | CONTROL_PCC;
}
}
is_LDDA_a = new IS_LDDA_abs16;
Instructions.push(is_LDDA_a);
class IS_LDDB_abs16 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x054;
this.Mnemonic = "LDDB";
this.LongName = "LOAD Register D and B";
this.Aliases = new Array();
this.Type = InstructionTypes.Absolute16;
this.Operands = new Array({Operand: "", Bitwidth: 16});
this.Words = 2;
this.Cycles = 5;
this.Microcode[2] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RDIL | CONTROL_RBIH | CONTROL_PCC;
}
}
is_LDDB_a = new IS_LDDB_abs16;
Instructions.push(is_LDDB_a);
class IS_LDDC_abs16 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x055;
this.Mnemonic = "LDDC";
this.LongName = "LOAD Register D and C";
this.Aliases = new Array();
this.Type = InstructionTypes.Absolute16;
this.Operands = new Array({Operand: "", Bitwidth: 16});
this.Words = 2;
this.Cycles = 5;
this.Microcode[2] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RDIL | CONTROL_RCIH | CONTROL_PCC;
}
}
is_LDDC_a = new IS_LDDC_abs16;
Instructions.push(is_LDDC_a);
class IS_LDAB_SPabs16 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x056;
this.Mnemonic = "LDAB";
this.LongName = "LOAD Register A and B";
this.Aliases = new Array();
this.Type = InstructionTypes.RegisterAbsolute;
this.Operands = new Array({Operand: "SP", Bitwidth: 16});
this.Words = 1;
this.Cycles = 5;
this.Microcode[2] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RAIL | CONTROL_RBIH;
}
}
is_LDAB_spa = new IS_LDAB_SPabs16();
Instructions.push(is_LDAB_spa);
class IS_LDCD_SPabs16 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x057;
this.Mnemonic = "LDCD";
this.LongName = "LOAD Register C and D";
this.Aliases = new Array();
this.Type = InstructionTypes.RegisterAbsolute;
this.Operands = new Array({Operand: "SP", Bitwidth: 16});
this.Words = 1;
this.Cycles = 5;
this.Microcode[2] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RCIL | CONTROL_RDIH;
}
}
is_LDCD_spa = new IS_LDCD_SPabs16();
Instructions.push(is_LDCD_spa);
class IS_LDAL_SPabs16 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x058;
this.Mnemonic = "LDAL";
this.LongName = "LOAD Register A from LOW Byte";
this.Aliases = new Array();
this.Type = InstructionTypes.RegisterAbsolute;
this.Operands = new Array({Operand: "SP", Bitwidth: 16});
this.Words = 1;
this.Cycles = 5;
this.Microcode[2] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RAIL;
}
}
is_LDAL_spa = new IS_LDAL_SPabs16();
Instructions.push(is_LDAL_spa);
class IS_LDAH_SPabs16 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x059;
this.Mnemonic = "LDAH";
this.LongName = "LOAD Register A from HIGH Byte";
this.Aliases = new Array();
this.Type = InstructionTypes.RegisterAbsolute;
this.Operands = new Array({Operand: "SP", Bitwidth: 16});
this.Words = 1;
this.Cycles = 5;
this.Microcode[2] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RAIH;
}
}
is_LDAH_spa = new IS_LDAH_SPabs16();
Instructions.push(is_LDAH_spa);
class IS_LDBL_SPabs16 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x05A;
this.Mnemonic = "LDBL";
this.LongName = "LOAD Register B from LOW Byte";
this.Aliases = new Array();
this.Type = InstructionTypes.RegisterAbsolute;
this.Operands = new Array({Operand: "SP", Bitwidth: 16});
this.Words = 1;
this.Cycles = 5;
this.Microcode[2] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RBIL;
}
}
is_LDBL_spa = new IS_LDBL_SPabs16();
Instructions.push(is_LDBL_spa);
class IS_LDBH_SPabs16 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x05B;
this.Mnemonic = "LDBH";
this.LongName = "LOAD Register B from HIGH Byte";
this.Aliases = new Array();
this.Type = InstructionTypes.RegisterAbsolute;
this.Operands = new Array({Operand: "SP", Bitwidth: 16});
this.Words = 1;
this.Cycles = 5;
this.Microcode[2] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RBIH;
}
}
is_LDBH_spa = new IS_LDBH_SPabs16();
Instructions.push(is_LDBH_spa);
class IS_LDAL_abs24 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x062;
this.Mnemonic = "LDAL";
this.LongName = "LOAD Register A from LOW Byte";
this.Aliases = new Array();
this.Type = InstructionTypes.Absolute24;
this.Operands = new Array({Operand: "", Bitwidth: 24});
this.Words = 3;
this.Cycles = 12;
this.Microcode[2] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_HO | CONTROL_RI;
this.Microcode[4] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[5] = CONTROL_OUT_I2 | CONTROL_PCC;
this.Microcode[6] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[7] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[8] = CONTROL_OUT_2O | CONTROL_RHI;
this.Microcode[9] = CONTROL_OUT_RO | CONTROL_RAIL | CONTROL_PCC;
this.Microcode[10] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[11] = CONTROL_OUT_RO | CONTROL_RHI;
}
}
is_LDAL_a24 = new IS_LDAL_abs24;
Instructions.push(is_LDAL_a24);
class IS_LDAH_abs24 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x063;
this.Mnemonic = "LDAH";
this.LongName = "LOAD Register A from HIGH Byte";
this.Aliases = new Array();
this.Type = InstructionTypes.Absolute24;
this.Operands = new Array({Operand: "", Bitwidth: 24});
this.Words = 3;
this.Cycles = 12;
this.Microcode[2] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_HO | CONTROL_RI;
this.Microcode[4] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[5] = CONTROL_OUT_I2 | CONTROL_PCC;
this.Microcode[6] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[7] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[8] = CONTROL_OUT_2O | CONTROL_RHI;
this.Microcode[9] = CONTROL_OUT_RO | CONTROL_RAIH | CONTROL_PCC;
this.Microcode[10] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[11] = CONTROL_OUT_RO | CONTROL_RHI;
}
}
is_LDAH_a24 = new IS_LDAH_abs24;
Instructions.push(is_LDAH_a24);
class IS_LDBL_abs24 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x064;
this.Mnemonic = "LDBL";
this.LongName = "LOAD Register B from LOW Byte";
this.Aliases = new Array();
this.Type = InstructionTypes.Absolute24;
this.Operands = new Array({Operand: "", Bitwidth: 24});
this.Words = 3;
this.Cycles = 12;
this.Microcode[2] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_HO | CONTROL_RI;
this.Microcode[4] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[5] = CONTROL_OUT_I2 | CONTROL_PCC;
this.Microcode[6] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[7] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[8] = CONTROL_OUT_2O | CONTROL_RHI;
this.Microcode[9] = CONTROL_OUT_RO | CONTROL_RBIL | CONTROL_PCC;
this.Microcode[10] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[11] = CONTROL_OUT_RO | CONTROL_RHI;
}
}
is_LDBL_a24 = new IS_LDBL_abs24;
Instructions.push(is_LDBL_a24);
class IS_LDBH_abs24 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x065;
this.Mnemonic = "LDBH";
this.LongName = "LOAD Register B from HIGH Byte";
this.Aliases = new Array();
this.Type = InstructionTypes.Absolute24;
this.Operands = new Array({Operand: "", Bitwidth: 24});
this.Words = 3;
this.Cycles = 12;
this.Microcode[2] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_HO | CONTROL_RI;
this.Microcode[4] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[5] = CONTROL_OUT_I2 | CONTROL_PCC;
this.Microcode[6] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[7] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[8] = CONTROL_OUT_2O | CONTROL_RHI;
this.Microcode[9] = CONTROL_OUT_RO | CONTROL_RBIH | CONTROL_PCC;
this.Microcode[10] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[11] = CONTROL_OUT_RO | CONTROL_RHI;
}
}
is_LDBH_a24 = new IS_LDBH_abs24;
Instructions.push(is_LDBH_a24);
class IS_LDCL_abs24 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x066;
this.Mnemonic = "LDCL";
this.LongName = "LOAD Register C from LOW Byte";
this.Aliases = new Array();
this.Type = InstructionTypes.Absolute24;
this.Operands = new Array({Operand: "", Bitwidth: 24});
this.Words = 3;
this.Cycles = 12;
this.Microcode[2] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_HO | CONTROL_RI;
this.Microcode[4] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[5] = CONTROL_OUT_I2 | CONTROL_PCC;
this.Microcode[6] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[7] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[8] = CONTROL_OUT_2O | CONTROL_RHI;
this.Microcode[9] = CONTROL_OUT_RO | CONTROL_RCIL | CONTROL_PCC;
this.Microcode[10] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[11] = CONTROL_OUT_RO | CONTROL_RHI;
}
}
is_LDCL_a24 = new IS_LDCL_abs24;
Instructions.push(is_LDCL_a24);
class IS_LDCH_abs24 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x067;
this.Mnemonic = "LDCH";
this.LongName = "LOAD Register C from HIGH Byte";
this.Aliases = new Array();
this.Type = InstructionTypes.Absolute24;
this.Operands = new Array({Operand: "", Bitwidth: 24});
this.Words = 3;
this.Cycles = 12;
this.Microcode[2] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_HO | CONTROL_RI;
this.Microcode[4] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[5] = CONTROL_OUT_I2 | CONTROL_PCC;
this.Microcode[6] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[7] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[8] = CONTROL_OUT_2O | CONTROL_RHI;
this.Microcode[9] = CONTROL_OUT_RO | CONTROL_RCIH | CONTROL_PCC;
this.Microcode[10] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[11] = CONTROL_OUT_RO | CONTROL_RHI;
}
}
is_LDCH_a24 = new IS_LDCH_abs24;
Instructions.push(is_LDCH_a24);
class IS_LDDL_abs24 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x068;
this.Mnemonic = "LDDL";
this.LongName = "LOAD Register D from LOW Byte";
this.Aliases = new Array();
this.Type = InstructionTypes.Absolute24;
this.Operands = new Array({Operand: "", Bitwidth: 24});
this.Words = 3;
this.Cycles = 12;
this.Microcode[2] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_HO | CONTROL_RI;
this.Microcode[4] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[5] = CONTROL_OUT_I2 | CONTROL_PCC;
this.Microcode[6] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[7] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[8] = CONTROL_OUT_2O | CONTROL_RHI;
this.Microcode[9] = CONTROL_OUT_RO | CONTROL_RDIL | CONTROL_PCC;
this.Microcode[10] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[11] = CONTROL_OUT_RO | CONTROL_RHI;
}
}
is_LDDL_a24 = new IS_LDDL_abs24;
Instructions.push(is_LDDL_a24);
class IS_LDDH_abs24 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x069;
this.Mnemonic = "LDDH";
this.LongName = "LOAD Register D from HIGH Byte";
this.Aliases = new Array();
this.Type = InstructionTypes.Absolute24;
this.Operands = new Array({Operand: "", Bitwidth: 24});
this.Words = 3;
this.Cycles = 12;
this.Microcode[2] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_HO | CONTROL_RI;
this.Microcode[4] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[5] = CONTROL_OUT_I2 | CONTROL_PCC;
this.Microcode[6] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[7] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[8] = CONTROL_OUT_2O | CONTROL_RHI;
this.Microcode[9] = CONTROL_OUT_RO | CONTROL_RDIH | CONTROL_PCC;
this.Microcode[10] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[11] = CONTROL_OUT_RO | CONTROL_RHI;
}
}
is_LDDH_a24 = new IS_LDDH_abs24;
Instructions.push(is_LDDH_a24);
class IS_LDAB_abs24 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x06A;
this.Mnemonic = "LDAB";
this.LongName = "LOAD Register A and B";
this.Aliases = new Array();
this.Type = InstructionTypes.Absolute24;
this.Operands = new Array({Operand: "", Bitwidth: 24});
this.Words = 3;
this.Cycles = 12;
this.Microcode[2] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_HO | CONTROL_RI;
this.Microcode[4] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[5] = CONTROL_OUT_I2 | CONTROL_PCC;
this.Microcode[6] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[7] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[8] = CONTROL_OUT_2O | CONTROL_RHI;
this.Microcode[9] = CONTROL_OUT_RO | CONTROL_RAIL | CONTROL_RBIH | CONTROL_PCC;
this.Microcode[10] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[11] = CONTROL_OUT_RO | CONTROL_RHI;
}
}
is_LDAB_a24 = new IS_LDAB_abs24;
Instructions.push(is_LDAB_a24);
class IS_LDAC_abs24 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x06B;
this.Mnemonic = "LDAC";
this.LongName = "LOAD Register A and C";
this.Aliases = new Array();
this.Type = InstructionTypes.Absolute24;
this.Operands = new Array({Operand: "", Bitwidth: 24});
this.Words = 3;
this.Cycles = 12;
this.Microcode[2] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_HO | CONTROL_RI;
this.Microcode[4] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[5] = CONTROL_OUT_I2 | CONTROL_PCC;
this.Microcode[6] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[7] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[8] = CONTROL_OUT_2O | CONTROL_RHI;
this.Microcode[9] = CONTROL_OUT_RO | CONTROL_RAIL | CONTROL_RCIH | CONTROL_PCC;
this.Microcode[10] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[11] = CONTROL_OUT_RO | CONTROL_RHI;
}
}
is_LDAC_a24 = new IS_LDAC_abs24;
Instructions.push(is_LDAC_a24);
class IS_LDAD_abs24 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x06C;
this.Mnemonic = "LDAD";
this.LongName = "LOAD Register A and D";
this.Aliases = new Array();
this.Type = InstructionTypes.Absolute24;
this.Operands = new Array({Operand: "", Bitwidth: 24});
this.Words = 3;
this.Cycles = 12;
this.Microcode[2] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_HO | CONTROL_RI;
this.Microcode[4] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[5] = CONTROL_OUT_I2 | CONTROL_PCC;
this.Microcode[6] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[7] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[8] = CONTROL_OUT_2O | CONTROL_RHI;
this.Microcode[9] = CONTROL_OUT_RO | CONTROL_RAIL | CONTROL_RDIH | CONTROL_PCC;
this.Microcode[10] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[11] = CONTROL_OUT_RO | CONTROL_RHI;
}
}
is_LDAD_a24 = new IS_LDAD_abs24;
Instructions.push(is_LDAD_a24);
class IS_LDBA_abs24 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x06D;
this.Mnemonic = "LDBA";
this.LongName = "LOAD Register B and A";
this.Aliases = new Array();
this.Type = InstructionTypes.Absolute24;
this.Operands = new Array({Operand: "", Bitwidth: 24});
this.Words = 3;
this.Cycles = 12;
this.Microcode[2] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_HO | CONTROL_RI;
this.Microcode[4] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[5] = CONTROL_OUT_I2 | CONTROL_PCC;
this.Microcode[6] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[7] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[8] = CONTROL_OUT_2O | CONTROL_RHI;
this.Microcode[9] = CONTROL_OUT_RO | CONTROL_RBIL | CONTROL_RAIH | CONTROL_PCC;
this.Microcode[10] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[11] = CONTROL_OUT_RO | CONTROL_RHI;
}
}
is_LDBA_a24 = new IS_LDBA_abs24;
Instructions.push(is_LDBA_a24);
class IS_LDBC_abs24 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x06E;
this.Mnemonic = "LDBC";
this.LongName = "LOAD Register B and C";
this.Aliases = new Array();
this.Type = InstructionTypes.Absolute24;
this.Operands = new Array({Operand: "", Bitwidth: 24});
this.Words = 3;
this.Cycles = 12;
this.Microcode[2] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_HO | CONTROL_RI;
this.Microcode[4] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[5] = CONTROL_OUT_I2 | CONTROL_PCC;
this.Microcode[6] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[7] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[8] = CONTROL_OUT_2O | CONTROL_RHI;
this.Microcode[9] = CONTROL_OUT_RO | CONTROL_RBIL | CONTROL_RCIH | CONTROL_PCC;
this.Microcode[10] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[11] = CONTROL_OUT_RO | CONTROL_RHI;
}
}
is_LDBC_a24 = new IS_LDBC_abs24;
Instructions.push(is_LDBC_a24);
class IS_LDBD_abs24 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x06F;
this.Mnemonic = "LDBD";
this.LongName = "LOAD Register B and D";
this.Aliases = new Array();
this.Type = InstructionTypes.Absolute24;
this.Operands = new Array({Operand: "", Bitwidth: 24});
this.Words = 3;
this.Cycles = 12;
this.Microcode[2] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_HO | CONTROL_RI;
this.Microcode[4] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[5] = CONTROL_OUT_I2 | CONTROL_PCC;
this.Microcode[6] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[7] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[8] = CONTROL_OUT_2O | CONTROL_RHI;
this.Microcode[9] = CONTROL_OUT_RO | CONTROL_RBIL | CONTROL_RDIH | CONTROL_PCC;
this.Microcode[10] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[11] = CONTROL_OUT_RO | CONTROL_RHI;
}
}
is_LDBD_a24 = new IS_LDBD_abs24;
Instructions.push(is_LDBD_a24);
class IS_LDCA_abs24 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x070;
this.Mnemonic = "LDCA";
this.LongName = "LOAD Register C and A";
this.Aliases = new Array();
this.Type = InstructionTypes.Absolute24;
this.Operands = new Array({Operand: "", Bitwidth: 24});
this.Words = 3;
this.Cycles = 12;
this.Microcode[2] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_HO | CONTROL_RI;
this.Microcode[4] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[5] = CONTROL_OUT_I2 | CONTROL_PCC;
this.Microcode[6] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[7] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[8] = CONTROL_OUT_2O | CONTROL_RHI;
this.Microcode[9] = CONTROL_OUT_RO | CONTROL_RCIL | CONTROL_RAIH | CONTROL_PCC;
this.Microcode[10] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[11] = CONTROL_OUT_RO | CONTROL_RHI;
}
}
is_LDCA_a24 = new IS_LDCA_abs24;
Instructions.push(is_LDCA_a24);
class IS_LDCB_abs24 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x071;
this.Mnemonic = "LDCB";
this.LongName = "LOAD Register C and B";
this.Aliases = new Array();
this.Type = InstructionTypes.Absolute24;
this.Operands = new Array({Operand: "", Bitwidth: 24});
this.Words = 3;
this.Cycles = 12;
this.Microcode[2] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_HO | CONTROL_RI;
this.Microcode[4] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[5] = CONTROL_OUT_I2 | CONTROL_PCC;
this.Microcode[6] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[7] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[8] = CONTROL_OUT_2O | CONTROL_RHI;
this.Microcode[9] = CONTROL_OUT_RO | CONTROL_RCIL | CONTROL_RBIH | CONTROL_PCC;
this.Microcode[10] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[11] = CONTROL_OUT_RO | CONTROL_RHI;
}
}
is_LDCB_a24 = new IS_LDCB_abs24;
Instructions.push(is_LDCB_a24);
class IS_LDCD_abs24 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x072;
this.Mnemonic = "LDCD";
this.LongName = "LOAD Register C and D";
this.Aliases = new Array();
this.Type = InstructionTypes.Absolute24;
this.Operands = new Array({Operand: "", Bitwidth: 24});
this.Words = 3;
this.Cycles = 12;
this.Microcode[2] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_HO | CONTROL_RI;
this.Microcode[4] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[5] = CONTROL_OUT_I2 | CONTROL_PCC;
this.Microcode[6] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[7] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[8] = CONTROL_OUT_2O | CONTROL_RHI;
this.Microcode[9] = CONTROL_OUT_RO | CONTROL_RCIL | CONTROL_RDIH | CONTROL_PCC;
this.Microcode[10] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[11] = CONTROL_OUT_RO | CONTROL_RHI;
}
}
is_LDCD_a24 = new IS_LDCD_abs24;
Instructions.push(is_LDCD_a24);
class IS_LDDA_abs24 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x073;
this.Mnemonic = "LDDA";
this.LongName = "LOAD Register D and A";
this.Aliases = new Array();
this.Type = InstructionTypes.Absolute24;
this.Operands = new Array({Operand: "", Bitwidth: 24});
this.Words = 3;
this.Cycles = 12;
this.Microcode[2] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_HO | CONTROL_RI;
this.Microcode[4] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[5] = CONTROL_OUT_I2 | CONTROL_PCC;
this.Microcode[6] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[7] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[8] = CONTROL_OUT_2O | CONTROL_RHI;
this.Microcode[9] = CONTROL_OUT_RO | CONTROL_RDIL | CONTROL_RAIH | CONTROL_PCC;
this.Microcode[10] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[11] = CONTROL_OUT_RO | CONTROL_RHI;
}
}
is_LDDA_a24 = new IS_LDDA_abs24;
Instructions.push(is_LDDA_a24);
class IS_LDDB_abs24 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x074;
this.Mnemonic = "LDDB";
this.LongName = "LOAD Register D and B";
this.Aliases = new Array();
this.Type = InstructionTypes.Absolute24;
this.Operands = new Array({Operand: "", Bitwidth: 24});
this.Words = 3;
this.Cycles = 12;
this.Microcode[2] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_HO | CONTROL_RI;
this.Microcode[4] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[5] = CONTROL_OUT_I2 | CONTROL_PCC;
this.Microcode[6] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[7] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[8] = CONTROL_OUT_2O | CONTROL_RHI;
this.Microcode[9] = CONTROL_OUT_RO | CONTROL_RDIL | CONTROL_RBIH | CONTROL_PCC;
this.Microcode[10] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[11] = CONTROL_OUT_RO | CONTROL_RHI;
}
}
is_LDDB_a24 = new IS_LDDB_abs24;
Instructions.push(is_LDDB_a24);
class IS_LDDC_abs24 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x075;
this.Mnemonic = "LDDC";
this.LongName = "LOAD Register D and C";
this.Aliases = new Array();
this.Type = InstructionTypes.Absolute24;
this.Operands = new Array({Operand: "", Bitwidth: 24});
this.Words = 3;
this.Cycles = 12;
this.Microcode[2] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_HO | CONTROL_RI;
this.Microcode[4] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[5] = CONTROL_OUT_I2 | CONTROL_PCC;
this.Microcode[6] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[7] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[8] = CONTROL_OUT_2O | CONTROL_RHI;
this.Microcode[9] = CONTROL_OUT_RO | CONTROL_RDIL | CONTROL_RCIH | CONTROL_PCC;
this.Microcode[10] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[11] = CONTROL_OUT_RO | CONTROL_RHI;
}
}
is_LDDC_a24 = new IS_LDDC_abs24;
Instructions.push(is_LDDC_a24);
//--------------------------- General Purpose Registers LDx Indirect ---------------------------
class IS_LDAL_ind16 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x082;
this.Mnemonic = "LDAL";
this.LongName = "LOAD Register A from LOW Byte";
this.Aliases = new Array();
this.Type = InstructionTypes.Indirect16;
this.Operands = new Array({Operand: "#", Bitwidth: 16});
this.Words = 2;
this.Cycles = 6;
this.Microcode[2] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[5] = CONTROL_OUT_RO | CONTROL_RAIL | CONTROL_PCC;
}
}
is_LDAL_in = new IS_LDAL_ind16;
Instructions.push(is_LDAL_in);
class IS_LDAH_ind16 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x083;
this.Mnemonic = "LDAH";
this.LongName = "LOAD Register A from HIGH Byte";
this.Aliases = new Array();
this.Type = InstructionTypes.Indirect16;
this.Operands = new Array({Operand: "#", Bitwidth: 16});
this.Words = 2;
this.Cycles = 6;
this.Microcode[2] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[5] = CONTROL_OUT_RO | CONTROL_RAIH | CONTROL_PCC;
}
}
is_LDAH_in = new IS_LDAH_ind16;
Instructions.push(is_LDAH_in);
class IS_LDBL_ind16 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x084;
this.Mnemonic = "LDBL";
this.LongName = "LOAD Register B from LOW Byte";
this.Aliases = new Array();
this.Words = 2;
this.Cycles = 6;
this.Type = InstructionTypes.Indirect16;
this.Operands = new Array({Operand: "#", Bitwidth: 16});
this.Microcode[2] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[5] = CONTROL_OUT_RO | CONTROL_RBIL | CONTROL_PCC;
}
}
is_LDBL_in = new IS_LDBL_ind16;
Instructions.push(is_LDBL_in);
class IS_LDBH_ind16 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x085;
this.Mnemonic = "LDBH";
this.LongName = "LOAD Register B from HIGH Byte";
this.Aliases = new Array();
this.Words = 2;
this.Cycles = 6;
this.Type = InstructionTypes.Indirect16;
this.Operands = new Array({Operand: "#", Bitwidth: 16});
this.Microcode[2] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[5] = CONTROL_OUT_RO | CONTROL_RBIH | CONTROL_PCC;
}
}
is_LDBH_in = new IS_LDBH_ind16;
Instructions.push(is_LDBH_in);
class IS_LDCL_ind16 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x086;
this.Mnemonic = "LDCL";
this.LongName = "LOAD Register C from LOW Byte";
this.Aliases = new Array();
this.Type = InstructionTypes.Indirect16;
this.Operands = new Array({Operand: "#", Bitwidth: 16});
this.Words = 2;
this.Cycles = 6;
this.Microcode[2] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[5] = CONTROL_OUT_RO | CONTROL_RCIL | CONTROL_PCC;
}
}
is_LDCL_in = new IS_LDCL_ind16;
Instructions.push(is_LDCL_in);
class IS_LDCH_ind16 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x087;
this.Mnemonic = "LDCH";
this.LongName = "LOAD Register C from HIGH Byte";
this.Aliases = new Array();
this.Type = InstructionTypes.Indirect16;
this.Operands = new Array({Operand: "#", Bitwidth: 16});
this.Words = 2;
this.Cycles = 6;
this.Microcode[2] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[5] = CONTROL_OUT_RO | CONTROL_RCIH | CONTROL_PCC;
}
}
is_LDCH_in = new IS_LDCH_ind16;
Instructions.push(is_LDCH_in);
class IS_LDDL_ind16 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x088;
this.Mnemonic = "LDDL";
this.LongName = "LOAD Register D from LOW Byte";
this.Aliases = new Array();
this.Type = InstructionTypes.Indirect16;
this.Operands = new Array({Operand: "#", Bitwidth: 16});
this.Words = 2;
this.Cycles = 6;
this.Microcode[2] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[5] = CONTROL_OUT_RO | CONTROL_RDIL | CONTROL_PCC;
}
}
is_LDDL_in = new IS_LDDL_ind16;
Instructions.push(is_LDDL_in);
class IS_LDDH_ind16 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x089;
this.Mnemonic = "LDDH";
this.LongName = "LOAD Register D from HIGH Byte";
this.Aliases = new Array();
this.Type = InstructionTypes.Indirect16;
this.Operands = new Array({Operand: "#", Bitwidth: 16});
this.Words = 2;
this.Cycles = 6;
this.Microcode[2] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[5] = CONTROL_OUT_RO | CONTROL_RDIH | CONTROL_PCC;
}
}
is_LDDH_in = new IS_LDDH_ind16;
Instructions.push(is_LDDH_in);
class IS_LDAL_ind24 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x0C2;
this.Mnemonic = "LDAL";
this.LongName = "LOAD Register A from LOW Byte";
this.Aliases = new Array();
this.Type = InstructionTypes.Indirect24;
this.Operands = new Array({Operand: "#", Bitwidth: 24});
this.Words = 3;
this.Cycles = 13;
this.Microcode[2] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_HO | CONTROL_RI;
this.Microcode[4] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[5] = CONTROL_OUT_I2 | CONTROL_PCC;
this.Microcode[6] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[7] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[8] = CONTROL_OUT_2O | CONTROL_RHI;
this.Microcode[9] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[10] = CONTROL_OUT_RO | CONTROL_RAIL | CONTROL_PCC;
this.Microcode[11] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[12] = CONTROL_OUT_RO | CONTROL_RHI;
}
}
is_LDAL_in24 = new IS_LDAL_ind24;
Instructions.push(is_LDAL_in24);
class IS_LDAH_ind24 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x0C3;
this.Mnemonic = "LDAH";
this.LongName = "LOAD Register A from HIGH Byte";
this.Aliases = new Array();
this.Type = InstructionTypes.Indirect24;
this.Operands = new Array({Operand: "#", Bitwidth: 24});
this.Words = 3;
this.Cycles = 13;
this.Microcode[2] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_HO | CONTROL_RI;
this.Microcode[4] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[5] = CONTROL_OUT_I2 | CONTROL_PCC;
this.Microcode[6] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[7] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[8] = CONTROL_OUT_2O | CONTROL_RHI;
this.Microcode[9] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[10] = CONTROL_OUT_RO | CONTROL_RAIH | CONTROL_PCC;
this.Microcode[11] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[12] = CONTROL_OUT_RO | CONTROL_RHI;
}
}
is_LDAH_in24 = new IS_LDAH_ind24;
Instructions.push(is_LDAH_in24);
class IS_LDBL_ind24 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x0C4;
this.Mnemonic = "LDBL";
this.LongName = "LOAD Register B from LOW Byte";
this.Aliases = new Array();
this.Type = InstructionTypes.Indirect24;
this.Operands = new Array({Operand: "#", Bitwidth: 24});
this.Words = 3;
this.Cycles = 13;
this.Microcode[2] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_HO | CONTROL_RI;
this.Microcode[4] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[5] = CONTROL_OUT_I2 | CONTROL_PCC;
this.Microcode[6] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[7] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[8] = CONTROL_OUT_2O | CONTROL_RHI;
this.Microcode[9] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[10] = CONTROL_OUT_RO | CONTROL_RBIL | CONTROL_PCC;
this.Microcode[11] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[12] = CONTROL_OUT_RO | CONTROL_RHI;
}
}
is_LDBL_in24 = new IS_LDBL_ind24;
Instructions.push(is_LDBL_in24);
class IS_LDBH_ind24 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x0C5;
this.Mnemonic = "LDBH";
this.LongName = "LOAD Register B from HIGH Byte";
this.Aliases = new Array();
this.Type = InstructionTypes.Indirect24;
this.Operands = new Array({Operand: "#", Bitwidth: 24});
this.Words = 3;
this.Cycles = 13;
this.Microcode[2] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_HO | CONTROL_RI;
this.Microcode[4] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[5] = CONTROL_OUT_I2 | CONTROL_PCC;
this.Microcode[6] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[7] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[8] = CONTROL_OUT_2O | CONTROL_RHI;
this.Microcode[9] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[10] = CONTROL_OUT_RO | CONTROL_RBIH | CONTROL_PCC;
this.Microcode[11] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[12] = CONTROL_OUT_RO | CONTROL_RHI;
}
}
is_LDBH_in24 = new IS_LDBH_ind24;
Instructions.push(is_LDBH_in24);
class IS_LDCL_ind24 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x0C6;
this.Mnemonic = "LDCL";
this.LongName = "LOAD Register C from LOW Byte";
this.Aliases = new Array();
this.Type = InstructionTypes.Indirect24;
this.Operands = new Array({Operand: "#", Bitwidth: 24});
this.Words = 3;
this.Cycles = 13;
this.Microcode[2] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_HO | CONTROL_RI;
this.Microcode[4] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[5] = CONTROL_OUT_I2 | CONTROL_PCC;
this.Microcode[6] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[7] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[8] = CONTROL_OUT_2O | CONTROL_RHI;
this.Microcode[9] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[10] = CONTROL_OUT_RO | CONTROL_RCIL | CONTROL_PCC;
this.Microcode[11] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[12] = CONTROL_OUT_RO | CONTROL_RHI;
}
}
is_LDCL_in24 = new IS_LDCL_ind24;
Instructions.push(is_LDCL_in24);
class IS_LDCH_ind24 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x0C7;
this.Mnemonic = "LDCH";
this.LongName = "LOAD Register C from HIGH Byte";
this.Aliases = new Array();
this.Type = InstructionTypes.Indirect24;
this.Operands = new Array({Operand: "#", Bitwidth: 24});
this.Words = 3;
this.Cycles = 13;
this.Microcode[2] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_HO | CONTROL_RI;
this.Microcode[4] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[5] = CONTROL_OUT_I2 | CONTROL_PCC;
this.Microcode[6] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[7] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[8] = CONTROL_OUT_2O | CONTROL_RHI;
this.Microcode[9] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[10] = CONTROL_OUT_RO | CONTROL_RCIH | CONTROL_PCC;
this.Microcode[11] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[12] = CONTROL_OUT_RO | CONTROL_RHI;
}
}
is_LDCH_in24 = new IS_LDCH_ind24;
Instructions.push(is_LDCH_in24);
class IS_LDDL_ind24 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x0C8;
this.Mnemonic = "LDDL";
this.LongName = "LOAD Register D from LOW Byte";
this.Aliases = new Array();
this.Type = InstructionTypes.Indirect24;
this.Operands = new Array({Operand: "#", Bitwidth: 24});
this.Words = 3;
this.Cycles = 13;
this.Microcode[2] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_HO | CONTROL_RI;
this.Microcode[4] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[5] = CONTROL_OUT_I2 | CONTROL_PCC;
this.Microcode[6] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[7] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[8] = CONTROL_OUT_2O | CONTROL_RHI;
this.Microcode[9] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[10] = CONTROL_OUT_RO | CONTROL_RDIL | CONTROL_PCC;
this.Microcode[11] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[12] = CONTROL_OUT_RO | CONTROL_RHI;
}
}
is_LDDL_in24 = new IS_LDDL_ind24;
Instructions.push(is_LDDL_in24);
class IS_LDDH_ind24 extends Microcode_Instruction {
constructor(props) {
super(props);
this.Bytecode = 0x0C9;
this.Mnemonic = "LDDH";
this.LongName = "LOAD Register D from HIGH Byte";
this.Aliases = new Array();
this.Type = InstructionTypes.Indirect24;
this.Operands = new Array({Operand: "#", Bitwidth: 24});
this.Words = 3;
this.Cycles = 13;
this.Microcode[2] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[3] = CONTROL_OUT_HO | CONTROL_RI;
this.Microcode[4] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[5] = CONTROL_OUT_I2 | CONTROL_PCC;
this.Microcode[6] = CONTROL_OUT_PC | CONTROL_RRI;
this.Microcode[7] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[8] = CONTROL_OUT_2O | CONTROL_RHI;
this.Microcode[9] = CONTROL_OUT_RO | CONTROL_RRI;
this.Microcode[10] = CONTROL_OUT_RO | CONTROL_RDIH | CONTROL_PCC;
this.Microcode[11] = CONTROL_OUT_SP | CONTROL_RRI;
this.Microcode[12] = CONTROL_OUT_RO | CONTROL_RHI;
}
}
is_LDDH_in24 = new IS_LDDH_ind24;
Instructions.push(is_LDDH_in24);