Category : BASIC Source Code
Archive   : QBWIZ20.ZIP
Filename : QBWIZ.MAN

 
Output of file : QBWIZ.MAN contained in archive : QBWIZ20.ZIP
The QuickBasic Wizard's Library

QBWiz Copyright (c) 1990-1994 Thomas G. Hanlin III



This constitutes technical documentation for the QBWiz library.
It includes a reference of some useful QuickBasic internal
variables.

Information on the internal structure of QuickBasic and BASCOM
was obtained by my own work and is not by any means guaranteed
by Microsoft. Microsoft can and will change the internals at any
time it suits them.

However, this information is correct, to the best of my
knowledge, for QuickBasic 4.5. It should also hold true as far
back as QuickBasic 4.0 and for the BASCOM 6.0 compiler. Since
these are all "old" versions, it should be safe to assume that
they will not be changed. QBWiz may or may not work as expected
with newer BASIC compilers.

Note that the /ML option must be used when assembling the .ASM
sources. This is not usually needed with BASIC, which expects
its external names to be converted to uppercase. Here, however,
we're accessing BASIC internal names, which don't follow the
same rules.

On to the gory details!

Some QuickBasic Internal Variables



__acmdln dword ptr original command line
__osmajor byte DOS version (major part)
__osminor byte DOS version (minor part)
b$ActPage byte active display page
b$Adapter byte display adapter type
b$BackColor byte default background color
b$BiosMode byte display mode (BIOS numbering)
b$BorderColor byte current border color
b$Burst byte whether color burst is on (0 no)
b$FBColors byte default color/attribute
b$ForeColor byte default foreground color
b$IOFLAG byte redirection state (bit 0 in, 1 out)
b$LPTFDB +4 byte width of LPRINT device
b$ScreenMode byte display mode (BASIC numbering)
b$ScrHeight byte height of the screen (rows)
b$ScrWidth byte width of the screen (columns)
b$seg word segment defined by DEF SEG
b$UsrCsrOn byte whether the cursor shows (0 no)
b$UsrCsrStart byte cursor starting scan line
b$UsrCsrStop byte cursor ending scan line
b$VisPage byte visible display page
b$WDOBOTTOM byte bottom row of VIEW PRINT window
b$WDOTOP byte top row of VIEW PRINT window

Access Routines



Routine name Source file Internal variable used

ACTPAGE PAGE.ASM b$ActPage
BACKCOLOR BACK.ASM b$BackColor
BORDERCOLOR BORDER.ASM b$BorderColor
COLORBURST COLORB.ASM b$Burst
COMMANDLINE COMMANDL.ASM __acmdln
CRT CRT.ASM b$Adapter
CURSORSTART CSTART.ASM b$UsrCsrStart
CURSORSTOP CSTOP.ASM b$UsrCsrStop
DEFSEG DEFSEG.ASM b$seg
DOSVERSION DOSVERS.ASM __osmajor, __osminor
ERRLEVEL ERRLEVEL.ASM B$terminate (label)
FORECOLOR FORE.ASM b$ForeColor
PRINTERWIDTH PRTWIDTH.ASM b$LPTFDB
SCREENHEIGHT SHEIGHT.ASM b$ScrHeight
SCREENMODE SMODE.ASM b$ScreenMode
SCREENWIDTH SWIDTH.ASM b$ScrWidth
SHOWCURSOR SHOWCUR.ASM b$UsrCsrOn
VIEWBOTTOM VIEW.ASM b$WDOBOTTOM
VIEWTOP VIEW.ASM b$WDOTOP
VISPAGE PAGE.ASM b$VisPage



  3 Responses to “Category : BASIC Source Code
Archive   : QBWIZ20.ZIP
Filename : QBWIZ.MAN

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/