While looking through the user’s manual for my logic analyzer, I came across a few software options that mine did not have, namely the symbol utility and the inverse assembler. There are also a few hardware options like LAN and an oscilloscope but those are much harder to get.

The symbol utility lets you use custom symbols for any value. In my case, I could show what section the code is in, what function it is running, or what variables or IO locations are being accessed. It makes it a lot easier than having to constantly be looking back and forth at assembly listings and collected data to see what is happening. This one wasn’t too hard to find and was very easy to install.

The second option was what I was really interested in though. The inverse assembler can take in the data and control signals from the CPU and figure out exactly what the processor is doing and turn it into something readable. For some CPUs you can’t just look at it to figure out whether it is executing instructions of reading memory, but luckily the 6502 has the SYNC pin which indicates when the CPU is reading an Opcode. Otherwise, you would have to use a hardware preprocessor, which are expensive and difficult to find.

The inverse assembler exists as a file on the hard drive, but it’s not as easy as downloading it to a floppy drive and transferring it over. No, for some reason the only way to transfer the file is over a serial connection from DOS. And you can’t use one of those FTDI cables, it has to be a real serial port. Conveniently, my computer has both serial and parallel port headers so all I need is the bracket with the connectors on them. I also got another bracket with more USB ports since I was running low and had extra headers. I also needed a 9 pin to 25 pin null modem cable, since the 1660c uses the larger connector.

At first I tried to use the program from DOSBox but it kept saying there was a serial port error and none of the configuration settings would work. Instead, I booted up FreeDOS from a USB drive and ran the program from there, which ended up working. Once it’s on the system, all you have to do is load it whenever you want to use it.

Here is an example of the both utilities in action. I didn’t define any symbols but you can see where they would be.

LISTING.png

Here are the downloads for everything. If you use the 6502 IA, make sure the machine is set up like this: FORMAT.png

10391B_Inverse_Assembler_Development_Package_v2.0.zip

E2450A.zip

ia6502.zip