Home » CEEFAX disks » telesoftware4.adl » 25-12-87/DBINFO

25-12-87/DBINFO

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » CEEFAX disks » telesoftware4.adl
Filename: 25-12-87/DBINFO
Read OK:
File size: 4519 bytes
Load address: 0000
Exec address: FFFFFFFF
File contents
           A DATA-BASE SYSTEM by ROB ANDERSON.

INTRODUCTION

This data base program enables a collection of records (of any format) to
be processed in a variety of ways, and should provide a good introduction
into the use of data-base systems in general. By following the BASIC
program listing it should also give the reader an insight into how such a
system works, and ultimately how to go about writing a system of your own.

The actual data that goes to make up the data-file is held in computer
memory, which does restrict the amount of data that can be stored in one
file, but by using this method very fast access times to the data are
achieved (e.g. with searches etc.), and it also provides a good way for
tape users to store a reasonable amount of records without having to wait
a long time for it all to load.

Thus, in summary, this system could be of use to :

i) Tape and disc users who require a small but fast data-base system to
store for example names, addresses and telephone numbers, of which roughly
200 names etc may be stored using a reasonably sized record format.

ii) Someone who has never used a data-base system before, and is wanting
some experience with a small system so as to obtain a better understanding
of the basic principles involved.

iii) From the programming point of view there is a full description of the
routines etc. included in this article, which may help someone to write a
system of there own.

WHAT DATABASE DOES :

As the name suggests, this program is a data base that enables pieces of
data to be saved and recalled and, once entered, this data can be
processed in many different ways that are described later. The types of
data entered are up to you, but for example the system could hold names,
addresses and phone numbers, which could then be recalled whenever you
want. Before going on, I will now explain what exactly a data file is,
which will make the rest of the article easier to follow.

Still using our example of a names file, a typical entry (which is called
a RECORD), may be :

RECORD 1
---------------------------
NAME : BOB ANDERSON

ADDRESS : 13 BACKERS FIELD,
         MARTON,
         THE BORO,
         ENGLAND.

PHONE NOS: (0123) 456789
---------------------------

The strings "NAME :", "ADDRESS :", and "PHONE NOS :" are the FIELD TITLES,
which remain constant once the file has been set up.

After the field titles have been defined, you then have to define the
field lengths, which means the amount of characters that may be needed to
hold, for example, an address. In the above example, a good field length
for the field title "NAME :" would be about 20, because it would be
unlikely to have a name with more than 20 characters in it.

As a summary then, DATABASE enables you to firstly enter the field titles
and field lengths that are wanted for the file, and once set up, the user
can then enter records into the file.

SCREEN LAYOUT :

The program uses MODE7 to work in, thus leaving plenty of memory for the
data file. The screen is split up into three main areas. The top part of
the screen gives details of the commands available, and whenever a command
is selected, a more detailed explanation is given.

The middle part of the screen is used to display the currently selected
record, while the bottom of the screen gives details about the current
data file, including the amount of records currently in the file, the
remaining memory space, the last filename entered and the record number of
the record that is currently being displayed.

DATABASE COMMANDS :

As well as enabling a file to be created, DATABASE also supports certain
commands that can do various things to the records that have been entered.
The commands are accessed by simply pressing the appropriate key, upon
which you will be given information about how to use the command and what
it does. If you try to use a command that cannot be used at that moment
(e.g. if you try to add a record to a file that does not exist), the
program will inform you, and also give you a hint as to what might have
gone wrong, and how to remedy the problem. The program is very user
friendly in this respect, and because of this you should soon learn how to
use the program to its fullest potential. Do not worry about crashing the
program due to, for example, an illegal operating system call because
there is an error checking routine that traps any errors, reports them,
and then returns control back to the program without losing the data file
that was currently in memory (if there was one).

The commands available are :

(A) ADD     - add a record.
(B) BACK    - backstep through the file.
(D) DELETE  - delete a record.
(E) EDIT    - edit a record.
(F) FORWARD - forwardstep through the file.
(H) HELP    - gives details of commands.
(K) KEEP    - save the file.
(L) LOAD    - load the file.
(N) NEW     - define new file.
(O) ORDER   - re-arrange file.
(*) *OS     - enter OS command.
(P) PRINT   - send file to printer.
(R) RESET   - reset DATABASE.
(S) SEARCH  - search for a record.

As mentioned before, DATABASE is very user-friendly, and you should have
no problems using the commands, but in case there are a few points that
are still not clear when using the program, an explanation is now given of
all the commands.

ADD Enables a record to be added to the data file currently in memory. The
 record added is placed at the end of the file.
BACK Whenever B is pressed, the current record number is decremented by
 one, so that the previous record is displayed on the screen. This
 command, along with (F) FORWARD, enables the file to be scanned through,
 a record at a time.
DELETE This will delete the record current being displayed on the screen,
 afterwhich the file will be compacted. Because this commmand is
 irreversable in its effect, you are first asked if you really want to go
 ahead and delete the record.
EDIT This command will enable the displayed record to be edited, enabling
 mistakes etc. to be corrected.
FORWARD Enables the records to be scanned in a forward direction (see
 BACK).
HELP This command is very usefull because it gives a summary of all the
 commands and what they do.
KEEP Results in the data file in memory being saved to the currently
 active filing system, which can then be loaded in using LOAD.
 LOAD Enables a previously saved file to be loaded in from a filing
 system. After typing in the filename of the data file, you will also have
 to type in the password that has previously been given to the file, and
 only when the correct password has been entered will the rest of the file
 be loaded in. When typing in the password, it will not be printed up on
 the screen so as to prevent anyone else seeing it! If an attempt is made
 to load a data file that was not created by DATABASE, the file will be
 rejected.
NEW This command enables a new file to be created, provided there is not a
 file already in memory upon which it will have to be deleted using RESET.
 When defining a file, the first thing that must be done is to define the
 field titles, afterwhich the field lengths must be entered. Great care
 must be made when defining these because they cannot be later changed.
 You should not have any problems setting up a file because the program
 gives all the details about how to go about it. Finally you will be asked
 for a password that is to go with the file, which will stop any
 unathourised people from seeing your info.. (but make sure you remember
 the password or you won't be able to see your file either!).
ORDER This can swap two records with each other, which enables you to move
 the records around the file so as to put them in the order you want them.
 When you use the command, you will be asked for two record numbers, which
 are the two to be swapped.
*OS To access this command simply keep SHIFT pressed and then hit the *
 key. A * will then come onto the screen, afterwhich you can enter your
 operating system command. This enables you to do things such as
 cataloging a disc (*CAT), or selecting a filing system (*DISC, *TAPE
 etc). For more details of operating system commands, see page 416 of the
 user guide.
PRINT If a printer is connected to your computer you will be able to get a
 hard copy of a single record, or the whole file. When printing out all
 the records, you will be asked for an inter-record space character which
 will be printed in a long line to seperate each record on the paper (a
 suitable character is a '-').
RESET When you press 'R' this wipes the memory where the current file
 is stored, thus wiping out the file. Use this command carefully, and
 make sure that you have saved the file before using RESET.
SEARCH This command enables you to find a record quickly by asking for
 a search record, afterwhich it will search the file for another
 record that is the closest match. Upon deciding which is the best
 bet, it will print out the closest matching record. So, for example,
 if you wanted to know Mike's phone number, you would enter Mike into
 the name field, and then the computer would come up with the rest of
 his record. If there were two Mike's in the file then you would have
 to specify his second name in the search record (i.e. MIKE DIXON).

TECHNICAL POINTS OF THE PROGRAM :

DATABASE is written the way most programs are; a big main program loop at
the beginning, followed by loads of procedures that are called up from
this loop. Because of this the program is quite easy to follow, with each
command being allocated a separate subroutine (see list of procedures).
Where speed is important (e.g. when printing a record while scanning), the
program has been coded accordingly, using integer variables etc..

The coding to perform each of the features is fairly standard, but with a
few exceptions; the save and load functions do their job by saving the
file as one big block of memory (i.e using *LOAD and *SAVE), which
initially poses a problem because you cannot specify a filename in a
variable in this case, so a string had to be built up in memory, and then
passed onto the command line interpreter (at &FFF7). Although in BASIC2
the command OSCLI could be used, the way it is ensures compatibility with
BASIC1. Another unusual point of the program is the extensive use of
indirection operators to store the records directly in memory which, while
very laborious to program in when compared to the ease of use of arrays,
does have its relevant merits that are explained later.

It can be seen that *FX200,1 and *FX200,0 are used a lot, which enable and
disable the ESCAPE key. The reason is that while the escape key works most
of the time, enabling you to get out of a command that you accidently
entered, it could be dangerous to escape when, for example, deleting a
record because if ESCAPE was pressed while the program was shifting all
the following records on top of the deleted record, the whole file could
be corrupted. So to prevent this the escape key is disabled just before
the routine is entered, and then enabled after leaving the routine. This
is done with most of the routines.

The search routine used in the program works on a token basis, giving
points for each field of a record that matches with the search record, and
then printing out the record that got most points. If two records get the
same points, the first one encountered in the file is output, and because
of this it is always best to put as much information in the search record
as you can remember.


PROCEDURES   LINE NOS  DESCRIPTION

initialise      310    Initialises variables etc..
checkerror      370    Analyses error & reacts acordingly.
setscreen       390    Sets up screen.
a               480    Performs ADD command.
b               620    Performs BACK command.
d               690    Performs DELETE command.
e               870    Performs EDIT command.
f              1120    Performs FORWARD command.
h              1190    Performs HELP command.
k              1220    Performs KEEP command.
l              1290    Performs LOAD command.
n              1390    Performs NEW command.
o              1770    Performs *OS command.
p              1810    Performs PRINT command.
s              1980    Performs SEARCH command.
r              2230    Performs RESET command.
or             2250    Performs ORDER command.
topw           2390    Sets top text window.
botw           2410    Sets bottom text window.
options        2430    Prints out commands available in the top text
                       window.
title          2450    Prints command that has just been selected in a
                       a 'pretty' blue box!
sp             2470    Asks user to press the space bar to continue.
sure           2490    Asks if you really want to continue. If so
                      'ss'=0, otherwise 'ss'=1.
clear          2520    Wipes file memory.
precord        2570    Prints the current record held in 'record'.
pfield         2730    Prints the field titles of the file.
gfname         2810    Asks the user for a filename.
exist          2850    Tells the user that a file already exists.
nrecord        2890    Tells the user that there are no records
                       currently in the file.
getbytes(G)    2910    Gets the contents of a two byte number (G is the
                       first byte minus 'starta'), and places the result
                       in 'H'.
putbytes(G)    2930    Puts the value of 'H' in two memory bytes
                       starting at 'G+starta'.
oscli(A$)      2950    Passes 'A$' onto the command line interpreter.
                       This routine will work in BASIC 1 and BASIC 2.
inputrec1      2970    Inputs a record from the keyboard into a string.

IMPORTANT VARIABLES DESCRIPTION

A%,B%,C%,D%,E%,F%,G%,X%,Y%  USED IN VARIOUS LOOPS.
A,B,C,D,E,F,G,H,I,J,K       USED IN VARIOUS LOOPS.
flag                        Used to flag certain events.
flag2                       Used to flag certain events.
record                      Holds record number that is currently being
                            displayed.
ss                          A flag for PROCEDURE 'sure'
starta                      Points at start of memory for the file.
A$,B$,C$                    Used for various string handling routines.
file$                       Holds last filename entered.
f$(16),le(16),len(16)       Used to hold a record as a string.

FILE FORMAT :

The records, field titles and field lengths are all kept in memory up
above the BASIC program, and are dumped directly there using indirection
operators. The reason for this is mainly for memory saving because
although string arrays are very nice and easy to use, they tend to take up
a lot of memory, which is very important when all the records are in
memory at once.

The actual contents of the file start at the memory location stored in
'starta', where the password, field titles, etc. are kept. After this
comes the records themselves which follow on one after the other.

MEMORY USAGE :

DATABASE is a 10k BASIC program which can be run at any PAGE address less
than or equal to &1900. The data file resides at &4500, which is what the
program sets HIMEM to, so as to prevent BASIC running into the data file.

The TOP of the program is at about &4000, which leaves (HIMEM-TOP)=1k
bytes for variable storage. The top of user memory is &7C00, so this
leaves (&7C00-&4500)=14k bytes of memory free for the data file, which
means that typically about 200 records of 5 fields of 10 characters per
field can be entered, which is quite a useful size.

MEMORY USAGE SUMMARY :

    .                    .
    .                    .
    .      MODE 7        .
    .                    .
    ______________________ &7C00
    .                    .
14k .     DATA FILE      .
    .                    .
    ______________________ HIMEM = &4500
    .                    .
 1k .  VARIABLE STORAGE  .
    .                    .
    ______________________ TOP = &4000
    .                    .
10k .   BASIC PROGRAM    .
    .                    .
    ______________________ PAGE = &1900
    .                    .
    .                    .
 
 
TAPE USERS :

DATABASE is quite suited to tape users due to it keeping all the records
in memory at once, and so they only have to be loaded once, afterwhich all
processing can take place in computer memory. By saving and loading the
data using *SAVE and *LOAD also means that the data can be saved/ loaded
much more quickly than if BASIC's FILE commmands (such as PRINT#, PTR#
etc) were used.

EFFICIENT USE OF DATABASE :

When using DATABASE there are a few little tips that can make it easier
and more efficient to use.

When defining a NEW record, think carefully about how to define it because
once set out, it cannot be changed which means that if you have entered
say 100 records, and then find out that you need another field for certain
entries, you will have to type the whole file in again! Because of this,
it is also a good idea to have a field called 'ANYTHING ELSE' or
'MISCELLANEOUS', for records that may have unusual entries.

When entering your field titles, you can still use the function keys to
get MODE 7 coloured characters, which enables you to set up a file that
stands out well, making it easier and more colourful to use (although you
may get funny noises coming from your printer when printing a record!).

If you have no need for security precautions, use the password 'DATABASE'
for your file, as this is suggested by the program which makes it
impossible for you to forget!

As a finally note, ALWAYS KEEP COPIES OF YOUR DATA FILES, because if you
don't you'll have to learn the hard way, so be warned!

