From: leslie Date: Sat, 26 Jul 2008 06:14:52 +0000 (+0800) Subject: nagra1: add ROM10 hwreg 0x02 handling X-Git-Tag: 0.9.1~47 X-Git-Url: http://www.vanbest.org/gitweb/?a=commitdiff_plain;h=47a65428217d40812a23a43fbe5ab7ae561c68a9;p=sasc-ng.git nagra1: add ROM10 hwreg 0x02 handling --- diff --git a/systems/nagra/nagra1.c b/systems/nagra/nagra1.c index 4867984..b3729b4 100644 --- a/systems/nagra/nagra1.c +++ b/systems/nagra/nagra1.c @@ -333,6 +333,7 @@ protected: struct Map { unsigned char A[64], B[64], C[64], D[4], opSize; } map; // virtual void Stepper(void); + virtual void WriteHandler(unsigned char seg, unsigned short ea, unsigned char &op); virtual void ReadHandler(unsigned char seg, unsigned short ea, unsigned char &op); bool DoMaps(bool hasExt, int romSize); bool CoreInitSetup(void); @@ -343,12 +344,20 @@ public: cEmuRom10Core::cEmuRom10Core(void) { - hasReadHandler=true; + hasReadHandler=hasWriteHandler=true; } void cEmuRom10Core::Stepper(void) {} +void cEmuRom10Core::WriteHandler(unsigned char seg, unsigned short ea, unsigned char &op) +{ + if(ea==0x02) { + unsigned char old=Get(0x02); + if(!(old&0x80)) op=(op&0xFE) | (old&0x01); + } +} + void cEmuRom10Core::ReadHandler(unsigned char seg, unsigned short ea, unsigned char &op) { switch(ea) {