mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-10-12 05:24:02 +00:00
pt3: get addresses right
This commit is contained in:
parent
08c28739de
commit
f5fb9e1ad7
@ -417,6 +417,17 @@ note_decode_loop:
|
|||||||
lda note_a+NOTE_LEN ; re-up length count
|
lda note_a+NOTE_LEN ; re-up length count
|
||||||
sta note_a+NOTE_LEN_COUNT
|
sta note_a+NOTE_LEN_COUNT
|
||||||
|
|
||||||
|
ldy #0
|
||||||
|
|
||||||
|
lda note_a+NOTE_ADDR_L
|
||||||
|
sta PATTERN_L
|
||||||
|
lda note_a+NOTE_ADDR_H
|
||||||
|
sta PATTERN_H
|
||||||
|
|
||||||
|
; get next value
|
||||||
|
lda (PATTERN_L),Y
|
||||||
|
|
||||||
|
blah: jmp blah
|
||||||
|
|
||||||
; current_val=pt3->data[*addr];
|
; current_val=pt3->data[*addr];
|
||||||
; switch((current_val>>4)&0xf) {
|
; switch((current_val>>4)&0xf) {
|
||||||
@ -727,14 +738,16 @@ pt3_set_pattern:
|
|||||||
lda PT3_LOC+PT3_PATTERN_LOC_L
|
lda PT3_LOC+PT3_PATTERN_LOC_L
|
||||||
sta PATTERN_L
|
sta PATTERN_L
|
||||||
lda PT3_LOC+PT3_PATTERN_LOC_H
|
lda PT3_LOC+PT3_PATTERN_LOC_H
|
||||||
|
adc #>PT3_LOC ; assume page boundary
|
||||||
sta PATTERN_H
|
sta PATTERN_H
|
||||||
|
|
||||||
lda (PATTERN_L),Y
|
lda (PATTERN_L),Y
|
||||||
sta note_a+NOTE_ADDR_L
|
sta note_a+NOTE_ADDR_L
|
||||||
iny
|
iny
|
||||||
|
|
||||||
|
clc
|
||||||
lda (PATTERN_L),Y
|
lda (PATTERN_L),Y
|
||||||
adc >PT3_LOC ; assume page boundary
|
adc #>PT3_LOC ; assume page boundary
|
||||||
sta note_a+NOTE_ADDR_H
|
sta note_a+NOTE_ADDR_H
|
||||||
iny
|
iny
|
||||||
|
|
||||||
@ -743,7 +756,7 @@ pt3_set_pattern:
|
|||||||
iny
|
iny
|
||||||
|
|
||||||
lda (PATTERN_L),Y
|
lda (PATTERN_L),Y
|
||||||
adc >PT3_LOC ; assume page boundary
|
adc #>PT3_LOC ; assume page boundary
|
||||||
sta note_b+NOTE_ADDR_H
|
sta note_b+NOTE_ADDR_H
|
||||||
iny
|
iny
|
||||||
|
|
||||||
@ -752,7 +765,7 @@ pt3_set_pattern:
|
|||||||
iny
|
iny
|
||||||
|
|
||||||
lda (PATTERN_L),Y
|
lda (PATTERN_L),Y
|
||||||
adc >PT3_LOC ; assume page boundary
|
adc #>PT3_LOC ; assume page boundary
|
||||||
sta note_c+NOTE_ADDR_H
|
sta note_c+NOTE_ADDR_H
|
||||||
|
|
||||||
lda #0
|
lda #0
|
||||||
@ -762,6 +775,8 @@ pt3_set_pattern:
|
|||||||
|
|
||||||
sta pt3_noise_period
|
sta pt3_noise_period
|
||||||
|
|
||||||
|
blah4: jmp blah4
|
||||||
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
|
||||||
@ -775,32 +790,55 @@ pt3_make_frame:
|
|||||||
; for(j=0;j<64;j++) {
|
; for(j=0;j<64;j++) {
|
||||||
; if (pt3_decode_line(&pt3)) break;
|
; if (pt3_decode_line(&pt3)) break;
|
||||||
|
|
||||||
next_subframe:
|
|
||||||
inc current_subframe ; for(f=0;f<pt3.speed;f++) {
|
; see if we need a new pattern
|
||||||
|
; we do if line==0 and subframe==0
|
||||||
|
lda current_line
|
||||||
|
bne line_good
|
||||||
lda current_subframe
|
lda current_subframe
|
||||||
cmp pt3_speed
|
bne line_good
|
||||||
|
|
||||||
|
; load a new patterh in
|
||||||
|
jsr pt3_set_pattern
|
||||||
|
|
||||||
|
pattern_good:
|
||||||
|
|
||||||
|
; see if we need a new line
|
||||||
|
|
||||||
|
lda current_subframe
|
||||||
|
bne line_good
|
||||||
|
|
||||||
|
; decode a new line
|
||||||
|
jsr pt3_decode_line
|
||||||
|
line_good:
|
||||||
|
|
||||||
|
; Increment everything
|
||||||
|
|
||||||
|
inc current_subframe ; subframe++
|
||||||
|
lda current_subframe
|
||||||
|
cmp pt3_speed ; if we hit pt3_speed, move to next
|
||||||
bne do_frame
|
bne do_frame
|
||||||
|
|
||||||
next_line:
|
next_line:
|
||||||
lda #0
|
lda #0 ; reset subframe to 0
|
||||||
sta current_subframe
|
sta current_subframe
|
||||||
|
|
||||||
jsr pt3_decode_line
|
inc current_line ; and increment line
|
||||||
|
|
||||||
inc current_line
|
; FIXME: not always 64
|
||||||
cmp #64
|
cmp #64 ; if not max, continue
|
||||||
bne do_frame
|
bne do_frame
|
||||||
|
|
||||||
next_pattern:
|
next_pattern:
|
||||||
lda #0
|
lda #0 ; reset line to 0
|
||||||
sta current_line
|
sta current_line
|
||||||
|
|
||||||
inc current_pattern
|
inc current_pattern ; increment pattern
|
||||||
lda current_pattern
|
lda current_pattern
|
||||||
cmp pt3_music_len
|
|
||||||
|
cmp pt3_music_len ; if end of song, mark it as so
|
||||||
beq done_song
|
beq done_song
|
||||||
|
|
||||||
jsr pt3_set_pattern
|
|
||||||
jmp do_frame
|
jmp do_frame
|
||||||
|
|
||||||
done_song:
|
done_song:
|
||||||
|
Loading…
Reference in New Issue
Block a user