pt3: add early-pattern end code

also now display memory on HGR page0 while playing
This commit is contained in:
Vince Weaver 2019-05-14 11:52:50 -04:00
parent e549d24cc8
commit d2e3f7327a
7 changed files with 44 additions and 19 deletions

View File

@ -13,9 +13,10 @@ pt3_player.dsk: PT3_PLAYER PT3_DUMPER HELLO DUMP
$(DOS33) -y pt3_player.dsk SAVE A HELLO $(DOS33) -y pt3_player.dsk SAVE A HELLO
$(DOS33) -y pt3_player.dsk SAVE A DUMP $(DOS33) -y pt3_player.dsk SAVE A DUMP
$(DOS33) -y pt3_player.dsk BSAVE -a 0x1000 PT3_DUMPER $(DOS33) -y pt3_player.dsk BSAVE -a 0x1000 PT3_DUMPER
$(DOS33) -y pt3_player.dsk BSAVE -a 0x1000 PT3_PLAYER $(DOS33) -y pt3_player.dsk BSAVE -a 0x2000 PT3_PLAYER
$(DOS33) -y pt3_player.dsk BSAVE -a 0x3000 EA.PT3 $(DOS33) -y pt3_player.dsk BSAVE -a 0x4000 EA.PT3
$(DOS33) -y pt3_player.dsk BSAVE -a 0x3000 VC.PT3 $(DOS33) -y pt3_player.dsk BSAVE -a 0x4000 VC.PT3
$(DOS33) -y pt3_player.dsk BSAVE -a 0x4000 SR.PT3
# $(DOS33) -y chiptune_player.dsk BSAVE -a 0x1c00 ./krw/CHRISTMAS.KRW # $(DOS33) -y chiptune_player.dsk BSAVE -a 0x1c00 ./krw/CHRISTMAS.KRW
# $(DOS33) -y chiptune_player.dsk BSAVE -a 0x1c00 ./krw/CRMOROS.KRW # $(DOS33) -y chiptune_player.dsk BSAVE -a 0x1c00 ./krw/CRMOROS.KRW
# $(DOS33) -y chiptune_player.dsk BSAVE -a 0x1c00 ./krw/DEATH2.KRW # $(DOS33) -y chiptune_player.dsk BSAVE -a 0x1c00 ./krw/DEATH2.KRW
@ -42,7 +43,7 @@ DUMP: dump.bas
../asoft_basic-utils/tokenize_asoft < dump.bas > DUMP ../asoft_basic-utils/tokenize_asoft < dump.bas > DUMP
PT3_PLAYER: pt3_player.o PT3_PLAYER: pt3_player.o
ld65 -o PT3_PLAYER pt3_player.o -C ../linker_scripts/apple2_1000.inc ld65 -o PT3_PLAYER pt3_player.o -C ../linker_scripts/apple2_2000.inc
pt3_player.o: pt3_player.s \ pt3_player.o: pt3_player.s \
gr_fast_clear.s pt3_lib.s interrupt_handler.s zp.inc gr_fast_clear.s pt3_lib.s interrupt_handler.s zp.inc

View File

@ -1,3 +1,6 @@
10 PRINT CHR$(4);"PR#1" 10 HGR
20 PRINT CHR$(4);"BRUN PT3_DUMPER" 12 REM 1=green, 2=purple, 5=orange 6=blue
15 HCOLOR=2
20 FOR I=0 TO 160: HPLOT 0,I TO 279,I: NEXT I
30 PRINT CHR$(4);"BRUN PT3_PLAYER"

View File

@ -5,7 +5,7 @@
.include "zp.inc" .include "zp.inc"
PT3_LOC = $3000 PT3_LOC = $4000
NUM_FILES EQU 15 NUM_FILES EQU 15

View File

