sa: caught stupid bug in interrupt handler that made MB music awful

This commit is contained in:
Vince Weaver 2018-06-05 15:31:34 -04:00
parent fa188dbfe0
commit cd1e042697
3 changed files with 23 additions and 9 deletions

View File

@ -33,7 +33,13 @@ Challenges:
the music is already decompressing on the fly.
+ Re-using the Lyrics for both the Mockingboard and Electric Duet
versions.
+ Squeezing the compressed image into memory leaving room for
all the code to be decompressed while leaving enough
room that DOS still has room to load things. It's
an *extremely* tight fit.
+ An odd issue where the 80col display would get corrupted
if we set HIRES without explicitly setting LORES
before doing PR#3
Goal: Binary fits in 16k (16384 bytes)
@ -57,6 +63,8 @@ merge ED and MB code: 24993
properly select between versions: 25001
merge the ED and MB lyrics: 22828
80 column ED, wait for keypress+reboot at end: 22852
Crazy compression:
Remove mockingboard detection: 16343
Memory Map:
@ -75,11 +83,17 @@ FFFF: END
Plan:
Load compressed 16k image ($4000) at $5600 - $9600
Load compressed 16k image ($4000) at $5900 - $9900
We use MAXFILES 1 to give us some extra room
just before DOS
Decompress ENDING sequence at $1800 - $4000
(writes background to HGR graphics automatically)
When done:
+ STILL_ALIVE ($5a00, 22.5k) at $0c00 - $6600
STILL_ALIVE:
+ $0800 - $5900
$2e2d of code
$2282 of KR4 music *or*
$0842 of ED music
+ Sound buffers ($3800, 14k) at $5e00 - $9600
(the overlap is OK, the ED file is over-written by
the mockingboard buffers, but that is not used by MB)

View File

@ -54,7 +54,7 @@ mb_write_frame:
mb_write_loop:
lda REGISTER_DUMP,X ; load register value ; 4
cmp REGISTER_OLD,X ; compare with old values ; 4
beq mb_no_write_left ; 3/2nt
beq mb_no_write_left ; 3/2nt
; address
stx MOCK_6522_ORA1 ; put address on PA1 ; 4
@ -94,7 +94,7 @@ mb_no_write_left:
mb_no_write_right:
inx ; point to next register ; 2
cpx #12 ; if 14 we're done ; 2
cpx #12 ; if 12 we're done ; 2
bmi mb_write_loop ; otherwise, loop ; 3/2nt
@ -137,7 +137,7 @@ mb_load12:
sta REGISTER_DUMP2+3
jmp mb_done_load
mb_load13:
cpx #12
cpx #13
bne mb_regular_load
sta REGISTER_DUMP2+9
jmp mb_done_load

Binary file not shown.