680 KCACR?

24 views
Skip to first unread message

Tom Lake

unread,
Feb 2, 2026, 3:25:03 PMFeb 2
to Altair-Duino
I know BASIC can CSAVE and CLOAD using the KCACR-like interface. What I'd like to know is, can other programs (such as the KCACR test program in the manual) use that interface as well? Does it respond to the same memory-mapped I/O as a real one?

Chris Davis

unread,
Feb 2, 2026, 4:10:29 PMFeb 2
to Altair-Duino

Great question. On the original Altair 680, the KCACR cassette interface was real hardware, exposed via specific memory-mapped I/O locations. Any program - BASIC, test utilities, or hand-written assembly could talk to it directly by reading and writing those addresses. That’s why the KCACR test program in the manual works, it’s exercising the hardware registers, not calling a BASIC routine.

In the current version of the emulator, cassette support is BASIC-specific only. The emulator does not yet implement a full KCACR hardware device or its memory-mapped registers. Rather, BASIC thinks it’s doing cassette I/O, but instead of talking to a memory-mapped KCACR interface with timing, status bits, and audio-style encoding, the emulator captures that data and performs file I/O directly.   At the moment, cassette support is more of a “BASIC convenience feature” than a true hardware emulation. 

Implementing a true KCACR-compatible device (so any program can use cassette I/O exactly like the real machine) is something I’m actively thinking about for a future update. The emulator architecture is designed so that kind of hardware-accurate I/O can be added without breaking existing functionality.

Reply all
Reply to author
Forward
0 new messages