Hello everyone, I've been working on an FPGA implementation of the TRS80 model MC10 computer. By now I have fully implemented and tested all the hardware on my FPGA board, and I can get it to run an unmodified copy of the TRS-80 ROM. The next part of the project is to replace the tape drive with something more modern, like USB or SD cards. For this I want to reverse engineer the code that encodes the data that goes to the tape drive. Looking at the waveforms its pretty obvious that they're using Manchester encoding or something very similar, but I think the best way to ensure compatibility is to reverse engineer the code they are using. I could not find a disassembler for the 6803 processor, so I wrote my own. Sadly it missed the code Im interested in. By running a simulation of the FPGA project in Modelsim I found some of the code, but Im having a hard time understanding how its called, where the start is, and how it actually decodes the data. Using what I learned from the simulation I ran the disassembler again on the start of the subroutines I found, so I now have the disassembly listing. Can someone please help me understand how this works?
I goofed. On second inspection the encoding scheme does not seem to be Manchester encoding. Perhaps some form of FM encoding?