compatibility fix for EOI handling in IEC code
This commit is contained in:
1 parent
0ae57c4a2c
commit
506d9d5c4f
4 files changed
+33
-27
No files matched your search
@@ -11,8 +11,14 @@
|
|||||||
|
|
||||||
ACPTR:
|
ACPTR:
|
||||||
|
|
||||||
jsr kernalstatus_reset
|
lda IOSTATUS
|
||||||
|
beq !+
|
||||||
|
|
||||||
|
lda #$0D // tested on real ROMs
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
!:
|
||||||
|
|
||||||
#if CONFIG_IEC
|
#if CONFIG_IEC
|
||||||
#if CONFIG_IEC_JIFFYDOS
|
#if CONFIG_IEC_JIFFYDOS
|
||||||
jmp iec_rx_dispatch
|
jmp iec_rx_dispatch
|
||||||
|
|||||||
@@ -7,4 +7,4 @@
|
|||||||
chrin_iec:
|
chrin_iec:
|
||||||
|
|
||||||
// XXX is this really all?
|
// XXX is this really all?
|
||||||
jmp JACPTR // carry will be set accordingly
|
jmp JACPTR
|
||||||
@@ -111,16 +111,8 @@ iec_rx_clk_wait2:
|
|||||||
// Timeout
|
// Timeout
|
||||||
jsr kernalstatus_EOI
|
jsr kernalstatus_EOI
|
||||||
pla
|
pla
|
||||||
|
|
||||||
// Restore registers
|
jmp iec_rx_end
|
||||||
pla
|
|
||||||
tay
|
|
||||||
pla
|
|
||||||
tax
|
|
||||||
|
|
||||||
sec // XXX confirm that sec is really a way to report timeout here
|
|
||||||
cli
|
|
||||||
rts
|
|
||||||
!:
|
!:
|
||||||
// More bits?
|
// More bits?
|
||||||
dex
|
dex
|
||||||
|
|||||||
+22
-14
@@ -24,8 +24,6 @@ load_break_error:
|
|||||||
jsr iec_close_load
|
jsr iec_close_load
|
||||||
jmp kernalerror_ROUTINE_TERMINATED
|
jmp kernalerror_ROUTINE_TERMINATED
|
||||||
|
|
||||||
load_save_no_file_name:
|
|
||||||
|
|
||||||
|
|
||||||
load_iec:
|
load_iec:
|
||||||
|
|
||||||
@@ -71,19 +69,10 @@ load_iec:
|
|||||||
|
|
||||||
// Get load address
|
// Get load address
|
||||||
|
|
||||||
#if CONFIG_IEC_JIFFYDOS
|
jsr load_iec_get_addr_byte
|
||||||
jsr iec_rx_dispatch
|
|
||||||
#else // no turbo supported
|
|
||||||
jsr iec_rx_byte
|
|
||||||
#endif
|
|
||||||
bcs load_iec_file_not_found
|
|
||||||
sta EAL+0
|
sta EAL+0
|
||||||
#if CONFIG_IEC_JIFFYDOS
|
|
||||||
jsr iec_rx_dispatch
|
jsr load_iec_get_addr_byte
|
||||||
#else // no turbo supported
|
|
||||||
jsr iec_rx_byte
|
|
||||||
#endif
|
|
||||||
bcs load_iec_file_not_found
|
|
||||||
sta EAL+1
|
sta EAL+1
|
||||||
|
|
||||||
// If secondary address is 0, override EAL with STAL
|
// If secondary address is 0, override EAL with STAL
|
||||||
@@ -143,4 +132,23 @@ iec_load_loop:
|
|||||||
jmp lvs_return_last_address
|
jmp lvs_return_last_address
|
||||||
|
|
||||||
|
|
||||||
|
load_iec_get_addr_byte:
|
||||||
|
|
||||||
|
#if CONFIG_IEC_JIFFYDOS
|
||||||
|
jsr iec_rx_dispatch
|
||||||
|
#else // no turbo supported
|
||||||
|
jsr iec_rx_byte
|
||||||
|
#endif
|
||||||
|
|
||||||
|
bcs !+
|
||||||
|
lda IOSTATUS
|
||||||
|
and #K_STS_EOI
|
||||||
|
bne !+
|
||||||
|
rts
|
||||||
|
!:
|
||||||
|
pla
|
||||||
|
pla
|
||||||
|
jmp load_iec_file_not_found
|
||||||
|
|
||||||
|
|
||||||
#endif // CONFIG_IEC
|
#endif // CONFIG_IEC
|
||||||
Reference in new issue
Block a user