From f1df180bf849e538ced67b9ccfa358d02c3f9e26 Mon Sep 17 00:00:00 2001 From: Christian Werner Date: Thu, 15 Oct 2026 02:18:48 +0200 Subject: [PATCH] TKSA: send the secondary address the caller gives TKSA ORed the accumulator with $90 before sending it. Its callers pass the secondary address plus $60, as the routine's own comment asks, so TKSA turned a TALK secondary address $60-$6F into $F0-$FF, the OPEN command, on the bus. The contract (C64 Programmer's Reference Guide, TKSA; Michael Steil, "Commodore Peripheral Bus: Part 2", https://www.pagetable.com/?p=1031, which gives TKSA's argument as A = $60 + secondary address): TKSA sends the byte in A as the secondary address to the device told to TALK. TKSA now sends A as it is. Upstream: https://github.com/MEGA65/open-roms/issues/116 (bug 1) --- src/kernal/iec/tksa.s | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/kernal/iec/tksa.s b/src/kernal/iec/tksa.s index b9e9dee8..e6915847 100644 --- a/src/kernal/iec/tksa.s +++ b/src/kernal/iec/tksa.s @@ -28,8 +28,6 @@ TKSA: ; - https://www.lemon64.com/forum/viewtopic.php?t=57694&sid=531ba3592bcffadef2ac8b9162f2e529 ; - https://www.pagetable.com/?p=1031 (Kernal API description) - ora #$90 - jmp common_untlk_tksa } else {