mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-12-31 14:30:17 +00:00
ds: work on music still
This commit is contained in:
parent
4aa05bbd77
commit
212cfe4581
@ -4,190 +4,265 @@
|
||||
; First 9 (?) lines = text mode
|
||||
;
|
||||
|
||||
; 22 + 192*(2+(47*18)+38)+15 = 170,149
|
||||
; play every 15787 cycles = 10.7 times
|
||||
; every 18 times through loop
|
||||
|
||||
UPDATE2_START = $9800
|
||||
|
||||
;DEFAULT_COLOR = $0
|
||||
|
||||
create_update_type2:
|
||||
ldx #192
|
||||
lda #<UPDATE2_START
|
||||
sta OUTL
|
||||
lda #>UPDATE2_START
|
||||
sta OUTH
|
||||
lda #<another_scanline
|
||||
sta INL
|
||||
lda #>another_scanline
|
||||
sta INH
|
||||
ldx #192 ; 2
|
||||
lda #<UPDATE2_START ; 2
|
||||
sta OUTL ; 3
|
||||
lda #>UPDATE2_START ; 2
|
||||
sta OUTH ; 3
|
||||
lda #<another_scanline ; 2
|
||||
sta INL ; 3
|
||||
lda #>another_scanline ; 2
|
||||
sta INH ; 3
|
||||
|
||||
lda #18
|
||||
sta FORCE_MUSIC
|
||||
|
||||
;=====
|
||||
; 22
|
||||
create_update2_outer_loop:
|
||||
ldy #0
|
||||
ldy #0 ; 2
|
||||
create_update2_inner_loop:
|
||||
lda (INL),Y
|
||||
sta (OUTL),Y
|
||||
iny
|
||||
cpy #47
|
||||
bne create_update2_inner_loop
|
||||
lda (INL),Y ; 5
|
||||
sta (OUTL),Y ; 6
|
||||
iny ; 2
|
||||
cpy #47 ; 2
|
||||
bne create_update2_inner_loop ; 3
|
||||
;===========
|
||||
; 18
|
||||
|
||||
;-1
|
||||
; toggle PAGE0/PAGE1
|
||||
txa
|
||||
and #$1 ; ror?
|
||||
clc
|
||||
adc #$54
|
||||
ldy #1
|
||||
sta (OUTL),Y
|
||||
txa ; 2
|
||||
and #$1 ; ror? ; 2
|
||||
clc ; 2
|
||||
adc #$54 ; 2
|
||||
ldy #1 ; 2
|
||||
sta (OUTL),Y ; 6
|
||||
|
||||
clc
|
||||
lda #47
|
||||
adc OUTL
|
||||
sta OUTL
|
||||
lda OUTH
|
||||
adc #0
|
||||
sta OUTH
|
||||
clc ; 2
|
||||
lda #47 ; 2
|
||||
adc OUTL ; 3
|
||||
sta OUTL ; 3
|
||||
lda OUTH ; 3
|
||||
adc #0 ; 2
|
||||
sta OUTH ; 3
|
||||
|
||||
dex
|
||||
bne create_update2_outer_loop
|
||||
|
||||
ldy #0
|
||||
lda #$60 ; rts
|
||||
sta (OUTL),Y
|
||||
dec FORCE_MUSIC ; 5
|
||||
bne no_force_music2 ; 3
|
||||
lda #18
|
||||
sta FORCE_MUSIC
|
||||
|
||||
txa
|
||||
pha
|
||||
|
||||
jsr play_frame_compressed
|
||||
|
||||
pla
|
||||
tax
|
||||
no_force_music2:
|
||||
|
||||
dex ; 2
|
||||
bne create_update2_outer_loop ; 3
|
||||
;===========
|
||||
; 38
|
||||
|
||||
; -1
|
||||
|
||||
ldy #0 ; 2
|
||||
lda #$60 ; rts ; 2
|
||||
sta (OUTL),Y ; 6
|
||||
|
||||
rts ; 6
|
||||
;=============
|
||||
; 15
|
||||
|
||||
rts
|
||||
|
||||
ESCAPE_START = 30
|
||||
|
||||
|
||||
;===========================
|
||||
;
|
||||
; 42+18+42+17+128*(7+(7*73)+5)+54+5 = 67,122
|
||||
; / 15,787 = 4.25
|
||||
; 128/4.25=30
|
||||
|
||||
setup_update_type2:
|
||||
|
||||
; add call to TEXT
|
||||
|
||||
lda #$2c ; bit C051 ; 4
|
||||
sta UPDATE2_START+3 ; $9003
|
||||
lda #$51
|
||||
sta UPDATE2_START+4 ; $9004
|
||||
lda #$c0
|
||||
sta UPDATE2_START+5 ; $9005
|
||||
lda #$2c ; bit C051 ; 4 ; 2
|
||||
sta UPDATE2_START+3 ; $9003 ; 4
|
||||
lda #$51 ; 2
|
||||
sta UPDATE2_START+4 ; $9004 ; 4
|
||||
lda #$c0 ; 2
|
||||
sta UPDATE2_START+5 ; $9005 ; 4
|
||||
|
||||
lda #$A5 ; lda ZERO ; 3
|
||||
sta UPDATE2_START+6 ; $9006
|
||||
lda #$FA
|
||||
sta UPDATE2_START+7 ; $9007
|
||||
|
||||
lda #$A2 ; ldx, 1 ; 3
|
||||
sta UPDATE2_START+8 ; $9008
|
||||
lda #$01
|
||||
sta UPDATE2_START+9 ; $9009
|
||||
lda #$A5 ; lda ZERO ; 3 ; 2
|
||||
sta UPDATE2_START+6 ; $9006 ; 4
|
||||
lda #$FA ; 2
|
||||
sta UPDATE2_START+7 ; $9007 ; 4
|
||||
|
||||
lda #$A2 ; ldx, 1 ; 3 ; 2
|
||||
sta UPDATE2_START+8 ; $9008 ; 4
|
||||
lda #$01 ; 2
|
||||
sta UPDATE2_START+9 ; $9009 ; 4
|
||||
;===========
|
||||
; 42
|
||||
; set first 9 lines to PAGE0
|
||||
|
||||
lda #$54
|
||||
sta UPDATE2_START+$30 ; $9030
|
||||
sta UPDATE2_START+$8E ; $908E
|
||||
sta UPDATE2_START+$EC ; $90EC
|
||||
sta UPDATE2_START+$14A ; $914A
|
||||
lda #$54 ; 2
|
||||
sta UPDATE2_START+$30 ; $9030 ; 4
|
||||
sta UPDATE2_START+$8E ; $908E ; 4
|
||||
sta UPDATE2_START+$EC ; $90EC ; 4
|
||||
sta UPDATE2_START+$14A ; $914A ; 4
|
||||
;===========
|
||||
; 18
|
||||
|
||||
|
||||
; add call to GRAPHICS
|
||||
; line 9 (91a7)
|
||||
|
||||
lda #$2c ; bit C051 ; 4
|
||||
sta UPDATE2_START+$1aa ; $91aa
|
||||
lda #$50
|
||||
sta UPDATE2_START+$1ab ; $91ab
|
||||
lda #$c0
|
||||
sta UPDATE2_START+$1ac ; $91ac
|
||||
lda #$2c ; bit C051 ; 4 ; 2
|
||||
sta UPDATE2_START+$1aa ; $91aa ; 4
|
||||
lda #$50 ; 2
|
||||
sta UPDATE2_START+$1ab ; $91ab ; 4
|
||||
lda #$c0 ; 2
|
||||
sta UPDATE2_START+$1ac ; $91ac ; 4
|
||||
|
||||
lda #$A5 ; lda ZERO ; 3
|
||||
sta UPDATE2_START+$1ad ; $91ad
|
||||
lda #$FA
|
||||
sta UPDATE2_START+$1ae ; $91ae
|
||||
|
||||
lda #$A2 ; ldx, 1 ; 3
|
||||
sta UPDATE2_START+$1af ; $91af
|
||||
lda #$01
|
||||
sta UPDATE2_START+$1b0 ; $91b0
|
||||
lda #$A5 ; lda ZERO ; 3 ; 2
|
||||
sta UPDATE2_START+$1ad ; $91ad ; 4
|
||||
lda #$FA ; 2
|
||||
sta UPDATE2_START+$1ae ; $91ae ; 4
|
||||
|
||||
lda #$A2 ; ldx, 1 ; 3 ; 2
|
||||
sta UPDATE2_START+$1af ; $91af ; 4
|
||||
lda #$01 ; 2
|
||||
sta UPDATE2_START+$1b0 ; $91b0 ; 4
|
||||
;===========
|
||||
; 42
|
||||
;====================
|
||||
;====================
|
||||
|
||||
lda #4 ; which page
|
||||
sta RASTER_PAGE
|
||||
lda #4 ; which page ; 2
|
||||
sta RASTER_PAGE ; 3
|
||||
|
||||
ldx #ESCAPE_START
|
||||
lda #<(UPDATE_START+(ESCAPE_START*47))
|
||||
sta OUTL
|
||||
lda #>(UPDATE_START+(ESCAPE_START*47))
|
||||
sta OUTH
|
||||
ldx #ESCAPE_START ; 2
|
||||
lda #<(UPDATE_START+(ESCAPE_START*47)) ; 2
|
||||
sta OUTL ; 3
|
||||
lda #>(UPDATE_START+(ESCAPE_START*47)) ; 2
|
||||
sta OUTH ; 3
|
||||
|
||||
lda #30
|
||||
sta FORCE_MUSIC
|
||||
|
||||
;===========
|
||||
; 17
|
||||
setup_escape_outer_loop:
|
||||
ldy #8
|
||||
lda #0
|
||||
sta RASTER_X
|
||||
ldy #8 ; 2
|
||||
lda #0 ; 2
|
||||
sta RASTER_X ; 3
|
||||
;===========
|
||||
; 7
|
||||
setup_escape_inner_loop:
|
||||
txa
|
||||
pha
|
||||
inx
|
||||
txa ; start one earlier
|
||||
lsr
|
||||
lsr
|
||||
and #$fe
|
||||
tax
|
||||
clc
|
||||
lda gr_offsets,X
|
||||
adc RASTER_X
|
||||
inc RASTER_X
|
||||
sta (OUTL),Y
|
||||
iny
|
||||
clc
|
||||
lda gr_offsets+1,X
|
||||
adc RASTER_PAGE
|
||||
sta (OUTL),Y
|
||||
iny
|
||||
txa ; 2
|
||||
pha ; 3
|
||||
inx ; 2
|
||||
txa ; start one earlier ; 2
|
||||
lsr ; 2
|
||||
lsr ; 2
|
||||
and #$fe ; 2
|
||||
tax ; 2
|
||||
clc ; 2
|
||||
lda gr_offsets,X ; 4+
|
||||
adc RASTER_X ; 3
|
||||
inc RASTER_X ; 5
|
||||
sta (OUTL),Y ; 6
|
||||
iny ; 2
|
||||
clc ; 2
|
||||
lda gr_offsets+1,X ; 4+
|
||||
adc RASTER_PAGE ; 3
|
||||
sta (OUTL),Y ; 6
|
||||
iny ; 2
|
||||
|
||||
iny
|
||||
iny
|
||||
iny
|
||||
iny ; 2
|
||||
iny ; 2
|
||||
iny ; 2
|
||||
|
||||
pla
|
||||
tax
|
||||
pla ; 4
|
||||
tax ; 2
|
||||
|
||||
cpy #43
|
||||
bne no_fixup
|
||||
cpy #43 ; 2
|
||||
bne no_fixup ; 3
|
||||
;===========
|
||||
; 73
|
||||
|
||||
iny ; special case last one
|
||||
iny
|
||||
; -1
|
||||
|
||||
iny ; special case last one ; 2
|
||||
iny ; 2
|
||||
|
||||
no_fixup:
|
||||
cpy #50
|
||||
bne setup_escape_inner_loop
|
||||
cpy #50 ; 2
|
||||
bne setup_escape_inner_loop ; 3
|
||||
;===========
|
||||
; 5
|
||||
|
||||
;-1
|
||||
; fix the one at the end
|
||||
dey
|
||||
dey
|
||||
dey
|
||||
dey
|
||||
dey
|
||||
lda (OUTL),Y
|
||||
and #$f8
|
||||
sta (OUTL),Y
|
||||
dey ; 2
|
||||
dey ; 2
|
||||
dey ; 2
|
||||
dey ; 2
|
||||
dey ; 2
|
||||
lda (OUTL),Y ; 5
|
||||
and #$f8 ; 2
|
||||
sta (OUTL),Y ; 5
|
||||
|
||||
clc
|
||||
lda #47
|
||||
adc OUTL
|
||||
sta OUTL
|
||||
lda OUTH
|
||||
adc #0
|
||||
sta OUTH
|
||||
clc ; 2
|
||||
lda #47 ; 2
|
||||
adc OUTL ; 3
|
||||
sta OUTL ; 3
|
||||
lda OUTH ; 3
|
||||
adc #0 ; 2
|
||||
sta OUTH ; 3
|
||||
|
||||
dec FORCE_MUSIC ; 5
|
||||
bne no_force_music3 ; 3
|
||||
lda #30
|
||||
sta FORCE_MUSIC
|
||||
|
||||
txa
|
||||
pha
|
||||
|
||||
jsr play_frame_compressed
|
||||
|
||||
pla
|
||||
tax
|
||||
no_force_music3:
|
||||
|
||||
|
||||
lda RASTER_PAGE
|
||||
eor #$04
|
||||
sta RASTER_PAGE
|
||||
lda RASTER_PAGE ; 3
|
||||
eor #$04 ; 2
|
||||
sta RASTER_PAGE ; 3
|
||||
|
||||
inx
|
||||
cpx #(128+ESCAPE_START)
|
||||
bne setup_escape_outer_loop
|
||||
inx ; 2
|
||||
cpx #(128+ESCAPE_START) ; 2
|
||||
bne setup_escape_outer_loop ; 3
|
||||
;===========
|
||||
; 54
|
||||
|
||||
rts
|
||||
; -1
|
||||
rts ; 6
|
||||
|
||||
|
||||
another_scanline:
|
||||
|
@ -7,16 +7,19 @@
|
||||
|
||||
escape:
|
||||
|
||||
; jmp escape
|
||||
|
||||
;==================
|
||||
; setup music
|
||||
|
||||
; we are roughly at the beginning of pattern 0x19
|
||||
; pattern $19
|
||||
; line $10
|
||||
|
||||
; lda #19
|
||||
; sta current_pattern_smc+1
|
||||
; lda #0
|
||||
; sta current_line_smc+1
|
||||
|
||||
lda #$19
|
||||
sta current_pattern_smc+1
|
||||
lda #0
|
||||
sta current_line_smc+1
|
||||
|
||||
lda #0
|
||||
sta FRAME_PLAY_OFFSET
|
||||
@ -26,10 +29,10 @@ escape:
|
||||
jsr update_pt3_play
|
||||
|
||||
; setup 4 frames
|
||||
jsr pt3_write_lc_4
|
||||
jsr pt3_write_lc_4 ; FIXME
|
||||
|
||||
; FIXME
|
||||
; jsr clear_ay_both
|
||||
lda #$30 ; assume on line $10, speed=3
|
||||
sta FRAME_PLAY_OFFSET
|
||||
|
||||
;===================
|
||||
; init vars
|
||||
@ -80,7 +83,7 @@ escape:
|
||||
jsr create_update_type2
|
||||
jsr setup_update_type2
|
||||
|
||||
jsr play_frame_compressed ; catch up some music
|
||||
;jsr play_frame_compressed ; catch up some music
|
||||
|
||||
;==========================================
|
||||
; replace bottom with call to music player
|
||||
@ -238,7 +241,6 @@ loopRR: dex ; 2
|
||||
sprites_display_loop:
|
||||
|
||||
jsr $9800
|
||||
;.include "sprites_screen.s"
|
||||
|
||||
after_sprites_display:
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user