--- np2/bios/bios18.c 2003/10/19 14:56:15 1.2 +++ np2/bios/bios18.c 2003/11/15 07:10:02 1.4 @@ -3,9 +3,9 @@ #include "memory.h" #include "pccore.h" #include "iocore.h" -#include "font.h" #include "bios.h" #include "biosmem.h" +#include "font.h" static int sti_waiting = 0; @@ -437,7 +437,7 @@ void bios0x18(void) { case 0x00: // 8x8 i286_memword_write(I286_BX, I286_CX, 0x0101); i286_memstr_write(I286_BX, I286_CX+2, - &font[0x82000 + (I286_DL << 3)], 8); + fontrom + 0x82000 + (I286_DL << 3), 8); break; case 0x28: // 8x16 KANJI @@ -446,21 +446,21 @@ void bios0x18(void) { case 0x2b: i286_memword_write(I286_BX, I286_CX, 0x0102); i286_memstr_write(I286_BX, I286_CX+2, - &font[((I286_DL & 0x7f) << 12) - + ((I286_DH - 0x20) << 4)], 16); + fontrom + ((I286_DL & 0x7f) << 12) + + ((I286_DH - 0x20) << 4), 16); break; case 0x80: // 8x16 ANK i286_memword_write(I286_BX, I286_CX, 0x0102); i286_memstr_write(I286_BX, I286_CX+2, - &font[0x80000 + (I286_DL << 4)], 16); + fontrom + 0x80000 + (I286_DL << 4), 16); break; default: buf[0] = 0x02; buf[1] = 0x02; - p = &font[((I286_DL & 0x7f) << 12) - + (((I286_DH - 0x20) & 0x7f) << 4)]; + p = fontrom + ((I286_DL & 0x7f) << 12) + + (((I286_DH - 0x20) & 0x7f) << 4); for (i=1; i<17; i++, p++) { buf[i*2+0] = *p; buf[i*2+1] = *(p+0x800); @@ -491,8 +491,8 @@ void bios0x18(void) { case 0x1a: // ユーザー文字の定義 if ((I286_DH & 0x7e) == 0x76) { i286_memstr_read(I286_BX, I286_CX+2, buf, 32); - p = &font[((I286_DL & 0x7f) << 12) - + (((I286_DH - 0x20) & 0x7f) << 4)]; + p = fontrom + ((I286_DL & 0x7f) << 12) + + (((I286_DH - 0x20) & 0x7f) << 4); for (i=0; i<16; i++, p++) { *p = buf[i*2+0]; *(p+0x800) = buf[i*2+1];