2017-12-06 20:36:14 +00:00
|
|
|
#ifndef _APPLE2_H_
|
|
|
|
#define _APPLE2_H_
|
|
|
|
|
|
|
|
#include "mos6502.h"
|
2017-12-16 04:22:40 +00:00
|
|
|
#include "apple2.dd.h"
|
2017-12-06 20:36:14 +00:00
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
/*
|
|
|
|
* The apple 2 hardware used an MOS-6502 processor.
|
|
|
|
*/
|
|
|
|
mos6502 *cpu;
|
2017-12-06 21:21:39 +00:00
|
|
|
|
|
|
|
/*
|
|
|
|
* This is the literal memory that the CPU above will create. You
|
|
|
|
* should _not_ attempt to free this memory; allow the CPU's own
|
|
|
|
* delete function to do that.
|
|
|
|
*/
|
|
|
|
vm_segment *memory;
|
2017-12-16 04:22:40 +00:00
|
|
|
|
|
|
|
/*
|
|
|
|
* Our two disk drives.
|
|
|
|
*/
|
|
|
|
apple2dd *drive1;
|
|
|
|
apple2dd *drive2;
|
2017-12-06 20:36:14 +00:00
|
|
|
} apple2;
|
|
|
|
|
|
|
|
extern apple2 *apple2_create();
|
2017-12-06 21:21:39 +00:00
|
|
|
extern void apple2_free(apple2 *);
|
|
|
|
extern void apple2_press_key(apple2 *, vm_8bit);
|
|
|
|
extern void apple2_clear_strobe(apple2 *);
|
|
|
|
extern void apple2_release_key(apple2 *);
|
2017-12-16 04:22:40 +00:00
|
|
|
extern int apple2_boot(apple2 *);
|
2017-12-06 20:36:14 +00:00
|
|
|
|
|
|
|
#endif
|