예제 #1
0
 /// <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;
 }
예제 #2
0
 private static void NOP(CPU cpu) //No Operation
 {
     //Increment IR
     cpu.InstructionCounter.Increment(1);
 }
예제 #3
0
        /// <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);
        }
예제 #4
0
 /// <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;
 }
예제 #5
0
 public void Execute(CPU cpu)
 {
     _executeMethod.Invoke(cpu);
 }