libsidplayfp  2.0.2
Public Member Functions | List of all members
libsidplayfp::ZeroRAMBank Class Referencefinal

#include <ZeroRAMBank.h>

Inheritance diagram for libsidplayfp::ZeroRAMBank:
Inheritance graph
[legend]
Collaboration diagram for libsidplayfp::ZeroRAMBank:
Collaboration graph
[legend]

Public Member Functions

 ZeroRAMBank (PLA &pla, SystemRAMBank &ramBank)
 
void reset ()
 
uint8_t peek (uint_least16_t address) override
 
void poke (uint_least16_t address, uint8_t value) override
 

Detailed Description

Area backed by RAM, including cpu port addresses 0 and 1.

This is bit of a fake. We know that the CPU port is an internal detail of the CPU, and therefore CPU should simply pay the price for reading/writing to $00/$01.

However, that would slow down all accesses, which is suboptimal. Therefore we install this little hook to the 4k 0 region to deal with this.

Implementation based on VICE code.

Member Function Documentation

◆ peek()

uint8_t libsidplayfp::ZeroRAMBank::peek ( uint_least16_t  address)
inlineoverridevirtual

Bank read. You probably should override this method, except if the Bank is only used in write context.

Parameters
addressvalue to read from
Returns
value at address

Implements libsidplayfp::Bank.

◆ poke()

void libsidplayfp::ZeroRAMBank::poke ( uint_least16_t  address,
uint8_t  value 
)
inlineoverridevirtual

Bank write.

Override this method if you expect write operations on your bank. Leave unimplemented if it's logically/operationally impossible for writes to ever arrive to bank.

Parameters
addressaddress to write to
valuevalue to write

Implements libsidplayfp::Bank.


The documentation for this class was generated from the following file: