mirror of
https://github.com/deater/dos33fsprogs.git
synced 2025-08-11 13:25:00 +00:00
trogdor: timing sorta good
This commit is contained in:
@@ -115,6 +115,33 @@ music.inc: generate_common MUSIC
|
|||||||
./generate_common -a 0xd000 -s mute_ay_both music.lst >> music.inc
|
./generate_common -a 0xd000 -s mute_ay_both music.lst >> music.inc
|
||||||
./generate_common -a 0xd000 -s unmute_ay_both music.lst >> music.inc
|
./generate_common -a 0xd000 -s unmute_ay_both music.lst >> music.inc
|
||||||
./generate_common -a 0xd000 -s interrupt_handler music.lst >> music.inc
|
./generate_common -a 0xd000 -s interrupt_handler music.lst >> music.inc
|
||||||
|
./generate_common -a 0xd000 -s disable_irq_smc2 music.lst >> music.inc
|
||||||
|
./generate_common -a 0xd000 -s disable_irq_smc1 music.lst >> music.inc
|
||||||
|
./generate_common -a 0xd000 -s setup_irq_smc6 music.lst >> music.inc
|
||||||
|
./generate_common -a 0xd000 -s setup_irq_smc5 music.lst >> music.inc
|
||||||
|
./generate_common -a 0xd000 -s setup_irq_smc4 music.lst >> music.inc
|
||||||
|
./generate_common -a 0xd000 -s setup_irq_smc3 music.lst >> music.inc
|
||||||
|
./generate_common -a 0xd000 -s setup_irq_smc2 music.lst >> music.inc
|
||||||
|
./generate_common -a 0xd000 -s setup_irq_smc1 music.lst >> music.inc
|
||||||
|
./generate_common -a 0xd000 -s write_ay_smc6 music.lst >> music.inc
|
||||||
|
./generate_common -a 0xd000 -s write_ay_smc5 music.lst >> music.inc
|
||||||
|
./generate_common -a 0xd000 -s write_ay_smc4 music.lst >> music.inc
|
||||||
|
./generate_common -a 0xd000 -s write_ay_smc3 music.lst >> music.inc
|
||||||
|
./generate_common -a 0xd000 -s write_ay_smc2 music.lst >> music.inc
|
||||||
|
./generate_common -a 0xd000 -s write_ay_smc1 music.lst >> music.inc
|
||||||
|
./generate_common -a 0xd000 -s reset_ay_smc4 music.lst >> music.inc
|
||||||
|
./generate_common -a 0xd000 -s reset_ay_smc3 music.lst >> music.inc
|
||||||
|
./generate_common -a 0xd000 -s reset_ay_smc2 music.lst >> music.inc
|
||||||
|
./generate_common -a 0xd000 -s reset_ay_smc1 music.lst >> music.inc
|
||||||
|
./generate_common -a 0xd000 -s mock_init_smc2 music.lst >> music.inc
|
||||||
|
./generate_common -a 0xd000 -s mock_init_smc1 music.lst >> music.inc
|
||||||
|
./generate_common -a 0xd000 -s pt3_irq_smc7 music.lst >> music.inc
|
||||||
|
./generate_common -a 0xd000 -s pt3_irq_smc6 music.lst >> music.inc
|
||||||
|
./generate_common -a 0xd000 -s pt3_irq_smc5 music.lst >> music.inc
|
||||||
|
./generate_common -a 0xd000 -s pt3_irq_smc4 music.lst >> music.inc
|
||||||
|
./generate_common -a 0xd000 -s pt3_irq_smc3 music.lst >> music.inc
|
||||||
|
./generate_common -a 0xd000 -s pt3_irq_smc2 music.lst >> music.inc
|
||||||
|
./generate_common -a 0xd000 -s pt3_irq_smc1 music.lst >> music.inc
|
||||||
|
|
||||||
####
|
####
|
||||||
|
|
||||||
|
@@ -160,3 +160,9 @@ dragonman:
|
|||||||
|
|
||||||
TODO:
|
TODO:
|
||||||
always call clear screen before left/right copy?
|
always call clear screen before left/right copy?
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
patcher:
|
||||||
|
mockingboard_init
|
||||||
|
to done_pt3_irq_handler
|
||||||
|
@@ -21,6 +21,7 @@ PT3_ENABLE_APPLE_IIC = 1
|
|||||||
.include "pt3_lib_mockingboard_setup.s"
|
.include "pt3_lib_mockingboard_setup.s"
|
||||||
.include "interrupt_handler.s"
|
.include "interrupt_handler.s"
|
||||||
.include "pt3_lib_mockingboard_detect.s"
|
.include "pt3_lib_mockingboard_detect.s"
|
||||||
|
; .include "pt3_lib_mockingboard_patch.s"
|
||||||
|
|
||||||
|
|
||||||
; only load one music track, self modify to make other
|
; only load one music track, self modify to make other
|
||||||
|
@@ -5,70 +5,74 @@
|
|||||||
; this is the brute force version, we have to patch 39 locations
|
; this is the brute force version, we have to patch 39 locations
|
||||||
; see further below if you want to try a smaller, more dangerous, patch
|
; see further below if you want to try a smaller, more dangerous, patch
|
||||||
|
|
||||||
.if 0
|
|
||||||
mockingboard_patch:
|
mockingboard_patch:
|
||||||
|
|
||||||
lda MB_ADDR_H
|
lda MB_ADDR_H
|
||||||
|
|
||||||
sta pt3_irq_smc1+2 ; 1
|
sta pt3_irq_smc1+2 ; 1 *
|
||||||
|
|
||||||
sta pt3_irq_smc2+2 ; 2
|
sta pt3_irq_smc2+2 ; 2 *
|
||||||
sta pt3_irq_smc2+5 ; 3
|
sta pt3_irq_smc2+5 ; 3 *
|
||||||
|
|
||||||
sta pt3_irq_smc3+2 ; 4
|
sta pt3_irq_smc3+2 ; 4 *
|
||||||
sta pt3_irq_smc3+5 ; 5
|
sta pt3_irq_smc3+5 ; 5 *
|
||||||
|
|
||||||
sta pt3_irq_smc4+2 ; 6
|
sta pt3_irq_smc4+2 ; 6 *
|
||||||
sta pt3_irq_smc4+5 ; 7
|
sta pt3_irq_smc4+5 ; 7 *
|
||||||
|
|
||||||
sta pt3_irq_smc5+2 ; 8
|
sta pt3_irq_smc5+2 ; 8 *
|
||||||
sta pt3_irq_smc5+5 ; 9
|
sta pt3_irq_smc5+5 ; 9 *
|
||||||
|
|
||||||
sta pt3_irq_smc6+2 ; 10
|
sta pt3_irq_smc6+2 ; 10 *
|
||||||
sta pt3_irq_smc6+5 ; 11
|
sta pt3_irq_smc6+5 ; 11 *
|
||||||
|
|
||||||
sta pt3_irq_smc7+2 ; 12
|
sta pt3_irq_smc7+2 ; 12 *
|
||||||
sta pt3_irq_smc7+5 ; 13
|
sta pt3_irq_smc7+5 ; 13 *
|
||||||
|
|
||||||
sta mock_init_smc1+2 ; 14
|
sta mock_init_smc1+2 ; 14 *
|
||||||
sta mock_init_smc1+5 ; 15
|
sta mock_init_smc1+5 ; 15 *
|
||||||
|
|
||||||
sta mock_init_smc2+2 ; 16
|
sta mock_init_smc2+2 ; 16 *
|
||||||
sta mock_init_smc2+5 ; 17
|
sta mock_init_smc2+5 ; 17 *
|
||||||
|
|
||||||
sta reset_ay_smc1+2 ; 18
|
sta reset_ay_smc1+2 ; 18 *
|
||||||
sta reset_ay_smc2+2 ; 19
|
sta reset_ay_smc2+2 ; 19 *
|
||||||
sta reset_ay_smc3+2 ; 20
|
sta reset_ay_smc3+2 ; 20 *
|
||||||
sta reset_ay_smc4+2 ; 21
|
sta reset_ay_smc4+2 ; 21 *
|
||||||
|
|
||||||
sta write_ay_smc1+2 ; 22
|
sta write_ay_smc1+2 ; 22 *
|
||||||
sta write_ay_smc1+5 ; 23
|
sta write_ay_smc1+5 ; 23 *
|
||||||
|
|
||||||
sta write_ay_smc2+2 ; 24
|
sta write_ay_smc2+2 ; 24 *
|
||||||
sta write_ay_smc2+5 ; 25
|
sta write_ay_smc2+5 ; 25 *
|
||||||
|
|
||||||
sta write_ay_smc3+2 ; 26
|
sta write_ay_smc3+2 ; 26 *
|
||||||
sta write_ay_smc3+5 ; 27
|
sta write_ay_smc3+5 ; 27 *
|
||||||
|
|
||||||
sta write_ay_smc4+2 ; 28
|
sta write_ay_smc4+2 ; 28 *
|
||||||
sta write_ay_smc4+5 ; 29
|
sta write_ay_smc4+5 ; 29 *
|
||||||
|
|
||||||
sta write_ay_smc5+2 ; 30
|
sta write_ay_smc5+2 ; 30 *
|
||||||
sta write_ay_smc5+5 ; 31
|
sta write_ay_smc5+5 ; 31 *
|
||||||
|
|
||||||
sta write_ay_smc6+2 ; 32
|
sta write_ay_smc6+2 ; 32 *
|
||||||
sta write_ay_smc6+5 ; 33
|
sta write_ay_smc6+5 ; 33 *
|
||||||
|
|
||||||
sta setup_irq_smc1+2 ; 34
|
sta setup_irq_smc1+2 ; 34 *
|
||||||
sta setup_irq_smc2+2 ; 35
|
sta setup_irq_smc2+2 ; 35 *
|
||||||
sta setup_irq_smc3+2 ; 36
|
sta setup_irq_smc3+2 ; 36 *
|
||||||
sta setup_irq_smc4+2 ; 37
|
sta setup_irq_smc4+2 ; 37 *
|
||||||
sta setup_irq_smc5+2 ; 38
|
sta setup_irq_smc5+2 ; 38 *
|
||||||
sta setup_irq_smc6+2 ; 39
|
sta setup_irq_smc6+2 ; 39 *
|
||||||
|
|
||||||
|
sta disable_irq_smc1+2 ; 40 *
|
||||||
|
sta disable_irq_smc2+2 ; 41 *
|
||||||
|
|
||||||
rts
|
rts
|
||||||
.endif
|
|
||||||
|
|
||||||
|
|
||||||
|
.if 0
|
||||||
;===================================================================
|
;===================================================================
|
||||||
; dangerous code to patch mockingboard if not in slot#4
|
; dangerous code to patch mockingboard if not in slot#4
|
||||||
;===================================================================
|
;===================================================================
|
||||||
@@ -119,3 +123,4 @@ mb_patch_done:
|
|||||||
stx MB_ADDR_H ; restore slot for later
|
stx MB_ADDR_H ; restore slot for later
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
.endif
|
||||||
|
@@ -48,7 +48,7 @@ restart:
|
|||||||
lda SOUND_STATUS
|
lda SOUND_STATUS
|
||||||
beq skip_mbp1
|
beq skip_mbp1
|
||||||
|
|
||||||
jsr mockingboard_patch ; patch to work in slots other than 4?
|
jsr mockingboard_patch ; patch to work in slots other than 4?
|
||||||
|
|
||||||
skip_mbp1:
|
skip_mbp1:
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user