|
|
| version 1.1, 2004/08/01 05:31:30 | version 1.4, 2008/06/02 20:07:31 |
|---|---|
| Line 6 | Line 6 |
| void IOOUTCALL cgrom_o(UINT port, REG8 value) { | void IOOUTCALL cgrom_o(UINT port, REG8 value) { |
| switch(port & 0x0f) { | switch(port) { |
| case 0: // 0x0e80 | case 0x0e80: |
| cgrom.reg[0] = value; | cgrom.reg[0] = value; |
| break; | break; |
| case 1: // 0x0e81 | case 0x0e81: |
| cgrom.reg[1] = value; | cgrom.reg[1] = value; |
| break; | break; |
| case 2: // 0x0e82 | case 0x0e82: |
| cgrom.face = (LOADINTELWORD(cgrom.reg) & (~15)); | cgrom.face = (LOADINTELWORD(cgrom.reg) & (~15)); |
| break; | break; |
| } | } |
| Line 25 REG8 IOINPCALL cgrom_i(UINT port) { | Line 25 REG8 IOINPCALL cgrom_i(UINT port) { |
| REG8 ret; | REG8 ret; |
| if ((port & (~1)) != 0x0e80) { | |
| return(0xff); | |
| } | |
| ret = 0; | ret = 0; |
| port &= 0x000f; | |
| if (cgrom.reg[1]) { | if (cgrom.reg[1]) { |
| switch(port) { | if (!(port & 1)) { /* 0x0e80 */ |
| case 0: // 0x0e80 | ret = font_knjx1[cgrom.face + cgrom.count]; |
| ret = font_knjx1[cgrom.face + cgrom.count]; | cgrom.flag |= 1; |
| cgrom.flag |= 1; | } |
| break; | else { /* 0x0e81 */ |
| ret = font_knjx1[cgrom.face + cgrom.count + FONTX1_LR]; | |
| case 1: // 0x0e81 | cgrom.flag |= 2; |
| ret = font_knjx1[cgrom.face + cgrom.count + FONTX1_LR]; | |
| cgrom.flag |= 2; | |
| break; | |
| } | } |
| /* 0x0e81 ポートリードの時だけインクリメントの筈だが…? */ | |
| if (cgrom.flag == 3) { | if (cgrom.flag == 3) { |
| cgrom.flag = 0; | cgrom.flag = 0; |
| cgrom.count = (cgrom.count + 1) & 15; | cgrom.count = (cgrom.count + 1) & 15; |
| } | } |
| } | } |
| else { | else { |
| if (port == 0) { // 0x0e80 | if (!(port & 1)) { /* 0x0e80 */ |
| if (cgrom.reg[0] >= 0x30) { | if (cgrom.reg[0] >= 0x30) { |
| ret = 0x40 + ((cgrom.reg[0] - 0x30) * 6); | ret = 0x40 + ((cgrom.reg[0] - 0x30) * 6); |
| } | } |
| Line 58 REG8 IOINPCALL cgrom_i(UINT port) { | Line 58 REG8 IOINPCALL cgrom_i(UINT port) { |
| } | } |
| // ---- | /* reset */ |
| void cgrom_reset(void) { | void cgrom_reset(void) { |