Skip to content

Cadence 1.5

Choose a tag to compare

@abalore abalore released this 10 Jun 14:57

Cadence 1.5 — Hardware fidelity & disk protections

This release is the result of a full emulation-fidelity audit, subsystem by subsystem, validated against ZEXALL, real software and original protected disks.

Floppy disc (765 / DSK) — rebuilt for accuracy

The disc subsystem was rewritten from a "happy-path AMSDOS" model into a datasheet-faithful µPD765 with a real rotation model:

  • Sector search by full C,H,R,N identity with wrong-cylinder / bad-cylinder status, true weak sectors, and physical track ordering (no more ID collisions).
  • 300 rpm rotation model: angular sector search, real rotational latency, byte-paced transfers at 32 µs with intermittent RQM, and datasheet-exact overrun.
  • Faithful command set: overrun termination, DE/DD and end-of-cylinder status, background/overlapped seeks with per-unit head position, 77-step recalibrate, motor-aware ready, index-anchored READ TRACK, and FORMAT that takes its real revolution (DISCKIT3 formats in ~30 s, as on hardware).
  • Copy-protection support: gap overreads, deleted-data marks with skip semantics, the phantom second drive, and timing-based checks — original protected releases now load: Aliens, Billy 2 (gaps), Trantor (Alkatraz), Chase HQ (deleted-data), and more.

Z80

ZEXALL now passes: BIT/CPI/ADC-SBC undocumented flags, the 0xFF interrupt vector, INI/IND/OUTI/OUTD flags, exact instruction timings (INIR, LD A,I/R), the DD/FD prefix passthrough, and RETI's IFF handling.

Gate Array, PSG, PPI & tape

  • Gate Array: correct mode-3 pen decoding, RMR bit-4 interrupt cancel, A14 port decode.
  • PSG: measured AY volume curve and exact tone periods (odd-period detune and Nyquist aliasing gone).
  • PPI/keyboard 8255 corner cases.
  • Tape: CDT at 1 µs resolution (fixes intermittent loads), unknown-block hardening, correct 0x20 pause, and WAV at the exact sample rate.

Binaries for Linux (AppImage), macOS (.dmg) and Windows are attached below.