Revert "removed faulty JiffyDOS optimization (compatibility problems)"
This reverts commit 02863c5cf5.
This commit is contained in:
1 parent
02863c5cf5
commit
a11e50a3cf
6 files changed
+28
-18
No files matched your search
@@ -41,7 +41,7 @@
|
|||||||
// I/O devices
|
// I/O devices
|
||||||
|
|
||||||
#define CONFIG_IEC
|
#define CONFIG_IEC
|
||||||
#define CONFIG_IEC_JIFFYDOS // please keep disabled for now
|
// #define CONFIG_IEC_JIFFYDOS // please keep disabled for now
|
||||||
// #define CONFIG_TAPE_NORMAL // please keep disabled for now
|
// #define CONFIG_TAPE_NORMAL // please keep disabled for now
|
||||||
#define CONFIG_TAPE_TURBO
|
#define CONFIG_TAPE_TURBO
|
||||||
// #define CONFIG_RS232_UP2400 // please keep disabled for now
|
// #define CONFIG_RS232_UP2400 // please keep disabled for now
|
||||||
|
|||||||
@@ -106,7 +106,7 @@
|
|||||||
#if !CONFIG_IEC_JIFFYDOS
|
#if !CONFIG_IEC_JIFFYDOS
|
||||||
.label TSFCNT = $A3 // temporary variable for tape and IEC, [!] our usage differs
|
.label TSFCNT = $A3 // temporary variable for tape and IEC, [!] our usage differs
|
||||||
#else
|
#else
|
||||||
.label IECPROTO = $A3 // -- WIP -- [!] 0 = normal, 1 = JiffyDOS, $80 or above = detect protocol
|
.label IECPROTO = $A3 // -- WIP -- [!] 0 = normal, 1 = JiffyDOS, >= $80 for unknown
|
||||||
#endif
|
#endif
|
||||||
.label TBTCNT = $A4 // temporary variable for tape and IEC, [!] our usage probably differs in details
|
.label TBTCNT = $A4 // temporary variable for tape and IEC, [!] our usage probably differs in details
|
||||||
.label CNTDN = $A5 // -- NOT IMPLEMENTED --
|
.label CNTDN = $A5 // -- NOT IMPLEMENTED --
|
||||||
|
|||||||
@@ -16,22 +16,6 @@ iec_tx_command:
|
|||||||
phx_trash_a
|
phx_trash_a
|
||||||
phy_trash_a
|
phy_trash_a
|
||||||
|
|
||||||
#if CONFIG_IEC_JIFFYDOS
|
|
||||||
|
|
||||||
// IMHO detecting JiffDOS would be sufficient for TALK and LISTEN commands,
|
|
||||||
// this would also make the protocol slightly faster. But, for some reason
|
|
||||||
// (this is clearly visible in the logs) the original JiffyDOS Kernal tries
|
|
||||||
// to detect the JiffyDOS drive during each and every command - and trying
|
|
||||||
// to limit the detection to TALK/LISTEN only was causing transmission
|
|
||||||
// errors (at least with 1541 JiffyDOS ROM)
|
|
||||||
|
|
||||||
lda #$FF // force JiffyDOS detection
|
|
||||||
sta IECPROTO
|
|
||||||
|
|
||||||
// FALLTROUGH
|
|
||||||
|
|
||||||
#endif // CONFIG_IEC_JIFFYDOS
|
|
||||||
|
|
||||||
// Notify all devices that we are going to send a byte
|
// Notify all devices that we are going to send a byte
|
||||||
// and it is going to be a command (pulled ATN)
|
// and it is going to be a command (pulled ATN)
|
||||||
jsr iec_pull_atn_clk_release_data
|
jsr iec_pull_atn_clk_release_data
|
||||||
|
|||||||
@@ -32,6 +32,18 @@ common_talk_listen: // common part of TALK and LISTEN
|
|||||||
|
|
||||||
sta TBTCNT
|
sta TBTCNT
|
||||||
|
|
||||||
|
#if CONFIG_IEC_JIFFYDOS
|
||||||
|
|
||||||
|
// It seems that only TALK/LISTEN is used to detect the JiffyDOS support
|
||||||
|
|
||||||
|
lda #$FF // unknown protocol - check what is supported
|
||||||
|
sta IECPROTO
|
||||||
|
|
||||||
|
// FALLTROUGH
|
||||||
|
|
||||||
|
#endif // CONFIG_IEC_JIFFYDOS
|
||||||
|
|
||||||
|
|
||||||
jmp iec_tx_command
|
jmp iec_tx_command
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|||||||
@@ -18,6 +18,13 @@ UNLSN:
|
|||||||
// According to serial-bus.pdf (page 15) this routine flushes the IEC out buffer
|
// According to serial-bus.pdf (page 15) this routine flushes the IEC out buffer
|
||||||
jsr iec_tx_flush
|
jsr iec_tx_flush
|
||||||
|
|
||||||
|
#if CONFIG_IEC_JIFFYDOS
|
||||||
|
|
||||||
|
lda #$00 // switch back to standard protocol
|
||||||
|
sta IECPROTO
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
// Buffer empty, send the command
|
// Buffer empty, send the command
|
||||||
lda #$3F
|
lda #$3F
|
||||||
|
|
||||||
|
|||||||
@@ -18,6 +18,13 @@ UNTLK:
|
|||||||
// According to serial-bus.pdf (page 15) this routine flushes the IEC out buffer
|
// According to serial-bus.pdf (page 15) this routine flushes the IEC out buffer
|
||||||
jsr iec_tx_flush
|
jsr iec_tx_flush
|
||||||
|
|
||||||
|
#if CONFIG_IEC_JIFFYDOS
|
||||||
|
|
||||||
|
lda #$00 // switch back to standard protocol
|
||||||
|
sta IECPROTO
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
// Buffer empty, send the command
|
// Buffer empty, send the command
|
||||||
lda #$5F
|
lda #$5F
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user