home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
C!T ROM 2
/
ctrom_ii_b.zip
/
ctrom_ii_b
/
PROGRAM
/
BASIC
/
QBFX
/
PARADOCS.DOC
< prev
next >
Wrap
Text File
|
1993-05-24
|
49KB
|
1,071 lines
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
▒╔═════════════════════════════════════════════════════════════════════╗▒▒▒▒
▒║ Paragon's QB Toolkit ║ ▒▒▒
▒╟─────────────────────────────────────────────────────────────────────╢ ▒▒▒
▒║ A library of graphic and audio utilities for use with the MicroSoft ║ ▒▒▒
▒║ QuickBasic 4.5 Programming environment. ║ ▒▒▒
▒║ ║ ▒▒▒
▒║ CopyRight (C) 1990,91,92,93 - J. Thomas Hunter ║ ▒▒▒
▒║ Paragon Labs, Ltd. ║ ▒▒▒
▒║ ║ ▒▒▒
▒║ ║ ▒▒▒
▒║ All Rights Reserved WorldWide ║ ▒▒▒
▒║ ║ ▒▒▒
▒╚═════════════════════════════════════════════════════════════════════╝ ▒▒▒
▒▒ ▒▒▒
▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
███ Introduction █████████████████████████████████████████████████████████
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
This document is NOT intended as a basic tutorial on the use of libraries in
conjunction with the QuickBasic product, nor is it an attempt to provide an
all-encompassing piece of documentation on the use of QB. It IS an effort to
document a software library which will likely prove to be your most valuable
asset in your entire collection of tools for the QuickBasic environment.
We've all heard it before. REAL programmers don't write docs. I'm no better
at it than any other programmer, and while I don't mind giving it my honest
best effort, please bear with me if I stray off-topic occasionally or miss a
few details I've used so frequently I've begun to take them for granted.
For your information, the size of the QLB is roughly 144,349 bytes. Typical
of the MicroSoft QuickLib format, this is much larger sizewise than what is
actually required of the .LIB format file available to registered users. The
.LIB file weighs in at roughly 73,317, certainly tolerable considering the
features provided as far as Mouse, Graphics, PCX, GIF, MOD, and other items
are concerned.
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
███ License and Registration █████████████████████████████████████████████
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Simply, the tools in this library may be distributed as shareware, provided
they are distributed in unmodified form. You may NOT reverse engineer, dis-
assemble, or otherwise alter the contents of the original archive as it was
distributed from Paragon Labs.
You may USE this demonstration package for evaluation purposes ONLY, in your
effort to determine the suitability of this package for your intents. In its
distribution state, the shareware version of this package holds the Paragon
QB Toolkit in .QLB library format, suitable for immediate use in the Quick-
Basic environment. You may NOT produce an EXEcutable standalone application
with this QLB library. To produce a complete and distributable EXE program,
you MUST register the library with Paragon Labs, by calling (501) 631-9806,
by dialing our BBS at (501) 631-5976 and paging the SysOp with your MC/Visa
card handy, or by mailing $99 to :
J. Thomas Hunter
c/o Paragon Labs
2409 West Dogwood
Rogers, AR 72756
With your REGISTERED copy of the Paragon QB Toolkit, you may create your own
EXEcutable standalone applications, under the following conditions :
1. You include notice on the title screen of your application that grants
notice that "Portions CopyRight (C) 1990,91,92,93 - J. Thomas Hunter",
and you send a registered copy of your software to us for our use as a
courtesy.
2. You agree to make NO use of these products in pursuit of developing a
graphic BBS or terminal without EXPRESS WRITTEN CONSENT from Paragon.
(This isn't to say we WON'T - just to say that we reserve the right to
take each query on a case-by-case basis. To the contrary, we're in the
process of soliciting Doorware, Mailer, and BBS developers to use our
platform)
3. You agree not to distribute your copy of the registered LIBrary files,
IF you register, to any third party. For commercial developersm, one
copy of this library must be purchased for each machine on which it is
to be used. This means if you have 5 programmers who will be using the
Paragon QB Toolkit, you must buy 5 copies of the library. Discounts
and site licenses may be available on request.
4. You further agree not to use this library and bundle it with your own
to sell it as a programmer's utility of any kind.
5. Given that you've followed the conditions as set forth above, you may
distribute your own software royalty-free using this library.
It's that simple.
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
███ The Library ██████████████████████████████████████████████████████████
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
The following represent the CALLable routines provided in this library, and
the corresponding syntax. TechNotes are given for each item if special or
unusual calling circumstances are required.
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
CALL BARMENU
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Declaration :
DECLARE SUB barmenu (funcset$, tlcv%, tlch%, brcv%, brch%, setup%, picked$)
Parametres :
funcset$ = menubar definition string, as follows :
║XXXX│AAA▒aaa│BBB▒bbb│CCC▒ccc║YYYY│AAA▒aaa│BBB▒bbb│CCC▒ccc
Where 54 = MenuBar definition header ID (02 bytes)
Where ║ = ASCII 186 - MBar Title prefix (01 bytes)
Where XXXX = MenuBar title header ( varies )
Where │ = ASCII 179 - MBar Item prefix (01 bytes)
Where AAA = MenuBar pull-down item ( varies )
Where ▒ = ASCII 177 - MBar function prefix (01 bytes)
Where aaa = MenuBar Function invoked when item selected ( varies )
Where │ = ASCII 179 - MBar Item prefix (01 bytes)
Where BBB = MenuBar pull-down item ( varies )
Where ▒ = ASCII 177 - MBar function prefix (01 bytes)
Where bbb = MenuBar Function invoked when item selected ( varies )
Where │ = ASCII 179 - MBar Item prefix (01 bytes)
Where CCC = MenuBar pull-down item ( varies )
Where ▒ = ASCII 177 - MBar function prefix (01 bytes)
Where ccc = MenuBar Function invoked when item selected ( varies )
----------
Varies
tlcv% = the top left corner vertically for the origin of the menubar.
tlch% = the top left corner horizontally for the origin of the menubar.
brcv% = the bottom right corner vertically for the origin of the menubar.
brch% = the bottom right corner horizontally for the origin of the menubar.
setup% = 0 when calling for actual execution
1 when calling for menubar rendering, but without execution
Return Arguments :
picked$= return string (menubar function) used by the item selected.
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
CALL BEVLPANL
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Declaration :
DECLARE SUB BEVLPANL (tlcv%, tlch%, brcv%, brch%, dcolr%)
Parametres : TLCV% = Top Left Corner Vertically
TLCH% = Top Left Corner Horizontally
BRCV% = Bottom Right Corner Vertically
BRCH% = Bottom Right Corner Horizontally
DCOLR%= Panel Colour (256-colour PDE mix OK)
Return Arguments : None
Function : Draws a bevelled box on the screen in the colour specified.
Suitable for use in Screen mode 9 or 12.
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
CALL BIGPANEL
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Declaration :
DECLARE SUB BIGPANEL (tlcv%, tlch%, brcv%, brch%, dcolr%, brsha%, tlsha%)
Parametres : TLCV% = Top Left Corner Vertically
TLCH% = Top Left Corner Horizontally
BRCV% = Bottom Right Corner Vertically
BRCH% = Bottom Right Corner Horizontally
DCOLR%= Panel Colour (256-colour PDE mix OK)
BRSHA%= Colour for bottom and right sides (reliefing)
TLSHA%= Colour for top and left sides (reliefing)
Return Arguments : None
Function : Draws a "tech box" on the screen in the colour specified.
Suitable for use in Screen mode 9 or 12.
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
CALL BIN2BINSTR
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Declaration :
DECLARE SUB BIN2BINSTR (a%, b$)
Parametres : A% = numeric value to convert
Return Arguments : b$ = string value delivering binary representation
Function : Converts numeric values to binary representation. Used by mouse
mapping routines, among other things.
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
FUNCTION BINSTR2BIN%
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Declaration :
DECLARE FUNCTION BinStr2Bin% (b$)
Parametres : B$ = Binary representation of string to convert.
Return Arguments : Function returns numeric value
Syntax : N%=BinStr2Bin%(B$)
Example : CLS │
B$="1001001" │
N%=BinStr2Bin%(B$) │
Print N% │
│
Output : 73 │
Function : Converts a binary string of 1's and 0's to the numeric
equivalent. Used by the Mouse cursor mapping routines,
among other things.
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
CALL GETMSTAT
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Declaration :
DECLARE SUB getmstat (mposx%, mposy%, MBUT%)
Parametres : None
Return Arguments : Mposx% = Horizontal mouse location when queried
Mposy% = Vertical mouse location when queried
MBut% = Mouse Button State when queried, where
0 = no buttons pressed
1 = left button pressed
2 = right button pressed
3 = both buttons pressed
Function : Allows quick, easy polling of the mouse position and button
status for use by your programs.
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
CALL GRABBFLD
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Declaration :
DECLARE SUB GRABBFLD(tlcv%, tlch%, MXLN%, MNLN%, edt$, bgc%, fgc%, erflg%,
escflg%, cflag%, FFLAG%, tmp$, Range$)
Parametres : tlcv% = Top left corner vertically of field
tlch% = Top left corner horizontally of field
MXln% = Maximum field length
MNln% = Minimum field length
edt$ = Edit string, as defined in PDE :
Where EDT$= "GGGGGGGGGGGG",
1 = Numeric data only │ 12345│ (01 byte )
1 = Right-flush field │ 123│ (01 byte )
1 = Centre field data │ 123 │ (01 byte )
1 = Left-flush field │123 │ (01 byte )
1 = Cash-flush field │ 123.45│ (01 byte )
1 = Zero-flush field │00000123│ (01 byte )
1 = Valid hour (0-12) (01 byte )
1 = Valid minute (0-59) (01 byte )
1 = Uppercase flag │ ABC│ (01 byte )
1 = Valid month (1-12) (01 byte )
1 = Valid day (1-31) (01 byte )
1 = Valid year (93-99) (01 byte )
bgc% = Background colour for field
fgc% = Foreground (text) colour
erflg% = inbound variable returns status
escflg% = inbound variable returns status
cflag% = inbound variable returns status
fflag% = inbound variable returns status
tmp$ = String carries default string
range$ = Range edit option, e.g. "1-4,A-C,F,G"
Return Arguments : erflg% = Returns error status as 1 if error on edit
escflg% = Returns 1 if escape key was hit
cflag% = Returns 0 on normal completion,
= 1 on upcrsr to prvs field
= 2 on dncrsr to next field
= 3 on back-tab to prvs field
= 4 on forw-tab to next field
= 5 on mouse button detected
fflag% = Returns 1-12, based on Function key hit
tmp$ = Returns the entered string
Function : Allows quick, easy keyed input support in graphics mode without
need of INPUT or other primitive QB items. For use under screen
modes 9 and 12.
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Function FGET
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Declaration :
DECLARE FUNCTION FGET (BYVAL xl, BYVAL yl, BYVAL xh, BYVAL yh, Segment%)
Parametres : xl% = Bottom right corner horizontally
xh% = Top Left corner horizontally
yl% = Top Left corner vertically
yh% = Bottom Right corner vertically
Return Arguments : Segment% = FAR area in RAM where area is stored
Function : Grabs an area of screen (modes 9 or 12) and stores it to FAR
memory, allowing subsequent operations in that area of the
screen without concern for screen image corruption. A Simple
CALL FPUT ( SEGMENT% ) will restore the area stored. These
routines were used in our own MenuBar item. VERY fast. Use
of these routines presumes that FAR memory has been freed by
use of the N&=SETMEM(-xxxxx) prior to use, allocating FAR
area sufficient to store the screen area.
See also : FPUT
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Function FPUT
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Declaration :
DECLARE FUNCTION FPUT (Segment%)
Parametres : Segment% = Segment of FAR memory in which FGET saved
Return Arguments : None
Function : Retrieves an area of screen (modes 9 or 12) from FAR storage
as placed with the complementing FGET function. VERY fast.
Use of these routines presumes that FAR memory is freed by
use of the N&=SETMEM(-xxxxx) prior to use, allocating FAR
area sufficient to store the screen area.
See also : FGET
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
CALL FONTINIT
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Declaration :
DECLARE SUBV FONTINIT ()
Parametres : None
Return Arguments : None
Function : Retrieves the default font set from the file STDFONT.REQ and
places it in RAM for subsequent use by PUTTXT. This routine
should be called each time a SCREEN is used to switch into
graphics modes 9 or 12. VERY Fast!
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
CALL HSCROLL
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Declaration :
DECLARE SUB hscroll (BYVAL xl, BYVAL xh, BYVAL yl, BYVAL yh, BYVAL DEPTH)
Parametres : xl% = Bottom right corner horizontally
xh% = Top Left corner horizontally
yl% = Top Left corner vertically
yh% = Bottom Right corner vertically
depth% = # of dots to scroll, where
positive value = scroll up
negative value = scroll down
Return Arguments : None
Function : Allows scroll of a screen area on the vertical axis by a
specific number of dots. Used in loop succession, this
tool allows for the illusion of SmoothScrolling. For use
under screen modes 9 and 12.
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
CALL IMPORT
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Declaration :
DECLARE SUB IMPORT (n$, justin%)
Parametres : N$ = PDE PANel format line to render
justin%= First-pass paint behavior instruction
Return Arguments : None
Function : For use with LINE INPUT when loading PAN format files, this
utility allows you to render an item from a PANel file at a
time. This routine is used by LOADIT. For use under screen
modes 9 and 12.
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
CALL LEDDISP
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Declaration :
DECLARE SUB getmstat (a$, b%, c%, d%, e%)
Parametres : a$ = String to be displayed
b% = Horizontal screen displacement
c% = Vertical screen displacement
d% = LED Element Colour
e% = Background colour
Return Arguments : None
Function : Allows a quick method of simulating LED or LCD digits onscreen
in graphics modes 9 or 12.
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
CALL LOADIT
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Declaration :
DECLARE SUB LOADIT (thisfile$)
Parametres : Thisfile$ = PDE PANel format name to import.
Return Arguments : None
Function : For use in conjunction with PDE PANel format files created with
the Paragon Development Environment (PDE). This utility renders
onscreen the panel drawn in PDE, including GIFs, PCXs, Icons,
lines, and generally anything else drawn in PDE, eliminating
the need to manually plot points for line, circles, etc. in the
code.
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
CALL LOADPTR
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Declaration :
DECLARE SUB LOADPTR (PtrFile$,csr$)
Parametres : PtrFile$ = Pointer filename (as saved in MPTREDIT)
CSR$ = Internally used by Paragon Library Utilities
Return Arguments : None
Function : Imports a mouse pointer as defined in the Paragon MPTREDIT
facility. The next CALL PUTPTR instruction after a CALL LOADPTR
will update the mouse to the screen.
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
CALL MINIT
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Declaration :
DECLARE SUB MINIT ()
Parametres : None
Return Arguments : None
Function : This Mouse Initialization utility is called ONCE, and the front
end of your program, to initialize the mouse for use in your
code. Subsequent calls have no effect. If a Mouse driver is not
detected, the screen switches to character mode and advises the
user to load MOUSE.COM, MOUSE.SYS, or other MicroSoft Mouse-
Compatible pointer driver.
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
CALL MOUSEHANDLER
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Declaration :
DECLARE SUB MOUSEHANDLER (Ax%, Bx%, Cx%, Dx%)
Parametres : Ax% = Inbound AX register setting for DOS service call &H33
Bx% = Inbound AX register setting for DOS service call &H33
Cx% = Inbound AX register setting for DOS service call &H33
Dx% = Inbound AX register setting for DOS service call &H33
Return Arguments : Varies based on the service call option used.
Function : Allows direct access to DOS INT33H functions (for mouse driver)
through QB45.
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
CALL PLAYMOD
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Declaration :
DECLARE SUB PLAYMOD (a$, frc, b, c, d, e)
Parametres : A$ = Mod FileName to Play
frc%= Sampling frequency at which to play the mod
b% = 1 to play for MOD duration
c% = 1 to play continuous loop
d% = 1 to cease MOD activity
e% = 1 to enable PCSpeaker play (without SoundBlaster)
Return Arguments : None
Function : Plays a MOD digital audio file in background, allowing your
code to continue executing. Some installations of QEMM and
EMM386 may steal interrupts and not release them to the MOD
engine. To remedy this, simply specify the AUTO option in
your QEMM or EMM386 command line.
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
CALL PUTGIF
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Declaration :
DECLARE SUB PUTGIF (A$, b%, c%, d%, e%, f%, g%, h%)
Parametres : A$ = GIF name of GIF87A 16-colour image file to place.
b% = top left corner vertically
c% = top left corner horizontally
d% = bottom right corner vertically
e% = bottom right corner horizontally
f% = image slide attribute (+=right, -=left) x-axis
g% = image slide attribute (+=up, -=down) y-axis
h% = 0 for full-screen image
1 for windowed/panned image
Return Arguments : None
Function : Loads the GIF 87a 16-colour image specified into the window
specified (or full-screen, as defined by h%) at the slide
parametres specified. MAX GIF size is 85k. VERY fast!
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
CALL PUTICON
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Declaration :
DECLARE SUB PUTICON (a%, b%, c$)
Parametres : A% = Vertical placement of ICOn image placement
b% = Horizontal placement of ICOn image placement
c$ = Icon filename as saved in ICEDITOR
Return Arguments : None
Function : Loads the specified .ICO file (created with the Paragon Icon
Editor) and places it onscreen at the position specified.
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
CALL PUTPCX
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Declaration :
DECLARE SUB PUTPCX (A$, b%, c%, d%, e%, f%, g%, h%)
Parametres : A$ = PCX name of 16-colour image file to place.
b% = top left corner vertically
c% = top left corner horizontally
d% = bottom right corner vertically
e% = bottom right corner horizontally
f% = image slide attribute (+=right, -=left) x-axis
g% = image slide attribute (+=up, -=down) y-axis
h% = 0 for full-screen image
1 for windowed/panned image
Return Arguments : None
Function : Loads the specified .PCX file and places it onscreen at the
position specified. Max PCX size is 65535 bytes. VERY Fast!
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
CALL PUTPTR
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Declaration :
DECLARE SUB PUTPTR (a%)
Parametres : A% = 0 to turn mouse pointer off
1 to turn mouse pointer on
Return Arguments : None
Function : Renders the currently loaded mouse pointer as loaded by LOADPTR
on the screen. The Parametre A% will turn the loaded pointer on
or off with this simple call.
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
CALL PUTTXT
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Declaration :
DECLARE SUB PUTTXT (literal$, tlch%, tlcv%, tcolr%)
Parametres : literal$ = String variable to be placed onscreen
TLCH% = Top Left Corner Horizontally, where text is to go.
TLCV% = Top Left Corner Vertically, where text is to go.
DCOLR%= Text Colour (Base QB45 16-colour palette)
Return Arguments : None
Function : Places text onscreen at the position and colour specified. This
assembler routine is VERY fast, and depends on the presence of
STDFONT.REQ in the directory in which your program originates.
Further, a CALL FONTINIT MUST have been executed at the top of
your program immediately after invoking screen modes 9 or 12.
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
CALL SHADPANL
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Declaration :
DECLARE SUB SHADPANL (tlcv%, tlch%, brcv%, brch%, dcolr%)
Parametres : TLCV% = Top Left Corner Vertically
TLCH% = Top Left Corner Horizontally
BRCV% = Bottom Right Corner Vertically
BRCH% = Bottom Right Corner Horizontally
DCOLR%= Panel Colour (256-colour PDE mix OK)
Return Arguments : None
Function : Draws a shadowbox (with black shadow) onscreen at the coordinate
set specified. Suitable for use in Screen mode 9 or 12.
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
CALL SMLPANEL
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Declaration :
DECLARE SUB SMLPANEL (tlcv%, tlch%, brcv%, brch%, dcolr%, brsha%, tlsha%)
Parametres : TLCV% = Top Left Corner Vertically
TLCH% = Top Left Corner Horizontally
BRCV% = Bottom Right Corner Vertically
BRCH% = Bottom Right Corner Horizontally
DCOLR%= Panel Colour (256-colour PDE mix OK)
BRSHA%= Colour for bottom and right sides (reliefing)
TLSHA%= Colour for top and left sides (reliefing)
Return Arguments : None
Function : Draws a box onscreen at the coordinate set specified. Bottom
and right side colour may be specified, as well as top and
left side, to define relief boxes, inset boxes, etc. These
boxes are suitable for use in Screen mode 9 or 12.
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
CALL WAITTIME
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Declaration :
DECLARE SUB WAITTIME (x%)
Parametres : X% = Time to delay (in hundredths of a second)
Return Arguments : None
Function : Timer sub, used to delay for X% hundredths of a second.
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
CALL WBUTREL
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Declaration :
DECLARE SUB WBUTREL ()
Parametres : None
Return Arguments : None
Function : Suspends execution until such time as the mouse button has
been released.
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
CALL ZOOMPANL
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Declaration :
DECLARE SUB ZOOMPANL (tlcv%, tlch%, brcv%, brch%, dcolr%, brsha%, tlsha%)
Parametres : TLCV% = Top Left Corner Vertically
TLCH% = Top Left Corner Horizontally
BRCV% = Bottom Right Corner Vertically
BRCH% = Bottom Right Corner Horizontally
DCOLR%= Panel Colour (256-colour PDE mix OK)
BRSHA%= Colour for bottom and right sides (reliefing)
TLSHA%= Colour for top and left sides (reliefing)
Return Arguments : None
Function : Draws an exploding tech box on the screen in the colour
specified. Suitable for use in Screen mode 9 or 12.
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
███ DarkStar/PDE Panel File Formats ███████████████████████████████████████
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
The DarkStar/PDE PANel files created by our PDE CASE product creates a sim-
ple sequential file consisting of a series of graphic instructions. These
instructions consist of a 2 - byte header to indicate the operation to be
performed, and a syntax following the header specific to that instruction.
All records are sequentially stored, and delimited by a Carriage Return /
LineFeed (Chr$(13)+Chr$(10)).
The PANel file has a two-record header, indicating the PANel name and the
date/time stamp corresponding to its creation date. Additional data is held
enumerating the exit behavior to be performed when the upper left corner of
the tech box (if present on the PANel) is clicked by the user. These two
records might typically appear as follows :
*DARKMAIN82031514:00:00
&DARKLOFF01
The information carried here is identified by the asterisk (*) in the first
byte position of the record. The 8 bytes which follow define the name of
the PANel file. In positions 10 through 15, the date of the last PANel mod-
ification is held. Each time the panel is saved, the date/time stamp is up-
dated. Date/Time stamp format is YYMMDDHH:MM:SS.
The second line of the header record is identified by the & prefix, and is
used to tell PDE how to exit the application when the upper left corner of
the Tech Box (if present on the PANel file) is clicked by the user. The 8-
byte filename which follows (in positions 2 through 9) is the PANel name to
call into play on arbitrary exit. The two bytes which immediately follow
may be either 1 or 0 in each position, representative of the switch setting
on the panelsave under PDE. These represent Peel and Replace, respectively.
Remaining instructions in the DarkStar PANelfile format may be any of the
following :
Paint pour instruction :
01AAABBBCC
Where 01 = Paint header identifier (2 bytes)
Where AAA = horizontal offset of pour origin pixel (3 bytes)
Where BBB = vertical offset of pour origin pixel (3 bytes)
Where CC = colour attribute (0-15) per DOS (2 bytes)
---------
10 bytes
SmallPanel instruction:
02AAABBBCCCDDDEEEFFGG
Where 02 = SmallPanel header identifier (2 bytes)
Where AAA = vertical offset of top left corner of box (3 bytes)
Where BBB = horizontal offset of top left corner of box (3 bytes)
Where CCC = vertical offset of bottom right corner of box (3 bytes)
Where DDD = horizontal offset of bottom right corner of box (3 bytes)
Where EEE = colour attribute (0-128) per MIX-16 algorythm (3 bytes)
Where FF = colour attribute (0-15) for lower right hilite (2 bytes)
Where GG = colour attribute (0-15) per upper left hilite (2 bytes)
---------
21 bytes
TechPanel instruction:
03AAABBBCCCDDDEEEFFGG
Where 03 = TechPanel header identifier (2 bytes)
Where AAA = vertical offset of top left corner of box (3 bytes)
Where BBB = horizontal offset of top left corner of box (3 bytes)
Where CCC = vertical offset of bottom right corner of box (3 bytes)
Where DDD = horizontal offset of bottom right corner of box (3 bytes)
Where EEE = colour attribute (0-128) per MIX-16 algorythm (3 bytes)
Where FF = colour attribute (0-15) for lower right hilite (2 bytes)
Where GG = colour attribute (0-15) per upper left hilite (2 bytes)
---------
21 bytes
ShadowPanel instruction:
04AAABBBCCCDDDEE
Where 04 = ShadowPanel header identifier (2 bytes)
Where AAA = vertical offset of top left corner of box (3 bytes)
Where BBB = horizontal offset of top left corner of box (3 bytes)
Where CCC = vertical offset of bottom right corner of box (3 bytes)
Where DDD = horizontal offset of bottom right corner of box (3 bytes)
Where EE = colour attribute (0-15) of box per DOS BASE-16 (2 bytes)
---------
16 bytes
BevelPanel instruction:
05AAABBBCCCDDDEE
Where 05 = BevelPanel header identifier (2 bytes)
Where AAA = vertical offset of top left corner of box (3 bytes)
Where BBB = horizontal offset of top left corner of box (3 bytes)
Where CCC = vertical offset of bottom right corner of box (3 bytes)
Where DDD = horizontal offset of bottom right corner of box (3 bytes)
Where EE = colour attribute (0-15) of box per DOS BASE-16 (2 bytes)
---------
16 bytes
LinePanel instruction:
06AAABBBCCCDDDEEEFFGG
Where 06 = LinePanel header identifier (2 bytes)
Where AAA = vertical offset of top left corner of box (3 bytes)
Where BBB = horizontal offset of top left corner of box (3 bytes)
Where CCC = vertical offset of bottom right corner of box (3 bytes)
Where DDD = horizontal offset of bottom right corner of box (3 bytes)
Where EEE = colour attribute (0-128) per MIX-16 algorythm (3 bytes)
Where FF = colour attribute (0-15) for lower right hilite (2 bytes)
Where GG = colour attribute (0-15) per upper left hilite (2 bytes)
---------
21 bytes
ZonePanel instruction:
07AAABBBCCCDDDEEEFFGG
Where 07 = ZonePanel header identifier (2 bytes)
Where AAA = vertical offset of top left corner of box (3 bytes)
Where BBB = horizontal offset of top left corner of box (3 bytes)
Where CCC = vertical offset of bottom right corner of box (3 bytes)
Where DDD = horizontal offset of bottom right corner of box (3 bytes)
Where EEE = colour attribute (0-128) per MIX-16 algorythm (3 bytes)
Where FF = colour attribute (0-15) for lower right hilite (2 bytes)
Where GG = colour attribute (0-15) per upper left hilite (2 bytes)
---------
21 bytes
Icon Image instruction :
08AAAAAAAABBBCCC
Where 08 = Icon Image header identifier (2 bytes)
Where AAAAAAAA = 8-byte Icon Imagefile name (8 bytes)
Where BBB = Horizontal offset to top left corner of icon (3 bytes)
Where CCC = Vertical offset to top left corner of icon (3 bytes)
---------
16 bytes
PCX Image instruction :
09AAAAAAAABBBCCCDDDEEEFFFFGGGGH
Where 09 = PCX Image header identifier (2 bytes)
Where AAAAAAAA = 8-byte PCX-Image filename (8 bytes)
Where BBB = Horizontal offset to top left corner of pcx (3 bytes)
Where CCC = Vertical offset to top left corner of pcx (3 bytes)
Where DDD = Horizontal offset to lower right corner/pcx (3 bytes)
Where EEE = Vertical offset to lower right corner/pcx (3 bytes)
Where FFFF = Horizontal slide of PCX within above window (4 bytes)
Where GGGG = Vertical slide of PCX within above window (4 bytes)
Where H = 0 to place PCX into window defined (1 byte )
or H = 3 to place PCX as image filling viewport
---------
31 bytes
GIF Image instruction :
10AAAAAAAABBBCCCDDDEEEFFFFGGGGH
Where 10 = GIF Image header identifier (2 bytes)
Where AAAAAAAA = 8-byte GIF-Image filename (8 bytes)
Where BBB = Horizontal offset to top left corner of GIF (3 bytes)
Where CCC = Vertical offset to top left corner of GIF (3 bytes)
Where DDD = Horizontal offset to lower right corner/GIF (3 bytes)
Where EEE = Vertical offset to lower right corner/GIF (3 bytes)
Where FFFF = Horizontal slide of GIF within above window (4 bytes)
Where GGGG = Vertical slide of GIF within above window (4 bytes)
Where H = 0 to place GIF into window defined (1 byte )
or H = 3 to place GIF as image filling viewport
---------
31 bytes
MOD Audio file instruction :
11 AAAAAAAABCD
Where 11 = MOD Audio header identifier (2 bytes)
Where AAAAAAAA = 8-byte MOD-format audio filename (8 bytes)
Where B = 1 if Endless loop play activity desired (1 byte )
or B = 0 if flag not thrown
Where C = 1 if single-pass play activity desired (1 byte )
or C = 0 if flag not thrown
Where D = 1 if Silence all MOD activity (1 byte )
or D = 0 if flag not thrown
---------
13 bytes
Text placement instruction :
12AAAAAAAAAAAAAAAAAAAAAAAAA║BBBCCCDD
Where 12 = Text line header identifier (2 bytes)
Where A = Text to be placed onscreen and within viewport (80-Byte Max)
Where ║ = ASCII 186 delimiter to note end of text (1 byte )
Where BBB = Horizontal offset for top left corner of first byte (3 bytes)
Where CCC = Vertical offset for top left corner of first byte (3 bytes)
Where DD = Colour attribute (0-15) of box per DOS BASE-16 (2 bytes)
---------
Varies
Line instruction :
13AAABBBCCCDDDEE
Where 13 = Line instruction header identifier (2 bytes)
Where AAA = Horizontal offset of Point #1 in Viewport (3 bytes)
Where BBB = Vertical offset of Point #1 in Viewport (3 bytes)
Where CCC = Horizontal offset of Point #2 in Viewport (3 bytes)
Where DDD = Vertical offset of Point #2 in Viewport (3 bytes)
Where EE = Colour attribute (0-15) of line per DOS BASE-16 (2 bytes)
---------
16 bytes
Circle instruction :
14 AAABBBCCCDD
Where 14 = Circle instruction header identifier (2 bytes)
Where AAA = Horizontal offset of Centrepoint of circle (3 bytes)
Where BBB = Vertical offset of Centrepoint of circle (3 bytes)
Where CCC = Radius of circle (3 bytes)
Where DD = Colour attribute (0-15) of circle per DOS BASE-16 (2 bytes)
---------
13 bytes
Field definition :
50AAAAAAAAAAAAAAABBCCDDDEEEFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGG
Where 50 = Field definition header ID (02 bytes)
Where AAAAAAAAAAAAAAA = Dbase-compatible field name (15 bytes)
Where BB = Colour of field (02 bytes)
Where CC = Field length (max characters) (02 bytes)
Where DDD = Hor. offset - top left corner (03 bytes)
Where EEE = Ver. offset - top left corner (03 bytes)
Where FFFFFFFFFFFFFFFFFFFF = Special edit codes per PDE (20 bytes)
Where GGGGGGGGGGGG = Standard edit flags (follows) (12 bytes)
1 = Numeric data only │ 12345│ (01 byte )
1 = Right-flush field │ 123│ (01 byte )
1 = Centre field data │ 123 │ (01 byte )
1 = Left-flush field │123 │ (01 byte )
1 = Cash-flush field │ 123.45│ (01 byte )
1 = Zero-flush field │00000123│ (01 byte )
1 = Valid hour (0-12) (01 byte )
1 = Valid minute (0-59) (01 byte )
1 = Uppercase flag │ ABC│ (01 byte )
1 = Valid month (1-12) (01 byte )
1 = Valid day (1-31) (01 byte )
1 = Valid year (93-99) (01 byte )
----------
59 bytes
Switch definition:
51 AAAAAAAAAAAAAAABBCCCDDD
Where 51 = Switch definition header ID (02 bytes)
Where AAAAAAAAAAAAAAA = Switch name (15 bytes)
Where BB = Switch colour (DOS Base-16) (02 bytes)
Where CC = Hor. offset, top left corner (03 bytes)
Where DD = Ver. offset, top left corner (03 bytes)
----------
25 bytes
Button definition:
52AAAAAAAAAAAAAAAAAAAABBCCCDDDEEEFFFGGGGGGGGGGGGGGGGGGGG+
HHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
Where 52 = Button definition header ID (02 bytes)
Where AAAAAAAAAAAAAAAAAAAA = Button Name (appears on button) (20 bytes)
Where BB = Button colour (DOS Base-16) (02 bytes)
Where CCC = Horizontal button size (width) (03 bytes)
Where DDD = Vertical button size (height) (03 bytes)
Where EEE = Horizontal button offset (TLC) (03 bytes)
Where FFF = Vertical button offset (TLC) (03 bytes)
Where GGGGGGGGGGGGGGGGGGGG = Function name called on event (20 bytes)
Where HHHHH = Security level to see button (05 bytes)
Where IIIIIIIIIIIIIIIII... = Security flags to see button (32 bytes)
----------
93 bytes
IconButton definition:
53AAAAAAAABBBCCCDDDDDDDDDDDDDDDEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
Where 53 = IconButton definition header ID (02 bytes)
Where AAAAAAAA = 8-byte IconImage filename (08 bytes)
Where BBB = Hor. offset of top left corner (03 bytes)
Where CCC = Ver. offset of top left corner (03 bytes)
Where DDDDDDDDDDDDDDDDDDDD = Function name called on event (20 bytes)
Where EEEEE = Security level to see button (05 bytes)
Where FFFFFFFFFFFFFFFFF... = Security flags to see button (32 bytes)
----------
73 bytes
MenuBar definition:
54║XXXX│AAA▒aaa│BBB▒bbb│CCC▒ccc║YYYY│AAA▒aaa│BBB▒bbb│CCC▒ccc
Where 54 = MenuBar definition header ID (02 bytes)
Where ║ = ASCII 186 - MBar Title prefix (01 bytes)
Where XXXX = MenuBar title header ( varies )
Where │ = ASCII 179 - MBar Item prefix (01 bytes)
Where AAA = MenuBar pull-down item ( varies )
Where ▒ = ASCII 177 - MBar function prefix (01 bytes)
Where aaa = MenuBar Function invoked when item selected ( varies )
Where │ = ASCII 179 - MBar Item prefix (01 bytes)
Where BBB = MenuBar pull-down item ( varies )
Where ▒ = ASCII 177 - MBar function prefix (01 bytes)
Where bbb = MenuBar Function invoked when item selected ( varies )
Where │ = ASCII 179 - MBar Item prefix (01 bytes)
Where CCC = MenuBar pull-down item ( varies )
Where ▒ = ASCII 177 - MBar function prefix (01 bytes)
Where ccc = MenuBar Function invoked when item selected ( varies )
----------
Varies