• Please review our updated Terms and Rules here

Another (new) Polymorphics-88 emulator and tape (WAV) decoder

powool

Member
Joined
Feb 26, 2026
Messages
25
It's very close to 50 years since I started my journey with the Poly-88. I was 14, and Dad had been wanting one for awhile, finally ordering ours mid-year 1976, but instead of Poly RAM, bought a couple of 8K static RAM cards from Processor Technology - it was cheaper, if I remember right.

I ended up learning nearly everything important that I know about computers from that Poly.

Partly as a tribute to my Dad, and definitely to help preserve the history of the machine, I'd started goofing around with an emulator back in the late 90's, using it as an excuse to learn C++.

The emulator stagnated for decades for lack of time to work on it, and honestly, because I had trouble figuring out the darned half carry flags. But not too long ago, I got motivated to fix that, and figured out a way to compare a known good implementation to mine, and finally fixed it.

Alongside the emulator, I had been trying to figure out how to properly decode Byte and Polyphase tapes. I had some luck, getting some readable data, but never really got it working very well.

There, too, I've lately had more time, so started improving the user interface for both, but still struggled with Polyphase decoding.

Finally, I had some insight into decoding Polyphase (manchester encoding) and got it working quite well!

So there are two programs on github:

and

Both have been developed on Ubuntu, and require QT6 development libraries to be installed, along with cmake, g++ and so on. Most any Linux distro should be able to build them.

It should be possible to create cross compiles for Windows, but I haven't set that up yet.
 
Last edited:
This is a window show of the tape reader, which I've been working on a lot the last few days. After loading all of the files from the tape, it reported 10 errors. I was actually able to find and edit a broken waveform using the built-in wave editing. Others might be fixable, but I haven't gotten to them yet.

The tic marks along the bottom of the waveform represent the byte boundaries - the shaded blue tics are the header, the green tics to the right are the data bytes. When zoomed in quite a lot, you can see the bit boundaries and the waveform samples (which can be edited).

In my case, I had several copies of the file, so I can sometimes get a clean copy with no errors (ignoring the fact that the arithmetic checksum is a weak checksum).

1774481185130.png
 
Using the above screenshot as a starting point, I zoomed into the problem area on the tape - it is pretty easy to see, because the audio drops out to a low level - I'm not sure if it is a magnetic fault, dirt, or just what:

1774481557792.png
 
I can fiddle with the DC offset to maybe address the low troughs in the signal that don't cross zero, but that won't work for the run of 4 or 5 cycles that go on an upper slant to the right of that. So I haven't done it for this error, but I could start fiddling with those waveforms to move then closer to 0. Also, because the source is human readable, I can move a byte reading selection to the exact spot where the error starts, then fiddle with the waves to see if I can get a reasonable character.
 
Here's the emulator running the ROSES program. The bottom left display of course should remind you of the Poly front panel - a work of art then and now. I added that because I do find myself trying to see what the machine is doing even if interrupts are disabled.

1774482292825.png
 
I used to restore tapes. The most common problem was the tape folding around the capstan. Most of the BASIC tapes were relatively easy to fix. There is a lot of redundancy in BASIC code.
I've not played with my stuff lately. I have an EPROM with a version of tiny BASIC. I've got code that run a version of Star Trek. Deramp has a good number of tape data files as well.
Dwight
 
Back
Top