Arnitech controller: the TOD set at boot, and a jump table at $FF00

A new option, ARNITECH_CONTROLLER, on in the mc64 configuration only.
IOINIT starts timer A with CIA #1's TOD on 50 Hz, the mc64's mains, and
if the Arnitech controller's signature "ARNI" is at $DE80, latches its
clock and copies its real time into the TOD, hours first and tenths
last, flipping bit 7 of an hour of 12 first, since the CIA flips it
back when 12 is written. Without the signature the TOD is left alone.

The Arnitech jump table at $FF00: "ARNI", version $01, two entries, and
JMPs from $FF06: $FF06 finds the first Card slot holding a Card of the
type in A (carry clear, the slot in A, its Card window's low byte in
X; carry set if none or no controller), $FF09 sets the TOD as IOINIT
does. $FF48-$FF80 stay clear. The code is in new files under
src/kernal/arnitech; other configurations build as before.
This commit is contained in:
chris committed 2026-10-17 02:17:45 +02:00
1 parent 0ec343a727
commit 03e2d4a4b8
8 files changed
+208

No files matched your search

+3
View File
@@ -10,6 +10,8 @@
; Same as the 'c64' configuration, except:
; - the banner names mc64
; - BCD_SAFE_INTERRUPTS is off, for IRQ entry timing closer to the original
; - ARNITECH_CONTROLLER: IOINIT sets CIA1's TOD on 50 Hz and from the Arnitech controller's clock,
; and the Arnitech jump table is at $FF00 (src/kernal/arnitech)
@@ -103,6 +105,7 @@
;; #CONFIG# TAPE_WEDGE NO
;; #CONFIG# TAPE_HEAD_ALIGN NO
;; #CONFIG# BCD_SAFE_INTERRUPTS NO
;; #CONFIG# ARNITECH_CONTROLLER YES
; --- BASIC features