mirror of
https://github.com/cc65/cc65.git
synced 2024-11-19 06:31:31 +00:00
add sound command
this behives the same as BASIC sound(voice, pitch, distortion, volume)
This commit is contained in:
parent
e944a30b6a
commit
f9024d132a
@ -235,6 +235,12 @@ extern void __fastcall__ _scroll (signed char numlines);
|
||||
/* numlines < 0 scrolls down */
|
||||
|
||||
|
||||
/*****************************************************************************/
|
||||
/* Sound function */
|
||||
/*****************************************************************************/
|
||||
|
||||
extern void __fastcall__ sound (unsigned char voice, unsigned char frequency, unsigned char distortion, unsigned char volume); /* plays a sound in the specidied voice, to silence call with in other params*/
|
||||
|
||||
/*****************************************************************************/
|
||||
/* Misc. functions */
|
||||
/*****************************************************************************/
|
||||
|
43
libsrc/atari/sound.s
Normal file
43
libsrc/atari/sound.s
Normal file
@ -0,0 +1,43 @@
|
||||
;
|
||||
; Mariano Domínguez
|
||||
; 2022-12-4
|
||||
;
|
||||
; atari lib
|
||||
;
|
||||
.include "atari.inc"
|
||||
|
||||
.export _sound
|
||||
.import popa
|
||||
; play sound, arguments: voice, pitch, distortion, volume. same as BASIC
|
||||
.proc _sound
|
||||
sta STORE2 ;save volume
|
||||
jsr popa ;get distortion
|
||||
sta STORE1 ;save distortion
|
||||
jsr popa ;get pitch
|
||||
pha ;save in stack
|
||||
jsr popa ;get voice
|
||||
|
||||
asl a ;adjust voice *2 for offset in x
|
||||
tax
|
||||
pla ;get pitch from stack
|
||||
sta AUDF1,x ; store pitch
|
||||
|
||||
lda #0
|
||||
sta AUDCTL
|
||||
lda #3
|
||||
stx SKCTL ; init sound
|
||||
|
||||
lda STORE1 ;get distortion
|
||||
asl a ;ignore the high nibble
|
||||
asl a
|
||||
asl a
|
||||
asl a
|
||||
clc ; setup for adding volume
|
||||
adc STORE2 ; add volume
|
||||
sta AUDC1,x ; volume + distortion in control channel
|
||||
rts
|
||||
.endproc
|
||||
; reserve 2 bytes for temp storage
|
||||
.bss
|
||||
STORE1: .res 1
|
||||
STORE2: .res 1
|
Loading…
Reference in New Issue
Block a user