8SA1Sim/js/isa/stx.js

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);