|
|
| version 1.7, 2004/08/08 16:39:03 | version 1.9, 2004/08/12 17:57:36 |
|---|---|
| Line 25 static const CRTCSTAT crtcdefault = { | Line 25 static const CRTCSTAT crtcdefault = { |
| 0, // SCRN_BITS | 0, // SCRN_BITS |
| 0, // CRTC_NUM | 0, // CRTC_NUM |
| 8, // FNT_YL | 7, // _FNT_YL |
| 40, // TXT_XL | 40, // TXT_XL |
| 25, // TXT_YL | 25, // TXT_YL |
| 28, // TXT_YS | 28, // TXT_YS |
| 200, // CRT_YL | // 200, // CRT_YL |
| // 232, // CRT_VS | // 232, // CRT_VS |
| // 266, // CRT_VL | // 266, // CRT_VL |
| Line 38 static const CRTCSTAT crtcdefault = { | Line 38 static const CRTCSTAT crtcdefault = { |
| 10, // TXT_VLA | 10, // TXT_VLA |
| 0, // TXT_TOP | 0, // TXT_TOP |
| 8, // fnty | // 8, // fnty |
| 0, // lastpal | 0, // lastpal |
| Line 49 static const CRTCSTAT crtcdefault = { | Line 49 static const CRTCSTAT crtcdefault = { |
| }; | }; |
| void vrambank_patch(void) { | void crtc_bankupdate(void) { |
| UINT updatemask; | UINT updatemask; |
| UINT8 dispmode; | UINT8 dispmode; |
| Line 57 void vrambank_patch(void) { | Line 57 void vrambank_patch(void) { |
| UINT8 pal_disp; | UINT8 pal_disp; |
| if (crtc.s.SCRN_BITS & 0x10) { | if (crtc.s.SCRN_BITS & 0x10) { |
| crtc.e.gram = GRP_RAM + GRAM_BANK1; | crtc.e.gram = gram + GRAM_BANK1; |
| crtc.e.updatebit = UPDATE_VRAM1; | crtc.e.updatebit = UPDATE_VRAM1; |
| } | } |
| else { | else { |
| crtc.e.gram = GRP_RAM + GRAM_BANK0; | crtc.e.gram = gram + GRAM_BANK0; |
| crtc.e.updatebit = UPDATE_VRAM0; | crtc.e.updatebit = UPDATE_VRAM0; |
| } | } |
| dispmode = (crtc.s.SCRN_BITS & SCRN_DISPVRAM)?SCRN_BANK1:SCRN_BANK0; | dispmode = (crtc.s.SCRN_BITS & SCRN_DISPVRAM)?SCRN_BANK1:SCRN_BANK0; |
| Line 173 void vrambank_patch(void) { | Line 173 void vrambank_patch(void) { |
| crtc.e.pal_disp = pal_disp; | crtc.e.pal_disp = pal_disp; |
| } | } |
| static void crtc_updt(void) { | void crtc_regupdate(void) { |
| UINT fonty; | |
| fonty = crtc.s._FNT_YL; | |
| if (crtc.s.SCRN_BITS & SCRN_24KHZ) { | if (crtc.s.SCRN_BITS & SCRN_24KHZ) { |
| crtc.s.fnty = (crtc.s.FNT_YL >> 1) & 0xfffe; | fonty >>= 1; |
| } | |
| else { | |
| crtc.s.fnty = crtc.s.FNT_YL & 0xfffe; | |
| } | |
| if (crtc.s.TXT_YL) { | |
| crtc.s.CRT_YL = crtc.s.fnty * crtc.s.TXT_YL; | |
| } | |
| else { | |
| crtc.s.CRT_YL = crtc.s.fnty * 1; | |
| } | } |
| crtc.e.vs = crtc.s.fnty * (crtc.s.TXT_YS + 1); | fonty += 1; |
| crtc.e.vl = (crtc.s.TXT_VL + 1) * crtc.s.fnty + crtc.s.TXT_VLA; | crtc.e.fonty = fonty; |
| // TRACEOUT(("set> %d / %d / %d", crtc.s.CRT_YL, crtc.s.CRT_VS, crtc.s.CRT_VL)); | crtc.e.yl = (crtc.s.TXT_YL & 0x7f); |
| crtc.e.dl = fonty * crtc.e.yl; | |
| crtc.e.vs = fonty * ((crtc.s.TXT_YS & 0x7f) + 1); | |
| crtc.e.vl = fonty * ((crtc.s.TXT_VL & 0x7f) + 1) + (crtc.s.TXT_VLA & 0x1f); | |
| } | } |
| Line 210 void IOOUTCALL crtc_o(UINT port, REG8 va | Line 208 void IOOUTCALL crtc_o(UINT port, REG8 va |
| else { | else { |
| crtc.s.TXT_XL = 80; | crtc.s.TXT_XL = 80; |
| } | } |
| vrambank_patch(); | crtc_bankupdate(); |
| break; | break; |
| case 0x04: | case 0x04: |
| Line 230 void IOOUTCALL crtc_o(UINT port, REG8 va | Line 228 void IOOUTCALL crtc_o(UINT port, REG8 va |
| break; | break; |
| case 0x09: | case 0x09: |
| crtc.s.FNT_YL = (WORD)value+1; | crtc.s._FNT_YL = value; |
| break; | break; |
| case 0x0c: | case 0x0c: |
| Line 250 void IOOUTCALL crtc_o(UINT port, REG8 va | Line 248 void IOOUTCALL crtc_o(UINT port, REG8 va |
| } | } |
| // crtc.s.GRP_XL = crtc.s.TXT_XL << 3; | // crtc.s.GRP_XL = crtc.s.TXT_XL << 3; |
| // crtc.s.GRP_YL = 200; | // crtc.s.GRP_YL = 200; |
| crtc_updt(); | crtc_regupdate(); |
| scrnallflash = 1; /* 990220 puni */ | scrnallflash = 1; /* 990220 puni */ |
| } | } |
| } | } |
| Line 268 void IOOUTCALL scrn_o(UINT port, REG8 va | Line 266 void IOOUTCALL scrn_o(UINT port, REG8 va |
| // pal_reset(); // なんで? | // pal_reset(); // なんで? |
| scrnallflash = 1; | scrnallflash = 1; |
| makescrn.palandply = 1; | makescrn.palandply = 1; |
| crtc_updt(); | crtc_regupdate(); |
| } | } |
| vrambank_patch(); | crtc_bankupdate(); |
| (void)port; | (void)port; |
| } | } |
| Line 396 REG8 IOINPCALL palette_i(UINT port) { | Line 394 REG8 IOINPCALL palette_i(UINT port) { |
| void IOOUTCALL extpal_o(UINT port, REG8 value) { | void IOOUTCALL extpal_o(UINT port, REG8 value) { |
| crtc.s.EXTPALMODE = value; | crtc.s.EXTPALMODE = value; |
| vrambank_patch(); | crtc_bankupdate(); |
| (void)port; | (void)port; |
| } | } |
| Line 442 REG8 IOINPCALL exttextpal_i(UINT port) { | Line 440 REG8 IOINPCALL exttextpal_i(UINT port) { |
| void IOOUTCALL exttextdisp_o(UINT port, REG8 value) { | void IOOUTCALL exttextdisp_o(UINT port, REG8 value) { |
| crtc.s.ZPRY = value; | crtc.s.ZPRY = value; |
| vrambank_patch(); | crtc_bankupdate(); |
| (void)port; | (void)port; |
| } | } |
| Line 496 void crtc_reset(void) { | Line 494 void crtc_reset(void) { |
| } | } |
| if ((pccore.ROM_TYPE >= 2) && (!(pccore.DIP_SW & 1))) { | if ((pccore.ROM_TYPE >= 2) && (!(pccore.DIP_SW & 1))) { |
| crtc.s.SCRN_BITS = SCRN_200LINE; | crtc.s.SCRN_BITS = SCRN_200LINE; |
| crtc.s.FNT_YL = 16; | crtc.s._FNT_YL = 15; |
| } | } |
| pal_reset(); | pal_reset(); |
| crtc_updt(); | crtc_bankupdate(); |
| crtc_regupdate(); | |
| vrambank_patch(); | |
| makescrn.palandply = 1; | makescrn.palandply = 1; |
| scrnallflash = 1; | scrnallflash = 1; |
| } | } |
| void crtc_forcesetwidth(REG8 width) { | |
| crtc.s.TXT_XL = (UINT8)width; | |
| crtc_bankupdate(); | |
| scrnallflash = 1; | |
| } | |