After looking at the documentation for the assembler, I am pretty impressed with how fully functional it is!
Dwight, did your simulation convert the bit banged signals on the output 0 pin and test pin back into serial?
I don't recall but I think I did it both ways by trapping the call to the serial In/out and also trapping the serial bit changes and looking at the cycle count. Or, once the start bit, I'd set a trigger at a particular cycle count then send or receive each bit.
I did the bit timing first but I did it, later, by trapping at breakpoints at the serial In/out calls of the code.
Both are valid ways of doing it but sometimes it can catch you if you don't do the full bit banging.
It wasn't on this code that I learned no to shortcut when first working with new code. On my Maneuver Board project I trapped all the I/O routines but for the display, it used a number of 7 segmented LEDs for the calculation outputs and entry. For the outputs, I took the data straight from the RAM array and printed it out on the screen. When I got around to making the actual hardware, I assumed, for some reason, I can justify that the display was scanned left to right. Well after building the actual calculator in hardware, I found the code scanned the display right to left. Since the display was layed out as 3 rows of different lengths, it made it not work too well.
I had a choice. I could do some more cuts and jumpers or modify the software to scan the other way. I'd already did enough cuts because of some package layout errors I wasn't to happy to add more so I modified the software.
Anyway, doing to much short cutting in the simulation can sometimes catch you in the lie of thinking you are truly doing the full simulation.
Anyway, it worked well in the end. I even found a bug in the operation. If the Own Ship was on a course of 0.0 degrees the calculations would be off by a lot. I suspect that any course that was on the 4 compass points would do the same, knowing how the CORDIC method works. It did well enough if one just did +- 0.1 degree from the exact value on the 4 compass points.
It was cleaver software as it could track 10 vessels at a time, all running on a 4004 and doing complicated trig in about 6 seconds.
Dwight