Browse Source

* again small fix to patternline-, hline- and getscanlinevesa256

Jonas Maebe 25 years ago
parent
commit
14bc1b379d
1 changed files with 24 additions and 17 deletions
  1. 24 17
      rtl/go32v2/vesa.inc

+ 24 - 17
rtl/go32v2/vesa.inc

@@ -547,7 +547,8 @@ end;
               { because this loop alwys runs for very little pixels,  }
               { because this loop alwys runs for very little pixels,  }
               { there's little gained by splitting it up              }
               { there's little gained by splitting it up              }
               setreadbank(offs shr 16);
               setreadbank(offs shr 16);
-              WordArray(Data)[index+l] := mem[WinReadSeg:offs+l];
+              WordArray(Data)[index+l] := mem[WinReadSeg:word(offs)];
+              inc(offs);
             end;
             end;
           amount := 0
           amount := 0
         End
         End
@@ -655,8 +656,9 @@ end;
                          { there's little gained by splitting it up              }
                          { there's little gained by splitting it up              }
                          setreadbank(offs shr 16);
                          setreadbank(offs shr 16);
                          setwritebank(offs shr 16);
                          setwritebank(offs shr 16);
-                         Mem[WinWriteSeg:word(offs)+l] :=
-                           Mem[WinReadSeg:word(offs)+l] And byte(currentColor);
+                         Mem[WinWriteSeg:word(offs)] :=
+                           Mem[WinReadSeg:word(offs)] And byte(currentColor);
+                         inc(offs);
                        end;
                        end;
                      HLength := 0
                      HLength := 0
                    End
                    End
@@ -724,8 +726,9 @@ end;
                          { there's little gained by splitting it up              }
                          { there's little gained by splitting it up              }
                          setreadbank(offs shr 16);
                          setreadbank(offs shr 16);
                          setwritebank(offs shr 16);
                          setwritebank(offs shr 16);
-                         Mem[WinWriteSeg:word(offs)+l] :=
-                           Mem[WinReadSeg:word(offs)+l] xor byte(currentColor);
+                         Mem[WinWriteSeg:word(offs)] :=
+                           Mem[WinReadSeg:word(offs)] xor byte(currentColor);
+                         inc(offs);
                        end;
                        end;
                      HLength := 0
                      HLength := 0
                    End
                    End
@@ -793,8 +796,9 @@ end;
                          { there's little gained by splitting it up              }
                          { there's little gained by splitting it up              }
                          setreadbank(offs shr 16);
                          setreadbank(offs shr 16);
                          setwritebank(offs shr 16);
                          setwritebank(offs shr 16);
-                         Mem[WinWriteSeg:word(offs)+l] :=
-                           Mem[WinReadSeg:word(offs)+l] And byte(currentColor);
+                         Mem[WinWriteSeg:word(offs)] :=
+                           Mem[WinReadSeg:word(offs)] And byte(currentColor);
+                         inc(offs);
                        end;
                        end;
                      HLength := 0
                      HLength := 0
                    End
                    End
@@ -859,7 +863,8 @@ end;
                          { because this loop alwys runs for very little pixels,  }
                          { because this loop alwys runs for very little pixels,  }
                          { there's little gained by splitting it up              }
                          { there's little gained by splitting it up              }
                          setwritebank(offs shr 16);
                          setwritebank(offs shr 16);
-                         Mem[WinWriteSeg:word(offs)+l] := byte(mask);
+                         Mem[WinWriteSeg:word(offs)] := byte(mask);
+                         inc(offs);
                        end;
                        end;
                      HLength := 0
                      HLength := 0
                    End
                    End
@@ -1148,7 +1153,8 @@ end;
                { because this loop alwys runs for very little pixels,  }
                { because this loop alwys runs for very little pixels,  }
                { there's little gained by splitting it up              }
                { there's little gained by splitting it up              }
                setwritebank(offs shr 16);
                setwritebank(offs shr 16);
-               Mem[WinWriteSeg:word(offs)+l] := fill.pat[patternPos and 7];
+               Mem[WinWriteSeg:word(offs)] := fill.pat[patternPos and 7];
+               inc(offs);
                inc(patternPos);
                inc(patternPos);
              end;
              end;
            amount := 0;
            amount := 0;
@@ -1223,7 +1229,7 @@ end;
      seg_move(WinReadSeg,offs+LinearPageOfs,get_ds,longint(@col),1);
      seg_move(WinReadSeg,offs+LinearPageOfs,get_ds,longint(@col),1);
      GetPixVESA256Linear:=col;
      GetPixVESA256Linear:=col;
   end;
   end;
-
+(*
 function SetVESADisplayStart(PageNum : word;x,y : integer):Boolean;
 function SetVESADisplayStart(PageNum : word;x,y : integer):Boolean;
 var
 var
   dregs : registers;
   dregs : registers;
@@ -1251,7 +1257,7 @@ begin
   else
   else
     SetVESADisplayStart:=true;
     SetVESADisplayStart:=true;
 end;
 end;
-
+*)
 {$endif FPC}
 {$endif FPC}
 
 
 
 
@@ -1512,22 +1518,20 @@ end;
    Procedure SetVESARGBPalette(ColorNum, RedValue, GreenValue,
    Procedure SetVESARGBPalette(ColorNum, RedValue, GreenValue,
       BlueValue : Integer);
       BlueValue : Integer);
     var
     var
-     FunctionNr : byte;   { use blankbit or normal RAMDAC programming? }
      pal: palrec;
      pal: palrec;
-     Error : boolean;     { VBE call error                             }
      regs: TDPMIRegisters;
      regs: TDPMIRegisters;
      Ptr: longint;
      Ptr: longint;
 {$ifndef fpc}
 {$ifndef fpc}
      PalPtr : ^PalRec;
      PalPtr : ^PalRec;
 {$endif fpc}
 {$endif fpc}
      RealSeg: word;
      RealSeg: word;
+     FunctionNr : byte;   { use blankbit or normal RAMDAC programming? }
     begin
     begin
       if DirectColor then
       if DirectColor then
         Begin
         Begin
           _GraphResult := grError;
           _GraphResult := grError;
           exit;
           exit;
         end;
         end;
-        Error := TRUE;
         pal.align := 0;
         pal.align := 0;
         pal.red := byte(RedValue);
         pal.red := byte(RedValue);
         pal.green := byte(GreenValue);
         pal.green := byte(GreenValue);
@@ -2036,7 +2040,7 @@ end;
   end;
   end;
  end;
  end;
 
 
-
+(*
  function getVESAMode:word;assembler;
  function getVESAMode:word;assembler;
    asm  {return -1 if error}
    asm  {return -1 if error}
     mov ax,4F03h
     mov ax,4F03h
@@ -2055,7 +2059,7 @@ end;
     mov ax,bx
     mov ax,bx
   @@X:
   @@X:
    end;
    end;
-
+*)
 
 
 
 
 
 
@@ -2485,7 +2489,10 @@ end;
 
 
 (*
 (*
 $Log$
 $Log$
-Revision 1.14  1999-12-29 12:15:41  jonas
+Revision 1.15  2000-01-02 18:51:05  jonas
+  * again small fix to patternline-, hline- and getscanlinevesa256
+
+Revision 1.14  1999/12/29 12:15:41  jonas
   * fixed small bug in hlinevesa256, getscanlinevesa25 and patternlinevesa256
   * fixed small bug in hlinevesa256, getscanlinevesa25 and patternlinevesa256
   * small speed-up in the above procedures
   * small speed-up in the above procedures