Diff for /np2/bios/bios1a.c between versions 1.1.1.1 and 1.3

version 1.1.1.1, 2003/10/16 17:58:21 version 1.3, 2003/12/12 01:04:39
Line 1 Line 1
 #include        "compiler.h"  #include        "compiler.h"
 #include        "i286.h"  #include        "cpucore.h"
 #include        "memory.h"  
 #include        "pccore.h"  #include        "pccore.h"
 #include        "iocore.h"  #include        "iocore.h"
 #include        "bios.h"  #include        "bios.h"
Line 9 Line 8
 static void printerbios_11(void) {  static void printerbios_11(void) {
   
         if (iocore_inp8(0x42) & 0x04) {                         // busy?          if (iocore_inp8(0x42) & 0x04) {                         // busy?
                 I286_AH = 0x01;                  CPU_AH = 0x01;
                 iocore_out8(0x40, I286_AL);                  iocore_out8(0x40, CPU_AL);
 #if 0  #if 0
                 iocore_out8(0x46, 0x0e);                  iocore_out8(0x46, 0x0e);
                 iocore_out8(0x46, 0x0f);                  iocore_out8(0x46, 0x0f);
 #endif  #endif
         }          }
         else {          else {
                 I286_AH = 0x02;                  CPU_AH = 0x02;
         }          }
 }  }
   
 void bios0x1a_main(void) {                                                                                      // ver0.30  void bios0x1a_main(void) {                                                                                      // ver0.30
   
         switch(I286_AH & 0x0f) {          switch(CPU_AH & 0x0f) {
                 case 0x00:                  case 0x00:
                         if (I286_AH == 0x30) {                          if (CPU_AH == 0x30) {
                                 if (I286_CX) {                                  if (CPU_CX) {
                                         do {                                          do {
                                                 I286_AL = i286_membyte_read(I286_ES, I286_BX);                                                  CPU_AL = i286_membyte_read(CPU_ES, CPU_BX);
                                                 printerbios_11();                                                  printerbios_11();
                                                 if (I286_AH & 0x02) {                                                  if (CPU_AH & 0x02) {
                                                         I286_AH = 0x02;                                                          CPU_AH = 0x02;
                                                         return;                                                          return;
                                                 }                                                  }
                                                 I286_BX++;                                                  CPU_BX++;
                                         } while(--I286_CX);                                          } while(--CPU_CX);
                                         I286_AH = 0x00;                                          CPU_AH = 0x00;
                                 }                                  }
                                 else {                                  else {
                                         I286_AH = 0x02;                                          CPU_AH = 0x02;
                                 }                                  }
                         }                          }
                         else {                          else {
Line 47  void bios0x1a_main(void) {           //  Line 46  void bios0x1a_main(void) {           // 
                                 iocore_out8(0x46, 0x82);                                // reset                                  iocore_out8(0x46, 0x82);                                // reset
                                 iocore_out8(0x46, 0x0f);                                // PSTB inactive                                  iocore_out8(0x46, 0x0f);                                // PSTB inactive
                                 iocore_out8(0x37, 0x0c);                                // printer f/f                                  iocore_out8(0x37, 0x0c);                                // printer f/f
                                 I286_AH = (iocore_inp8(0x42) >> 2) & 1;                                  CPU_AH = (iocore_inp8(0x42) >> 2) & 1;
                         }                          }
                         break;                          break;
                 case 0x01:                  case 0x01:
                         printerbios_11();                          printerbios_11();
                         break;                          break;
                 case 0x02:                  case 0x02:
                         I286_AH = (iocore_inp8(0x42) >> 2) & 1;                          CPU_AH = (iocore_inp8(0x42) >> 2) & 1;
                         break;                          break;
                 default:                  default:
                         I286_AH = 0x00;                          CPU_AH = 0x00;
                         break;                          break;
         }          }
 }  }
   
 void bios0x1a(void) {  void bios0x1a(void) {
   
         if (I286_AH & 0x10) {          if (CPU_AH & 0x10) {
                 bios0x1a_main();                                                                                        // ver0.30                  bios0x1a_main();                                                                                        // ver0.30
         }          }
         else {          else {
                 if (I286_AH == 0x04) {                  if (CPU_AH == 0x04) {
                         I286_AH = 0x02;                          CPU_AH = 0x02;
                 }                  }
                 else {                  else {
                         I286_AH = 0x00;                          CPU_AH = 0x00;
                 }                  }
         }          }
 }  }

Removed from v.1.1.1.1  
changed lines
  Added in v.1.3


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