|
|
| version 1.1, 2004/08/01 05:31:30 | version 1.3, 2004/08/04 15:18:26 |
|---|---|
| Line 4 | Line 4 |
| #include "iocore.h" | #include "iocore.h" |
| #include "x1_io.h" | #include "x1_io.h" |
| #include "x1_crtc.h" | #include "x1_crtc.h" |
| #include "x1_vram.h" | #include "vram.h" |
| #include "font.h" | #include "font.h" |
| Line 16 static void pcgsync(void) { | Line 16 static void pcgsync(void) { |
| static UINT pcg_offset(void) { | static UINT pcg_offset(void) { |
| if (TXT_RAM[TEXT_ATR + 0x07ff] & 0x20) { | if (tram[TRAM_ATR + 0x07ff] & 0x20) { |
| return(0x7ff); | return(0x7ff); |
| } | } |
| if (TXT_RAM[TEXT_ATR + 0x03ff] & 0x20) { | if (tram[TRAM_ATR + 0x03ff] & 0x20) { |
| return(0x3ff); | return(0x3ff); |
| } | } |
| if (TXT_RAM[TEXT_ATR + 0x05ff] & 0x20) { | if (tram[TRAM_ATR + 0x05ff] & 0x20) { |
| return(0x5ff); | return(0x5ff); |
| } | } |
| if (TXT_RAM[TEXT_ATR + 0x01ff] & 0x20) { | if (tram[TRAM_ATR + 0x01ff] & 0x20) { |
| return(0x1ff); | return(0x1ff); |
| } | } |
| return(0x7ff); | return(0x7ff); |
| Line 33 static UINT pcg_offset(void) { | Line 33 static UINT pcg_offset(void) { |
| static UINT knj_offset(void) { | static UINT knj_offset(void) { |
| if (!(TXT_RAM[TEXT_ATR + 0x07ff] & 0x20)) { | if (!(tram[TRAM_ATR + 0x07ff] & 0x20)) { |
| return(0x7ff); | return(0x7ff); |
| } | } |
| if (!(TXT_RAM[TEXT_ATR + 0x03ff] & 0x20)) { | if (!(tram[TRAM_ATR + 0x03ff] & 0x20)) { |
| return(0x3ff); | return(0x3ff); |
| } | } |
| if (!(TXT_RAM[TEXT_ATR + 0x05ff] & 0x20)) { | if (!(tram[TRAM_ATR + 0x05ff] & 0x20)) { |
| return(0x5ff); | return(0x5ff); |
| } | } |
| if (!(TXT_RAM[TEXT_ATR + 0x01ff] & 0x20)) { | if (!(tram[TRAM_ATR + 0x01ff] & 0x20)) { |
| return(0x1ff); | return(0x1ff); |
| } | } |
| return(0x7ff); | return(0x7ff); |
| Line 73 void IOOUTCALL pcg_o(UINT port, REG8 val | Line 73 void IOOUTCALL pcg_o(UINT port, REG8 val |
| if (crtc.SCRN_BITS & SCRN_PCGMODE) { | if (crtc.SCRN_BITS & SCRN_PCGMODE) { |
| off = pcg_offset(); | off = pcg_offset(); |
| chr = TXT_RAM[TEXT_ANK + off]; | chr = tram[TRAM_ANK + off]; |
| if (TXT_RAM[TEXT_KNJ + off] & 0x90) { | if (tram[TRAM_KNJ + off] & 0x90) { |
| chr &= 0xfe; | chr &= 0xfe; |
| l = port & 15; | l = port & 15; |
| } | } |
| Line 97 void IOOUTCALL pcg_o(UINT port, REG8 val | Line 97 void IOOUTCALL pcg_o(UINT port, REG8 val |
| } | } |
| else { | else { |
| off = nowsyncoffset(); // 990622 puni | off = nowsyncoffset(); // 990622 puni |
| chr = TXT_RAM[TEXT_ANK + off]; | chr = tram[TRAM_ANK + off]; |
| if (pcg.r.vsync) { | if (pcg.r.vsync) { |
| pcgsync(); | pcgsync(); |
| } | } |
| Line 122 void IOOUTCALL pcg_o(UINT port, REG8 val | Line 122 void IOOUTCALL pcg_o(UINT port, REG8 val |
| REG8 IOINPCALL pcg_i(UINT port) { | REG8 IOINPCALL pcg_i(UINT port) { |
| WORD off; | UINT off; |
| int l; | int l; |
| BYTE chr,knj,val; | BYTE chr,knj,val; |
| Line 131 REG8 IOINPCALL pcg_i(UINT port) { | Line 131 REG8 IOINPCALL pcg_i(UINT port) { |
| l = port & 0x0f; | l = port & 0x0f; |
| if ((port & 0xff00) == 0x1400) { | if ((port & 0xff00) == 0x1400) { |
| off = knj_offset(); | off = knj_offset(); |
| chr = TXT_RAM[off + TEXT_ANK]; | chr = tram[TRAM_ANK + off]; |
| knj = TXT_RAM[off + TEXT_KNJ]; | knj = tram[TRAM_KNJ + off]; |
| if (knj & 0x80) { | if (knj & 0x80) { |
| DWORD p; | DWORD p; |
| p = ((((DWORD)knj << 8) | chr) & 0x1fff) << 4; | p = ((((DWORD)knj << 8) | chr) & 0x1fff) << 4; |
| Line 152 REG8 IOINPCALL pcg_i(UINT port) { | Line 152 REG8 IOINPCALL pcg_i(UINT port) { |
| } | } |
| else { | else { |
| off = pcg_offset(); | off = pcg_offset(); |
| chr = TXT_RAM[TEXT_ANK + off]; | chr = tram[TRAM_ANK + off]; |
| if (TXT_RAM[TEXT_KNJ + off] & 0x90) { | if (tram[TRAM_KNJ + off] & 0x90) { |
| chr &= 0xfe; | chr &= 0xfe; |
| } | } |
| else { | else { |
| Line 176 REG8 IOINPCALL pcg_i(UINT port) { | Line 176 REG8 IOINPCALL pcg_i(UINT port) { |
| } | } |
| else { | else { |
| off = nowsyncoffset(); // 990622 puni | off = nowsyncoffset(); // 990622 puni |
| chr = TXT_RAM[TEXT_ANK + off]; | chr = tram[TRAM_ANK + off]; |
| if (pcg.r.vsync) { | if (pcg.r.vsync) { |
| pcgsync(); | pcgsync(); |
| } | } |