interlace: move some code around

This commit is contained in:
Vince Weaver 2019-09-16 00:11:09 -04:00
parent edb5717507
commit 83b46be19d

View File

@ -5,13 +5,6 @@
;===================================== ;=====================================
; Set Pattern ; Set Pattern
;===================================== ;=====================================
; FIXME: inline this? we do call it from outside
; in the player note length code
is_done:
; done with song, set it to non-zero
sta DONE_SONG ; 3
rts ; 6
pt3_set_pattern: pt3_set_pattern:
@ -22,7 +15,12 @@ current_pattern_smc:
; if value is $FF we are at the end of the song ; if value is $FF we are at the end of the song
cmp #$ff ; 2 cmp #$ff ; 2
beq is_done ; 2/3 bne not_done ; 3
is_done:
; done with song, set it to non-zero
sta DONE_SONG ; 3
rts ; 6
;============ ;============
; 20 if end ; 20 if end
@ -81,18 +79,6 @@ not_done:
rts ; 6 rts ; 6
;=====================================
; pt3 make frame
;=====================================
; update pattern or line if necessary
; then calculate the values for the next frame
; 8+373=381
;========================== ;==========================
; pattern done early! ; pattern done early!
@ -122,22 +108,41 @@ set_pattern:
;========================================== ;==========================================
; real entry point ; real entry point
;=====================================
;=====================================
;=====================================
; pt3 make frame
;=====================================
;=====================================
;=====================================
; update pattern or line if necessary
; then calculate the values for the next frame
; 8+373=381
; Paths
;
; current_line=0
; current_line=1
pt3_make_frame: pt3_make_frame:
; see if we need a new pattern ; see if we need a new pattern
; we do if line==0 and subframe==0 ; we do if line==0 and subframe==0
; allow fallthrough where possible ; allow fallthrough where possible
current_line_smc: current_line_smc:
lda #$d1 ; 2 lda #$d1 ; 2
beq check_subframe ; 3
beq check_subframe ; 2/3 ; -1
pattern_good: pattern_good:
; see if we need a new line ; see if we need a new line
current_subframe_smc: current_subframe_smc:
lda #$d1 ; 2 lda #$d1 ; 2
bne line_good ; 2/3 bne line_good ; 2/3
pt3_new_line: pt3_new_line:
@ -182,4 +187,5 @@ next_pattern:
;==============================================
; falls through to do_frame