mirror of
https://github.com/TomHarte/CLK.git
synced 2024-11-26 08:49:37 +00:00
Start to introduce a 6526/8250.
This commit is contained in:
parent
a5d0976c2d
commit
377cc7bdcd
42
Components/6526/6526.hpp
Normal file
42
Components/6526/6526.hpp
Normal 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 */
|
27
Components/6526/Implementation/6526Implementation.hpp
Normal file
27
Components/6526/Implementation/6526Implementation.hpp
Normal file
@ -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 */
|
@ -1920,6 +1920,8 @@
|
||||
4BC080CF26A257A200D03FD8 /* StaticAnalyser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StaticAnalyser.cpp; sourceTree = "<group>"; };
|
||||
4BC080D726A25ADA00D03FD8 /* Amiga.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = Amiga.hpp; sourceTree = "<group>"; };
|
||||
4BC080D826A25ADA00D03FD8 /* Amiga.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Amiga.cpp; sourceTree = "<group>"; };
|
||||
4BC080DE26A481C100D03FD8 /* 6526.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = 6526.hpp; sourceTree = "<group>"; };
|
||||
4BC080E026A481C100D03FD8 /* 6526Implementation.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = 6526Implementation.hpp; sourceTree = "<group>"; };
|
||||
4BC0CB272446BC7B00A79DBB /* OPLTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = OPLTests.mm; sourceTree = "<group>"; };
|
||||
4BC1316D2346DE5000E4FF3D /* StaticAnalyser.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = StaticAnalyser.hpp; sourceTree = "<group>"; };
|
||||
4BC1316E2346DE5000E4FF3D /* Target.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = Target.hpp; sourceTree = "<group>"; };
|
||||
@ -4267,6 +4269,23 @@
|
||||
path = Amiga;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
4BC080DD26A481C100D03FD8 /* 6526 */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
4BC080DE26A481C100D03FD8 /* 6526.hpp */,
|
||||
4BC080DF26A481C100D03FD8 /* Implementation */,
|
||||
);
|
||||
path = 6526;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
4BC080DF26A481C100D03FD8 /* Implementation */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
4BC080E026A481C100D03FD8 /* 6526Implementation.hpp */,
|
||||
);
|
||||
path = Implementation;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
4BC1316C2346DE5000E4FF3D /* Atari2600 */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
@ -4326,6 +4345,7 @@
|
||||
4BD468F81D8DF4290084958B /* 1770 */,
|
||||
4BDACBE922FFA5B50045EF7E /* 5380 */,
|
||||
4BC9DF4B1D04691600F44158 /* 6522 */,
|
||||
4BC080DD26A481C100D03FD8 /* 6526 */,
|
||||
4B1E85791D174DEC001EF87D /* 6532 */,
|
||||
4BC9DF4C1D04691600F44158 /* 6560 */,
|
||||
4BE845221F2FF7F400A5EA22 /* 6845 */,
|
||||
|
Loading…
Reference in New Issue
Block a user