diff --git a/CONFIG.md b/CONFIG.md index 1d200f10..06cc3736 100644 --- a/CONFIG.md +++ b/CONFIG.md @@ -103,6 +103,12 @@ Adds support for the IEEC bus - for serial printers, disk drives, etc. Needs over 1000 bytes in KERNAL segment. If unsure - enable. +### `CONFIG_IEC_JIFFYDOS` + +Adds support for JiffyDOS pprotocol to the IEC bus (note, that it currentlyy lacks the optimized LOAD loop, so it will be slower than original JiffyDOS enabled Kernal ROMs). + +Needs over 320 bytes in KERNAL segment. If unsure - enable. + ### `CONFIG_TAPE_TURBO` Adds a minimal turbo tape support - just LOAD command (device 7, like on _Action Replay_ and _Final_ cartridges) diff --git a/bin/basic_generic.rom b/bin/basic_generic.rom index ea4a02df..a20878cb 100644 Binary files a/bin/basic_generic.rom and b/bin/basic_generic.rom differ diff --git a/bin/basic_mega65.rom b/bin/basic_mega65.rom index c708078c..e988783a 100644 Binary files a/bin/basic_mega65.rom and b/bin/basic_mega65.rom differ diff --git a/bin/basic_testing.rom b/bin/basic_testing.rom index 6268fab0..4d05189a 100644 Binary files a/bin/basic_testing.rom and b/bin/basic_testing.rom differ diff --git a/bin/basic_ultimate64.rom b/bin/basic_ultimate64.rom index ad199e5d..26d834de 100644 Binary files a/bin/basic_ultimate64.rom and b/bin/basic_ultimate64.rom differ diff --git a/bin/kernal_generic.rom b/bin/kernal_generic.rom index 22d0f3c3..dbfb5b2d 100644 Binary files a/bin/kernal_generic.rom and b/bin/kernal_generic.rom differ diff --git a/bin/kernal_mega65.rom b/bin/kernal_mega65.rom index 5b9fd48d..fa7d782a 100644 Binary files a/bin/kernal_mega65.rom and b/bin/kernal_mega65.rom differ diff --git a/bin/kernal_testing.rom b/bin/kernal_testing.rom index 74aecaf6..2ad0274c 100644 Binary files a/bin/kernal_testing.rom and b/bin/kernal_testing.rom differ diff --git a/bin/kernal_ultimate64.rom b/bin/kernal_ultimate64.rom index 9f6f917a..29bd3da4 100644 Binary files a/bin/kernal_ultimate64.rom and b/bin/kernal_ultimate64.rom differ diff --git a/c64/,,config_generic.s b/c64/,,config_generic.s index 09774f1b..25bca317 100644 --- a/c64/,,config_generic.s +++ b/c64/,,config_generic.s @@ -41,7 +41,7 @@ // I/O devices #define CONFIG_IEC -// #define CONFIG_IEC_JIFFYDOS // please keep disabled for now +#define CONFIG_IEC_JIFFYDOS // #define CONFIG_TAPE_NORMAL // please keep disabled for now #define CONFIG_TAPE_TURBO // #define CONFIG_RS232_UP2400 // please keep disabled for now diff --git a/c64/,,config_mega65.s b/c64/,,config_mega65.s index 6b179612..80f96095 100644 --- a/c64/,,config_mega65.s +++ b/c64/,,config_mega65.s @@ -43,7 +43,7 @@ // I/O devices #define CONFIG_IEC -// #define CONFIG_IEC_JIFFYDOS // please keep disabled for now +#define CONFIG_IEC_JIFFYDOS // #define CONFIG_TAPE_NORMAL // please keep disabled for now // #define CONFIG_TAPE_TURBO // #define CONFIG_RS232_UP2400 // please keep disabled for now diff --git a/c64/,,config_testing.s b/c64/,,config_testing.s index cdba7f9d..652a3e5d 100644 --- a/c64/,,config_testing.s +++ b/c64/,,config_testing.s @@ -42,7 +42,7 @@ // I/O devices #define CONFIG_IEC -// #define CONFIG_IEC_JIFFYDOS // please keep disabled for now +#define CONFIG_IEC_JIFFYDOS // #define CONFIG_TAPE_NORMAL // please keep disabled for now #define CONFIG_TAPE_TURBO // #define CONFIG_RS232_UP2400 // please keep disabled for now diff --git a/c64/,,config_ultimate64.s b/c64/,,config_ultimate64.s index 091f1974..7af94966 100644 --- a/c64/,,config_ultimate64.s +++ b/c64/,,config_ultimate64.s @@ -41,7 +41,7 @@ // I/O devices #define CONFIG_IEC -// #define CONFIG_IEC_JIFFYDOS // please keep disabled for now +#define CONFIG_IEC_JIFFYDOS // #define CONFIG_TAPE_NORMAL // please keep disabled for now #define CONFIG_TAPE_TURBO // #define CONFIG_RS232_UP2400 // please keep disabled for now diff --git a/c64/aliases/,aliases_config.s b/c64/aliases/,aliases_config.s index e40cbefb..132c7af0 100644 --- a/c64/aliases/,aliases_config.s +++ b/c64/aliases/,aliases_config.s @@ -317,7 +317,7 @@ #if !CONFIG_IEC_JIFFYDOS .eval features_str = ADD_FEATURE(features_str, "IEC") #else - .eval features_str = ADD_FEATURE(features_str, "IEC JIFFY-DEV") + .eval features_str = ADD_FEATURE(features_str, "IEC JIFFY") #endif #endif diff --git a/c64/kernal/iec_fast/iec_tx_byte_jiffydos.s b/c64/kernal/iec_fast/iec_tx_byte_jiffydos.s index 0cf331cc..a2b8a62e 100644 --- a/c64/kernal/iec_fast/iec_tx_byte_jiffydos.s +++ b/c64/kernal/iec_fast/iec_tx_byte_jiffydos.s @@ -48,7 +48,6 @@ iec_tx_byte_jiffydos: // Notify device that we are going to send byte by releasing everything stx CIA2_PRA // cycles: 4 - // Send high nibble; cycles: 4 + 3 + 4 + 2 + 2 + 2 + 3 + 4 = 24 pla // retrieve high nibble from stack ora C3PO // restore VIC-II and RS-232 bits @@ -80,10 +79,6 @@ iec_tx_byte_jiffydos_finalize: ora #BIT_CIA2_PRA_CLK_OUT // pull CLK sta CIA2_PRA - // Indicate that no byte waits in output buffer - lda #$00 - sta C3PO - // Restore proper IECPROTO value lda #$01 sta IECPROTO @@ -99,6 +94,7 @@ iec_tx_byte_jiffydos_finalize: iec_tx_byte_jiffydos_wait_eoi: + sta CIA2_PRA jsr iec_wait60us // XXX is it enough? lda C3PO jmp iec_tx_byte_jiffydos_finalize