2. THE RAM FILING SYSTEM.

2.1 Introduction

The majority of commands found in Romlt are used to implement a new filing system known as the Ram filing system, or RaFS. This filing system works either in sideways Ram (if fitted), or directly into a reserved area in user Ram.

The structure of this filing system owes much to the disc filing systems employed by the BBC micro; and you may look on the RaFS as providing an alternative filing system to cassette or disc, on which you can save and load programs and data, and perform other allied tasks; hence the term "Silicon Disc".

You will find in fact that all of the commands used with the cassette filing system will also operate within the environment of the RaFS. These are summarised below, and the user is referred to the User Guide for descriptions of each, since each works with the RaFS in the same way as described there. As a further guide, you are also referred to appendix (ii) which gives User Guide page references, and some additional notes.

BGET# BPUT# *CAT CHAIN CLOSE# EOF# *EXEC EXT# INPUT# LOAD *LOAD OPENIN OPENOUT OPENUP *OPT PRINT# PTR# *RUN SAVE *SAVE

If your machine has a DFS (disc filing system) fitted you will find that there are four extra DFS commands which may be used with the RaFS. These are:

*BUILD *DUMP *LIST *TYPE

These are also treated in appendix (iii).

Further to this Romlt provides an extensive set of commands for use with the RaFS. These latter are treated in detail in section 6 of this manual in an alphabetical sequence. Many are also treated in the foregoing sections dealing with the various applications of Romlt. They are listed here for reference:

*ACCESS *APPEND *BLOCK *DELETE *ENABLE *FILE *INFO *MEND *OVERWRITE *RBASIC *RBOOT *RELOAD *RENAME *RESTRICT *REXEC *RHELP *RTITLE *SNAP *SPACE *UNWIPE *WIPE

For every one of the three groups of commands described above to work on the RaFS, the command "RAM (or one of its variants) must have been issued prior to their use, and must not. have been cancelled by calls to any other filing system (eg *DISC etc), or by pressing BREAK.

If the RaFS is not active when any of these commands are called, the first two groups will operate as they would normally do without Romlt installed, while commands in the last group will not be recognised.

2.2 Using the RaFS

In this section we will work through some of the RaFS commands to give you a feel for the way in which they operate, and to show you how to get "instant" results.

As you will soon discover, the RaFS is very easy to use. This is because it behaves just like other filing systems on the BBC micro with which users will already be familiar.

First of all switch on your machine, and select the RaFS by issuing the command:

*RAM RETURN

or by using one of its variants, *RAM+ or *RAM-, (treated in section 6) if you have no sideways Ram fitted in your machine.

This will produce a message giving the amount of free memory available to the RaFS.

Now type in a few program lines. If you save your program as usual, it will be saved not to cassette or disc but to the silicon disc. Type for example:

SAVE"MYPROG" RETURN

The RaFS (like the cassette filing system) allows filenames of up to 10 characters, but does not support directories of the kind implemented on the DFS.

Having saved "MYPROG" to the silicon disc, you can catalogue the disc with:

*CAT RETURN

or

*. RETURN

and you should see that your program now resides in the RaFS Ram. Just to prove it you could clear the Basic workspace with:

NEW RETURN

Then load your program back in using:

LOAD"MYPROG" RETURN

If you type:

LIST RETURN

you should find that the program has been loaded back into user memory. Alternatively you will find that you can also use CHAIN to load and run your program, just as from cassette or disc. To do this type:

CHAIN"MYPROG" RETURN

You can save any number of Basic programs using the SAVE command as described above, the only limit being the total amount of Ram available to the RaFS. To find out how much free memory remains, you can use the *SPACE command. Just type:

*SPACE RETURN

More detailed information may be obtained by using the *INFO command, which operates in much the same way as with the DFS. Type:

*INFO RETURN

or

*IN. RETURN

for short. Having done this you should get a display that looks something like this:

RAM FILING SYSTEM (RaFS)
  !BOOT code: NO
