private void ResetBus() { this.CMR0 = 0; this.CMR1 = 0; this.PAGE1 = 5; this.PAGE0 = 0; this.PAGE2 = 2; this.PAGE3 = 0x40; this._cache = false; this._romIndex = 0; this._sys = false; this._romA16 = false; _firstRead = true; //надо false и сделать обработку порта 204Eh _accEnable = true; _accOn = false; _accMode = AccelCMD.Off; UpdateMapping(); }
private void busReset() { this.CMR0 = 0; this.CMR1 = 0; this.PAGE1 = 5; this.PAGE0 = 0; this.PAGE2 = 2; this.PAGE3 = 0x40; this.m_cache = false; this.m_romindex = 0; this.m_sys = false; this.m_romA16 = false; m_firstread = true; //надо false и сделать обработку порта 204Eh m_acc_enable = true; m_acc_on = false; m_acc_mode = AccelCMD.Off; UpdateMapping(); }
/* private void GetAccelDATA(ushort addr, ref byte value) { if (m_acc_enable && m_acc_on && m_acc_wait_data) { ; } }*/ private void Accelerator(ushort addr, ref byte value) { if (m_acc_enable) { switch (this.RDMEM_DBG(addr)) { //Accelerator off - ld b,b case 0x40: { // m_acc_on = false; // m_acc_wait_cmd = false; m_acc_mode = AccelCMD.Off; m_acc_submode = AccelSubCMD.None; } break; //Accelerator on - ld d,d case 0x52: { m_acc_on = true; // m_acc_wait_cmd = true; m_acc_mode = AccelCMD.On; m_acc_submode = AccelSubCMD.None; } break; case 0x49: { m_acc_on = true; m_acc_mode = AccelCMD.Fill; m_acc_submode = AccelSubCMD.None; } break; case 0x5B: { m_acc_on = true; m_acc_mode = AccelCMD.GrFill; m_acc_submode = AccelSubCMD.None; } break; case 0x64: { m_acc_on = true; m_acc_mode = AccelCMD.Reserved; m_acc_submode = AccelSubCMD.None; } break; case 0x6D: { m_acc_on = true; m_acc_mode = AccelCMD.CopyBlok; m_acc_submode = AccelSubCMD.None; } break; case 0x7F: { m_acc_on = true; m_acc_mode = AccelCMD.GrCopyBlok; m_acc_submode = AccelSubCMD.None; } break; case 0xAE: { m_acc_on = true; m_acc_submode = AccelSubCMD.XORBlok; }break; case 0xB6: { m_acc_on = true; m_acc_submode = AccelSubCMD.ORBlok; } break; case 0xA6: { m_acc_on = true; m_acc_submode = AccelSubCMD.ANDBlok; } break; } } }
/* * private void GetAccelDATA(ushort addr, ref byte value) * { * if (_accEnable && _accOn && _accWaitData) * { * } * } */ private void Accelerator(ushort addr, ref byte value) { if (!_accEnable || value < 0x40) { return; } switch (value)//this.RDMEM_DBG(addr)) { //Accelerator off - ld b,b case 0x40: { //_accOn = false; //_accWaitCmd = false; _accMode = AccelCMD.Off; _accSubMode = AccelSubCMD.None; } break; //Accelerator on - ld d,d case 0x52: { _accOn = true; //_accWaitCmd = true; _accMode = AccelCMD.On; _accSubMode = AccelSubCMD.None; } break; case 0x49: { _accOn = true; _accMode = AccelCMD.Fill; _accSubMode = AccelSubCMD.None; } break; case 0x5B: { _accOn = true; _accMode = AccelCMD.GrFill; _accSubMode = AccelSubCMD.None; } break; case 0x64: { _accOn = true; _accMode = AccelCMD.Reserved; _accSubMode = AccelSubCMD.None; } break; case 0x6D: { _accOn = true; _accMode = AccelCMD.CopyBlok; _accSubMode = AccelSubCMD.None; } break; case 0x7F: { _accOn = true; _accMode = AccelCMD.GrCopyBlok; _accSubMode = AccelSubCMD.None; } break; case 0xAE: { _accOn = true; _accSubMode = AccelSubCMD.XORBlok; } break; case 0xB6: { _accOn = true; _accSubMode = AccelSubCMD.ORBlok; } break; case 0xA6: { _accOn = true; _accSubMode = AccelSubCMD.ANDBlok; } break; } }