From a294a40f5c7f88692dbfb9f54847d9a66005bb62 Mon Sep 17 00:00:00 2001 From: nickysn Date: Fri, 13 Aug 2010 00:08:49 +0000 Subject: VESA 1.0 fix - zero fill the real mode ModeInfo struct, not the protected mode struct git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@15791 3ad0048d-3df7-0310-abae-a5850022a9f2 --- packages/graph/src/go32v2/vesa.inc | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'packages/graph') diff --git a/packages/graph/src/go32v2/vesa.inc b/packages/graph/src/go32v2/vesa.inc index bbe38a37fe..4906f0bff0 100644 --- a/packages/graph/src/go32v2/vesa.inc +++ b/packages/graph/src/go32v2/vesa.inc @@ -239,6 +239,13 @@ end; {$endif fpc} { get the segment value } RealSeg := word(Ptr shr 16); + { we have to init everything to zero, since VBE < 1.1 } + { may not setup fields correctly. } +{$ifndef fpc} + FillChar(VESAPtr^, sizeof(ModeInfo), #0); +{$else fpc} + DosMemFillChar(RealSeg, 0, sizeof(ModeInfo), #0); +{$endif fpc} { setup interrupt registers } FillChar(regs, sizeof(regs), #0); { call VESA mode information...} @@ -327,7 +334,10 @@ end; begin { we have to init everything to zero, since VBE < 1.1 } { may not setup fields correctly. } + { bugfix: for DPMI this is now done in GetVESAModeInfo } +{$IFNDEF DPMI} FillChar(VESAModeInfo, sizeof(VESAModeInfo), #0); +{$ENDIF} If GetVESAModeInfo(VESAModeInfo, Mode) And ((VESAModeInfo.attr and modeAvail) <> 0) then ModeSupported := TRUE -- cgit v1.2.1