SASC-NG
DVBSoftCAM

cEmuRom10Core Class Reference

Inheritance diagram for cEmuRom10Core:

List of all members.

Classes

struct  Map

Public Member Functions

 cEmuRom10Core (void)

Protected Member Functions

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)
bool CoreUpdateSetup (const unsigned char *emm)

Protected Attributes

struct cEmuRom10Core::Map map

Detailed Description

Definition at line 331 of file nagra1.c.


Constructor & Destructor Documentation

cEmuRom10Core::cEmuRom10Core ( void  )

Definition at line 345 of file nagra1.c.

References c6805::hasReadHandler, and c6805::hasWriteHandler.


Member Function Documentation

bool cEmuRom10Core::CoreInitSetup ( void  ) [protected]

Definition at line 382 of file nagra1.c.

References c6805::ForceSet(), and c6805::Set().

Referenced by cEmuRom11::InitSetup(), and cEmuRom10::InitSetup().

{
  ForceSet(0x01,0x13,true);
  Set(0x02,0x82); Set(0x02,0x3); // beware of the WriteHandler!
  Set(0x07,0xFF);
  return true;
}
bool cEmuRom10Core::CoreUpdateSetup ( const unsigned char *  emm) [protected]

Definition at line 390 of file nagra1.c.

References c6805::Set(), and c6805::SetMem().

Referenced by cEmuRom11::UpdateSetup(), and cEmuRom10::UpdateSetup().

{
  SetMem(0x01A2,&emm[1],2);
  SetMem(0x0307,&emm[1],2);
  Set(0x0300,emm[5]);
  Set(0x0301,emm[2]);
  return true;
}
bool cEmuRom10Core::DoMaps ( bool  hasExt,
int  romSize 
) [protected]

Definition at line 374 of file nagra1.c.

References cEmu::AddEeprom(), cEmu::AddRom(), cEmu::eepromName, cEmu::romExtName, and cEmu::romName.

Referenced by cEmuRom11::InitSetup(), and cEmuRom10::InitSetup().

{
  // Eeprom & ROMext are non-fatal also they are required for some providers
  if(hasExt) AddRom(0x2000,0x2000,romExtName);
  AddEeprom(0xC000,0x2000,0x40,eepromName);
  return AddRom(0x4000,romSize,romName);
}
void cEmuRom10Core::ReadHandler ( unsigned char  seg,
unsigned short  ea,
unsigned char &  op 
) [protected, virtual]

Reimplemented from c6805.

Definition at line 361 of file nagra1.c.

References c6805::cc, c6805::Get(), and c6805::CC::i.

{
  switch(ea) {
    case 0x05:
    case 0x06:
      if(cc.i && (Get(0x07)&0x80)) op=random()&0xFF;
      break;
    case 0x07:
      if(cc.i) op&=0xFD; else op|=0x02;
      break;
    }
}
void cEmuRom10Core::Stepper ( void  ) [protected, virtual]

Implements c6805.

Definition at line 350 of file nagra1.c.

{}
void cEmuRom10Core::WriteHandler ( unsigned char  seg,
unsigned short  ea,
unsigned char &  op 
) [protected, virtual]

Reimplemented from c6805.

Definition at line 353 of file nagra1.c.

References c6805::Get().

{
  if(ea==0x02) {
    unsigned char old=Get(0x02);
    if(!(old&0x80)) op=(op&0xFE) | (old&0x01);
    }
}

Member Data Documentation


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines