Exemplo n.º 1
0
 public void SetMaster(PIC8259 pic, byte irq)
 {
     if (master != null)
     {
         master.slave[cascadeId] = null;
     }
     master    = pic;
     masterIrq = irq;
     if (master != null)
     {
         master.slave[cascadeId] = this;
     }
 }
Exemplo n.º 2
0
        public Machine(Form uiForm)
        {
            picDevice     = new PIC8259();
            vgaDevice     = new VGA();
            FloppyDrive   = new Floppy();
            dmaController = new DMAController();
            keyboard      = new KeyboardDevice();
            ataDevice     = new ATA();

            if (SystemConfig.Machine.Floppies.Count > 0)
            {
                FloppyDrive.MountImage(SystemConfig.Machine.Floppies[0].Image);
            }

            switch (Settings.Default.graphics.ToUpper())
            {
                //case "XNA":
                //    throw new Exception("XNA not supported OwO");
                //    //gui = new XNAUI(uiForm, vgaDevice);
                //    break;
                //case "SDL":
                //    gui = new SDLUI(uiForm, vgaDevice);
                //    break;
            }

            gui = new SHARPDX(uiForm, vgaDevice); // SharpDX it is
            //gui = new ASCII(uiForm, vgaDevice); // ASCII test

            Application.Idle += new System.EventHandler(ApplicationIdle);

            gui.KeyDown += new EventHandler <UIntEventArgs>(GUIKeyDown);
            gui.KeyUp   += new EventHandler <UIntEventArgs>(GUIKeyUp);

            gui.Init();

            devices = new IDevice[]
            {
                FloppyDrive, new CMOS(ataDevice), new Misc(), new PIT8253(), picDevice, keyboard, dmaController, vgaDevice, ataDevice
            };

            CPU = new CPU.CPU();

            picDevice.Interrupt += PicDeviceInterrupt;

            SetupSystem();

            CPU.IORead  += CPUIORead;
            CPU.IOWrite += CPUIOWrite;
        }
Exemplo n.º 3
0
        public Machine(Form uiForm)
        {
            picDevice = new PIC8259();
            vgaDevice = new VGA();
            FloppyDrive = new Floppy();
            dmaController = new DMAController();
            keyboard = new KeyboardDevice();
            ataDevice = new ATA();

            if(SystemConfig.Machine.Floppies.Count > 0)
            {
                FloppyDrive.MountImage(SystemConfig.Machine.Floppies[0].Image);
            }

            switch (Settings.Default.graphics.ToUpper())
            {
                case "XNA":
                    gui = new XNAUI(uiForm, vgaDevice);
                    break;
                case "SDL":
                    gui = new SDLUI(uiForm, vgaDevice);
                    break;
            }

            Application.Idle += new System.EventHandler(ApplicationIdle);

            gui.KeyDown += new EventHandler<UIntEventArgs>(GUIKeyDown);
            gui.KeyUp += new EventHandler<UIntEventArgs>(GUIKeyUp);

            gui.Init();

            devices = new IDevice[]
                          {
                              FloppyDrive, new CMOS(ataDevice), new Misc(), new PIT8253(), picDevice, keyboard, dmaController, vgaDevice, ataDevice
                          };

            CPU = new CPU.CPU();

            picDevice.Interrupt += PicDeviceInterrupt;

            SetupSystem();

            CPU.IORead += CPUIORead;
            CPU.IOWrite += CPUIOWrite;
        }
Exemplo n.º 4
0
        public PIC8259(X8086 cpu, PIC8259 master = null)
        {
            if (ReferenceEquals(master, null))
            {
                for (int i = 0x20; i <= 0x2F; i++)
                {
                    ValidPortAddress.Add((uint)i);
                }

                //cascadeId = 0
                //slave(cascadeId) = New PIC8259(cpu, Me)
                //slave(cascadeId).SetMaster(Me, 2)
            }
            else
            {
                for (int i = 0x30; i <= 0x3F; i++)
                {
                    ValidPortAddress.Add((uint)i);
                }
            }

            state = States.ICW1;
        }
Exemplo n.º 5
0
 public IRQLine(PIC8259 pic, byte irq)
 {
     mPic = pic;
     mIrq = irq;
 }