This commit is contained in:
folkert van heusden 2024-04-25 01:39:42 +02:00
parent 2c107865c0
commit 54836067b5
Signed by untrusted user who does not match committer: folkert
GPG key ID: 6B6455EDFEED3BD1
6 changed files with 46 additions and 20 deletions

1
ESP32/device.h Symbolic link
View file

@ -0,0 +1 @@
../device.h

20
device.h Normal file
View file

@ -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;
};

View file

@ -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;

13
rk05.h
View file

@ -9,6 +9,7 @@
#include <string>
#include <vector>
#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<disk_backend *> & 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;
};

13
rl02.h
View file

@ -9,6 +9,7 @@
#include <string>
#include <vector>
#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<disk_backend *> & 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;
};

17
tm-11.h
View file

@ -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 <stdio.h>
#include <string>
#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;
};