home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1994 #1
/
monster.zip
/
monster
/
PROG_PAS
/
TPPCX256.ZIP
/
ADDENDUM.DOC
next >
Wrap
Text File
|
1993-12-21
|
4KB
|
69 lines
03.01.93
The following information contains up-to-date changes or improvements
since the initial release of TPPCX-VGA256.
==============================================================================
1. All the enclosed code has been re-compiled with Borland's BP7.0
compiler. It is always a problem when a new version has been issued and to
eliminate confusion I have updated the compiled code to v7.0
2. As a result, the code can be run in protected mode, with the
following exceptions...
a. Currently, the only 256 color driver that will run in pmode is
BGI256.BGI (that I am aware of). I have enclosed a graphics init
source for use with the BGI256 driver. Please note the EQUATE_VesaMode
routine needed for this driver. The driver contains one non-Vesa mode
in the number one slot and it sets things out of sync with the
Vesa_Modes array. This routine synchronizes my Vesa calls with the
BGI driver mode. I did not include the BGI256 code as I believe it is
not my right to distribute someone else's code without their
permission. It can be retrieved from CompuServ, BPASCAL, Lib5,
BGI256.ZIP and compiled. Please note the public name in the
UBGI256.PAS source for any linked object code.
b. An instance of the Vesa object, PVESAPM, is required where ever
the manual calls for a Vesa object when targeting for pmode. This
pointer is for a descendant object of MVESA called MVESAPM. MVESAPM
adds two fields, DS_SVGAInfo and DS_SVGAModeInfo. These two fields
are type, LongType, as defined in unit DPMI. These two fields define
the real data segment when calling unsupported interrupt calls to
the Vesa BIOS Extension requesting SVGA info. The Init constructor
and Done destructor override the ancestor calls and essentially do
the same initialization and cleanup but in a fashion compatible to
protected mode. The object also redefines the polymorphic,
GetSVGAModeInfo and GetSVGAInfo methods, which call DPMI funciton
300h to simulate a real mode interrupt requesting SVGA information.
Define LongType as follows in unit DPMI (note, this unit is from
Borland's Open Architecture package. I cannot distribute it as it's
a licensed product)
type
LongType = record
case Word of
0: (P: pointer);
1: (Long: Longint);
2: (Selector: word; Segment: word);
end; {lo} {hi}
This was put in DPMI.PAS to maintain unit continuity under pmode.
I have also included a file called UDEFINES.DOC
which outlines some conditional defines recognized by the units.
(This is from my library, fyi)
The enclosed code has the same calls as the
TP6.0 code, as documented in the manual with the following exceptions: The
graphics initialization routines, InitBGI_Vesa and InitBIOS_Vesa
have been moved to the new unit, UBGIVESA.TPU. The InitBGI_Vesa routine will not work with the
VESA256.BGI driver until that code has been upgraded. I felt the routines were out of place in the UVESA
unit, which deals with VESA routines and not graphics initializations.
I have taken a few sample runs and everything seems ok, but I'm not rock solid on it's durability.
I'm fairly new at this protected mode stuff and the code is making a few pointer based interrupt calls
outside of Borland's support. According to the manuals and some friendly advice I've done what needs to
be done.