started JiffyDOS byte fetch synchronization
This commit is contained in:
1 parent
e29bf33a83
commit
34d12e26ac
3 files changed
+18
-14
No files matched your search
@@ -308,7 +308,7 @@
|
|||||||
#elif CONFIG_TAPE_TURBO
|
#elif CONFIG_TAPE_TURBO
|
||||||
.eval features_str = ADD_FEATURE(features_str, "TAPE LOAD TURBO")
|
.eval features_str = ADD_FEATURE(features_str, "TAPE LOAD TURBO")
|
||||||
#elif CONFIG_TAPE_NORMAL && CONFIG_TAPE_TURBO
|
#elif CONFIG_TAPE_NORMAL && CONFIG_TAPE_TURBO
|
||||||
.eval features_str = ADD_FEATURE(features_str, "TAPE LOAD NORMAL+TURBO")
|
.eval features_str = ADD_FEATURE(features_str, "TAPE LOAD NORMAL TURBO")
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
.eval feature_new_line = true
|
.eval feature_new_line = true
|
||||||
@@ -317,7 +317,7 @@
|
|||||||
#if !CONFIG_IEC_JIFFYDOS
|
#if !CONFIG_IEC_JIFFYDOS
|
||||||
.eval features_str = ADD_FEATURE(features_str, "IEC")
|
.eval features_str = ADD_FEATURE(features_str, "IEC")
|
||||||
#else
|
#else
|
||||||
.eval features_str = ADD_FEATURE(features_str, "IEC+JIFFY DEV")
|
.eval features_str = ADD_FEATURE(features_str, "IEC JIFFY-DEV")
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -122,29 +122,43 @@ iec_rx_byte_jiffydos:
|
|||||||
// Ask device to start sending bits
|
// Ask device to start sending bits
|
||||||
stx CIA2_PRA // cycles: 4
|
stx CIA2_PRA // cycles: 4
|
||||||
|
|
||||||
// Retrieve byte XXX count cycles, synchronize
|
// XXX we have to wait 20 cycles??? seriously??? what the hell shall we do here???
|
||||||
|
pla // 4 cycles
|
||||||
|
pha // 3 cycles
|
||||||
|
pla // 4 cycles
|
||||||
|
pha // 3 cycles
|
||||||
|
nop // 2 cycles
|
||||||
|
nop // 2 cycles
|
||||||
|
nop // 2 cycles
|
||||||
|
|
||||||
|
// Get bits, cycles: 4 + 2 + 2 = 8
|
||||||
lda CIA2_PRA // bits 0 and 1 on CLK/DATA
|
lda CIA2_PRA // bits 0 and 1 on CLK/DATA
|
||||||
lsr
|
lsr
|
||||||
lsr
|
lsr
|
||||||
|
|
||||||
|
// Wait for the drive, cycles: 2
|
||||||
|
nop
|
||||||
|
|
||||||
|
// Get bits, cycles: 4 + 2 + 2 = 8
|
||||||
ora CIA2_PRA // bits 2 and 3 on CLK/DATA
|
ora CIA2_PRA // bits 2 and 3 on CLK/DATA
|
||||||
lsr
|
lsr
|
||||||
lsr
|
lsr
|
||||||
|
|
||||||
|
// Get bits, cycles: 3 + 4 + 2 + 2 = 11
|
||||||
eor C3PO
|
eor C3PO
|
||||||
eor CIA2_PRA // bits 4 and 5 on CLK/DATA
|
eor CIA2_PRA // bits 4 and 5 on CLK/DATA
|
||||||
lsr
|
lsr
|
||||||
lsr
|
lsr
|
||||||
|
|
||||||
|
// Get bits, cycles: 3 + 4 = 7
|
||||||
eor C3PO
|
eor C3PO
|
||||||
eor CIA2_PRA // bits 6 and 7 on CLK/DATA
|
eor CIA2_PRA // bits 6 and 7 on CLK/DATA
|
||||||
|
|
||||||
tax
|
tax
|
||||||
|
|
||||||
// XXX CLK and DATA active = EOI
|
// XXX CLK and DATA active = EOI
|
||||||
lda CIA2_PRA
|
lda CIA2_PRA
|
||||||
|
|
||||||
|
|
||||||
// FALLTROUGH
|
// FALLTROUGH
|
||||||
|
|
||||||
jiffydos_return_success:
|
jiffydos_return_success:
|
||||||
|
|||||||
@@ -26,16 +26,6 @@ TALK:
|
|||||||
// Encode and execute the command
|
// Encode and execute the command
|
||||||
ora #$40
|
ora #$40
|
||||||
|
|
||||||
#if CONFIG_IEC_JIFFYDOS
|
|
||||||
|
|
||||||
// XXX temporary, until receiving is implemented too
|
|
||||||
sta TBTCNT
|
|
||||||
lda #$00 // standard protocol
|
|
||||||
sta IECPROTO
|
|
||||||
jmp iec_tx_command
|
|
||||||
|
|
||||||
#endif // CONFIG_IEC_JIFFYDOS
|
|
||||||
|
|
||||||
common_talk_listen: // common part of TALK and LISTEN
|
common_talk_listen: // common part of TALK and LISTEN
|
||||||
|
|
||||||
sta TBTCNT
|
sta TBTCNT
|
||||||
|
|||||||
Reference in new issue
Block a user