various IEC and DOS wedge fixes
This commit is contained in:
1 parent
431e5384a2
commit
fea097e795
4 files changed
+33
-28
No files matched your search
@@ -61,8 +61,10 @@ chkin_set_device:
|
||||
;; Common part for booth CHKIN and CKOUT
|
||||
|
||||
chkinout_end:
|
||||
tax
|
||||
pla
|
||||
tay
|
||||
txa
|
||||
rts
|
||||
|
||||
chkinout_file_not_open:
|
||||
|
||||
+5
-6
@@ -42,7 +42,7 @@ load:
|
||||
lda current_device_number
|
||||
and #$FC
|
||||
beq lvs_illegal_device_number ; device number below 4, not an IEC device
|
||||
|
||||
|
||||
;; Device numbers above 30 are also illegal (see https://www.pagetable.com/?p=1031),
|
||||
;; as the protocol combines device number with command code int one byte,
|
||||
;; above 30 it is no longer possible (UNLISTEN and UNTALK codes prevent using
|
||||
@@ -56,7 +56,7 @@ load:
|
||||
;; http://www.zimmers.net/anonftp/pub/cbm/programming/serial-bus.pdf
|
||||
;; p13, 16; also p16 tells us this routine doesn't mess with the file table
|
||||
;; in the C64, only in the drive.
|
||||
|
||||
|
||||
;; Call device to LISTEN (p16)
|
||||
lda current_device_number
|
||||
jsr listen
|
||||
@@ -67,6 +67,8 @@ load:
|
||||
sta BSOUR
|
||||
jsr iec_tx_command
|
||||
bcs lvs_load_verify_error
|
||||
jsr iec_tx_command_finalize
|
||||
bcs lvs_load_verify_error
|
||||
|
||||
;; Send filename (p16)
|
||||
ldy #0
|
||||
@@ -97,7 +99,6 @@ load_filename_sent:
|
||||
;; Command device to unlisten to indicate end of file name. (p16)
|
||||
jsr unlsn
|
||||
bcs lvs_load_verify_error
|
||||
jsr iec_set_idle ;; XXX is it needed?
|
||||
|
||||
;; Now command device to talk (p16)
|
||||
lda current_device_number
|
||||
@@ -162,12 +163,10 @@ load_loop:
|
||||
lda #$E0
|
||||
sta BSOUR
|
||||
jsr iec_tx_command
|
||||
jsr iec_tx_command_finalize
|
||||
|
||||
;; Tell drive to unlisten
|
||||
jsr unlsn
|
||||
|
||||
;; Set IEC status back to idle
|
||||
jsr iec_set_idle
|
||||
|
||||
;; Return last address
|
||||
jmp lvs_return_last_address
|
||||
+1
-2
@@ -30,8 +30,7 @@ open:
|
||||
|
||||
ldy LDTND
|
||||
cpy #$0A
|
||||
bcs +
|
||||
bmi open_has_space
|
||||
bcc open_has_space
|
||||
*
|
||||
;; Table is full
|
||||
jmp kernalerror_TOO_MANY_OPEN_FILES
|
||||
|
||||
Reference in new issue
Block a user