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

This commit is contained in:
Jonas Maebe 2000-01-02 18:51:05 +00:00
parent 5e32309c67
commit 14bc1b379d

View File

@ -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[WinWriteSeg:word(offs)] :=
Mem[WinReadSeg:word(offs)+l] And byte(currentColor); 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[WinWriteSeg:word(offs)] :=
Mem[WinReadSeg:word(offs)+l] xor byte(currentColor); 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[WinWriteSeg:word(offs)] :=
Mem[WinReadSeg:word(offs)+l] And byte(currentColor); 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