Diff for /np2/bios/bios.c between versions 1.54 and 1.59

version 1.54, 2004/03/08 12:45:58 version 1.59, 2004/03/14 23:45:43
Line 56  static void bios_itfprepare(void) { Line 56  static void bios_itfprepare(void) {
 const IODATA    *p;  const IODATA    *p;
 const IODATA    *pterm;  const IODATA    *pterm;
   
           crtc_biosreset();
           gdc_biosreset();
   
         p = iodata;          p = iodata;
         pterm = iodata + (sizeof(iodata) / sizeof(IODATA));          pterm = iodata + (sizeof(iodata) / sizeof(IODATA));
         while(p < pterm) {          while(p < pterm) {
                 iocore_out8(p->port, p->data);                  iocore_out8(p->port, p->data);
                 p++;                  p++;
         }          }
   
         // GDCの初期化。  
         // …  
 }  }
   
 static void bios_memclear(void) {  static void bios_memclear(void) {
   
         ZeroMemory(mem, 0xa0000);          ZeroMemory(mem, 0xa0000);
           ZeroMemory(mem + 0x100000, 0x10000);
           if (CPU_EXTMEM) {
                   ZeroMemory(CPU_EXTMEM, CPU_EXTMEMSIZE);
           }
           bios0x18_16(0x20, 0xe1);
         ZeroMemory(mem + VRAM0_B, 0x18000);          ZeroMemory(mem + VRAM0_B, 0x18000);
         ZeroMemory(mem + VRAM0_E, 0x08000);          ZeroMemory(mem + VRAM0_E, 0x08000);
         ZeroMemory(mem + VRAM1_B, 0x18000);          ZeroMemory(mem + VRAM1_B, 0x18000);
Line 164  static void bios_reinitbyswitch(void) { Line 169  static void bios_reinitbyswitch(void) {
         mem[0x45c] = 0x40;          mem[0x45c] = 0x40;
 #endif  #endif
   
           // FDC
           if (fdc.support144) {
                   mem[MEMB_F144_SUP] |= fdc.equip;
           }
   
         // IDE initialize          // IDE initialize
         if (pccore.hddif & PCHDD_IDE) {          if (pccore.hddif & PCHDD_IDE) {
                 mem[MEMB_SYS_TYPE] |= 0x80;             // IDE                  mem[MEMB_SYS_TYPE] |= 0x80;             // IDE
Line 237  void bios_initialize(void) { Line 247  void bios_initialize(void) {
         }          }
   
 #if defined(BIOS_SIMULATE)  #if defined(BIOS_SIMULATE)
   //      CopyMemory(mem + BIOS_BASE, biosfd80, sizeof(biosfd80));
   
         // BIOS hookのアドレス変更          // BIOS hookのアドレス変更
         for (i=0; i<0x20; i++) {          for (i=0; i<0x20; i++) {
                 STOREINTELWORD(mem + 0xfd868 + i*2, biosoffset[i]);                  STOREINTELWORD(mem + 0xfd868 + i*2, biosoffset[i]);
Line 280  void bios_initialize(void) { Line 292  void bios_initialize(void) {
 //      mem[MEMB_BIOS_FLAG0] = 0x03;  //      mem[MEMB_BIOS_FLAG0] = 0x03;
 //      mem[MEMB_F2DD_MODE] = 0xff;  //      mem[MEMB_F2DD_MODE] = 0xff;
 //      SETBIOSMEM16(MEMW_DISK_EQUIP, 0x0003);  //      SETBIOSMEM16(MEMW_DISK_EQUIP, 0x0003);
         mem[0x005ae] |= 0x03;                                                                                   // ver0.31  //      mem[0x005ae] |= 0x03;
   
         CopyMemory(mem + 0x0fde00, keytable[0], 0x300);          CopyMemory(mem + 0x0fde00, keytable[0], 0x300);
 //      bios0x09_init();  //      bios0x09_init();
Line 324  static void bios_boot(void) { Line 336  static void bios_boot(void) {
                 bios_vectorset();                  bios_vectorset();
                 bios0x09_init();                  bios0x09_init();
                 bios_reinitbyswitch();                  bios_reinitbyswitch();
                   bios0x18_0c();
   
                 if (sysport.c & 0x20) {                  if (!np2cfg.ITF_WORK) {
                           for (i=0; i<8; i++) {
                                   mem[MEMB_MSW + (i*4)] = msw_default[i];
                           }
                           CPU_IP = 0x0002;
                   }
                   else if (sysport.c & 0x20) {
                         CPU_CS = 0x0000;                          CPU_CS = 0x0000;
                         CPU_IP = 0x04f8;                          CPU_IP = 0x04f8;
                         CPU_DS = 0x0000;                          CPU_DS = 0x0000;
Line 337  static void bios_boot(void) { Line 356  static void bios_boot(void) {
                         SETBIOSMEM16(0x004fc, 0xffff);                          SETBIOSMEM16(0x004fc, 0xffff);
                 }                  }
                 else {                  else {
                         if (!np2cfg.ITF_WORK) {  
                                 for (i=0; i<8; i++) {  
                                         mem[MEMB_MSW + (i*4)] = msw_default[i];  
                                 }  
                         }  
                         CPU_IP = 0x0002;                          CPU_IP = 0x0002;
                 }                  }
         }          }
Line 393  UINT MEMCALL biosfunc(UINT32 adrs) { Line 407  UINT MEMCALL biosfunc(UINT32 adrs) {
                 return(0);                  return(0);
         }          }
   
   //      TRACEOUT(("biosfunc(%x)", adrs));
   #if defined(CPUCORE_IA32) && defined(TRACE)
           if (CPU_STAT_PAGING) {
                   UINT32 pde = i286_memoryread_d(CPU_STAT_PDE_BASE);
                   if (!(pde & CPU_PDE_PRESENT)) {
                           TRACEOUT(("page0: PTE not present"));
                   }
                   else {
                           UINT32 pte = i286_memoryread_d(pde & CPU_PDE_BASEADDR_MASK);
                           if (!(pte & CPU_PTE_PRESENT)) {
                                   TRACEOUT(("page0: not present"));
                           }
                           else if (pte & CPU_PTE_BASEADDR_MASK) {
                                   TRACEOUT(("page0: physical address != 0 (pte = %.8x)", pte));
                           }
                   }
           }
   #endif
   
         switch(adrs) {          switch(adrs) {
                 case BIOS_BASE + BIOSOFST_EOIM:                  case BIOS_BASE + BIOSOFST_EOIM:
                         CPU_REMCLOCK -= 300;                          CPU_REMCLOCK -= 300;

Removed from v.1.54  
changed lines
  Added in v.1.59


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