Diff for /np2/bios/bios18.c between versions 1.20 and 1.21

version 1.20, 2004/02/20 08:32:23 version 1.21, 2004/02/20 15:20:29
Line 132  const CRTDATA *crt; Line 132  const CRTDATA *crt;
         bios0x18_10(0);          bios0x18_10(0);
 }  }
   
   REG16 bios0x18_14(REG16 seg, REG16 off, REG16 code) {
   
           UINT16  size;
   const char      *p;
           BYTE    buf[32];
           UINT    i;
   
           switch(code >> 8) {
                   case 0x00:                      // 8x8
                           size = 0x0101;
                           i286_memword_write(seg, off, 0x0101);
                           p = fontrom + 0x82000 + ((code & 0xff) << 4);
                           i286_memstr_write(seg, off + 2, p, 8);
                           break;
   
                   case 0x28:                      // 8x16 KANJI
                   case 0x29:
                   case 0x2a:
                   case 0x2b:
                           size = 0x0102;
                           i286_memword_write(seg, off, 0x0102);
                           p = fontrom;
                           p += (code & 0x7f) << 12;
                           p += (((code >> 8) - 0x20) & 0x7f) << 4;
                           i286_memstr_write(seg, off + 2, p, 16);
                           break;
   
                   case 0x80:                      // 8x16 ANK
                           size = 0x0102;
                           p = fontrom + 0x80000 + ((code & 0xff) << 4);
                           i286_memstr_write(seg, off + 2, p, 16);
                           break;
   
                   default:
                           size = 0x0202;
                           p = fontrom;
                           p += (code & 0x7f) << 12;
                           p += (((code >> 8) - 0x20) & 0x7f) << 4;
                           for (i=0; i<16; i++, p++) {
                                   buf[i*2+0] = *p;
                                   buf[i*2+1] = *(p+0x800);
                           }
                           i286_memstr_write(seg, off + 2, buf, 32);
                           break;
           }
           i286_memword_write(seg, off, size);
           return(size);
   }
   
 void bios0x18_16(REG8 chr, REG8 atr) {  void bios0x18_16(REG8 chr, REG8 atr) {
   
         UINT32  i;          UINT32  i;
Line 164  static void setbiosgdc(UINT32 csrw, cons Line 213  static void setbiosgdc(UINT32 csrw, cons
 }  }
   
   
 static void bios18_47(void) {  static void bios0x18_47(void) {
   
         UCWTBL          ucw;          UCWTBL          ucw;
         GDCVECT         vect;          GDCVECT         vect;
Line 318  static void bios18_47(void) { Line 367  static void bios18_47(void) {
         setbiosgdc(csrw, &vect, ope);          setbiosgdc(csrw, &vect, ope);
 }  }
   
 static void bios18_49(void) {  static void bios0x18_49(void) {
   
         UCWTBL          ucw;          UCWTBL          ucw;
         UINT            i;          UINT            i;
Line 591  void bios0x18(void) { Line 640  void bios0x18(void) {
                         break;                          break;
   
                 case 0x14:                                              // フォントパターンの読み出し                  case 0x14:                                              // フォントパターンの読み出し
                         switch(CPU_DH) {                          bios0x18_14(CPU_BX, CPU_CX, CPU_DX);
                                 case 0x00:                      // 8x8  
                                         i286_memword_write(CPU_BX, CPU_CX, 0x0101);  
                                         i286_memstr_write(CPU_BX, CPU_CX + 2,  
                                                                 fontrom + 0x82000 + (CPU_DL << 4), 8);  
                                         break;  
   
                                 case 0x28:                      // 8x16 KANJI  
                                 case 0x29:  
                                 case 0x2a:  
                                 case 0x2b:  
                                         i286_memword_write(CPU_BX, CPU_CX, 0x0102);  
                                         i286_memstr_write(CPU_BX, CPU_CX + 2,  
                                                                 fontrom + ((CPU_DL & 0x7f) << 12)  
                                                                                 + ((CPU_DH - 0x20) << 4), 16);  
                                         break;  
   
                                 case 0x80:                      // 8x16 ANK  
                                         i286_memword_write(CPU_BX, CPU_CX, 0x0102);  
                                         i286_memstr_write(CPU_BX, CPU_CX + 2,  
                                                                 fontrom + 0x80000 + (CPU_DL << 4), 16);  
                                         break;  
   
                                 default:  
                                         buf[0] = 0x02;  
                                         buf[1] = 0x02;  
                                         p = fontrom + ((CPU_DL & 0x7f) << 12)  
                                                                 + (((CPU_DH - 0x20) & 0x7f) << 4);  
                                         for (i=1; i<17; i++, p++) {  
                                                 buf[i*2+0] = *p;  
                                                 buf[i*2+1] = *(p+0x800);  
                                         }  
                                         i286_memstr_write(CPU_BX, CPU_CX, buf, 34);  
                                         break;  
                         }  
                         break;                          break;
   
                 case 0x15:                                              // ライトペン位置読みだし                  case 0x15:                                              // ライトペン位置読みだし
Line 771  void bios0x18(void) { Line 786  void bios0x18(void) {
   
                 case 0x47:                                              // 直線、矩形の描画                  case 0x47:                                              // 直線、矩形の描画
                 case 0x48:                                              // 円の描画                  case 0x48:                                              // 円の描画
                         bios18_47();                          bios0x18_47();
                         break;                          break;
   
                 case 0x49:                                              // グラフィック文字の描画                  case 0x49:                                              // グラフィック文字の描画
                         bios18_49();                          bios0x18_49();
                         break;                          break;
   
                 case 0x4a:                                              // 描画モードの設定                  case 0x4a:                                              // 描画モードの設定

Removed from v.1.20  
changed lines
  Added in v.1.21


RetroPC.NET-CVS <cvs@retropc.net>