Diff for /np2/bios/bios18.c between versions 1.16 and 1.17

version 1.16, 2004/02/13 08:01:12 version 1.17, 2004/02/14 07:56:51
Line 109  void bios0x18_16(BYTE chr, BYTE atr) { Line 109  void bios0x18_16(BYTE chr, BYTE atr) {
   
 #define SWAPU16(a, b) { UINT16 tmp; tmp = (a); (a) = (b); (b) = tmp; }  #define SWAPU16(a, b) { UINT16 tmp; tmp = (a); (a) = (b); (b) = tmp; }
   
 static REG8 swapbit(REG8 bit) {  
   
         REG8    ret;  
   
         ret = 0;  
         while(bit) {  
                 ret = (ret << 1) + (bit & 1);  
                 bit >>= 1;  
         }  
         return(ret);  
 }  
   
 static void setbiosgdc(UINT32 csrw, const GDCVECT *vect, UINT vcnt,  static void setbiosgdc(UINT32 csrw, const GDCVECT *vect, UINT vcnt,
                                                                                                                                 UINT8 ope) {                                                                                                                                  UINT8 ope) {
Line 172  static void bios18_47(void) { Line 161  static void bios18_47(void) {
         data = 0;          data = 0;
         data2 = 0;          data2 = 0;
         if (ucw.GBDTYP == 0x01) {          if (ucw.GBDTYP == 0x01) {
                 func = gdcsub_line;                  func = gdcsub_vectl;
                 if ((GBSX1 > GBSX2) ||                  if ((GBSX1 > GBSX2) ||
                         ((GBSX1 == GBSX2) && (GBSY1 > GBSY2))) {                          ((GBSX1 == GBSX2) && (GBSY1 > GBSY2))) {
                         SWAPU16(GBSX1, GBSX2);                          SWAPU16(GBSX1, GBSX2);
Line 209  static void bios18_47(void) { Line 198  static void bios18_47(void) {
                 STOREINTELWORD(vect.D2, data);                  STOREINTELWORD(vect.D2, data);
         }          }
         else if (ucw.GBDTYP <= 0x02) {          else if (ucw.GBDTYP <= 0x02) {
                 func = gdcsub_box;                  func = gdcsub_vectr;
                 vect.ope = 0x40 + (ucw.GBDSP & 7);                  vect.ope = 0x40 + (ucw.GBDSP & 7);
                 dx = GBSX2 - GBSX1;                  dx = GBSX2 - GBSX1;
                 if (dx < 0) {                  if (dx < 0) {
Line 251  static void bios18_47(void) { Line 240  static void bios18_47(void) {
                 STOREINTELWORD(vect.DM, data);                  STOREINTELWORD(vect.DM, data);
         }          }
         else {          else {
                 func = gdcsub_circle;                  func = gdcsub_vectc;
                 vect.ope = 0x20 + (ucw.GBDSP & 7);                  vect.ope = 0x20 + (ucw.GBDSP & 7);
                 vect.DC[0] = ucw.GBLNG1[0];                  vect.DC[0] = ucw.GBLNG1[0];
                 vect.DC[1] = ucw.GBLNG1[1];                  vect.DC[1] = ucw.GBLNG1[1];
Line 270  static void bios18_47(void) { Line 259  static void bios18_47(void) {
         }          }
         csrw = (GBSY1 * 40) + (GBSX1 >> 4);          csrw = (GBSY1 * 40) + (GBSX1 >> 4);
         csrw += (GBSX1 & 0xf) << 20;          csrw += (GBSX1 & 0xf) << 20;
         GBMDOTI = (swapbit(ucw.GBMDOTI[0]) << 8) + swapbit(ucw.GBMDOTI[1]);          GBMDOTI = (GDCPATREVERSE(ucw.GBMDOTI[0]) << 8) +
                                                                                           GDCPATREVERSE(ucw.GBMDOTI[1]);
         if ((CPU_CH & 0x30) == 0x30) {          if ((CPU_CH & 0x30) == 0x30) {
                 ope = (ucw.GBON_PTN & 1)?GDCOPE_SET:GDCOPE_CLEAR;                  ope = (ucw.GBON_PTN & 1)?GDCOPE_SET:GDCOPE_CLEAR;
                 func(csrw + 0x4000, &vect, GBMDOTI, ope);                  func(csrw + 0x4000, &vect, GBMDOTI, ope);
Line 313  static void bios18_49(void) { Line 303  static void bios18_49(void) {
         i286_memstr_read(CPU_DS, CPU_BX, &ucw, sizeof(ucw));          i286_memstr_read(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] = swapbit(ucw.GBMDOTI[i]);                  pat[i] = GDCPATREVERSE(ucw.GBMDOTI[i]);
                 gdc.s.para[GDC_TEXTW + i] = pat[i];                  gdc.s.para[GDC_TEXTW + i] = pat[i];
         }          }
         vect.ope = 0x10 + (ucw.GBDSP & 7);          vect.ope = 0x10 + (ucw.GBDSP & 7);

Removed from v.1.16  
changed lines
  Added in v.1.17


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