예제 #1
0
        public LoadManager(Spectrum spec)
        {
            this._spec = spec;
            base.AddSerializer(new Z80Serializer(spec));
            base.AddSerializer(new SnaSerializer(spec));
            base.AddSerializer(new SitSerializer(spec));
            base.AddSerializer(new ZxSerializer(spec));
            base.AddSerializer(new ScrSerializer(spec));
            ITapeDevice tapeDevice = spec as ITapeDevice;

            if (tapeDevice != null)
            {
                base.AddSerializer(new TapSerializer(tapeDevice.Tape));
                base.AddSerializer(new TzxSerializer(tapeDevice.Tape));
                base.AddSerializer(new CswSerializer(tapeDevice.Tape));
            }
            IBetaDiskDevice betaDiskDevice = spec as IBetaDiskDevice;

            if (betaDiskDevice != null)
            {
                base.AddSerializer(new UdiSerializer(betaDiskDevice.BetaDisk.FDD[0]));
                base.AddSerializer(new FdiSerializer(betaDiskDevice.BetaDisk.FDD[0]));
                base.AddSerializer(new Td0Serializer(betaDiskDevice.BetaDisk.FDD[0]));
                base.AddSerializer(new TrdSerializer(betaDiskDevice.BetaDisk.FDD[0]));
                base.AddSerializer(new SclSerializer(betaDiskDevice.BetaDisk.FDD[0]));
                base.AddSerializer(new HobetaSerializer(betaDiskDevice.BetaDisk.FDD[0]));
                this._diskLoaders = new DiskLoadManager[betaDiskDevice.BetaDisk.FDD.Length];
                for (int i = 0; i < this._diskLoaders.Length; i++)
                {
                    this._diskLoaders[i] = new DiskLoadManager(betaDiskDevice.BetaDisk.FDD[i]);
                }
            }
        }
예제 #2
0
        private void menuFileEjectDisk_Click(object sender, EventArgs e)
        {
            IBetaDiskDevice betaDiskDevice = this._platform.Spectrum as IBetaDiskDevice;

            if (betaDiskDevice != null)
            {
                betaDiskDevice.BetaDisk.FDD[0].Eject();
            }
        }
예제 #3
0
 public void Init(BusManager bmgr, IHostService host, IBetaDiskDevice device)
 {
     m_bmgr             = bmgr;
     m_device           = device;
     chkNoDelay.Checked = m_device.NoDelay;
     chkLogIO.Checked   = m_device.LogIo;
     initDrive(GetImage(0), chkPresentA, txtPathA, chkProtectA, btnBrowseA);
     initDrive(GetImage(1), chkPresentB, txtPathB, chkProtectB, btnBrowseB);
     initDrive(GetImage(2), chkPresentC, txtPathC, chkProtectC, btnBrowseC);
     initDrive(GetImage(3), chkPresentD, txtPathD, chkProtectD, btnBrowseD);
 }
예제 #4
0
 public override void BusInit(IBusManager bmgr)
 {
     base.BusInit(bmgr);
     this.m_cpu = bmgr.CPU;
     this.m_betaDisk = bmgr.FindDevice(typeof(IBetaDiskDevice)) as IBetaDiskDevice;
     bmgr.SubscribeWRIO(0x801a, 0x18, new BusWriteIoProc(this.busWritePort7FFD));
     bmgr.SubscribeWRIO(0x91, 0, new BusWriteIoProc(this.busWritePort0000));
     bmgr.SubscribeWRIO(0xA00D, 0x800D, new BusWriteIoProc(this.busWritePort80FD)); // 80FD
     bmgr.SubscribeRDIO(0xA00D, 0x800D, new BusReadIoProc(this.busReadPort80FD)); // 80FD
     bmgr.SubscribeRESET(new BusSignalProc(this.busReset));
 }
예제 #5
0
        public void OnShutdown()
        {
            IBetaDiskDevice betaDiskDevice = this.Spectrum as IBetaDiskDevice;

            if (betaDiskDevice != null)
            {
                for (int i = 0; i < betaDiskDevice.BetaDisk.FDD.Length; i++)
                {
                    betaDiskDevice.BetaDisk.FDD[i].Eject();
                }
            }
        }
예제 #6
0
 public dbgWD1793(IBetaDiskDevice debugTarget)
 {
     _betaDiskDevice = debugTarget;
      InitializeComponent();
 }
예제 #7
0
 public override void BusInit(IBusManager bmgr)
 {
     base.BusInit(bmgr);
     this.m_cpu = bmgr.CPU;
     this.m_betaDisk = bmgr.FindDevice(typeof(IBetaDiskDevice)) as IBetaDiskDevice;
     bmgr.SubscribeWRIO(0x801a, 0x18, new BusWriteIoProc(this.busWritePort7FFD));
     bmgr.SubscribeWRIO(0xA01A, 0x8018, new BusWriteIoProc(this.busWritePort80FD));
     bmgr.SubscribeWRIO(0x91, 0, new BusWriteIoProc(this.busWritePort0000));
     bmgr.SubscribeRESET(new BusSignalProc(this.busReset));
     bmgr.SubscribeNMIACK(new BusSignalProc(this.busNmi));
     if (this.m_betaDisk != null)
     {
         bmgr.SubscribeWRIO(0x9f, 0x80, new BusWriteIoProc(this.busWritePortCMD));
         bmgr.SubscribeWRIO(0x9f, 0x81, new BusWriteIoProc(this.busWritePortTRK));
         bmgr.SubscribeWRIO(0x9f, 130, new BusWriteIoProc(this.busWritePortSEC));
         bmgr.SubscribeWRIO(0x9f, 0x83, new BusWriteIoProc(this.busWritePortDAT));
         bmgr.SubscribeWRIO(0x9f, 0x85, new BusWriteIoProc(this.busWritePortSYS));
         bmgr.SubscribeRDIO(0x9f, 0x80, new BusReadIoProc(this.busReadPortCMD));
         bmgr.SubscribeRDIO(0x9f, 0x81, new BusReadIoProc(this.busReadPortTRK));
         bmgr.SubscribeRDIO(0x9f, 130, new BusReadIoProc(this.busReadPortSEC));
         bmgr.SubscribeRDIO(0x9f, 0x83, new BusReadIoProc(this.busReadPortDAT));
         bmgr.SubscribeRDIO(0x9f, 0x85, new BusReadIoProc(this.busReadPortSYS));
     }
 }