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
|
||||
|
||||
#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_TURBO
|
||||
// #define CONFIG_RS232_UP2400 // please keep disabled for now
|
||||
|
||||
@@ -106,7 +106,7 @@
|
||||
#if !CONFIG_IEC_JIFFYDOS
|
||||
.label TSFCNT = $A3 // temporary variable for tape and IEC, [!] our usage differs
|
||||
#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
|
||||
.label TBTCNT = $A4 // temporary variable for tape and IEC, [!] our usage probably differs in details
|
||||
.label CNTDN = $A5 // -- NOT IMPLEMENTED --
|
||||
|
||||
@@ -16,22 +16,6 @@ iec_tx_command:
|
||||
phx_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
|
||||
// and it is going to be a command (pulled ATN)
|
||||
jsr iec_pull_atn_clk_release_data
|
||||
|
||||
@@ -32,6 +32,18 @@ common_talk_listen: // common part of TALK and LISTEN
|
||||
|
||||
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
|
||||
|
||||
#else
|
||||
|
||||
@@ -18,6 +18,13 @@ UNLSN:
|
||||
// According to serial-bus.pdf (page 15) this routine flushes the IEC out buffer
|
||||
jsr iec_tx_flush
|
||||
|
||||
#if CONFIG_IEC_JIFFYDOS
|
||||
|
||||
lda #$00 // switch back to standard protocol
|
||||
sta IECPROTO
|
||||
|
||||
#endif
|
||||
|
||||
// Buffer empty, send the command
|
||||
lda #$3F
|
||||
|
||||
|
||||
@@ -18,6 +18,13 @@ UNTLK:
|
||||
// According to serial-bus.pdf (page 15) this routine flushes the IEC out buffer
|
||||
jsr iec_tx_flush
|
||||
|
||||
#if CONFIG_IEC_JIFFYDOS
|
||||
|
||||
lda #$00 // switch back to standard protocol
|
||||
sta IECPROTO
|
||||
|
||||
#endif
|
||||
|
||||
// Buffer empty, send the command
|
||||
lda #$5F
|
||||
|
||||
|
||||
Reference in new issue
Block a user