The BBC and Master Computer Public Domain Library
MMCutility and GOMMDFS ROM IMAGES
MMCutility and GOMMDFS ROM IMAGES
For GoMMC use on the MASTER 128 micro
Sunday, 20 February 2005
1.ADFS
1.1 INTRODUCTION
The GoMMC card has been a huge development in memory (and other) capabilities
for BBC B and Master 128 micros, in particular. John Kortink has reached a
notable milestone in the history of 8-bit computing. Due credit must be given
to John for his creation, GoMMC.
With the ROM Images, 'MMCutility', 'MMCDFS' and the BASIC and assembly language
program 'FkeyDef' you will see how compatible GoMMC is with standard Master programming
techniques that we have been using. It is this very point that led me to try
out these Rom Images which are, basically, already being used by many others as
they have been available at the
www.8bs.com web site for some time; and this web site is
run by a great gentleman known to a lot of us, Chris Richardson, who, himself,
has made many contributions to 8-bit computing.
I will make the assumption here that your GoMMC unit has at least version
0.620 of the GoMMC updates installed.
Naturally, now, there are new commands to use as well as some good old BASIC
ones so we will learn how compliantly and easily the GoMMC unit will function
with the familiar routine use of the usual BASIC and assembly language programming
that you are accustomed to. I will concentrate bit more on function keys.
The ADFS ROM Image, 'MMCutility' interacts with a Basic program
'FkeyDef'. The latter is the means to program function keys to be used for both
Basic programming and for using and manipulating GoMMC commands, sometimes in
combination. This is very handy in practice. 'MMCutility' stores these f key
definitions via 'FkeyDef'. These need to be retained after hard resets which are
a necessary fact of life with GoMMC use. 'MMCutility' is set to *SRLOAD into
Rom slot 4. If you make the top-most of your disc images your "working" disc
image (not absolutely necessary, mind you), a simple *MMCDISC <ENTER> (or
*MMCD. <ENTER.>) followed by a hard reset will automatically select this first
"work" disc image. It is a good idea to do a *CONFIGURE DIR as this makes the
flow of functions from BOOTING (REMEMBER *OPT 4 3) onwards as easy and as natural
as it normally occurs on a Master without GoMMC. Try the following:-
In the root directory of your work image disc use EDIT to create AND
SAVE a !BOOT file:-
(Version 0.620)
(Version 0.630)
*DIR $
*DIR $
*SRLOAD MMCutility 8000 4Q
*SRLO. MMCutility 8000 4Q
*MMCRESET
Also, please (the obvious) have 'MMCutility' and 'FkeyDef' present in
the root directory.
I should mention that with MMCutility you have a Y2K fix with the
Master's clock, a full listing of all function key assignments by using the
command *KL, *DRIVE <ID> (abbreviation *DR.<id>) for DFS
compatibility, the ADFS *WIPE facility which skips directories, read-only and locked files, etc., and the *PANEL utility
with century correction.
1.2. SETTING-UP YOUR MASTER
You will recall that the DFS ROM, patched and original, has the code for
ROM Image operations such as *SRLOAD and *SRSAVE , etc. Consequently, I have
adopted the routine of using the patched ADFS ROM to be in 'ROM slot 7', the
permanent memory GoMMC 'Rom slot' and for the patched DFS ROM to auto-load into
Rom slot 5, the next available slot and to reside there (at least whilst using 'MMCutility').
In summary, we need firstly to have ADFS set up as follows:-
*MMCCONFIG FSNR 5
*MMCCONFIG FSRM 7
*CONFIGURE FILE 7
(*UNPLUG 13 |IF NOT ALREADY UNPLUGGED.
(*UNPLUG 9 | IF NOT ALREADY UNPLUGGED.
THEN, DO A *MMCRESET
(Version 0.630)
Power-down and then power-up.
Now we have ADFS Permanently
resident in GoMMC's free and permanent Rom slot.
Next, we need to arrange for the
patched DFS ROM to auto-load on every power up thus:-
*MMC.FSNR 4
(*MMCCONFIG
abbreviated)
*MMC.FSRM 5
THEN power-down and then power-up - OR - *MMCRESET IF YOU HAVE VERSION
0.630
I also suggest at this stage that you issue a *MMC. LOPT 1 and *MMC.LTYP
14
In its default state, you will find that 'MMCutility' has arranged for
depression of f key 9 to:-
Issue a VDU14|M *MMCLIST |M. Try it and you will see all your filing
systems, tools and files fully listed with all their information. Scroll down
by pressing the 'SHIFT' key. Remember, that now, you can press 'ESCAPE' if something of interest catches your eye.
Scrolling will stop immediately so you won't lose your place.
A word of caution. Please DO NOT change these ROM Images into EPROMS as
all will fail. There will be loss of capability to write to the tail end of the
ROM image memory where vital data is held over hard and soft resets (saves main
memory too). I have a problem with my ROM cartridges as they will not operate.
I will need to send them to John as there seems to be a small software problem
with the ones that I have tried. That is why I have not addressed EEPROM
patched filing system use.
Now, if you don't like something about my 16 key assignments, ensure you
have 'MMCutility' Activated in ROM bank 4 and CHAIN "FkeyDef`` and just follow the
prompts. That is all there is to it. You may learn how simple the program is
and how it operates by listing it.
1.3.The 'MMCutility' commands.
In essence, they are compatible with the GoMMC unit and offer a further
enhanced century, date and *time function, a full on screen listing of all the
function key definitions at once (*KL). The function keys are fully
re-programmable with the aid of the simple BASIC program, 'FkeyDef', which is
usable with both DFS and ADFS filing systems. The 'Panel' utility on the
'Welcome Disc' is incorporated into 'MMCutility'. *reset (*res) will call it. I
have organised the code to give the correct century.
There is an ADFS *DRIVE <id> command for DFS compatibility, and a
*WIPE command which automatically skips over directories, protected filenames,
locked files, etc., as I have demonstrated previously (see
www.8bs.com ).
The code for 'MMCutility' stretches from &8000 to &8748. The
translocated and amended 'Panel' code stretches from &8FCD to &A7E9 and
*RES will initiate it. The function key assignments are held from &BB9D,
with some supporting code, to &BFFF. So there is room for more code for more
routines.
2. DFS
DFS needs the ROM Image 'GOMMDFS'. In DFS, there is no need for *WIPE or
*DRIVE. All of the other facilities of 'MMCutility' are incorporated into 'GOMMDFS'.
It is worthwhile repeating the obvious.
For DFS, use only 'GOMMDFS' and for ADFS use 'MMCutility.
For DFS there is no set up needed but you need to have the 'patched' DFS
ROM Image in Rom/RAM bank 7 or 5 as 'GOMMDFS" needs bank 4 for f key up-dates,
if required, via 'FkeyDef' just as 'MMCutility 'does.
I would encourage you to issue a *configure file 7 - or 5 [*CO.File 7] -wherever the DFS patch
is.
I would recommend a similar !BOOT files, *MMC.LOPT 1 AND *MMC. LTYP14 as
in the ADFS section above.
3. Copyright, problems,
legalities.
I reserve the copyright for all the software that I develop and, to the
best of my knowledge they are error free except for any minor errors as
reported on the
www.8bs.com website. I have
been testing these programs for months (except for the most recent developments
to GoMMC)* without any problems occurring whatsoever, except with some minor
ROM clashes as mentioned above. They are offered to you on an as is basis and I
accept no responsibility whatsoever for any damage that may accompany their use
or misuse.
You are welcome to use them free of charge for private use but you must
advise me of the time and place of any public use where a suitable fee may be
to be negotiated.
Please let me know of any problems that you experience quickly.
I may be contacted at:-
rafg1@bigpond.net.au email
PO BOX 322
postal
ELIZABETH SA 5112
AUSTRALIA
Tel +61 8 82556909 phone
DR RAFFAELE (Raf) GIACCIO
P.S. *MMCRESET, (Version 0.630), thus far, has proved the
'equivalent' of doing a hard reset manually. If in doubt, do a hard reset manually.