Sorcerer ROMPAC Basic Games on CP/M

There were a number of games on the Sorcerer disks that fired up fine, but there were a large number that did not.

I got some help from Alan Laughton (Microbee Technologies) to work out what was going on. He spotted that the files contained basic. They were com files – so quite different from the basic files that you would load into the disk basic.

Browsing through the manuals and other data, it became clear that the ROMPAC BASIC work area had been set up in such a way as to allow programs to be saved and loaded with CP/M.

The ROMPAC basic has a lot more memory available to it than the disk basic. It doesn’t waste space on the interpreter or the operating system.

The first entry in the com file is a jump to the warm start area of the basic ROMPAC. This failed on my machine because i had no ROMPAC.

What i did have, though, was a 8k S-100 RAM card (Solid State Music MB6) which i could locate at the same address as the ROMPAC at C000.

The card, predictably, failed the Sorcerer Monitor RAM test, but the offending IC was found and replaced.

I tested it out by using ddt to load the ROMPAC which was moved up into the RAM card. Following reset, the “RAMPAC” was found and basic fired up.

“bye” at the basic prompt returned to the Sorcerer monitor and GO BC00 started CP/M again. One of the previously failing com files was loaded and sure enough it ran!

After that, i wrote a very short program that replaced the ddt step. This allowed another 23 games to execute.

I’ve since created to couple more which load the development and word processor ROMPAC code into the RAMPAC.

The memory card had a facility to write protect the contents, so i added a switch to the expansion unit to enable it.

Transferring ROMPAC Basic Programs from CP/M to Tape

Some of the basic games that have been stored as CP/M com files are missing from the sorcerer archives at Microbee Technologies (Alan Laughton is the curator) so i went through the process of transferring them back to audio files.

These were translated to wav files as follows:

  1. At monitor GO BC00 to boot up CP/M.
  2. Load the basic rompac (LDRAM).
  3. Reset – starts basic.
  4. Bye to return to monitor.
  5. SE T=1 to set 300 baud.
  6. GO BC00 to boot up CP/M.
  7. Load up the game eg A>LAIR to load up LAIR.  This starts up the ROMPAC basic.
  8. Load up Audigy on a PC.
  9. Set recording gain to max and the input to mono.
  10. Connect LINE IN on PC to AUX on Sorcerer.
  11. Start recording and enter CSAVE LAIR.
  12. When the sorcerer comes back with READY stop the recording and trim if necessary.
  13. Apply a good 20dB of gain to maxout and square up the waveform.
  14. Export the audio to a wav file.

Check as follows:

  1. Connect the PC LINE OUT to the input of the external amp.
  2. Connect the external amp output to the EAR input of the Sorcerer.
  3. Set Audigy playback volume to max. 
  4. Watch the EAR input with a scope and back off the Audigy volume until the waveform is clean and square.
  5. CLOAD LAIR.
  6. Hit play on Audigy.
  7. The title should be shown in less than 30 seconds.
  8. By the time the audio is complete, the sorcerer should say READY.
  9. RUN and enjoy.

If you want to do another then breakout with ^C, BYE to return to monitor and GO BC00 to boot CP/M.

Using HD 5.25″ FDDs as 8″ Drive Substitutes

High density 5.25″ disks have much the same capacity as 8″ double density disks, and they operate at the same data rate. A 5.25″ FDD typically has a few more tracks than an 8″ FDD.

This means that a floppy disk controller expecting to see an 8″ disk drive can potentially be fooled into working with an HD 5.25″ drive. This can be very handy if you don’t have an 8″ drive or if you want a more compact setup. This trick seems to work ok with a real HD drive or with a gotek/flashfloppy. 8″ disk images can be written to HD 5.25″ media without alteration using Greaseweazle, for example.

There are a few small issues. The first is the 8″ drive interface is usually 50 pins and the 5.25″ interface is usually 34 pins. The disk controller may have both interfaces (eg the Jade DD and the 16FDC) but not always (eg the Pulsar Little Big Board only has a 50 pin interface). If there is no 34 pin interface, then an adapter will be required. The 50 pin interfaces vary a bit, so a specific adapter may be required.

The second is that 8″ drives can detect whether a drive is single or double-sided and tell the host. The operating system driver may exploit this information (eg Jade DD CP/M) so there may need to be a way to fake this. For systems that use only single sided or only double-sided disks the signal can be tied appropriately otherwise a switch may be required – and if there are different drives in the system then it may be necessary to take the signal low through a diode from the drive select line.

Third is that 8″ drives typically produced a ready (RDY) signal. Without this signal, a host may just hang. This signal is available on many drives and can usually be setup on a gotek/flashfloppy but it may not be connected on the 34 pin interface. This can be overcome by connecting pin 34 on the 34 pin interface to the appropriate pin on the 50 pin interface.