GoSDC Guide



Overview

GoSDC is a storage system for the Acorn BBC model B, BBC Master and Electron.

It allows storage of practically any number of floppy discs, harddiscs and tapes, all on one flash card (MMC, SD or SDHC). Once stored, any one of them may be selected by name (with a *-command), and used just like before (only much faster and quieter). GoSDC is completely self-contained, and can make do with a 'bare' machine (without any floppy or harddisc hardware or software).

GoSDC is powerful, and there is a lot to tell. Perhaps too much to do it all in one go. Therefore, this manual is split into two parts.

The 'Basic use' section attempts to describe basic use of GoSDC only, and hold back on details. If you're a first time user of GoSDC, or only looking for basic information, read this section.

The 'Advanced use' section provides systematic, detailed descriptions of all (other) aspects of GoSDC. It's there if you're ready for more, or need to know more details.


Basic use

Overview

Basic use of GoSDC involves :

1) Installation
2) Putting a disc on the flash card
3) Running a patched filing system
4) Use the disc via the filing system

Installation

Step 1 : Hardware installation

Follow the instructions in the Installation section of this manual.

When you've finished hardware installation, a brief checkup can be performed :

So far so good ! Now, if you have a flash card :

This should now show the type and capacity of the flash card. If the flash card is already (GoSDC-)formatted, and you enter '*SDCArea', it should also show the free and used space, and the number of objects.

Note that high capacity flash cards are divided into one or more 'areas', numbered 1 through 8. Refer to the discussion of '*SDCArea' for details. In the Basic section, we will only deal with 'Area 1' (the ubiquitous and therefore default area).

Note that powering down before inserting or removing the flash card is not strictly necessary. But if you don't, always press CTRL-BREAK afterwards.

Step 2 : Software installation

Follow the instructions in the Software section of this manual.

Step 3 : Get to know the GoSDC tools

The GoSDC tools are an integral part of using GoSDC. You don't need all the details yet, but you do need to know how to run them.

The 'native' GoSDC tools (refer to 'Tools : 8-bit environment' for details) run on your BBC or Electron and are stored on GoSDC itself. To run them, simply prefix their names with '*SDCTool' (e.g. enter '*SDCTool SDCHelp'). Note the presence of SDCHelp, which can help you formulate command lines for a number of other GoSDC tools, and explore their capabilities.

The only 'foreign' GoSDC tool (refer to 'Tools : GoSDCio' for details) runs on PCs, as a command-line executable. It accepts commands that act mostly like the corresponding 'native' tools, but has many more options.

Step 4 : Format your flash card

Before GoSDC can use your flash card, you must format it with SDCFO. If you bought the flash card together with GoSDC, it will already be formatted, so you can skip ahead to step 4. Otherwise :

Power down, plug the flash card into GoSDC, and power up. Then enter '*SDCTool SDCFO'.

You should see something similar to :

Formatting flash card ... done
Verifying format ... ok
Please hard-reset your machine now

Do so, e.g. press CTRL-BREAK.

Step 5 : Verify that your flash card works ok

Enter '*SDCArea' and verify the logic of what it displays (8704 bytes will be 'used', the other values follow from that and the flash card's capacity).

If it says 'Selected area not formatted', you have not (successfully) formatted your flash card, and your flash card may be incompatible with GoSDC (but this is exceedingly rare, so do try step 4 again first, then if it keeps failing, contact me).

Putting a disc on the flash card

Discs (floppies, harddiscs) can be put on the flash card by creating new discs or adding existing ones. Creating is introduced here. Adding is accomplished by using either SDCADI or GoSDCio's 'ADD DISC' command. Both real floppies and harddiscs, or images thereof (in files) can be added.

In the following, feel free to replace 'my_disc' with any other name you choose.

To create a generic, double sided, double density DFS disc, enter, e.g. :

*SDCTool SDCNEW D 400K my_disc

To create a generic, double sided, double density ADFS disc, enter, e.g. :

*SDCTool SDCNEW A 640K my_disc

Or, if you want to go 'big', create an ADFS harddisc, and enter, e.g. :

*SDCTool SDCNEW A 100M my_disc

Running a patched filing system

A patched filing system (an original filing system patched for GoSDC) is needed to access the discs on the flash card. Accessing DFS discs requires a DFS type filing system, accessing ADFS discs requires an ADFS type filing system. DFS and ADFS can be used at the same time.

The filing systems that GoSDC supports (i.e. provides patches for) are listed under 'Supported filing systems' in the Advanced section of this manual.

To obtain the filing system ROM image (containing either an original or patched version of the filing system), go to this directory.

The first character of the file name, 'O' or 'P', indicates original or patched respectively. The second, 'D' or 'A', indicates 'DFS' or 'ADFS' respectively. The number that ends the file name indicates the version of the filing system. E.g. 'PAFS130.BIN' is the patched version of Acorn ADFS 1.30.

You can run a patched filing system in two ways. Via sideways ROM, or via sideways RAM.

1) Via sideways ROM

You simply program the 'P' image of the filing system into a PROM and insert that into a free sideways ROM socket (but note that this can only be done with filing systems that don't need to run from sideways RAM).

2) Via sideways RAM

You auto-load the patched filing system into sideways RAM via GoSDC (this also takes care of resetting the machine for you, so it almost seems like the filing system was in ROM).

On your GoSDC-equipped machine, enter '*SDCConfig FSNR x' (where x is the GoSDC 'internal' filing system number, which would be 3 for the patched ADFS 1.30), and '*SDCConfig FSRM y' (where y is the number of the sideways RAM bank that the filing system should be loaded into, or, alternatively, the ROM number of the free ROM bank on GoSDC). Refer to 'Sideways ROM/RAM' in the Advanced section of this manual for details about the sideways ROM/RAM banks available on your particular machine. Then either power cycle your machine or enter '*SDCReset' to auto-load the selected filing system.

Use the disc via the filing system

With the patched filing system of choice up and running, now simply select a DFS and/or ADFS disc (as appropriate for the filing system) with *SDCDisc. E.g. enter '*SDCDisc Work' if you have put a disc called 'Work' on the flash card. Then press CTRL-BREAK, and start using the disc as if it were a regular floppy or harddisc (e.g. enter '*Cat', or SAVE and LOAD a BASIC program).

