563 lines
19 KiB
JavaScript
563 lines
19 KiB
JavaScript
class IS_PLA extends Microcode_Instruction {
|
|
constructor(props) {
|
|
super(props);
|
|
this.Bytecode = 0x2A0;
|
|
this.Mnemonic = "PLA";
|
|
this.LongName = "PULL Stack and place in Register A (Low BYTE)";
|
|
this.Aliases = new Array();
|
|
|
|
this.Type = InstructionTypes.Register;
|
|
this.Operands = new Array();
|
|
this.Words = 1;
|
|
this.Cycles = 5;
|
|
this.Microcode[2] = CONTROL_SPC;
|
|
this.Microcode[3] = CONTROL_OUT_SP | CONTROL_RRI;
|
|
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RAIL;
|
|
}
|
|
}
|
|
is_PLA = new IS_PLA;
|
|
Instructions.push(is_PLA);
|
|
|
|
class IS_PLB extends Microcode_Instruction {
|
|
constructor(props) {
|
|
super(props);
|
|
this.Bytecode = 0x2A1;
|
|
this.Mnemonic = "PLB";
|
|
this.LongName = "PULL Stack and place in Register B (Low BYTE)";
|
|
this.Aliases = new Array();
|
|
|
|
this.Type = InstructionTypes.Register;
|
|
this.Words = 1;
|
|
this.Cycles = 5;
|
|
this.Operands = new Array();
|
|
this.Microcode[2] = CONTROL_SPC;
|
|
this.Microcode[3] = CONTROL_OUT_SP | CONTROL_RRI;
|
|
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RBIL;
|
|
}
|
|
}
|
|
is_PLB = new IS_PLB;
|
|
Instructions.push(is_PLB);
|
|
|
|
class IS_PLC extends Microcode_Instruction {
|
|
constructor(props) {
|
|
super(props);
|
|
this.Bytecode = 0x2A2;
|
|
this.Mnemonic = "PLC";
|
|
this.LongName = "PULL Stack and place in Register C (Low BYTE)";
|
|
this.Aliases = new Array();
|
|
|
|
this.Type = InstructionTypes.Register;
|
|
this.Operands = new Array();
|
|
this.Words = 1;
|
|
this.Cycles = 5;
|
|
this.Microcode[2] = CONTROL_SPC;
|
|
this.Microcode[3] = CONTROL_OUT_SP | CONTROL_RRI;
|
|
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RCIL;
|
|
}
|
|
}
|
|
is_PLC = new IS_PLC;
|
|
Instructions.push(is_PLC);
|
|
|
|
class IS_PLD extends Microcode_Instruction {
|
|
constructor(props) {
|
|
super(props);
|
|
this.Bytecode = 0x2A3;
|
|
this.Mnemonic = "PLD";
|
|
this.LongName = "PULL Stack and place in Register D (Low BYTE)";
|
|
this.Aliases = new Array();
|
|
|
|
this.Type = InstructionTypes.Register;
|
|
this.Operands = new Array();
|
|
this.Words = 1;
|
|
this.Cycles = 5;
|
|
this.Microcode[2] = CONTROL_SPC;
|
|
this.Microcode[3] = CONTROL_OUT_SP | CONTROL_RRI;
|
|
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RDIL;
|
|
}
|
|
}
|
|
is_PLD = new IS_PLD;
|
|
Instructions.push(is_PLD);
|
|
|
|
class IS_PLAB extends Microcode_Instruction {
|
|
constructor(props) {
|
|
super(props);
|
|
this.Bytecode = 0x2A4;
|
|
this.Mnemonic = "PLAB";
|
|
this.LongName = "PULL Stack and place in Register A and B";
|
|
this.Aliases = new Array();
|
|
|
|
this.Type = InstructionTypes.Register;
|
|
this.Operands = new Array();
|
|
this.Words = 1;
|
|
this.Cycles = 5;
|
|
this.Microcode[2] = CONTROL_SPC;
|
|
this.Microcode[3] = CONTROL_OUT_SP | CONTROL_RRI;
|
|
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RAIL | CONTROL_RBIH;
|
|
}
|
|
}
|
|
is_PLAB = new IS_PLAB;
|
|
Instructions.push(is_PLAB);
|
|
|
|
class IS_PLAC extends Microcode_Instruction {
|
|
constructor(props) {
|
|
super(props);
|
|
this.Bytecode = 0x2A5;
|
|
this.Mnemonic = "PLAC";
|
|
this.LongName = "PULL Stack and place in Register A and C";
|
|
this.Aliases = new Array();
|
|
|
|
this.Type = InstructionTypes.Register;
|
|
this.Operands = new Array();
|
|
this.Words = 1;
|
|
this.Cycles = 5;
|
|
this.Microcode[2] = CONTROL_SPC;
|
|
this.Microcode[3] = CONTROL_OUT_SP | CONTROL_RRI;
|
|
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RAIL | CONTROL_RCIH;
|
|
}
|
|
}
|
|
is_PLAC = new IS_PLAC;
|
|
Instructions.push(is_PLAC);
|
|
|
|
class IS_PLAD extends Microcode_Instruction {
|
|
constructor(props) {
|
|
super(props);
|
|
this.Bytecode = 0x2A6;
|
|
this.Mnemonic = "PLAD";
|
|
this.LongName = "PULL Stack and place in Register A and D";
|
|
this.Aliases = new Array();
|
|
|
|
this.Type = InstructionTypes.Register;
|
|
this.Operands = new Array();
|
|
this.Words = 1;
|
|
this.Cycles = 5;
|
|
this.Microcode[2] = CONTROL_SPC;
|
|
this.Microcode[3] = CONTROL_OUT_SP | CONTROL_RRI;
|
|
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RAIL | CONTROL_RDIH;
|
|
}
|
|
}
|
|
is_PLAD = new IS_PLAD;
|
|
Instructions.push(is_PLAD);
|
|
|
|
class IS_PLBA extends Microcode_Instruction {
|
|
constructor(props) {
|
|
super(props);
|
|
this.Bytecode = 0x2A7;
|
|
this.Mnemonic = "PLBA";
|
|
this.LongName = "PULL Stack and place in Register B and A";
|
|
this.Aliases = new Array();
|
|
|
|
this.Type = InstructionTypes.Register;
|
|
this.Operands = new Array();
|
|
this.Words = 1;
|
|
this.Cycles = 5;
|
|
this.Microcode[2] = CONTROL_SPC;
|
|
this.Microcode[3] = CONTROL_OUT_SP | CONTROL_RRI;
|
|
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RBIL | CONTROL_RAIH;
|
|
}
|
|
}
|
|
is_PLBA = new IS_PLBA;
|
|
Instructions.push(is_PLBA);
|
|
|
|
class IS_PLBC extends Microcode_Instruction {
|
|
constructor(props) {
|
|
super(props);
|
|
this.Bytecode = 0x2A8;
|
|
this.Mnemonic = "PLBC";
|
|
this.LongName = "PULL Stack and place in Register B and C";
|
|
this.Aliases = new Array();
|
|
|
|
this.Type = InstructionTypes.Register;
|
|
this.Operands = new Array();
|
|
this.Words = 1;
|
|
this.Cycles = 5;
|
|
this.Microcode[2] = CONTROL_SPC;
|
|
this.Microcode[3] = CONTROL_OUT_SP | CONTROL_RRI;
|
|
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RBIL | CONTROL_RCIH;
|
|
}
|
|
}
|
|
is_PLBC = new IS_PLBC;
|
|
Instructions.push(is_PLBC);
|
|
|
|
class IS_PLBD extends Microcode_Instruction {
|
|
constructor(props) {
|
|
super(props);
|
|
this.Bytecode = 0x2A9;
|
|
this.Mnemonic = "PLBD";
|
|
this.LongName = "PULL Stack and place in Register B and D";
|
|
this.Aliases = new Array();
|
|
|
|
this.Type = InstructionTypes.Register;
|
|
this.Operands = new Array();
|
|
this.Words = 1;
|
|
this.Cycles = 5;
|
|
this.Microcode[2] = CONTROL_SPC;
|
|
this.Microcode[3] = CONTROL_OUT_SP | CONTROL_RRI;
|
|
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RBIL | CONTROL_RDIH;
|
|
}
|
|
}
|
|
is_PLBD = new IS_PLBD;
|
|
Instructions.push(is_PLBD);
|
|
|
|
class IS_PLCA extends Microcode_Instruction {
|
|
constructor(props) {
|
|
super(props);
|
|
this.Bytecode = 0x2AA;
|
|
this.Mnemonic = "PLCA";
|
|
this.LongName = "PULL Stack and place in Register C and A";
|
|
this.Aliases = new Array();
|
|
|
|
this.Type = InstructionTypes.Register;
|
|
this.Operands = new Array();
|
|
this.Words = 1;
|
|
this.Cycles = 5;
|
|
this.Microcode[2] = CONTROL_SPC;
|
|
this.Microcode[3] = CONTROL_OUT_SP | CONTROL_RRI;
|
|
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RCIL | CONTROL_RAIH;
|
|
}
|
|
}
|
|
is_PLCA = new IS_PLCA;
|
|
Instructions.push(is_PLCA);
|
|
|
|
class IS_PLCB extends Microcode_Instruction {
|
|
constructor(props) {
|
|
super(props);
|
|
this.Bytecode = 0x2AB;
|
|
this.Mnemonic = "PLCB";
|
|
this.LongName = "PULL Stack and place in Register C and B";
|
|
this.Aliases = new Array();
|
|
|
|
this.Type = InstructionTypes.Register;
|
|
this.Operands = new Array();
|
|
this.Words = 1;
|
|
this.Cycles = 5;
|
|
this.Microcode[2] = CONTROL_SPC;
|
|
this.Microcode[3] = CONTROL_OUT_SP | CONTROL_RRI;
|
|
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RCIL | CONTROL_RBIH;
|
|
}
|
|
}
|
|
is_PLCB = new IS_PLCB;
|
|
Instructions.push(is_PLCB);
|
|
|
|
class IS_PLCD extends Microcode_Instruction {
|
|
constructor(props) {
|
|
super(props);
|
|
this.Bytecode = 0x2AC;
|
|
this.Mnemonic = "PLCD";
|
|
this.LongName = "PULL Stack and place in Register C and D";
|
|
this.Aliases = new Array();
|
|
|
|
this.Type = InstructionTypes.Register;
|
|
this.Operands = new Array();
|
|
this.Words = 1;
|
|
this.Cycles = 5;
|
|
this.Microcode[2] = CONTROL_SPC;
|
|
this.Microcode[3] = CONTROL_OUT_SP | CONTROL_RRI;
|
|
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RCIL | CONTROL_RDIH;
|
|
}
|
|
}
|
|
is_PLCD = new IS_PLCD;
|
|
Instructions.push(is_PLCD);
|
|
|
|
class IS_PLDA extends Microcode_Instruction {
|
|
constructor(props) {
|
|
super(props);
|
|
this.Bytecode = 0x2AD;
|
|
this.Mnemonic = "PLDA";
|
|
this.LongName = "PULL Stack and place in Register D and A";
|
|
this.Aliases = new Array();
|
|
|
|
this.Type = InstructionTypes.Register;
|
|
this.Operands = new Array();
|
|
this.Words = 1;
|
|
this.Cycles = 5;
|
|
this.Microcode[2] = CONTROL_SPC;
|
|
this.Microcode[3] = CONTROL_OUT_SP | CONTROL_RRI;
|
|
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RDIL | CONTROL_RAIH;
|
|
}
|
|
}
|
|
is_PLDA = new IS_PLDA;
|
|
Instructions.push(is_PLDA);
|
|
|
|
class IS_PLDB extends Microcode_Instruction {
|
|
constructor(props) {
|
|
super(props);
|
|
this.Bytecode = 0x2AE;
|
|
this.Mnemonic = "PLDB";
|
|
this.LongName = "PULL Stack and place in Register D and B";
|
|
this.Aliases = new Array();
|
|
|
|
this.Type = InstructionTypes.Register;
|
|
this.Operands = new Array();
|
|
this.Words = 1;
|
|
this.Cycles = 5;
|
|
this.Microcode[2] = CONTROL_SPC;
|
|
this.Microcode[3] = CONTROL_OUT_SP | CONTROL_RRI;
|
|
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RDIL | CONTROL_RBIH;
|
|
}
|
|
}
|
|
is_PLDB = new IS_PLDB;
|
|
Instructions.push(is_PLDB);
|
|
|
|
class IS_PLDC extends Microcode_Instruction {
|
|
constructor(props) {
|
|
super(props);
|
|
this.Bytecode = 0x2AF;
|
|
this.Mnemonic = "PLDC";
|
|
this.LongName = "PULL Stack and place in Register D and C";
|
|
this.Aliases = new Array();
|
|
|
|
this.Type = InstructionTypes.Register;
|
|
this.Operands = new Array();
|
|
this.Words = 1;
|
|
this.Cycles = 5;
|
|
this.Microcode[2] = CONTROL_SPC;
|
|
this.Microcode[3] = CONTROL_OUT_SP | CONTROL_RRI;
|
|
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RDIL | CONTROL_RCIH;
|
|
}
|
|
}
|
|
is_PLDC = new IS_PLDC;
|
|
Instructions.push(is_PLDC);
|
|
|
|
class IS_PLPC extends Microcode_Instruction {
|
|
constructor(props) {
|
|
super(props);
|
|
this.Bytecode = 0x2B0;
|
|
this.Mnemonic = "PLPC";
|
|
this.LongName = "PULL Stack and place in the Program Counter";
|
|
this.Aliases = new Array();
|
|
|
|
this.Type = InstructionTypes.Register;
|
|
this.Operands = new Array();
|
|
this.Words = 1;
|
|
this.Cycles = 5;
|
|
this.Microcode[2] = CONTROL_SPC;
|
|
this.Microcode[3] = CONTROL_OUT_SP | CONTROL_RRI;
|
|
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_PCI;
|
|
}
|
|
}
|
|
is_PLPC = new IS_PLPC;
|
|
Instructions.push(is_PLPC);
|
|
|
|
class IS_PLHR extends Microcode_Instruction {
|
|
constructor(props) {
|
|
super(props);
|
|
this.Bytecode = 0x2B1;
|
|
this.Mnemonic = "PLHR";
|
|
this.LongName = "PULL Stack and place in the High RAM Page";
|
|
this.Aliases = new Array();
|
|
|
|
this.Type = InstructionTypes.Register;
|
|
this.Operands = new Array();
|
|
this.Words = 1;
|
|
this.Cycles = 5;
|
|
this.Microcode[2] = CONTROL_SPC;
|
|
this.Microcode[3] = CONTROL_OUT_SP | CONTROL_RRI;
|
|
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RHI;
|
|
}
|
|
}
|
|
is_PLHR = new IS_PLHR;
|
|
Instructions.push(is_PLHR);
|
|
|
|
class IS_PLSP extends Microcode_Instruction {
|
|
constructor(props) {
|
|
super(props);
|
|
this.Bytecode = 0x2B2;
|
|
this.Mnemonic = "PLSP";
|
|
this.LongName = "PULL Stack and place in the Stack Pointer";
|
|
this.Aliases = new Array();
|
|
|
|
this.Type = InstructionTypes.Register;
|
|
this.Operands = new Array();
|
|
this.Words = 1;
|
|
this.Cycles = 5;
|
|
this.Microcode[2] = CONTROL_SPC;
|
|
this.Microcode[3] = CONTROL_OUT_SP | CONTROL_RRI;
|
|
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_SPI;
|
|
}
|
|
}
|
|
is_PLSP = new IS_PLSP;
|
|
Instructions.push(is_PLSP);
|
|
|
|
class IS_PLSR extends Microcode_Instruction {
|
|
constructor(props) {
|
|
super(props);
|
|
this.Bytecode = 0x2B3;
|
|
this.Mnemonic = "PLSR";
|
|
this.LongName = "PULL Stack and place in the Status Register";
|
|
this.Aliases = new Array();
|
|
|
|
this.Type = InstructionTypes.Register;
|
|
this.Operands = new Array();
|
|
this.Words = 1;
|
|
this.Cycles = 10;
|
|
|
|
this.Microcode[2] = CONTROL_OUT_SP | CONTROL_RRI;
|
|
this.Microcode[3] = CONTROL_OUT_AL | CONTROL_RI;
|
|
this.Microcode[4] = CONTROL_SPC;
|
|
this.Microcode[5] = CONTROL_OUT_SP | CONTROL_RRI;
|
|
this.Microcode[6] = CONTROL_OUT_RO | CONTROL_RAIL | CONTROL_SPD | CONTROL_SPC;
|
|
this.Microcode[7] = CONTROL_OUT_SS;
|
|
this.Microcode[8] = CONTROL_OUT_SP | CONTROL_RRI;
|
|
this.Microcode[9] = CONTROL_OUT_RO | CONTROL_RAIL | CONTROL_SPC;
|
|
}
|
|
}
|
|
is_PLSR = new IS_PLSR;
|
|
Instructions.push(is_PLSR);
|
|
|
|
class IS_PULL_abs16 extends Microcode_Instruction {
|
|
constructor(props) {
|
|
super(props);
|
|
this.Bytecode = 0x2B5;
|
|
this.Mnemonic = "PULL";
|
|
this.LongName = "PULL Stack and place in RAM";
|
|
this.Aliases = new Array();
|
|
|
|
this.Type = InstructionTypes.Absolute16;
|
|
this.Operands = new Array({Operand: "", Bitwidth: 16});
|
|
this.Words = 2;
|
|
this.Cycles = 8;
|
|
this.Microcode[2] = CONTROL_SPC;
|
|
this.Microcode[3] = CONTROL_OUT_SP | CONTROL_RRI;
|
|
this.Microcode[4] = CONTROL_OUT_I2;
|
|
this.Microcode[5] = CONTROL_OUT_PC | CONTROL_RRI;
|
|
this.Microcode[6] = CONTROL_OUT_RO | CONTROL_RRI | CONTROL_PCC;
|
|
this.Microcode[7] = CONTROL_OUT_2O | CONTROL_RI;
|
|
}
|
|
}
|
|
is_PULL_a = new IS_PULL_abs16;
|
|
Instructions.push(is_PULL_a);
|
|
|
|
class IS_PULL_abs24 extends Microcode_Instruction {
|
|
constructor(props) {
|
|
super(props);
|
|
this.Bytecode = 0x2B6;
|
|
this.Mnemonic = "PULL";
|
|
this.LongName = "PULL Stack and place in RAM";
|
|
this.Aliases = new Array();
|
|
|
|
this.Type = InstructionTypes.Absolute24;
|
|
this.Operands = new Array({Operand: "", Bitwidth: 24});
|
|
this.Words = 3;
|
|
this.Cycles = 14;
|
|
this.Microcode[2] = CONTROL_OUT_SP | CONTROL_RRI;
|
|
this.Microcode[3] = CONTROL_OUT_AB | CONTROL_RI | CONTROL_SPC;
|
|
this.Microcode[4] = CONTROL_OUT_SP | CONTROL_RRI;
|
|
this.Microcode[5] = CONTROL_OUT_RO | CONTROL_RAIL | CONTROL_RBIH;
|
|
this.Microcode[6] = CONTROL_OUT_PC | CONTROL_RRI;
|
|
this.Microcode[7] = CONTROL_OUT_I2 | CONTROL_PCC;
|
|
this.Microcode[8] = CONTROL_OUT_PC | CONTROL_RRI;
|
|
this.Microcode[9] = CONTROL_OUT_RO | CONTROL_RRI;
|
|
this.Microcode[10] = CONTROL_OUT_2O | CONTROL_RHI;
|
|
this.Microcode[11] = CONTROL_OUT_AB | CONTROL_RI | CONTROL_SPD | CONTROL_SPC;
|
|
this.Microcode[12] = CONTROL_OUT_SP | CONTROL_RRI;
|
|
this.Microcode[13] = CONTROL_OUT_RO | CONTROL_RAIL | CONTROL_RBIH | CONTROL_SPC;
|
|
}
|
|
}
|
|
is_PULL_a24 = new IS_PULL_abs24;
|
|
Instructions.push(is_PULL_a24);
|
|
|
|
class IS_PULL_ind16 extends Microcode_Instruction {
|
|
constructor(props) {
|
|
super(props);
|
|
this.Bytecode = 0x2B7;
|
|
this.Mnemonic = "PULL";
|
|
this.LongName = "PULL Stack and place in RAM";
|
|
this.Aliases = new Array();
|
|
|
|
this.Type = InstructionTypes.Indirect16;
|
|
this.Operands = new Array({Operand: "#", Bitwidth: 16});
|
|
this.Words = 2;
|
|
this.Cycles = 9;
|
|
this.Microcode[2] = CONTROL_SPC;
|
|
this.Microcode[3] = CONTROL_OUT_SP | CONTROL_RRI;
|
|
this.Microcode[4] = CONTROL_OUT_I2;
|
|
this.Microcode[5] = CONTROL_OUT_PC | CONTROL_RRI;
|
|
this.Microcode[6] = CONTROL_OUT_RO | CONTROL_RRI | CONTROL_PCC;
|
|
this.Microcode[7] = CONTROL_OUT_RO | CONTROL_RRI;
|
|
this.Microcode[8] = CONTROL_OUT_2O | CONTROL_RI;
|
|
}
|
|
}
|
|
is_PULL_in16 = new IS_PULL_ind16;
|
|
Instructions.push(is_PULL_in16);
|
|
|
|
class IS_PULL_ind24 extends Microcode_Instruction {
|
|
constructor(props) {
|
|
super(props);
|
|
this.Bytecode = 0x2B8;
|
|
this.Mnemonic = "PULL";
|
|
this.LongName = "PULL Stack and place in RAM";
|
|
this.Aliases = new Array();
|
|
|
|
this.Type = InstructionTypes.Indirect24;
|
|
this.Operands = new Array({Operand: "#", Bitwidth: 24});
|
|
this.Words = 3;
|
|
this.Cycles = 15;
|
|
this.Microcode[2] = CONTROL_OUT_SP | CONTROL_RRI;
|
|
this.Microcode[3] = CONTROL_OUT_AB | CONTROL_RI | CONTROL_SPC;
|
|
this.Microcode[4] = CONTROL_OUT_SP | CONTROL_RRI;
|
|
this.Microcode[5] = CONTROL_OUT_RO | CONTROL_RAIL | CONTROL_RBIH;
|
|
this.Microcode[6] = CONTROL_OUT_PC | CONTROL_RRI;
|
|
this.Microcode[7] = CONTROL_OUT_I2 | CONTROL_PCC;
|
|
this.Microcode[8] = CONTROL_OUT_PC | CONTROL_RRI;
|
|
this.Microcode[9] = CONTROL_OUT_RO | CONTROL_RRI;
|
|
this.Microcode[10] = CONTROL_OUT_2O | CONTROL_RHI;
|
|
this.Microcode[11] = CONTROL_OUT_RO | CONTROL_RRI;
|
|
this.Microcode[12] = CONTROL_OUT_AB | CONTROL_RI | CONTROL_SPD | CONTROL_SPC;
|
|
this.Microcode[13] = CONTROL_OUT_SP | CONTROL_RRI;
|
|
this.Microcode[14] = CONTROL_OUT_RO | CONTROL_RAIL | CONTROL_RBIH | CONTROL_SPC;
|
|
}
|
|
}
|
|
is_PULL_in24 = new IS_PULL_ind24;
|
|
Instructions.push(is_PULL_in24);
|
|
|
|
class IS_PLGP extends Microcode_Instruction {
|
|
constructor(props) {
|
|
super(props);
|
|
this.Bytecode = 0x2BE;
|
|
this.Mnemonic = "PLGP";
|
|
this.LongName = "PULL Stack and place in all General Purpose Registers";
|
|
this.Aliases = new Array();
|
|
|
|
this.Type = InstructionTypes.Register;
|
|
this.Operands = new Array();
|
|
this.Words = 1;
|
|
this.Cycles = 7;
|
|
this.Microcode[2] = CONTROL_SPC;
|
|
this.Microcode[3] = CONTROL_OUT_SP | CONTROL_RRI;
|
|
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RCIL | CONTROL_RDIH | CONTROL_SPC;
|
|
this.Microcode[5] = CONTROL_OUT_SP | CONTROL_RRI;
|
|
this.Microcode[6] = CONTROL_OUT_RO | CONTROL_RAIL | CONTROL_RBIH;
|
|
}
|
|
}
|
|
is_PLGP = new IS_PLGP;
|
|
Instructions.push(is_PLGP);
|
|
|
|
class IS_PLALL extends Microcode_Instruction {
|
|
constructor(props) {
|
|
super(props);
|
|
this.Bytecode = 0x2BF;
|
|
this.Mnemonic = "PLALL";
|
|
this.LongName = "PULL Stack and restore all Registers";
|
|
this.Aliases = new Array();
|
|
|
|
this.Type = InstructionTypes.Register;
|
|
this.Operands = new Array();
|
|
this.Words = 1;
|
|
this.Cycles = 14;
|
|
this.Microcode[2] = CONTROL_SPC;
|
|
this.Microcode[3] = CONTROL_OUT_SP | CONTROL_RRI;
|
|
this.Microcode[4] = CONTROL_OUT_RO | CONTROL_RHI | CONTROL_SPC;
|
|
this.Microcode[5] = CONTROL_OUT_SP | CONTROL_RRI;
|
|
this.Microcode[6] = CONTROL_OUT_RO | CONTROL_PCI | CONTROL_SPC;
|
|
this.Microcode[7] = CONTROL_OUT_SP | CONTROL_RRI;
|
|
this.Microcode[8] = CONTROL_OUT_RO | CONTROL_RAIL | CONTROL_SPC;
|
|
this.Microcode[9] = CONTROL_OUT_SS;
|
|
this.Microcode[10] = CONTROL_OUT_SP | CONTROL_RRI;
|
|
this.Microcode[11] = CONTROL_OUT_RO | CONTROL_RCIL | CONTROL_RDIH | CONTROL_SPC;
|
|
this.Microcode[12] = CONTROL_OUT_SP | CONTROL_RRI;
|
|
this.Microcode[13] = CONTROL_OUT_RO | CONTROL_RAIL | CONTROL_RBIH;
|
|
}
|
|
}
|
|
is_PLALL = new IS_PLALL;
|
|
Instructions.push(is_PLALL);
|