271 lines
9.5 KiB
JavaScript
271 lines
9.5 KiB
JavaScript
class IS_STAL_imm16 extends Microcode_Instruction {
|
|
constructor(props) {
|
|
super(props);
|
|
this.Bytecode = 0x102;
|
|
this.Mnemonic = "STAL";
|
|
this.LongName = "STORE Register A to LOW Byte";
|
|
this.Aliases = new Array();
|
|
|
|
this.Type = InstructionTypes.Immediate16;
|
|
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 | CONTROL_PCC;
|
|
this.Microcode[4] = CONTROL_OUT_AL | CONTROL_RI;
|
|
|
|
}
|
|
}
|
|
is_STAL_i = new IS_STAL_imm16;
|
|
Instructions.push(is_STAL_i);
|
|
|
|
class IS_STAH_imm16 extends Microcode_Instruction {
|
|
constructor(props) {
|
|
super(props);
|
|
this.Bytecode = 0x103;
|
|
this.Mnemonic = "STAH";
|
|
this.LongName = "STORE Register A to HIGH Byte";
|
|
this.Aliases = new Array();
|
|
|
|
this.Type = InstructionTypes.Immediate16;
|
|
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 | CONTROL_PCC;
|
|
this.Microcode[4] = CONTROL_OUT_AH | CONTROL_RI;
|
|
}
|
|
}
|
|
is_STAH_i = new IS_STAH_imm16;
|
|
Instructions.push(is_STAH_i);
|
|
|
|
class IS_STBL_imm16 extends Microcode_Instruction {
|
|
constructor(props) {
|
|
super(props);
|
|
this.Bytecode = 0x104;
|
|
this.Mnemonic = "STBL";
|
|
this.LongName = "STORE Register B to LOW Byte";
|
|
this.Aliases = new Array();
|
|
|
|
this.Type = InstructionTypes.Immediate16;
|
|
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 | CONTROL_PCC;
|
|
this.Microcode[4] = CONTROL_OUT_BL | CONTROL_RI;
|
|
}
|
|
}
|
|
is_STBL_i = new IS_STBL_imm16;
|
|
Instructions.push(is_STBL_i);
|
|
|
|
class IS_STBH_imm16 extends Microcode_Instruction {
|
|
constructor(props) {
|
|
super(props);
|
|
this.Bytecode = 0x105;
|
|
this.Mnemonic = "STBH";
|
|
this.LongName = "STORE Register B to HIGH Byte";
|
|
this.Aliases = new Array();
|
|
|
|
this.Type = InstructionTypes.Immediate16;
|
|
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 | CONTROL_PCC;
|
|
this.Microcode[4] = CONTROL_OUT_BH | CONTROL_RI;
|
|
}
|
|
}
|
|
is_STBH_i = new IS_STBH_imm16;
|
|
Instructions.push(is_STBH_i);
|
|
|
|
class IS_STCL_imm16 extends Microcode_Instruction {
|
|
constructor(props) {
|
|
super(props);
|
|
this.Bytecode = 0x106;
|
|
this.Mnemonic = "STCL";
|
|
this.LongName = "STORE Register C to LOW Byte";
|
|
this.Aliases = new Array();
|
|
|
|
this.Type = InstructionTypes.Immediate16;
|
|
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 | CONTROL_PCC;
|
|
this.Microcode[4] = CONTROL_OUT_CL | CONTROL_RI;
|
|
}
|
|
}
|
|
is_STCL_i = new IS_STCL_imm16;
|
|
Instructions.push(is_STCL_i);
|
|
|
|
class IS_STCH_imm16 extends Microcode_Instruction {
|
|
constructor(props) {
|
|
super(props);
|
|
this.Bytecode = 0x107;
|
|
this.Mnemonic = "STCH";
|
|
this.LongName = "STORE Register C to HIGH Byte";
|
|
this.Aliases = new Array();
|
|
|
|
this.Type = InstructionTypes.Immediate16;
|
|
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 | CONTROL_PCC;
|
|
this.Microcode[4] = CONTROL_OUT_CH | CONTROL_RI;
|
|
}
|
|
}
|
|
is_STCH_i = new IS_STCH_imm16;
|
|
Instructions.push(is_STCH_i);
|
|
|
|
class IS_STDL_imm16 extends Microcode_Instruction {
|
|
constructor(props) {
|
|
super(props);
|
|
this.Bytecode = 0x108;
|
|
this.Mnemonic = "STDL";
|
|
this.LongName = "STORE Register D to LOW Byte";
|
|
this.Aliases = new Array();
|
|
|
|
this.Type = InstructionTypes.Immediate16;
|
|
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 | CONTROL_PCC;
|
|
this.Microcode[4] = CONTROL_OUT_DL | CONTROL_RI;
|
|
}
|
|
}
|
|
is_STDL_i = new IS_STDL_imm16;
|
|
Instructions.push(is_STDL_i);
|
|
|
|
class IS_STDH_imm16 extends Microcode_Instruction {
|
|
constructor(props) {
|
|
super(props);
|
|
this.Bytecode = 0x109;
|
|
this.Mnemonic = "STDH";
|
|
this.LongName = "STORE Register D to HIGH Byte";
|
|
this.Aliases = new Array();
|
|
|
|
this.Type = InstructionTypes.Immediate16;
|
|
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 | CONTROL_PCC;
|
|
this.Microcode[4] = CONTROL_OUT_DH | CONTROL_RI;
|
|
}
|
|
}
|
|
is_STDH_i = new IS_STDH_imm16;
|
|
Instructions.push(is_STDH_i);
|
|
|
|
class IS_STAB_imm16 extends Microcode_Instruction {
|
|
constructor(props) {
|
|
super(props);
|
|
this.Bytecode = 0x10A;
|
|
this.Mnemonic = "STAB";
|
|
this.LongName = "STORE Register A and B";
|
|
this.Aliases = new Array();
|
|
|
|
this.Type = InstructionTypes.Immediate16;
|
|
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 | CONTROL_PCC;
|
|
this.Microcode[4] = CONTROL_OUT_AB | CONTROL_RI;
|
|
}
|
|
}
|
|
is_STAB_i = new IS_STAB_imm16;
|
|
Instructions.push(is_STAB_i);
|
|
|
|
class IS_STAB_sp extends Microcode_Instruction {
|
|
constructor(props) {
|
|
super(props);
|
|
this.Bytecode = 0x156;
|
|
this.Mnemonic = "STAB";
|
|
this.LongName = "STORE 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 = 6;
|
|
this.Microcode[2] = CONTROL_SPC;
|
|
this.Microcode[3] = CONTROL_OUT_SP | CONTROL_RRI;
|
|
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RRI | CONTROL_SPD | CONTROL_SPC;
|
|
this.Microcode[5] = CONTROL_OUT_AB | CONTROL_RI;
|
|
}
|
|
}
|
|
is_STAB_sp = new IS_STAB_sp;
|
|
Instructions.push(is_STAB_sp);
|
|
|
|
class IS_PSTAL_sp_ind extends Microcode_Instruction {
|
|
constructor(props) {
|
|
super(props);
|
|
this.Bytecode = 0x198;
|
|
this.Mnemonic = "PSTAL";
|
|
this.LongName = "Page STORE Register A to LOW Byte";
|
|
this.Aliases = new Array();
|
|
|
|
this.Type = InstructionTypes.RegisterIndirect;
|
|
this.Operands = new Array({Operand: "[SP]", Bitwidth: 16});
|
|
this.Words = 1;
|
|
this.Cycles = 6;
|
|
this.Microcode[2] = CONTROL_SPC;
|
|
this.Microcode[3] = CONTROL_OUT_SP | CONTROL_RRI;
|
|
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RRI | CONTROL_SPD | CONTROL_SPC;
|
|
this.Microcode[5] = CONTROL_OUT_AL | CONTROL_RI;
|
|
}
|
|
}
|
|
is_PSTAL_spin = new IS_PSTAL_sp_ind;
|
|
Instructions.push(is_PSTAL_spin);
|
|
|
|
class IS_PSTAL_imm16 extends Microcode_Instruction {
|
|
constructor(props) {
|
|
super(props);
|
|
this.Bytecode = 0x102;
|
|
this.Mnemonic = "PSTAL";
|
|
this.LongName = "Page STORE Register A to LOW Byte";
|
|
this.Aliases = new Array();
|
|
|
|
this.Type = InstructionTypes.Immediate16;
|
|
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 | CONTROL_PCC;
|
|
this.Microcode[4] = CONTROL_OUT_AL | CONTROL_RI;
|
|
}
|
|
}
|
|
is_PSTAL_i = new IS_PSTAL_imm16;
|
|
Instructions.push(is_PSTAL_i);
|
|
|
|
class IS_STAL_sp_ind24 extends Microcode_Instruction {
|
|
constructor(props) {
|
|
super(props);
|
|
this.Bytecode = 0x1D8;
|
|
this.Mnemonic = "STAL";
|
|
this.LongName = "STORE Register A to LOW Byte";
|
|
this.Aliases = new Array();
|
|
|
|
this.Type = InstructionTypes.RegisterIndirect;
|
|
this.Operands = new Array({Operand: "[SP]", Bitwidth: 24});
|
|
this.Words = 1;
|
|
this.Cycles = 12;
|
|
this.Microcode[2] = CONTROL_OUT_SP | CONTROL_RRI;
|
|
this.Microcode[3] = CONTROL_OUT_HO | CONTROL_RI | CONTROL_SPC;
|
|
this.Microcode[4] = CONTROL_SPC;
|
|
this.Microcode[5] = CONTROL_OUT_SP | CONTROL_RRI;
|
|
this.Microcode[6] = CONTROL_OUT_RO | CONTROL_RHI | CONTROL_SPD | CONTROL_SPC;
|
|
this.Microcode[7] = CONTROL_OUT_SP | CONTROL_RRI;
|
|
this.Microcode[8] = CONTROL_OUT_RO | CONTROL_RRI | CONTROL_SPD | CONTROL_SPC;
|
|
this.Microcode[9] = CONTROL_OUT_AL | CONTROL_RI;
|
|
this.Microcode[10] = CONTROL_OUT_SP | CONTROL_RRI;
|
|
this.Microcode[11] = CONTROL_OUT_RO | CONTROL_RHI;
|
|
//this.Microcode[12] = 0;
|
|
}
|
|
}
|
|
is_STAL_spin = new IS_STAL_sp_ind24;
|
|
Instructions.push(is_STAL_spin);
|