--- xmil/io/crtc.h 2004/08/08 16:39:03 1.4 +++ xmil/io/crtc.h 2004/08/13 04:39:09 1.8 @@ -64,27 +64,28 @@ enum { SCRN_DISPCHANGE = SCRN_24KHZ|SCRN_200LINE|SCRN_TEXTYx2|SCRN_UNDERLINE }; +enum { + CRTCREG_HSIZE = 0, + CRTCREG_HDISP = 1, + CRTCREG_HSYNC = 2, + CRTCREG_PULSE = 3, + CRTCREG_VSIZE = 4, + CRTCREG_VSIZEA = 5, + CRTCREG_VDISP = 6, + CRTCREG_VSYNC = 7, + CRTCREG_CHRCY = 9, + CRTCREG_POSH = 12, + CRTCREG_POSL = 13, + + CRTCREG_MAX = 18 +}; + typedef struct { UINT8 rgbp[4]; UINT8 SCRN_BITS; - UINT8 CRTC_NUM; - - WORD FNT_YL; - BYTE TXT_XL; - BYTE TXT_YL; - BYTE TXT_YS; - - WORD CRT_YL; -// WORD CRT_VS; -// WORD CRT_VL; - - BYTE TXT_VL; - BYTE TXT_VLA; - - WORD TXT_TOP; - WORD fnty; - + UINT8 regnum; + UINT8 reg[CRTCREG_MAX]; UINT8 BLACKPAL; UINT8 EXTPALMODE; UINT8 EXTGRPHPAL; @@ -100,7 +101,13 @@ typedef struct { UINT8 pal_bank; UINT8 pal_disp; - UINT vs; + UINT pos; + UINT fonty; + UINT yl; + + SINT32 dispclock; + SINT32 vsyncstart; + SINT32 vpulseclock; UINT vl; } CRTCEXT; @@ -119,7 +126,8 @@ typedef struct { // ---- -void vrambank_patch(void); +void crtc_bankupdate(void); // vrambank_patch +void crtc_regupdate(void); void IOOUTCALL crtc_o(UINT port, REG8 value); // x1_crtc_w @@ -149,6 +157,7 @@ REG8 IOINPCALL blackctrl_i(UINT port); void crtc_initialize(void); void crtc_reset(void); +void crtc_forcesetwidth(REG8 width); #ifdef __cplusplus }