Videx emulation complete

5 min read
apple-iifpgaemulationa2fpga-series

VIDEX_DIAG passes clean. Every MC6845 register read-back correct, VRAM reads and writes through the $CC00–$CDFF window correct, ROM checksum correct, 40/80-column switching correct.

Apple Pascal 1.3 boots to an 80-column interactive environment. This was the last milestone — Pascal’s initialization sequence exercises the firmware entry points, C8-space ownership, VRAM window, and the SLOTC3ROM/INTCXROM machinery in combination. Getting Pascal to boot without hanging required understanding the JMP $C800 cold-start path and why it doesn’t touch $CFFF on entry.

The three upstream fixes (CPLD OE cutoff, INTC8ROM/is_iie, SSC SLOTROM guard) are submitted as PRs #36 and #37. A fourth fix (SSC phi0 qualification, PR in progress) addresses the same class of issue but in the SSC module directly.

CardCat correctly identifies the Videx card in slot 3 by its ROM signature. The original Videx VideoTerm Demo disk runs. Concurrent operation with SSC (slot 2) and Mockingboard (slot 4) is stable.

Rewrote the fork README to document the Videx and ThunderClock emulations, the upstream bugs, slot configuration, and flashing instructions. Updated the VIDEX_IMPLEMENTATION_SPEC with the resolved Pascal boot hang root cause and the C8 ownership design rationale.

ThunderClock implementation starts next.