PCjs Machines

Home of the original IBM PC emulator for browsers.


OSI Challenger 1P 6502 Assembler/Disassembler

By Jeff Parsons

OSI Challenger 1P

Challenger 1P

The “source code” listing below from June 19, 1980 is for the first piece of software I sold, right around the time I graduated from high school. I had had my Ohio Scientific Challenger 1P for maybe a year when I decided to write something that would make it easier to write “machine language” programs than the incredibly tedious HEX monitor that was built into the C1P. And so my 6502 Assembler/Disassembler was born, with full-screen editor, assembler, and disassembler.

There were two versions, one for each of the standard Challenger 1P memory configurations:

One of the conditions of the sale, however, was that I provide a “source code” listing. I don’t think the buyer understood that I had essentially written the program in machine language – because that’s how I had to enter it into the machine. Maybe some lucky C1P users had disk drives and editors and assemblers, but I had none of those of things. I had never even used tools like that before, which is why the 6502 Assembler/Disassembler is a bit of an odd duck. I’ll post some screenshots and a demo eventually, and you’ll see what I mean.

Anyway, to satisfy the buyer, I sat down at my old manual typewriter and banged out my version of a “source code” listing. I produced it mostly by using the program to disassemble itself, combined with information from hand-written notes (which I may still have somewhere).

Here it is, many decades later, for your amusement.

6502 Disassembler Listing (by Jeff Parsons, June 1980)

NOTE: Even though the “source code” listing was based on the 8K version, it more closely resembles the 4K version, because the 8K version I originally located appears to be an older vintage (4/1980 instead of 6/1980, if the embedded dates are correct). However, even the 4K version probably doesn’t align perfectly with the listing, because it appears to be newer than the listing (9/1980).