Changes since v0.7 : - Major CPU reorganisation. This has possibly broken some stuff, though I fixed all the regressions I could find - Lazy flags. This brought 10% speed improvement at one point, but that's probably been lost now - 430 VX chipset emulation - IDT Winchip emulation (currently sans MMX). Timing is probably wrong - Fixed a few FPU bugs - Timer reorganisation - Sound reorganisation - Other general reorganisation - AdLib Gold emulation - Windows Sound System emulation - Pro Audio Spectrum 16 emulation. This currently works with most DOS stuff, but not in Windows - Major improvements to GUS emulation. Has the downside that it now conflicts with SB emulation, so probably best to not enable both simultaneously - New graphics cards : - ATI-18800 (VGA Edge-16) - ATI-28800 (VGA Charger) - ATI Mach64GX (Graphics Pro Turbo). Quite a few features missing, but Windows doesn't seem to use half the features of this card - Cirrus Logic CL-GD5429. Blitter is a bit broken - Oak OTI-067 - S3 Trio64 (Number Nine 9FX) - S3 Virge. Only framebuffer stuff at the minute, Windows won't recognise the card - Trident TGUI-9440 - VGA. Doesn't work yet - Beginnings of 3DFX emulation, however this is in extremely early stages and doesn't do anything useful - Fixed DMA bug stopping floppy drives working in Windows 3.x - Fixed some other stuff probably - Broke some other stuff probably as well
47 lines
1.4 KiB
C
47 lines
1.4 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_pri_enable();
|
|
extern void ide_sec_enable();
|
|
extern void ide_pri_disable();
|
|
extern void ide_sec_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 (*readtoc)(uint8_t *b, uint8_t starttrack, int msf, int maxlen, int single);
|
|
void (*readtoc_session)(uint8_t *b, int msf, int maxlen);
|
|
uint8_t (*getcurrentsubchannel)(uint8_t *b, int msf);
|
|
void (*readsector)(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);
|
|
void (*stop)(void);
|
|
void (*exit)(void);
|
|
} ATAPI;
|
|
|
|
extern ATAPI *atapi;
|
|
|
|
void atapi_discchanged();
|
|
|
|
extern int ideboard;
|
|
|
|
extern int idecallback[2];
|
|
|
|
extern char ide_fn[2][512];
|
|
|
|
#endif //__IDE__
|