--- layout: page title: Challenger 1P Programming Guides/Samples permalink: /pubs/c1p/programming/ --- Challenger 1P Programming Guides --- Challenger 1P Programming Samples --- ### 6502 ASSEMBLER/DISASSEMBLER This "source code listing" 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. 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)](http://archive.pcjs.org/pubs/c1p/programming/pdfs/OSI_Assembler-Disassembler_Listing.pdf)