mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-11-19 12:32:35 +00:00
195 lines
5.5 KiB
ArmAsm
195 lines
5.5 KiB
ArmAsm
; TODO
|
|
; move some of these flags to be bits rather than bytes?
|
|
; enabled could be bit 6 or 7 for fast checking
|
|
;
|
|
; Use memset to set things to 0?
|
|
|
|
NOTE_WHICH=0
|
|
NOTE_VOLUME=1
|
|
NOTE_TONE_SLIDING=2
|
|
NOTE_ENABLED=3
|
|
NOTE_ENVELOPE_ENABLED=4
|
|
NOTE_SAMPLE_POINTER=5
|
|
NOTE_SAMPLE_LOOP=7
|
|
NOTE_SAMPLE_LENGTH=8
|
|
|
|
note_a:
|
|
.byte 'A' ; NOTE_WHICH
|
|
.byte $0 ; NOTE_VOLUME
|
|
.byte $0 ; NOTE_TONE_SLIDING
|
|
.byte $0 ; NOTE_ENABLED
|
|
.byte $0 ; NOTE_ENVELOPE_ENABLED
|
|
.word $0 ; NOTE_SAMPLE_POINTER
|
|
.byte $0 ; NOTE_SAMPLE_LOOP
|
|
.byte $0 ; NOTE_SAMPLE_LENGTH
|
|
note_b:
|
|
.byte 'B' ; NOTE_WHICH
|
|
.byte $0 ; NOTE_VOLUME
|
|
.byte $0 ; NOTE_TONE_SLIDING
|
|
.byte $0 ; NOTE_ENABLED
|
|
.byte $0 ; NOTE_ENVELOPE_ENABLED
|
|
.word $0 ; NOTE_SAMPLE_POINTER
|
|
.byte $0 ; NOTE_SAMPLE_LOOP
|
|
.byte $0 ; NOTE_SAMPLE_LENGTH
|
|
note_c:
|
|
.byte 'C' ; NOTE_WHICH
|
|
.byte $0 ; NOTE_VOLUME
|
|
.byte $0 ; NOTE_TONE_SLIDING
|
|
.byte $0 ; NOTE_ENABLED
|
|
.byte $0 ; NOTE_ENVELOPE_ENABLED
|
|
.word $0 ; NOTE_SAMPLE_POINTER
|
|
.byte $0 ; NOTE_SAMPLE_LOOP
|
|
.byte $0 ; NOTE_SAMPLE_LENGTH
|
|
|
|
pt3_noise_period: .byte $0
|
|
pt3_noise_add: .byte $0
|
|
pt3_envelope_period: .byte $0
|
|
pt3_envelope_type: .byte $0
|
|
pt3_current_pattern: .byte $0
|
|
pt3_music_len: .byte $0
|
|
|
|
load_ornament:
|
|
rts
|
|
|
|
load_sample:
|
|
rts
|
|
|
|
pt3_init_song:
|
|
lda #$f
|
|
sta note_a+NOTE_VOLUME
|
|
sta note_b+NOTE_VOLUME
|
|
sta note_c+NOTE_VOLUME
|
|
lda #$0
|
|
sta note_a+NOTE_TONE_SLIDING
|
|
sta note_b+NOTE_TONE_SLIDING
|
|
sta note_c+NOTE_TONE_SLIDING
|
|
sta note_a+NOTE_ENABLED
|
|
sta note_b+NOTE_ENABLED
|
|
sta note_c+NOTE_ENABLED
|
|
sta note_a+NOTE_ENVELOPE_ENABLED
|
|
sta note_b+NOTE_ENVELOPE_ENABLED
|
|
sta note_c+NOTE_ENVELOPE_ENABLED
|
|
lda #'A'
|
|
jsr load_ornament
|
|
lda #'A'
|
|
jsr load_sample
|
|
lda #'B'
|
|
jsr load_ornament
|
|
lda #'B'
|
|
jsr load_sample
|
|
lda #'C'
|
|
jsr load_ornament
|
|
lda #'C'
|
|
jsr load_sample
|
|
|
|
lda #$0
|
|
sta pt3_noise_period
|
|
sta pt3_noise_add
|
|
sta pt3_envelope_period
|
|
sta pt3_envelope_type
|
|
sta pt3_current_pattern
|
|
|
|
rts
|
|
|
|
|
|
|
|
|
|
; Table #1 of Pro Tracker 3.3x - 3.5x
|
|
PT3NoteTable_ST_high:
|
|
.byte $0E,$0E,$0D,$0C,$0B,$0B,$0A,$09
|
|
.byte $09,$08,$08,$07,$07,$07,$06,$06
|
|
.byte $05,$05,$05,$04,$04,$04,$04,$03
|
|
.byte $03,$03,$03,$03,$02,$02,$02,$02
|
|
.byte $02,$02,$02,$01,$01,$01,$01,$01
|
|
.byte $01,$01,$01,$01,$01,$01,$01,$00
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00
|
|
|
|
PT3NoteTable_ST_low:
|
|
.byte $F8,$10,$60,$80,$D8,$28,$88,$F0
|
|
.byte $60,$E0,$58,$E0,$7C,$08,$B0,$40
|
|
.byte $EC,$94,$44,$F8,$B0,$70,$2C,$FD
|
|
.byte $BE,$84,$58,$20,$F6,$CA,$A2,$7C
|
|
.byte $58,$38,$16,$F8,$DF,$C2,$AC,$90
|
|
.byte $7B,$65,$51,$3E,$2C,$1C,$0A,$FC
|
|
.byte $EF,$E1,$D6,$C8,$BD,$B2,$A8,$9F
|
|
.byte $96,$8E,$85,$7E,$77,$70,$6B,$64
|
|
.byte $5E,$59,$54,$4F,$4B,$47,$42,$3F
|
|
.byte $3B,$38,$35,$32,$2F,$2C,$2A,$27
|
|
.byte $25,$23,$21,$1F,$1D,$1C,$1A,$19
|
|
.byte $17,$16,$15,$13,$12,$11,$10,$0F
|
|
|
|
|
|
; Table #2 of Pro Tracker 3.4x - 3.5x
|
|
PT3NoteTable_ASM_34_35_high:
|
|
.byte $0D,$0C,$0B,$0A,$0A,$09,$09,$08
|
|
.byte $08,$07,$07,$06,$06,$06,$05,$05
|
|
.byte $05,$04,$04,$04,$04,$03,$03,$03
|
|
.byte $03,$03,$02,$02,$02,$02,$02,$02
|
|
.byte $02,$01,$01,$01,$01,$01,$01,$01
|
|
.byte $01,$01,$01,$01,$01,$00,$00,$00
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00
|
|
.byte $00,$00,$00,$00,$00,$00,$00,$00
|
|
|
|
PT3NoteTable_ASM_34_35_lo:
|
|
.byte $10,$55,$A4,$FC,$5F,$CA,$3D,$B8
|
|
.byte $3B,$C5,$55,$EC,$88,$2A,$D2,$7E
|
|
.byte $2F,$E5,$9E,$5C,$1D,$E2,$AB,$76
|
|
.byte $44,$15,$E9,$BF,$98,$72,$4F,$2E
|
|
.byte $0F,$F1,$D5,$BB,$A2,$8B,$74,$60
|
|
.byte $4C,$39,$28,$17,$07,$F9,$EB,$DD
|
|
.byte $D1,$C5,$BA,$B0,$A6,$9D,$94,$8C
|
|
.byte $84,$7C,$75,$6F,$69,$63,$5D,$58
|
|
.byte $53,$4E,$4A,$46,$42,$3E,$3B,$37
|
|
.byte $34,$31,$2F,$2C,$29,$27,$25,$23
|
|
.byte $21,$1F,$1D,$1C,$1A,$19,$17,$16
|
|
.byte $15,$14,$12,$11,$10,$0F,$0E,$0D
|
|
|
|
|
|
PT3VolumeTable_33_34:
|
|
.byte $0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
|
|
.byte $0,$0,$0,$0,$0,$0,$0,$0,$1,$1,$1,$1,$1,$1,$1,$1
|
|
.byte $0,$0,$0,$0,$0,$0,$1,$1,$1,$1,$1,$2,$2,$2,$2,$2
|
|
.byte $0,$0,$0,$0,$1,$1,$1,$1,$2,$2,$2,$2,$3,$3,$3,$3
|
|
.byte $0,$0,$0,$0,$1,$1,$1,$2,$2,$2,$3,$3,$3,$4,$4,$4
|
|
.byte $0,$0,$0,$1,$1,$1,$2,$2,$3,$3,$3,$4,$4,$4,$5,$5
|
|
.byte $0,$0,$0,$1,$1,$2,$2,$3,$3,$3,$4,$4,$5,$5,$6,$6
|
|
.byte $0,$0,$1,$1,$2,$2,$3,$3,$4,$4,$5,$5,$6,$6,$7,$7
|
|
.byte $0,$0,$1,$1,$2,$2,$3,$3,$4,$5,$5,$6,$6,$7,$7,$8
|
|
.byte $0,$0,$1,$1,$2,$3,$3,$4,$5,$5,$6,$6,$7,$8,$8,$9
|
|
.byte $0,$0,$1,$2,$2,$3,$4,$4,$5,$6,$6,$7,$8,$8,$9,$A
|
|
.byte $0,$0,$1,$2,$3,$3,$4,$5,$6,$6,$7,$8,$9,$9,$A,$B
|
|
.byte $0,$0,$1,$2,$3,$4,$4,$5,$6,$7,$8,$8,$9,$A,$B,$C
|
|
.byte $0,$0,$1,$2,$3,$4,$5,$6,$7,$7,$8,$9,$A,$B,$C,$D
|
|
.byte $0,$0,$1,$2,$3,$4,$5,$6,$7,$8,$9,$A,$B,$C,$D,$E
|
|
.byte $0,$1,$2,$3,$4,$5,$6,$7,$8,$9,$A,$B,$C,$D,$E,$F
|
|
|
|
|
|
PT3VolumeTable_35:
|
|
.byte $0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
|
|
.byte $0,$0,$0,$0,$0,$0,$0,$0,$1,$1,$1,$1,$1,$1,$1,$1
|
|
.byte $0,$0,$0,$0,$1,$1,$1,$1,$1,$1,$1,$1,$2,$2,$2,$2
|
|
.byte $0,$0,$0,$1,$1,$1,$1,$1,$2,$2,$2,$2,$2,$3,$3,$3
|
|
.byte $0,$0,$1,$1,$1,$1,$2,$2,$2,$2,$3,$3,$3,$3,$4,$4
|
|
.byte $0,$0,$1,$1,$1,$2,$2,$2,$3,$3,$3,$4,$4,$4,$5,$5
|
|
.byte $0,$0,$1,$1,$2,$2,$2,$3,$3,$4,$4,$4,$5,$5,$6,$6
|
|
.byte $0,$0,$1,$1,$2,$2,$3,$3,$4,$4,$5,$5,$6,$6,$7,$7
|
|
.byte $0,$1,$1,$2,$2,$3,$3,$4,$4,$5,$5,$6,$6,$7,$7,$8
|
|
.byte $0,$1,$1,$2,$2,$3,$4,$4,$5,$5,$6,$7,$7,$8,$8,$9
|
|
.byte $0,$1,$1,$2,$3,$3,$4,$5,$5,$6,$7,$7,$8,$9,$9,$A
|
|
.byte $0,$1,$1,$2,$3,$4,$4,$5,$6,$7,$7,$8,$9,$A,$A,$B
|
|
.byte $0,$1,$2,$2,$3,$4,$5,$6,$6,$7,$8,$9,$A,$A,$B,$C
|
|
.byte $0,$1,$2,$3,$3,$4,$5,$6,$7,$8,$9,$A,$A,$B,$C,$D
|
|
.byte $0,$1,$2,$3,$4,$5,$6,$7,$7,$8,$9,$A,$B,$C,$D,$E
|
|
.byte $0,$1,$2,$3,$4,$5,$6,$7,$8,$9,$A,$B,$C,$D,$E,$F
|
|
|
|
|