Ohio Scientific Challenger 1P: Stocking up with Software

Now that that Challenger was fully loaded with working memory (whoa hoo!) it was time to trawl the nether regions of the Internet and see if I could net some software titles.

Googling around found several sites of interest like this one. Some had software for download and others had emulators which came with their own software libraries. Most programs were games, or scientific/mathematical utilities like how to calculate prime numbers. I guess this is a reflection of the age and vintage. An off-the-self Challenger 1P had a mere 4k of base RAM and there was not much you could do with that!

The files I found were mainly BASIC listings but there were a few HEX dumps also. They were all in text format.

I had the files, now the challenge (if you'll pardon the pun) was to get them into the Challenger 1P.

Transfer via RS-232? Hmm...no

Reading the Challenger documentation, talking with people on the Vintage Computer Forums and googling around showed two possible options. One was to transfer the files via the RS-232 port. Given the right transfer software, this is usually easy to do with files in a text format, and that's what I had. It looked straightforward and Challenger 1P Revision D boards had all the circuitry in place for this.

Pity my board was Revision B.

Revision Bs could be converted to Ds with some cutting and soldering but I didn't really want to mess with the board. I went for a second option; the more conventional method of loading these programs through the cassette port.

Transfer via Cassette Port

Photo 2. PC. Soundcard in place of cassette player

The conventional way to get software in the Challenger in the day would have been via the cassette port. The way the computer manages this however, is rather unconventional. It's essentially a straight serial dump, line by line, across the port as if the code is being typed at the computer. If any line does not have the right syntax (due to a transmission error say) the computer responds with a syntax error for that line and discards it. Also, the computer loads in cassette sound files at 300 baud. Three hundred baud is slow, even for vintage microcomputer standards. It's a good thing these files are relatively small!

Now, back in 1979 files would normally have been loaded from audio cassette tape. However, I wasn't intending to go to this level of antiquity. I had programs in text file format on the XP PC. What I needed to do was to convert these to WAV files, and load them directly into the Challenger through the Soundcard speaker output. I use this technique to dish up software to many of my cassette based systems including the TRS-80 Model 1, System 80, Colour Genie and ZX-Spectrum.

Hopefully, I could do the same here.

Text file to cassette audio converter software

I searched around hoping to find a WAV converter. Eventually I found one. It is KCS, which stands for Kansas City Standard/CUTS Tape Conversion Utility. The latest version I could find was 0.8. Here is the introduction to the README file:

KCS - A Kansas City Standard/CUTS Tape Conversion Utility

This is for all you old-timers that still have computer programs
on cassette!

One of the most popular early ways to store computer programs on
audio cassettes was the Kansas City Standard (also known as the
'BYTE standard'). Developed in 1975, it uses an encoding scheme
where a '0' bit is represented as 4 cycles of 1200Hz and a '1'
bit as 8 cycles of 2400Hz. The data rate is 300 bits per second.
Computers which used the Kansas City Standard include S100-based
systems, PT SOL-20, Ohio Scientific C1P/Superboard II, Compukit
UK101, Acorn ATOM and many others.

The "KCS" utility allows programs stored on cassette tape using
either the "Kansas City Standard" or "CUTS" (Processor Technology
Computer Users Tape Standard) to be decoded to a program file.
The reverse process - converting a program file to an audio
wavefile is also possible, allowing one to produce perfectly
regenerated cassettes. KCS works with 8-bit mono WAV, VOC or RAW
audio files recorded at 22050 samples per second. A variety of
serial formats are allowed including 7 or 8 bit data, 1 or 2 stop
bits, odd/even or no parity.


This looked like just the ticket.

Photo 3. KCS in a DOS window showing its various options

Converting Files

I wondered whether KCS would work in the DOS window in XP? Nothing else to do but try it. The program has a number of switches and I just used the one which outputted a WAV file. It worked like a dream... in no time at all I had a sound file.

Could it be loaded into the Challenger 1P though?

Tweaking the process

Photo 4. Loading in a BASIC program

I connected the Challenger to the soundcard with an audio cable. I decided to tackle BASIC first but the the first few loads were not that successful. The odd garbled character was in evidence when the incoming program scrolled up on the screen. Of course you only need one of these in a program to render it useless. After a bit of fiddling (Ok, I admit it...three hours of fiddling!) I finally struck the right formula for a successful load.

There were actually three things I had to tweak:

  1. The load was dropping the beginning of line numbers occasionally. I found if I set one of the KCS software switches to -n5 then it did not do this. This switch added nulls to the end of lines (I think). Anyway, it seemed to work.
  2. Often an odd character would be appear at the very start of the program at the beginning of the first line. In fact it would usually appear when the play button on my Audacity audio player was pressed with the mouse. It was like that action made caused some audio hash and sent a bit of garbage over the line. It mean the first line was often corrupted and hence discarded by the computer. I fixed this by editing all the BASIC files adding a "0 REM" at the start. It didn't matter if I got some garbage at the beginning of THIS line. REM statements are not used hence are expendable!
  3. The correct volume setting had to be found. This was done by trial and error. Eventually a safe range was determine

Hex Loads

Loading in the HEX programs was more complex, but used a similar 300 baud audio stream. This time though, data was loaded directly into memory locations using the "Load" function of the built-in monitor program. It worked fine but I found the HEX programs seem to be developed for screens with more columns than my Challenger 1P models had! In the end, I didn't keep any.

All Done

So, eventually I managed to successfully load in and test all the software of interest. I discarded a few titles, but here are the ones I'm keeping:


These will stay on my PC hard drive in a OSI Challenger 1P folder ready for when they are needed. This vintage unit need never be lonely again!


2nd May, 2009

comments powered by Disqus