Thoroughly clean up the code to vastly reduce the number of compiler warnings and found and fixed several bugs in the process; Applied all mainline PCem commits; Added SCSI hard disk emulation; Commented out all unfinished machines and graphics cards; Added the AOpen AP53 and ASUS P/I-P55T2 machines as well as another Tyan 440FX machine, all three with AMI WinBIOS (patch from TheCollector1995); Added the Diamond Stealth 3D 3000 (S3 ViRGE/VX) graphics card (patch from TheCollector1995); Added the PS/2 XT IDE (AccuLogic) HDD Controller (patch from TheCollector1995); Added Microsoft/Logitech Bus Mouse emulation (patch from waltje); Overhauled the makefiles (patch from waltje); Added the Adaptec AHA-1542CF SCSI controller (patch from waltje); Added preliminary (but still unfinished) Adaptec AHA-154x SCSI controller BIOS support (patch from waltje); Added an ISABugger debugging device (patch from waltje); Added sanity checks to the Direct3D code.
87 lines
2.1 KiB
C
87 lines
2.1 KiB
C
/* Copyright holders: Sarah Walker, Tenshi
|
|
see COPYING for more details
|
|
*/
|
|
typedef struct ega_t
|
|
{
|
|
mem_mapping_t mapping;
|
|
|
|
rom_t bios_rom;
|
|
|
|
uint8_t crtcreg;
|
|
uint8_t crtc[32];
|
|
uint8_t gdcreg[16];
|
|
int gdcaddr;
|
|
uint8_t attrregs[32];
|
|
int attraddr, attrff;
|
|
int attr_palette_enable;
|
|
uint8_t seqregs[64];
|
|
int seqaddr;
|
|
|
|
uint8_t miscout;
|
|
int vidclock;
|
|
|
|
uint8_t la, lb, lc, ld;
|
|
|
|
uint8_t stat;
|
|
|
|
int fast;
|
|
uint8_t colourcompare, colournocare;
|
|
int readmode, writemode, readplane;
|
|
int chain4, chain2_read, chain2_write;
|
|
int oddeven_page, oddeven_chain;
|
|
int enablevram, extvram;
|
|
uint8_t writemask;
|
|
uint32_t charseta, charsetb;
|
|
|
|
uint8_t egapal[16];
|
|
uint32_t *pallook;
|
|
|
|
int vtotal, dispend, vsyncstart, split, vblankstart;
|
|
int hdisp, htotal, hdisp_time, rowoffset;
|
|
int lowres, interlace;
|
|
int linedbl, rowcount;
|
|
double clock;
|
|
uint32_t ma_latch;
|
|
|
|
int vres;
|
|
|
|
int dispontime, dispofftime;
|
|
int vidtime;
|
|
|
|
uint8_t scrblank;
|
|
|
|
int dispon;
|
|
int hdisp_on;
|
|
|
|
uint32_t ma, maback, ca;
|
|
int vc;
|
|
int sc;
|
|
int linepos, vslines, linecountff, oddeven;
|
|
int con, cursoron, blink;
|
|
int scrollcache;
|
|
|
|
int firstline, lastline;
|
|
int firstline_draw, lastline_draw;
|
|
int displine;
|
|
|
|
uint8_t *vram;
|
|
int vrammask;
|
|
|
|
int video_res_x, video_res_y, video_bpp;
|
|
} ega_t;
|
|
|
|
extern int update_overscan;
|
|
|
|
void *ega_standalone_init();
|
|
void ega_out(uint16_t addr, uint8_t val, void *p);
|
|
uint8_t ega_in(uint16_t addr, void *p);
|
|
void ega_poll(void *p);
|
|
void ega_recalctimings(struct ega_t *ega);
|
|
void ega_write(uint32_t addr, uint8_t val, void *p);
|
|
uint8_t ega_read(uint32_t addr, void *p);
|
|
void ega_init(ega_t *ega);
|
|
|
|
extern device_t ega_device;
|
|
extern device_t cpqega_device;
|
|
extern device_t sega_device;
|