×   Main Menu ALL The 8BS News Manuals (New menu) Links Worth a Look Tools Disc and Basic Webring Site Map 8BS Guestbook Old Guest Book Me The Barnsley Rovers   
8-Bit Software

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.