예제 #1
0
        public override void BusInit(IBusManager bmgr)
        {
            m_cpu    = bmgr.CPU;
            m_ulaAtm = bmgr.FindDevice <UlaAtm450>();

            bmgr.Events.SubscribeRdIo(0x0001, 0x0000, BusReadPortFE);          // bit Z emulation
            bmgr.Events.SubscribeWrIo(0x0001, 0x0000, BusWritePortFE);
            bmgr.Events.SubscribeRdIo(0x0004, 0x00FB & 0x0004, BusReadPortFB); // CPSYS [(addr & 0x7F)==0x7B]
            bmgr.Events.SubscribeWrIo(0x8202, 0x7FFD & 0x8202, BusWritePort7FFD);
            bmgr.Events.SubscribeWrIo(0x8202, 0xFDFD & 0x8202, BusWritePortFDFD);
            bmgr.Events.SubscribeWrIo(0x8202, 0x7DFD & 0x8202, BusWritePort7DFD); // atm_writepal(val);
            bmgr.Events.SubscribeRdMemM1(0xFF00, 0x3D00, BusReadMem3D00_M1);
            bmgr.Events.SubscribeRdMemM1(0xC000, 0x4000, BusReadMemRamM1);
            bmgr.Events.SubscribeRdMemM1(0xC000, 0x8000, BusReadMemRamM1);
            bmgr.Events.SubscribeRdMemM1(0xC000, 0xC000, BusReadMemRamM1);

            //bmgr.Events.SubscribeRdIo(0x0005, 0x00FE & 0x0005, BusReadPortFE);      // bit Z emulation
            //bmgr.Events.SubscribeWrIo(0x0005, 0x00FE & 0x0005, BusWritePortFE);
            //bmgr.Events.SubscribeRdIo(0x0005, 0x00FB & 0x0005, BusReadPortFB);   // CPSYS [(addr & 0x7F)==0x7B]
            //bmgr.Events.SubscribeWrIo(0x8202, 0x7FFD & 0x8202, BusWritePort7FFD);
            //bmgr.Events.SubscribeWrIo(0x8202, 0xFDFD & 0x8202, BusWritePortFDFD);
            //bmgr.Events.SubscribeWrIo(0x8202, 0x7DFD & 0x8202, BusWritePort7DFD); // atm_writepal(val);
            //bmgr.Events.SubscribeRdMemM1(0xFF00, 0x3D00, BusReadMem3D00_M1);
            //bmgr.Events.SubscribeRdMemM1(0xC000, 0x4000, BusReadMemRamM1);
            //bmgr.Events.SubscribeRdMemM1(0xC000, 0x8000, BusReadMemRamM1);
            //bmgr.Events.SubscribeRdMemM1(0xC000, 0xC000, BusReadMemRamM1);

            bmgr.Events.SubscribeReset(BusReset);

            // Subscribe before MemoryBase.BusInit
            // to handle memory switches before read
            base.BusInit(bmgr);
        }
예제 #2
0
        public override void BusInit(IBusManager bmgr)
        {
            m_cpu    = bmgr.CPU;
            m_ulaAtm = bmgr.FindDevice <UlaAtm450>();

            OnSubscribeIo(bmgr);

            bmgr.Events.SubscribeRdMemM1(0x0000, 0x0000, BusReadM1);
            bmgr.Events.SubscribeReset(BusReset);

            // Subscribe before MemoryBase.BusInit
            // to handle memory switches before read
            base.BusInit(bmgr);
        }
예제 #3
0
        public override void BusInit(IBusManager bmgr)
        {
            base.BusInit(bmgr);

            m_cpu = bmgr.CPU;
            m_ulaAtm = base.m_ula as UlaAtm450;

            bmgr.SubscribeRDIO(0x0001, 0x0000, busReadPortFE);      // bit Z emulation
            bmgr.SubscribeWRIO(0x0001, 0x0000, busWritePortFE);
            bmgr.SubscribeRDIO(0x0004, 0x00FB & 0x0004, busReadPortFB);   // CPSYS [(addr & 0x7F)==0x7B]

            bmgr.SubscribeWRIO(0x8202, 0x7FFD & 0x8202, busWritePort7FFD);
            bmgr.SubscribeWRIO(0x8202, 0xFDFD & 0x8202, busWritePortFDFD);

            bmgr.SubscribeWRIO(0x8202, 0x7DFD & 0x8202, busWritePort7DFD); // atm_writepal(val);

            bmgr.SubscribeRESET(busReset);
        }
예제 #4
0
        public override void BusInit(IBusManager bmgr)
        {
            base.BusInit(bmgr);

            m_cpu = bmgr.CPU;
            m_ulaAtm = base.m_ula as UlaAtm450;

            bmgr.SubscribeRDIO(0x0001, 0x0000, busReadPortFE);					// bit Z emulation
            bmgr.SubscribeWRIO(0x009F, 0x00FF & 0x009F, busWritePortXXFF_PAL);	// atm_writepal(val);
            bmgr.SubscribeRDIO(0x8202, 0x7FFD & 0x8202, busReadPort7FFD);					// bit Z emulation

            bmgr.SubscribeWRIO(0x00FF, 0xFF77 & 0x00FF, busWritePortFF77_SYS);
            bmgr.SubscribeWRIO(0x00FF, 0x3FF7 & 0x00FF, busWritePortXFF7_WND);	//ATM3 mask=0x3FFF
            bmgr.SubscribeWRIO(0x8202, 0x7FFD & 0x8202, busWritePort7FFD_128);

            bmgr.SubscribeRESET(busReset);
        }