Dec 282017
Memory Resident database.
File ONBASE.ZIP from The Programmer’s Corner in
Category Databases and related files
Memory Resident database.
File Name File Size Zip Size Zip Type
BASEPATH.EXE 8695 5568 deflated
BTRIEVE.EXE 31472 17798 deflated
BUYER.QWB 1408 216 deflated
MSG.QWB 1024 145 deflated
ONBASE.DOC 25301 9251 deflated
ONBASE.EXE 12213 7697 deflated
PHONE.QWB 512 164 deflated
SUBRTN.QWB 1536 187 deflated

Download File ONBASE.ZIP Here

Contents of the ONBASE.DOC file

ONBASE (V1.43 10/22/87)
Onbase is a memory resident program which allows a user
to rapidly access, create, modify and delete data from custom
single screen databases. Onbase is meant to allow a user to have
on line any information which may be needed in a quick and easy
retrieval fashion. Examples of an Onbase application might be: a
phone number program which allows Hot Key access to your phone
directory, or a product price sheet which could be called up in
response to a phone query.

1.) Three user definable on-line databases at a time.
2.) User definable hot keys.
3.) Very simple creation of new databases.
4.) Program functions in both single and multi-user environments.
5.) Easy export and import of data to and from other programs.
6.) Quick and responsive on a PC, really snappy on an AT.
7.) Sophisticated Technology overcomes most Popup problems.
8.) Handcrafted in Assembly language to consume a minimum amount
of the machine's resources for the functions achieved.
9.) Size of databases limited only by size of disks.
10.) Password protection of files available.
11.) Very low cost.
12.) Allows up to 12 keys per record, 130 fields per record

System requirements: IBM PC,XT,AT,PS2 or compatible computer
(either standalone or networked using Novell Netware) running DOS
3.1 or greater. Supports monochrome (Hercules or MDA) ,CGA,
enhanced CGA, (PS2 model 30),EGA,and VGA adapters.

Onbase is distributed under the Shareware concept. For those
not familiar with the idea: Shareware is an attempt to hold down
the cost of software by minimizing the costs of publishing and
distribution. Shareware is similar in concept to the "Honor
System" method of candy sales; both are based on the fact that
most people are honest enough to pay for what they get. Shareware
offers the advantage of allowing a customer to try out and test a
program before buying it. It is a simple fact of life that
computer users pass software around. Shareware legitimizes this
fact: feel free to pass this package to your friends and
associates. No matter how you came to possess this software - you
may become a registered owner of it by sending fifteen dollars by
check or money order to:

Robert Canup
P.O. Box 31075
Houston, TX 77231

Protect the concept and advantages of Shareware: become a
registered owner today.

Commercial site licensing is available upon request.

An additional inducement to registering ownership of Onbase is
this program:

Each 100th person purchasing Onbase receives a check for
Each 1,000th person purchasing Onbase receives a check for
Each 10,000th person purchasing Onbase receives a check for
Each 100,000th person purchasing Onbase receives a check for
Each 1,000,000th person purchasing Onbase receives a check for

"If you are lucky the things you forgot are the things which
didn't matter."
M. Robert Showalter

Great care and effort has been expended in the coding and
testing of these programs to insure their correct functionality.
Unfortunately testing can only show a program to be faulty, no
amount of testing can show a program to be error free. If, in
using these programs you do uncover a boundary condition which
causes the code to malfunction please feel free to send the
specifics of the circumstances which caused the failure to the
above address. Every effort will be expended in order to attempt
to correct bugs which are uncovered in this fashion.
Due to the unfortunate times in which we live I am forced
to include the following notice:



The philosophy of Onbase is "Lean and Mean". Onbase lacks
windows, colors, sound effects, and fancy opening displays. While
they make programs appear to be more "Professional"; such things
serve only to annoy someone whose goal is to accomplish as much
as is possible in a given period of time.
To produce an output BASIC requires source code which gives
it a list of instructions to perform. Onbase is similar in that
Let us take a phone look up database as an example of an
Onbase application. If one wanted an Onbase screen which looked
like this:


Phone number:
Address 1:
Address 2:
Date entered: Time entered:
Document serial number:

Where entering someone's name would bring up the rest of the
information on the screen, it would be necessary to supply
Onbase with a source screen which looked like the following.


Phone number:@@@@@@@@@@@@@@
Address 1:.................................
Address 2:.................................
Date entered: \%%%% Time entered: |^^^^
Document serial number:~$$$$$$$$$

