1
0
mirror of https://github.com/cc65/cc65.git synced 2024-07-23 03:28:58 +00:00
cc65/libsrc/atari/sound.s

38 lines
1.0 KiB
ArmAsm
Raw Normal View History

;
; Mariano Domínguez
; 2022-12-4
;
; atari lib
;
.include "atari.inc"
.export __sound
.import popa
2023-01-16 01:05:24 +00:00
.importzp tmp1,tmp2
; play sound, arguments: voice, pitch, distortion, volume. same as BASIC
.proc __sound
sta tmp2 ;save volume
2023-01-06 05:27:54 +00:00
jsr popa ;get distortion
sta tmp1 ;save distortion
2023-01-06 05:27:54 +00:00
jsr popa ;get pitch
pha ;save in stack
jsr popa ;get voice
asl a ;adjust voice *2 for offset in x
2023-01-06 05:30:31 +00:00
tax
2023-01-06 05:27:54 +00:00
pla ;get pitch from stack
sta AUDF1,x ;store pitch
lda #0
sta AUDCTL
lda #3
sta SKCTL ;init sound
lda tmp1 ;get distortion
2023-01-06 05:27:54 +00:00
asl a ;ignore the high nibble
2023-01-06 05:34:43 +00:00
asl a
asl a
2023-01-06 05:27:54 +00:00
asl a
2023-01-06 05:36:44 +00:00
clc ;setup for adding volume
2023-01-16 17:01:11 +00:00
adc tmp2 ;add volume
2023-01-06 05:27:54 +00:00
sta AUDC1,x ;volume + distortion in control channel
rts
.endproc