@ -22,7 +22,7 @@ NOTE_LEN=14
NOTE_LEN_COUNT=15 NOTE_LEN_COUNT=15
NOTE_SPEC_COMMAND=16 ; is this one needed? NOTE_SPEC_COMMAND=16 ; is this one needed?
NOTE_NEW_NOTE=17 NOTE_NEW_NOTE=17
NOTE_ALL_DONE=18 ;NOTE_ALL_DONE=18
NOTE_ADDR_L=19 NOTE_ADDR_L=19
NOTE_ADDR_H=20 NOTE_ADDR_H=20
NOTE_ORNAMENT_POINTER_L=21 NOTE_ORNAMENT_POINTER_L=21
@ -210,9 +210,10 @@ pt3_envelope_type_old: .byte $0
pt3_envelope_delay: .byte $0 pt3_envelope_delay: .byte $0
pt3_envelope_delay_orig:.byte $0 pt3_envelope_delay_orig:.byte $0
;pt3_music_len: .byte $0
pt3_mixer_value: .byte $0 pt3_mixer_value: .byte $0
pt3_pattern_done: .byte $0
temp_word_l: .byte $0 temp_word_l: .byte $0
temp_word_h: .byte $0 temp_word_h: .byte $0
@ -1009,9 +1010,11 @@ decode_case_0X:
sta note_a+NOTE_LEN_COUNT,X ; len_count=0; sta note_a+NOTE_LEN_COUNT,X ; len_count=0;
lda #1 lda #1
sta note_a+NOTE_ALL_DONE,X
sta decode_done sta decode_done
; sta note_a+NOTE_ALL_DONE,X
dec pt3_pattern_done
jmp done_decode jmp done_decode
decode_case_0X_not_zero: decode_case_0X_not_zero:
@ -1667,11 +1670,15 @@ not_done:
sta note_c+NOTE_ADDR_H sta note_c+NOTE_ADDR_H
lda #0 lda #0
sta note_a+NOTE_ALL_DONE
sta note_b+NOTE_ALL_DONE
sta note_c+NOTE_ALL_DONE
sta pt3_noise_period sta pt3_noise_period
; sta note_a+NOTE_ALL_DONE
; sta note_b+NOTE_ALL_DONE
; sta note_c+NOTE_ALL_DONE
lda #3 ; FIXME: num_channels
sta pt3_pattern_done
rts rts
@ -1726,9 +1733,12 @@ next_line:
inc current_line ; and increment line inc current_line ; and increment line
lda current_line lda current_line
; FIXME: not always 64
cmp #64 ; if not max, continue lda pt3_pattern_done ; check if pattern done early
bne do_frame beq next_pattern
cmp #64 ; always end at 64.
bne do_frame ; is this always needed?
next_pattern: next_pattern:
lda #0 ; reset line to 0 lda #0 ; reset line to 0

View File

@ -2,7 +2,7 @@
.include "zp.inc" .include "zp.inc"
PT3_LOC = $3000 PT3_LOC = $4000
UNPACK_BUFFER EQU $6000 ; $6000 - $9800, 14k, $3800 UNPACK_BUFFER EQU $6000 ; $6000 - $9800, 14k, $3800
NUM_FILES EQU 15 NUM_FILES EQU 15
@ -16,6 +16,14 @@ pt3_setup:
jsr HOME jsr HOME
jsr TEXT jsr TEXT
bit HIRES
bit SET_GR
bit TEXTGR ; split text/graphics
; lda #$20
; sta HGR_PAGE
; jsr HCLR
; Init disk code ; Init disk code
jsr rts_init jsr rts_init

View File

@ -1,2 +1,2 @@
.asciiz "EA.PT3" .asciiz "SR.PT3"

View File

@ -209,6 +209,9 @@ CROUT1 EQU $FD8B ;; send a RETURN and clear end of line
PRBYTE EQU $FDDA PRBYTE EQU $FDDA
PRHEX EQU $FDE3 PRHEX EQU $FDE3
;; Applesoft routines
HCLR EQU $F3F2
;HGR_PAGE EQU $E6