Added most PLx instructions
This commit is contained in:
parent
af38b37429
commit
77056cfc49
@ -99,6 +99,7 @@ const CONTROL_OUT_I2 = CONTROL_OEME | CONTROL_OEM4 | CONTROL_OEM3;
|
||||
const CONTROL_OUT_2O = CONTROL_OEME | CONTROL_OEM4 | CONTROL_OEM3 | CONTROL_OEM0;
|
||||
const CONTROL_OUT_HO = CONTROL_OEME | CONTROL_OEM4 | CONTROL_OEM3 | CONTROL_OEM1;
|
||||
const CONTROL_OUT_HS = CONTROL_OEME | CONTROL_OEM4 | CONTROL_OEM3 | CONTROL_OEM1 | CONTROL_OEM0;
|
||||
const CONTROL_OUT_SS = CONTROL_OEME | CONTROL_OEM4 | CONTROL_OEM3 | CONTROL_OEM2;
|
||||
const CONTROL_OUT_AE = CONTROL_AE;
|
||||
const CONTROL_OUT_AO = CONTROL_OEME | CONTROL_OEM4 | CONTROL_OEM3 | CONTROL_OEM2 | CONTROL_OEM0;
|
||||
const CONTROL_OUT_SR = CONTROL_OEME | CONTROL_OEM4 | CONTROL_OEM3 | CONTROL_OEM2 | CONTROL_OEM1;
|
||||
|
@ -21,11 +21,16 @@ for (let a = 0; a < Instructions.length; a++) {
|
||||
}
|
||||
|
||||
let totalVarients = 0;
|
||||
let avgCycles = 0;
|
||||
for (let a = 0; a < ISAPrepList.length; a++) {
|
||||
totalVarients += ISAPrepList[a].Varients.length;
|
||||
for (let b=0; b < ISAPrepList[a].Varients.length; b++) {
|
||||
avgCycles += ISAPrepList[a].Varients[b].Cycles;
|
||||
}
|
||||
}
|
||||
avgCycles = avgCycles / totalVarients;
|
||||
|
||||
let outHTML = `<div>Total Mnemonics : ${ISAPrepList.length}<br />Total Instructions: ${totalVarients}</div>`;
|
||||
let outHTML = `<div>Total Mnemonics : ${ISAPrepList.length}<br />Total Instructions: ${totalVarients}<br />Average Cycles per: ${Math.floor(avgCycles)}</div>`;
|
||||
ISAPrepList.sort((a, b) => (a.Bytecode > b.Bytecode) ? -1 : 1);
|
||||
for (let a = 0; a < ISAPrepList.length; a++) {
|
||||
outHTML += `<div style="width: 60%; background-color: #eee;">`;
|
||||
|
443
js/isa/plx.js
443
js/isa/plx.js
@ -98,6 +98,146 @@ class IS_PLAB extends Microcode_Instruction {
|
||||
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);
|
||||
@ -117,3 +257,306 @@ class IS_PLCD extends Microcode_Instruction {
|
||||
}
|
||||
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);
|
||||
|
Loading…
Reference in New Issue
Block a user