Transferring Single-Density TRS-80 Model 1 / System 80 Disk Images to Real Disks
The problem - A disk disaster!
Figure 1. A stack of bad disks, similar to my System 80 ones
About 10 months ago I dragged out my old System 80 and fired it up for some nostalgic retro-computing. Despite not having seen the seen the light of day for a few years the machine was fine.
Not so fine though, was the disk collection which had spent the last decade in damp cellars, hot attics and everywhere in between. Some simply refused to load. Others loaded, but deposited sticky residue on the disk heads that then proceeded to gouge grooves in that disk and all that came after it. They were in the same (bad) condition of the disks of my recent apple haul, (pictured opposite)!
It was a disaster, and of my collection of about 50 double-sided, single-density disks, only about five could be salvaged. The contents of these 5 were quickly copied across to brand-new disks. However, many of my favourite games had been lost.
Luckily, I had emulator disk images of my whole collection mirrored on my PC. At least that was something. But how could I get these favourite games, utilities and applications back onto real disks for that complete retro-experience?
In most vintage systems, images can be transferred just fine via the serial port. Problem was, a serial port was never a common option in the System 80 (or TRS-80 Model 1, although they did exist). My System 80 was missing that vital piece of hardware. In fact, the only communication link that was standard on the System 80 was the external cassette port. I decided to try this first.
Using the PC Soundcard and System 80 cassette port - Slow and painful but works (mostly)
Matthew Reed’s TRS32 emulator will save cassette files as WAVS by default. So does Attila Grosz's HT-1080z emulator. Using this feature, I managed to successfully transfer some software from disk images in the PC to real disks on the System 80
First I would write out the program as a WAV file on the PC using either the CSAVE command in BASIC (for BASIC files) or a relocatable monitor program like TASMON (placed in high memory) for machine language files. The latter program sits right at the top of 48k memory, which is out of the way of nearly all machine-code programs, and can load and save both cassette and disk machine language files.
Figure 2. Playing a cassette WAV through the soundcard using Windows WAV Recorder
Once the WAV files were ready, I'd load them into my System 80 via the PC soundcard. The System 80 would think that it was talking to a cassette.
On the System 80 side, loading BASIC files was straightforward (although you have to remember to turn interrupts off) and once loaded could be saved to disk easily by simply using the "SAVE" command. For machine language programs, TASMON again was used. It would load a cassette file (or what it thought was a cassette file) then write it back out onto a real disk.
The picture opposite shows the Windows recorder program playing a WAV. Also shown is a screen snapshot of the sound settings which I knew worked (better than scribbled notes!).
The procedure was painfully SLOW, but it did the job!
Ordinarily the System 80 won't load in System (machine-code) programs from the external cassette port. However in one of my units, I'd installed a switch which swapped the external and internal cassette ports. No worries then!
This option allowed me to recapture many of my favourite games from the emulator disk images and restore them back to real disks. However, there are some things it couldn't do. The only files it could transfer were machine-code and BASIC ones. Yet a typical disk package had associated files such as overlays, drivers, text documents etc. These could not be transferred by the above.
My lost copy of Lazywriter seemed doomed to remain in virtualization only forever!
Omniflop - Had possibilities, but defeated by my Alien DOS/hardware combination in this instance
Figure 3. Omniflop disk format list
While looking around for a solution to the problem above, I thought of Omniflop. This program had been useful to me in the past, allowing Net-sourced BBC software to get from my PC to the BBC (b). The program handles "alien" disk formats (part of the list of formats is shown in the picture opposite) and can read (from real disks) and write (from disk images) many non-PC disks. It worked with my BBC, maybe it would work with my NewDOS 80 v2.0 disks?
One problem was there was no support in Omniflop for NEWDOS 80 v2, the DOS on my System 80. However the author Jason Watton encourages people to send disk maps of unsupported formats, so support can be added. I tried getting a map, but unfortunately my PC just couldn't read the disks completely even to map them! Jason tried his best to guess what might be in the missing sectors and added a trial format for both NEWDOS 80 v2 and TRS-DOS. However, my PC stubbornly refused to write out disks in this format.
It seemed I needed another way.
The Semi-virtual diskette (SVD) - The answer!
About 9 months ago I'd come across a webpage describing a very crafty device. The Semi-virtual diskette pretends to be a vintage disk drive! By connecting it to the PC's serial port, it can load itself with an emulator disk image (or three) from the PC. The System 80 (or TRS-80) then interrogates the unit and uses the disk images just like real disks! Furthermore, you can use the SVD alongside your real drives, and read and write to the latter.
Figure 4. The Semi-virtual diskette
I saw one of these (pictured opposite) on ebay a few months ago and snapped it up. It needed a power supply socket and switch added, which I'd never gotten around to soldering on. Realising that Omniflop wasn't going to solve my problem, I dragged it out, added the necessary bits and pieces and gave it a shot.
I'm impressed. I'm VERY impressed. It works like a charm. What a neat little device! Setup was a breeze and I can now have up to three 40 track single sided single-density disks (one real, two virtual) attached to the System 80.
I've configured it such that the boot disk (drive 0) is from my own floppy drive, and the SVD holds drives 1 and 2.
I've now copied Lazywriter, and all of the important software I had lost back on to fresh disks.
It's good to know replacement disks and replacement software copies are easily obtained from my virtual disk archive on the PC if the need is there.
Figure 5. The SDV mimicking drives 1 and 2 (as seen on the PC screen)
So there you have it, my disk transfer adventure. That's one more problem solved!
7th October, 2008