mirror of
https://github.com/deater/dos33fsprogs.git
synced 2025-02-05 21:34:30 +00:00
ds: add the static bars to missing
was it worth it?
This commit is contained in:
parent
7eede7cb27
commit
3dd6b4aa78
@ -3,10 +3,10 @@
|
||||
; but leaving room for 14 pixels/line of per-scanline color
|
||||
|
||||
; originally 183,589
|
||||
; takes roughly 12 + 192*((49*16)+2+38) + 15 = 158,235!!!!
|
||||
; want to play sound every 15787 cycles (10.0)
|
||||
; takes roughly 17 + 192*((49*16)+2+46) + 15 = 159,776!!!!
|
||||
; want to play sound every 15787 cycles (10.1)
|
||||
|
||||
; so every 19.2 times through loop? is 16 close enough?
|
||||
; so every 19 times through loop
|
||||
|
||||
; 11 times should update???
|
||||
|
||||
@ -20,10 +20,10 @@ create_update_type1:
|
||||
sta OUTL ; 3
|
||||
lda #>UPDATE_START ; 2
|
||||
sta OUTH ; 3
|
||||
lda #19
|
||||
sta FORCE_MUSIC
|
||||
lda #19 ; 2
|
||||
sta FORCE_MUSIC ; 3
|
||||
;===========
|
||||
; 12
|
||||
; 17
|
||||
create_update_outer_loop:
|
||||
ldy #48 ; 2
|
||||
|
||||
@ -52,8 +52,8 @@ create_update_inner_loop:
|
||||
adc #0 ; 2
|
||||
sta OUTH ; 3
|
||||
|
||||
dec FORCE_MUSIC
|
||||
bne no_force_music
|
||||
dec FORCE_MUSIC ; 5
|
||||
bne no_force_music ; 3
|
||||
lda #19
|
||||
sta FORCE_MUSIC
|
||||
|
||||
@ -70,7 +70,7 @@ no_force_music:
|
||||
dex ; 2
|
||||
bne create_update_outer_loop ; 3
|
||||
;===========
|
||||
; 38
|
||||
; 46
|
||||
|
||||
; -1
|
||||
ldy #0 ; 2
|
||||
@ -81,69 +81,130 @@ no_force_music:
|
||||
;=============
|
||||
; 15
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
BARS_START = 46
|
||||
|
||||
;============================
|
||||
; setup rasterbars
|
||||
;===========================
|
||||
; from 40 to 168?
|
||||
|
||||
;
|
||||
; 22+ NUM*(7+14*(66)+32+11) +5
|
||||
; NUM=128 -> 123,286 /15787 = 8 ... every 16 times
|
||||
; NUM=32 -> 30,838 / 15787 = 2
|
||||
;
|
||||
|
||||
; original:
|
||||
; setup_rasterbars_page_smc=4
|
||||
; setup_rasterbars_offset_smc=13
|
||||
; setup_rasterbars_bars_start_smc=46
|
||||
; setup_rasterbars_bars_end_smc=184
|
||||
; setup_rasterbars_start_addr1_smc:=#<(UPDATE_START+(BARS_START*49))
|
||||
; setup_rasterbars_start_addr2_smc:=#<(UPDATE_START+(BARS_START*49))
|
||||
|
||||
; missing:
|
||||
; setup_rasterbars_page_smc=4
|
||||
; setup_rasterbars_offset_smc=2
|
||||
; setup_rasterbars_bars_start_smc=16
|
||||
; setup_rasterbars_bars_end_smc=48
|
||||
; setup_rasterbars_start_addr1_smc:=#<(UPDATE_START+(16*49))
|
||||
; setup_rasterbars_start_addr2_smc:=#<(UPDATE_START+(16*49))
|
||||
|
||||
|
||||
setup_rasterbars:
|
||||
|
||||
lda #4 ; which page
|
||||
sta RASTER_PAGE
|
||||
setup_rasterbars_page_smc:
|
||||
lda #4 ; which page ; 2
|
||||
sta RASTER_PAGE ; 3
|
||||
|
||||
ldx #BARS_START
|
||||
lda #<(UPDATE_START+(BARS_START*49))
|
||||
sta OUTL
|
||||
lda #>(UPDATE_START+(BARS_START*49))
|
||||
sta OUTH
|
||||
setup_rasterbars_bars_start_smc:
|
||||
ldx #BARS_START ; 2
|
||||
setup_rasterbars_start_addr1_smc:
|
||||
lda #<(UPDATE_START+(BARS_START*49)) ; 2
|
||||
sta OUTL ; 3
|
||||
setup_rasterbars_start_addr2_smc:
|
||||
lda #>(UPDATE_START+(BARS_START*49)) ; 2
|
||||
sta OUTH ; 3
|
||||
lda #0 ; 2
|
||||
sta FORCE_MUSIC ; 3
|
||||
;===========
|
||||
; 22
|
||||
setup_rasterbars_outer_loop:
|
||||
ldy #6
|
||||
lda #13
|
||||
sta RASTER_X
|
||||
ldy #6 ; 2
|
||||
setup_rasterbars_offset_smc:
|
||||
lda #13 ; 2
|
||||
sta RASTER_X ; 3
|
||||
;===========
|
||||
; 7
|
||||
setup_rasterbars_inner_loop:
|
||||
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 ; 3
|
||||
sta (OUTL),Y ; 6
|
||||
iny ; 2
|
||||
clc ; 2
|
||||
lda gr_offsets+1,X ; 4
|
||||
adc RASTER_PAGE ; 2
|
||||
sta (OUTL),Y ; 6
|
||||
iny ; 2
|
||||
iny ; 2
|
||||
pla ; 4
|
||||
tax ; 2
|
||||
|
||||
cpy #48 ; 2
|
||||
bne setup_rasterbars_inner_loop ; 3
|
||||
;============
|
||||
; 66
|
||||
|
||||
;-1
|
||||
|
||||
inc FORCE_MUSIC ; 6
|
||||
and #$f ; 2
|
||||
bne no_music_this_time ; 3
|
||||
;===========
|
||||
; 11
|
||||
|
||||
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
|
||||
iny
|
||||
jsr play_frame_compressed
|
||||
pla
|
||||
tax
|
||||
|
||||
cpy #48
|
||||
bne setup_rasterbars_inner_loop
|
||||
no_music_this_time:
|
||||
|
||||
clc
|
||||
lda #49
|
||||
adc OUTL
|
||||
sta OUTL
|
||||
lda OUTH
|
||||
adc #0
|
||||
sta OUTH
|
||||
clc ; 2
|
||||
lda #49 ; 2
|
||||
adc OUTL ; 3
|
||||
sta OUTL ; 3
|
||||
lda OUTH ; 3
|
||||
adc #0 ; 2
|
||||
sta OUTH ; 3
|
||||
|
||||
lda RASTER_PAGE ; 3
|
||||
eor #$04 ; 2
|
||||
sta RASTER_PAGE ; 3
|
||||
|
||||
lda RASTER_PAGE
|
||||
eor #$04
|
||||
sta RASTER_PAGE
|
||||
|
||||
inx
|
||||
cpx #184
|
||||
bne setup_rasterbars_outer_loop
|
||||
|
||||
rts
|
||||
inx ; 2
|
||||
setup_rasterbars_bars_end_smc:
|
||||
cpx #184 ; 2
|
||||
bne setup_rasterbars_outer_loop ; 3
|
||||
;============
|
||||
; 32
|
||||
rts ; -1
|
||||
; 6
|
||||
|
||||
one_scanline:
|
||||
.byte $2C,$54,$C0 ; bit PAGE0 ; 4
|
||||
|
@ -21,6 +21,49 @@ missing_intro:
|
||||
|
||||
jsr create_update_type1 ; now calls play_frame_compressed
|
||||
|
||||
; setup_rasterbars_page_smc=4
|
||||
; lda #0
|
||||
; sta setup_rasterbars_page_smc+1
|
||||
; setup_rasterbars_offset_smc=2
|
||||
lda #2
|
||||
sta setup_rasterbars_offset_smc+1
|
||||
; setup_rasterbars_bars_start_smc=16
|
||||
lda #13
|
||||
sta setup_rasterbars_bars_start_smc+1
|
||||
; setup_rasterbars_bars_end_smc=48
|
||||
lda #48
|
||||
sta setup_rasterbars_bars_end_smc+1
|
||||
; setup_rasterbars_start_addr1_smc:=#<(UPDATE_START+(13*49))
|
||||
lda #<(UPDATE_START+(12*49))
|
||||
sta setup_rasterbars_start_addr1_smc+1
|
||||
; setup_rasterbars_start_addr2_smc:=#<(UPDATE_START+(13*49))
|
||||
lda #>(UPDATE_START+(12*49))
|
||||
sta setup_rasterbars_start_addr2_smc+1
|
||||
|
||||
jsr setup_rasterbars
|
||||
|
||||
; setup_rasterbars_page_smc=4
|
||||
; lda #0
|
||||
; sta setup_rasterbars_page_smc+1
|
||||
; setup_rasterbars_offset_smc=2
|
||||
lda #2
|
||||
sta setup_rasterbars_offset_smc+1
|
||||
; setup_rasterbars_bars_start_smc=16
|
||||
lda #149
|
||||
sta setup_rasterbars_bars_start_smc+1
|
||||
; setup_rasterbars_bars_end_smc=48
|
||||
lda #187
|
||||
sta setup_rasterbars_bars_end_smc+1
|
||||
; setup_rasterbars_start_addr1_smc:=#<(UPDATE_START+(149*49))
|
||||
lda #<(UPDATE_START+(148*49))
|
||||
sta setup_rasterbars_start_addr1_smc+1
|
||||
; setup_rasterbars_start_addr2_smc:=#<(UPDATE_START+(149*49))
|
||||
lda #>(UPDATE_START+(148*49))
|
||||
sta setup_rasterbars_start_addr2_smc+1
|
||||
|
||||
jsr setup_rasterbars
|
||||
|
||||
|
||||
jsr make_bars
|
||||
|
||||
;=============================
|
||||
@ -182,43 +225,77 @@ gloop2: dex ; 2
|
||||
|
||||
rts
|
||||
|
||||
BAR_START = 2*8
|
||||
;BAR_START = 2*8
|
||||
BAR_START = (2*8)-3 ; 13
|
||||
BAR_START2 = 152-3
|
||||
|
||||
; $9800 + (49*18) + 4 = $9800+886 = $9800+$376=$9b76
|
||||
; $9800 + (49*18) + 4 = $9800+886 = $9800+$376=$9b76 (9b72)
|
||||
; $9800 + (49*152) = $9800+7448 = $9800+$1d18=$b518
|
||||
|
||||
make_bars:
|
||||
|
||||
lda #<bar_colors_top
|
||||
sta INL
|
||||
lda #>bar_colors_top
|
||||
sta INH
|
||||
|
||||
lda #<(UPDATE_START+49*(BAR_START+2)+4)
|
||||
sta OUTL
|
||||
lda #>(UPDATE_START+49*(BAR_START+2)+4)
|
||||
sta OUTH
|
||||
|
||||
lda #<bar_colors_top
|
||||
sta INL
|
||||
lda #>bar_colors_top
|
||||
sta INL
|
||||
|
||||
ldx #4
|
||||
|
||||
jsr make_bars_entry
|
||||
|
||||
lda #<bar_colors_bottom
|
||||
sta INL
|
||||
lda #>bar_colors_bottom
|
||||
sta INH
|
||||
|
||||
lda #<(UPDATE_START+49*(BAR_START2+2)+4)
|
||||
sta OUTL
|
||||
lda #>(UPDATE_START+49*(BAR_START2+2)+4)
|
||||
sta OUTH
|
||||
|
||||
jsr make_bars_entry
|
||||
|
||||
rts
|
||||
|
||||
make_bars_entry:
|
||||
|
||||
ldy #0
|
||||
make_bars_loop:
|
||||
|
||||
make_bars_loop:
|
||||
lda (INL),Y
|
||||
sta (OUTL),Y
|
||||
|
||||
dex
|
||||
bpl make_bars_loop
|
||||
iny
|
||||
lda OUTL
|
||||
clc
|
||||
adc #48 ; because y++
|
||||
sta OUTL
|
||||
lda OUTH
|
||||
adc #0
|
||||
sta OUTH
|
||||
|
||||
; cpy #32
|
||||
tya
|
||||
and #$1f
|
||||
bne make_bars_loop
|
||||
|
||||
rts
|
||||
|
||||
bar_colors_top:
|
||||
.byte $03,$0b,$0f,$0b,$30
|
||||
.byte $02,$06,$0f,$06,$20
|
||||
.byte $04,$0c,$0f,$0c,$40
|
||||
.byte $05,$07,$0f,$07,$50
|
||||
.byte $03,$0b,$0f,$0b,$30,$00,$00
|
||||
.byte $00,$02,$06,$0f,$06,$20,$00,$00
|
||||
.byte $00,$04,$0c,$0f,$0c,$40,$00,$00
|
||||
.byte $00,$05,$07,$0f,$07,$50,$00,$00,$00,$00,$00
|
||||
|
||||
bar_colors_bottom:
|
||||
.byte $01,$03,$0f,$03,$10
|
||||
.byte $08,$0d,$0f,$0d,$80
|
||||
.byte $0c,$0e,$0f,$0e,$c0
|
||||
.byte $09,$0d,$0f,$0d,$90
|
||||
.byte $01,$03,$0f,$03,$10,$00,$00
|
||||
.byte $00,$08,$0d,$0f,$0d,$80,$00,$00
|
||||
.byte $00,$0c,$0e,$0f,$0e,$c0,$00,$00
|
||||
.byte $00,$09,$0d,$0f,$0d,$90,$00,$00,$00,$00,$00
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user