diff --git a/bin/basic_generic.rom b/bin/basic_generic.rom index e3875ba6..dd989da4 100644 Binary files a/bin/basic_generic.rom and b/bin/basic_generic.rom differ diff --git a/bin/basic_ultimate64.rom b/bin/basic_ultimate64.rom index cbddecf5..e7f1464a 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 8d00b563..8bf2c370 100644 Binary files a/bin/kernal_generic.rom and b/bin/kernal_generic.rom differ diff --git a/bin/kernal_ultimate64.rom b/bin/kernal_ultimate64.rom index 03b1839c..a43d9b02 100644 Binary files a/bin/kernal_ultimate64.rom and b/bin/kernal_ultimate64.rom differ diff --git a/bin/mega65.rom b/bin/mega65.rom index 50a2efdb..10de558a 100644 Binary files a/bin/mega65.rom and b/bin/mega65.rom differ diff --git a/bin/mega65_pxlfont.rom b/bin/mega65_pxlfont.rom index b725a017..52a2fd7a 100644 Binary files a/bin/mega65_pxlfont.rom and b/bin/mega65_pxlfont.rom differ diff --git a/src/kernal/tape/tape_normal_get_data_1.s b/src/kernal/tape/tape_normal_get_data_1.s index 04c7abae..963fcea9 100644 --- a/src/kernal/tape/tape_normal_get_data_1.s +++ b/src/kernal/tape/tape_normal_get_data_1.s @@ -9,9 +9,6 @@ // .Y not equal to 0 - returns error if data block is longer (length includes checksum) -// XXX improve error handling - do not ignore second copy, handle damaged sync part - - #if CONFIG_TAPE_NORMAL diff --git a/src/kernal/tape/tape_normal_get_pilot.s b/src/kernal/tape/tape_normal_get_pilot.s index 214a7e1f..fad10a1d 100644 --- a/src/kernal/tape/tape_normal_get_pilot.s +++ b/src/kernal/tape/tape_normal_get_pilot.s @@ -27,7 +27,13 @@ tape_normal_get_pilot_header: // entry point, reset calibration, requir sta __pulse_threshold_ML lda #$80 + +#if CONFIG_TAPE_AUTODETECT + ldy #$FF // marker: try to detect turbo + bmi tape_normal_get_pilot_header_cont +#else skip_2_bytes_trash_nvz +#endif // FALLTROUGH @@ -42,6 +48,15 @@ tape_normal_get_pilot_short: // entry point, require 1x $40 pulses lda #$01 +#if CONFIG_TAPE_AUTODETECT + ldy #$00 // marker: do not try to detect turbo + // FALLTROUGH +tape_normal_get_pilot_header_cont: + sty INBIT +#else + skip_2_bytes_trash_nvz +#endif + // FALLTROUGH tape_normal_get_pilot_common: @@ -72,9 +87,12 @@ tape_normal_get_pilot_common_loop_inner: bcc tape_normal_get_pilot_common_restart // not a pilot - try again #if CONFIG_TAPE_AUTODETECT + bit INBIT + bpl !+ // Try to distinguish turbo by cheecking for short signals cmp #$B9 // see comment in tape_common_autodetect.s - bcs !+ + bcs !++ +!: #endif jsr tape_normal_calibrate_during_pilot