1
0
mirror of https://github.com/TomHarte/CLK.git synced 2026-04-24 20:16:41 +00:00

Start to introduce a 6526/8250.

This commit is contained in:
Thomas Harte
2021-07-18 11:36:13 -04:00
parent a5d0976c2d
commit 377cc7bdcd
3 changed files with 89 additions and 0 deletions
+42
View File
@@ -0,0 +1,42 @@
//
// 6526.h
// Clock Signal
//
// Created by Thomas Harte on 18/07/2021.
// Copyright © 2021 Thomas Harte. All rights reserved.
//
#ifndef _526_h
#define _526_h
#include <cstdint>
namespace MOS {
namespace MOS6526 {
class PortHandler {
};
enum class Personality {
// The 6526, used in machines such as the C64, has a BCD time-of-day clock.
Model6526,
// The 8250, used in the Amiga, provides a binary time-of-day clock.
Model8250,
};
template <typename BusHandlerT, Personality personality> class MOS6526 {
public:
/// Writes @c value to the register at @c address. Only the low two bits of the address are decoded.
void write(int address, uint8_t value);
/// Fetches the value of the register @c address. Only the low two bits of the address are decoded.
uint8_t read(int address);
};
}
}
#include "Implementation/6526Implementation.hpp"
#endif /* _526_h */
@@ -0,0 +1,27 @@
//
// 6526Implementation.hpp
// Clock Signal
//
// Created by Thomas Harte on 18/07/2021.
// Copyright © 2021 Thomas Harte. All rights reserved.
//
#ifndef _526Implementation_h
#define _526Implementation_h
namespace MOS {
namespace MOS6526 {
template <typename BusHandlerT, Personality personality>
void MOS6526<BusHandlerT, personality>::write(int address, uint8_t value) {
}
template <typename BusHandlerT, Personality personality>
uint8_t MOS6526<BusHandlerT, personality>::read(int address) {
return 0xff;
}
}
}
#endif /* _526Implementation_h */