Contents of the INTRO.DOC file
WHAT IS PULDOWN?
PULDOWN is a software package that generates customized menus from the
QuickBASIC environment. The generated menus function in essentially the same
way as the QuickBASIC menu, as demonstrated in DEMO.EXE, and can be used
either in the QuickBASIC environment or in a compiled program.
WHY THE QuickBASIC MENU?
If you're reading this, you must be a QuickBASIC programmer, and chances
are that--like me--you love QuickBASIC, and have come to recognize that
the QuickBASIC menu may well be the ultimate in text-based menu systems for
power, flexibility and ease of use. Chances are that even if you've been using the
QuickBASIC for a long time, you're still not aware of all the capabilities of
its menu system. I know I wasn't until I started writing this program.
Wouldn't it be great if we could easily incorporate such a menu system into
our QuickBASIC programs, with the additional bonus of expanding a standard
user interface? That's what PULDOWN is about.
Why bother with PULDOWN when any minimally adept QuickBASIC programmer can
write his own QuickBASIC-style menu routine in QuickBASIC? Because such a
routine would probably take up 20-30 K, if not more. Compactness of code is
not one of QuickBASIC's most endearing features. For compactness and speed,
there's no rivaling Assembly Language. You could write such a routine in AL,
IF you know how, IF you have a decent assembler/debugger, IF you're willing
to spend several weeks at it, and IF you feel like tangling with the apocrypha
of interfacing AL to QuickBASIC. PULDOWN saves you from all that. After you've
learned the rules and procedures for using PULDOWN, you can create a fast,
sophisticated menu anytime, with great ease.
AND IT'S FREE
And it's free. Not cheap, mind you--it cost me plenty in time and aggravation.
Why do I give it away? Because I love doing this. I'm an amateur programmer,
and trying to get money for it would spoil the fun.
IS PULDOWN TOO MUCH?
It can be. Puldown is a heavy-duty menu system that can put well over 500
second-level menu items on the screen. Not that anybody would want to--
anything over 40-50 gets too cumbersome to be useful. PULDOWN is meant for a
menu with 4-7 first level items and 20-50 at the second level. That's for a
program of at least medium complexity. If your program doesn't need to select
between more than a 6-8 menu items at a time, you'd be better off skipping
PULDOWN. Infact, such a use of PULDOWN might be downright silly.
WHAT FILES DO YOU NEED?
This package contains 7 files. It is important for you to know something about
them, and which of them you may need:
PULDOWN.QLB is a QuickLibrary file that contains PULDOWN's "engine".
It is useful only when a program that uses PULDOWN is running in the
PULDOWN.LIB is essentially the same as PULDOWN.QLB. It is a "library
module" that is used only when a QuickBASIC program that uses PULDOWN
is compiled to an EXE file.
PULDOWN.BAS is the BASIC part of the program. It runs in the
QuickBASIC environment and can be edited to create custom menus.
It will not work unless PULDOWN.QLB is loaded at the command line.
TUTORIAL.BAS is exactly the same as PULDOWN.BAS in terms of code, but
it has extensive comments that help you understand how PULDOWN works,
and how to customize it.
PULDEMO.EXE is a standalone program that demonstrates what PULDOWN
does. Its source code is essentially the same as that for
PULDOWN.BAS + PULDOWN.QLB/LIB, but it is entirely in AL. Please
activate it with DEMO.BAT, at least the first time.
PULDOWN.OBJ is the object file from which PULDOWN.QLB/LIB derive. It
is useful only when PULDOWN needs to be linked to other library
modules (If you're not sure what that means, then you need not worry
about it anyway)
INTRO.DOC is this file.
The nuts and bolts of how-to are in TUTORIAL.BAS, and if you're ready to try
the PULDOWN system, that's the file you want to get to. Here's how to go
about it (after, of course, you've safely made copies of all the files on
a backup diskette):
1. Copy PULDOWN.BAS, TUTORIAL.BAS, PULDOWN.QLB, and PULDOWN.LIB to the
directory where QuickBASIC expects to find them (usually /QB45)
2. PULDOWN will not work unless PULDOWN.QLB is loaded with QB.EXE and
the "/L" option. If you are now in QuickBASIC, you need to exit.
Start QuickBASIC with the following command line (or batch
QB /L PULDOWN
3. Once in QuickBASIC, you can load either PULDOWN.BAS or TUTORIAL.BAS,
or both. Both files are ready to run from the QuickBASIC environment
(provided PULDOWN.QLB is loaded). You can edit either of the two, but
TUTORIAL.BAS has the information you need.
4. When you are ready to make an EXE file out of your program with a
customized PULDOWN menu, be sure that PULDOWN.LIB is in QuickBASIC's
(If you have other library routines to link with your program, then
you must add PULDOWN.OBJ to your LIB and QLB files. Consult your
manual for details.)
In other words, to get started on the learning and editing process, you really
need only two files: PULDOWN.QLB loaded at the command line, and TUTORIAL.BAS
loaded from the environment. Read TUTORIAL.BAS once through, follow its
directions, and you'll be turning out customized menus in no time at all.
Some of these files are replete with often tedious and perhaps intimidating
explanations, but they are necessary. You can try out PULDOWN without
getting bogged down in them.
LIMITATIONS AND CAUTIONS
PULDOWN does not support any dirty little rodents. Infact, I think that this
kind of menu if much faster and more convenient than a mouse menu.
However, if there's any clamoring for mouse support in the future, this
programmer might possibly make the sacrifice. If you're a programmer who's
into mouse taming, and you like PULDOWN, get in touch with me, we might work
PULDOWN has been tested on XT clones, a 286 and 386 system, and with DOS 2.1
to 3.3. That's only a fraction of the possible machine/OS combinations, but
so far it's worked wherever it's been tested.
PULDOWN is designed for QuickBASIC (version 4.5 to be specific). I don't know
whether it will work with older QuickBASICs or with BASCOM, or with the MS
BASIC Professional Development System, but I'd like to find out.
It WILL NOT work with BASICA or GWBASIC. I have no reason to think it will
work unmodified with Turbo BASIC or other non-Microsoft BASIC compilers, but
if anybody wants to try to adapt it, I'll be glad to cooperate.
An application using PULDOWN menus can run in Windows, but not within a
window--it must be run as a non-Windows application.
If I thought there were any bugs left in PULDOWN, I wouldn't have published
it. But I am no less fallible than Lotus or Microsoft. If you run across a
bug, please accept my apologies and let me know. I will fix it if it is
WHO TO BLAME
If you wish to contact me regarding a bug, or any other aspect of PULDOWN,
write to or call:
509 Alvarado Street
Brisbane, CA 94005
FAX 415 467-4824
PULDOWN is copyrighted, and I retain rights to it.
PULDOWN may be freely used by anyone to develop non-commercial software.
PULDOWN may be freely distributed, so long as the distributor does not charge
any fee for it, other than to cover the costs of distribution and not in
excess of $10 per copy.
PULDOWN may be used is the development of commercial software only with my
PULDOWN is offered as is. Anyone who uses it does so at their own risk. It is
not guaranteed to be free of errors or to work on any particular system. If
you use PULDOWN, you agree to these terms.
A WORD TO MICROSOFT
Yes, PULDOWN is a blatant and precise rip-off of the look-and-feel of the
QuickBASIC menu system. It is meant as sincerest flattery. Please don't sue