1
0
mirror of https://github.com/cc65/cc65.git synced 2024-12-24 11:31:31 +00:00
cc65/libsrc/pce/psg.s
Oliver Schmidt 419eb700b5 Renamed INITBSS to INIT and INIT to ONCE.
The way we want to use the INITBSS segment - and especially the fact that it won't have the type bss on all ROM based targets - means that the name INITBSS is misleading. After all INIT is the best name from my perspective as it serves several purposes and therefore needs a rather generic name.

Unfortunately this means that the current INIT segment needs to be renamed too. Looking for a short (ideally 4 letter) name I came up with ONCE as it contains all code (and data) accessed only once during initialization.
2016-03-06 21:27:19 +01:00

31 lines
918 B
ArmAsm

.include "pce.inc"
.export psg_init
.segment "ONCE"
psg_init:
clx
stz PSG_GLOBAL_PAN ; Clear global balance
psg_clear_loop:
stx PSG_CHAN_SELECT ; Select channel
stz PSG_FREQ_LO ; Clear frequency LSB
stz PSG_FREQ_HI ; Clear frequency MSB
stz PSG_CHAN_CTRL ; Clear volume
stz PSG_CHAN_PAN ; Clear balance
stz PSG_NOISE ; Clear noise control
stz PSG_LFO_FREQ ; Clear LFO frequency
stz PSG_LFO_CTRL ; Clear LFO control
cly
psg_clear_waveform:
stz PSG_CHAN_DATA ; Clear waveform byte
iny
cpy #$20
bne psg_clear_waveform
inx
cpx #$06
bne psg_clear_loop
rts