diff --git a/c64/kernal/tape/load_tape_turbo.s b/c64/kernal/tape/load_tape_turbo.s index 2bdc473f..a676d6d5 100644 --- a/c64/kernal/tape/load_tape_turbo.s +++ b/c64/kernal/tape/load_tape_turbo.s @@ -22,6 +22,7 @@ load_tape_turbo: lda #$FE // timer threshold for TurboTape sta CIA2_TIMALO // $DD04 + jsr tape_clean_sid jsr tape_ask_play // FALLTROUGH @@ -54,6 +55,7 @@ load_tape_turbo_header_loop: // this strange loop puts metadata after cpy #$10 bne load_tape_turbo_header_loop + jsr tape_clean_sid jsr tape_handle_header bcs load_tape_turbo_header // if name does not match, look for other header @@ -85,12 +87,13 @@ load_tape_turbo_loop: bne load_tape_turbo_loop // Get the checksum - jsr tape_turbo_get_byte tax - // Verify the checksum + // Silence audio + jsr tape_clean_sid + // Verify the checksum cpx PRTY beq_far tape_load_success jmp tape_load_error diff --git a/c64/kernal/tape/tape_common.s b/c64/kernal/tape/tape_common.s index 92e4b9d2..9a630bb0 100644 --- a/c64/kernal/tape/tape_common.s +++ b/c64/kernal/tape/tape_common.s @@ -75,6 +75,22 @@ tape_screen_off_motor_on: jmp tape_motor_on +// +// Clear the SID settings - for sound effects during LOAD +// + +tape_clean_sid: + + lda #$00 + ldy #$1C +!: + sta __SID_BASE, y + dey + bpl !- + + rts + + // // Ask user to press PLAY on tape deck, // Unless user cancelled loading, blank screen and start motor @@ -95,15 +111,6 @@ tape_ask_play: ldx #__MSG_KERNAL_PRESS_PLAY jsr print_kernal_message - // Clean the SID registers, we need it for sound effects - - lda #$00 - ldy #$1C -!: - sta __SID_BASE, y - dey - bpl !- - // FALLTROUGH tape_wait_play_loop: