Obtaining software for an Exidy Sorcerer
(Note: This page describes my experience with getting software from the Internet to use on my Sorcerer. It you've arived here LOOKING for software, go to a more recent page here).
Software! Every classic computer needs it otherwise what have you got? A collection of retro-looking cases. My Sorcerer came with a dozen or so tapes containing games, utilities and a word processor but loading was far from reliable. What was needed was a bank of cool cassette-based software kept as WAV files on my PC which I could tap into at will.
Figure 1. Software from cassette. Retro but not necessarily reliable!
The following blog entry shows how this goal was accomplished. Note this only relates to Z80 machine language programs NOT BASIC programs, as my BASIC ROM-PAC is broken at the time of writing. However, I should be able to pick up/convert BASIC programs in a similar way once it's fixed.
Sources and conversion via MESS
Finding software on the web can be a hit-and-miss affair. Large repositories exist for some machines while for other computers, programs can be scarce. It seemed software for the Sorcerer fell into the latter category.
Snooping around I eventually found a reasonable collection from a link posted on this retroroms forum (thank you Robbbert!). There was only one problem. Most of the files were not in a WAV format and so couldn't be used directly. Instead they were in a binary "Quickload" format for use in the MESS emulator. Damn! However all was not lost. A quick scan of the MESS specs showed this emulator had the ability to output WAV files, at least when emulating an Exidy Sorcerer. Consequently, I should be able to use MESS as a kind of converter, eventually changing all the software into sound files, which I could then use on the real machine. Oh goody!
Eventually I managed this although it was not without its problems. In case those reading this might wish to do the same, I'll outline the method here, then talk about some of the issues at the end. Bear in mind that MESS is constantly changing and some of these steps may not be valid in the future. It worked for me at this particular time under Windows XP SP2 though.
Here's what to do...
1. Download and configure MESS
It needs to be configured with Sorcerer ROMS which can be download from here. I found some of these ROMS needed to be renamed to what MESS expected to find (MESS tells you what's expected) and others needed to be joined together in one large file e.g. the BASIC ROMS.
2. Configure the emulator NOT to autorun a Quickload file when loaded
Launch the emulator. Once the Sorcerer screen appear press ScrLock to activate the on-screen menus then press TAB. You will see a long list of options. Select "Driver Configuration" and change "Autorun on Quickload" to NO. This will allow a Quickload machine language file to be loaded but not executed.
3. Attach a Quickload file and create a virtual cassette
From the MESS GUI, click on the Sorcerer icon in the system list then click on the "Device View" tab (Figure 2). From there, load in the Quickload program you want to convert, and also create a virtual (empty) cassette file of type WAV by clicking on the control to the right of the pathway to see the menu. Be sure to select "Create" and specify a WAV file in the file type drop down box once you come to name the file.
Figure 2. Adding a blank virtual cassette file
3. Load the Quickload program into the emulator
Running the emulator with the Quickload file attached should show the startup screen, and reveal the beginning, end and entry points of the Quickload program at the bottom as it's loaded in. Note these down as you'll need them later. Assuming the autostart is disabled as outlined in step 2, you should eventually be returned to the monitor prompt (i.e. a ">" symbol).
4. Re-establish the entry point
Because the entry point was disabled (thus allowing us to return to the monitor upon load) it needs to be re-established. Enter the command "SE X=<entrypoint>" where <entrypoint> is in HEX.
5. Save the program out to the virtual tape
At the Monitor prompt, type "SA <NAME> <Startaddress> <Endaddress>" but DON'T PRESS <RETURN> JUST YET. <Startaddress> and <Endaddress> are HEX values. and NAME is the 5-letter name of the program. It must start with a letter not a number.
Figure 3 shows steps 4 and 5.
Figure 3. Re-establishing the entry point (right) and saving the program (right)
Before pressing <Enter> the virtual cassette recorder needs to be put into record mode. Press the ScrLock key. Then press tab and go to "Tape Control" From there select "Record" (Figure 4) then press ESC to get rid of the menu option.
Figure 4. Switching on recording
Finally press <Enter> so the emulator starts to save . You should then see an indication that recording is taking place at the top of the screen (Figure 5)
Figure 5. Recording in progress
After the virtual tape is made, press ESC to exit the emulator.
6. Slow down the virtual tape speed (due to a bug in MESS)
You might not need this step if you have a more recent version of MESS than me which has fixed this bug (I used version 0.142 - April 3rd, 2011). I found MESS wrote out the WAV files about 8.5% faster than they should be making them unusable in a real Sorcerer. The solution is to use a program like Audacity to reduce the sound files speed by 8.5 %. Once this is done. the WAV file should load reliably into a real Sorcerer.
Figure 6. Playing a WAV file in Audacity
That's all there is to it.
Actually the above was quite a mission due to a number of reasons. First, it took me a while to find my way around MESS as the documentation is rather fragmented and not that clear. It's a huge open-source system with lots of developers and so has sort of grown organically. Also, for some reason any configuration changes I made were not saved by the MESS GUI? I'm not sure why.
The fact that the WAV output from MESS was incorrect had me stumped for a long while. Certainly the WAV files LOOKED good with nice square waves. At first I thought the Sorcerer was just sensitive to volume. Then when loading failed at almost every volume setting I started to suspect timing. Trial and error showed that loading seemed to occur ok with a slowdown of between 7.5% to 9.5%. Eight and a half percent is in the middle of this range so that's the slowdown % I used for my software library.
Figure 7. Anyone for a nice game of chess?
All of the files I converted were Z80 machine code files which could be run directly from RAM. If you were converting a BASIC file from a Quickload one, you wouldn't need to re-establish any entry point. All you would need to do would be to use the BASIC command for saving a cassette file.
One more thing to mention. When I used one of my other datasettes I found most of the tapes that came with the unit actually did load reliably. Either way then, I'm now well stocked with software either for demos or just my own entertainment!
18th June, 2011
Update 29th January, 2017. I've collected a large number of programs for the Sorcerer and made them available in a archive. You can find it on this page.