OXYGENHUB
◆ main openmsx / src / I8255Interface.hh
955 B · C++ · last changed chore(): initial commit 1 month ago source blame history raw
1
#ifndef I8255INTERFACE_HH
2
#define I8255INTERFACE_HH
3
4
#include "EmuTime.hh"
5
6
#include <cstdint>
7
8
namespace openmsx {
9
10
using uint4_t = uint8_t;
11
12
class I8255Interface
13
{
14
public:
15
	[[nodiscard]] virtual uint8_t readA (EmuTime time) = 0;
16
	[[nodiscard]] virtual uint8_t readB (EmuTime time) = 0;
17
	[[nodiscard]] virtual uint4_t readC0(EmuTime time) = 0;
18
	[[nodiscard]] virtual uint4_t readC1(EmuTime time) = 0;
19
	[[nodiscard]] virtual uint8_t peekA (EmuTime time) const = 0;
20
	[[nodiscard]] virtual uint8_t peekB (EmuTime time) const = 0;
21
	[[nodiscard]] virtual uint4_t peekC0(EmuTime time) const = 0;
22
	[[nodiscard]] virtual uint4_t peekC1(EmuTime time) const = 0;
23
	virtual void writeA (uint8_t value, EmuTime time) = 0;
24
	virtual void writeB (uint8_t value, EmuTime time) = 0;
25
	virtual void writeC0(uint4_t value, EmuTime time) = 0;
26
	virtual void writeC1(uint4_t value, EmuTime time) = 0;
27
28
protected:
29
	~I8255Interface() = default;
30
};
31
32
} // namespace openmsx
33
34
#endif