示例#1
0
inline void CMemMap::Poke(ULONG addr, UBYTE data)
{
   TRACE_MEMMAP1("Poke() - Data %02x",data);

   int newstate,loop;

   // FC00-FCFF Susie area
   newstate=(data&0x01)?FALSE:TRUE;
   if(newstate!=mSusieEnabled) {
      mSusieEnabled=newstate;

      if(mSusieEnabled) {
         for(loop=SUSIE_START; loop<SUSIE_START+SUSIE_SIZE; loop++) mSystem.mMemoryHandlers[loop]=mSystem.mSusie;
      } else {
         for(loop=SUSIE_START; loop<SUSIE_START+SUSIE_SIZE; loop++) mSystem.mMemoryHandlers[loop]=mSystem.mRam;
      }
   }

   // FD00-FCFF Mikie area
   newstate=(data&0x02)?FALSE:TRUE;
   if(newstate!=mMikieEnabled) {
      mMikieEnabled=newstate;

      if(mMikieEnabled) {
         for(loop=MIKIE_START; loop<MIKIE_START+MIKIE_SIZE; loop++) mSystem.mMemoryHandlers[loop]=mSystem.mMikie;
      } else {
         for(loop=MIKIE_START; loop<MIKIE_START+MIKIE_SIZE; loop++) mSystem.mMemoryHandlers[loop]=mSystem.mRam;
      }
   }

   // FE00-FFF7 Rom area
   newstate=(data&0x04)?FALSE:TRUE;
   if(newstate!=mRomEnabled) {
      mRomEnabled=newstate;

      if(mRomEnabled) {
         for(loop=BROM_START; loop<BROM_START+(BROM_SIZE-8); loop++) mSystem.mMemoryHandlers[loop]=mSystem.mRom;
      } else {
         for(loop=BROM_START; loop<BROM_START+(BROM_SIZE-8); loop++) mSystem.mMemoryHandlers[loop]=mSystem.mRam;
      }
   }

   // FFFA-FFFF Vector area - Overload ROM space
   newstate=(data&0x08)?FALSE:TRUE;
   if(newstate!=mVectorsEnabled) {
      mVectorsEnabled=newstate;

      if(mVectorsEnabled) {
         for(loop=VECTOR_START; loop<VECTOR_START+VECTOR_SIZE; loop++) mSystem.mMemoryHandlers[loop]=mSystem.mRom;
      } else {
         for(loop=VECTOR_START; loop<VECTOR_START+VECTOR_SIZE; loop++) mSystem.mMemoryHandlers[loop]=mSystem.mRam;
      }
   }


}
示例#2
0
INLINE uint8 CMemMap::Peek(uint32 addr)
{
	uint8 retval=0;

	retval+=(mSusieEnabled)?0:0x01;
	retval+=(mMikieEnabled)?0:0x02;
	retval+=(mRomEnabled)?0:0x04;
	retval+=(mVectorsEnabled)?0:0x08;
	TRACE_MEMMAP1("Peek() - Data %02x",retval);
	return retval;
}
示例#3
0
inline UBYTE CMemMap::Peek(ULONG addr)
{
	UBYTE retval=0;

	retval+=(mSusieEnabled)?0:0x01;
	retval+=(mMikieEnabled)?0:0x02;
	retval+=(mRomEnabled)?0:0x04;
	retval+=(mVectorsEnabled)?0:0x08;
	TRACE_MEMMAP1("Peek() - Data %02x",retval);
	return retval;
}