Diff for /np2/bios/bios.c between versions 1.64 and 1.68

version 1.64, 2004/05/22 10:46:42 version 1.68, 2004/06/18 07:42:13
Line 20 Line 20
   
 #define BIOS_SIMULATE  #define BIOS_SIMULATE
   
         BOOL    biosrom = FALSE;  
   
 static const char neccheck[] = "Copyright (C) 1983 by NEC Corporation";  static const char neccheck[] = "Copyright (C) 1983 by NEC Corporation";
   
 typedef struct {  typedef struct {
Line 149  static void bios_reinitbyswitch(void) { Line 147  static void bios_reinitbyswitch(void) {
                 fddbios_equip(0, TRUE);                  fddbios_equip(0, TRUE);
                 mem[MEMB_BIOS_FLAG0] &= ~0x02;                  mem[MEMB_BIOS_FLAG0] &= ~0x02;
         }          }
           mem[MEMB_F2HD_MODE] = 0xff;
         mem[MEMB_F2DD_MODE] = 0xff;          mem[MEMB_F2DD_MODE] = 0xff;
   
 #if defined(SUPPORT_CRT31KHZ)  #if defined(SUPPORT_CRT31KHZ)
Line 195  static void bios_screeninit(void) { Line 194  static void bios_screeninit(void) {
   
 void bios_initialize(void) {  void bios_initialize(void) {
   
           BOOL    biosrom;
         char    path[MAX_PATH];          char    path[MAX_PATH];
         FILEH   fh;          FILEH   fh;
         UINT    i;          UINT    i;
Line 210  void bios_initialize(void) { Line 210  void bios_initialize(void) {
         }          }
         if (biosrom) {          if (biosrom) {
                 TRACEOUT(("load bios.rom"));                  TRACEOUT(("load bios.rom"));
                   pccore.rom |= PCROM_BIOS;
                 // PnP BIOSを潰す                  // PnP BIOSを潰す
                 for (i=0; i<0x10000; i+=0x10) {                  for (i=0; i<0x10000; i+=0x10) {
                         tmp = LOADINTELDWORD(mem + 0xf0000 + i);                          tmp = LOADINTELDWORD(mem + 0xf0000 + i);
Line 300  static void bios_itfcall(void) { Line 301  static void bios_itfcall(void) {
   
         if (!np2cfg.ITF_WORK) {          if (!np2cfg.ITF_WORK) {
                 for (i=0; i<8; i++) {                  for (i=0; i<8; i++) {
                         mem[MEMB_MSW + (i*4)] = msw_default[i];                          mem[MEMX_MSW + (i*4)] = msw_default[i];
                 }                  }
                 CPU_FLAGL |= C_FLAG;                  CPU_FLAGL |= C_FLAG;
         }          }
Line 400  UINT MEMCALL biosfunc(UINT32 adrs) { Line 401  UINT MEMCALL biosfunc(UINT32 adrs) {
                 case BIOS_BASE + BIOSOFST_CMT:                  case BIOS_BASE + BIOSOFST_CMT:
                         CPU_REMCLOCK -= 200;                          CPU_REMCLOCK -= 200;
                         bios0x1a_cmt();                          bios0x1a_cmt();
                         return(1);                          return(0);                                                                                      // return(1);
   
                 case BIOS_BASE + BIOSOFST_PRT:                  case BIOS_BASE + BIOSOFST_PRT:
                         CPU_REMCLOCK -= 200;                          CPU_REMCLOCK -= 200;
Line 425  UINT MEMCALL biosfunc(UINT32 adrs) { Line 426  UINT MEMCALL biosfunc(UINT32 adrs) {
   
                 case BIOS_BASE + BIOSOFST_WAIT:                  case BIOS_BASE + BIOSOFST_WAIT:
                         CPU_STI;                          CPU_STI;
   #if 1
                           return(bios0x1b_wait());                                                                // ver0.78
   #else
                         if (fddmtr.busy) {                          if (fddmtr.busy) {
                                 CPU_IP--;                                  CPU_IP--;
                                 CPU_REMCLOCK = -1;                                  CPU_REMCLOCK = -1;
                         }                          }
                         else {                          else {
                                 if (fdc.chgreg & 1) {                                  if (fdc.chgreg & 1) {
                                         if (!(mem[0x0055e] & (0x01 << fdc.us))) {                                          if (!(mem[MEMB_DISK_INTL] & (0x01 << fdc.us))) {
                                                 CPU_IP--;                                                  CPU_IP--;
                                                 CPU_REMCLOCK -= 1000;                                                  CPU_REMCLOCK -= 1000;
                                         }                                          }
                                 }                                  }
                                 else {                                  else {
                                         if (!(mem[0x0055f] & (0x10 << fdc.us))) {                                          if (!(mem[MEMB_DISK_INTH] & (0x10 << fdc.us))) {
                                                 CPU_IP--;                                                  CPU_IP--;
                                                 CPU_REMCLOCK -= 1000;                                                  CPU_REMCLOCK -= 1000;
                                         }                                          }
                                 }                                  }
                         }                          }
                         return(1);                          return(1);
   #endif
   
                 case 0xfffe8:                                   // ブートストラップロード                  case 0xfffe8:                                   // ブートストラップロード
                         CPU_REMCLOCK -= 2000;                          CPU_REMCLOCK -= 2000;
Line 462  UINT MEMCALL biosfunc(UINT32 adrs) { Line 467  UINT MEMCALL biosfunc(UINT32 adrs) {
                         return(0);                          return(0);
         }          }
   
         if ((adrs >= 0xf9a00) && (adrs < 0x0f9a44)) {          if ((adrs >= 0xf9950) && (adrs <= 0x0f9990) && (!(adrs & 3))) {
                 if (!(adrs & 3)) {                  CPU_REMCLOCK -= 500;
                         CPU_REMCLOCK -= 500;                  bios_lio((REG8)((adrs - 0xf9950) >> 2));
                         bios_lio((REG8)((adrs - 0xf9a00) >> 2));          }
                 }          else if (adrs == 0xf9994) {
                 else {                  if (nevent_iswork(NEVENT_GDCSLAVE)) {
                         if (nevent_iswork(NEVENT_GDCSLAVE)) {                          CPU_IP--;
                                 CPU_IP--;                          CPU_REMCLOCK = -1;
                                 CPU_REMCLOCK = -1;                          return(1);
                                 return(1);  
                         }  
                 }                  }
                 return(0);  
         }          }
         return(0);          return(0);
 }  }

Removed from v.1.64  
changed lines
  Added in v.1.68


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