R.S.ANDERSON. JAN 1987. 
00000000  20 20 20 20 20 20 20 20  20 20 20 41 20 44 41 54  |           A DAT|
00000010  41 2d 42 41 53 45 20 53  59 53 54 45 4d 20 62 79  |A-BASE SYSTEM by|
00000020  20 52 4f 42 20 41 4e 44  45 52 53 4f 4e 2e 0d 0d  | ROB ANDERSON...|
00000030  49 4e 54 52 4f 44 55 43  54 49 4f 4e 0d 0d 54 68  |INTRODUCTION..Th|
00000040  69 73 20 64 61 74 61 20  62 61 73 65 20 70 72 6f  |is data base pro|
00000050  67 72 61 6d 20 65 6e 61  62 6c 65 73 20 61 20 63  |gram enables a c|
00000060  6f 6c 6c 65 63 74 69 6f  6e 20 6f 66 20 72 65 63  |ollection of rec|
00000070  6f 72 64 73 20 28 6f 66  20 61 6e 79 20 66 6f 72  |ords (of any for|
00000080  6d 61 74 29 20 74 6f 0d  62 65 20 70 72 6f 63 65  |mat) to.be proce|
00000090  73 73 65 64 20 69 6e 20  61 20 76 61 72 69 65 74  |ssed in a variet|
000000a0  79 20 6f 66 20 77 61 79  73 2c 20 61 6e 64 20 73  |y of ways, and s|
000000b0  68 6f 75 6c 64 20 70 72  6f 76 69 64 65 20 61 20  |hould provide a |
000000c0  67 6f 6f 64 20 69 6e 74  72 6f 64 75 63 74 69 6f  |good introductio|
000000d0  6e 0d 69 6e 74 6f 20 74  68 65 20 75 73 65 20 6f  |n.into the use o|
000000e0  66 20 64 61 74 61 2d 62  61 73 65 20 73 79 73 74  |f data-base syst|
000000f0  65 6d 73 20 69 6e 20 67  65 6e 65 72 61 6c 2e 20  |ems in general. |
00000100  42 79 20 66 6f 6c 6c 6f  77 69 6e 67 20 74 68 65  |By following the|
00000110  20 42 41 53 49 43 0d 70  72 6f 67 72 61 6d 20 6c  | BASIC.program l|
00000120  69 73 74 69 6e 67 20 69  74 20 73 68 6f 75 6c 64  |isting it should|
00000130  20 61 6c 73 6f 20 67 69  76 65 20 74 68 65 20 72  | also give the r|
00000140  65 61 64 65 72 20 61 6e  20 69 6e 73 69 67 68 74  |eader an insight|
00000150  20 69 6e 74 6f 20 68 6f  77 20 73 75 63 68 20 61  | into how such a|
00000160  0d 73 79 73 74 65 6d 20  77 6f 72 6b 73 2c 20 61  |.system works, a|
00000170  6e 64 20 75 6c 74 69 6d  61 74 65 6c 79 20 68 6f  |nd ultimately ho|
00000180  77 20 74 6f 20 67 6f 20  61 62 6f 75 74 20 77 72  |w to go about wr|
00000190  69 74 69 6e 67 20 61 20  73 79 73 74 65 6d 20 6f  |iting a system o|
000001a0  66 20 79 6f 75 72 20 6f  77 6e 2e 0d 0d 54 68 65  |f your own...The|
000001b0  20 61 63 74 75 61 6c 20  64 61 74 61 20 74 68 61  | actual data tha|
000001c0  74 20 67 6f 65 73 20 74  6f 20 6d 61 6b 65 20 75  |t goes to make u|
000001d0  70 20 74 68 65 20 64 61  74 61 2d 66 69 6c 65 20  |p the data-file |
000001e0  69 73 20 68 65 6c 64 20  69 6e 20 63 6f 6d 70 75  |is held in compu|
000001f0  74 65 72 0d 6d 65 6d 6f  72 79 2c 20 77 68 69 63  |ter.memory, whic|
00000200  68 20 64 6f 65 73 20 72  65 73 74 72 69 63 74 20  |h does restrict |
00000210  74 68 65 20 61 6d 6f 75  6e 74 20 6f 66 20 64 61  |the amount of da|
00000220  74 61 20 74 68 61 74 20  63 61 6e 20 62 65 20 73  |ta that can be s|
00000230  74 6f 72 65 64 20 69 6e  20 6f 6e 65 0d 66 69 6c  |tored in one.fil|
00000240  65 2c 20 62 75 74 20 62  79 20 75 73 69 6e 67 20  |e, but by using |
00000250  74 68 69 73 20 6d 65 74  68 6f 64 20 76 65 72 79  |this method very|
00000260  20 66 61 73 74 20 61 63  63 65 73 73 20 74 69 6d  | fast access tim|
00000270  65 73 20 74 6f 20 74 68  65 20 64 61 74 61 20 61  |es to the data a|
00000280  72 65 0d 61 63 68 69 65  76 65 64 20 28 65 2e 67  |re.achieved (e.g|
00000290  2e 20 77 69 74 68 20 73  65 61 72 63 68 65 73 20  |. with searches |
000002a0  65 74 63 2e 29 2c 20 61  6e 64 20 69 74 20 61 6c  |etc.), and it al|
000002b0  73 6f 20 70 72 6f 76 69  64 65 73 20 61 20 67 6f  |so provides a go|
000002c0  6f 64 20 77 61 79 20 66  6f 72 0d 74 61 70 65 20  |od way for.tape |
000002d0  75 73 65 72 73 20 74 6f  20 73 74 6f 72 65 20 61  |users to store a|
000002e0  20 72 65 61 73 6f 6e 61  62 6c 65 20 61 6d 6f 75  | reasonable amou|
000002f0  6e 74 20 6f 66 20 72 65  63 6f 72 64 73 20 77 69  |nt of records wi|
00000300  74 68 6f 75 74 20 68 61  76 69 6e 67 20 74 6f 20  |thout having to |
00000310  77 61 69 74 0d 61 20 6c  6f 6e 67 20 74 69 6d 65  |wait.a long time|
00000320  20 66 6f 72 20 69 74 20  61 6c 6c 20 74 6f 20 6c  | for it all to l|
00000330  6f 61 64 2e 0d 0d 54 68  75 73 2c 20 69 6e 20 73  |oad...Thus, in s|
00000340  75 6d 6d 61 72 79 2c 20  74 68 69 73 20 73 79 73  |ummary, this sys|
00000350  74 65 6d 20 63 6f 75 6c  64 20 62 65 20 6f 66 20  |tem could be of |
00000360  75 73 65 20 74 6f 20 3a  0d 0d 69 29 20 54 61 70  |use to :..i) Tap|
00000370  65 20 61 6e 64 20 64 69  73 63 20 75 73 65 72 73  |e and disc users|
00000380  20 77 68 6f 20 72 65 71  75 69 72 65 20 61 20 73  | who require a s|
00000390  6d 61 6c 6c 20 62 75 74  20 66 61 73 74 20 64 61  |mall but fast da|
000003a0  74 61 2d 62 61 73 65 20  73 79 73 74 65 6d 20 74  |ta-base system t|
000003b0  6f 0d 73 74 6f 72 65 20  66 6f 72 20 65 78 61 6d  |o.store for exam|
000003c0  70 6c 65 20 6e 61 6d 65  73 2c 20 61 64 64 72 65  |ple names, addre|
000003d0  73 73 65 73 20 61 6e 64  20 74 65 6c 65 70 68 6f  |sses and telepho|
000003e0  6e 65 20 6e 75 6d 62 65  72 73 2c 20 6f 66 20 77  |ne numbers, of w|
000003f0  68 69 63 68 20 72 6f 75  67 68 6c 79 0d 32 30 30  |hich roughly.200|
00000400  20 6e 61 6d 65 73 20 65  74 63 20 6d 61 79 20 62  | names etc may b|
00000410  65 20 73 74 6f 72 65 64  20 75 73 69 6e 67 20 61  |e stored using a|
00000420  20 72 65 61 73 6f 6e 61  62 6c 79 20 73 69 7a 65  | reasonably size|
00000430  64 20 72 65 63 6f 72 64  20 66 6f 72 6d 61 74 2e  |d record format.|
00000440  0d 0d 69 69 29 20 53 6f  6d 65 6f 6e 65 20 77 68  |..ii) Someone wh|
00000450  6f 20 68 61 73 20 6e 65  76 65 72 20 75 73 65 64  |o has never used|
00000460  20 61 20 64 61 74 61 2d  62 61 73 65 20 73 79 73  | a data-base sys|
00000470  74 65 6d 20 62 65 66 6f  72 65 2c 20 61 6e 64 20  |tem before, and |
00000480  69 73 20 77 61 6e 74 69  6e 67 0d 73 6f 6d 65 20  |is wanting.some |
00000490  65 78 70 65 72 69 65 6e  63 65 20 77 69 74 68 20  |experience with |
000004a0  61 20 73 6d 61 6c 6c 20  73 79 73 74 65 6d 20 73  |a small system s|
000004b0  6f 20 61 73 20 74 6f 20  6f 62 74 61 69 6e 20 61  |o as to obtain a|
000004c0  20 62 65 74 74 65 72 20  75 6e 64 65 72 73 74 61  | better understa|
000004d0  6e 64 69 6e 67 0d 6f 66  20 74 68 65 20 62 61 73  |nding.of the bas|
000004e0  69 63 20 70 72 69 6e 63  69 70 6c 65 73 20 69 6e  |ic principles in|
000004f0  76 6f 6c 76 65 64 2e 0d  0d 69 69 69 29 20 46 72  |volved...iii) Fr|
00000500  6f 6d 20 74 68 65 20 70  72 6f 67 72 61 6d 6d 69  |om the programmi|
00000510  6e 67 20 70 6f 69 6e 74  20 6f 66 20 76 69 65 77  |ng point of view|
00000520  20 74 68 65 72 65 20 69  73 20 61 20 66 75 6c 6c  | there is a full|
00000530  20 64 65 73 63 72 69 70  74 69 6f 6e 20 6f 66 20  | description of |
00000540  74 68 65 0d 72 6f 75 74  69 6e 65 73 20 65 74 63  |the.routines etc|
00000550  2e 20 69 6e 63 6c 75 64  65 64 20 69 6e 20 74 68  |. included in th|
00000560  69 73 20 61 72 74 69 63  6c 65 2c 20 77 68 69 63  |is article, whic|
00000570  68 20 6d 61 79 20 68 65  6c 70 20 73 6f 6d 65 6f  |h may help someo|
00000580  6e 65 20 74 6f 20 77 72  69 74 65 20 61 0d 73 79  |ne to write a.sy|
00000590  73 74 65 6d 20 6f 66 20  74 68 65 72 65 20 6f 77  |stem of there ow|
000005a0  6e 2e 0d 0d 57 48 41 54  20 44 41 54 41 42 41 53  |n...WHAT DATABAS|
000005b0  45 20 44 4f 45 53 20 3a  0d 0d 41 73 20 74 68 65  |E DOES :..As the|
000005c0  20 6e 61 6d 65 20 73 75  67 67 65 73 74 73 2c 20  | name suggests, |
000005d0  74 68 69 73 20 70 72 6f  67 72 61 6d 20 69 73 20  |this program is |
000005e0  61 20 64 61 74 61 20 62  61 73 65 20 74 68 61 74  |a data base that|
000005f0  20 65 6e 61 62 6c 65 73  20 70 69 65 63 65 73 20  | enables pieces |
00000600  6f 66 0d 64 61 74 61 20  74 6f 20 62 65 20 73 61  |of.data to be sa|
00000610  76 65 64 20 61 6e 64 20  72 65 63 61 6c 6c 65 64  |ved and recalled|
00000620  20 61 6e 64 2c 20 6f 6e  63 65 20 65 6e 74 65 72  | and, once enter|
00000630  65 64 2c 20 74 68 69 73  20 64 61 74 61 20 63 61  |ed, this data ca|
00000640  6e 20 62 65 0d 70 72 6f  63 65 73 73 65 64 20 69  |n be.processed i|
00000650  6e 20 6d 61 6e 79 20 64  69 66 66 65 72 65 6e 74  |n many different|
00000660  20 77 61 79 73 20 74 68  61 74 20 61 72 65 20 64  | ways that are d|
00000670  65 73 63 72 69 62 65 64  20 6c 61 74 65 72 2e 20  |escribed later. |
00000680  54 68 65 20 74 79 70 65  73 20 6f 66 0d 64 61 74  |The types of.dat|
00000690  61 20 65 6e 74 65 72 65  64 20 61 72 65 20 75 70  |a entered are up|
000006a0  20 74 6f 20 79 6f 75 2c  20 62 75 74 20 66 6f 72  | to you, but for|
000006b0  20 65 78 61 6d 70 6c 65  20 74 68 65 20 73 79 73  | example the sys|
000006c0  74 65 6d 20 63 6f 75 6c  64 20 68 6f 6c 64 20 6e  |tem could hold n|
000006d0  61 6d 65 73 2c 0d 61 64  64 72 65 73 73 65 73 20  |ames,.addresses |
000006e0  61 6e 64 20 70 68 6f 6e  65 20 6e 75 6d 62 65 72  |and phone number|
000006f0  73 2c 20 77 68 69 63 68  20 63 6f 75 6c 64 20 74  |s, which could t|
00000700  68 65 6e 20 62 65 20 72  65 63 61 6c 6c 65 64 20  |hen be recalled |
00000710  77 68 65 6e 65 76 65 72  20 79 6f 75 0d 77 61 6e  |whenever you.wan|
00000720  74 2e 20 42 65 66 6f 72  65 20 67 6f 69 6e 67 20  |t. Before going |
00000730  6f 6e 2c 20 49 20 77 69  6c 6c 20 6e 6f 77 20 65  |on, I will now e|
00000740  78 70 6c 61 69 6e 20 77  68 61 74 20 65 78 61 63  |xplain what exac|
00000750  74 6c 79 20 61 20 64 61  74 61 20 66 69 6c 65 20  |tly a data file |
00000760  69 73 2c 0d 77 68 69 63  68 20 77 69 6c 6c 20 6d  |is,.which will m|
00000770  61 6b 65 20 74 68 65 20  72 65 73 74 20 6f 66 20  |ake the rest of |
00000780  74 68 65 20 61 72 74 69  63 6c 65 20 65 61 73 69  |the article easi|
00000790  65 72 20 74 6f 20 66 6f  6c 6c 6f 77 2e 0d 0d 53  |er to follow...S|
000007a0  74 69 6c 6c 20 75 73 69  6e 67 20 6f 75 72 20 65  |till using our e|
000007b0  78 61 6d 70 6c 65 20 6f  66 20 61 20 6e 61 6d 65  |xample of a name|
000007c0  73 20 66 69 6c 65 2c 20  61 20 74 79 70 69 63 61  |s file, a typica|
000007d0  6c 20 65 6e 74 72 79 20  28 77 68 69 63 68 20 69  |l entry (which i|
000007e0  73 20 63 61 6c 6c 65 64  0d 61 20 52 45 43 4f 52  |s called.a RECOR|
000007f0  44 29 2c 20 6d 61 79 20  62 65 20 3a 0d 0d 52 45  |D), may be :..RE|
00000800  43 4f 52 44 20 31 0d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |CORD 1.---------|
00000810  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00000820  2d 2d 0d 4e 41 4d 45 20  3a 20 42 4f 42 20 41 4e  |--.NAME : BOB AN|
00000830  44 45 52 53 4f 4e 0d 0d  41 44 44 52 45 53 53 20  |DERSON..ADDRESS |
00000840  3a 20 31 33 20 42 41 43  4b 45 52 53 20 46 49 45  |: 13 BACKERS FIE|
00000850  4c 44 2c 0d 20 20 20 20  20 20 20 20 20 4d 41 52  |LD,.         MAR|
00000860  54 4f 4e 2c 0d 20 20 20  20 20 20 20 20 20 54 48  |TON,.         TH|
00000870  45 20 42 4f 52 4f 2c 0d  20 20 20 20 20 20 20 20  |E BORO,.        |
00000880  20 45 4e 47 4c 41 4e 44  2e 0d 0d 50 48 4f 4e 45  | ENGLAND...PHONE|
00000890  20 4e 4f 53 3a 20 28 30  31 32 33 29 20 34 35 36  | NOS: (0123) 456|
000008a0  37 38 39 0d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |789.------------|
000008b0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 0d  |---------------.|
000008c0  0d 54 68 65 20 73 74 72  69 6e 67 73 20 22 4e 41  |.The strings "NA|
000008d0  4d 45 20 3a 22 2c 20 22  41 44 44 52 45 53 53 20  |ME :", "ADDRESS |
000008e0  3a 22 2c 20 61 6e 64 20  22 50 48 4f 4e 45 20 4e  |:", and "PHONE N|
000008f0  4f 53 20 3a 22 20 61 72  65 20 74 68 65 20 46 49  |OS :" are the FI|
00000900  45 4c 44 20 54 49 54 4c  45 53 2c 0d 77 68 69 63  |ELD TITLES,.whic|
00000910  68 20 72 65 6d 61 69 6e  20 63 6f 6e 73 74 61 6e  |h remain constan|
00000920  74 20 6f 6e 63 65 20 74  68 65 20 66 69 6c 65 20  |t once the file |
00000930  68 61 73 20 62 65 65 6e  20 73 65 74 20 75 70 2e  |has been set up.|
00000940  0d 0d 41 66 74 65 72 20  74 68 65 20 66 69 65 6c  |..After the fiel|
00000950  64 20 74 69 74 6c 65 73  20 68 61 76 65 20 62 65  |d titles have be|
00000960  65 6e 20 64 65 66 69 6e  65 64 2c 20 79 6f 75 20  |en defined, you |
00000970  74 68 65 6e 20 68 61 76  65 20 74 6f 20 64 65 66  |then have to def|
00000980  69 6e 65 20 74 68 65 0d  66 69 65 6c 64 20 6c 65  |ine the.field le|
00000990  6e 67 74 68 73 2c 20 77  68 69 63 68 20 6d 65 61  |ngths, which mea|
000009a0  6e 73 20 74 68 65 20 61  6d 6f 75 6e 74 20 6f 66  |ns the amount of|
000009b0  20 63 68 61 72 61 63 74  65 72 73 20 74 68 61 74  | characters that|
000009c0  20 6d 61 79 20 62 65 20  6e 65 65 64 65 64 20 74  | may be needed t|
000009d0  6f 0d 68 6f 6c 64 2c 20  66 6f 72 20 65 78 61 6d  |o.hold, for exam|
000009e0  70 6c 65 2c 20 61 6e 20  61 64 64 72 65 73 73 2e  |ple, an address.|
000009f0  20 49 6e 20 74 68 65 20  61 62 6f 76 65 20 65 78  | In the above ex|
00000a00  61 6d 70 6c 65 2c 20 61  20 67 6f 6f 64 20 66 69  |ample, a good fi|
00000a10  65 6c 64 20 6c 65 6e 67  74 68 0d 66 6f 72 20 74  |eld length.for t|
00000a20  68 65 20 66 69 65 6c 64  20 74 69 74 6c 65 20 22  |he field title "|
00000a30  4e 41 4d 45 20 3a 22 20  77 6f 75 6c 64 20 62 65  |NAME :" would be|
00000a40  20 61 62 6f 75 74 20 32  30 2c 20 62 65 63 61 75  | about 20, becau|
00000a50  73 65 20 69 74 20 77 6f  75 6c 64 20 62 65 0d 75  |se it would be.u|
00000a60  6e 6c 69 6b 65 6c 79 20  74 6f 20 68 61 76 65 20  |nlikely to have |
00000a70  61 20 6e 61 6d 65 20 77  69 74 68 20 6d 6f 72 65  |a name with more|
00000a80  20 74 68 61 6e 20 32 30  20 63 68 61 72 61 63 74  | than 20 charact|
00000a90  65 72 73 20 69 6e 20 69  74 2e 0d 0d 41 73 20 61  |ers in it...As a|
00000aa0  20 73 75 6d 6d 61 72 79  20 74 68 65 6e 2c 20 44  | summary then, D|
00000ab0  41 54 41 42 41 53 45 20  65 6e 61 62 6c 65 73 20  |ATABASE enables |
00000ac0  79 6f 75 20 74 6f 20 66  69 72 73 74 6c 79 20 65  |you to firstly e|
00000ad0  6e 74 65 72 20 74 68 65  20 66 69 65 6c 64 20 74  |nter the field t|
00000ae0  69 74 6c 65 73 0d 61 6e  64 20 66 69 65 6c 64 20  |itles.and field |
00000af0  6c 65 6e 67 74 68 73 20  74 68 61 74 20 61 72 65  |lengths that are|
00000b00  20 77 61 6e 74 65 64 20  66 6f 72 20 74 68 65 20  | wanted for the |
00000b10  66 69 6c 65 2c 20 61 6e  64 20 6f 6e 63 65 20 73  |file, and once s|
00000b20  65 74 20 75 70 2c 20 74  68 65 20 75 73 65 72 0d  |et up, the user.|
00000b30  63 61 6e 20 74 68 65 6e  20 65 6e 74 65 72 20 72  |can then enter r|
00000b40  65 63 6f 72 64 73 20 69  6e 74 6f 20 74 68 65 20  |ecords into the |
00000b50  66 69 6c 65 2e 0d 0d 53  43 52 45 45 4e 20 4c 41  |file...SCREEN LA|
00000b60  59 4f 55 54 20 3a 0d 0d  54 68 65 20 70 72 6f 67  |YOUT :..The prog|
00000b70  72 61 6d 20 75 73 65 73  20 4d 4f 44 45 37 20 74  |ram uses MODE7 t|
00000b80  6f 20 77 6f 72 6b 20 69  6e 2c 20 74 68 75 73 20  |o work in, thus |
00000b90  6c 65 61 76 69 6e 67 20  70 6c 65 6e 74 79 20 6f  |leaving plenty o|
00000ba0  66 20 6d 65 6d 6f 72 79  20 66 6f 72 20 74 68 65  |f memory for the|
00000bb0  0d 64 61 74 61 20 66 69  6c 65 2e 20 54 68 65 20  |.data file. The |
00000bc0  73 63 72 65 65 6e 20 69  73 20 73 70 6c 69 74 20  |screen is split |
00000bd0  75 70 20 69 6e 74 6f 20  74 68 72 65 65 20 6d 61  |up into three ma|
00000be0  69 6e 20 61 72 65 61 73  2e 20 54 68 65 20 74 6f  |in areas. The to|
00000bf0  70 20 70 61 72 74 20 6f  66 0d 74 68 65 20 73 63  |p part of.the sc|
00000c00  72 65 65 6e 20 67 69 76  65 73 20 64 65 74 61 69  |reen gives detai|
00000c10  6c 73 20 6f 66 20 74 68  65 20 63 6f 6d 6d 61 6e  |ls of the comman|
00000c20  64 73 20 61 76 61 69 6c  61 62 6c 65 2c 20 61 6e  |ds available, an|
00000c30  64 20 77 68 65 6e 65 76  65 72 20 61 20 63 6f 6d  |d whenever a com|
00000c40  6d 61 6e 64 0d 69 73 20  73 65 6c 65 63 74 65 64  |mand.is selected|
00000c50  2c 20 61 20 6d 6f 72 65  20 64 65 74 61 69 6c 65  |, a more detaile|
00000c60  64 20 65 78 70 6c 61 6e  61 74 69 6f 6e 20 69 73  |d explanation is|
00000c70  20 67 69 76 65 6e 2e 0d  0d 54 68 65 20 6d 69 64  | given...The mid|
00000c80  64 6c 65 20 70 61 72 74  20 6f 66 20 74 68 65 20  |dle part of the |
00000c90  73 63 72 65 65 6e 20 69  73 20 75 73 65 64 20 74  |screen is used t|
00000ca0  6f 20 64 69 73 70 6c 61  79 20 74 68 65 20 63 75  |o display the cu|
00000cb0  72 72 65 6e 74 6c 79 20  73 65 6c 65 63 74 65 64  |rrently selected|
00000cc0  0d 72 65 63 6f 72 64 2c  20 77 68 69 6c 65 20 74  |.record, while t|
00000cd0  68 65 20 62 6f 74 74 6f  6d 20 6f 66 20 74 68 65  |he bottom of the|
00000ce0  20 73 63 72 65 65 6e 20  67 69 76 65 73 20 64 65  | screen gives de|
00000cf0  74 61 69 6c 73 20 61 62  6f 75 74 20 74 68 65 20  |tails about the |
00000d00  63 75 72 72 65 6e 74 0d  64 61 74 61 20 66 69 6c  |current.data fil|
00000d10  65 2c 20 69 6e 63 6c 75  64 69 6e 67 20 74 68 65  |e, including the|
00000d20  20 61 6d 6f 75 6e 74 20  6f 66 20 72 65 63 6f 72  | amount of recor|
00000d30  64 73 20 63 75 72 72 65  6e 74 6c 79 20 69 6e 20  |ds currently in |
00000d40  74 68 65 20 66 69 6c 65  2c 20 74 68 65 0d 72 65  |the file, the.re|
00000d50  6d 61 69 6e 69 6e 67 20  6d 65 6d 6f 72 79 20 73  |maining memory s|
00000d60  70 61 63 65 2c 20 74 68  65 20 6c 61 73 74 20 66  |pace, the last f|
00000d70  69 6c 65 6e 61 6d 65 20  65 6e 74 65 72 65 64 20  |ilename entered |
00000d80  61 6e 64 20 74 68 65 20  72 65 63 6f 72 64 20 6e  |and the record n|
00000d90  75 6d 62 65 72 20 6f 66  0d 74 68 65 20 72 65 63  |umber of.the rec|
00000da0  6f 72 64 20 74 68 61 74  20 69 73 20 63 75 72 72  |ord that is curr|
00000db0  65 6e 74 6c 79 20 62 65  69 6e 67 20 64 69 73 70  |ently being disp|
00000dc0  6c 61 79 65 64 2e 0d 0d  44 41 54 41 42 41 53 45  |layed...DATABASE|
00000dd0  20 43 4f 4d 4d 41 4e 44  53 20 3a 0d 0d 41 73 20  | COMMANDS :..As |
00000de0  77 65 6c 6c 20 61 73 20  65 6e 61 62 6c 69 6e 67  |well as enabling|
00000df0  20 61 20 66 69 6c 65 20  74 6f 20 62 65 20 63 72  | a file to be cr|
00000e00  65 61 74 65 64 2c 20 44  41 54 41 42 41 53 45 20  |eated, DATABASE |
00000e10  61 6c 73 6f 20 73 75 70  70 6f 72 74 73 20 63 65  |also supports ce|
00000e20  72 74 61 69 6e 0d 63 6f  6d 6d 61 6e 64 73 20 74  |rtain.commands t|
00000e30  68 61 74 20 63 61 6e 20  64 6f 20 76 61 72 69 6f  |hat can do vario|
00000e40  75 73 20 74 68 69 6e 67  73 20 74 6f 20 74 68 65  |us things to the|
00000e50  20 72 65 63 6f 72 64 73  20 74 68 61 74 20 68 61  | records that ha|
00000e60  76 65 20 62 65 65 6e 20  65 6e 74 65 72 65 64 2e  |ve been entered.|
00000e70  0d 54 68 65 20 63 6f 6d  6d 61 6e 64 73 20 61 72  |.The commands ar|
00000e80  65 20 61 63 63 65 73 73  65 64 20 62 79 20 73 69  |e accessed by si|
00000e90  6d 70 6c 79 20 70 72 65  73 73 69 6e 67 20 74 68  |mply pressing th|
00000ea0  65 20 61 70 70 72 6f 70  72 69 61 74 65 20 6b 65  |e appropriate ke|
00000eb0  79 2c 20 75 70 6f 6e 0d  77 68 69 63 68 20 79 6f  |y, upon.which yo|
00000ec0  75 20 77 69 6c 6c 20 62  65 20 67 69 76 65 6e 20  |u will be given |
00000ed0  69 6e 66 6f 72 6d 61 74  69 6f 6e 20 61 62 6f 75  |information abou|
00000ee0  74 20 68 6f 77 20 74 6f  20 75 73 65 20 74 68 65  |t how to use the|
00000ef0  20 63 6f 6d 6d 61 6e 64  20 61 6e 64 20 77 68 61  | command and wha|
00000f00  74 0d 69 74 20 64 6f 65  73 2e 20 49 66 20 79 6f  |t.it does. If yo|
00000f10  75 20 74 72 79 20 74 6f  20 75 73 65 20 61 20 63  |u try to use a c|
00000f20  6f 6d 6d 61 6e 64 20 74  68 61 74 20 63 61 6e 6e  |ommand that cann|
00000f30  6f 74 20 62 65 20 75 73  65 64 20 61 74 20 74 68  |ot be used at th|
00000f40  61 74 20 6d 6f 6d 65 6e  74 0d 28 65 2e 67 2e 20  |at moment.(e.g. |
00000f50  69 66 20 79 6f 75 20 74  72 79 20 74 6f 20 61 64  |if you try to ad|
00000f60  64 20 61 20 72 65 63 6f  72 64 20 74 6f 20 61 20  |d a record to a |
00000f70  66 69 6c 65 20 74 68 61  74 20 64 6f 65 73 20 6e  |file that does n|
00000f80  6f 74 20 65 78 69 73 74  29 2c 20 74 68 65 0d 70  |ot exist), the.p|
00000f90  72 6f 67 72 61 6d 20 77  69 6c 6c 20 69 6e 66 6f  |rogram will info|
00000fa0  72 6d 20 79 6f 75 2c 20  61 6e 64 20 61 6c 73 6f  |rm you, and also|
00000fb0  20 67 69 76 65 20 79 6f  75 20 61 20 68 69 6e 74  | give you a hint|
00000fc0  20 61 73 20 74 6f 20 77  68 61 74 20 6d 69 67 68  | as to what migh|
00000fd0  74 20 68 61 76 65 0d 67  6f 6e 65 20 77 72 6f 6e  |t have.gone wron|
00000fe0  67 2c 20 61 6e 64 20 68  6f 77 20 74 6f 20 72 65  |g, and how to re|
00000ff0  6d 65 64 79 20 74 68 65  20 70 72 6f 62 6c 65 6d  |medy the problem|
00001000  2e 20 54 68 65 20 70 72  6f 67 72 61 6d 20 69 73  |. The program is|
00001010  20 76 65 72 79 20 75 73  65 72 0d 66 72 69 65 6e  | very user.frien|
00001020  64 6c 79 20 69 6e 20 74  68 69 73 20 72 65 73 70  |dly in this resp|
00001030  65 63 74 2c 20 61 6e 64  20 62 65 63 61 75 73 65  |ect, and because|
00001040  20 6f 66 20 74 68 69 73  20 79 6f 75 20 73 68 6f  | of this you sho|
00001050  75 6c 64 20 73 6f 6f 6e  20 6c 65 61 72 6e 20 68  |uld soon learn h|
00001060  6f 77 20 74 6f 0d 75 73  65 20 74 68 65 20 70 72  |ow to.use the pr|
00001070  6f 67 72 61 6d 20 74 6f  20 69 74 73 20 66 75 6c  |ogram to its ful|
00001080  6c 65 73 74 20 70 6f 74  65 6e 74 69 61 6c 2e 20  |lest potential. |
00001090  44 6f 20 6e 6f 74 20 77  6f 72 72 79 20 61 62 6f  |Do not worry abo|
000010a0  75 74 20 63 72 61 73 68  69 6e 67 20 74 68 65 0d  |ut crashing the.|
000010b0  70 72 6f 67 72 61 6d 20  64 75 65 20 74 6f 2c 20  |program due to, |
000010c0  66 6f 72 20 65 78 61 6d  70 6c 65 2c 20 61 6e 20  |for example, an |
000010d0  69 6c 6c 65 67 61 6c 20  6f 70 65 72 61 74 69 6e  |illegal operatin|
000010e0  67 20 73 79 73 74 65 6d  20 63 61 6c 6c 20 62 65  |g system call be|
000010f0  63 61 75 73 65 0d 74 68  65 72 65 20 69 73 20 61  |cause.there is a|
00001100  6e 20 65 72 72 6f 72 20  63 68 65 63 6b 69 6e 67  |n error checking|
00001110  20 72 6f 75 74 69 6e 65  20 74 68 61 74 20 74 72  | routine that tr|
00001120  61 70 73 20 61 6e 79 20  65 72 72 6f 72 73 2c 20  |aps any errors, |
00001130  72 65 70 6f 72 74 73 20  74 68 65 6d 2c 0d 61 6e  |reports them,.an|
00001140  64 20 74 68 65 6e 20 72  65 74 75 72 6e 73 20 63  |d then returns c|
00001150  6f 6e 74 72 6f 6c 20 62  61 63 6b 20 74 6f 20 74  |ontrol back to t|
00001160  68 65 20 70 72 6f 67 72  61 6d 20 77 69 74 68 6f  |he program witho|
00001170  75 74 20 6c 6f 73 69 6e  67 20 74 68 65 20 64 61  |ut losing the da|
00001180  74 61 20 66 69 6c 65 0d  74 68 61 74 20 77 61 73  |ta file.that was|
00001190  20 63 75 72 72 65 6e 74  6c 79 20 69 6e 20 6d 65  | currently in me|
000011a0  6d 6f 72 79 20 28 69 66  20 74 68 65 72 65 20 77  |mory (if there w|
000011b0  61 73 20 6f 6e 65 29 2e  0d 0d 54 68 65 20 63 6f  |as one)...The co|
000011c0  6d 6d 61 6e 64 73 20 61  76 61 69 6c 61 62 6c 65  |mmands available|
000011d0  20 61 72 65 20 3a 0d 0d  28 41 29 20 41 44 44 20  | are :..(A) ADD |
000011e0  20 20 20 20 2d 20 61 64  64 20 61 20 72 65 63 6f  |    - add a reco|
000011f0  72 64 2e 0d 28 42 29 20  42 41 43 4b 20 20 20 20  |rd..(B) BACK    |
00001200  2d 20 62 61 63 6b 73 74  65 70 20 74 68 72 6f 75  |- backstep throu|
00001210  67 68 20 74 68 65 20 66  69 6c 65 2e 0d 28 44 29  |gh the file..(D)|
00001220  20 44 45 4c 45 54 45 20  20 2d 20 64 65 6c 65 74  | DELETE  - delet|
00001230  65 20 61 20 72 65 63 6f  72 64 2e 0d 28 45 29 20  |e a record..(E) |
00001240  45 44 49 54 20 20 20 20  2d 20 65 64 69 74 20 61  |EDIT    - edit a|
00001250  20 72 65 63 6f 72 64 2e  0d 28 46 29 20 46 4f 52  | record..(F) FOR|
00001260  57 41 52 44 20 2d 20 66  6f 72 77 61 72 64 73 74  |WARD - forwardst|
00001270  65 70 20 74 68 72 6f 75  67 68 20 74 68 65 20 66  |ep through the f|
00001280  69 6c 65 2e 0d 28 48 29  20 48 45 4c 50 20 20 20  |ile..(H) HELP   |
00001290  20 2d 20 67 69 76 65 73  20 64 65 74 61 69 6c 73  | - gives details|
000012a0  20 6f 66 20 63 6f 6d 6d  61 6e 64 73 2e 0d 28 4b  | of commands..(K|
000012b0  29 20 4b 45 45 50 20 20  20 20 2d 20 73 61 76 65  |) KEEP    - save|
000012c0  20 74 68 65 20 66 69 6c  65 2e 0d 28 4c 29 20 4c  | the file..(L) L|
000012d0  4f 41 44 20 20 20 20 2d  20 6c 6f 61 64 20 74 68  |OAD    - load th|
000012e0  65 20 66 69 6c 65 2e 0d  28 4e 29 20 4e 45 57 20  |e file..(N) NEW |
000012f0  20 20 20 20 2d 20 64 65  66 69 6e 65 20 6e 65 77  |    - define new|
00001300  20 66 69 6c 65 2e 0d 28  4f 29 20 4f 52 44 45 52  | file..(O) ORDER|
00001310  20 20 20 2d 20 72 65 2d  61 72 72 61 6e 67 65 20  |   - re-arrange |
00001320  66 69 6c 65 2e 0d 28 2a  29 20 2a 4f 53 20 20 20  |file..(*) *OS   |
00001330  20 20 2d 20 65 6e 74 65  72 20 4f 53 20 63 6f 6d  |  - enter OS com|
00001340  6d 61 6e 64 2e 0d 28 50  29 20 50 52 49 4e 54 20  |mand..(P) PRINT |
00001350  20 20 2d 20 73 65 6e 64  20 66 69 6c 65 20 74 6f  |  - send file to|
00001360  20 70 72 69 6e 74 65 72  2e 0d 28 52 29 20 52 45  | printer..(R) RE|
00001370  53 45 54 20 20 20 2d 20  72 65 73 65 74 20 44 41  |SET   - reset DA|
00001380  54 41 42 41 53 45 2e 0d  28 53 29 20 53 45 41 52  |TABASE..(S) SEAR|
00001390  43 48 20 20 2d 20 73 65  61 72 63 68 20 66 6f 72  |CH  - search for|
000013a0  20 61 20 72 65 63 6f 72  64 2e 0d 0d 41 73 20 6d  | a record...As m|
000013b0  65 6e 74 69 6f 6e 65 64  20 62 65 66 6f 72 65 2c  |entioned before,|
000013c0  20 44 41 54 41 42 41 53  45 20 69 73 20 76 65 72  | DATABASE is ver|
000013d0  79 20 75 73 65 72 2d 66  72 69 65 6e 64 6c 79 2c  |y user-friendly,|
000013e0  20 61 6e 64 20 79 6f 75  20 73 68 6f 75 6c 64 20  | and you should |
000013f0  68 61 76 65 0d 6e 6f 20  70 72 6f 62 6c 65 6d 73  |have.no problems|
00001400  20 75 73 69 6e 67 20 74  68 65 20 63 6f 6d 6d 61  | using the comma|
00001410  6e 64 73 2c 20 62 75 74  20 69 6e 20 63 61 73 65  |nds, but in case|
00001420  20 74 68 65 72 65 20 61  72 65 20 61 20 66 65 77  | there are a few|
00001430  20 70 6f 69 6e 74 73 20  74 68 61 74 0d 61 72 65  | points that.are|
00001440  20 73 74 69 6c 6c 20 6e  6f 74 20 63 6c 65 61 72  | still not clear|
00001450  20 77 68 65 6e 20 75 73  69 6e 67 20 74 68 65 20  | when using the |
00001460  70 72 6f 67 72 61 6d 2c  20 61 6e 20 65 78 70 6c  |program, an expl|
00001470  61 6e 61 74 69 6f 6e 20  69 73 20 6e 6f 77 20 67  |anation is now g|
00001480  69 76 65 6e 20 6f 66 0d  61 6c 6c 20 74 68 65 20  |iven of.all the |
00001490  63 6f 6d 6d 61 6e 64 73  2e 0d 0d 41 44 44 20 45  |commands...ADD E|
000014a0  6e 61 62 6c 65 73 20 61  20 72 65 63 6f 72 64 20  |nables a record |
000014b0  74 6f 20 62 65 20 61 64  64 65 64 20 74 6f 20 74  |to be added to t|
000014c0  68 65 20 64 61 74 61 20  66 69 6c 65 20 63 75 72  |he data file cur|
000014d0  72 65 6e 74 6c 79 20 69  6e 20 6d 65 6d 6f 72 79  |rently in memory|
000014e0  2e 20 54 68 65 0d 20 72  65 63 6f 72 64 20 61 64  |. The. record ad|
000014f0  64 65 64 20 69 73 20 70  6c 61 63 65 64 20 61 74  |ded is placed at|
00001500  20 74 68 65 20 65 6e 64  20 6f 66 20 74 68 65 20  | the end of the |
00001510  66 69 6c 65 2e 0d 42 41  43 4b 20 57 68 65 6e 65  |file..BACK Whene|
00001520  76 65 72 20 42 20 69 73  20 70 72 65 73 73 65 64  |ver B is pressed|
00001530  2c 20 74 68 65 20 63 75  72 72 65 6e 74 20 72 65  |, the current re|
00001540  63 6f 72 64 20 6e 75 6d  62 65 72 20 69 73 20 64  |cord number is d|
00001550  65 63 72 65 6d 65 6e 74  65 64 20 62 79 0d 20 6f  |ecremented by. o|
00001560  6e 65 2c 20 73 6f 20 74  68 61 74 20 74 68 65 20  |ne, so that the |
00001570  70 72 65 76 69 6f 75 73  20 72 65 63 6f 72 64 20  |previous record |
00001580  69 73 20 64 69 73 70 6c  61 79 65 64 20 6f 6e 20  |is displayed on |
00001590  74 68 65 20 73 63 72 65  65 6e 2e 20 54 68 69 73  |the screen. This|
000015a0  0d 20 63 6f 6d 6d 61 6e  64 2c 20 61 6c 6f 6e 67  |. command, along|
000015b0  20 77 69 74 68 20 28 46  29 20 46 4f 52 57 41 52  | with (F) FORWAR|
000015c0  44 2c 20 65 6e 61 62 6c  65 73 20 74 68 65 20 66  |D, enables the f|
000015d0  69 6c 65 20 74 6f 20 62  65 20 73 63 61 6e 6e 65  |ile to be scanne|
000015e0  64 20 74 68 72 6f 75 67  68 2c 0d 20 61 20 72 65  |d through,. a re|
000015f0  63 6f 72 64 20 61 74 20  61 20 74 69 6d 65 2e 0d  |cord at a time..|
00001600  44 45 4c 45 54 45 20 54  68 69 73 20 77 69 6c 6c  |DELETE This will|
00001610  20 64 65 6c 65 74 65 20  74 68 65 20 72 65 63 6f  | delete the reco|
00001620  72 64 20 63 75 72 72 65  6e 74 20 62 65 69 6e 67  |rd current being|
00001630  20 64 69 73 70 6c 61 79  65 64 20 6f 6e 20 74 68  | displayed on th|
00001640  65 20 73 63 72 65 65 6e  2c 0d 20 61 66 74 65 72  |e screen,. after|
00001650  77 68 69 63 68 20 74 68  65 20 66 69 6c 65 20 77  |which the file w|
00001660  69 6c 6c 20 62 65 20 63  6f 6d 70 61 63 74 65 64  |ill be compacted|
00001670  2e 20 42 65 63 61 75 73  65 20 74 68 69 73 20 63  |. Because this c|
00001680  6f 6d 6d 6d 61 6e 64 20  69 73 0d 20 69 72 72 65  |ommmand is. irre|
00001690  76 65 72 73 61 62 6c 65  20 69 6e 20 69 74 73 20  |versable in its |
000016a0  65 66 66 65 63 74 2c 20  79 6f 75 20 61 72 65 20  |effect, you are |
000016b0  66 69 72 73 74 20 61 73  6b 65 64 20 69 66 20 79  |first asked if y|
000016c0  6f 75 20 72 65 61 6c 6c  79 20 77 61 6e 74 20 74  |ou really want t|
000016d0  6f 20 67 6f 0d 20 61 68  65 61 64 20 61 6e 64 20  |o go. ahead and |
000016e0  64 65 6c 65 74 65 20 74  68 65 20 72 65 63 6f 72  |delete the recor|
000016f0  64 2e 0d 45 44 49 54 20  54 68 69 73 20 63 6f 6d  |d..EDIT This com|
00001700  6d 61 6e 64 20 77 69 6c  6c 20 65 6e 61 62 6c 65  |mand will enable|
00001710  20 74 68 65 20 64 69 73  70 6c 61 79 65 64 20 72  | the displayed r|
00001720  65 63 6f 72 64 20 74 6f  20 62 65 20 65 64 69 74  |ecord to be edit|
00001730  65 64 2c 20 65 6e 61 62  6c 69 6e 67 0d 20 6d 69  |ed, enabling. mi|
00001740  73 74 61 6b 65 73 20 65  74 63 2e 20 74 6f 20 62  |stakes etc. to b|
00001750  65 20 63 6f 72 72 65 63  74 65 64 2e 0d 46 4f 52  |e corrected..FOR|
00001760  57 41 52 44 20 45 6e 61  62 6c 65 73 20 74 68 65  |WARD Enables the|
00001770  20 72 65 63 6f 72 64 73  20 74 6f 20 62 65 20 73  | records to be s|
00001780  63 61 6e 6e 65 64 20 69  6e 20 61 20 66 6f 72 77  |canned in a forw|
00001790  61 72 64 20 64 69 72 65  63 74 69 6f 6e 20 28 73  |ard direction (s|
000017a0  65 65 0d 20 42 41 43 4b  29 2e 0d 48 45 4c 50 20  |ee. BACK)..HELP |
000017b0  54 68 69 73 20 63 6f 6d  6d 61 6e 64 20 69 73 20  |This command is |
000017c0  76 65 72 79 20 75 73 65  66 75 6c 6c 20 62 65 63  |very usefull bec|
000017d0  61 75 73 65 20 69 74 20  67 69 76 65 73 20 61 20  |ause it gives a |
000017e0  73 75 6d 6d 61 72 79 20  6f 66 20 61 6c 6c 20 74  |summary of all t|
000017f0  68 65 0d 20 63 6f 6d 6d  61 6e 64 73 20 61 6e 64  |he. commands and|
00001800  20 77 68 61 74 20 74 68  65 79 20 64 6f 2e 0d 4b  | what they do..K|
00001810  45 45 50 20 52 65 73 75  6c 74 73 20 69 6e 20 74  |EEP Results in t|
00001820  68 65 20 64 61 74 61 20  66 69 6c 65 20 69 6e 20  |he data file in |
00001830  6d 65 6d 6f 72 79 20 62  65 69 6e 67 20 73 61 76  |memory being sav|
00001840  65 64 20 74 6f 20 74 68  65 20 63 75 72 72 65 6e  |ed to the curren|
00001850  74 6c 79 0d 20 61 63 74  69 76 65 20 66 69 6c 69  |tly. active fili|
00001860  6e 67 20 73 79 73 74 65  6d 2c 20 77 68 69 63 68  |ng system, which|
00001870  20 63 61 6e 20 74 68 65  6e 20 62 65 20 6c 6f 61  | can then be loa|
00001880  64 65 64 20 69 6e 20 75  73 69 6e 67 20 4c 4f 41  |ded in using LOA|
00001890  44 2e 0d 20 4c 4f 41 44  20 45 6e 61 62 6c 65 73  |D.. LOAD Enables|
000018a0  20 61 20 70 72 65 76 69  6f 75 73 6c 79 20 73 61  | a previously sa|
000018b0  76 65 64 20 66 69 6c 65  20 74 6f 20 62 65 20 6c  |ved file to be l|
000018c0  6f 61 64 65 64 20 69 6e  20 66 72 6f 6d 20 61 20  |oaded in from a |
000018d0  66 69 6c 69 6e 67 0d 20  73 79 73 74 65 6d 2e 20  |filing. system. |
000018e0  41 66 74 65 72 20 74 79  70 69 6e 67 20 69 6e 20  |After typing in |
000018f0  74 68 65 20 66 69 6c 65  6e 61 6d 65 20 6f 66 20  |the filename of |
00001900  74 68 65 20 64 61 74 61  20 66 69 6c 65 2c 20 79  |the data file, y|
00001910  6f 75 20 77 69 6c 6c 20  61 6c 73 6f 20 68 61 76  |ou will also hav|
00001920  65 0d 20 74 6f 20 74 79  70 65 20 69 6e 20 74 68  |e. to type in th|
00001930  65 20 70 61 73 73 77 6f  72 64 20 74 68 61 74 20  |e password that |
00001940  68 61 73 20 70 72 65 76  69 6f 75 73 6c 79 20 62  |has previously b|
00001950  65 65 6e 20 67 69 76 65  6e 20 74 6f 20 74 68 65  |een given to the|
00001960  20 66 69 6c 65 2c 20 61  6e 64 0d 20 6f 6e 6c 79  | file, and. only|
00001970  20 77 68 65 6e 20 74 68  65 20 63 6f 72 72 65 63  | when the correc|
00001980  74 20 70 61 73 73 77 6f  72 64 20 68 61 73 20 62  |t password has b|
00001990  65 65 6e 20 65 6e 74 65  72 65 64 20 77 69 6c 6c  |een entered will|
000019a0  20 74 68 65 20 72 65 73  74 20 6f 66 20 74 68 65  | the rest of the|
000019b0  20 66 69 6c 65 0d 20 62  65 20 6c 6f 61 64 65 64  | file. be loaded|
000019c0  20 69 6e 2e 20 57 68 65  6e 20 74 79 70 69 6e 67  | in. When typing|
000019d0  20 69 6e 20 74 68 65 20  70 61 73 73 77 6f 72 64  | in the password|
000019e0  2c 20 69 74 20 77 69 6c  6c 20 6e 6f 74 20 62 65  |, it will not be|
000019f0  20 70 72 69 6e 74 65 64  20 75 70 20 6f 6e 0d 20  | printed up on. |
00001a00  74 68 65 20 73 63 72 65  65 6e 20 73 6f 20 61 73  |the screen so as|
00001a10  20 74 6f 20 70 72 65 76  65 6e 74 20 61 6e 79 6f  | to prevent anyo|
00001a20  6e 65 20 65 6c 73 65 20  73 65 65 69 6e 67 20 69  |ne else seeing i|
00001a30  74 21 20 49 66 20 61 6e  20 61 74 74 65 6d 70 74  |t! If an attempt|
00001a40  20 69 73 20 6d 61 64 65  0d 20 74 6f 20 6c 6f 61  | is made. to loa|
00001a50  64 20 61 20 64 61 74 61  20 66 69 6c 65 20 74 68  |d a data file th|
00001a60  61 74 20 77 61 73 20 6e  6f 74 20 63 72 65 61 74  |at was not creat|
00001a70  65 64 20 62 79 20 44 41  54 41 42 41 53 45 2c 20  |ed by DATABASE, |
00001a80  74 68 65 20 66 69 6c 65  20 77 69 6c 6c 20 62 65  |the file will be|
00001a90  0d 20 72 65 6a 65 63 74  65 64 2e 0d 4e 45 57 20  |. rejected..NEW |
00001aa0  54 68 69 73 20 63 6f 6d  6d 61 6e 64 20 65 6e 61  |This command ena|
00001ab0  62 6c 65 73 20 61 20 6e  65 77 20 66 69 6c 65 20  |bles a new file |
00001ac0  74 6f 20 62 65 20 63 72  65 61 74 65 64 2c 20 70  |to be created, p|
00001ad0  72 6f 76 69 64 65 64 20  74 68 65 72 65 20 69 73  |rovided there is|
00001ae0  20 6e 6f 74 20 61 0d 20  66 69 6c 65 20 61 6c 72  | not a. file alr|
00001af0  65 61 64 79 20 69 6e 20  6d 65 6d 6f 72 79 20 75  |eady in memory u|
00001b00  70 6f 6e 20 77 68 69 63  68 20 69 74 20 77 69 6c  |pon which it wil|
00001b10  6c 20 68 61 76 65 20 74  6f 20 62 65 20 64 65 6c  |l have to be del|
00001b20  65 74 65 64 20 75 73 69  6e 67 20 52 45 53 45 54  |eted using RESET|
00001b30  2e 0d 20 57 68 65 6e 20  64 65 66 69 6e 69 6e 67  |.. When defining|
00001b40  20 61 20 66 69 6c 65 2c  20 74 68 65 20 66 69 72  | a file, the fir|
00001b50  73 74 20 74 68 69 6e 67  20 74 68 61 74 20 6d 75  |st thing that mu|
00001b60  73 74 20 62 65 20 64 6f  6e 65 20 69 73 20 74 6f  |st be done is to|
00001b70  20 64 65 66 69 6e 65 20  74 68 65 0d 20 66 69 65  | define the. fie|
00001b80  6c 64 20 74 69 74 6c 65  73 2c 20 61 66 74 65 72  |ld titles, after|
00001b90  77 68 69 63 68 20 74 68  65 20 66 69 65 6c 64 20  |which the field |
00001ba0  6c 65 6e 67 74 68 73 20  6d 75 73 74 20 62 65 20  |lengths must be |
00001bb0  65 6e 74 65 72 65 64 2e  20 47 72 65 61 74 20 63  |entered. Great c|
00001bc0  61 72 65 0d 20 6d 75 73  74 20 62 65 20 6d 61 64  |are. must be mad|
00001bd0  65 20 77 68 65 6e 20 64  65 66 69 6e 69 6e 67 20  |e when defining |
00001be0  74 68 65 73 65 20 62 65  63 61 75 73 65 20 74 68  |these because th|
00001bf0  65 79 20 63 61 6e 6e 6f  74 20 62 65 20 6c 61 74  |ey cannot be lat|
00001c00  65 72 20 63 68 61 6e 67  65 64 2e 0d 20 59 6f 75  |er changed.. You|
00001c10  20 73 68 6f 75 6c 64 20  6e 6f 74 20 68 61 76 65  | should not have|
00001c20  20 61 6e 79 20 70 72 6f  62 6c 65 6d 73 20 73 65  | any problems se|
00001c30  74 74 69 6e 67 20 75 70  20 61 20 66 69 6c 65 20  |tting up a file |
00001c40  62 65 63 61 75 73 65 20  74 68 65 20 70 72 6f 67  |because the prog|
00001c50  72 61 6d 0d 20 67 69 76  65 73 20 61 6c 6c 20 74  |ram. gives all t|
00001c60  68 65 20 64 65 74 61 69  6c 73 20 61 62 6f 75 74  |he details about|
00001c70  20 68 6f 77 20 74 6f 20  67 6f 20 61 62 6f 75 74  | how to go about|
00001c80  20 69 74 2e 20 46 69 6e  61 6c 6c 79 20 79 6f 75  | it. Finally you|
00001c90  20 77 69 6c 6c 20 62 65  20 61 73 6b 65 64 0d 20  | will be asked. |
00001ca0  66 6f 72 20 61 20 70 61  73 73 77 6f 72 64 20 74  |for a password t|
00001cb0  68 61 74 20 69 73 20 74  6f 20 67 6f 20 77 69 74  |hat is to go wit|
00001cc0  68 20 74 68 65 20 66 69  6c 65 2c 20 77 68 69 63  |h the file, whic|
00001cd0  68 20 77 69 6c 6c 20 73  74 6f 70 20 61 6e 79 0d  |h will stop any.|
00001ce0  20 75 6e 61 74 68 6f 75  72 69 73 65 64 20 70 65  | unathourised pe|
00001cf0  6f 70 6c 65 20 66 72 6f  6d 20 73 65 65 69 6e 67  |ople from seeing|
00001d00  20 79 6f 75 72 20 69 6e  66 6f 2e 2e 20 28 62 75  | your info.. (bu|
00001d10  74 20 6d 61 6b 65 20 73  75 72 65 20 79 6f 75 20  |t make sure you |
00001d20  72 65 6d 65 6d 62 65 72  0d 20 74 68 65 20 70 61  |remember. the pa|
00001d30  73 73 77 6f 72 64 20 6f  72 20 79 6f 75 20 77 6f  |ssword or you wo|
00001d40  6e 27 74 20 62 65 20 61  62 6c 65 20 74 6f 20 73  |n't be able to s|
00001d50  65 65 20 79 6f 75 72 20  66 69 6c 65 20 65 69 74  |ee your file eit|
00001d60  68 65 72 21 29 2e 0d 4f  52 44 45 52 20 54 68 69  |her!)..ORDER Thi|
00001d70  73 20 63 61 6e 20 73 77  61 70 20 74 77 6f 20 72  |s can swap two r|
00001d80  65 63 6f 72 64 73 20 77  69 74 68 20 65 61 63 68  |ecords with each|
00001d90  20 6f 74 68 65 72 2c 20  77 68 69 63 68 20 65 6e  | other, which en|
00001da0  61 62 6c 65 73 20 79 6f  75 20 74 6f 20 6d 6f 76  |ables you to mov|
00001db0  65 0d 20 74 68 65 20 72  65 63 6f 72 64 73 20 61  |e. the records a|
00001dc0  72 6f 75 6e 64 20 74 68  65 20 66 69 6c 65 20 73  |round the file s|
00001dd0  6f 20 61 73 20 74 6f 20  70 75 74 20 74 68 65 6d  |o as to put them|
00001de0  20 69 6e 20 74 68 65 20  6f 72 64 65 72 20 79 6f  | in the order yo|
00001df0  75 20 77 61 6e 74 20 74  68 65 6d 2e 0d 20 57 68  |u want them.. Wh|
00001e00  65 6e 20 79 6f 75 20 75  73 65 20 74 68 65 20 63  |en you use the c|
00001e10  6f 6d 6d 61 6e 64 2c 20  79 6f 75 20 77 69 6c 6c  |ommand, you will|
00001e20  20 62 65 20 61 73 6b 65  64 20 66 6f 72 20 74 77  | be asked for tw|
00001e30  6f 20 72 65 63 6f 72 64  20 6e 75 6d 62 65 72 73  |o record numbers|
00001e40  2c 20 77 68 69 63 68 0d  20 61 72 65 20 74 68 65  |, which. are the|
00001e50  20 74 77 6f 20 74 6f 20  62 65 20 73 77 61 70 70  | two to be swapp|
00001e60  65 64 2e 0d 2a 4f 53 20  54 6f 20 61 63 63 65 73  |ed..*OS To acces|
00001e70  73 20 74 68 69 73 20 63  6f 6d 6d 61 6e 64 20 73  |s this command s|
00001e80  69 6d 70 6c 79 20 6b 65  65 70 20 53 48 49 46 54  |imply keep SHIFT|
00001e90  20 70 72 65 73 73 65 64  20 61 6e 64 20 74 68 65  | pressed and the|
00001ea0  6e 20 68 69 74 20 74 68  65 20 2a 0d 20 6b 65 79  |n hit the *. key|
00001eb0  2e 20 41 20 2a 20 77 69  6c 6c 20 74 68 65 6e 20  |. A * will then |
00001ec0  63 6f 6d 65 20 6f 6e 74  6f 20 74 68 65 20 73 63  |come onto the sc|
00001ed0  72 65 65 6e 2c 20 61 66  74 65 72 77 68 69 63 68  |reen, afterwhich|
00001ee0  20 79 6f 75 20 63 61 6e  20 65 6e 74 65 72 20 79  | you can enter y|
00001ef0  6f 75 72 0d 20 6f 70 65  72 61 74 69 6e 67 20 73  |our. operating s|
00001f00  79 73 74 65 6d 20 63 6f  6d 6d 61 6e 64 2e 20 54  |ystem command. T|
00001f10  68 69 73 20 65 6e 61 62  6c 65 73 20 79 6f 75 20  |his enables you |
00001f20  74 6f 20 64 6f 20 74 68  69 6e 67 73 20 73 75 63  |to do things suc|
00001f30  68 20 61 73 0d 20 63 61  74 61 6c 6f 67 69 6e 67  |h as. cataloging|
00001f40  20 61 20 64 69 73 63 20  28 2a 43 41 54 29 2c 20  | a disc (*CAT), |
00001f50  6f 72 20 73 65 6c 65 63  74 69 6e 67 20 61 20 66  |or selecting a f|
00001f60  69 6c 69 6e 67 20 73 79  73 74 65 6d 20 28 2a 44  |iling system (*D|
00001f70  49 53 43 2c 20 2a 54 41  50 45 0d 20 65 74 63 29  |ISC, *TAPE. etc)|
00001f80  2e 20 46 6f 72 20 6d 6f  72 65 20 64 65 74 61 69  |. For more detai|
00001f90  6c 73 20 6f 66 20 6f 70  65 72 61 74 69 6e 67 20  |ls of operating |
00001fa0  73 79 73 74 65 6d 20 63  6f 6d 6d 61 6e 64 73 2c  |system commands,|
00001fb0  20 73 65 65 20 70 61 67  65 20 34 31 36 20 6f 66  | see page 416 of|
00001fc0  20 74 68 65 0d 20 75 73  65 72 20 67 75 69 64 65  | the. user guide|
00001fd0  2e 0d 50 52 49 4e 54 20  49 66 20 61 20 70 72 69  |..PRINT If a pri|
00001fe0  6e 74 65 72 20 69 73 20  63 6f 6e 6e 65 63 74 65  |nter is connecte|
00001ff0  64 20 74 6f 20 79 6f 75  72 20 63 6f 6d 70 75 74  |d to your comput|
00002000  65 72 20 79 6f 75 20 77  69 6c 6c 20 62 65 20 61  |er you will be a|
00002010  62 6c 65 20 74 6f 20 67  65 74 20 61 0d 20 68 61  |ble to get a. ha|
00002020  72 64 20 63 6f 70 79 20  6f 66 20 61 20 73 69 6e  |rd copy of a sin|
00002030  67 6c 65 20 72 65 63 6f  72 64 2c 20 6f 72 20 74  |gle record, or t|
00002040  68 65 20 77 68 6f 6c 65  20 66 69 6c 65 2e 20 57  |he whole file. W|
00002050  68 65 6e 20 70 72 69 6e  74 69 6e 67 20 6f 75 74  |hen printing out|
00002060  20 61 6c 6c 0d 20 74 68  65 20 72 65 63 6f 72 64  | all. the record|
00002070  73 2c 20 79 6f 75 20 77  69 6c 6c 20 62 65 20 61  |s, you will be a|
00002080  73 6b 65 64 20 66 6f 72  20 61 6e 20 69 6e 74 65  |sked for an inte|
00002090  72 2d 72 65 63 6f 72 64  20 73 70 61 63 65 20 63  |r-record space c|
000020a0  68 61 72 61 63 74 65 72  20 77 68 69 63 68 0d 20  |haracter which. |
000020b0  77 69 6c 6c 20 62 65 20  70 72 69 6e 74 65 64 20  |will be printed |
000020c0  69 6e 20 61 20 6c 6f 6e  67 20 6c 69 6e 65 20 74  |in a long line t|
000020d0  6f 20 73 65 70 65 72 61  74 65 20 65 61 63 68 20  |o seperate each |
000020e0  72 65 63 6f 72 64 20 6f  6e 20 74 68 65 20 70 61  |record on the pa|
000020f0  70 65 72 20 28 61 0d 20  73 75 69 74 61 62 6c 65  |per (a. suitable|
00002100  20 63 68 61 72 61 63 74  65 72 20 69 73 20 61 20  | character is a |
00002110  27 2d 27 29 2e 0d 52 45  53 45 54 20 57 68 65 6e  |'-')..RESET When|
00002120  20 79 6f 75 20 70 72 65  73 73 20 27 52 27 20 74  | you press 'R' t|
00002130  68 69 73 20 77 69 70 65  73 20 74 68 65 20 6d 65  |his wipes the me|
00002140  6d 6f 72 79 20 77 68 65  72 65 20 74 68 65 20 63  |mory where the c|
00002150  75 72 72 65 6e 74 20 66  69 6c 65 0d 20 69 73 20  |urrent file. is |
00002160  73 74 6f 72 65 64 2c 20  74 68 75 73 20 77 69 70  |stored, thus wip|
00002170  69 6e 67 20 6f 75 74 20  74 68 65 20 66 69 6c 65  |ing out the file|
00002180  2e 20 55 73 65 20 74 68  69 73 20 63 6f 6d 6d 61  |. Use this comma|
00002190  6e 64 20 63 61 72 65 66  75 6c 6c 79 2c 20 61 6e  |nd carefully, an|
000021a0  64 0d 20 6d 61 6b 65 20  73 75 72 65 20 74 68 61  |d. make sure tha|
000021b0  74 20 79 6f 75 20 68 61  76 65 20 73 61 76 65 64  |t you have saved|
000021c0  20 74 68 65 20 66 69 6c  65 20 62 65 66 6f 72 65  | the file before|
000021d0  20 75 73 69 6e 67 20 52  45 53 45 54 2e 0d 53 45  | using RESET..SE|
000021e0  41 52 43 48 20 54 68 69  73 20 63 6f 6d 6d 61 6e  |ARCH This comman|
000021f0  64 20 65 6e 61 62 6c 65  73 20 79 6f 75 20 74 6f  |d enables you to|
00002200  20 66 69 6e 64 20 61 20  72 65 63 6f 72 64 20 71  | find a record q|
00002210  75 69 63 6b 6c 79 20 62  79 20 61 73 6b 69 6e 67  |uickly by asking|
00002220  20 66 6f 72 0d 20 61 20  73 65 61 72 63 68 20 72  | for. a search r|
00002230  65 63 6f 72 64 2c 20 61  66 74 65 72 77 68 69 63  |ecord, afterwhic|
00002240  68 20 69 74 20 77 69 6c  6c 20 73 65 61 72 63 68  |h it will search|
00002250  20 74 68 65 20 66 69 6c  65 20 66 6f 72 20 61 6e  | the file for an|
00002260  6f 74 68 65 72 0d 20 72  65 63 6f 72 64 20 74 68  |other. record th|
00002270  61 74 20 69 73 20 74 68  65 20 63 6c 6f 73 65 73  |at is the closes|
00002280  74 20 6d 61 74 63 68 2e  20 55 70 6f 6e 20 64 65  |t match. Upon de|
00002290  63 69 64 69 6e 67 20 77  68 69 63 68 20 69 73 20  |ciding which is |
000022a0  74 68 65 20 62 65 73 74  0d 20 62 65 74 2c 20 69  |the best. bet, i|
000022b0  74 20 77 69 6c 6c 20 70  72 69 6e 74 20 6f 75 74  |t will print out|
000022c0  20 74 68 65 20 63 6c 6f  73 65 73 74 20 6d 61 74  | the closest mat|
000022d0  63 68 69 6e 67 20 72 65  63 6f 72 64 2e 20 53 6f  |ching record. So|
000022e0  2c 20 66 6f 72 20 65 78  61 6d 70 6c 65 2c 0d 20  |, for example,. |
000022f0  69 66 20 79 6f 75 20 77  61 6e 74 65 64 20 74 6f  |if you wanted to|
00002300  20 6b 6e 6f 77 20 4d 69  6b 65 27 73 20 70 68 6f  | know Mike's pho|
00002310  6e 65 20 6e 75 6d 62 65  72 2c 20 79 6f 75 20 77  |ne number, you w|
00002320  6f 75 6c 64 20 65 6e 74  65 72 20 4d 69 6b 65 20  |ould enter Mike |
00002330  69 6e 74 6f 0d 20 74 68  65 20 6e 61 6d 65 20 66  |into. the name f|
00002340  69 65 6c 64 2c 20 61 6e  64 20 74 68 65 6e 20 74  |ield, and then t|
00002350  68 65 20 63 6f 6d 70 75  74 65 72 20 77 6f 75 6c  |he computer woul|
00002360  64 20 63 6f 6d 65 20 75  70 20 77 69 74 68 20 74  |d come up with t|
00002370  68 65 20 72 65 73 74 20  6f 66 0d 20 68 69 73 20  |he rest of. his |
00002380  72 65 63 6f 72 64 2e 20  49 66 20 74 68 65 72 65  |record. If there|
00002390  20 77 65 72 65 20 74 77  6f 20 4d 69 6b 65 27 73  | were two Mike's|
000023a0  20 69 6e 20 74 68 65 20  66 69 6c 65 20 74 68 65  | in the file the|
000023b0  6e 20 79 6f 75 20 77 6f  75 6c 64 20 68 61 76 65  |n you would have|
000023c0  0d 20 74 6f 20 73 70 65  63 69 66 79 20 68 69 73  |. to specify his|
000023d0  20 73 65 63 6f 6e 64 20  6e 61 6d 65 20 69 6e 20  | second name in |
000023e0  74 68 65 20 73 65 61 72  63 68 20 72 65 63 6f 72  |the search recor|
000023f0  64 20 28 69 2e 65 2e 20  4d 49 4b 45 20 44 49 58  |d (i.e. MIKE DIX|
00002400  4f 4e 29 2e 0d 0d 54 45  43 48 4e 49 43 41 4c 20  |ON)...TECHNICAL |
00002410  50 4f 49 4e 54 53 20 4f  46 20 54 48 45 20 50 52  |POINTS OF THE PR|
00002420  4f 47 52 41 4d 20 3a 0d  0d 44 41 54 41 42 41 53  |OGRAM :..DATABAS|
00002430  45 20 69 73 20 77 72 69  74 74 65 6e 20 74 68 65  |E is written the|
00002440  20 77 61 79 20 6d 6f 73  74 20 70 72 6f 67 72 61  | way most progra|
00002450  6d 73 20 61 72 65 3b 20  61 20 62 69 67 20 6d 61  |ms are; a big ma|
00002460  69 6e 20 70 72 6f 67 72  61 6d 20 6c 6f 6f 70 20  |in program loop |
00002470  61 74 0d 74 68 65 20 62  65 67 69 6e 6e 69 6e 67  |at.the beginning|
00002480  2c 20 66 6f 6c 6c 6f 77  65 64 20 62 79 20 6c 6f  |, followed by lo|
00002490  61 64 73 20 6f 66 20 70  72 6f 63 65 64 75 72 65  |ads of procedure|
000024a0  73 20 74 68 61 74 20 61  72 65 20 63 61 6c 6c 65  |s that are calle|
000024b0  64 20 75 70 20 66 72 6f  6d 0d 74 68 69 73 20 6c  |d up from.this l|
000024c0  6f 6f 70 2e 20 42 65 63  61 75 73 65 20 6f 66 20  |oop. Because of |
000024d0  74 68 69 73 20 74 68 65  20 70 72 6f 67 72 61 6d  |this the program|
000024e0  20 69 73 20 71 75 69 74  65 20 65 61 73 79 20 74  | is quite easy t|
000024f0  6f 20 66 6f 6c 6c 6f 77  2c 20 77 69 74 68 20 65  |o follow, with e|
00002500  61 63 68 0d 63 6f 6d 6d  61 6e 64 20 62 65 69 6e  |ach.command bein|
00002510  67 20 61 6c 6c 6f 63 61  74 65 64 20 61 20 73 65  |g allocated a se|
00002520  70 61 72 61 74 65 20 73  75 62 72 6f 75 74 69 6e  |parate subroutin|
00002530  65 20 28 73 65 65 20 6c  69 73 74 20 6f 66 20 70  |e (see list of p|
00002540  72 6f 63 65 64 75 72 65  73 29 2e 0d 57 68 65 72  |rocedures)..Wher|
00002550  65 20 73 70 65 65 64 20  69 73 20 69 6d 70 6f 72  |e speed is impor|
00002560  74 61 6e 74 20 28 65 2e  67 2e 20 77 68 65 6e 20  |tant (e.g. when |
00002570  70 72 69 6e 74 69 6e 67  20 61 20 72 65 63 6f 72  |printing a recor|
00002580  64 20 77 68 69 6c 65 20  73 63 61 6e 6e 69 6e 67  |d while scanning|
00002590  29 2c 20 74 68 65 0d 70  72 6f 67 72 61 6d 20 68  |), the.program h|
000025a0  61 73 20 62 65 65 6e 20  63 6f 64 65 64 20 61 63  |as been coded ac|
000025b0  63 6f 72 64 69 6e 67 6c  79 2c 20 75 73 69 6e 67  |cordingly, using|
000025c0  20 69 6e 74 65 67 65 72  20 76 61 72 69 61 62 6c  | integer variabl|
000025d0  65 73 20 65 74 63 2e 2e  0d 0d 54 68 65 20 63 6f  |es etc....The co|
000025e0  64 69 6e 67 20 74 6f 20  70 65 72 66 6f 72 6d 20  |ding to perform |
000025f0  65 61 63 68 20 6f 66 20  74 68 65 20 66 65 61 74  |each of the feat|
00002600  75 72 65 73 20 69 73 20  66 61 69 72 6c 79 20 73  |ures is fairly s|
00002610  74 61 6e 64 61 72 64 2c  20 62 75 74 20 77 69 74  |tandard, but wit|
00002620  68 20 61 0d 66 65 77 20  65 78 63 65 70 74 69 6f  |h a.few exceptio|
00002630  6e 73 3b 20 74 68 65 20  73 61 76 65 20 61 6e 64  |ns; the save and|
00002640  20 6c 6f 61 64 20 66 75  6e 63 74 69 6f 6e 73 20  | load functions |
00002650  64 6f 20 74 68 65 69 72  20 6a 6f 62 20 62 79 20  |do their job by |
00002660  73 61 76 69 6e 67 20 74  68 65 0d 66 69 6c 65 20  |saving the.file |
00002670  61 73 20 6f 6e 65 20 62  69 67 20 62 6c 6f 63 6b  |as one big block|
00002680  20 6f 66 20 6d 65 6d 6f  72 79 20 28 69 2e 65 20  | of memory (i.e |
00002690  75 73 69 6e 67 20 2a 4c  4f 41 44 20 61 6e 64 20  |using *LOAD and |
000026a0  2a 53 41 56 45 29 2c 20  77 68 69 63 68 0d 69 6e  |*SAVE), which.in|
000026b0  69 74 69 61 6c 6c 79 20  70 6f 73 65 73 20 61 20  |itially poses a |
000026c0  70 72 6f 62 6c 65 6d 20  62 65 63 61 75 73 65 20  |problem because |
000026d0  79 6f 75 20 63 61 6e 6e  6f 74 20 73 70 65 63 69  |you cannot speci|
000026e0  66 79 20 61 20 66 69 6c  65 6e 61 6d 65 20 69 6e  |fy a filename in|
000026f0  20 61 0d 76 61 72 69 61  62 6c 65 20 69 6e 20 74  | a.variable in t|
00002700  68 69 73 20 63 61 73 65  2c 20 73 6f 20 61 20 73  |his case, so a s|
00002710  74 72 69 6e 67 20 68 61  64 20 74 6f 20 62 65 20  |tring had to be |
00002720  62 75 69 6c 74 20 75 70  20 69 6e 20 6d 65 6d 6f  |built up in memo|
00002730  72 79 2c 20 61 6e 64 20  74 68 65 6e 0d 70 61 73  |ry, and then.pas|
00002740  73 65 64 20 6f 6e 74 6f  20 74 68 65 20 63 6f 6d  |sed onto the com|
00002750  6d 61 6e 64 20 6c 69 6e  65 20 69 6e 74 65 72 70  |mand line interp|
00002760  72 65 74 65 72 20 28 61  74 20 26 46 46 46 37 29  |reter (at &FFF7)|
00002770  2e 20 41 6c 74 68 6f 75  67 68 20 69 6e 20 42 41  |. Although in BA|
00002780  53 49 43 32 0d 74 68 65  20 63 6f 6d 6d 61 6e 64  |SIC2.the command|
00002790  20 4f 53 43 4c 49 20 63  6f 75 6c 64 20 62 65 20  | OSCLI could be |
000027a0  75 73 65 64 2c 20 74 68  65 20 77 61 79 20 69 74  |used, the way it|
000027b0  20 69 73 20 65 6e 73 75  72 65 73 20 63 6f 6d 70  | is ensures comp|
000027c0  61 74 69 62 69 6c 69 74  79 20 77 69 74 68 0d 42  |atibility with.B|
000027d0  41 53 49 43 31 2e 20 41  6e 6f 74 68 65 72 20 75  |ASIC1. Another u|
000027e0  6e 75 73 75 61 6c 20 70  6f 69 6e 74 20 6f 66 20  |nusual point of |
000027f0  74 68 65 20 70 72 6f 67  72 61 6d 20 69 73 20 74  |the program is t|
00002800  68 65 20 65 78 74 65 6e  73 69 76 65 20 75 73 65  |he extensive use|
00002810  20 6f 66 0d 69 6e 64 69  72 65 63 74 69 6f 6e 20  | of.indirection |
00002820  6f 70 65 72 61 74 6f 72  73 20 74 6f 20 73 74 6f  |operators to sto|
00002830  72 65 20 74 68 65 20 72  65 63 6f 72 64 73 20 64  |re the records d|
00002840  69 72 65 63 74 6c 79 20  69 6e 20 6d 65 6d 6f 72  |irectly in memor|
00002850  79 20 77 68 69 63 68 2c  20 77 68 69 6c 65 0d 76  |y which, while.v|
00002860  65 72 79 20 6c 61 62 6f  72 69 6f 75 73 20 74 6f  |ery laborious to|
00002870  20 70 72 6f 67 72 61 6d  20 69 6e 20 77 68 65 6e  | program in when|
00002880  20 63 6f 6d 70 61 72 65  64 20 74 6f 20 74 68 65  | compared to the|
00002890  20 65 61 73 65 20 6f 66  20 75 73 65 20 6f 66 20  | ease of use of |
000028a0  61 72 72 61 79 73 2c 0d  64 6f 65 73 20 68 61 76  |arrays,.does hav|
000028b0  65 20 69 74 73 20 72 65  6c 65 76 61 6e 74 20 6d  |e its relevant m|
000028c0  65 72 69 74 73 20 74 68  61 74 20 61 72 65 20 65  |erits that are e|
000028d0  78 70 6c 61 69 6e 65 64  20 6c 61 74 65 72 2e 0d  |xplained later..|
000028e0  0d 49 74 20 63 61 6e 20  62 65 20 73 65 65 6e 20  |.It can be seen |
000028f0  74 68 61 74 20 2a 46 58  32 30 30 2c 31 20 61 6e  |that *FX200,1 an|
00002900  64 20 2a 46 58 32 30 30  2c 30 20 61 72 65 20 75  |d *FX200,0 are u|
00002910  73 65 64 20 61 20 6c 6f  74 2c 20 77 68 69 63 68  |sed a lot, which|
00002920  20 65 6e 61 62 6c 65 20  61 6e 64 0d 64 69 73 61  | enable and.disa|
00002930  62 6c 65 20 74 68 65 20  45 53 43 41 50 45 20 6b  |ble the ESCAPE k|
00002940  65 79 2e 20 54 68 65 20  72 65 61 73 6f 6e 20 69  |ey. The reason i|
00002950  73 20 74 68 61 74 20 77  68 69 6c 65 20 74 68 65  |s that while the|
00002960  20 65 73 63 61 70 65 20  6b 65 79 20 77 6f 72 6b  | escape key work|
00002970  73 20 6d 6f 73 74 0d 6f  66 20 74 68 65 20 74 69  |s most.of the ti|
00002980  6d 65 2c 20 65 6e 61 62  6c 69 6e 67 20 79 6f 75  |me, enabling you|
00002990  20 74 6f 20 67 65 74 20  6f 75 74 20 6f 66 20 61  | to get out of a|
000029a0  20 63 6f 6d 6d 61 6e 64  20 74 68 61 74 20 79 6f  | command that yo|
000029b0  75 20 61 63 63 69 64 65  6e 74 6c 79 0d 65 6e 74  |u accidently.ent|
000029c0  65 72 65 64 2c 20 69 74  20 63 6f 75 6c 64 20 62  |ered, it could b|
000029d0  65 20 64 61 6e 67 65 72  6f 75 73 20 74 6f 20 65  |e dangerous to e|
000029e0  73 63 61 70 65 20 77 68  65 6e 2c 20 66 6f 72 20  |scape when, for |
000029f0  65 78 61 6d 70 6c 65 2c  20 64 65 6c 65 74 69 6e  |example, deletin|
00002a00  67 20 61 0d 72 65 63 6f  72 64 20 62 65 63 61 75  |g a.record becau|
00002a10  73 65 20 69 66 20 45 53  43 41 50 45 20 77 61 73  |se if ESCAPE was|
00002a20  20 70 72 65 73 73 65 64  20 77 68 69 6c 65 20 74  | pressed while t|
00002a30  68 65 20 70 72 6f 67 72  61 6d 20 77 61 73 20 73  |he program was s|
00002a40  68 69 66 74 69 6e 67 20  61 6c 6c 0d 74 68 65 20  |hifting all.the |
00002a50  66 6f 6c 6c 6f 77 69 6e  67 20 72 65 63 6f 72 64  |following record|
00002a60  73 20 6f 6e 20 74 6f 70  20 6f 66 20 74 68 65 20  |s on top of the |
00002a70  64 65 6c 65 74 65 64 20  72 65 63 6f 72 64 2c 20  |deleted record, |
00002a80  74 68 65 20 77 68 6f 6c  65 20 66 69 6c 65 20 63  |the whole file c|
00002a90  6f 75 6c 64 0d 62 65 20  63 6f 72 72 75 70 74 65  |ould.be corrupte|
00002aa0  64 2e 20 53 6f 20 74 6f  20 70 72 65 76 65 6e 74  |d. So to prevent|
00002ab0  20 74 68 69 73 20 74 68  65 20 65 73 63 61 70 65  | this the escape|
00002ac0  20 6b 65 79 20 69 73 20  64 69 73 61 62 6c 65 64  | key is disabled|
00002ad0  20 6a 75 73 74 20 62 65  66 6f 72 65 0d 74 68 65  | just before.the|
00002ae0  20 72 6f 75 74 69 6e 65  20 69 73 20 65 6e 74 65  | routine is ente|
00002af0  72 65 64 2c 20 61 6e 64  20 74 68 65 6e 20 65 6e  |red, and then en|
00002b00  61 62 6c 65 64 20 61 66  74 65 72 20 6c 65 61 76  |abled after leav|
00002b10  69 6e 67 20 74 68 65 20  72 6f 75 74 69 6e 65 2e  |ing the routine.|
00002b20  20 54 68 69 73 0d 69 73  20 64 6f 6e 65 20 77 69  | This.is done wi|
00002b30  74 68 20 6d 6f 73 74 20  6f 66 20 74 68 65 20 72  |th most of the r|
00002b40  6f 75 74 69 6e 65 73 2e  0d 0d 54 68 65 20 73 65  |outines...The se|
00002b50  61 72 63 68 20 72 6f 75  74 69 6e 65 20 75 73 65  |arch routine use|
00002b60  64 20 69 6e 20 74 68 65  20 70 72 6f 67 72 61 6d  |d in the program|
00002b70  20 77 6f 72 6b 73 20 6f  6e 20 61 20 74 6f 6b 65  | works on a toke|
00002b80  6e 20 62 61 73 69 73 2c  20 67 69 76 69 6e 67 0d  |n basis, giving.|
00002b90  70 6f 69 6e 74 73 20 66  6f 72 20 65 61 63 68 20  |points for each |
00002ba0  66 69 65 6c 64 20 6f 66  20 61 20 72 65 63 6f 72  |field of a recor|
00002bb0  64 20 74 68 61 74 20 6d  61 74 63 68 65 73 20 77  |d that matches w|
00002bc0  69 74 68 20 74 68 65 20  73 65 61 72 63 68 20 72  |ith the search r|
00002bd0  65 63 6f 72 64 2c 20 61  6e 64 0d 74 68 65 6e 20  |ecord, and.then |
00002be0  70 72 69 6e 74 69 6e 67  20 6f 75 74 20 74 68 65  |printing out the|
00002bf0  20 72 65 63 6f 72 64 20  74 68 61 74 20 67 6f 74  | record that got|
00002c00  20 6d 6f 73 74 20 70 6f  69 6e 74 73 2e 20 49 66  | most points. If|
00002c10  20 74 77 6f 20 72 65 63  6f 72 64 73 20 67 65 74  | two records get|
00002c20  20 74 68 65 0d 73 61 6d  65 20 70 6f 69 6e 74 73  | the.same points|
00002c30  2c 20 74 68 65 20 66 69  72 73 74 20 6f 6e 65 20  |, the first one |
00002c40  65 6e 63 6f 75 6e 74 65  72 65 64 20 69 6e 20 74  |encountered in t|
00002c50  68 65 20 66 69 6c 65 20  69 73 20 6f 75 74 70 75  |he file is outpu|
00002c60  74 2c 20 61 6e 64 20 62  65 63 61 75 73 65 0d 6f  |t, and because.o|
00002c70  66 20 74 68 69 73 20 69  74 20 69 73 20 61 6c 77  |f this it is alw|
00002c80  61 79 73 20 62 65 73 74  20 74 6f 20 70 75 74 20  |ays best to put |
00002c90  61 73 20 6d 75 63 68 20  69 6e 66 6f 72 6d 61 74  |as much informat|
00002ca0  69 6f 6e 20 69 6e 20 74  68 65 20 73 65 61 72 63  |ion in the searc|
00002cb0  68 20 72 65 63 6f 72 64  0d 61 73 20 79 6f 75 20  |h record.as you |
00002cc0  63 61 6e 20 72 65 6d 65  6d 62 65 72 2e 0d 0d 0d  |can remember....|
00002cd0  50 52 4f 43 45 44 55 52  45 53 20 20 20 4c 49 4e  |PROCEDURES   LIN|
00002ce0  45 20 4e 4f 53 20 20 44  45 53 43 52 49 50 54 49  |E NOS  DESCRIPTI|
00002cf0  4f 4e 0d 0d 69 6e 69 74  69 61 6c 69 73 65 20 20  |ON..initialise  |
00002d00  20 20 20 20 33 31 30 20  20 20 20 49 6e 69 74 69  |    310    Initi|
00002d10  61 6c 69 73 65 73 20 76  61 72 69 61 62 6c 65 73  |alises variables|
00002d20  20 65 74 63 2e 2e 0d 63  68 65 63 6b 65 72 72 6f  | etc...checkerro|
00002d30  72 20 20 20 20 20 20 33  37 30 20 20 20 20 41 6e  |r      370    An|
00002d40  61 6c 79 73 65 73 20 65  72 72 6f 72 20 26 20 72  |alyses error & r|
00002d50  65 61 63 74 73 20 61 63  6f 72 64 69 6e 67 6c 79  |eacts acordingly|
00002d60  2e 0d 73 65 74 73 63 72  65 65 6e 20 20 20 20 20  |..setscreen     |
00002d70  20 20 33 39 30 20 20 20  20 53 65 74 73 20 75 70  |  390    Sets up|
00002d80  20 73 63 72 65 65 6e 2e  0d 61 20 20 20 20 20 20  | screen..a      |
00002d90  20 20 20 20 20 20 20 20  20 34 38 30 20 20 20 20  |         480    |
00002da0  50 65 72 66 6f 72 6d 73  20 41 44 44 20 63 6f 6d  |Performs ADD com|
00002db0  6d 61 6e 64 2e 0d 62 20  20 20 20 20 20 20 20 20  |mand..b         |
00002dc0  20 20 20 20 20 20 36 32  30 20 20 20 20 50 65 72  |      620    Per|
00002dd0  66 6f 72 6d 73 20 42 41  43 4b 20 63 6f 6d 6d 61  |forms BACK comma|
00002de0  6e 64 2e 0d 64 20 20 20  20 20 20 20 20 20 20 20  |nd..d           |
00002df0  20 20 20 20 36 39 30 20  20 20 20 50 65 72 66 6f  |    690    Perfo|
00002e00  72 6d 73 20 44 45 4c 45  54 45 20 63 6f 6d 6d 61  |rms DELETE comma|
00002e10  6e 64 2e 0d 65 20 20 20  20 20 20 20 20 20 20 20  |nd..e           |
00002e20  20 20 20 20 38 37 30 20  20 20 20 50 65 72 66 6f  |    870    Perfo|
00002e30  72 6d 73 20 45 44 49 54  20 63 6f 6d 6d 61 6e 64  |rms EDIT command|
00002e40  2e 0d 66 20 20 20 20 20  20 20 20 20 20 20 20 20  |..f             |
00002e50  20 31 31 32 30 20 20 20  20 50 65 72 66 6f 72 6d  | 1120    Perform|
00002e60  73 20 46 4f 52 57 41 52  44 20 63 6f 6d 6d 61 6e  |s FORWARD comman|
00002e70  64 2e 0d 68 20 20 20 20  20 20 20 20 20 20 20 20  |d..h            |
00002e80  20 20 31 31 39 30 20 20  20 20 50 65 72 66 6f 72  |  1190    Perfor|
00002e90  6d 73 20 48 45 4c 50 20  63 6f 6d 6d 61 6e 64 2e  |ms HELP command.|
00002ea0  0d 6b 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.k              |
00002eb0  31 32 32 30 20 20 20 20  50 65 72 66 6f 72 6d 73  |1220    Performs|
00002ec0  20 4b 45 45 50 20 63 6f  6d 6d 61 6e 64 2e 0d 6c  | KEEP command..l|
00002ed0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 31 32  |              12|
00002ee0  39 30 20 20 20 20 50 65  72 66 6f 72 6d 73 20 4c  |90    Performs L|
00002ef0  4f 41 44 20 63 6f 6d 6d  61 6e 64 2e 0d 6e 20 20  |OAD command..n  |
00002f00  20 20 20 20 20 20 20 20  20 20 20 20 31 33 39 30  |            1390|
00002f10  20 20 20 20 50 65 72 66  6f 72 6d 73 20 4e 45 57  |    Performs NEW|
00002f20  20 63 6f 6d 6d 61 6e 64  2e 0d 6f 20 20 20 20 20  | command..o     |
00002f30  20 20 20 20 20 20 20 20  20 31 37 37 30 20 20 20  |         1770   |
00002f40  20 50 65 72 66 6f 72 6d  73 20 2a 4f 53 20 63 6f  | Performs *OS co|
00002f50  6d 6d 61 6e 64 2e 0d 70  20 20 20 20 20 20 20 20  |mmand..p        |
00002f60  20 20 20 20 20 20 31 38  31 30 20 20 20 20 50 65  |      1810    Pe|
00002f70  72 66 6f 72 6d 73 20 50  52 49 4e 54 20 63 6f 6d  |rforms PRINT com|
00002f80  6d 61 6e 64 2e 0d 73 20  20 20 20 20 20 20 20 20  |mand..s         |
00002f90  20 20 20 20 20 31 39 38  30 20 20 20 20 50 65 72  |     1980    Per|
00002fa0  66 6f 72 6d 73 20 53 45  41 52 43 48 20 63 6f 6d  |forms SEARCH com|
00002fb0  6d 61 6e 64 2e 0d 72 20  20 20 20 20 20 20 20 20  |mand..r         |
00002fc0  20 20 20 20 20 32 32 33  30 20 20 20 20 50 65 72  |     2230    Per|
00002fd0  66 6f 72 6d 73 20 52 45  53 45 54 20 63 6f 6d 6d  |forms RESET comm|
00002fe0  61 6e 64 2e 0d 6f 72 20  20 20 20 20 20 20 20 20  |and..or         |
00002ff0  20 20 20 20 32 32 35 30  20 20 20 20 50 65 72 66  |    2250    Perf|
00003000  6f 72 6d 73 20 4f 52 44  45 52 20 63 6f 6d 6d 61  |orms ORDER comma|
00003010  6e 64 2e 0d 74 6f 70 77  20 20 20 20 20 20 20 20  |nd..topw        |
00003020  20 20 20 32 33 39 30 20  20 20 20 53 65 74 73 20  |   2390    Sets |
00003030  74 6f 70 20 74 65 78 74  20 77 69 6e 64 6f 77 2e  |top text window.|
00003040  0d 62 6f 74 77 20 20 20  20 20 20 20 20 20 20 20  |.botw           |
00003050  32 34 31 30 20 20 20 20  53 65 74 73 20 62 6f 74  |2410    Sets bot|
00003060  74 6f 6d 20 74 65 78 74  20 77 69 6e 64 6f 77 2e  |tom text window.|
00003070  0d 6f 70 74 69 6f 6e 73  20 20 20 20 20 20 20 20  |.options        |
00003080  32 34 33 30 20 20 20 20  50 72 69 6e 74 73 20 6f  |2430    Prints o|
00003090  75 74 20 63 6f 6d 6d 61  6e 64 73 20 61 76 61 69  |ut commands avai|
000030a0  6c 61 62 6c 65 20 69 6e  20 74 68 65 20 74 6f 70  |lable in the top|
000030b0  20 74 65 78 74 0d 20 20  20 20 20 20 20 20 20 20  | text.          |
000030c0  20 20 20 20 20 20 20 20  20 20 20 20 20 77 69 6e  |             win|
000030d0  64 6f 77 2e 0d 74 69 74  6c 65 20 20 20 20 20 20  |dow..title      |
000030e0  20 20 20 20 32 34 35 30  20 20 20 20 50 72 69 6e  |    2450    Prin|
000030f0  74 73 20 63 6f 6d 6d 61  6e 64 20 74 68 61 74 20  |ts command that |
00003100  68 61 73 20 6a 75 73 74  20 62 65 65 6e 20 73 65  |has just been se|
00003110  6c 65 63 74 65 64 20 69  6e 20 61 0d 20 20 20 20  |lected in a.    |
00003120  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00003130  20 20 20 61 20 27 70 72  65 74 74 79 27 20 62 6c  |   a 'pretty' bl|
00003140  75 65 20 62 6f 78 21 0d  73 70 20 20 20 20 20 20  |ue box!.sp      |
00003150  20 20 20 20 20 20 20 32  34 37 30 20 20 20 20 41  |       2470    A|
00003160  73 6b 73 20 75 73 65 72  20 74 6f 20 70 72 65 73  |sks user to pres|
00003170  73 20 74 68 65 20 73 70  61 63 65 20 62 61 72 20  |s the space bar |
00003180  74 6f 20 63 6f 6e 74 69  6e 75 65 2e 0d 73 75 72  |to continue..sur|
00003190  65 20 20 20 20 20 20 20  20 20 20 20 32 34 39 30  |e           2490|
000031a0  20 20 20 20 41 73 6b 73  20 69 66 20 79 6f 75 20  |    Asks if you |
000031b0  72 65 61 6c 6c 79 20 77  61 6e 74 20 74 6f 20 63  |really want to c|
000031c0  6f 6e 74 69 6e 75 65 2e  20 49 66 20 73 6f 0d 20  |ontinue. If so. |
000031d0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000031e0  20 20 20 20 20 27 73 73  27 3d 30 2c 20 6f 74 68  |     'ss'=0, oth|
000031f0  65 72 77 69 73 65 20 27  73 73 27 3d 31 2e 0d 63  |erwise 'ss'=1..c|
00003200  6c 65 61 72 20 20 20 20  20 20 20 20 20 20 32 35  |lear          25|
00003210  32 30 20 20 20 20 57 69  70 65 73 20 66 69 6c 65  |20    Wipes file|
00003220  20 6d 65 6d 6f 72 79 2e  0d 70 72 65 63 6f 72 64  | memory..precord|
00003230  20 20 20 20 20 20 20 20  32 35 37 30 20 20 20 20  |        2570    |
00003240  50 72 69 6e 74 73 20 74  68 65 20 63 75 72 72 65  |Prints the curre|
00003250  6e 74 20 72 65 63 6f 72  64 20 68 65 6c 64 20 69  |nt record held i|
00003260  6e 20 27 72 65 63 6f 72  64 27 2e 0d 70 66 69 65  |n 'record'..pfie|
00003270  6c 64 20 20 20 20 20 20  20 20 20 32 37 33 30 20  |ld         2730 |
00003280  20 20 20 50 72 69 6e 74  73 20 74 68 65 20 66 69  |   Prints the fi|
00003290  65 6c 64 20 74 69 74 6c  65 73 20 6f 66 20 74 68  |eld titles of th|
000032a0  65 20 66 69 6c 65 2e 0d  67 66 6e 61 6d 65 20 20  |e file..gfname  |
000032b0  20 20 20 20 20 20 20 32  38 31 30 20 20 20 20 41  |       2810    A|
000032c0  73 6b 73 20 74 68 65 20  75 73 65 72 20 66 6f 72  |sks the user for|
000032d0  20 61 20 66 69 6c 65 6e  61 6d 65 2e 0d 65 78 69  | a filename..exi|
000032e0  73 74 20 20 20 20 20 20  20 20 20 20 32 38 35 30  |st          2850|
000032f0  20 20 20 20 54 65 6c 6c  73 20 74 68 65 20 75 73  |    Tells the us|
00003300  65 72 20 74 68 61 74 20  61 20 66 69 6c 65 20 61  |er that a file a|
00003310  6c 72 65 61 64 79 20 65  78 69 73 74 73 2e 0d 6e  |lready exists..n|
00003320  72 65 63 6f 72 64 20 20  20 20 20 20 20 20 32 38  |record        28|
00003330  39 30 20 20 20 20 54 65  6c 6c 73 20 74 68 65 20  |90    Tells the |
00003340  75 73 65 72 20 74 68 61  74 20 74 68 65 72 65 20  |user that there |
00003350  61 72 65 20 6e 6f 20 72  65 63 6f 72 64 73 0d 20  |are no records. |
00003360  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00003370  20 20 20 20 20 20 63 75  72 72 65 6e 74 6c 79 20  |      currently |
00003380  69 6e 20 74 68 65 20 66  69 6c 65 2e 0d 67 65 74  |in the file..get|
00003390  62 79 74 65 73 28 47 29  20 20 20 20 32 39 31 30  |bytes(G)    2910|
000033a0  20 20 20 20 47 65 74 73  20 74 68 65 20 63 6f 6e  |    Gets the con|
000033b0  74 65 6e 74 73 20 6f 66  20 61 20 74 77 6f 20 62  |tents of a two b|
000033c0  79 74 65 20 6e 75 6d 62  65 72 20 28 47 20 69 73  |yte number (G is|
000033d0  20 74 68 65 0d 20 20 20  20 20 20 20 20 20 20 20  | the.           |
000033e0  20 20 20 20 20 20 20 20  20 20 20 20 66 69 72 73  |            firs|
000033f0  74 20 62 79 74 65 20 6d  69 6e 75 73 20 27 73 74  |t byte minus 'st|
00003400  61 72 74 61 27 29 2c 20  61 6e 64 20 70 6c 61 63  |arta'), and plac|
00003410  65 73 20 74 68 65 20 72  65 73 75 6c 74 0d 20 20  |es the result.  |
00003420  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00003430  20 20 20 20 20 69 6e 20  27 48 27 2e 0d 70 75 74  |     in 'H'..put|
00003440  62 79 74 65 73 28 47 29  20 20 20 20 32 39 33 30  |bytes(G)    2930|
00003450  20 20 20 20 50 75 74 73  20 74 68 65 20 76 61 6c  |    Puts the val|
00003460  75 65 20 6f 66 20 27 48  27 20 69 6e 20 74 77 6f  |ue of 'H' in two|
00003470  20 6d 65 6d 6f 72 79 20  62 79 74 65 73 0d 20 20  | memory bytes.  |
00003480  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00003490  20 20 20 20 20 73 74 61  72 74 69 6e 67 20 61 74  |     starting at|
000034a0  20 27 47 2b 73 74 61 72  74 61 27 2e 0d 6f 73 63  | 'G+starta'..osc|
000034b0  6c 69 28 41 24 29 20 20  20 20 20 20 32 39 35 30  |li(A$)      2950|
000034c0  20 20 20 20 50 61 73 73  65 73 20 27 41 24 27 20  |    Passes 'A$' |
000034d0  6f 6e 74 6f 20 74 68 65  20 63 6f 6d 6d 61 6e 64  |onto the command|
000034e0  20 6c 69 6e 65 20 69 6e  74 65 72 70 72 65 74 65  | line interprete|
000034f0  72 2e 0d 20 20 20 20 20  20 20 20 20 20 20 20 20  |r..             |
00003500  20 20 20 20 20 20 20 20  20 20 54 68 69 73 20 72  |          This r|
00003510  6f 75 74 69 6e 65 20 77  69 6c 6c 20 77 6f 72 6b  |outine will work|
00003520  20 69 6e 20 42 41 53 49  43 20 31 20 61 6e 64 20  | in BASIC 1 and |
00003530  42 41 53 49 43 20 32 2e  0d 69 6e 70 75 74 72 65  |BASIC 2..inputre|
00003540  63 31 20 20 20 20 20 20  32 39 37 30 20 20 20 20  |c1      2970    |
00003550  49 6e 70 75 74 73 20 61  20 72 65 63 6f 72 64 20  |Inputs a record |
00003560  66 72 6f 6d 20 74 68 65  20 6b 65 79 62 6f 61 72  |from the keyboar|
00003570  64 20 69 6e 74 6f 20 61  20 73 74 72 69 6e 67 2e  |d into a string.|
00003580  0d 0d 49 4d 50 4f 52 54  41 4e 54 20 56 41 52 49  |..IMPORTANT VARI|
00003590  41 42 4c 45 53 20 44 45  53 43 52 49 50 54 49 4f  |ABLES DESCRIPTIO|
000035a0  4e 0d 0d 41 25 2c 42 25  2c 43 25 2c 44 25 2c 45  |N..A%,B%,C%,D%,E|
000035b0  25 2c 46 25 2c 47 25 2c  58 25 2c 59 25 20 20 55  |%,F%,G%,X%,Y%  U|
000035c0  53 45 44 20 49 4e 20 56  41 52 49 4f 55 53 20 4c  |SED IN VARIOUS L|
000035d0  4f 4f 50 53 2e 0d 41 2c  42 2c 43 2c 44 2c 45 2c  |OOPS..A,B,C,D,E,|
000035e0  46 2c 47 2c 48 2c 49 2c  4a 2c 4b 20 20 20 20 20  |F,G,H,I,J,K     |
000035f0  20 20 55 53 45 44 20 49  4e 20 56 41 52 49 4f 55  |  USED IN VARIOU|
00003600  53 20 4c 4f 4f 50 53 2e  0d 66 6c 61 67 20 20 20  |S LOOPS..flag   |
00003610  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00003620  20 20 20 20 20 55 73 65  64 20 74 6f 20 66 6c 61  |     Used to fla|
00003630  67 20 63 65 72 74 61 69  6e 20 65 76 65 6e 74 73  |g certain events|
00003640  2e 0d 66 6c 61 67 32 20  20 20 20 20 20 20 20 20  |..flag2         |
00003650  20 20 20 20 20 20 20 20  20 20 20 20 20 20 55 73  |              Us|
00003660  65 64 20 74 6f 20 66 6c  61 67 20 63 65 72 74 61  |ed to flag certa|
00003670  69 6e 20 65 76 65 6e 74  73 2e 0d 72 65 63 6f 72  |in events..recor|
00003680  64 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |d               |
00003690  20 20 20 20 20 20 20 48  6f 6c 64 73 20 72 65 63  |       Holds rec|
000036a0  6f 72 64 20 6e 75 6d 62  65 72 20 74 68 61 74 20  |ord number that |
000036b0  69 73 20 63 75 72 72 65  6e 74 6c 79 20 62 65 69  |is currently bei|
000036c0  6e 67 0d 20 20 20 20 20  20 20 20 20 20 20 20 20  |ng.             |
000036d0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 64  |               d|
000036e0  69 73 70 6c 61 79 65 64  2e 0d 73 73 20 20 20 20  |isplayed..ss    |
000036f0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00003700  20 20 20 20 20 20 41 20  66 6c 61 67 20 66 6f 72  |      A flag for|
00003710  20 50 52 4f 43 45 44 55  52 45 20 27 73 75 72 65  | PROCEDURE 'sure|
00003720  27 0d 73 74 61 72 74 61  20 20 20 20 20 20 20 20  |'.starta        |
00003730  20 20 20 20 20 20 20 20  20 20 20 20 20 20 50 6f  |              Po|
00003740  69 6e 74 73 20 61 74 20  73 74 61 72 74 20 6f 66  |ints at start of|
00003750  20 6d 65 6d 6f 72 79 20  66 6f 72 20 74 68 65 20  | memory for the |
00003760  66 69 6c 65 2e 0d 41 24  2c 42 24 2c 43 24 20 20  |file..A$,B$,C$  |
00003770  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00003780  20 20 55 73 65 64 20 66  6f 72 20 76 61 72 69 6f  |  Used for vario|
00003790  75 73 20 73 74 72 69 6e  67 20 68 61 6e 64 6c 69  |us string handli|
000037a0  6e 67 20 72 6f 75 74 69  6e 65 73 2e 0d 66 69 6c  |ng routines..fil|
000037b0  65 24 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |e$              |
000037c0  20 20 20 20 20 20 20 20  20 48 6f 6c 64 73 20 6c  |         Holds l|
000037d0  61 73 74 20 66 69 6c 65  6e 61 6d 65 20 65 6e 74  |ast filename ent|
000037e0  65 72 65 64 2e 0d 66 24  28 31 36 29 2c 6c 65 28  |ered..f$(16),le(|
000037f0  31 36 29 2c 6c 65 6e 28  31 36 29 20 20 20 20 20  |16),len(16)     |
00003800  20 20 55 73 65 64 20 74  6f 20 68 6f 6c 64 20 61  |  Used to hold a|
00003810  20 72 65 63 6f 72 64 20  61 73 20 61 20 73 74 72  | record as a str|
00003820  69 6e 67 2e 0d 0d 46 49  4c 45 20 46 4f 52 4d 41  |ing...FILE FORMA|
00003830  54 20 3a 0d 0d 54 68 65  20 72 65 63 6f 72 64 73  |T :..The records|
00003840  2c 20 66 69 65 6c 64 20  74 69 74 6c 65 73 20 61  |, field titles a|
00003850  6e 64 20 66 69 65 6c 64  20 6c 65 6e 67 74 68 73  |nd field lengths|
00003860  20 61 72 65 20 61 6c 6c  20 6b 65 70 74 20 69 6e  | are all kept in|
00003870  20 6d 65 6d 6f 72 79 20  75 70 0d 61 62 6f 76 65  | memory up.above|
00003880  20 74 68 65 20 42 41 53  49 43 20 70 72 6f 67 72  | the BASIC progr|
00003890  61 6d 2c 20 61 6e 64 20  61 72 65 20 64 75 6d 70  |am, and are dump|
000038a0  65 64 20 64 69 72 65 63  74 6c 79 20 74 68 65 72  |ed directly ther|
000038b0  65 20 75 73 69 6e 67 20  69 6e 64 69 72 65 63 74  |e using indirect|
000038c0  69 6f 6e 0d 6f 70 65 72  61 74 6f 72 73 2e 20 54  |ion.operators. T|
000038d0  68 65 20 72 65 61 73 6f  6e 20 66 6f 72 20 74 68  |he reason for th|
000038e0  69 73 20 69 73 20 6d 61  69 6e 6c 79 20 66 6f 72  |is is mainly for|
000038f0  20 6d 65 6d 6f 72 79 20  73 61 76 69 6e 67 20 62  | memory saving b|
00003900  65 63 61 75 73 65 0d 61  6c 74 68 6f 75 67 68 20  |ecause.although |
00003910  73 74 72 69 6e 67 20 61  72 72 61 79 73 20 61 72  |string arrays ar|
00003920  65 20 76 65 72 79 20 6e  69 63 65 20 61 6e 64 20  |e very nice and |
00003930  65 61 73 79 20 74 6f 20  75 73 65 2c 20 74 68 65  |easy to use, the|
00003940  79 20 74 65 6e 64 20 74  6f 20 74 61 6b 65 20 75  |y tend to take u|
00003950  70 0d 61 20 6c 6f 74 20  6f 66 20 6d 65 6d 6f 72  |p.a lot of memor|
00003960  79 2c 20 77 68 69 63 68  20 69 73 20 76 65 72 79  |y, which is very|
00003970  20 69 6d 70 6f 72 74 61  6e 74 20 77 68 65 6e 20  | important when |
00003980  61 6c 6c 20 74 68 65 20  72 65 63 6f 72 64 73 20  |all the records |
00003990  61 72 65 20 69 6e 0d 6d  65 6d 6f 72 79 20 61 74  |are in.memory at|
000039a0  20 6f 6e 63 65 2e 0d 0d  54 68 65 20 61 63 74 75  | once...The actu|
000039b0  61 6c 20 63 6f 6e 74 65  6e 74 73 20 6f 66 20 74  |al contents of t|
000039c0  68 65 20 66 69 6c 65 20  73 74 61 72 74 20 61 74  |he file start at|
000039d0  20 74 68 65 20 6d 65 6d  6f 72 79 20 6c 6f 63 61  | the memory loca|
000039e0  74 69 6f 6e 20 73 74 6f  72 65 64 20 69 6e 0d 27  |tion stored in.'|
000039f0  73 74 61 72 74 61 27 2c  20 77 68 65 72 65 20 74  |starta', where t|
00003a00  68 65 20 70 61 73 73 77  6f 72 64 2c 20 66 69 65  |he password, fie|
00003a10  6c 64 20 74 69 74 6c 65  73 2c 20 65 74 63 2e 20  |ld titles, etc. |
00003a20  61 72 65 20 6b 65 70 74  2e 20 41 66 74 65 72 20  |are kept. After |
00003a30  74 68 69 73 0d 63 6f 6d  65 73 20 74 68 65 20 72  |this.comes the r|
00003a40  65 63 6f 72 64 73 20 74  68 65 6d 73 65 6c 76 65  |ecords themselve|
00003a50  73 20 77 68 69 63 68 20  66 6f 6c 6c 6f 77 20 6f  |s which follow o|
00003a60  6e 20 6f 6e 65 20 61 66  74 65 72 20 74 68 65 20  |n one after the |
00003a70  6f 74 68 65 72 2e 0d 0d  4d 45 4d 4f 52 59 20 55  |other...MEMORY U|
00003a80  53 41 47 45 20 3a 0d 0d  44 41 54 41 42 41 53 45  |SAGE :..DATABASE|
00003a90  20 69 73 20 61 20 31 30  6b 20 42 41 53 49 43 20  | is a 10k BASIC |
00003aa0  70 72 6f 67 72 61 6d 20  77 68 69 63 68 20 63 61  |program which ca|
00003ab0  6e 20 62 65 20 72 75 6e  20 61 74 20 61 6e 79 20  |n be run at any |
00003ac0  50 41 47 45 20 61 64 64  72 65 73 73 20 6c 65 73  |PAGE address les|
00003ad0  73 0d 74 68 61 6e 20 6f  72 20 65 71 75 61 6c 20  |s.than or equal |
00003ae0  74 6f 20 26 31 39 30 30  2e 20 54 68 65 20 64 61  |to &1900. The da|
00003af0  74 61 20 66 69 6c 65 20  72 65 73 69 64 65 73 20  |ta file resides |
00003b00  61 74 20 26 34 35 30 30  2c 20 77 68 69 63 68 20  |at &4500, which |
00003b10  69 73 20 77 68 61 74 20  74 68 65 0d 70 72 6f 67  |is what the.prog|
00003b20  72 61 6d 20 73 65 74 73  20 48 49 4d 45 4d 20 74  |ram sets HIMEM t|
00003b30  6f 2c 20 73 6f 20 61 73  20 74 6f 20 70 72 65 76  |o, so as to prev|
00003b40  65 6e 74 20 42 41 53 49  43 20 72 75 6e 6e 69 6e  |ent BASIC runnin|
00003b50  67 20 69 6e 74 6f 20 74  68 65 20 64 61 74 61 20  |g into the data |
00003b60  66 69 6c 65 2e 0d 0d 54  68 65 20 54 4f 50 20 6f  |file...The TOP o|
00003b70  66 20 74 68 65 20 70 72  6f 67 72 61 6d 20 69 73  |f the program is|
00003b80  20 61 74 20 61 62 6f 75  74 20 26 34 30 30 30 2c  | at about &4000,|
00003b90  20 77 68 69 63 68 20 6c  65 61 76 65 73 20 28 48  | which leaves (H|
00003ba0  49 4d 45 4d 2d 54 4f 50  29 3d 31 6b 0d 62 79 74  |IMEM-TOP)=1k.byt|
00003bb0  65 73 20 66 6f 72 20 76  61 72 69 61 62 6c 65 20  |es for variable |
00003bc0  73 74 6f 72 61 67 65 2e  20 54 68 65 20 74 6f 70  |storage. The top|
00003bd0  20 6f 66 20 75 73 65 72  20 6d 65 6d 6f 72 79 20  | of user memory |
00003be0  69 73 20 26 37 43 30 30  2c 20 73 6f 20 74 68 69  |is &7C00, so thi|
00003bf0  73 0d 6c 65 61 76 65 73  20 28 26 37 43 30 30 2d  |s.leaves (&7C00-|
00003c00  26 34 35 30 30 29 3d 31  34 6b 20 62 79 74 65 73  |&4500)=14k bytes|
00003c10  20 6f 66 20 6d 65 6d 6f  72 79 20 66 72 65 65 20  | of memory free |
00003c20  66 6f 72 20 74 68 65 20  64 61 74 61 20 66 69 6c  |for the data fil|
00003c30  65 2c 20 77 68 69 63 68  0d 6d 65 61 6e 73 20 74  |e, which.means t|
00003c40  68 61 74 20 74 79 70 69  63 61 6c 6c 79 20 61 62  |hat typically ab|
00003c50  6f 75 74 20 32 30 30 20  72 65 63 6f 72 64 73 20  |out 200 records |
00003c60  6f 66 20 35 20 66 69 65  6c 64 73 20 6f 66 20 31  |of 5 fields of 1|
00003c70  30 20 63 68 61 72 61 63  74 65 72 73 20 70 65 72  |0 characters per|
00003c80  0d 66 69 65 6c 64 20 63  61 6e 20 62 65 20 65 6e  |.field can be en|
00003c90  74 65 72 65 64 2c 20 77  68 69 63 68 20 69 73 20  |tered, which is |
00003ca0  71 75 69 74 65 20 61 20  75 73 65 66 75 6c 20 73  |quite a useful s|
00003cb0  69 7a 65 2e 0d 0d 4d 45  4d 4f 52 59 20 55 53 41  |ize...MEMORY USA|
00003cc0  47 45 20 53 55 4d 4d 41  52 59 20 3a 0d 0d 20 20  |GE SUMMARY :..  |
00003cd0  20 20 2e 20 20 20 20 20  20 20 20 20 20 20 20 20  |  .             |
00003ce0  20 20 20 20 20 20 20 2e  0d 20 20 20 20 2e 20 20  |       ..    .  |
00003cf0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00003d00  20 20 2e 0d 20 20 20 20  2e 20 20 20 20 20 20 4d  |  ..    .      M|
00003d10  4f 44 45 20 37 20 20 20  20 20 20 20 20 2e 0d 20  |ODE 7        .. |
00003d20  20 20 20 2e 20 20 20 20  20 20 20 20 20 20 20 20  |   .            |
00003d30  20 20 20 20 20 20 20 20  2e 0d 20 20 20 20 5f 5f  |        ..    __|
00003d40  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
00003d50  5f 5f 5f 5f 20 26 37 43  30 30 0d 20 20 20 20 2e  |____ &7C00.    .|
00003d60  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00003d70  20 20 20 20 2e 0d 31 34  6b 20 2e 20 20 20 20 20  |    ..14k .     |
00003d80  44 41 54 41 20 46 49 4c  45 20 20 20 20 20 20 2e  |DATA FILE      .|
00003d90  0d 20 20 20 20 2e 20 20  20 20 20 20 20 20 20 20  |.    .          |
00003da0  20 20 20 20 20 20 20 20  20 20 2e 0d 20 20 20 20  |          ..    |
00003db0  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
00003dc0  5f 5f 5f 5f 5f 5f 20 48  49 4d 45 4d 20 3d 20 26  |______ HIMEM = &|
00003dd0  34 35 30 30 0d 20 20 20  20 2e 20 20 20 20 20 20  |4500.    .      |
00003de0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 2e 0d  |              ..|
00003df0  20 31 6b 20 2e 20 20 56  41 52 49 41 42 4c 45 20  | 1k .  VARIABLE |
00003e00  53 54 4f 52 41 47 45 20  20 2e 0d 20 20 20 20 2e  |STORAGE  ..    .|
00003e10  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00003e20  20 20 20 20 2e 0d 20 20  20 20 5f 5f 5f 5f 5f 5f  |    ..    ______|
00003e30  5f 5f 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |________________|
00003e40  20 54 4f 50 20 3d 20 26  34 30 30 30 0d 20 20 20  | TOP = &4000.   |
00003e50  20 2e 20 20 20 20 20 20  20 20 20 20 20 20 20 20  | .              |
00003e60  20 20 20 20 20 20 2e 0d  31 30 6b 20 2e 20 20 20  |      ..10k .   |
00003e70  42 41 53 49 43 20 50 52  4f 47 52 41 4d 20 20 20  |BASIC PROGRAM   |
00003e80  20 2e 0d 20 20 20 20 2e  20 20 20 20 20 20 20 20  | ..    .        |
00003e90  20 20 20 20 20 20 20 20  20 20 20 20 2e 0d 20 20  |            ..  |
00003ea0  20 20 5f 5f 5f 5f 5f 5f  5f 5f 5f 5f 5f 5f 5f 5f  |  ______________|
00003eb0  5f 5f 5f 5f 5f 5f 5f 5f  20 50 41 47 45 20 3d 20  |________ PAGE = |
00003ec0  26 31 39 30 30 0d 20 20  20 20 2e 20 20 20 20 20  |&1900.    .     |
00003ed0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 2e  |               .|
00003ee0  0d 20 20 20 20 2e 20 20  20 20 20 20 20 20 20 20  |.    .          |
00003ef0  20 20 20 20 20 20 20 20  20 20 2e 0d 20 0d 20 0d  |          .. . .|
00003f00  54 41 50 45 20 55 53 45  52 53 20 3a 0d 0d 44 41  |TAPE USERS :..DA|
00003f10  54 41 42 41 53 45 20 69  73 20 71 75 69 74 65 20  |TABASE is quite |
00003f20  73 75 69 74 65 64 20 74  6f 20 74 61 70 65 20 75  |suited to tape u|
00003f30  73 65 72 73 20 64 75 65  20 74 6f 20 69 74 20 6b  |sers due to it k|
00003f40  65 65 70 69 6e 67 20 61  6c 6c 20 74 68 65 20 72  |eeping all the r|
00003f50  65 63 6f 72 64 73 0d 69  6e 20 6d 65 6d 6f 72 79  |ecords.in memory|
00003f60  20 61 74 20 6f 6e 63 65  2c 20 61 6e 64 20 73 6f  | at once, and so|
00003f70  20 74 68 65 79 20 6f 6e  6c 79 20 68 61 76 65 20  | they only have |
00003f80  74 6f 20 62 65 20 6c 6f  61 64 65 64 20 6f 6e 63  |to be loaded onc|
00003f90  65 2c 20 61 66 74 65 72  77 68 69 63 68 20 61 6c  |e, afterwhich al|
00003fa0  6c 0d 70 72 6f 63 65 73  73 69 6e 67 20 63 61 6e  |l.processing can|
00003fb0  20 74 61 6b 65 20 70 6c  61 63 65 20 69 6e 20 63  | take place in c|
00003fc0  6f 6d 70 75 74 65 72 20  6d 65 6d 6f 72 79 2e 20  |omputer memory. |
00003fd0  42 79 20 73 61 76 69 6e  67 20 61 6e 64 20 6c 6f  |By saving and lo|
00003fe0  61 64 69 6e 67 20 74 68  65 0d 64 61 74 61 20 75  |ading the.data u|
00003ff0  73 69 6e 67 20 2a 53 41  56 45 20 61 6e 64 20 2a  |sing *SAVE and *|
00004000  4c 4f 41 44 20 61 6c 73  6f 20 6d 65 61 6e 73 20  |LOAD also means |
00004010  74 68 61 74 20 74 68 65  20 64 61 74 61 20 63 61  |that the data ca|
00004020  6e 20 62 65 20 73 61 76  65 64 2f 20 6c 6f 61 64  |n be saved/ load|
00004030  65 64 0d 6d 75 63 68 20  6d 6f 72 65 20 71 75 69  |ed.much more qui|
00004040  63 6b 6c 79 20 74 68 61  6e 20 69 66 20 42 41 53  |ckly than if BAS|
00004050  49 43 27 73 20 46 49 4c  45 20 63 6f 6d 6d 6d 61  |IC's FILE commma|
00004060  6e 64 73 20 28 73 75 63  68 20 61 73 20 50 52 49  |nds (such as PRI|
00004070  4e 54 23 2c 20 50 54 52  23 0d 65 74 63 29 20 77  |NT#, PTR#.etc) w|
00004080  65 72 65 20 75 73 65 64  2e 0d 0d 45 46 46 49 43  |ere used...EFFIC|
00004090  49 45 4e 54 20 55 53 45  20 4f 46 20 44 41 54 41  |IENT USE OF DATA|
000040a0  42 41 53 45 20 3a 0d 0d  57 68 65 6e 20 75 73 69  |BASE :..When usi|
000040b0  6e 67 20 44 41 54 41 42  41 53 45 20 74 68 65 72  |ng DATABASE ther|
000040c0  65 20 61 72 65 20 61 20  66 65 77 20 6c 69 74 74  |e are a few litt|
000040d0  6c 65 20 74 69 70 73 20  74 68 61 74 20 63 61 6e  |le tips that can|
000040e0  20 6d 61 6b 65 20 69 74  20 65 61 73 69 65 72 0d  | make it easier.|
000040f0  61 6e 64 20 6d 6f 72 65  20 65 66 66 69 63 69 65  |and more efficie|
00004100  6e 74 20 74 6f 20 75 73  65 2e 0d 0d 57 68 65 6e  |nt to use...When|
00004110  20 64 65 66 69 6e 69 6e  67 20 61 20 4e 45 57 20  | defining a NEW |
00004120  72 65 63 6f 72 64 2c 20  74 68 69 6e 6b 20 63 61  |record, think ca|
00004130  72 65 66 75 6c 6c 79 20  61 62 6f 75 74 20 68 6f  |refully about ho|
00004140  77 20 74 6f 20 64 65 66  69 6e 65 20 69 74 20 62  |w to define it b|
00004150  65 63 61 75 73 65 0d 6f  6e 63 65 20 73 65 74 20  |ecause.once set |
00004160  6f 75 74 2c 20 69 74 20  63 61 6e 6e 6f 74 20 62  |out, it cannot b|
00004170  65 20 63 68 61 6e 67 65  64 20 77 68 69 63 68 20  |e changed which |
00004180  6d 65 61 6e 73 20 74 68  61 74 20 69 66 20 79 6f  |means that if yo|
00004190  75 20 68 61 76 65 20 65  6e 74 65 72 65 64 0d 73  |u have entered.s|
000041a0  61 79 20 31 30 30 20 72  65 63 6f 72 64 73 2c 20  |ay 100 records, |
000041b0  61 6e 64 20 74 68 65 6e  20 66 69 6e 64 20 6f 75  |and then find ou|
000041c0  74 20 74 68 61 74 20 79  6f 75 20 6e 65 65 64 20  |t that you need |
000041d0  61 6e 6f 74 68 65 72 20  66 69 65 6c 64 20 66 6f  |another field fo|
000041e0  72 20 63 65 72 74 61 69  6e 0d 65 6e 74 72 69 65  |r certain.entrie|
000041f0  73 2c 20 79 6f 75 20 77  69 6c 6c 20 68 61 76 65  |s, you will have|
00004200  20 74 6f 20 74 79 70 65  20 74 68 65 20 77 68 6f  | to type the who|
00004210  6c 65 20 66 69 6c 65 20  69 6e 20 61 67 61 69 6e  |le file in again|
00004220  21 20 42 65 63 61 75 73  65 20 6f 66 20 74 68 69  |! Because of thi|
00004230  73 2c 0d 69 74 20 69 73  20 61 6c 73 6f 20 61 20  |s,.it is also a |
00004240  67 6f 6f 64 20 69 64 65  61 20 74 6f 20 68 61 76  |good idea to hav|
00004250  65 20 61 20 66 69 65 6c  64 20 63 61 6c 6c 65 64  |e a field called|
00004260  20 27 41 4e 59 54 48 49  4e 47 20 45 4c 53 45 27  | 'ANYTHING ELSE'|
00004270  20 6f 72 0d 27 4d 49 53  43 45 4c 4c 41 4e 45 4f  | or.'MISCELLANEO|
00004280  55 53 27 2c 20 66 6f 72  20 72 65 63 6f 72 64 73  |US', for records|
00004290  20 74 68 61 74 20 6d 61  79 20 68 61 76 65 20 75  | that may have u|
000042a0  6e 75 73 75 61 6c 20 65  6e 74 72 69 65 73 2e 0d  |nusual entries..|
000042b0  0d 57 68 65 6e 20 65 6e  74 65 72 69 6e 67 20 79  |.When entering y|
000042c0  6f 75 72 20 66 69 65 6c  64 20 74 69 74 6c 65 73  |our field titles|
000042d0  2c 20 79 6f 75 20 63 61  6e 20 73 74 69 6c 6c 20  |, you can still |
000042e0  75 73 65 20 74 68 65 20  66 75 6e 63 74 69 6f 6e  |use the function|
000042f0  20 6b 65 79 73 20 74 6f  0d 67 65 74 20 4d 4f 44  | keys to.get MOD|
00004300  45 20 37 20 63 6f 6c 6f  75 72 65 64 20 63 68 61  |E 7 coloured cha|
00004310  72 61 63 74 65 72 73 2c  20 77 68 69 63 68 20 65  |racters, which e|
00004320  6e 61 62 6c 65 73 20 79  6f 75 20 74 6f 20 73 65  |nables you to se|
00004330  74 20 75 70 20 61 20 66  69 6c 65 20 74 68 61 74  |t up a file that|
00004340  0d 73 74 61 6e 64 73 20  6f 75 74 20 77 65 6c 6c  |.stands out well|
00004350  2c 20 6d 61 6b 69 6e 67  20 69 74 20 65 61 73 69  |, making it easi|
00004360  65 72 20 61 6e 64 20 6d  6f 72 65 20 63 6f 6c 6f  |er and more colo|
00004370  75 72 66 75 6c 20 74 6f  20 75 73 65 20 28 61 6c  |urful to use (al|
00004380  74 68 6f 75 67 68 20 79  6f 75 0d 6d 61 79 20 67  |though you.may g|
00004390  65 74 20 66 75 6e 6e 79  20 6e 6f 69 73 65 73 20  |et funny noises |
000043a0  63 6f 6d 69 6e 67 20 66  72 6f 6d 20 79 6f 75 72  |coming from your|
000043b0  20 70 72 69 6e 74 65 72  20 77 68 65 6e 20 70 72  | printer when pr|
000043c0  69 6e 74 69 6e 67 20 61  20 72 65 63 6f 72 64 21  |inting a record!|
000043d0  29 2e 0d 0d 49 66 20 79  6f 75 20 68 61 76 65 20  |)...If you have |
000043e0  6e 6f 20 6e 65 65 64 20  66 6f 72 20 73 65 63 75  |no need for secu|
000043f0  72 69 74 79 20 70 72 65  63 61 75 74 69 6f 6e 73  |rity precautions|
00004400  2c 20 75 73 65 20 74 68  65 20 70 61 73 73 77 6f  |, use the passwo|
00004410  72 64 20 27 44 41 54 41  42 41 53 45 27 0d 66 6f  |rd 'DATABASE'.fo|
00004420  72 20 79 6f 75 72 20 66  69 6c 65 2c 20 61 73 20  |r your file, as |
00004430  74 68 69 73 20 69 73 20  73 75 67 67 65 73 74 65  |this is suggeste|
00004440  64 20 62 79 20 74 68 65  20 70 72 6f 67 72 61 6d  |d by the program|
00004450  20 77 68 69 63 68 20 6d  61 6b 65 73 20 69 74 0d  | which makes it.|
00004460  69 6d 70 6f 73 73 69 62  6c 65 20 66 6f 72 20 79  |impossible for y|
00004470  6f 75 20 74 6f 20 66 6f  72 67 65 74 21 0d 0d 41  |ou to forget!..A|
00004480  73 20 61 20 66 69 6e 61  6c 6c 79 20 6e 6f 74 65  |s a finally note|
00004490  2c 20 41 4c 57 41 59 53  20 4b 45 45 50 20 43 4f  |, ALWAYS KEEP CO|
000044a0  50 49 45 53 20 4f 46 20  59 4f 55 52 20 44 41 54  |PIES OF YOUR DAT|
000044b0  41 20 46 49 4c 45 53 2c  20 62 65 63 61 75 73 65  |A FILES, because|
000044c0  20 69 66 20 79 6f 75 0d  64 6f 6e 27 74 20 79 6f  | if you.don't yo|
000044d0  75 27 6c 6c 20 68 61 76  65 20 74 6f 20 6c 65 61  |u'll have to lea|
000044e0  72 6e 20 74 68 65 20 68  61 72 64 20 77 61 79 2c  |rn the hard way,|
000044f0  20 73 6f 20 62 65 20 77  61 72 6e 65 64 21 0d 0d  | so be warned!..|
00004500  52 2e 53 2e 41 4e 44 45  52 53 4f 4e 2e 20 4a 41  |R.S.ANDERSON. JA|
00004510  4e 20 31 39 38 37 2e 20  0d                       |N 1987. .|
00004519
25-12-87/DBINFO.m0
25-12-87/DBINFO.m1
25-12-87/DBINFO.m2
25-12-87/DBINFO.m4
25-12-87/DBINFO.m5