From 49d5733246af6669c200c72c78a7ecbd486fb905 Mon Sep 17 00:00:00 2001 From: Paul Gardner-Stephen Date: Sat, 4 May 2019 16:59:37 +0930 Subject: [PATCH] fix some bugs in IEC ATN turnaround --- c64/kernal/iec_turnaround_to_listen.s | 29 +++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/c64/kernal/iec_turnaround_to_listen.s b/c64/kernal/iec_turnaround_to_listen.s index b863dcf3..97d1a8f3 100644 --- a/c64/kernal/iec_turnaround_to_listen.s +++ b/c64/kernal/iec_turnaround_to_listen.s @@ -2,6 +2,10 @@ ;; pages 7--8. iec_turnaround_to_listen: + + jsr printf + .byte "DOING TURNAROUND",$0d,0 + ;; Assert data and release clock lda $dd00 sta $0420 @@ -12,8 +16,29 @@ iec_turnaround_to_listen: ;; Wait for clock line to be asserted by the drive * lda $dd00 sta $0421 - and #$80 + and #$40 bne - + + ;; Wait for clk to be released by the drive to mark ready to talk + ldx #$ff +* lda $dd00 + and #$40 + beq + + dex + bne - + + jsr printf + .byte "TURNAROUND FAILED - FILE NOT FOUND?",$0d,$00 + ;; Timeout = file not found error + ;; (https://www.pagetable.com/?p=1023) + lda #5 + sec + rts +* + jsr printf + .byte "TURNAROUND SUCEEDED",$0d,$00 + + ;; ATN turn around successful + cli rts -