/// <summary> /// Trap Transfer /// 2 TTR Y +0021 /// This instruction causes the calculator to take its next instruction from location Y and to /// proceed from there whether in the trapping mode or not. This makes it possible to have an /// ordinary transfer even when in the trapping mode. /// </summary> /// <param name="cpu"></param> private static void TTR(CPU cpu) { cpu.InstructionCounter.Value = cpu.IndexedAddress; }
private static void NOP(CPU cpu) //No Operation { //Increment IR cpu.InstructionCounter.Increment(1); }
/// <summary> /// Leave Trapping Mode 2 LTM —0760... 007 /// /// This instruction turns off the trapping indicator and the trap light on the operator's console. /// The calculator will not operate in the trapping mode until another enter trapping mode operation is executed. /// NOTE: When the calculator is operating in the trapping mode, the location of every transfer /// instruc¬tion (except trap transfer instructions) replaces the address part of location 0000, /// whether or not the conditions for transfer of control are met. If the condition is met, the /// calculator takes the next in¬struction from location 0001 and proceeds from that point. The /// location of each transfer instruction re¬places the address part of location 0000. /// </summary> /// <param name="cpu"></param> private static void LTM(CPU cpu) { cpu.TrappingModeIndicator = false; cpu.InstructionCounter.Increment(1); }
/// <summary> /// Halt and Transfer 2 HTR Y +0000 /// This instruction stops the calculator. When the start key on the operator's console is depressed, /// the calculator starts again, taking the next instruction from location Y and proceeding from there. /// When the calculator stops, the effective address of the HTR instruction is placed in the instruction /// loca¬tion counter before executing any instruction. If TSX is manually executed, the 2's complement /// of this effective address is placed in the specified index reg¬ister, and the transfer is executed. /// </summary> /// <param name="cpu"></param> private static void HTR(CPU cpu) { cpu.Running = false; cpu.InstructionCounter.Value = cpu.IndexedAddress; }
public void Execute(CPU cpu) { _executeMethod.Invoke(cpu); }