1#ifndef Y8950PERIPHERY_HH
2#define Y8950PERIPHERY_HH
37 [[nodiscard]]
virtual nibble read(EmuTime::param time) = 0;
40 virtual void setSPOFF(
bool value, EmuTime::param time);
42 [[nodiscard]]
virtual byte readMem(
word address, EmuTime::param time);
43 [[nodiscard]]
virtual byte peekMem(
word address, EmuTime::param time)
const;
44 virtual void writeMem(
word address,
byte value, EmuTime::param time);
55 [[nodiscard]]
static std::unique_ptr<Y8950Periphery>
create(
57 const std::string& soundDeviceName);
static std::unique_ptr< Y8950Periphery > create(MSXAudio &audio, const DeviceConfig &config, const std::string &soundDeviceName)
Models the 4 general purpose I/O pins on the Y8950 (controlled by registers r#18 and r#19)
virtual byte peekMem(word address, EmuTime::param time) const
virtual const byte * getReadCacheLine(word start) const
virtual void write(nibble outputs, nibble values, EmuTime::param time)=0
Write to (some of) the pins.
virtual void writeMem(word address, byte value, EmuTime::param time)
virtual byte * getWriteCacheLine(word start)
virtual byte readMem(word address, EmuTime::param time)
virtual ~Y8950Periphery()=default
virtual void setSPOFF(bool value, EmuTime::param time)
SP-OFF bit (bit 3 in Y8950 register 7)
virtual nibble read(EmuTime::param time)=0
Read from (some of) the pins Some of the pins might be programmed as output, but this method doesn't ...
This file implemented 3 utility functions:
uint8_t nibble
4 bit integer
uint16_t word
16 bit unsigned integer