--- xmil/io/crtc.h 2004/08/12 13:32:52 1.5 +++ xmil/io/crtc.h 2004/08/15 11:14:42 1.10 @@ -64,27 +64,30 @@ 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, -typedef struct { - UINT8 rgbp[4]; - UINT8 SCRN_BITS; - UINT8 CRTC_NUM; - - BYTE _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; + CRTCREG_MAX = 18 +}; - WORD TXT_TOP; -// WORD fnty; +typedef struct { + UINT8 SCRN_BITS; + UINT8 width40; + UINT8 regnum; + UINT8 padding; + UINT8 rgbp[4]; + UINT8 reg[CRTCREG_MAX]; UINT8 BLACKPAL; UINT8 EXTPALMODE; UINT8 EXTGRPHPAL; @@ -93,6 +96,12 @@ typedef struct { } CRTCSTAT; typedef struct { + SINT32 rasterclock8; + SINT32 rasterdisp8; + UINT fonty; + UINT yl; + SINT32 frameclock; + UINT8 *gram; // curvram UINT updatemask; // updatemsk UINT8 updatebit; // curupdt @@ -100,12 +109,11 @@ typedef struct { UINT8 pal_bank; UINT8 pal_disp; - UINT fonty; - UINT yl; + UINT pos; - UINT dl; - UINT vs; - UINT vl; + SINT32 dispclock; + SINT32 vsyncstart; + SINT32 vpulseclock; } CRTCEXT; typedef struct { @@ -123,7 +131,10 @@ typedef struct { // ---- -void vrambank_patch(void); +void crtc_setwidth(REG8 width40); +void crtc_update(void); +// void crtc_bankupdate(void); // vrambank_patch +// void crtc_regupdate(void); void IOOUTCALL crtc_o(UINT port, REG8 value); // x1_crtc_w @@ -153,6 +164,7 @@ REG8 IOINPCALL blackctrl_i(UINT port); void crtc_initialize(void); void crtc_reset(void); +void crtc_forcesetwidth(REG8 width); #ifdef __cplusplus }