Пример #1
0
        public void Reset()
        {
            interruptQueue = new ConcurrentQueue <byte>();
            Bus            = new BusInterface();
            //Bus.LoadBIOS(File.ReadAllBytes("Chipset\\pcxtbios.bin"));
            //_bus.LoadROM(File.ReadAllBytes("Chipset\\ide_xt.bin"), 0xd0000);
            //_bus.LoadROM(File.ReadAllBytes("Chipset\\rombasic.bin"), 0xf6000);
            //_bus.LoadROM(File.ReadAllBytes("Chipset\\videorom.bin"), 0xc0000);

            EU = new ExecutionUnit(Bus);

            // 0x00 - 0x0f: DMA Chip 8237A-5

            // 0x20 - 0x21: Interrupt 8259A
            InitPIC();

            // 0x40 - 0x43: Timer 8253
//            Init8253();

            // 0x60 - 0x63: PPI 8255 (speaker)


            // 0x80 - 0x83: DMA page registers
            // 0xa0 - 0xaf: NMI Mask Register

            // 0x200 - 0x20f: Game Control
            // 0x210 - 0x207: Expansion Unit

            // 0x220 - 0x24f: Reserved

            // 0x3bc: IBM Monochrome Display & Printer Adapter
            // 0x378: Printer Adapter
        }
Пример #2
0
 public void Boot(ushort startupCS, ushort startupIP, byte[] program)
 {
     // For now we will hard code the BIOS to start at a particular code segment.
     Bus = new BusInterface(startupCS, startupIP, program);
     EU  = new ExecutionUnit(Bus);
 }
Пример #3
0
 public void Boot(byte[] program)
 {
     // For now we will hard code the BIOS to start at a particular code segment.
     Bus = new BusInterface(0x0000, 0x0100, program);
     EU  = new ExecutionUnit(Bus);
 }