SOCKET: F 16K !HELP code: NO
MEMORY: &8000-&BFFF !TITLE code: NO
End of RAM at................... 805C
Free space in RaFS...... (16291) 3FA3

Do not worry if all this does not mean a lot to you now. The *INFO command is simply giving you information on the RaFS, and the information given shows you the number of the socket containing the sideways Ram, it's length (whether 8 or 16K) and memory map, as well as the number of bytes available to you in the RaFS, and the address at which code in sideways Ram ends. The !BOOT, !TITLE and !HELP code messages serve to indicate whether or not three special features of Romlt have been initialised.

A further way of getting information about files stored in the RaFS is to type:

*OPT1,2 RETURN
*CAT RETURN

The user is referred to the User Guide for a full explanation. OPT1,2 also gives information when saving and loading files. Its effect may be turned off with:

*OPT RETURN

Returning to our example, you may like to experiment with saving and loading further programs on the RaFS. If you wish to delete any saved program, the command *DELETE will achieve this. Thus to delete the program "MYPROG", just type:

*DELETE"MYPROG" RETURN

A similar command, *WIPE, is used to clear the whole RaFS area - though if you change your mind before saving new programs to the wiped memory, you can use *UNWIPE to undo its effects.

Because the action of *WIPE is so drastic, it must, as a precaution, first be enabled with *ENABLE (or *EN.). So to wipe your RaFS Ram, proceed as follows:

*EN. RETURN
*WIPE RETURN

In common with the DFS the RaFS also provides a Rename facility. If you have saved a program called "MYPROG", you can change its name to "NEWNAME" as follows:

*RENAME MYPROG NEWNAME RETURN

Program and data files may also be locked to prevent accidental erasure. To lock "MYPROG", type the following:

*ACCESS MYPROG L RETURN

If you now catalogue the silicon disc, you will see that there is a letter "L" adjacent to the filename "MYPROG".

All attempts to Rename, overwrite or delete this file in any way except using the global *WIPE command, will produce the message:

FILE LOCKED

To unlock the file, type:

*ACCESS MYPROG RETURN

You may have noticed earlier that as you load programs in from the RaFS, a number of things appear on the screen. The words Searching and Loading followed by the program title MYPROG will have appeard, just as when loading a program from cassette. A block count is also printed, though if you have a very short program, you may not notice this. There will also be a beep when loading is complete.

If you wish to disable these visual and audio signals, just enter the following:

*OPT1,0 RETURN

Pressing BREAK will cancel the effect of the OPT command, as will typing:

*OPT RETURN

To obtain more detailed loading information, you may like to try using *OPT1,2 before loading a program.

It is suggested that you experiment further with the general RaFS commands provided by Romlt. To assist you, we list below a collection of the most general commands with a brief description. Full details on each are given in section 6 of this manual, and a full command summary appears in appendix (vi). You are also urged to experiment with the use of the cassette filing system commands. These are listed with notes in appendix (ii).

*ACCESS

Permits locking and unlocking of files

*APPEND

Allows storage of more than one file with same filename

*BLOCK

Transfers a block (8 or 16K) to or from RaFS Ram

*DELETE

Deletes a file

*ENABLE

Used with *WIPE and *BUFFER

*FILE

Copy a file to or from RaFS Ram

*INFO

Information on RaFS Roms and Ram

*MEND

Mend broken files

*OVERWRITE

Cancel the effect of *APPEND

*RBASIC

Used in connection with *RESTRICT

*RBOOT

Used to enable BOOT option

*RELOAD

Change the load address of a file

*RENAME

Rename a file

*RESTRICT

Enable copy-protection

*REXEC

Change execution address of a file

*RHELP

Used to enable HELP option

*RTITLE

Used to enable TITLE option

*SNAP

Activate auto-screen-dump

*SPACE

Return space remaining on RaFS Rom or Ram

*UNWIPE

Reverse the effect of *WIPE

*WIPE

Wipe the whole RaFS Ram