--- np2/io/cgrom.c 2004/03/30 07:12:03 1.10 +++ np2/io/cgrom.c 2005/02/07 14:46:11 1.14 @@ -27,7 +27,7 @@ static void cgwindowset(CGROM cr) { cgwindow.writable |= 1; high += cr->lr; } - else if ((code >= 0x08) && (code < 0x0c)) { + else if ((code >= 0x09) && (code < 0x0c)) { // ver0.78 if (cr->lr) { high = low; } @@ -62,6 +62,7 @@ static void IOOUTCALL cgrom_oa1(UINT por CGROM cr; +// TRACEOUT(("%.4x:%.2x [%.4x:%.4x]", port, dat, CPU_CS, CPU_IP)); cr = &cgrom; cr->code = (dat << 8) | (cr->code & 0xff); cgwindowset(cr); @@ -73,6 +74,7 @@ static void IOOUTCALL cgrom_oa3(UINT por CGROM cr; +// TRACEOUT(("%.4x:%.2x [%.4x:%.4x]", port, dat, CPU_CS, CPU_IP)); cr = &cgrom; cr->code = (cr->code & 0xff00) | dat; cgwindowset(cr); @@ -108,15 +110,17 @@ static void IOOUTCALL cgrom_oa9(UINT por static REG8 IOINPCALL cgrom_ia9(UINT port) { CGROM cr; -const BYTE *ptr; +const UINT8 *ptr; + int type; cr = &cgrom; ptr = fontrom; - if ((cr->code & 0x00fc) == 0x0008) { -// if (cr->lr) { + type = cr->code & 0x00ff; + if ((type >= 0x09) && (type < 0x0c)) { // ver0.78 + if (!cr->lr) { ptr += (cr->code & 0x7f7f) << 4; return(ptr[cr->line & 0x0f]); -// } + } } else if (cr->code & 0xff00) { ptr += (cr->code & 0x7f7f) << 4;