Diff for /np2/bios/bios.c between versions 1.43 and 1.47

version 1.43, 2004/02/20 08:32:23 version 1.47, 2004/02/26 09:08:29
Line 282  static void bios_boot(void) { Line 282  static void bios_boot(void) {
         }          }
 }  }
   
   // テスト(こんなんじゃだめぽ
   static void bios0x1f(void) {
   
           BYTE    work[256];
           UINT32  src;
           UINT32  dst;
           UINT    leng;
           UINT    l;
   
           if (CPU_AH == 0x90) {
                   i286_memstr_read(CPU_ES, CPU_BX + 0x10, work, 0x10);
                   src = work[2] + (work[3] << 8) + (work[4] << 16) + CPU_SI;
                   dst = work[10] + (work[11] << 8) + (work[12] << 16) + CPU_DI;
                   leng = LOW16(CPU_CX - 1) + 1;
                   TRACEOUT(("protect bios: memmove"));
                   TRACEOUT(("%.2x %.2x %.2x %.2x %.2x %.2x %.2x %.2x",
                                   work[0], work[1], work[2], work[3],
                                   work[4], work[5], work[6], work[7]));
                   TRACEOUT(("%.2x %.2x %.2x %.2x %.2x %.2x %.2x %.2x",
                                   work[8], work[9], work[10], work[11],
                                   work[12], work[13], work[14], work[15]));
                   TRACEOUT(("SI=%.4x DI=%.4x CX=%.4x", CPU_SI, CPU_DI, CPU_CX));
                   TRACEOUT(("src:%08x dst:%08x leng:%08x", src, dst, leng));
                   do {
                           l = min(leng, 256);
                           i286_memx_read(src, work, l);
                           i286_memx_write(dst, work, l);
                           src += l;
                           dst += l;
                           leng -= l;
                   } while(leng);
           }
           else {
                   TRACEOUT(("unsupport protect bios AH=%.2x", CPU_AH));
           }
   }
   
 UINT MEMCALL biosfunc(UINT32 adrs) {  UINT MEMCALL biosfunc(UINT32 adrs) {
   
         UINT16  bootseg;          UINT16  bootseg;
   
         if ((CPU_ITFBANK) && (adrs >= 0xf8000) && (adrs < 0x100000)) {          if ((CPU_ITFBANK) && (adrs >= 0xf8000) && (adrs < 0x100000)) {
 #if 1                                   // for epson ITF                  // for epson ITF
                 return(0);                  return(0);
 #else  
                 CPU_IP--;  
                 CPU_REMCLOCK = -1;  
                 return(1);  
 #endif  
         }          }
   
         switch(adrs) {          switch(adrs) {
Line 368  UINT MEMCALL biosfunc(UINT32 adrs) { Line 399  UINT MEMCALL biosfunc(UINT32 adrs) {
   
                 case BIOS_BASE + BIOSOFST_1f:                  case BIOS_BASE + BIOSOFST_1f:
                         CPU_REMCLOCK -= 200;                          CPU_REMCLOCK -= 200;
                         TRACEOUT(("unsupport protect bios"));                          bios0x1f();
                         return(1);                          return(1);
   
                 case BIOS_BASE + BIOSOFST_WAIT:                  case BIOS_BASE + BIOSOFST_WAIT:
Line 442  UINT MEMCALL biosfunc(UINT32 adrs) { Line 473  UINT MEMCALL biosfunc(UINT32 adrs) {
                         return(0);                          return(0);
         }          }
   
         if ((adrs >= 0xf9a00) && (adrs < 0x0f9a24)) {          if ((adrs >= 0xf9a00) && (adrs < 0x0f9a44)) {
                 if (!(adrs & 1)) {                  if (!(adrs & 3)) {
                         bios_lio((BYTE)((adrs - 0xf9a00) >> 1));                          CPU_REMCLOCK -= 500;
                           bios_lio((REG8)((adrs - 0xf9a00) >> 2));
                   }
                   else {
                           if (nevent_iswork(NEVENT_GDCSLAVE)) {
                                   CPU_IP--;
                                   CPU_REMCLOCK = -1;
                                   return(1);
                           }
                 }                  }
                 return(0);                  return(0);
         }          }

Removed from v.1.43  
changed lines
  Added in v.1.47


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