Files
86Box/src/ide.h
OBattler b78b2fecaa Timer counters now 64-bit;
Cleaned up floppy code a lot and reverted to single poller;
Fixed segment present bit and limit checking at read/write within segment;
The ASUS boards now have memregs too;
RTC code improved based on suggestion by Sarah Walker;
Fixed SVGA odd/even emulation and added chain odd/even support;
Removed non-existent CPU's.
2016-07-19 02:44:32 +02:00

61 lines
1.8 KiB
C

#ifndef __IDE__
#define __IDE__
struct IDE;
extern void writeide(int ide_board, uint16_t addr, uint8_t val);
extern void writeidew(int ide_board, uint16_t val);
extern uint8_t readide(int ide_board, uint16_t addr);
extern uint16_t readidew(int ide_board);
extern void callbackide(int ide_board);
extern void resetide(void);
extern void ide_init();
extern void ide_ter_init();
extern void ide_pri_enable();
extern void ide_sec_enable();
extern void ide_ter_enable();
extern void ide_pri_disable();
extern void ide_sec_disable();
extern void ide_ter_disable();
extern void ide_set_bus_master(int (*read_sector)(int channel, uint8_t *data), int (*write_sector)(int channel, uint8_t *data), void (*set_irq)(int channel));
/*ATAPI stuff*/
typedef struct ATAPI
{
int (*ready)(void);
int (*medium_changed)(void);
int (*readtoc)(uint8_t *b, uint8_t starttrack, int msf, int maxlen, int single);
int (*readtoc_session)(uint8_t *b, int msf, int maxlen);
int (*readtoc_raw)(uint8_t *b, int maxlen);
uint8_t (*getcurrentsubchannel)(uint8_t *b, int msf);
void (*readsector)(uint8_t *b, int sector);
void (*readsector_raw)(uint8_t *b, int sector);
void (*playaudio)(uint32_t pos, uint32_t len, int ismsf);
void (*seek)(uint32_t pos);
void (*load)(void);
void (*eject)(void);
void (*pause)(void);
void (*resume)(void);
uint32_t (*size)(void);
int (*status)(void);
int (*is_track_audio)(uint32_t pos, int ismsf);
void (*stop)(void);
void (*exit)(void);
} ATAPI;
extern ATAPI *atapi;
void atapi_discchanged();
void atapi_insert_cdrom();
extern int ideboard;
extern int64_t idecallback[3];
extern char ide_fn[4][512];
extern int cdrom_channel;
#endif //__IDE__