Software

Here we describe the software in SDX Plus :-

OS ROM

The OS ROM sits in the fixed ROM page.

It is patched jump to the SDX Plus tape support.

BASIC ROM

The BASIC ROM sits in ROM page 0.

The only reason it is included as in most MTXs, both the OS ROM and BASIC ROM are provided from a single 16KB EPROM chip.

CP/M boot ROM

The CP/M boot ROM sits in ROM page 4.

It is broken into a number of modules.

The ZMON module is the initial monitor. It is modified to boot F:52, B:07. Also, if both Shift keys are pressed during reset, it doesn't boot CP/M and returns to BASIC instead.

The KBD module is the keyboard driver.

SCRT is the 56 column VDP driver, which is used in the SCPM boot ROM.

FDSC is the usual SDX floppy disc driver code.

ISID is the Silicon Disc and RAM Disc driver. It is tweaked to understand the 320KB type 52 RAM Disc. This support is installed if what looks like the beginning of CP/M is found in the memory used as the RAM Disc.

SDX BASIC ROM

The SDX BASIC ROM sits in ROM page 5.

The SDX BASIC ROM and the CP/M boot ROM are delivered in the same 16KB EPROM chip.

The SDX ROM in a real SDX provides USER commands to MTX BASIC, allowing the user to read and write files on a floppy disk.

The SDX ROM in SDX Plus is pretty much the normal version, except it supports B:07 and F:52.

As a result of not supporting B:07 and C:07, the BDOS Err R/O bug is fixed.

As a result of supporting F:52, it was necessary to steal areas of high memory that would otherwise be used by the NODE RING ROM. This support is therefore incompatible with the NODE RING ROM.

Remember, to use the SDX support, you must first use ROM 5. The floppy disc must contain a 59K CP/M system. If this is not the case, you'll get a DISC ERROR.

Track and sector based formatting doesn't make sense for the RAM Disc. Instead use the REFORMAT.COM CP/M executable.

Tape support

The tape support is physically present in the SDX ROM, and the OS ROM is patched to jump there.

SDX Plus loads and saves to virtual cassette, as administered using the SDPTAPE.COM command.

This tape support has a feature called tape-breaker. During LOADing, hold down the right Shift key. After each block is loaded, the border will go yellow. Press INS to proceed as normal, in which case the border flashes green. Press ENT CLS to break in at that point, in which case the border flashes red, and the break entrypoint in the BASIC ROM is entered.

One way to use this feature is to LOAD the program twice. The first time, simply press INS each time and count how many blocks are loaded before the program starts. The second time, press INS one fewer time, and then ENT CLS for the last time. Hopefully there is enough of the BASIC program there to inspect.

If you are loading from .mtx file, you can also use MEMU with its -diag-console and -diag-tape options to discover how many blocks there are in your program.

CP/M utilities

SIDISC.COM

SIDISC.COM is patched to understand 320KB type 52 RAM Discs.

This is a superset of the functionality originally shipped with Memotech products, and may be used on earlier systems. However, without a CP/M boot ROM that also understands type 52, you won't be able to boot from a type 52 RAM Disc on those older systems.

CONFIG.COM

CONFIG.COM is patched to understand 320KB type 52 RAM Discs.

This is a superset of the functionality originally shipped with Memotech products, and may be used on earlier systems.

You could also use the RECONFIG.COM used by REMEMOTECH and REMEMOrizer, as this understands them too, and more.

REFORMAT.COM

Back in the day, there were 3 different formatting programs :-

SDX Plus includes REFORMAT.COM which doesn't issue hardware level formatting commands, and instead it overwrites the reserved tracks and directory area with sectors containing 0xe5 bytes. This can therefore be used to "format" the RAM Disc.

SDPTAPE.COM

SDPTAPE.COM is a program for managing the virtual cassette tapes feature in SDX Plus. Its much like the RETAPE.COM program used to do the same thing on REMEMOTECH and REZTAPE.COM on REMEMOrizer.

There is one read/write 64KB SRAM slot (slot number 0) and a read-only 48KB SRAM slot (slot number 1).

The following commands can be used :-

SDPTAPE
List bytes 1-15 of each virtual cassette tape in each slot. ie: the name to LOAD from MTX BASIC.
SDPTAPE slot
Delete the contents of the indicated slot.
SDPTAPE INPUT.MTX slot
Read file INPUT.MTX and write it into the indicated slot. Note: The file cannot be larger than the size of the slot.
SDPTAPE slot OUTPUT.MTX
Read the indicated slot and write to a file called OUTPUT.MTX. Note: The resulting file will be the size of the slot, regardless of how many bytes have been saved to that virtual cassette tape.
SDPTAPE ?
Show help text, summarising the above.

The INOUT routine in the MTX BASIC ROM has been patched so that :-

LOAD ""
Loads from slot 0.
LOAD "NAME"
Looks for NAME in slots 0 to 1 and loads it. If no slot has this name, then a "No data" error results (a real Memotech MTX just keeps reading hoping that it will eventually find a saved file with this name, but REMEMOrizer knows it is not present and so gives up).
VERIFY ""
Verifies against the data in slot 0.
VERIFY "NAME"
Looks for NAME in slots 0 to 1 and verifies against it. If no slot has this name, then a "No data" error results.
SAVE "NAME"
Saves to slot 0.

The recommended approach to use is to use SDPTAPE.COM to write the game you wish to load to a tape slot, switch to MTX BASIC, and then LOAD it. If you save anything from MTX BASIC, boot to CP/M afterwards and use SDPTAPE.COM to read slot 0 and write to a .MTX file.

MTX.COM, MTXL.COM and RUN.COM

It also has the MTX.COM and MTXL.COM programs, which can be used to switch into MTX BASIC. MTXL.COM is preferred, as it does not corrupt RAM Disc in the transition.

RUN.COM is a CP/M program which can be used to run some .RUN files, without having to switch into MTX BASIC, and use the SDX ROM to USER RUN "FILE.RUN" them. This program puts the file content directly into memory, switches into the right memory mode, and jumps to the start of the program. This means that MTX BASIC has never been running, and has not set up any of its system variables. As a result, some .RUN files may not run properly this way.

Sample floppy disc image(s)

The Disk Images download has various images, including the CP/M executables mentioned above, and a wide selection of games.

The main improvement is to

STARTUP CONFIG B:07,F:52