From 8d46476a5338a44a5e6d33f83d72e23dbf12f30e Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Wed, 21 Feb 2018 23:06:02 -0500 Subject: [PATCH] chiptune_player: split off bigchunk setup --- chiptune_player/chiptune_player.s | 32 +++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/chiptune_player/chiptune_player.s b/chiptune_player/chiptune_player.s index af2532db..3d2db51c 100644 --- a/chiptune_player/chiptune_player.s +++ b/chiptune_player/chiptune_player.s @@ -123,6 +123,13 @@ mockingboard_found: jsr new_song + + lda #CHUNK_BUFFER + sta INH + + ;============================ ; Enable 6502 interrupts ;============================ @@ -447,13 +454,27 @@ bloop3: adc #0 sta LZ4_SRC+1 - lda (LZ4_SRC),Y + jsr next_subsong + + ; should tail call + + rts + + + ;================= + ; next sub-song + ;================= +next_subsong: + + ldy #0 + + lda (LZ4_SRC),Y ; get next size value sta LZ4_END iny lda (LZ4_SRC),Y sta LZ4_END+1 - lda #2 + lda #2 ; increment pointer clc adc LZ4_SRC sta LZ4_SRC @@ -461,12 +482,7 @@ bloop3: adc #0 sta LZ4_SRC+1 - jsr lz4_decode - - lda #CHUNK_BUFFER - sta INH + jsr lz4_decode ; decode rts