Okay, I have done it ... I have decoded the Vortex VDOS 2.11-X ROM

Hi all,

a followup from this brand new thread:

I have finally finished the project.

I have now a completely decoded,disassembled and commented the ROM from the Vortex F1-X/M1-X drive controller.

The history is in the thread above. It is not easy to disassemble it, as it is decoded and need some logic to actually trace it.

So how did I do it eventually?

  1. I created (with Claude) a Z80 Emulator that passes ACID test on Software level (not hardware exact).
  2. I created a minimal CPC around it, that I can start, stop, trace (both CPU and bus) and do a lot of other stuff that I needed for ROM code execution. That included a screen rendeder that is reading the CRTC registers, a minimal GA, that can create interrupts (does not display anything), but all the color registers are in there and read. And a FDC that reacts correctly on IN/OUT from the CPU and translates it in disc read/writes. The emulator can read and write standard dsk files, both 3" Schneider Format as well as Vortex Format.
  3. I designed everything to have multiple interfaces (GUI, API, MCP).

That was done in a few hours (8 or so). And then I could start to run all code in the rom, detect the M1 cycles, keep a decoded version in Memory and be able to keep track on any data that did never run.

I then used Claude to run through every part of the code. For code that was never reached I let it write specific test scenarios and cases, both on emulated hardware returns (just wrong returns) or on actual code doing it wrong.

As the ROM has a CPM modul in it as well as the normal AMSDOS replacement that where two modes.

Hightlight in it is a complete monitor for the CPC as well as disc monitor to look at raw sectors directly.

So here you have it. Decoded Binary and the source code - fully documented.

BTW:
Claude found about 15 bugs in the ROM :wink: The next step will be fixing those. Some of them are singly byte changes.
BTW

9 Likes