Several things stand out about the source screen for the
Onbase application. Ten different symbols appear on the source
screen which do not appear on the data inquiry screen. These
symbols are the key to generating an Onbase application.
The first different symbol which appears on the source
screen and not on the application screen is '!'. '!' Is the
symbol for a primary key; that is '!' marks the location by which
information is normally found. It is usual in looking for some
one's phone number to know their name. The number of non
displayable symbols which appear grouped together indicate how
long a field is. In the above example the 33 '!' symbols in a row
next to the 'Name:' means that Onbase will accept up to 33
characters for a persons name. You determine the length of the
fields that you wish to use when you lay out your Onbase source
The next symbol on the screen is: '.' This symbol is used to
denote a field which Onbase will fill in with information.
Also appearing on the screen are the symbols '@'and '#'
these represent secondary keys which may be selected by the user
to find information: In the above example you might need to know

who a phone number belongs to; in which case you would select the
use of the '@' key for use. (It will be explained later how to do
this.) In a similar fashion '#' represents a tertiary key for
data lookup.
The available symbols for keys are:


The above makes sense if you look at the row of symbols
above the number keys on a standard PC keyboard: these are simply
the top row of keys shifted to uppercase. The primary key is the
most important key you expect to be using; normally when Onbase
is invoked it is the key which is in effect. The other keys have
no precedence over each other. No key has to be assigned in
physical order on the screen: the Primary key might be the last
physical line on the screen, and follow all of the other keys on
the screen. At least one key is required for each Onbase
application; otherwise Onbase would have no idea what information
to supply to the user.
The difference between a field with '.....' and one of the
key fields such as '!!!!!!' or '&&&&&&&' is that Onbase can be
asked to find data in a key field, but not in a simple data field
denoted by periods. The reason that one does not make every field
a key field is that key fields require more space on the disk
than non key fields. In addition, because of this, a database
which has many key fields will take longer to enter data onto the
disk than a database with fewer key fields.
Also appearing on the source screen are the symbols "\ | ~ "
these symbols differ from the field symbols in that they cause
the computer to supply information to a given screen at the time
that the data screen is recorded onto a disk. These fields may
also be made into search key fields by entering a legal,
available key field identifier immediately after the "\ | ~"
appears. The example screen shows the proper way to make key
fields for the time,date and serial number fields. Note that nine
key symbols follow the serial number field, while four key
symbols follow both the date('\') symbol and the time('|') char.
These values are the only proper sizes to use when making these
fields key fields. Be sure to leave enough space on the screen
for the date, time, and serial number fields to display. All
three fields require nine character spaces after the identifier
character. Example:


Date:\&&&& Time:|@@@@ Document number:~+++++++++


Date:\&&&& Time:|@@@@ Document number:~+++++++++

In order to supply Onbase with a source screen it is
necessary to use an editor such as Edlin or Wordstar in the non-
document mode, to create the source screen. The name of the

source screen is any legal DOS file name from one to eight
characters, followed by .QWB for a file extent. The name of our
sample program is 'PHONE.QWB'.

As was pointed out earlier in this text Onbase is a memory
resident program, meaning that it can be brought up at any time
by activating ALT 1, ALT 2, or by ALT 3 key sequences. The reason
that three key sequences can bring Onbase up is that Onbase
allows three separate Databases to be active at a time. When
Onbase is loaded into memory it is done by typing :

Onbase filename1 filename2 filename3

where filename1 , filename2 and filename3 are the names of 3
Onbase source files. As was stated earlier; Onbase assumes an
extent of QWB for its files, so it is not necessary to include
.QWB on the end of these names. Onbase will search both the
current directory and the directory \QWIK\ for the named files.
Onbase creates the directory \QWIK\ if it does not exist, so it
is not necessary for the user to worry about this. Filename1 is
brought up as a data base by means of the ALT 1 key sequence,
filename2 is activated by ALT 2, and filename3 by ALT 3 .

In some cases the ALT 1,2,3 sequence may conflict with other
programs, and it may be desirable to change the active hot keys
to some other combination. Onbase allows this with the following
command line:


The /h or /H option makes the three active hot keys ALT 6, ALT 8,
and ALT J. (Or ALT j, as the computer is not case sensitive for
ALT key combination.) The legal ALT keys are 0 - 9 and A - Z,
giving a total of 36 available keys.

Onbase also allows databases to be password protected. There
are two methods of causing this password protection to occur. The
first way is to enclose the filenames to be protected in brackets
the first time that a new database is created. Example::

Onbase /h 5 a 9 filename1 [filename2 filename3]

In the above example filename2 and filename3 would both ask for
passwords provided that the above command line represented the
first time that either of these files had been used. The second
way to password protect a file will be explained later when the
menu line options are described.

When Onbase is resident in memory activating it by pressing
one of the active hot keys will bring up the appropriate database
in the search mode with the cursor pointing to the currently
active key position. If searching for data is not the operation
that you wish to perform simply press the Enter key without
typing anything else. Onbase will then display the following line
at the bottom of the screen:

record: Enter,Modify,Delete,Search | change:Keys,Applications,Passwords

This the main menu line for Onbase and represents the options
which are available to a user. The first half of the line
represents operations which may be performed on individual
screens of data, which Onbase refers to as records. If you wished
to enter new data into a database you would select the Enter
option from the menu line by typing an 'E' or an 'e'. Onbase will
then position the cursor on the first physical field on the
screen and accept data. After you have finished entering data
into each field on the screen press the ENTER key. When you have
completed the last field on the screen Onbase will automatically
save the information on your disk drive. In some cases, where a
screen might have several potential empty fields, it would be
annoying to enter several keystrokes to finish the screen. Onbase
allows you avoid this by allowing you to press the PgDn key as a
key meaning: Accept the rest of the screen as blanks. In effect
PgDn is an accept screen key where Enter is an accept field key.
Printed on the bottom line of the screen when in the Enter mode
is the line:

Press Enter key with no data in the first line to return to menu

The Search option is identical to the mode in which Onbase
functions when it is first activated. When the search mode is
active the following line will be displayed at the bottom of the

What record do you wish to find?

When data has been entered in the search key field, Onbase will
attempt to find the asked for record. If it can't find a record
which exactly matches the information asked for Onbase will
display the next record in the database. Onbase will then display
an option line at the bottom of the screen which reads as

fetch: next(PgDn),previous(PgUp),first(Home),last(End). New key(Enter)

The keys in parentheses are the keys which would be pressed to
cause Onbase to perform the function to the left of the
parentheses. For example if the PgUp key was pressed Onbase would
find the record which proceeded the current record in the key
sorted order. This line allows the user to scan through the
database. (For example: if you were looking for records in which
the the key field was duplicated and other data was different,
the PgDn and PgUp keys would be of great use.) The Home and End
keys allow you to find the first and last records in the
database. Pressing the Enter key will allow you to search by key
for new data.
The Modify and Delete options both work in similar fashion.
Let us explore the Modify option first. When modify is selected
the cursor is immediately placed at the location of the currently
active key field. The following line is displayed on the last
line on the screen:

What record do you wish to find?

When data has been entered in the search key field, Onbase will
attempt to find the asked for record. If it can't find a record
which exactly matches the information asked for Onbase will
display the next record in the database. Onbase will then display
an option line at the bottom of the screen which reads as

Is this the correct record? Y/N:

Answering 'N' or 'n' will bring up the option line shown next:

fetch: next(PgDn),previous(PgUp),first(Home),last(End). New key(Enter)

Which performs in the same fashion as the same line in the Search
mode. When the Enter key is pressed at this prompt, Onbase will
again ask:

Is this the correct record? Y/N:

Answering this question with a 'Y' or 'y' will cause Onbase to
number the fields on the screen and ask:

Which number field to be active?

Answering this question with a number will allow you to modify
that numbered field. When you wish to Exit the modify mode Onbase
will then modify that data on the disk.

The Delete mode works in the same fashion except that answering
the question:

Is this the correct record? Y/N:

with a yes will cause the record shown to be deleted from the
current database. In both the Delete and Modify mode pressing
return in answer to this question will cause Onbase to return to
the main menu line.

The change: options part of the main menu allow you to
change the active key for searching, the currently active
database and the Password. If no Password is active then one will
be created for the current file. Once a password is installed on
a program it may not be removed, only changed.
One valuable addition to the Onbase package is the Basepath
program. Basepath allows data to be transferred between an Onbase
database and other programs. Basepath produces standard comma
delimited sequential files when in the export mode, and imports
standard comma delimited files. These files are compatible with
the Mail merge section of Wordstar etc. Most Database programs
are capable of working with comma delimited sequential files.
This allows one to enter, and have on-line, data by using Onbase;
and then use the report writing capability of a program such as

Borland's Reflex to analyze the data that had been entered.
Example of a standard comma delimited file for the Phone database
illustrated above:

Aaron A. Aardvark,,,555-5555,123 Phone Knee Rd.,,Houston,Tx,77000,"This
field has both an internal comma, and""quotes""",10/3/87,14:23:02,000000363

While the above looks confusing visually to a human, studying it
will reveal it's basic simplicity to a machine. The first line of
the sequential file would be displayed in our example Onbase
screen as follows:


Name:Aaron A. Aardvark
Phone number:555-5555
Address 1:123 Phone Knee Rd.
Address 2:
Notes:This field has both an internal comma, and "quotes"
Date entered:10/3/87 Time entered:14:23:02
Document serial number:000000363

We note that fields that are skipped in the display screen
are shown as ,, in the comma delimited file. Also note the
differences between the note field in the two. Any field which
contains a comma in it is surrounded by quotes; and any quotation
marks appearing in a field are expanded to double quotes.
Basepath automatically handles these cases for you.
To cause Basepath to export data from an Onbase database to
a comma delimited file you would use the following command line.


The /Knn, \PATH\, and .EXT sections of the line are optional.

BASEPATH /k01 phone {phoney}


basepath /k00 phone {\test\phoney}

The first example would produce a file sorted by key number 1,
(the field identified by the '@@@@@' character) from the database
\qwik\phone.dta ,would name it phoney.seq, and would place it in
the current directory. The last two examples do the same thing as
each other: Both sort the file by key 0 ( the '!!!!!' key) and
place the file in the directory \test\.

To cause Basepath to enter data into an Onbase database one
would reverse the the order of the filenames on the command line


The /Knn option is meaningless going in this direction as Onbase
creates all keys for the data when it is entered. The /Knn option
is not allowed on the command line when importing data.

Onbase is a multi-user program designed for use on a LAN machine,
as well as on a single user machine. Onbase uses Softcraft's well
known file access method Btrieve. In order for Onbase to run it
is necessary to install Btrieve in the computer's memory. Simply
adding the line:

Btrieve /p:2048

to the autoexec.bat file in the root directory is the easiest way
to insure that this condition is met. Btrieve/N , the Novell
network version of Btrieve is distributed with Onbase.
If you have an expanded memory board in your system which
conforms to the Lotus - Intel - Microsoft EMS standard, Btrieve
will use this board for its buffers and caches. This will speed
up file access, but it may cause conflicts with other programs
wishing to use the EMS board. The solution for this problem is to
change the Btrieve command line to read as follows:

Btrieve /E/P:2048

Since Onbase is designed to work in a multi-user
environment, as well as the more familiar single user field,
certain aspects of the program become important to users in a LAN
situation. Two areas of concern to people using a database in a
multi-user environment are 1). Data integrity, 2). Data security.
Onbase allows handling of both of these concerns. Record
modification is handled with transparent locks: users accessing
data being modified at a different work station will not be
locked out from reading the old unmodified data from their
screen. Only in the case that a second user attempts to modify
data already being modified by someone else will the second user
be notified of the data locked situation. Data security is aided
by the ability of Onbase to require a password from a user before
allowing access to the data in the file.
Pressing ESC at any time will cause the work that you were
doing before Onbase was invoked to be restored.

Gotchas, hints and tips.

No program is perfect, each has its own set of quirks which
are caused by the specific technology used to implement the
program. Onbase allows you to pop up a productivity program like
Sidekick while Onbase is active. (The opposite is not true; if
Sidekick is activated first Onbase cannot be popped up.) Onbase

uses a much more sophisticated method of handling DOS re-entrancy
problems than the typical Pop up. A side effect of this
technology is that immediately after exiting from Onbase it may
happen the hot keys which activate Onbase become inactive until
one or more characters; possibly a string of characters up to and
including a carriage return, are entered.
Onbase requires that all 3 filenames available for databases
be provided to it. If the names are not supplied then Onbase will
ask for them.
It is not permissable to skip a key when laying out an
Onbase screen. If the '$' key was the last one used then the next
key used is required to be '%'.
Since Onbase uses the last line on the screen for displaying
prompts, No Onbase application may use more 24 lines in its
source screen.
Onbase will pop up only if the currently active screen is in
one of the 80 column text modes; color or black and white.
Many people find a program, which beeps at the operator in
the event of an errant key stroke, annoying. Entering the Onbase
command line with the /b or /B option will cause Onbase to
suppress this beeping. Example:


The driver for the Proteon network board conflicts with the
Btrieve use of Interrupt 7bh. Novell's fix for this conflict is
contained in Novell Technical Bulletin number 141. If your Novell
network locks up a work station when Btrieve is loaded and you
are using Proteon boards, the fix in this bulletin will remedy
the problem. Why Novell does not implement this fix in all of the
drivers which are distributed for Proteon network boards is an
interesting question. Directing this question to the nearest
Novell representative is recommended. Attempting to emphasize
this question by striking said representative about the head and
shoulders with a blunt object is probably counter productive, and
in most locations, is prohibited by law under the "cruelty to
dumb animals" statutes.
Bob Canup
1.40 Production release 10/12/87
1.41 Intensity revision 10/14/87
1.42 Screen trash cleanup after app change 10/14/87
1.43 Allows date,time,doc numbers before keys 10/22/87

 December 28, 2017  Add comments

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>