home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Media Share 9
/
MEDIASHARE_09.ISO
/
pascal
/
vdl020d.zip
/
VOUT.DOC
< prev
next >
Wrap
Text File
|
1993-04-14
|
25KB
|
1,196 lines
{
════════════════════════════════════════════════════════════════════════════
Visionix Output Unit (VOUT)
Copyright 1991,92,93 Visionix
ALL RIGHTS RESERVED
────────────────────────────────────────────────────────────────────────────
Revision history in reverse chronological order:
Initials Date Comment
──────── ──────── ────────────────────────────────────────────────────────
lpg 03/16/93 Added Source Documentation
mep 02/11/93 Cleaned up code for beta release
jrt 02/08/93 Sync with beta 0.12 release
jrt 02/08/93 Added VOutGetScreenSize
jrt 12/07/92 Sync with beta 0.11 release
jrt 11/21/92 Sync with beta 0.08
jrt 09/01/92 First logged revision.
════════════════════════════════════════════════════════════════════════════
}
{$V-}
Unit VOut;
Uses
VTypes,
VMulti;
{────────────────────────────────────────────────────────────────────────────}
{
OutDriver --> Hardware
OutDriver --> BIOS
OutDriver --> DOS/ANSI
OutDriver --> Crt
OutDriver --> OpCrt
}
Const
ODF_DriverNew = 1;
ODF_DriverOff = 2;
ODF_DriverOn = 3;
ODF_DriverDispose = 4;
ODF_WriteChar = 5;
ODF_WriteBlock = 6;
ODF_WriteVert = 7; { <^V><1><len><chars...> }
ODF_ClrEOL = 8;
ODF_ClrScr = 9;
ODF_DelLine = 10;
ODF_InsLine = 11;
ODF_GotoXY = 12;
ODF_Window = 13; { <^V><A><X1><Y1><X2><Y2> }
ODF_ColorText = 14;
ODF_ColorBack = 15;
ODF_GetWin = 16; { <^V><B> }
ODF_GetAttr = 17; { <^V><C> }
ODF_SetAttr = 18;
ODF_GetXY = 19; { <^V><D> }
ODF_GetNumScreens = 20; { <^V><E> }
ODF_GoScreen = 21; { <^V><F><screen> }
ODF_SetCursorType = 22; { <^V><G><type> }
ODF_DrawHLine = 23; { <^V><H><X1><Y1><type><count> }
ODF_DrawVLine = 24; { <^V><I><X1><Y1><type><count> }
ODF_DrawBox = 25; { <^V><J><X1><Y1><X2><Y2><type> }
ODF_ReadChar = 26; { <^V><K><X1><Y1> }
ODF_ReadAttr = 27; { <^V><L><X1><Y1> }
ODF_WriteAttr = 28; { <^V><M><X1><Y1><attr> }
ODF_QueryRegion = 29; { <^V><N><X1><X2><Y1><Y2> }
ODF_ReadRegion = 30; { <^V><O><X1><X2><Y1><Y2> }
ODF_WriteRegion = 31; { <^V><P><X1><X2><Y1><Y2> }
ODF_DriverRenew = 32; { <^V><Q><cols><rows> }
ODF_WriteCharAt = 33; { <^V><R><X1><Y1><attr> }
ODF_WriteBlockAt = 34; { <^V><S><X1><Y1><attr><count> }
ODF_WriteVertAt = 35; { <^V><T><X1><Y1><attr><count> }
ODF_GetScreenSize = 36;
ODF_CursorUp = 40;
ODF_CursorDown = 41;
ODF_CursorLeft = 42;
ODF_CursorRight = 43;
ODF_RegionScrUp = 44;
ODF_RegionScrDown = 45;
ODF_RegionCopy = 46;
ODF_RegionFill = 47;
ODF_RegionFillA = 48;
ODF_RegionFillC = 49;
ODF_RepeatChar = 50;
ODF_RepeatCharAt = 51;
{ODF_RepeatAttr = 52; }
{ODF_RepeatAttrAt = 53; }
{--------------}
ODS_Changed = 1;
ODS_Install = 2;
ODS_Sequence = 4;
OLT_UseChar = 1;
OLT_ASCII = 2;
OLT_UnderLine = 3;
OLT_Single = 4;
OLT_Double = 5;
Type
POutDriverPacket=^TOutDriverPacket;
TOutDriverProc = Procedure( ODPacket : POutDriverPacket );
TProcName = String[20];
PProcName = ^TProcName;
{----}
TOutDriverPacket = Record
Func : WORD;
ID : Pointer;
OutDriverProc : TOutDriverProc;
Name : PProcName;
DriverInfo : Pointer;
Ch : CHAR;
NumVal : WORD;
Size : WORD;
Buff : Pointer;
X1 : WORD;
Y1 : WORD;
X2 : WORD;
Y2 : WORD;
TheColor : WORD;
Attr : WORD;
Screens : WORD;
Cursor : WORD;
Mode : WORD;
LineType : WORD;
LineLen : WORD;
BoxType : WORD;
BoxTL : CHAR;
BoxT : CHAR;
BoxTR : CHAR;
BoxR : CHAR;
BoxBR : CHAR;
BoxB : CHAR;
BoxBL : CHAR;
BoxL : CHAR;
RegionSize : LONGINT;
Region : Pointer;
Status : WORD;
End;
POutDriverProc = ^TOutDriverProc;
POutDriverList = ^TOutDriverList;
TOutDriverList = Record
Proc : TOutDriverProc;
ID : Pointer;
Next : POutDriverList;
End;
TOutDriverIData = Record
Off : WORD;
Name : TProcName;
END;
POutDriverIData = ^TOutDriverIData;
{────────────────────────────────────────────────────────────────────────────}
Procedure VOutDriverNew( Proc : TOutDriverProc;
Name : TProcName;
DriverInfo : Pointer;
Var Err : WORD );
Procedure VOutDriverOff( Name : TProcName );
Procedure VOutDriverOn( Name : TProcName );
Procedure VOutDriverDispose( Name : TProcName );
Procedure DefaultOutDriverProc( ODP : POutDriverPacket );
Procedure VOutWriteChar( Ch : Char );
Procedure VOutWriteBlock( Block : Pointer;
Size : WORD );
Procedure VOutWriteString( S : STRING );
Procedure VOutWriteBlockVert( Block : Pointer;
Size : WORD );
Procedure VOutWriteStringVert( S : STRING );
Procedure VOutWriteCharAt( X : WORD;
Y : WORD;
F : WORD;
B : WORD;
Ch : CHAR );
Procedure VOutWriteBlockAt( X : WORD;
Y : WORD;
F : WORD;
B : WORD;
Block : Pointer;
Size : WORD );
Procedure VOutWriteStringAt( X : WORD;
Y : WORD;
F : WORD;
B : WORD;
S : STRING );
Procedure VOutWriteBlockVertAt( X : WORD;
Y : WORD;
F : WORD;
B : WORD;
Block : Pointer;
Size : WORD );
Procedure VOutWriteStringVertAt( X : WORD;
Y : WORD;
F : WORD;
B : WORD;
S : STRING );
Procedure VOutClrEOL;
Procedure VOutClrScr;
Procedure VOutDelLine;
Procedure VOutInsLine;
Procedure VOutGotoXY( X : WORD;
Y : WORD );
Procedure VOutWindow( X1 : WORD;
Y1 : WORD;
X2 : WORD;
Y2 : WORD );
Procedure VOutTextColor( TheColor : WORD );
Procedure VOutTextBackGround( TheColor : WORD );
Function VOutTextAttrGet : WORD;
Procedure VOutTextAttrSet( Attr : WORD );
Function VOutWhereX : WORD;
Function VOUtWhereY : WORD;
Function VOutQueryRegion( X1 : WORD;
Y1 : WORD;
X2 : WORD;
Y2 : WORD ) : LONGINT;
Procedure VOutReadRegion( X1 : WORD;
Y1 : WORD;
X2 : WORD;
Y2 : WORD;
Region : Pointer );
Procedure VOutWriteRegion( X1 : WORD;
Y1 : WORD;
X2 : WORD;
Y2 : WORD;
Region : Pointer );
Function VOutCharRead( X1 : WORD;
Y1 : WORD ) : CHAR;
Function VOutAttrRead( X1 : WORD;
Y1 : WORD ) : BYTE;
Procedure VOutAttrWrite( X1 : WORD;
Y1 : WORD;
Attr : BYTE );
Procedure VOutGetScreenSize( Var Rows : BYTE;
Var Cols : BYTE );
{────────────────────────────────────────────────────────────────────────────}
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Procedure DefaultOutDriverProc( ODP : POutDriverPacket );
[PARAMETERS]
ODP Pointer to Out-Driver Packet
[RETURNS]
(None)
[DESCRIPTION]
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Procedure CallOutDrivers( ODP : POutDriverPacket );
[PARAMETERS]
ODP Pointer to Out-Driver Packet
[RETURNS]
(None)
[DESCRIPTION]
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Procedure VOutDriverNew( Proc : TOutDriverProc;
Name : TProcName;
DriverInfo : Pointer;
Var Err : WORD );
[PARAMETERS]
Proc Out-Driver Procedure
Name ?
DriverInfo Pointer to Out-Driver Information
Err VAR Returned Error Code
[RETURNS]
Function : None
(VAR : [Err] Error Code) (0=Success)
[DESCRIPTION]
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Procedure VOutDriverOff( Name : TProcName );
[PARAMETERS]
Name ?
[RETURNS]
(None)
[DESCRIPTION]
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Procedure VOutDriverOn( Name : TProcName );
[PARAMETERS]
Name ?
[RETURNS]
(None)
[DESCRIPTION]
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Procedure VOutDriverDispose( Name : TProcName );
[PARAMETERS]
Name ?
[RETURNS]
(None)
[DESCRIPTION]
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Procedure VOutWriteChar( Ch : Char );
[PARAMETERS]
Ch Character to Write
[RETURNS]
(None)
[DESCRIPTION]
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Procedure VOutWriteBlock( Block : Pointer;
Size : WORD );
[PARAMETERS]
Block Pointer to Block Data to Write
Size Size of Block Data in Bytes
[RETURNS]
(None)
[DESCRIPTION]
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Procedure VOutWriteString( S : STRING );
[PARAMETERS]
S String to Write
[RETURNS]
(None)
[DESCRIPTION]
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Procedure VOutWriteBlockVert( Block : Pointer;
Size : WORD );
[PARAMETERS]
Block Pointer to Block Data to Write Vertically
Size Size of Block Data in Bytes
[RETURNS]
(None)
[DESCRIPTION]
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Procedure VOutWriteStringVert( S : STRING );
[PARAMETERS]
S String to Write Vertically
[RETURNS]
(None)
[DESCRIPTION]
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Procedure VOutWriteCharAt( X : WORD;
Y : WORD;
F : WORD;
B : WORD;
Ch : Char );
[PARAMETERS]
X X Screen Coordinate
Y Y Screen Coordinate
F Foreground Color
B Background Color
Ch Character to Write
[RETURNS]
(None)
[DESCRIPTION]
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Procedure VOutWriteBlockAt( X : WORD;
Y : WORD;
F : WORD;
B : WORD;
Block : Pointer;
Size : WORD );
[PARAMETERS]
X X Screen Coordinate
Y Y Screen Coordinate
F Foreground Color
B Background Color
Block Pointer to Block Data to Write
Size Size of Block Data in Bytes
[RETURNS]
(None)
[DESCRIPTION]
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Procedure VOutWriteStringAt( X : WORD;
Y : WORD;
F : WORD;
B : WORD;
S : STRING );
[PARAMETERS]
X X Screen Coordinate
Y Y Screen Coordinate
F Foreground Color
B Background Color
S String to Write
[RETURNS]
(None)
[DESCRIPTION]
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Procedure VOutWriteBlockVertAt( X : WORD;
Y : WORD;
F : WORD;
B : WORD;
Block : Pointer;
Size : WORD );
[PARAMETERS]
X X Screen Coordinate
Y Y Screen Coordinate
F Foreground Color
B Background Color
Block Pointer to Block Data to Write
Size Size of Block Data in Bytes
[RETURNS]
(None)
[DESCRIPTION]
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Procedure VOutWriteStringVertAt( X : WORD;
Y : WORD;
F : WORD;
B : WORD;
S : STRING );
[PARAMETERS]
X X Screen Coordinate
Y Y Screen Coordinate
F Foreground Color
B Background Color
S String to Write
[RETURNS]
(None)
[DESCRIPTION]
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Procedure VOutClrEOL;
[PARAMETERS]
(None)
[RETURNS]
(None)
[DESCRIPTION]
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Procedure VOutClrScr;
[PARAMETERS]
(None)
[RETURNS]
(None)
[DESCRIPTION]
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Procedure VOutDelLine;
[PARAMETERS]
(None)
[RETURNS]
(None)
[DESCRIPTION]
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Procedure VOutInsLine;
[PARAMETERS]
(None)
[RETURNS]
(None)
[DESCRIPTION]
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Procedure VOutGotoXY( X : WORD;
Y : WORD );
[PARAMETERS]
X New X Screen Coordinate
Y New Y Screen Coordinate
[RETURNS]
(None)
[DESCRIPTION]
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Procedure VOutWindow( X1 : WORD;
Y1 : WORD;
X2 : WORD;
Y2 : WORD );
[PARAMETERS]
X1 Window Left Screen Coordinate
Y1 Window Top Screen Coordinate
X2 Window Right Screen Coordinate
Y2 Window Bottom Screen Coordinate
[RETURNS]
(None)
[DESCRIPTION]
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Procedure VOutTextColor( TheColor : WORD );
[PARAMETERS]
TheColor New Text Foreground Color
[RETURNS]
(None)
[DESCRIPTION]
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Procedure VOutTextBackGround( TheColor : WORD );
[PARAMETERS]
TheColor New Text Background Color
[RETURNS]
(None)
[DESCRIPTION]
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Function VOutTextAttrGet : WORD;
[PARAMETERS]
(None)
[RETURNS]
Current Text Attribute
[DESCRIPTION]
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Procedure VOutTextAttrSet( Attr : WORD );
[PARAMETERS]
Attr New Text Attribute
[RETURNS]
(None)
[DESCRIPTION]
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Function VOutWhereX : WORD;
[PARAMETERS]
(None)
[RETURNS]
Current Cursor X Screen Coordinate
[DESCRIPTION]
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Function VOutWhereY : WORD;
[PARAMETERS]
(None)
[RETURNS]
Current Cursor Y Screen Coordinate
[DESCRIPTION]
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Function VOutQueryRegion( X1 : WORD;
Y1 : WORD;
X2 : WORD;
Y2 : WORD ): LONGINT;
[PARAMETERS]
X1 Region Left Screen Coordinate
Y1 Region Top Screen Coordinate
X2 Region Right Screen Coordinate
Y2 Region Bottom Screen Coordinate
[RETURNS]
[DESCRIPTION]
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Procedure VOutReadRegion( X1 : WORD;
Y1 : WORD;
X2 : WORD;
Y2 : WORD;
Region : Pointer );
[PARAMETERS]
X1 Region Left Screen Coordinate
Y1 Region Top Screen Coordinate
X2 Region Right Screen Coordinate
Y2 Region Bottom Screen Coordinate
Region Pointer to Region Read Data
[RETURNS]
(None)
[DESCRIPTION]
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Procedure VOutWriteRegion( X1 : WORD;
Y1 : WORD;
X2 : WORD;
Y2 : WORD;
Region : Pointer );
[PARAMETERS]
X1 Region Left Screen Coordinate
Y1 Region Top Screen Coordinate
X2 Region Right Screen Coordinate
Y2 Region Bottom Screen Coordinate
Region Pointer to Region Write Data
[RETURNS]
(None)
[DESCRIPTION]
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Function VOutCharRead( X1 : WORD;
Y1 : WORD ):CHAR;
[PARAMETERS]
X1 X Screen Coordinate
Y1 Y Screen Coordinate
[RETURNS]
Character Read at Screen Coordinates
[DESCRIPTION]
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Function VOutAttrRead( X1 : WORD;
Y1 : WORD ):BYTE;
[PARAMETERS]
X1 X Screen Coordinate
Y1 Y Screen Coordinate
[RETURNS]
Attribute Read at Screen Coordinates
[DESCRIPTION]
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Procedure VOutAttrWrite( X1 : WORD;
Y1 : WORD;
Attr : BYTE );
[PARAMETERS]
X1 X Screen Coordinate
Y1 Y Screen Coordinate
Attr Attribute to Write
[RETURNS]
(None)
[DESCRIPTION]
[SEE-ALSO]
[EXAMPLE]
──────────────────────────────────────────────────────────────────────────────
[FUNCTION]
Procedure VOutGetScreenSize( Var Rows : BYTE;
Var Cols : BYTE );
[PARAMETERS]
Rows VAR Returned Screen Height
Cols VAR Returned Screen Width
[RETURNS]
Function : None
(VAR : [Rows] Screen Height)
(VAR : [Cols] Screen Width)
[DESCRIPTION]
[SEE-ALSO]
[EXAMPLE]