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

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

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

This is QBWiz, an assembly language library for use with
QuickBasic and BASCOM. It was tested under QB 4.5 and is
expected to work with QuickBasic versions 4.0 - 4.5 and BASCOM
6.0. Due to strong dependency on the internals of the compiler,
QBWiz may well not work with other versions. QBWiz is only for
stand-alone compiled programs. It will not work with programs
that require the runtime module (BRUNxx) or inside the QB

The QBWiz collection is copyrighted and may be distributed only
if the following conditions are met:

All files must be included in original, unaltered condition.
This means that none of the original files may be altered,
and that no additions or deletions may be made to the set of
original files.

YOU USE THIS LIBRARY AT YOUR OWN RISK. It has been tested by me
on my own computer, but I will not assume any responsibility for
any problems which QBWiz may cause you.

The accompanying source code is designed for the MASM 6.0
assembler and may require modifications to assemble with A86,

Note that QBWiz will work only with stand-alone compiled BASIC
programs, that is, programs compiled with the /O switch.

The QBWiz library provides a way to access many of QuickBasic's
internal variables, which is useful in general and can be
especially handy in writing generic subprograms. The information
provided allows subprograms to do whatever they may need to do
and reset the original values when they exit. Among the
information that may be accessed is what the current screen
colors are, whether the cursor is visible (and if so, what size
it is), what the current display pages are, whether redirection
is in effect, and so forth. It is also possible to set certain
values, like the error level to return to DOS when your program

Replacements for BCOM45.LIB:
These routines will not work with Crescent's P.D.Q. library,
which does not maintain internal compatibility with the
standard BASIC library. However, with the exception of the
PrinterWidth% function, they work fine with my QBTiny library.


If you are not familiar with libraries, you're missing a good
thing. A library is a collection of routines. These may be
subprograms or functions written in BASIC and compiled to .OBJ
format, assembly language routines, or even routines written in
Microsoft C, Fortran or Pascal using the "mixed language"
calling conventions. When your program is compiled, you can LINK
it with one or more libraries. The LINK utility is smart enough
to automatically take just the routines that you use from the
library and add them to your program. A library is a great way
to put together a set of standard routines which you use
frequently. Libraries of this sort can also be obtained from
your local BBS or purchased outright. There are many, many
libraries available, ranging from special-purpose collections
containing such things as communications support or dBASE access
to full-spectrum libraries with hundreds of routines of all
kinds. Don't miss out-- scan your local BBS today!

If you were to LINK a normal BASIC program, you'd probably type
something like this:

LINK program/EX;

To use the functions in the provided QBWIZ.LIB, you would type
something like this instead:


You can use multiple libraries very easily:

LINK program/EX,,NUL,QBWIZ+anylib;

QuickBasic Access Functions

The QuickBasic Access Functions are contained in the QBWIZ.LIB
library. The function declaration information for this library
is contained in QBWIZ.BI, which should be included at the top of
your programs. Either copy QBWIZ.BI directly into your program
or use an include statement:


These functions allow you to obtain information from
QuickBasic's internal variables. Many useful values can be
obtained this way that would not be available otherwise.

The following functions are available:

ActPage% active display page
BackColor% current text background color
BorderColor% current border color
ColorBurst% whether color burst is on: 0 no, -1 yes
CommandLine$ original command line
CRT$ type of display adapter
CursorStart% starting cursor scan line
CursorStop% ending cursor scan line
DefSeg% data segment defined by DEF SEG
ForeColor% current text foreground color
PrinterWidth% width of the printer (columns)
RedirIn% whether input is redirected: 0 no, -1 yes
RedirOut% whether output is redirected: 0 no, -1 yes
ScreenHeight% height of the screen (rows)
ScreenMode% current BASIC screen mode
ScreenWidth% width of the screen (columns)
ShowCursor% whether the cursor is visible: 0 no, -1 yes
ViewBottom% bottom row of the screen (VIEW PRINT info)
ViewTop% top row of the screen (VIEW PRINT info)
VisPage% visible display page

QuickBasic Access Subprograms

The QuickBasic Access Subprograms are contained in the QBWIZ.LIB
library. The function declaration information for this library
is contained in QBWIZ.BI, which should be included at the top of
your programs. Either copy QBWIZ.BI directly into your program
or use an include statement:


These subprograms allow you to alter information in QuickBasic's
internal variables. This allows you to accomplish some things
that might not otherwise be possible.

The following subprograms are available:

ErrLevel x% error level to return to DOS when program ends
(x% may be from 0 - 255)

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

  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: