|
|
| version 1.15, 2004/08/17 09:35:09 | version 1.16, 2004/08/17 12:30:41 |
|---|---|
| Line 112 static void crtc_timingupdate(void) { | Line 112 static void crtc_timingupdate(void) { |
| static void crtc_bankupdate(void) { | static void crtc_bankupdate(void) { |
| #if defined(SUPPORT_TURBOZ) | |
| UINT updatemask; | UINT updatemask; |
| UINT8 dispmode; | UINT8 dispmode; |
| UINT8 pal_bank; | UINT8 pal_bank; |
| UINT8 pal_disp; | UINT8 pal_disp; |
| #endif | |
| if (crtc.s.SCRN_BITS & 0x10) { | if (crtc.s.SCRN_BITS & 0x10) { |
| crtc.e.gram = gram + GRAM_BANK1; | crtc.e.gram = gram + GRAM_BANK1; |
| Line 125 static void crtc_bankupdate(void) { | Line 127 static void crtc_bankupdate(void) { |
| crtc.e.gram = gram + GRAM_BANK0; | crtc.e.gram = gram + GRAM_BANK0; |
| crtc.e.updatebit = UPDATE_VRAM0; | crtc.e.updatebit = UPDATE_VRAM0; |
| } | } |
| #if !defined(SUPPORT_TURBOZ) | |
| crtc.e.updatemask = (crtc.s.SCRN_BITS & SCRN_TEXTYx2)?0x3ff:0x7ff; | |
| crtc.e.dispmode = | |
| (crtc.s.SCRN_BITS & SCRN_DISPVRAM)?SCRN_BANK1:SCRN_BANK0; | |
| #else | |
| dispmode = (crtc.s.SCRN_BITS & SCRN_DISPVRAM)?SCRN_BANK1:SCRN_BANK0; | dispmode = (crtc.s.SCRN_BITS & SCRN_DISPVRAM)?SCRN_BANK1:SCRN_BANK0; |
| pal_bank = PAL_NORMAL; | pal_bank = PAL_NORMAL; |
| pal_disp = PAL_NORMAL; | pal_disp = PAL_NORMAL; |
| if ((!(crtc.s.EXTPALMODE & 0x80)) || (crtc.s.SCRN_BITS & SCRN_UNDERLINE)) { | if ((!(crtc.s.EXTPALMODE & 0x80)) || (crtc.s.SCRN_BITS & SCRN_UNDERLINE)) { |
| updatemask = 0x7ff; | updatemask = 0x7ff; |
| if ((crtc.s.SCRN_BITS & SCRN_24KHZ) && (!crtc.s.width40)) { | if ((crtc.s.SCRN_BITS & SCRN_24KHZ) && (!crtc.s.width40)) { |
| Line 234 static void crtc_bankupdate(void) { | Line 241 static void crtc_bankupdate(void) { |
| crtc.e.dispmode = dispmode; | crtc.e.dispmode = dispmode; |
| crtc.e.pal_bank = pal_bank; | crtc.e.pal_bank = pal_bank; |
| crtc.e.pal_disp = pal_disp; | crtc.e.pal_disp = pal_disp; |
| #endif | |
| } | } |
| Line 297 void IOOUTCALL ply_o(UINT port, REG8 val | Line 305 void IOOUTCALL ply_o(UINT port, REG8 val |
| (void)port; | (void)port; |
| } | } |
| REG8 IOINPCALL ply_i(UINT port) { | |
| (void)port; | |
| return(crtc.s.rgbp[CRTC_PLY]); | |
| } | |
| // ---- パレット | // ---- パレット |
| void IOOUTCALL palette_o(UINT port, REG8 value) { | void IOOUTCALL palette_o(UINT port, REG8 value) { |
| REG8 sft; | |
| UINT num; | UINT num; |
| #if defined(SUPPORT_TURBOZ) | |
| REG8 sft; | |
| UINT pal; | UINT pal; |
| #endif | |
| #if defined(SUPPORT_TURBOZ) | |
| crtc.s.lastpal = (value & 0xf0); | crtc.s.lastpal = (value & 0xf0); |
| if (crtc.s.EXTPALMODE & 0x80) { | if (!(crtc.s.EXTPALMODE & 0x80)) { |
| #endif | |
| num = (port >> 8) & 3; | |
| if (crtc.s.rgbp[num] != value) { | |
| crtc.s.rgbp[num] = value; | |
| makescrn.palandply = 1; | |
| } | |
| #if defined(SUPPORT_TURBOZ) | |
| } | |
| else { | |
| if ((crtc.s.EXTGRPHPAL & 0x88) != 0x80) { | if ((crtc.s.EXTGRPHPAL & 0x88) != 0x80) { |
| return; | return; |
| } | } |
| Line 349 void IOOUTCALL palette_o(UINT port, REG8 | Line 363 void IOOUTCALL palette_o(UINT port, REG8 |
| pal_setgrph(crtc.e.pal_bank, (REG8)num); | pal_setgrph(crtc.e.pal_bank, (REG8)num); |
| } | } |
| } | } |
| else { | #endif |
| num = (port >> 8) & 3; | } |
| if (crtc.s.rgbp[num] != value) { | |
| crtc.s.rgbp[num] = value; | void IOOUTCALL blackctrl_o(UINT port, REG8 value) { |
| makescrn.palandply = 1; | |
| } | crtc.s.BLACKPAL = value; |
| } | makescrn.palandply = 1; |
| (void)port; | |
| } | |
| REG8 IOINPCALL blackctrl_i(UINT port) { | |
| (void)port; | |
| return(crtc.s.BLACKPAL); | |
| } | |
| // ---- turboZ | |
| #if defined(SUPPORT_TURBOZ) | |
| REG8 IOINPCALL ply_i(UINT port) { | |
| (void)port; | |
| return(crtc.s.rgbp[CRTC_PLY]); | |
| } | } |
| REG8 IOINPCALL palette_i(UINT port) { | REG8 IOINPCALL palette_i(UINT port) { |
| Line 396 REG8 IOINPCALL palette_i(UINT port) { | Line 428 REG8 IOINPCALL palette_i(UINT port) { |
| } | } |
| // ---- turboZ | |
| void IOOUTCALL extpal_o(UINT port, REG8 value) { | void IOOUTCALL extpal_o(UINT port, REG8 value) { |
| crtc.s.EXTPALMODE = value; | crtc.s.EXTPALMODE = value; |
| Line 459 REG8 IOINPCALL exttextdisp_i(UINT port) | Line 489 REG8 IOINPCALL exttextdisp_i(UINT port) |
| (void)port; | (void)port; |
| return(0xff); | return(0xff); |
| } | } |
| #endif | |
| void IOOUTCALL blackctrl_o(UINT port, REG8 value) { | |
| crtc.s.BLACKPAL = value; | |
| makescrn.palandply = 1; | |
| (void)port; | |
| } | |
| REG8 IOINPCALL blackctrl_i(UINT port) { | |
| (void)port; | |
| return(crtc.s.BLACKPAL); | |
| } | |
| // ---- | // ---- |
| Line 494 void crtc_setwidth(REG8 width40) { | Line 512 void crtc_setwidth(REG8 width40) { |
| // ---- | // ---- |
| #if defined(SUPPORT_TURBOZ) | |
| static void resetpal(void) { | static void resetpal(void) { |
| CopyMemory(crtc.p.text, defpaltext, sizeof(defpaltext)); | CopyMemory(crtc.p.text, defpaltext, sizeof(defpaltext)); |
| CopyMemory(crtc.p.grph[0], defpalgrph, sizeof(defpalgrph)); | CopyMemory(crtc.p.grph[0], defpalgrph, sizeof(defpalgrph)); |
| CopyMemory(crtc.p.grph[1], defpalgrph, sizeof(defpalgrph)); | CopyMemory(crtc.p.grph[1], defpalgrph, sizeof(defpalgrph)); |
| } | } |
| #endif | |
| #if defined(SUPPORT_TURBOZ) | |
| void crtc_initialize(void) { | void crtc_initialize(void) { |
| UINT p; | UINT p; |
| Line 510 void crtc_initialize(void) { | Line 531 void crtc_initialize(void) { |
| crtc.p.grph4096[p] = p; | crtc.p.grph4096[p] = p; |
| } | } |
| } | } |
| #endif | |
| void crtc_reset(void) { | void crtc_reset(void) { |
| Line 517 void crtc_reset(void) { | Line 539 void crtc_reset(void) { |
| CopyMemory(crtc.s.rgbp, defrgbp, 4); | CopyMemory(crtc.s.rgbp, defrgbp, 4); |
| CopyMemory(crtc.s.reg, defreg, 18); | CopyMemory(crtc.s.reg, defreg, 18); |
| crtc.s.width40 = 1; | crtc.s.width40 = 1; |
| #if defined(SUPPORT_TURBOZ) | |
| if (pccore.ROM_TYPE < 3) { | if (pccore.ROM_TYPE < 3) { |
| resetpal(); | resetpal(); |
| } | } |
| #endif | |
| // IPLが勝手に切り替える筈である | // IPLが勝手に切り替える筈である |
| // 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; |