/********************************************************************* applefdc.h Implementation of various Apple Floppy Disk Controllers, including the classic Apple controller and the IWM (Integrated Woz Machine) chip Nate Woods Raphael Nabet *********************************************************************/ #ifndef APPLEFDC_H #define APPLEFDC_H #include "driver.h" #define APPLEFDC_PH0 0x01 #define APPLEFDC_PH1 0x02 #define APPLEFDC_PH2 0x04 #define APPLEFDC_PH3 0x08 typedef enum { APPLEFDC_APPLE2, /* classic Apple II disk controller (pre-IWM) */ APPLEFDC_IWM, /* Integrated Woz Machine */ APPLEFDC_SWIM /* Steve Woz Integrated Machine (NYI) */ } applefdc_t; struct applefdc_interface { applefdc_t type; void (*set_lines)(UINT8 lines); void (*set_enable_lines)(int enable_mask); UINT8 (*read_data)(void); void (*write_data)(UINT8 data); int (*read_status)(void); }; void applefdc_init(const struct applefdc_interface *intf); UINT8 applefdc_r(offs_t offset); void applefdc_w(offs_t offset, UINT8 data); UINT8 applefdc_get_lines(void); #endif /* APPLEFDC_H */