Example #1
0
        public override void iot(UInt32 inst)
        {
            UInt32 y;

            y = inst & 0x1ff;
            if (y == 0x26)                                                                                    // swc
            {
                wordCounter     = cpu.Io & 0xffff;
                deviceRegister  = (inst >> 9) & 0x7;
                connectedDevice = devices[deviceRegister & 3];
                if (cpu.Debug)
                {
                    cpu.DebugLog += "swc        Set word control: " + Form1.convert((UInt32)wordCounter, 8);
                }
            }
            if (y == 0xe6)                                                                                   // sia
            {
                initialRegister = cpu.Io & 0xffff;
                if (cpu.Debug)
                {
                    cpu.DebugLog += "sia        Set initial address: " + Form1.convert((UInt32)initialRegister, 8);
                }
            }
            if (y == 0x66)                                                                                   // sdf
            {
                deviceRegister = 0;
                if (cpu.Debug)
                {
                    cpu.DebugLog += "sdf        Stop data flow";
                }
            }
        }
Example #2
0
 public HighSpeedControl(Cpu c) : base(c)
 {
     irq         = 1;
     wordCounter = 0;
     devices     = new IoDevice[3];
     for (var i = 0; i < 3; i++)
     {
         devices[i] = null;
     }
     connectedDevice = null;
 }