mirror of
https://github.com/deater/dos33fsprogs.git
synced 2025-01-12 15:30:55 +00:00
sa: caught stupid bug in interrupt handler that made MB music awful
This commit is contained in:
parent
fa188dbfe0
commit
cd1e042697
@ -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)
|
||||
|
||||
|
@ -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.
Loading…
x
Reference in New Issue
Block a user