2018-04-24 04:14:45 +00:00
|
|
|
//
|
|
|
|
// Card.h
|
|
|
|
// Clock Signal
|
|
|
|
//
|
|
|
|
// Created by Thomas Harte on 23/04/2018.
|
|
|
|
// Copyright © 2018 Thomas Harte. All rights reserved.
|
|
|
|
//
|
|
|
|
|
|
|
|
#ifndef Card_h
|
|
|
|
#define Card_h
|
|
|
|
|
2018-04-24 05:11:31 +00:00
|
|
|
#include "../../Processors/6502/6502.hpp"
|
2018-04-24 04:14:45 +00:00
|
|
|
#include "../../ClockReceiver/ClockReceiver.hpp"
|
2018-05-11 02:17:13 +00:00
|
|
|
#include "../../Activity/Observer.hpp"
|
2018-04-24 04:14:45 +00:00
|
|
|
|
|
|
|
namespace AppleII {
|
|
|
|
|
|
|
|
class Card {
|
|
|
|
public:
|
|
|
|
/*! Advances time by @c cycles, of which @c stretches were stretched. */
|
|
|
|
virtual void run_for(Cycles half_cycles, int stretches) {}
|
|
|
|
|
|
|
|
/*! Performs a bus operation; the card is implicitly selected. */
|
|
|
|
virtual void perform_bus_operation(CPU::MOS6502::BusOperation operation, uint16_t address, uint8_t *value) = 0;
|
2018-05-11 02:17:13 +00:00
|
|
|
|
|
|
|
/*! Supplies a target for observers. */
|
|
|
|
virtual void set_activity_observer(Activity::Observer *observer) {}
|
2018-04-24 04:14:45 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif /* Card_h */
|