Diff for /np2/bios/bios18.c between versions 1.29 and 1.31

version 1.29, 2004/03/01 05:29:58 version 1.31, 2004/03/04 17:36:05
Line 210  const BYTE *p; Line 210  const BYTE *p;
                         size = 0x0101;                          size = 0x0101;
                         i286_memword_write(seg, off, 0x0101);                          i286_memword_write(seg, off, 0x0101);
                         p = fontrom + 0x82000 + ((code & 0xff) << 4);                          p = fontrom + 0x82000 + ((code & 0xff) << 4);
                         i286_memstr_write(seg, off + 2, p, 8);                          MEML_WRITESTR(seg, off + 2, p, 8);
                         break;                          break;
   
                 case 0x28:                      // 8x16 KANJI                  case 0x28:                      // 8x16 KANJI
Line 222  const BYTE *p; Line 222  const BYTE *p;
                         p = fontrom;                          p = fontrom;
                         p += (code & 0x7f) << 12;                          p += (code & 0x7f) << 12;
                         p += (((code >> 8) - 0x20) & 0x7f) << 4;                          p += (((code >> 8) - 0x20) & 0x7f) << 4;
                         i286_memstr_write(seg, off + 2, p, 16);                          MEML_WRITESTR(seg, off + 2, p, 16);
                         break;                          break;
   
                 case 0x80:                      // 8x16 ANK                  case 0x80:                      // 8x16 ANK
                         size = 0x0102;                          size = 0x0102;
                         p = fontrom + 0x80000 + ((code & 0xff) << 4);                          p = fontrom + 0x80000 + ((code & 0xff) << 4);
                         i286_memstr_write(seg, off + 2, p, 16);                          MEML_WRITESTR(seg, off + 2, p, 16);
                         break;                          break;
   
                 default:                  default:
Line 240  const BYTE *p; Line 240  const BYTE *p;
                                 buf[i*2+0] = *p;                                  buf[i*2+0] = *p;
                                 buf[i*2+1] = *(p+0x800);                                  buf[i*2+1] = *(p+0x800);
                         }                          }
                         i286_memstr_write(seg, off + 2, buf, 32);                          MEML_WRITESTR(seg, off + 2, buf, 32);
                         break;                          break;
         }          }
         i286_memword_write(seg, off, size);          i286_memword_write(seg, off, size);
Line 254  static void bios0x18_1a(REG16 seg, REG16 Line 254  static void bios0x18_1a(REG16 seg, REG16
         UINT    i;          UINT    i;
   
         if (((code >> 8) & 0x7e) == 0x76) {          if (((code >> 8) & 0x7e) == 0x76) {
                 i286_memstr_read(seg, off + 2, buf, 32);                  MEML_READSTR(seg, off + 2, buf, 32);
                 p = fontrom;                  p = fontrom;
                 p += (code & 0x7f) << 12;                  p += (code & 0x7f) << 12;
                 p += (((code >> 8) - 0x20) & 0x7f) << 4;                  p += (((code >> 8) - 0x20) & 0x7f) << 4;
Line 300  const CRTDATA *p; Line 300  const CRTDATA *p;
                         gdc_analogext(TRUE);                          gdc_analogext(TRUE);
                         mem[MEMB_PRXDUPD] |= 0x80;                          mem[MEMB_PRXDUPD] |= 0x80;
                         crt = 4;                          crt = 4;
                         master = 3;                          master = 3 + (scrn & 3);
                         slave = 1;                          slave = 1;
                         gdc.analog |= (1 << GDCANALOG_256E);                          gdc.analog |= (1 << GDCANALOG_256E);
                 }                  }
Line 339  const CRTDATA *p; Line 339  const CRTDATA *p;
 #endif  #endif
         }          }
         crt += (scrn & 3);          crt += (scrn & 3);
         master += (scrn & 3);  
   
         if (rate & 4) {          if (rate & 4) {
                 gdc.display |= (1 << GDCDISP_31);                  gdc.display |= (1 << GDCDISP_31);
Line 562  static void bios0x18_47(void) { Line 561  static void bios0x18_47(void) {
         SINT16          dy;          SINT16          dy;
   
         gdc_forceready(GDCWORK_SLAVE);          gdc_forceready(GDCWORK_SLAVE);
         i286_memstr_read(CPU_DS, CPU_BX, &ucw, sizeof(ucw));          MEML_READSTR(CPU_DS, CPU_BX, &ucw, sizeof(ucw));
         GBSX1 = LOADINTELWORD(ucw.GBSX1);          GBSX1 = LOADINTELWORD(ucw.GBSX1);
         GBSY1 = LOADINTELWORD(ucw.GBSY1);          GBSY1 = LOADINTELWORD(ucw.GBSY1);
         GBSX2 = LOADINTELWORD(ucw.GBSX2);          GBSX2 = LOADINTELWORD(ucw.GBSX2);
Line 673  static void bios0x18_49(void) { Line 672  static void bios0x18_49(void) {
   
         gdc_forceready(GDCWORK_SLAVE);          gdc_forceready(GDCWORK_SLAVE);
   
         i286_memstr_read(CPU_DS, CPU_BX, &ucw, sizeof(ucw));          MEML_READSTR(CPU_DS, CPU_BX, &ucw, sizeof(ucw));
         for (i=0; i<8; i++) {          for (i=0; i<8; i++) {
                 mem[MEMW_PRXGLS + i] = ucw.GBMDOTI[i];                  mem[MEMW_PRXGLS + i] = ucw.GBMDOTI[i];
                 pat[i] = GDCPATREVERSE(ucw.GBMDOTI[i]);                  pat[i] = GDCPATREVERSE(ucw.GBMDOTI[i]);
Line 971  void bios0x18(void) { Line 970  void bios0x18(void) {
                         break;                          break;
   
                 case 0x43:                                              // パレットの設定                  case 0x43:                                              // パレットの設定
                         i286_memstr_read(CPU_DS, CPU_BX + offsetof(UCWTBL, GBCPC),                          MEML_READSTR(CPU_DS, CPU_BX + offsetof(UCWTBL, GBCPC),
                                                                                                                                 tmp.col, 4);                                                                                                                                  tmp.col, 4);
                         for (i=0; i<4; i++) {                          for (i=0; i<4; i++) {
                                 gdc_setdegitalpal(6 - (i*2), (REG8)(tmp.col[i] >> 4));                                  gdc_setdegitalpal(6 - (i*2), (REG8)(tmp.col[i] >> 4));

Removed from v.1.29  
changed lines
  Added in v.1.31


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