mirror of
https://github.com/TomHarte/CLK.git
synced 2024-06-29 15:29:36 +00:00
Forced users of the 6845 to be explicit about which type. So far with no effect.
This commit is contained in:
parent
02d792c003
commit
6a6e5ae79c
|
@ -31,9 +31,18 @@ class BusHandler {
|
||||||
void perform_bus_cycle(const BusState &) {}
|
void perform_bus_cycle(const BusState &) {}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum Personality {
|
||||||
|
HD6845S, //
|
||||||
|
UM6845R, //
|
||||||
|
MC6845, //
|
||||||
|
AMS40226 //
|
||||||
|
};
|
||||||
|
|
||||||
template <class T> class CRTC6845 {
|
template <class T> class CRTC6845 {
|
||||||
public:
|
public:
|
||||||
CRTC6845(T &bus_handler) : bus_handler_(bus_handler) {}
|
|
||||||
|
CRTC6845(Personality p, T &bus_handler) :
|
||||||
|
personality_(p), bus_handler_(bus_handler) {}
|
||||||
|
|
||||||
void run_for(Cycles cycles) {
|
void run_for(Cycles cycles) {
|
||||||
int cyles_remaining = cycles.as_int();
|
int cyles_remaining = cycles.as_int();
|
||||||
|
@ -160,6 +169,7 @@ template <class T> class CRTC6845 {
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
Personality personality_;
|
||||||
T &bus_handler_;
|
T &bus_handler_;
|
||||||
BusState bus_state_;
|
BusState bus_state_;
|
||||||
|
|
||||||
|
|
|
@ -528,7 +528,7 @@ class ConcreteMachine:
|
||||||
ConcreteMachine() :
|
ConcreteMachine() :
|
||||||
z80_(*this),
|
z80_(*this),
|
||||||
crtc_counter_(HalfCycles(4)), // This starts the CRTC exactly out of phase with the memory accesses
|
crtc_counter_(HalfCycles(4)), // This starts the CRTC exactly out of phase with the memory accesses
|
||||||
crtc_(crtc_bus_handler_),
|
crtc_(Motorola::CRTC::HD6845S, crtc_bus_handler_),
|
||||||
crtc_bus_handler_(ram_, interrupt_timer_),
|
crtc_bus_handler_(ram_, interrupt_timer_),
|
||||||
i8255_(i8255_port_handler_),
|
i8255_(i8255_port_handler_),
|
||||||
i8255_port_handler_(key_state_, crtc_bus_handler_, ay_, tape_player_),
|
i8255_port_handler_(key_state_, crtc_bus_handler_, ay_, tape_player_),
|
||||||
|
|
Loading…
Reference in New Issue
Block a user