Browse Source

* WinShift was wrong for LinearBuffer

pierre 27 years ago
parent
commit
c607c78fa2
1 changed files with 15 additions and 3 deletions
  1. 15 3
      rtl/dos/ppi/ibm.ppi

+ 15 - 3
rtl/dos/ppi/ibm.ppi

@@ -75,7 +75,16 @@ begin
       end;
      _maxx:=VESAInfo.XResolution;
      _maxy:=VESAInfo.YResolution;
-     
+
+{$ifdef TEST_24BPP}
+     { problem with pseudo 32 bit modes !! }
+     if BytesPerPixel*VESAInfo.XResolution<>BytesPerLine then
+       begin
+          Oh_Kacke('Unconsistant VESA data');
+          { GetVesaInfo:=False; }
+          BytesPerPixel:=BytesPerLine div VESAInfo.XResolution;
+       end;
+{$endif TEST_24BPP}
      WinSize:=VESAInfo.Winsize*1024;
      WinLoMask:=WinSize-1;
      case VESAInfo.WinSize of
@@ -182,7 +191,7 @@ begin
           set_segment_limit(seg_read,(VGAInfo.TotalMem shl 16)-1);
           WinSize:=(VGAInfo.TotalMem shl 16);
           WinLoMask:=(VGAInfo.TotalMem shl 16)-1;
-          WinShift:=16;
+          WinShift:=15;
           Temp:=VGAInfo.TotalMem;
           while Temp>0 do
             begin
@@ -295,7 +304,10 @@ end;
 
 {
   $Log$
-  Revision 1.3  1998-11-18 09:31:35  pierre
+  Revision 1.4  1998-11-18 12:12:54  pierre
+   * WinShift was wrong for LinearBuffer
+
+  Revision 1.3  1998/11/18 09:31:35  pierre
     * changed color scheme
       all colors are in RGB format if more than 256 colors
     + added 24 and 32 bits per pixel mode