diff --git a/src/aliases/,aliases_ram_lowmem.s b/src/aliases/,aliases_ram_lowmem.s index ef37b7ac..7d6d20dd 100644 --- a/src/aliases/,aliases_ram_lowmem.s +++ b/src/aliases/,aliases_ram_lowmem.s @@ -103,11 +103,7 @@ .label PTR1 = $9E // for tape support, counter of errorneous bytes .label PTR2 = $9F // for tape support, counter for errorneous bytes correction .label TIME = $A0 // $A0-$A2 jiffy clock -#if !CONFIG_IEC_JIFFYDOS && !CONFIG_IEC_DOLPHINDOS && !CONFIG_IEC_BURST_CIA1 && !CONFIG_IEC_BURST_CIA2 && !CONFIG_IEC_BURST_MEGA_65 - .label TSFCNT = $A3 // temporary variable for tape and IEC, [!] our usage differs -#else - .label IECPROTO = $A3 // -- WIP -- [!] 0 = normal, 1 = JiffyDOS, >= $80 for unknown -#endif + .label IECPROTO = $A3 // [!] IEC or pseudo-IEC protocol, >= $80 for unknown; originally named TSFCNT .label TBTCNT = $A4 // temporary variable for tape and IEC, [!] our usage probably differs in details .label CNTDN = $A5 // -- NOT IMPLEMENTED -- .label BUFPNT = $A6 // -- NOT IMPLEMENTED -- @@ -290,6 +286,25 @@ // $3FC $3FC-$3FF -- UNUSED -- free for user software +// +// Definitions for extended IEC functionality +// + + .const IEC_NORMAL = 0 // has to be 0, always! +#if CONFIG_IEC_JIFFYDOS + .const IEC_JIFFY = 1 // has to be 1, always! +#endif +#if CONFIG_IEC_DOLPHINDOS + .const IEC_DOLPHIN = 2 +#endif +#if CONFIG_IEC_BURST_CIA1 || CONFIG_IEC_BURST_CIA2 || ROM_LAYOUT_M65 + .const IEC_BURST = 3 +#endif +#if ROM_LAYOUT_M65 + .const IEC_ROMDOS = 4 +#endif + + // // Definitions for tape functionality // diff --git a/src/kernal/iec/iec_rx_byte.s b/src/kernal/iec/iec_rx_byte.s index 9dd110df..17c326e7 100644 --- a/src/kernal/iec/iec_rx_byte.s +++ b/src/kernal/iec/iec_rx_byte.s @@ -17,7 +17,7 @@ iec_rx_dispatch: lda IECPROTO - cmp #$01 + cmp #IEC_JIFFY beq_16 jiffydos_rx_byte // FALLTROUGH @@ -54,7 +54,7 @@ iec_rx_byte: // Check if DolphinDOS was detected lda IECPROTO - cmp #$02 + cmp #IEC_DOLPHIN bne iec_rx_no_dolphindos // For DolphinDOS just fetch the byte from parallel port diff --git a/src/kernal/iec/iec_tx_byte.s b/src/kernal/iec/iec_tx_byte.s index 53295b0a..e34e6da3 100644 --- a/src/kernal/iec/iec_tx_byte.s +++ b/src/kernal/iec/iec_tx_byte.s @@ -19,7 +19,7 @@ iec_tx_dispatch: php // preserve C flag for EOI indication lda IECPROTO - cmp #$01 + cmp #IEC_JIFFY bne !+ plp @@ -71,7 +71,7 @@ iec_tx_common: // Check if DolphinDOS was detected lda IECPROTO - cmp #$02 + cmp #IEC_DOLPHIN bne iec_tx_no_dolphindos // For DolphinDOS just push the byte to parallel port (set it to output first) diff --git a/src/kernal/iec/load_iec.s b/src/kernal/iec/load_iec.s index fdd75f85..c9778dd0 100644 --- a/src/kernal/iec/load_iec.s +++ b/src/kernal/iec/load_iec.s @@ -107,12 +107,12 @@ load_iec: lda IECPROTO #if CONFIG_IEC_JIFFYDOS - cmp #$01 + cmp #IEC_JIFFY beq_16 jiffydos_load // branch if JiffyDOS #endif #if CONFIG_IEC_DOLPHINDOS - cmp #$02 + cmp #IEC_DOLPHIN beq_16 dolphindos_load // branch if DolphinDOS #endif diff --git a/src/kernal/iec_fast/dolphindos_detect.s b/src/kernal/iec_fast/dolphindos_detect.s index 92a53649..6cd288a0 100644 --- a/src/kernal/iec_fast/dolphindos_detect.s +++ b/src/kernal/iec_fast/dolphindos_detect.s @@ -56,7 +56,7 @@ dolphindos_detect_success: // Protocol detected - lda #$02 + lda #IEC_DOLPHIN sta IECPROTO rts diff --git a/src/kernal/iec_fast/dolphindos_load.s b/src/kernal/iec_fast/dolphindos_load.s index f32a8502..93a4970c 100644 --- a/src/kernal/iec_fast/dolphindos_load.s +++ b/src/kernal/iec_fast/dolphindos_load.s @@ -76,7 +76,7 @@ dolphindos_load_loop: jsr iec_update_EAL_by_Y // Restore proper IECPROTO value - lda #$02 + lda #IEC_DOLPHIN sta IECPROTO // End of load loop diff --git a/src/kernal/iec_fast/jiffydos_detect.s b/src/kernal/iec_fast/jiffydos_detect.s index 3488ee6b..095bac78 100644 --- a/src/kernal/iec_fast/jiffydos_detect.s +++ b/src/kernal/iec_fast/jiffydos_detect.s @@ -33,12 +33,12 @@ jiffydos_detect_loop: lda IECPROTO bpl jiffydos_detect_end // no detection requested, preserve existing protocol - lda #$00 // normal protocol + lda #IEC_NORMAL // normal protocol beq jiffydos_store_proto // branch always jiffydos_detected: jsr iec_wait_for_data_release // guessed from VICE logs - lda #$01 // JiffyDOS protocol + lda #IEC_JIFFY // JiffyDOS protocol // FALLTROUGH diff --git a/src/kernal/iec_fast/jiffydos_load.s b/src/kernal/iec_fast/jiffydos_load.s index f8487e42..11eb8995 100644 --- a/src/kernal/iec_fast/jiffydos_load.s +++ b/src/kernal/iec_fast/jiffydos_load.s @@ -145,7 +145,7 @@ jiffydos_load_end: sta C3PO // Restore proper IECPROTO value - lda #$01 + lda #IEC_JIFFY sta IECPROTO #if CONFIG_IEC_JIFFYDOS_BLANK diff --git a/src/kernal/iec_fast/jiffydos_rx_byte.s b/src/kernal/iec_fast/jiffydos_rx_byte.s index 01473045..e0166b3e 100644 --- a/src/kernal/iec_fast/jiffydos_rx_byte.s +++ b/src/kernal/iec_fast/jiffydos_rx_byte.s @@ -102,7 +102,7 @@ jiffydos_rx_byte_end: sta C3PO // Restore proper IECPROTO value - lda #$01 + lda #IEC_JIFFY sta IECPROTO // Re-enable sprites diff --git a/src/kernal/iec_fast/jiffydos_tx_byte.s b/src/kernal/iec_fast/jiffydos_tx_byte.s index e3ddcd06..272d0d62 100644 --- a/src/kernal/iec_fast/jiffydos_tx_byte.s +++ b/src/kernal/iec_fast/jiffydos_tx_byte.s @@ -83,7 +83,7 @@ jiffydos_tx_byte_finalize: sta CIA2_PRA // Restore proper IECPROTO value - lda #$01 + lda #IEC_JIFFY sta IECPROTO // Re-enable sprites and interrupts