Esempio n. 1
0
        public void Reset()
        {
            _interrupts = new ConcurrentQueue<byte>();
            _bus = new i8086BusInterfaceUnit();
            _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 i8086ExecutionUnit(_bus);

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

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

            // 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
        }
Esempio n. 2
0
 public void Boot(byte[] program)
 {
     // For now we will hard code the BIOS to start at a particular code segment.
     _bus = new i8086BusInterfaceUnit(0x0000, 0x0100, program);
     _eu = new i8086ExecutionUnit(_bus);
 }