fix some bugs in IEC ATN turnaround
This commit is contained in:
1 parent
cc92b7d7e0
commit
49d5733246
1 file changed
+27
-2
@@ -2,6 +2,10 @@
|
|||||||
;; pages 7--8.
|
;; pages 7--8.
|
||||||
|
|
||||||
iec_turnaround_to_listen:
|
iec_turnaround_to_listen:
|
||||||
|
|
||||||
|
jsr printf
|
||||||
|
.byte "DOING TURNAROUND",$0d,0
|
||||||
|
|
||||||
;; Assert data and release clock
|
;; Assert data and release clock
|
||||||
lda $dd00
|
lda $dd00
|
||||||
sta $0420
|
sta $0420
|
||||||
@@ -12,8 +16,29 @@ iec_turnaround_to_listen:
|
|||||||
;; Wait for clock line to be asserted by the drive
|
;; Wait for clock line to be asserted by the drive
|
||||||
* lda $dd00
|
* lda $dd00
|
||||||
sta $0421
|
sta $0421
|
||||||
and #$80
|
and #$40
|
||||||
bne -
|
bne -
|
||||||
|
|
||||||
rts
|
;; 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
|
||||||
Reference in new issue
Block a user