2017-02-19 23:55:54 +00:00
|
|
|
#ifndef __APPLEVM_H
|
|
|
|
#define __APPLEVM_H
|
|
|
|
|
|
|
|
#include "cpu.h"
|
|
|
|
#include "appledisplay.h"
|
|
|
|
#include "diskii.h"
|
2017-12-29 19:08:49 +00:00
|
|
|
#include "hd32.h"
|
2017-02-19 23:55:54 +00:00
|
|
|
#include "vmkeyboard.h"
|
2017-02-20 23:41:46 +00:00
|
|
|
#include "parallelcard.h"
|
2020-12-29 14:12:33 +00:00
|
|
|
#include "mouse.h"
|
2017-02-19 23:55:54 +00:00
|
|
|
|
|
|
|
#include "vm.h"
|
|
|
|
class AppleVM : public VM {
|
|
|
|
public:
|
|
|
|
AppleVM();
|
|
|
|
virtual ~AppleVM();
|
|
|
|
|
2021-01-10 02:32:40 +00:00
|
|
|
bool Suspend(const char *fn);
|
|
|
|
bool Resume(const char *fn);
|
2017-12-30 20:20:34 +00:00
|
|
|
|
2020-08-02 13:06:15 +00:00
|
|
|
void cpuMaintenance(int64_t cycles);
|
2017-02-19 23:55:54 +00:00
|
|
|
|
|
|
|
virtual void Reset();
|
|
|
|
void Monitor();
|
|
|
|
|
|
|
|
virtual void triggerPaddleInCycles(uint8_t paddleNum,uint16_t cycleCount);
|
|
|
|
|
|
|
|
const char *DiskName(uint8_t drivenum);
|
|
|
|
void ejectDisk(uint8_t drivenum);
|
|
|
|
void insertDisk(uint8_t drivenum, const char *filename, bool drawIt = true);
|
|
|
|
|
2017-12-29 20:35:47 +00:00
|
|
|
const char *HDName(uint8_t drivenum);
|
2017-12-29 19:08:49 +00:00
|
|
|
void ejectHD(uint8_t drivenum);
|
|
|
|
void insertHD(uint8_t drivenum, const char *filename);
|
|
|
|
|
2017-02-19 23:55:54 +00:00
|
|
|
virtual VMKeyboard *getKeyboard();
|
|
|
|
|
2021-01-11 16:32:40 +00:00
|
|
|
bool isMouseEnabled();
|
|
|
|
|
2017-02-19 23:55:54 +00:00
|
|
|
DiskII *disk6;
|
2017-12-29 19:08:49 +00:00
|
|
|
HD32 *hd32;
|
2017-02-27 00:59:51 +00:00
|
|
|
protected:
|
2017-02-19 23:55:54 +00:00
|
|
|
VMKeyboard *keyboard;
|
2017-02-20 23:41:46 +00:00
|
|
|
ParallelCard *parallel;
|
2020-12-29 14:12:33 +00:00
|
|
|
Mouse *mouse;
|
2017-02-19 23:55:54 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
#endif
|