class IS_STI extends Microcode_Instruction { constructor(props) { super(props); this.Bytecode = 0x3E0; this.Mnemonic = "STI"; this.LongName = "Set Thread Interrupt (2nd word MUST BE 0x80)"; this.Aliases = new Array(); this.Type = InstructionTypes.SingleWord; this.Operands = new Array(); this.Words = 2; this.Cycles = 12; this.Microcode[2] = CONTROL_OUT_SP | CONTROL_RRI; this.Microcode[3] = CONTROL_OUT_AB | CONTROL_RI; this.Microcode[4] = CONTROL_OUT_PC | CONTROL_RRI; this.Microcode[5] = CONTROL_OUT_RO | CONTROL_RBIL | CONTROL_PCC; this.Microcode[6] = CONTROL_OUT_SR | CONTROL_RAIL; this.Microcode[7] = CONTROL_OUT_AB | CONTROL_ALU_OR; this.Microcode[8] = CONTROL_OUT_AO | CONTROL_RAIL; this.Microcode[9] = CONTROL_OUT_SS; this.Microcode[10] = CONTROL_OUT_SP | CONTROL_RRI; this.Microcode[11] = CONTROL_OUT_RO | CONTROL_RAIL | CONTROL_RBIH; } } is_STI = new IS_STI; Instructions.push(is_STI); class IS_CTI extends Microcode_Instruction { constructor(props) { super(props); this.Bytecode = 0x3E1; this.Mnemonic = "CTI"; this.LongName = "Clear Thread Interrupt (2nd word MUST BE 0x7F)"; this.Aliases = new Array(); this.Type = InstructionTypes.SingleWord; this.Operands = new Array(); this.Words = 2; this.Cycles = 12; this.Microcode[2] = CONTROL_OUT_SP | CONTROL_RRI; this.Microcode[3] = CONTROL_OUT_AB | CONTROL_RI; this.Microcode[4] = CONTROL_OUT_PC | CONTROL_RRI; this.Microcode[5] = CONTROL_OUT_RO | CONTROL_RBIL | CONTROL_PCC; this.Microcode[6] = CONTROL_OUT_SR | CONTROL_RAIL; this.Microcode[7] = CONTROL_OUT_AB | CONTROL_ALU_AND; this.Microcode[8] = CONTROL_OUT_AO | CONTROL_RAIL; this.Microcode[9] = CONTROL_OUT_SS; this.Microcode[10] = CONTROL_OUT_SP | CONTROL_RRI; this.Microcode[11] = CONTROL_OUT_RO | CONTROL_RAIL | CONTROL_RBIH; } } is_CTI = new IS_CTI; Instructions.push(is_CTI); class IS_NOPLONG extends Microcode_Instruction { constructor(props) { super(props); this.Bytecode = 0x3fd; this.Mnemonic = "NOPL"; this.LongName = "NO OPERATION LONG"; this.Aliases = new Array(); this.Type = InstructionTypes.SingleWord; this.Operands = new Array(); this.Words = 1; this.AddInstruction(0); this.AddInstruction(0); this.AddInstruction(0); this.AddInstruction(0); this.AddInstruction(0); this.AddInstruction(0); this.AddInstruction(0); this.AddInstruction(0); this.AddInstruction(0); this.AddInstruction(0); this.AddInstruction(0); this.AddInstruction(0); this.AddInstruction(0); this.AddInstruction(0); } } is_NOPL = new IS_NOPLONG; Instructions.push(is_NOPL); class IS_RTI extends Microcode_Instruction { constructor(props) { super(props); this.Bytecode = 0x3FE; this.Mnemonic = "RTI"; this.LongName = "Return from Thread Interrupt (internal instruction ONLY)"; this.Aliases = new Array(); this.Type = InstructionTypes.SingleWord; this.Operands = new Array(); this.Words = 1; this.Cycles = 8; this.Microcode[0] = CONTROL_OUT_SP | CONTROL_RRI; this.Microcode[1] = CONTROL_OUT_PC | CONTROL_RI | CONTROL_SPD | CONTROL_SPC; this.Microcode[2] = CONTROL_OUT_SP | CONTROL_RRI; this.Microcode[3] = CONTROL_OUT_HO | CONTROL_RI | CONTROL_SPD | CONTROL_SPC; this.Microcode[4] = CONTROL_OUT_TI | CONTROL_PCI; this.Microcode[5] = CONTROL_RHI; this.Microcode[6] = CONTROL_OUT_PC | CONTROL_RRI; this.Microcode[7] = CONTROL_OUT_RO | CONTROL_IRI | CONTROL_PCC; } } is_RTI = new IS_RTI; Instructions.push(is_RTI); class IS_NOP extends Microcode_Instruction { constructor(props) { super(props); this.Bytecode = 0x3ff; this.Mnemonic = "NOP"; this.LongName = "NO OPERATION"; this.Aliases = new Array(); this.Type = InstructionTypes.SingleWord; this.Operands = new Array(); this.Words = 1; this.Cycles = 2; } } is_NOP = new IS_NOP; Instructions.push(is_NOP); class IS_NOP0 extends Microcode_Instruction { constructor(props) { super(props); this.Bytecode = 0x0; this.Mnemonic = "NOP"; this.LongName = "NO OPERATION"; this.Aliases = new Array(); this.Type = InstructionTypes.SingleWord; this.Operands = new Array(); this.Words = 1; this.Cycles = 2; } } is_NOP0 = new IS_NOP0; Instructions.push(is_NOP0);