Select another disc with *SDCDisc at any time you wish, but remember to press CTRL-BREAK immediately afterwards (although GoSDC doesn't need it, the filing system may need it to notice the disc change).

Refer to 'GoSDC ROM : Star commands' in the Advanced section of this manual for more information about the star commands that you can now start using.

Have fun !


Advanced use

The hardware

There are a few important things to note about the GoSDC hardware before you use the software.

Most importantly this : GoSDC has two on-board 16 KB ROM banks, one of which contains the GoSDC ROM software (as programmed by SDCUP), and one which is 'free' (referred to as 'the free ROM bank on GoSDC'). To the machine, the free ROM bank is no different than any other ROM bank : it is read-only, and it appears as ROM number x (what x is depends on the machine, refer to 'Sideways ROM/RAM' for details). But it is empty on powerup, and its contents can be changed by software, in particular the GoSDC ROM software (via configuration options FSNR and FSRM). I.e. the free ROM bank is similar to a read-only sideways RAM bank.

Note also that GoSDC can be 'read disabled', to prevent corrupted code in one or both of GoSDC's ROM banks from crashing the machine. Refer to 'Recovery' for details.

The software

The GoSDC software consists of several components :

The sideways ROM provides low level access to the flash card, interfaces with patched filing systems and provides simple interactive functionality (select and use discs). The tools mainly allow discs and other data to be added to the flash card. They are mostly command-line utilities, to allow operation in batch mode (e.g. from an *EXEC file).

The 8-bit tools provide for :

The PC tools provide for :

The functionality provided by the GoSDC ROM is discussed in the sections titled 'GoSDC ROM : etc.'. The tools are discussed in the sections titled 'Tools : etc.'.

Filing systems

Probably the most 'difficult' part of using GoSDC is how to handle (patched) filing systems. This is mainly a consequence of the fact that GoSDC supports not just one, but many different filing systems.

Filing systems reside in sideways ROM or RAM. It is highly recommended that you first read 'Sideways ROM/RAM', to get to know more about the sideways ROM/RAM banks in your machine.

Regular/original filing systems like DFS and ADFS cannot access the flash card 'out of the box'. Most of them were meant to (and can only) access physical floppies and harddiscs, e.g. via a floppy disc interface (based on an 8271 or 1770 floppy disc controller).

Regular/original filing systems can, however, be patched to access the flash card (via GoSDC) instead of physical media (note that such a patched filing system can no longer access physical media !). In GoSDC parlance, these filing systems are simply called 'patched filing systems'. Wherever in this manual I refer to a 'patched filing system', such a filing system is meant.

A patched filing system can be introduced to the system in PROM (insert this into a free sideways ROM socket), or by auto-loading it into either a sideways RAM bank (see configuration options FSNR and FSRM for details) or the free ROM bank on GoSDC.

GoSDC provides suitable patches for a large number of filing systems. Refer to 'Supported filing systems' for details (and to 'Running patched filing systems' for details on where to obtain the filing system images).

You will usually need to run both the original and patched versions of a filing system. The first to be able to copy the contents of your physical discs to the flash card, the second to be able to access them from there. But note that original and patched versions of the same filing system cannot be run together at the same time.

On the BBC Master, the mechanism to arrange this is simple. When you need to add physical discs to the flash card, ensure you've *INSERTed the original version of the filing system, and *UNPLUGged the patched version of the filing system (if any). When you wish to access those discs via GoSDC, ensure you've *INSERTed the patched version, and *UNPLUGged the original version.

On the BBC B/BBC B+/Electron, there is no standard mechanism, but the GoSDC ROM software can help. This is only fully reliable when it runs as ROM number 15, because only ROMs with lower numbers can be affected. To 'unplug' a ROM, enter :

*SDCConfig ROMx 1

where 'x' is the ROM number (0 through 9 and A through F for ROMs 0 through 15 respectively). To 'insert' a ROM, enter :

*SDCConfig ROMx 0

Then enter '*SDCReset' (or power-cycle your machine). The 'unplugged' ROM will now be inactive and the 'inserted' one will be active.

NOTE !!! If the original and patched versions of a filing system do not differ in their first 1K bytes, the OS will permanently disable the one with the lowest ROM number (currently, this is the case for, e.g., DFS 2.26). In such a case, call the higher numbered one 'x' and the lower numbered one 'y', and then not only

*SDCConfig ROMx 1

but also

*SDCConfig ROMy 2

(i.e. 2 instead of 0). This ensures that the lower numbered ROM is not disabled by the OS (or, rather, that it is re-enabled by GoSDC).

Note that GoSDC is perfectly happy to serve multiple filing systems at the same time. E.g. it's perfectly possible to run both DFS 2.26 and ADFS 1.30 at the same time, and, e.g., copy files between them.

Tools : 8-bit environment

The tools called SDCUP, SDCFO, SDCADI, SDCAFS, SDCATO, SDCNEW, SDCDEL, SDCCPY, SDCMOD run on your BBC or Electron only. They are all command-line utilities, some taking arguments, some not. If you run them via a filing system (instead of *SDCTool), they all need to have their load and execution address set to (hex) &2000 (check that with *Info before you *Run them !).

In addition, there is a tool called 'SDCFlop' (which allows you to write discs on the flash card back to a physical floppy), a tool called 'SDCMenu' (which is an interactive disc or tape selection program), a tool called 'SDCHelp' (which allows you to build a tool command line by question / answer) and a tool called 'SDCCXD' (which displays some interesting information about your flash card). All these are BASIC programs. Simply CHAIN them.

You run the tools via the *SDCTool command. The standard tools (i.e. those mentioned so far) are always there (they are stored in GoSDC's on-board flash ROM). Additional tools, which must have names that differ from those of the standard tools, may be stored on the flash card (refer to the discussion of '*SDCTool' for more details).

Tools : PC environment

A powerful tool called GoSDCio is provided, allowing you to manipulate the flash card contents on a PC with a flash card reader that accepts MMCs, SD cards, and/or SDHC cards.

Tools : SDCUP

This tool updates GoSDC's on-board flash ROM (which contains the GoSDC ROM and all the standard tools and filing systems). It takes no arguments (enter '*SDCTool SDCUP').

A separate file called 'UPSDC' provides the actual data. To give SDCUP access to 'UPSDC', simply copy 'UPSDC' to the root directory of a FAT formatted flash card, and then move the flash card to GoSDC. E.g., on a PC running Windows, simply format your flash card via 'My Computer' (if needed), and then drag 'UPSDC' to it.

Usually, a previous version of the GoSDC ROM will already be running on your machine. If so, GoSDC's ROM number will be determined automatically. If not, you will be asked for it.

After running SDCUP, always power-cycle the machine (switch it off, wait a few seconds, then switch it on again).

Tools : SDCFO

This tool formats a flash card for use by GoSDC. It takes no arguments (enter '*SDCTool SDCFO').

Note that all the usual formatting warnings apply, especially that all data previously stored on the flash card is lost, so use this tool with care.

After running SDCFO, always press CTRL-BREAK.

Tools : SDCA2A

This tool copies one area to another, relocating objects as required. It is the only way to write to 'Area U', which is a user definable version of 'Area X' (i.e. it is read only, but always there, because it is located in GoSDC's flash ROM).

Numbered areas (i.e. on a flash card) can be written to as well, but if the source area contains large amounts of data (e.g. more than a few MB), this is not recommended. For large amounts of data, use GoSDCio instead : BACKUP one area, restore to another (with the generated script).

Tools : SDCAFS

Generally, you will not use this tool. It allows you to add your own patched and/or original filing systems to the flash card, so they can be auto-loaded (see configuration options FSNR and FSRM). These filing systems should have different numbers than the standard ones stored in 'Area X'.

Enter '*SDCTool SDCAFS <file name> (<fs nr>)' where <file name> is the file name of the filing system ROM image and (<fs nr>) is an optional filing system number. To add a filing system that GoSDC recognizes (refer to 'Supported filing systems' for a list of recognized filing systems, and to 'Running patched filing systems' for details on where to obtain the filing system ROM images), specify no filing system number, or 0. To add a 'custom' filing system, specify an unused filing system number (200 or higher is recommended). The file you specify should be exactly 16 KB in size.

Note that both the original and patched version of a filing system may be available for auto-load. When you make use of the filing system auto-load functions, this allows you to switch easily between the original and patched filing system (simply reconfigure to the other one and *SDCReset or power-cycle the machine to auto-load it).

Tools : SDCATO

Generally, you will not use this tool. It allows you to add your own (GoSDC) tools to the flash card, so they can be run directly from the flash card, without a disc containing those tools needing to be present (and the filing system needed to access it). These tools should have different names than the standard ones stored in 'Area X'.

Enter '*SDCTool SDCATO <file name> <tool name>' to add tool <file name> under the name <tool name>. Thereafter, you can run the tool using '*SDCTool <tool name>'.

Note that a tool may be a BASIC program as well as a machine code program. For details, refer to the discussion of *SDCTool.

Tools : SDCADI

This tool allows you to add discs to the flash card. A.k.a. "what it's all about" ! ;-)

It takes either a disc image (i.e. an image of a floppy or hard disc in a file) or a physical floppy or hard disc as its input. Disc image files may be on any filing system you want, you only need to ensure that the file is accessible when you run SDCADI.

Enter e.g. '*SDCTool SDCADI DN <file name> <disc name>' to add a DFS disc image in file <file name> to the flash card under name <disc name> (the latter is what you thereafter specify to *SDCDisc and *SDCList to find the disc).

The disc name may be up to 48 characters long. Note, in this respect, that you can use a simple kind of 'directory' structure (refer to the discussion of *SDCPrefix), so it pays to put a little thought in how to name discs.

'SDCADI DN' (Add Disc DFS Non-interlaced) is used to add DFS type floppy discs, with a disc image file as the source. The file may be any size, up to 400 KB, must contain <drive 0> <drive 2>, in that order, and results in a disc of the same size as the disc image (but rounded up to a 512 byte multiple).

'SDCADI DI' (Add Disc DFS Interlaced) is like 'SDCADI DN', but the image file contents are 'track-interleaved', must contain <track 0, drive 0> <track 0, drive 2> <track 1, drive 0> ... <track 79, drive 2>, in that order, and always results in a 400 KB size disc.

'SDCADI DR' (Add Disc DFS Real) is used to add DFS type discs, with a real floppy disc as the source. Replace <file name> with the drive number(s) to copy (e.g. '0' for drive 0 only, or '0+2' for drive 0 and 2).

'SDCADI AN' (Add Disc ADFS Non-interlaced) is used to add ADFS type floppy or hard discs, with a disc image file as the source. The file may be any size, up to 512 MB, and results in a disc of the same size as the disc image (but rounded up to a 512 byte multiple).

'SDCADI AI' (Add Disc ADFS Interlaced) is like 'SDCADI AN', but the image file contents are 'track-interleaved', must contain <track 0, head 0> <track 0, head 1> <track 1, head 0> ... <track 79, head 1>, in that order, and always results in a 640 KB size disc.

'SDCADI AR' (Add Disc ADFS Real) is used to add ADFS type discs, with a real floppy or hard disc as the source. Replace <file name> with the drive number to copy (e.g. '0' for drive 0, or '4' for drive 4).

Note that adding real discs will cause a temporary switch from the currently selected filing system to (A)DFS. If errors occur, the switch back may fail.

Tools : SDCNEW

This tool allows you to create a new, empty DFS or ADFS disc.

Enter '*SDCTool SDCNEW D <size> <disc name>' to create a DFS disc (size may be 1 KB - 400 KB) or '*SDCTool SDCNEW A <size> <disc name>' to create an ADFS disc (size may be 2 KB - 512 MB). Post-fix your size with 'K' or 'M' (for KB or MB respectively), e.g. '400K' or '100M'.

The free space on new discs that are 'floppy sized' (640 KB or under) will be explicitly wiped. The free space on larger discs is left 'as is' (because explicitly wiping e.g. a 512 MB ADFS harddisc would take way too much time).

Tools : SDCDEL

This tool allows you to delete an object (filing system, tool or medium (disc or tape)) on the flash card.

The object is removed from the catalogue, but it will still occupy the same storage space it did before. To reclaim the storage space (e.g. when your flash card is becoming full) do a backup and restore with GoSDCio.

Enter '*SDCTool SDCDEL F <FS number>' to delete a filing system (where <FS number> is the GoSDC 'internal' filing system number, refer to 'Supported filing systems' for a list). Enter '*SDCTool SDCDEL T <tool name>' to delete a tool. Enter '*SDCTool SDCDEL M <disc or tape name>' to delete a disc or tape.

Tools : SDCCPY

This tool allows you to copy the entire contents of one disc to another. The discs must be the same filing system and size.

Enter '*SDCTool SDCCPY <disc name 1> <disc name 2>' to copy 'disc 1' to 'disc 2'.

One scenario that makes SDCCPY useful is one where you have a 'work disc' that you regularly reset to the state of a 'reference disc'.

Tools : SDCMOD

This tool allows you to 'name' areas.

Enter '*SDCTool SDCMOD AN <area name>' to give the currently selected area the specified name. The name will appear in '*SDCInfo'.

Tools : SDCFlop

This tool allows you to write discs on the flash card (back) to a physical floppy. Enter '*SDCTool SDCFlop' to run it.

Ensure that no patched filing systems are running (if necessary, use '*Unplug' on the BBC Master, or '*SDCConfig ROMx 1' on other machines).

When run, SDCFlop will present a simple menu (which will gain a few choices as you go along) :

0. Exit
1. Switch to ADFS (now DFS)
2. Select target drive
3. Select source disc

Press 0,1,2 or 3.

0 exits SDCFlop.

1 allows you to switch between DFS and ADFS. When you switch, your previous choices are assumed not to apply anymore, and you will revert to the basic startup menu.

2 allows selection of the drive to copy to (on your physical floppy).

3 allows selection of the disc to copy from (on the flash card). You may use wildcards.

4 ('Select source drive'), which appears once you made a selection via '3', allows selection of the drive to copy from (i.e. a drive contained by the disc selected via '3'). Beware of selecting 'shrunk' drives, since they will leave part of your floppy's capacity unused, and won't allow files to be added later on.

5 ('Copy source drive to target drive'), which appears once you made a selection via '2', '3' and '4', will start a drive copy.

6 ('Verify target drive via source drive'), which appears once you made a selection via '2', '3' and '4', will start a drive verify.

Note that if you selected a DFS disc that contains more than one drive (e.g. two, originating from a 'double-sided' disc), you will want to copy both drive 0 and 2 to your floppy (and/or 1 and 3 to a second floppy, if there are four drives).

Tools : SDCMenu

This tool allows interactive selection of a medium (disc or tape). It is meant to be used in conjunction with the BOOT configuration option (refer to its discussion for details). Enter '*SDCTool SDCMenu' to run it.

When it is run, you're prompted to enter (any part of) a disc or tape name to search for (you can make use of the left and right arrow keys and DELETE, and SPACE to reset to an empty name). Press RETURN to start the search. All matches that '*SDCList *xxxx*' would have brought up will be listed (where xxxx is what has been entered of the medium name). Choose any one of them by pressing the key indicated in front of the full medium name, or press RETURN to return to the medium name prompt and do another search. If there are more matches than will fit on screen, the list will end with a '...' line. Then either enter more of the medium name to reduce the number of matches, or choose a match anyway.

Choosing a match will execute an *SDCDisc or *SDCTape command, as appropriate, and exit SDCMenu. If you selected a disc, then, assuming a patched filing system is running, subsequently pressing CTRL-SHIFT-BREAK should boot the selected disc. If you selected a tape, enter '*Tape', then 'CHAIN""' or '*Run' as appropriate.

SDCMenu is ideally used in conjunction with the BOOT configuration option (refer to its discussion for details). E.g. if you configure BOOT to 3, every CTRL-BREAK will auto-run SDCMenu. You then select a disc, and press CTRL-SHIFT-BREAK to boot the selected disc (SDCMenu won't be run this time, because the BOOT setting is ignored when SHIFT is pressed).

Tools : SDCHelp

This tool allows you to interactively build a tool command line. Simply run it (enter '*SDCTool SDCHelp') and answer the questions.

Tools : SDCCXD

This tool displays some interesting information about your flash card. Enter '*SDCTool SDCCXD' to run it.

Tools : GoSDCio

GoSDCio runs on a PC with a flash card reader and allows batch-wise addition, extraction, deletion and renaming of discs, tapes, tools and filing systems, including backup and restore of the entire contents of the flash card.

GoSDCio accepts any number of 'commands' (taken from script files, or specified directly on the commandline), and executes them in one go.

The basic syntax is : 'GoSDCio -d<drive> <script>', where <script> is the file name of a script, and <drive> is the drive letter under which the flash card appears (if you don't know which one it is, you may want to 'double-click' all the flash card reader drives, and find the one where this invokes a 'not formatted' type of error). Under Linux, instead of 'K', specify what your flash card appears as under /dev (e.g. use '-d/dev/sdc' instead of '-dK').

You may combine any number of scripts (specified by file name) and 'single' commands (specified by double-quoting, preceded by '-c'). They are executed in the order in which they are specified on the commandline. E.g.

GoSDCio -dK -c "ADD DFS DISC N Hopper Hopper.ssd"

will simply add one (single-sided) DFS disc to the flash card. Or e.g.

GoSDCio -dK script.txt

will execute all the commands contained within the file 'script.txt'. Or e.g.

GoSDCio -dK -c "DO SHRINK" script.txt

will first execute a 'DO SHRINK' command, and then all the commands contained within the file 'script.txt'.

You can optionally add a '-f' to the command-line. Use -f with extreme caution because it instructs GoSDCio to 'forget' the old contents of the flash card before doing anything. Note that the flash card must have been formatted with SDCFO, although it need not be empty.

You can optionally compact, shrink and/or 'blow up' all the drives contained within DFS or ADFS discs while adding them to the flash card. Compact moves all objects on a drive to the 'front' (exactly like the *Compact command). Shrink does that too, but also minimizes the drive's size (i.e. no free space will remain). Blowup will enlarge a drive to a specified size (or the nearest one possible). Simply add 'DO COMPACT', 'DO SHRINK' and/or 'DO BLOWUP <size>' (where <size> is e.g. '200K' or '16M') to your commands. They will affect all following commands. Use 'DO NOCOMPACT', 'DO NOSHRINK' and/or 'DO NOBLOWUP' (or 'DO NONE' as a shorthand for all of them) to 'undo' the previously specified option(s).

Add '-a<number>' (e.g. '-a2') to the command-line to target a specific 'area' (the default is area 1). Refer to the discussion of *SDCArea for more details.

Add '-l' to the command-line to list the new flash card catalogue after the commands have been executed.

A script is a text file that looks like this :

# start
ADD DFS DISC N Elite C:\GoSDC\Discs\Elite.ssd
ADD DFS DISC N Hopper C:\GoSDC\Discs\Hopper.ssd
ADD DFS DISC N Snapper C:\GoSDC\Discs\Snapper.ssd
# end

There's one command per line. Empty lines are ignored. If a line starts with a '#' it is a comment, and is ignored as well.

A description of the available commands follows.

Note that <object type> is 'FS' for a filing system, 'TOOL' for a tool, 'DFS DISC' for a DFS disc, 'ADFS DISC' for an ADFS disc, 'HADFS disc' for a HADFS disc, 'TAPE' for a tape, or 'MEDIUM' for either a disc or a tape (where allowed).

Also note that <object name> is the name that you want the object (tool, disc or tape) to have on the flash card. I.e. it is the name by which you select the tool, disc or tape with *SDCDisc, *SDCTape or *SDCTool.

You can use the following commands :

ADD <object type> <object name> <file name>

Where <object type> may not be 'FS' (this needs a different syntax, see below), or 'MEDIUM'.

For object types 'DFS DISC' and 'ADFS DISC', follow <object type> with 'N' or 'I' depending on whether <file name> contains a non-interlaced or interlaced disc image respectively (refer to 'Tools : SDCADI' for details about interlaced disc images), e.g. 'ADD DFS DISC N Hopper Hopper.ssd'.

This command adds a tool, disc or tape to the flash card.

Note that 'TAPE' expects an 'ungzipped' UEF file (as available from Internet). GoSDCio puts a 'stripped' version of this UEF file on the flash card. 'TAPE' will recognize and accept this stripped version as well (e.g. when restoring a BACKUP, since this will have saved the stripped versions, not the original UEFs). Refer to 'Tapes' for more details.

ADD FS <FS number> <file name>

Where <FS number> is the GoSDC 'internal' filing system number (refer to 'Supported filing systems' for details).

This command adds a filing system (original or patched) to the flash card. It is there for special purposes only, since the standard filing systems are always 'there' (stored in 'Area X').

It will automatically recognize both the original and patched version of all supported filing systems. Use FS number 0 to make GoSDCio determine the right filing system number (if the filing system is not recognized, this is an error). If the filing system is recognized, but you're specifying the wrong filing system number, this is an error as well.

Note that <FS number> is not limited to the documented filing system numbers, but may be anything between 1 and 250 inclusive. This is in order to support the use of slightly 'tweaked' filing system images (which GoSDCio will not recognize, so you must use a non-standard filing system number like 200).

NEW <object type> <object name> <disc size>

Where <object type> may only be 'DFS DISC' or 'ADFS DISC', and <disc size(s)> specifies the size(s) of the disc(s) to be created.

This command adds an empty disc to the flash card.

'NEW DFS DISC' creates an empty DFS disc of anything between 1 KB and 400 KB in size (specify e.g. '1K' or '400K' as <disc size(s)>). A size above 200 KB results in a 'two drive' disc.

'NEW ADFS DISC' creates an empty ADFS disc of anything between 2 KB and 512 MB in size (specify e.g. '2K' or '512M' as <disc size(s)>).

DELETE <object type> <object name>

This command deletes the specified object on the flash card.

The object is removed from the catalogue, but it will still occupy the same storage space it did before. To reclaim the storage space (e.g. when your flash card is becoming full) do a backup and restore (refer to BACKUP for details).

RENAME <object type> <object name> <new object name>

Where <object type> may not be 'FS'.

This command renames the specified object on the flash card to <new object name>.

EXTRACT <object type> <object name> <file name>

Where <object type> may not be 'FS' (this needs a different syntax, see below).

For object types 'DFS DISC' and 'ADFS DISC', follow <object type> with 'N' or 'I' depending on whether you want <file name> to contain a non-interlaced or interlaced disc image respectively (refer to 'Tools : SDCADI' for details about interlaced disc images), e.g. 'EXTRACT DFS DISC N Hopper hopper.ssd'.

This command extracts the specified tool, disc or tape from the flash card (copying it to a file).

EXTRACT FS <FS number> <file name>

Where <FS number> is the GoSDC 'internal' filing system number (refer to 'Supported filing systems' for details).

This command extracts a filing system from the flash card (copying it to a file).

BACKUP <directory name>

This command copies everything that is stored on the flash card to the specified directory, in the form of separate files (each containing one object) and a matching script (with which the flash card contents can be restored).

Note that all objects that were 'deleted' (via the 'DELETE' command or the SDCDEL tool) are discarded, i.e. are not written to files and do not appear in the script. To restore a backup, simply 'cd' to the backup directory and run the script through GoSDCio, adding '-f' (e.g. 'GoSDCio -dJ -f script').

Tapes

GoSDC's main 'thing' is discs, but it can handle tapes as well, via the standard Tape filing system. Although it can only 'play', not 'record'.

This works on any BBC model B running OS 1.20, BBC Master running MOS 3.20 or 3.50, BBC B+ running OS 2.00, or Electron running OS 1.00.

But the machine's OS ROM must be patched to achieve this. Which means you must program a patched OS ROM image into a suitable PROM, and replace your OS ROM with that PROM. The patches in the OS are needed to make the Tape filing system get input directly from GoSDC, instead of the tape interface hardware.

To obtain the patched OS ROM image, go to this directory. It contains the following files :

POS120.BIN is the (16K) BBC model B OS 1.20 ROM
POS320.BIN is the (128K) BBC Master MOS 3.20 ROM
POS350.BIN is the (128K) BBC Master MOS 3.50 ROM
POS100.BIN is the (32K) Electron OS 1.00 ROM (i.e. this includes BASIC).
POS200.BIN is the (32K) BBC B+ OS 2.00 ROM (i.e. this includes BASIC).

Replacing the OS ROM is not for the fainthearted (only on the BBC model B and B+ it is relatively easy to do), and requires some know-how. If you want to do it, but don't know how to proceed, feel free to contact me.

You can add tape images to the flash card using GoSDCio's 'ADD TAPE' command, using 'ungzipped' UEF files (as available from Internet) as source material. They can subsequently be selected by *SDCTape, and 'played' under the tape filing system (if it is not selected, enter '*Tape'). Simply issue the usual CHAIN"" or *RUN command to start loading the tape. Use *SDCRewind to 'rewind' the tape (note that *SDCTape implicitly rewinds as well).

Note that, when you download UEF files from Internet, you may have to 'unzip' the downloaded file (to obtain the actual .uef file) as well as 'ungzip' the .uef file (e.g. rename it to a .uef.gz, then 'gzip -d' it, after obtaining a copy of gzip).

Note also that you can 'slow down' tape loading with the SLOW configuration option (refer to its discussion for details).

GoSDC ROM : Star commands

The following *-commands are available from the GoSDC ROM software (enter '*Help GoSDC' to list them) :

*SDCInfo

Displays the GoSDC software version and date, which ROM slots GoSDC occupies, flash ROM and flash card details, and all area sizes and names.

*SDCArea (<selector>)

Selects area <selector> for subsequent access. If <selector> is not specified, no (new) area is selected.

In all cases the statistics of the (newly) selected area are displayed (i.e. the total, used and free bytes, and the number of objects).

Areas are 'virtual' flash cards, named 'X', 'U' and '1' through '8'. The availability of the numbered areas depends on the capacity of the actual, physical flash card. If it is under 4 GiB, only area '1' is available. If it is over 4 GiB, up to seven additional areas (starting with '2') are available, where all but the last one is 4 GiB in size. Area X and U are 'mini flash cards' located in GoSDC's flash ROM. Area X contains all the standard filing systems and tools. It can be accessed, listed, etc. just like any other area, but it cannot be written to. Area U is like Area X, but its contents are user definable (refer to the discussion of SDCA2A).

ALWAYS press CTRL-BREAK after selecting an area with *SDCArea ! It is highly recommended to enter '*SDCDisc -' at this stage, as well.

*SDCDisc (<name>) (A|B|C|D)

Selects disc <name> for subsequent access (by the currently running, patched filing system). The usual * and # wildcards may be used (the first matching disc is selected). If <name> is a single hyphen (-), all disc selections are forgotten (this may occasionally be useful to confirm that what was selected is no longer on the flash card, although normally you would simply make new selections). If <name> is not specified, no (new) disc is selected.

The second argument is optional, and defaults to 'A'. It identifies the 'slot' (roughly equivalent to a real floppy or hard drive) that the disc is 'put into'. For DFS, slot A represents drives 0 and 2, slot B represents drives 1 and 3, and slots C and D represent an override for drive 2 and 3 respectively. For ADFS, slots A, B, C and D represent drive 0, 1, 4 and 5 respectively.

In all cases the (newly) selected media are displayed, as well as the drives found within the selected discs. DFS and ADFS disc selections are remembered separately.

ALWAYS press CTRL-BREAK after selecting a disc with *SDCDisc ! GoSDC does not need this, but the filing system might, to notice the disc change.

*SDCTape (<name>)

Is like *SDCDisc, but selects a tape, for subsequent access by the (patched) Tape filing system.

Refer to 'Tapes' for details.

*SDCList (<name>) (M)(F)(T) (X)

Lists all objects matching <name> (default '*'). The usual * and # wildwards may be used.

The second argument (default 'M') allows object type specification : any sequence of the characters M, F and T (standing for media, filing systems and tools respectively) lists those object types.

The third argument (default '') selects special listing styles : X selects 'extended' listing (showing 'tt ss aaaaaaaa + ssssssss name', all values hexadecimal, where tt is the object type, ss the object subtype, aaaaaaaa the start address on the flash card and ssssssss the size in bytes).

*SDCPrefix (<name>)

The 'name prefix' may be set by this command. This affects *SDCDisc, *SDCTape, *SDCList and *SDCTool. The name prefix is what implicitly precedes the <name> specified in the affected commands. If <name> is a single hyphen (-), the name prefix is cleared (this is also the default setting). If <name> is not specified, no (new) name prefix is set.

In all cases the (newly) set name prefix is displayed.

E.g. suppose you have three discs, named 'Acornsoft.Hopper', 'Acornsoft.Elite' and 'Aardvark.Frak'. Setting the name prefix to 'Acornsoft.' (note the trailing dot !) would cause '*SDCDisc Hopper' to select the first disc, and '*SDCList *' to list the Acornsoft discs only (as if you had entered '*SDCDisc Acornsoft.Hopper', and '*SDCList Acornsoft.*').

Note that a leading '$' in the name specified to *SDCDisc, *SDCTape, *SDCList and *SDCTool will skip the matching of the name prefix (and the '$' is discarded). E.g. if the prefix is 'A.', then the name '$!Boot' matches '!Boot' only, not 'A.!Boot'.

*SDCTool <name> ...

Runs tool <name>, relaying whatever follows <name>. The usual * and # wildcards may be used (the first matching tool is run).

The standard tools, stored in 'Area X', or your own custom tools, stored in 'Area U', will be found automatically. Otherwise, the tool must have been added to the flash card as <name> (e.g. using the SDCATO tool). For example, if you added a tool called 'Blah' to the flash card as 'Whatever', then instead of entering e.g. '*Blah one two three' you can now enter '*SDCTool Whatever one two three'.

Tools run with *SDCTool are always copied to memory address &2000. Tools starting with an &0D byte are considered to be BASIC programs, and are executed by inserting 'PAGE=&2000<CR>OLD <CR>RUN<CR>' into the keyboard buffer. All other tools are considered to be machine code utilities, and are executed by calling &2000 after poking a 2-byte pointer to the command line tail to ?&2003 (low byte) and ?&2004 (high byte) (so there better be, e.g., a JMP &2005 at &2000).

Note that you can auto-execute an *SDCTool command on every BREAK using the BOOT configuration option (refer to its discussion for details).

*SDCConfig (<name> <value>)

Allows configuration options to be set and listed. Refer to 'GoSDC ROM : Configuration' for details.

*SDCReset

Performs a hard reset (useful after, for example, configuring FSNR/FSRM). Use this in preference to a power-cycle (switching power off, then on again).

*SDCRewind

This 'rewinds' the currently selected tape. See also '*SDCTape'.

*SDCSLoad <romnr> <fsp>

Copy file <fsp> to ROM slot <romnr>.

Note that this uses memory locations &0A00 through &0AFF as a temporary buffer. This means that you cannot use RS423 or cassette input while using this command.

*SDCSSave <romnr> <fsp>

Copy ROM slot <romnr> to file <fsp>.

Note that this uses memory locations &0A00 through &0AFF as a temporary buffer. This means that you cannot use RS423 or cassette input while using this command.

GoSDC ROM : Configuration

'*SDCConfig (<name> <value>)' configures the GoSDC ROM software. '*SDCConfig' without arguments displays a list of the currently configured values.

The <value> is always a decimal number from 0 to 255. The <name> is one of :

Name Description
FSNR sets the auto-loaded filing system number
FSRM sets the auto-loaded filing system ROM number
F2NR sets the (2nd) auto-loaded filing system number
F2RM sets the (2nd) auto-loaded filing system ROM number
BOOT selects the activity to perform on booting
SLOW sets the artificial delay used in tape loading
WPRO selects the flash card write protection level
TUBE selects the speed of bulk Tube transfers
COPR allows you to specify your co-processor type
HACK should generally be left well alone (what's in a name ?)
ROM0 selects the 'plug' activity to perform for ROM number 0
ROM1 selects the 'plug' activity to perform for ROM number 1
.... ....
ROME selects the 'plug' activity to perform for ROM number 14
ROMF selects the 'plug' activity to perform for ROM number 15

After a GoSDC ROM software upgrade (with SDCUP), all values default to 0.

FSNR and FSRM (F2NR and F2RM for a second filing system, if any)

These options configure the filing system auto-load function. With this, a filing system can be automatically loaded, into either a sideways RAM bank, or the free ROM bank on GoSDC. This will occur on every powerup or *SDCReset.

A sideways RAM bank must be writable simply by selecting it, which is true for most simple and some complex systems for the BBC B/B+, the BBC Master sideways RAM system, and the Electron (if an SRAM chip has been installed on the 'GoSDC to Electron' interface). Refer to 'Sideways ROM/RAM' for more details specific to your machine.

FSNR Auto-load what
0 nothing
1 filing system 1
2 filing system 2
... ...
255 filing system 255

FSRM Auto-load into
0 ROM slot 0
1 ROM slot 1
... ...
15 ROM slot 15
others reserved

E.g. set FSNR to 3 and FSRM to 4 to auto-load ADFS 1.30 into ROM/RAM slot 4. Refer to 'Supported filing systems' for a list of filing system numbers.

Note that, if you configure a non-standard filing system (i.e. one that is not present in 'Area X'), it must be present in 'Area U', or on the flash card (put there by the SDCAFS tool, or GoSDCio's 'ADD FS' command, refer to their discussion for details).

BOOT

This option selects a boot activity, which is performed on every powerup or BREAK.

BOOT Activity
0 none
1 execute '*SDCTool $!Boot' (1)
2 execute '*SDCDisc $!Boot' (2)
3 execute '*SDCTool $SDCMenu'
others reserved

(1) This is similar to using '*OPT 4 2' on disc filing systems.

(2) This may be useful, for example, if you want to run an alternative 'menu' program. E.g. put it as 'MyMenu' on a disc named '!Boot', put 'CHAIN "MyMenu"' in the disc's !Boot file, issue '*OPT 4 3', and go : CTRL-BREAK (the '!Boot' disc is now selected), SHIFT-BREAK ('MyMenu' now runs), and, when you've selected a disc, CTRL-SHIFT-BREAK (the selected disc now boots).

Note that the '$' causes the *SDCPrefix setting to be ignored, so it cannot affect the boot activity (refer to the discussion of *SDCPrefix for details).

Press SHIFT during powerup or BREAK to suppress the boot activity (e.g. in case your !Boot malfunctions).

SLOW

This option selects the length of the artificial delay in returning 'tape bytes' to the Tape filing system (refer to 'Tapes' for details).

0 is the minimum delay, 255 is the maximum delay. You may want to use a non-zero value if the tape loading speed is to appear more 'realistic'.

Values that approximate the speed of the standard 1200 baud tape system are around 128 (this includes the roughly 1 second gap between blocks) or 94 (excluding the gap). Note that gaps are not emulated. There is only a delay per byte. I.e. 94 is more accurate in terms of the signalling rate, while 128 results in a more accurate block rate.

WPRO

This option configures flash card write-protection.

WPRO Writing is
0 passed
1 silently ignored
2 faulted with an error
3 silently ignored (1)
4 faulted with an error (1)
others reserved

(1) Only if the SD or SDHC card is physically 'write protected', via the 'Lock' switch.

TUBE

This option selects the speed of bulk transfers across the Tube (i.e. when data is transferred between a file and your second processor's memory). 2-byte transfers are almost twice as fast (75 KB/sec) as 1-byte transfers (40 KB/sec), and should (theoretically) be supported by all second processors.

TUBE Transfer speed
0 1-byte
1 1-byte
2 2-byte
255 warp (1)
others reserved

(1) This is an experimental (and possibly unreliable) setting that reaches dizzying transfer speeds of well over 200 KB/sec. It seems to work OK on ARM7TDMI coprocessors, and ReCo6502 second processors running at 14 MHz. But do not trust this setting while working with valuable data.

COPR

You should generally leave this at 0.

It allows you to specify which type of co-processor you are using.

COPR Coprocessor type
0 Unspecified
1 6502 Second Processor
2 65C102 Co-processor
3 Z80 Second Processor
4 80186 Co-processor
5 32016 Second Processor
6 ARM Evaluation System
7 ReCo6502
8 ARM7TDMI Co-processor

Normally, GoSDC doesn't need to know. However, if it's a 32016 Second Processor, it does need to know. The 32016 Second Processor cannot handle the maximum transfer speeds that Acorn documented for the Tube. GoSDC operates at those maximum speeds, so it needs to be 'throttled down'. I.e., if you're using GoSDC and a 32016 Second Processor at the same time, you must set COPR to 5. You may want to set TUBE to 2 as well.

HACK

You should generally leave this at 0.

It contains eight 'hack bits', which, when set, enable certain drastic changes in the behaviour of the GoSDC ROM. To set bit 0, 1, 2, 3, 4, 5, 6 or 7 in the value, add 1, 2, 4, 8, 16, 32, 64 or 128 to it, respectively.

Bit Effect when set
0 MMC only mode (1)
others reserved

(1) Bypasses the SD/SDHC initialisation/detection code, which may confuse some very old MMCs.

ROM0 through ROMF

ROM0 through ROM9 and ROMA through ROMF configure a 'plug' activity for ROM number 0 through 15 respectively.

ROMx Plug activity
0 none
1 unplug ROM
2 re-insert ROM (1)
others reserved

(1) Use this if the OS automatically 'unplugs' the ROM because it looks like an alias of another ROM (refer to 'Filing systems' for details).

Always press CTRL-BREAK after changing one of these options. Note that the GoSDC ROM should have the highest possible ROM number in the machine, since it can only reliably affect the 'plug' state of ROMs with lower ROM numbers. Note that on the BBC Master, *Unplug and *Insert can be used instead of the 1 and 0 settings, respectively.

EIRD

You should generally leave this at 0. It is only available on the Electron, and only effective when the newer type of Electron-to-GoSDC interface is used.

It contains eight 'disable bits', which, when set, disable the corresponding RAM banks on the Electron-to-GoSDC interface, so the sideways ROM slots they use won't interfere with those used by other hardware expansions (e.g. ROM/RAM boxes). Only bit pairs can be set. To set bit 0+1, 2+3, 4+5, or 6+7 in the value, add 3, 12, 48, or 192 to it, respectively. This disables the RAM banks mapped to sideways ROM slots 0+1, 2+3, 6+7, or 12+13 respectively.

Sideways ROM/RAM

Different machines have different sideways ROM/RAM systems :

The BBC model B

The standard machine has four sideways ROM sockets (all 16 KB), and no sideways RAM.

Starting at the ROM socket that is closest to the side of the machine, going 'west', the ROM numbers represented by the sockets are : 15, 14, 13, 12.

Only if you installed GoSDC 'with adapter' (refer to the Installation section of this manual for details) you can use the free ROM bank on GoSDC. This can be considered to be a sideways ROM bank, whose number may nevertheless be specified to '*SDCConfig FSRM'. To find out its number, enter '*SDCInfo', and note the number of the 'free' ROM slot.

The BBC Master

The standard machine has three sideways ROM sockets (two 32 KB, one 16 KB), and four sideways RAM banks. Although not all at the same time, see below.

Starting at the ROM socket that is closest to the cartridge connector(s), going 'north', the ROM numbers represented by the sockets are : 4+5, 8, 6+7. I.e. the sockets for ROM numbers 4+5 and 6+7 are the 32 KB sockets. Whether ROM numbers 4+5 or 6+7 are sideways ROM banks (i.e. reflect what is in the ROM socket) or sideways RAM banks (what is in the ROM socket is irrelevant) is determined by links. If LK18 is set 'west', 4+5 is sideways RAM (or if 'east', ROM). If LK19 is set 'west', 6+7 is sideways RAM (or if 'east', ROM).

Usually, GoSDC is in the socket for ROM numbers 6+7, which means that the GoSDC ROM is ROM number 7, and ROM number 6 is the free ROM bank on GoSDC. This can be considered to be a sideways ROM bank, whose number may nevertheless be specified to '*SDCConfig FSRM'.

The BBC B+

The standard machine has five sideways ROM sockets (all either 16 or 32 KB, selectable via links), and no sideways RAM.

ROM sockets IC35, IC44, IC57, IC62 and IC68 represent ROM numbers 2+3, 4+5, 6+7, 8+9 and 10+11 respectively, and links 9, 11, 12, 15 and 18 respectively determine whether they are 32 KB sockets (link set 'east') or 16 KB sockets (link set 'west').

If GoSDC is in the socket for ROM numbers x+y, then the GoSDC ROM is ROM number y, and ROM number x is the free ROM bank on GoSDC. This can be considered to be a sideways ROM bank, whose number may nevertheless be specified to '*SDCConfig FSRM'.

The Electron

You are using the 'GoSDC to Electron' interface. There are two types. The new type offers 8 sideways RAM banks (see option e). The old type offers one of :

a) No banks (no chip is installed in the utility socket)
b) Up to 2 sideways ROM banks (28-pin ROM installed in the utility socket, e.g. a 27C256)
c) Up to 2 sideways RAM banks (28-pin SRAM installed in the utility socket, e.g. a 62256)
d) Up to 8 sideways ROM banks (32-pin ROM installed in the utility socket, e.g. a 27C1001)
e) Up to 8 sideways RAM banks (32-pin SRAM installed in the utility socket, e.g. a 628128)

Refer to the Installation section of this manual for further details, including how to install the chip.

The ROM numbers are a little odd. For options b, c and f, the lower bank is 3 (and mirror images appear in 2, 1 and 0), and the higher bank is 13 (and mirror images appear in 12, 7 and 6). For options d and e, going from lower to higher addresses within the chip, the banks are 1, 13, 3, 7, 0, 12, 2, 6 (this is, of course, only relevant if you use a ROM, and need to know where to put the ROM images within the chip's address space).

GoSDC is in the socket for ROM numbers 15+14, which means that the GoSDC ROM is ROM number 15, and ROM number 14 is the free ROM bank on GoSDC. This can be considered to be a sideways ROM bank, whose number may nevertheless be specified to '*SDCConfig FSRM'.

Supported filing systems

GoSDC supports (and provides patches for) the following filing systems :

Nr Name
1 (BBC B) Acorn DNFS 1.20
2 (BBC B) Acorn DFS 2.26
3 (BBC B) Acorn ADFS 1.30
4 (BBC Master) Acorn DFS 2.24
5 (BBC Master) Acorn ADFS 1.50
6 (BBC Master) Acorn DFS 2.45 (1)
7 (BBC Master) Acorn ADFS 2.03 (1)
8 (BBC B) Watford DFS 1.44
9 (BBC B) ACP DFS 1.00 (2)
10 (Electron) ACP DFS 2.20 (2)
11 (Electron) Acorn ADFS 1.00
12 (All BBCs) HADFS X.YZ (3)

The number is the GoSDC 'internal' filing system number, i.e. as specified to '*SDCConfig FSNR' and listed as the subtype of filing system objects in 'extended' *SDCLists.

Note that numbers 81 and higher may be used as well. These are the original, unpatched versions of the patched filing systems whose number is 80 less (also refer to the discussion of SDCAFS).

(1) Note that DFS 2.45 and ADFS 2.03 are co-dependent (they share routines) and need to be in the machine at the same time, one as an even numbered ROM x, the other as ROM number x + 1. Use FSNR/FSRM to auto-load one, and F2NR/F2RM to auto-load the other. On the BBC Master, you would normally use sideways RAM banks 4 and 5.

(2) Note that these are 'E00' filing systems (they leave the default PAGE in an unexpanded machine at &0E00), and have to run in a sideways RAM bank (note that the free ROM bank on GoSDC is not suitable, since it cannot be written to directly).

(3) Note that this allocation is versionless (all versions of HADFS are detected as, and considered to be, the same filing system), and that HADFS contains its own GoSDC driver code (i.e. no 'original' version of the filing system, whose number would be 92, is considered to exist).

GoSDC ROM : CRC check

The GoSDC ROM software checks itself for corruption on every powerup (including after *SDCReset) using a 16-bit CRC (Cyclic Redundancy Check).

If this check fails, 'GoSDC : ROM corrupted !' will be displayed at the top of the screen, and you're advised to follow the instructions under 'Recovery'.

Thanks to Greg Cook for providing an especially fast implementation of the CRC algorithm.

GoSDC ROM : Error messages

The following is an exhaustive list of error messages issued by the GoSDC ROM software :

'Please switch off Tube' (code 147) : *SDCTool will not run code on your second processor, so please switch it off.

'Drive not available' (code 183) : No currently selected disc contains the drive being accessed.

'Access outside drive' (code 183) : An attempt was made to access data 'outside' the current drive space.

'Flash card is write-protected' (code 201) : An attempt was made to write to the flash card while it was write-protected.

'Cannot write to a ROM area' (code 201) : An attempt was made to write to 'Area X' or 'Area U'. They cannot be written to at all (X) or not directly (U).

'Syntax error: <correct syntax>' (code 220) : A syntax error has been found in a *-command.

'Unknown option name' (code 220) : The name specified to *SDCConfig is not recognized.

'Prefix too long' (code 220) : The name specified to *SDCPrefix is longer than 31 characters.

'Bad GoSDC FS' (code 0) : The patch used in the patched filing system you are attempting to run has become obsolete. Update the patch.

'ROM corrupted' (code 0) : Your *-command will not be executed, because the GoSDC ROM has been corrupted. See also 'GoSDC : ROM corrupted !'.

'Escape' (code 17) : Escape was pressed during *SDCList.

In addition, these non-BRK warnings/errors are issued on a (hard) reset :

'GoSDC : No flash card inserted' : The flash card socket indicates that no flash card is inserted.

'GoSDC : Flash card doesn't respond' : The flash card doesn't seem to be present (although it is detected physically).

'GoSDC : Flash ROM doesn't respond' : The flash ROM doesn't seem to be present (which should never, ever happen).

'GoSDC : ROM corrupted !' : The GoSDC ROM software has been corrupted. Refer to 'GoSDC ROM : CRC check' for details.

'GoSDC : Cannot find auto-load FS' : You are trying to auto-load a filing system that cannot be found (i.e. is not present on the flash card).

'GoSDC : Bad slot for auto-load FS' : You are trying to auto-load a filing system into an unsuitable ROM slot (i.e. occupied by the GoSDC ROM, or > 15).

'GoSDC : Press CTRL-BREAK now ...' : You are running BBC Master MOS 3.50, and have auto-loaded a filing system into ROM slot 4, 5, 6 or 7. If the usual powerup reset would be generated now, it would cause the slot to be wiped again by the MOS. Since CTRL-BREAK is the next best thing, but can't be generated, you are asked to do it yourself.

'GoSDC : Configuration reset !' : Means exactly what it says. Refer to 'What is remembered on power down' for details.

Recovery

If the contents of the GoSDC flash ROM have become corrupted, your machine may hang on powerup, and no recovery may seem possible.

Fear not. This problem has been foreseen. GoSDC can be switched to 'write only' mode, so the corrupted flash ROM contents can no longer hang the machine, but can still be overwritten. SDCUP is the tool to use.

Follow the following recipe :

1) Power down.

2) Move the 'enable/disable' jumper on GoSDC's configuration header (refer to the Installation section for details) to pins 2+4.

3) Power up. Your machine should no longer hang, but GoSDC has 'gone' as well.

4) Run SDCUP. Refer to 'Tools : SDCUP' for details. Note, however, that you will have to CHAIN the 'file' version of SDCUP, since you can no longer use '*SDCTool SDCUp'.

5) Power down.

6) Move the 'enable/disable' jumper on GoSDC's configuration header back to pins 4+6.

7) Power up. Your machine should no longer hang, and GoSDC is back in action.

What is remembered on power down

GoSDC makes use of writable but nevertheless non-volatile memory called flash ROM. This allows GoSDC to 'remember' some user settings, even on power down (although storing them on the flash card would have been a second possibility).

The remembered settings are :

You can reset all the remembered settings to their default values by pressing the 'G' and 'W' keys simultaneously while switching on the machine. The message 'GoSDC : Configuration reset !' will be displayed to confirm the reset.