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:
This looked like just the ticket.
Photo 3. KCS in a DOS window showing its various options
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:
- 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.
- 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!
- The correct volume setting had to be found. This was done by trial and error. Eventually a safe range was determine
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.
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:
- Bouncing Ball
- Break Thru
- Memory Check
- Space Screen Saver
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