2 ; Sound driver for the Atari Lynx.
4 ; Karri Kaksonen and Bjoern Spruck, 11.12.2012
8 .include "zeropage.inc"
10 .export _lynx_snd_init
12 ;----------------------------------------------------------------------------
13 ; ZP variables that go into APPZP
16 .segment "APPZP" : zeropage
23 ;----------------------------------------------------------------------------
39 SndNotePlaying: .res 4
51 SndEnvVolParts: .res 4
52 SndEnvVolParts2: .res 4
57 SndEnvFrqParts: .res 4
58 SndEnvFrqParts2: .res 4
61 SndEnvWaveLoop: .res 4
62 SndEnvWaveParts: .res 4
63 SndEnvWaveParts2: .res 4
65 MAX_INSTRUMENTS .set 64
66 SndEnvVolPtrLo: .res MAX_INSTRUMENTS
67 SndEnvVolPtrHi: .res MAX_INSTRUMENTS
68 SndEnvFrqPtrLo: .res MAX_INSTRUMENTS
69 SndEnvFrqPtrHi: .res MAX_INSTRUMENTS
70 SndEnvWavePtrLo: .res MAX_INSTRUMENTS
71 SndEnvWavePtrHi: .res MAX_INSTRUMENTS
75 SndOffsets: .byte $00,$08,$10,$18
79 ;----------------------------------------------------------------------------
80 ; void lynx_snd_init() will initialize the sound engine.
88 lda #%10011000|_31250Hz
91 sta STIMBKUP ; set up a 240Hz IRQ
98 stz $fd44 ; all channels full volume / no attenuation
110 init0: stz SndActive,x