|
@@ -118,6 +118,7 @@ type
|
|
Modes : array[1..256] of word;
|
|
Modes : array[1..256] of word;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+function SetVESAVideoDriver : boolean;
|
|
function VESAInit: boolean;
|
|
function VESAInit: boolean;
|
|
function VESAGetInfo(var B: TVESAInfoBlock): boolean;
|
|
function VESAGetInfo(var B: TVESAInfoBlock): boolean;
|
|
function VESAGetModeInfo(Mode: word; var B: TVESAModeInfoBlock): boolean;
|
|
function VESAGetModeInfo(Mode: word; var B: TVESAModeInfoBlock): boolean;
|
|
@@ -129,6 +130,7 @@ function VESAGetMode(var Mode: word): boolean;
|
|
function VESASelectMemoryWindow(Window: byte; Position: word): boolean;
|
|
function VESASelectMemoryWindow(Window: byte; Position: word): boolean;
|
|
function VESAReturnMemoryWindow(Window: byte; var Position: word): boolean;
|
|
function VESAReturnMemoryWindow(Window: byte; var Position: word): boolean;
|
|
function RegisterVesaVideoMode(Mode : word) : boolean;
|
|
function RegisterVesaVideoMode(Mode : word) : boolean;
|
|
|
|
+function RegisteredVesaVideoModeCount: word;
|
|
Procedure FreeVesaModes;
|
|
Procedure FreeVesaModes;
|
|
|
|
|
|
const
|
|
const
|
|
@@ -161,6 +163,7 @@ type
|
|
colors : array[0..8*8-1] of word;
|
|
colors : array[0..8*8-1] of word;
|
|
end;
|
|
end;
|
|
const
|
|
const
|
|
|
|
+ VesaVideoDriverSet : boolean = false;
|
|
VesaVideoModeHead : PVesaVideoMode = nil;
|
|
VesaVideoModeHead : PVesaVideoMode = nil;
|
|
VesaRegisteredModes : word = 0;
|
|
VesaRegisteredModes : word = 0;
|
|
{$ifdef TESTGRAPHIC}
|
|
{$ifdef TESTGRAPHIC}
|
|
@@ -663,11 +666,9 @@ begin
|
|
SysDoneVideo();
|
|
SysDoneVideo();
|
|
end;
|
|
end;
|
|
|
|
|
|
-function SetVESAVideoDriver : boolean; forward;
|
|
|
|
-
|
|
|
|
procedure VesaInitVideo;
|
|
procedure VesaInitVideo;
|
|
begin
|
|
begin
|
|
- if not SetVESAVideoDriver then
|
|
|
|
|
|
+ if not VesaVideoDriverSet then
|
|
exit;
|
|
exit;
|
|
{$ifdef TESTGRAPHIC}
|
|
{$ifdef TESTGRAPHIC}
|
|
if IsGraphicMode then
|
|
if IsGraphicMode then
|
|
@@ -680,8 +681,12 @@ begin
|
|
SysInitVideo();
|
|
SysInitVideo();
|
|
end;
|
|
end;
|
|
|
|
|
|
-Function VesaGetVideoModeCount : Word;
|
|
|
|
|
|
+function RegisteredVesaVideoModeCount: word;
|
|
|
|
+begin
|
|
|
|
+ RegisteredVesaVideoModeCount:=VesaRegisteredModes;
|
|
|
|
+end;
|
|
|
|
|
|
|
|
+Function VesaGetVideoModeCount : Word;
|
|
begin
|
|
begin
|
|
VesaGetVideoModeCount:=SysGetVideoModeCount()+VesaRegisteredModes;
|
|
VesaGetVideoModeCount:=SysGetVideoModeCount()+VesaRegisteredModes;
|
|
end;
|
|
end;
|
|
@@ -697,6 +702,7 @@ begin
|
|
FreeMem(VH,Sizeof(TVesaVideoMode));
|
|
FreeMem(VH,Sizeof(TVesaVideoMode));
|
|
VH:=VesaVideoModeHead;
|
|
VH:=VesaVideoModeHead;
|
|
end;
|
|
end;
|
|
|
|
+ VesaRegisteredModes:=0;
|
|
end;
|
|
end;
|
|
|
|
|
|
Var
|
|
Var
|
|
@@ -741,6 +747,7 @@ BEGIN
|
|
{$endif TESTGRAPHIC}
|
|
{$endif TESTGRAPHIC}
|
|
|
|
|
|
SetVideoDriver (Driver);
|
|
SetVideoDriver (Driver);
|
|
|
|
+ VesaVideoDriverSet:=true;
|
|
SetVESAVideoDriver:=true;
|
|
SetVESAVideoDriver:=true;
|
|
END;
|
|
END;
|
|
|
|
|