diff --git a/README.md b/README.md
index 7de2f3c..4570bd5 100644
--- a/README.md
+++ b/README.md
@@ -20,22 +20,35 @@ I havent yet documented this upgrade as it is still undergoing minor tweaks, but
## Rom Filing System v1.0
-The Rom Filing System replaces the Monitor ROM and User ROM by lifters onto a daughter card where 2 512Kbyte Flash RAMS are sited. One Flash RAM is paged into the Monitor ROM socket and the other into the User ROM socket. The first 16Kbyte of each Flash RAM is dedicated to paged ROMs with the remainder being used to store Sharp MZF format binary images compacted within 256byte sectors.
+The Rom Filing System replaces the Monitor ROM and User ROM by lifter sockets onto a daughter card where 2x512Kbyte Flash RAM's are sited. One Flash RAM is paged into the Monitor ROM socket and the other into the User ROM socket. The first 16Kbyte of each Flash RAM is dedicated to paged ROMs with the remainder being used to store Sharp MZF format binary images compacted within 256byte sectors.
-The necessary software has been written and can be found in software/asm, in the files:-
-rfs.asm rfs_bank1.asm rfs_bank2.asm rfs_bank3.asm rfs_bank4.asm rfs_bank5.asm rfs_bank6.asm rfs_bank7.asm rfs_mrom.asm
+The necessary software to alow bank paging and the Rom Filing System additions has been written and can be found in software/asm, the following table describes each file.
-rfs.asm and all the rfs_bank< x >.asm are for the User ROM software which is invoked by the original Monitor ROM on startup. This provide the RFS file system and additional MZ700/800 style utilities. The way the code is structured, a call can be made from one bank to another thus providing almost 16K program space in the User ROM slot.
+| Module | Target ROM | Size | Bank | Description |
+|------------------------|------------|------|------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| rfs.asm | User | 2K | 0 | Primary Rom Filing System and MZ700/MZ800 Monitor tools. The code i |
+| rfs_bank1.asm | User | 2K | 1 | Empty - further functionality can be placed here. |
+| rfs_bank2.asm | User | 2K | 2 | Empty - further functionality can be placed here. |
+| rfs_bank3.asm | User | 2K | 3 | Memory Test utility and 8253 Timer test. |
+| rfs_bank4.asm | User | 2K | 4 | Empty - further functionality can be placed here. |
+| rfs_bank5.asm | User | 2K | 5 | Empty - further functionality can be placed here. |
+| rfs_bank6.asm | User | 2K | 6 | Empty - further functionality can be placed here. |
+| rfs_bank7.asm | User | 2K | 7 | Empty - further functionality can be placed here. |
+| monitor_SA1510.asm | Monitor | 4K | 0 | Original SA1510 Monitor for 40 character display. |
+| monitor_80c_SA1510.asm | Monitor | 4K | 1 | Original SA1510 Monitor patched for 80 character display. |
+| rfs_mrom.asm | Monitor | 4K | 2 | Rom Filing System helper functions located in the Monitor ROM space in Bank 3. These functions are used to scan and process MZF files stored within the User ROM space. |
+| unused | Monitor | 4K | 3 | Unused slot for further functionality. |
+rfs.asm and all the rfs_bank< x >.asm are for the User ROM software which is invoked by the original Monitor ROM on startup. The functionality in these files provides the RFS file system and additional MZ700/800 style utilities. The way the code is structured, a call can be made from one bank to another without issue (stack and execution point manipulation is taken care of) thus providing almost 16K program space in the User ROM slot.
-rfs_mrom.asm is located in the 3rd bank of the Monitor ROM (bank 1 = original SA1510 ROM, bank 2 = 80 column modified SA1510 ROM) and provides utilities needed by the Rom Filing System.
+rfs_mrom.asm is located in the 3rd bank (bank 2) of the Monitor ROM (bank 0 = original SA1510 ROM, bank 1 = 80 column modified SA1510 ROM) and provides utilities needed by the Rom Filing System. Thes utilities are specifically needed for scanning and loading MZF files stored in the User ROM Flash RAM (because code executing in the User ROM cant page itself out to scan the remainder of the ROM).
-The two shell scripts software/proc_mzf.sh and software/make_roms.sh are used to convert MZF files into a ROM image. proc_mzf.sh takes a set of MZF files and pads them to the desired sector size, ie. 256 bytes. make_roms.sh is a manually coded shell script to enable copying of required software and MZF files into a ROM image suitable for flashing into the Flash RAMS.
+The two shell scripts software/proc_mzf.sh and software/make_roms.sh are simple shell scripts used to convert MZF files into a ROM images. proc_mzf.sh takes a set of MZF files and pads them to the desired sector size, ie. 256 bytes. make_roms.sh is a manually coded shell script to enable copying of required software and MZF files into a ROM image suitable for flashing into the Flash RAM's
-To assemble the software, in the tools directory is the shell script assemble_rfs.sh. This script requires the GLASS Z80 Assembler which is freely downloadable.
+To build the software, there is a shell script in the tools directory called assemble_rfs.sh. This script requires the GLASS Z80 Assembler which is freely downloadable (https://bitbucket.org/grauw/glass/src/default/).
The procedure to build a ROM is:-
-1. Convert required MZF files into correct sector padded files. The proc_mzf.sh file takes a directory and processes all files within, creating originalfile.mzf as originalfile.mzf..bin
-2. Assemble the Z80 code using software/tools/assemble_rfs.sh (or software/tools/assemble_roms.sh for compiling all source including the SA1510 monitor ROM).
+1. Take a set of MZF files and convert them into correct sector padded binary files. The proc_mzf.sh file takes a directory and processes all files within it, transforming originalfile.mzf to originalfile.mzf..bin
+2. Build the Z80 code using software/tools/assemble_rfs.sh (or software/tools/assemble_roms.sh for compiling all source including the SA1510 monitor ROM).
3. Build the ROM using the software/make_roms.sh - before using you need to create your own section of MZF files by listing the files with ls -l then converting them into a set of ROM256_USER variables for programs that will go into the User Socket Flash RAM and ROM256_MROM variables for programs that will go into the Monitor Socket Flash RAM.
Upon boot, the typical SA1510 signon banner will be appended with "+ RFS" if all works well. You can then issue MZ700/MZ800 monitor commands or I to list Rom Filing System contents. To Load a program from the Rom Filing System, type:-
@@ -46,14 +59,38 @@ L< program name >
If the 40/80 column card is installed, typing '4' switches to 40 Column display, typing '8' switches to 80 Column display.
+The supported commands can be found in the table below:
+
+| Command | Parameters | Description |
+|---------|-------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| 4 | n/a | Switch to 40 Character mode if the 40/80 Column display upgrade has been added\. |
+| 8 | n/a | Switch to 80 Character mode if the 40/80 Column display upgrade has been added\. |
+| B | n/a | Enable/Disable key entry beep\. |
+| C | n/a | Initialise memory from 0x1200 \- Top of RAM\. |
+| D | | List/Dump memory from in hex and ascii\. |
+| F | n/a | Boot from Floppy Disk |
+| I | n/a | List the files stored in ROM\. Each file title is preceded with a hex number which can be used to identify the file\. |
+| J | | Jump \(start execution\) at location \. |
+| L | or | Load file into memory from Tape or Rom Filing System\. If a or is given, the RFS is searched, if no parameter is given then the first program encountered on tape will be loaded\. |
+| l | or | Same as above but once the program is loaded it will not be executed\. Control will return to the monitor\. |
+| M | | Edit and change memory locations starting at \. |
+| P | n/a | Run a connected printer test\. |
+| R | n/a | Run a memory test on the main memory\. |
+| S | | Save a block of memory to tape\. You will be prompted to enter the filename\. |
+| T | n/a | Test the 8253 timer\. |
+| V | n/a | Verify a file just written to tape with the original data stored in memory |
+
+### Images of the RFS Daughter Board
#####

+The topside without the Flash RAM's being sited. The first PCB was inteded to use a Skinny DIP device but I ordered the wrong part so had to make an adapter to fan out the Skinny DIP footprint to a standard DIP footprint.

+The underside has 2x28pin adapters such that the board plugs into the original Monitor/User ROM sockets. This keeps the upgrade reversible and doesnt change the original motherboard.

-
+The RFS daughter board plugged into the original motherboard via the Monitor/User ROM sockets.
## Credits