From 54836067b5dcfccab1fd8f35f20d587343a10839 Mon Sep 17 00:00:00 2001 From: folkert van heusden Date: Thu, 25 Apr 2024 01:39:42 +0200 Subject: [PATCH] clean-up --- ESP32/device.h | 1 + device.h | 20 ++++++++++++++++++++ rk05.cpp | 2 +- rk05.h | 13 +++++++------ rl02.h | 13 +++++++------ tm-11.h | 17 ++++++++++------- 6 files changed, 46 insertions(+), 20 deletions(-) create mode 120000 ESP32/device.h create mode 100644 device.h diff --git a/ESP32/device.h b/ESP32/device.h new file mode 120000 index 0000000..41bf9d4 --- /dev/null +++ b/ESP32/device.h @@ -0,0 +1 @@ +../device.h \ No newline at end of file diff --git a/device.h b/device.h new file mode 100644 index 0000000..96638a3 --- /dev/null +++ b/device.h @@ -0,0 +1,20 @@ +#pragma once + + +class device +{ +public: + device() { + } + + virtual ~device() { + } + + virtual void reset() = 0; + + virtual uint8_t readByte(const uint16_t addr) = 0; + virtual uint16_t readWord(const uint16_t addr) = 0; + + virtual void writeByte(const uint16_t addr, const uint8_t v) = 0; + virtual void writeWord(const uint16_t addr, const uint16_t v) = 0; +}; diff --git a/rk05.cpp b/rk05.cpp index 14db320..8b1aaf8 100644 --- a/rk05.cpp +++ b/rk05.cpp @@ -109,7 +109,7 @@ void rk05::writeByte(const uint16_t addr, const uint8_t v) writeWord(addr, vtemp); } -void rk05::writeWord(const uint16_t addr, uint16_t v) +void rk05::writeWord(const uint16_t addr, const uint16_t v) { const int reg = (addr - RK05_BASE) / 2; diff --git a/rk05.h b/rk05.h index 7496063..7ba4682 100644 --- a/rk05.h +++ b/rk05.h @@ -9,6 +9,7 @@ #include #include +#include "device.h" #include "disk_backend.h" @@ -24,7 +25,7 @@ class bus; -class rk05 +class rk05 : public device { private: bus *const b { nullptr }; @@ -42,11 +43,11 @@ public: rk05(const std::vector & files, bus *const b, std::atomic_bool *const disk_read_acitivity, std::atomic_bool *const disk_write_acitivity); virtual ~rk05(); - void reset(); + void reset() override; - uint8_t readByte(const uint16_t addr); - uint16_t readWord(const uint16_t addr); + uint8_t readByte(const uint16_t addr) override; + uint16_t readWord(const uint16_t addr) override; - void writeByte(const uint16_t addr, const uint8_t v); - void writeWord(const uint16_t addr, uint16_t v); + void writeByte(const uint16_t addr, const uint8_t v) override; + void writeWord(const uint16_t addr, const uint16_t v) override; }; diff --git a/rl02.h b/rl02.h index 5d9fb1a..64bc4d6 100644 --- a/rl02.h +++ b/rl02.h @@ -9,6 +9,7 @@ #include #include +#include "device.h" #include "disk_backend.h" @@ -25,7 +26,7 @@ constexpr const int rl02_bytes_per_sector = 256; class bus; -class rl02 +class rl02 : public device { private: bus *const b; @@ -49,11 +50,11 @@ public: rl02(const std::vector & files, bus *const b, std::atomic_bool *const disk_read_acitivity, std::atomic_bool *const disk_write_acitivity); virtual ~rl02(); - void reset(); + void reset() override; - uint8_t readByte(const uint16_t addr); - uint16_t readWord(const uint16_t addr); + uint8_t readByte(const uint16_t addr) override; + uint16_t readWord(const uint16_t addr) override; - void writeByte(const uint16_t addr, const uint8_t v); - void writeWord(const uint16_t addr, const uint16_t v); + void writeByte(const uint16_t addr, const uint8_t v) override; + void writeWord(const uint16_t addr, const uint16_t v) override; }; diff --git a/tm-11.h b/tm-11.h index 421c2da..31801c8 100644 --- a/tm-11.h +++ b/tm-11.h @@ -1,4 +1,4 @@ -// (C) 2018-2023 by Folkert van Heusden +// (C) 2018-2024 by Folkert van Heusden // Released under MIT license #pragma once @@ -7,6 +7,8 @@ #include #include +#include "device.h" + #define TM_11_MTS 0172520 // status register #define TM_11_MTC 0172522 // command register #define TM_11_MTBRC 0172524 // byte record counter @@ -16,9 +18,10 @@ #define TM_11_BASE TM_11_MTS #define TM_11_END (TM_11_MTRD + 2) + class memory; -class tm_11 +class tm_11 : public device { private: memory *const m { nullptr }; @@ -31,11 +34,11 @@ public: tm_11(const std::string & file, memory *const m); virtual ~tm_11(); - void reset(); + void reset() override; - uint8_t readByte(const uint16_t addr); - uint16_t readWord(const uint16_t addr); + uint8_t readByte(const uint16_t addr) override; + uint16_t readWord(const uint16_t addr) override; - void writeByte(const uint16_t addr, const uint8_t v); - void writeWord(const uint16_t addr, uint16_t v); + void writeByte(const uint16_t addr, const uint8_t v) override; + void writeWord(const uint16_t addr, uint16_t v) override; };