P/GMENU rev 5.00 By 3TR (Mike Fleming)
----------------
This program was written for the
specific purpose of running games
that had been transfered from tape to
an ADFS disk, in much the same way as
the rom ADT does with *MENU. It was
requested sometime back in the
WANTED column of Solinet by 'H'
Leavers, for a collegue who didn't have
access to the rom.
With several suggestions of ways to
improve the original program, and
requests to incorporate other
functions, we have rev 5.00 !!
The program is written in BASIC,
with a small machine code routine,
that is used to download any program if
it has to reside below PAGE [there used
to be several magazine routines
published, such as GO].
Because the program was planned to be
used only on games discs, which tended
to consist of numerous files per
game,(and only the starting file should
appear on the menu), a masking
strategy was adopted. If any file
contains a lower case letter, then the
file will NOT be listed [but see
customisation section]. Thus you may
need to rename a file if it is not to
be listed (eg. *RENAME MIKEF mikef
and the file MIKEF will not appear any
longer in the menu).
The program determines whether the
program is running in DFS or ADFS,
and what the currently selected drive
is (0-3 for DFS, 0-1 for ADFS). The
non-masked files are then listed in
GREEN, with DIRECTORIES listed in RED.
Either can be selected, by
entering the associated letter [see
customisation later]. If a directory
is selected, then all the files and
subdirectories within this are listed,
along with an option to return to the
parent (ie previous level) directory.
The drives can be changed, along with
the filing system, by using the
function keys and shift, BUT ENSURE
DISC IS LOADED IN CORRECT DRIVE BEFORE
MAKING SELECTION.
I have tried to keep the
conventions as much in line with
ADT as possible - it uses the execution
address to determine if the program is
in BASIC or ASSEMBLER, or if the file
should be *EXEC'ed. The load address is
used to determine were the program
should run.
CUSTOMISATION.
--------------
The program can be changed thus:
1) If files containing lower case
letters are NOT to be ignored, delete
line: IF ignore% THEN ....
2) If you wish different
letters/symbols to be used for
selection, change line:
option$="ABCDEFGHIJKLMNOPQRSTUVWXYZabcd
efghijklmnopqrstu" to your own choice
of 47 unique symbols specified.
3) The program was written for a
Master-128, but should work for any BBC
machine, if changes are made for:
A) correct value of PAGE
being used (&E00 for Master, &1900 for
BBC-B) as referenced for Machine code
in DEFPROCwhat`next, and the EQUS
statement in the machine code routine.
B) How to load a sideways
rom image, Master uses '*SRLOAD ????
8000 n' other machines use different
methods (this may not be applicable
if rom images are not going to be
selected)
Thanks once again to 'H' Levers
for his help in testing this program,
and for the suggested improvements. It
was an interesting request for
help, from which I learnt a lot when
writing the program, and gained the
pleasure with the final result.
If there are any other BASIC
programs/routines that anybody
requires, especially if disc
orientated, why not make a request. I
can't guarantee that I'll be able to
help, but I'll try if pressure of work
permits.
The moral of all this............
IF YOU DON'T ASK, YOU DON'T GET !!!.
Mike Fleming (Solinet member #100/
8BS member 3TR) (15/8/93).