|
@@ -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
|
|
|
|
|