Copy Link
Add to Bookmark
Report
Atari Falcons xbios-rutiner fôr DSP:N
*************************************************************************
* *
* F A L C O N S X B I O S - R U T I N E R F ô R D S P : N *
* *
* A V *
* *
* JENS KALVIK *
* *
* VERSION 0.2 *
* *
**************************************************************************
XBIOS $80 locksnd()
Denna rutin lÜser ljudet fîr andra programm. AnvÑnd bara denna rutin under
kort stund.
IN parametrar: inga
UT parametrar: 1=LÜst (Bra !) -128=Redan lÜst
4BIOS $81 unlocksnd()
Denna rutin Ñr samma som fîregÜende men lÜser istÑllet upp
IN parametrar: inga
UT parametrar: 0=Inga fel (Bra !) -129=Ljudet var inte lÜst
XBIOS $82 soundcmd(w:mode,w:data)
Denna rutin kan anvÑndas fîr att stÑlla vÑnster och hîger volym samt bas/
diskant.
IN parametrar mode:
0=LTATTEN ;till fîr att stÑlla vÑnster volym i -1.5 db-steg
1=RTATTEN ;till fîr att stÑlla hîger volym i -1.5 db-steg
2=LTGAIN ;till fîr att stÑlla vÑnster volym 1.5 db (sampl)
3=RTGAIN ;till fîr att stÑlla hîger volym 1.5 db (sampl)
4=ADDRIN ;till fîr att addera ADC och/eller Multiplexer
5=ADCINPUT ;till fîr att stÑlla in om data ska tas frÜn
;mickrofon eller ljudchipet fîr V/H kanal
6=SETPRESCALE ;till fîr att stÑlla in STE kompatibelt ljud
IN parametrar data:
0 = sÑtt data xxxx xxxx LLLL xxxx ;LLLL=volym (0-15)
1 = sÑtt data xxxx xxxx RRRR xxxx ;RRRR=volym (0-15)
2 = sÑtt data xxxx xxxx LLLL xxxx ;LLLL=volym (0-15)
3 = sÑtt data xxxx xxxx RRRR xxxx ;RRRR=volym (0-15)
4 = xxxx xxxx xxxx xxMA ;A=ADC, M=Multiplexer
5 = xxxx xxxx xxxx xxLR ;L=VÑnster kanal ("1"=ljudchipet, "2"=Mic)
;R=Hîger kanal ("1"=ljudchipet, "2"=Mic)
6 = 1=dela frekvensen med 640, 2=dela frekvensen med 320, 3=dela -
frekvensen med 160, 0=INTE BRA !!
UT parametrar: samma som data IN parametrar
XBIOS $83 setbuffer(w:reg,l:begaddr,l:endaddr)
SÑtter om buffert ska anvÑndas fîr inspelning eller uppspelning samt start-
adress och slutadress fîr samplingen.
IN parametrar
reg=0 ;SÑtt buffert fîr uppspelning
reg=1 ;SÑtt buffert fîr inspelning
beggaddr= startadress fîr sampling
endaddr= slutadress fîr sampling
UT parametrar
0= Inget fel
XBIOS $84 setsndmode(w:mode)
SÑtter vilka parametrar som ska gÑlla fîr samplingen.
IN parametrar
mode=0 ;8-bitars stereo
mode=1 ;16-bitars stereo
mode=2 ;8-bitars mono
UT parametrar:
0=Inga fel
XBIOS $85 settrack(w:playtracks,w:rectracks)
Denna funktion sÑtter hur mÜnga spÜr som skall anvÑndas vid in- och
uppspelning. Dessa spÜr Ñr i stereo. Igentligen har man alltsÜ 8 mono-spÜr.
IN parametrar:
playtracks= 0-3
rectracks= 0-3
UT parametrar:
0=Inga fel
XBIOS $86 setmontrack(w:montrack)
SÑtter vilket spÜr som skall hîras genom hîrlurarna eller den inbyggda-
hîgtalaren.
IN parametrar:
montrack=0-3
UT parametrar:
0=Inga fel
XBIOS $87 setinterrupt(w:src_inter,w:cause)
BestÑmmer vilken interrupt som skall anvÑndas vid upp- eller inspelning.
IN paramtrar:
src_inter=0 ;=Timer-A interrupt anvÑnds.
scr_inter=1 ;=MFP interrupt anvÑnds.
cause=0 ;=Ingen interrupt tillÜten.
cause=1 ;=Interrupt sker under uppspelning
cause=2 ;=Interrupt sker under inspelning
cause=3 ;=Interrupt sker vid bÜde upp- och inspelning
UT parametrar:
0=Inga fel
XBIOS $88 buffoper(w:mode)
SÑtter vilket lÑge som skall anvÑndas vid in och uppspelning. T ex spela
upp i en loop eller sampla i en loop.
IN parametrar:
mode=x x x x x x x x x x x x RR RE PR PE
RR=1 ;DMA-inspelning i loop pÜ
RE=1 ;DMA-inspelning pÜ
PR=1 ;DMA-uppspelning i loop pÜ
PE=1 ;DMA-uppspelning pÜ
mode=-1 ;Ger instÑllda vÑrden som svar
UT parametrar
0=inget fel
XBIOS $89 dsptristate(w:dspxmit,w:dsprec)
Till fîr att koppla SSI-porten till DSP:n via multiplexern vid in- eller
uppspelning. Dspxmit Ñr till fîr att skicka data via porten och dsprec Ñr
till fîr att ta emot data via porten.
IN parametrar:
dspxmit=0 ;SlÜ pÜ Tristate.
dspxmit=1 ;Fîrbindning med multiplexern.
dsprec=0 ;SlÜ pÜ Tristate.
dsprec=1 ;Fîrbindning med multiplexern.
UT parametrar:
0=Inget fel
XBIOS $8A gpio(w:mode,w:data)
Vet inte vad denna funktion anvÑnds till ??
XBIOS $8B devconnnect(w:src,w:dst,w:srcclk,w:prescale,w:protocol)
Denna funktion Ñr till fîr diverse olika instÑllningar sÜ som: vilken enhet
som skall spela eller ta emot ljudet, samplingshastighet, protokoll som ska
anvÑndas osv.
IN parametrar:
src=0 ;DMAPLAY (DMA-utdata)
src=1 ;DSPXMIT (DSP-utdata)
src=2 ;EXTINP (extern indata-kanal)
src=3 ;ADC (mic/stereo ingÜngen)
dst=0 ;DMAREC (DMA-indata)
dst=1 ;DSPREC (DSP-indata)
dst=2 ;EXTOUT (extern utdata-kanal)
dst=3 ;DAC (Hîrlur/stereo utgÜngen)
srcclk=0 ;Interna klockan pÜ 25.175 MHz (anvÑndbar fîr ADC/DAC)
srcclk=1 ;Extern klocka, anvÑndbar fîr ADC/DAC
srcclk=2 ;Interna klockan pÜ 32 MHz (inte anvÑndbar fîr ADC/DAC)
prescale=0 ;STE kompatibelt lÑge
prescale=1 ;CLK50K 49170 Hz
prescale=2 ;CLK33K 33880 Hz
prescale=3 ;CLK25K 24585 Hz
prescale=4 ;CLK20K 20770 Hz
prescale=5 ;CLK16K 16490 Hz
prescale=6 ;inte anvÑnd
prescale=7 ;CLK12K 12292 Hz
prescale=8 ;inte anvÑnd
prescale=9 ;CLK10K 9834 Hz
prescale=10 ;inte anvÑnd
prescale=11 ;CLK8K 8195 Hz
prescale=12 ;inte anvÑnd
prescale=13 ;inte anvÑnd
prescale=14 ;inte anvÑnd
prescale=15 ;inte anvÑnd
protocol=0 ;SDMA med handskakning
protocol=1 ;SDMA utan handskakning
UT parametrar:
0=inget fel
XBIOS $8C sndstatus(w:reset)
IN parametrar
reset=1 ;utfîr en reset pÜ CODEC-kretsen samt nollar L och R.
UT parametrar
reset=xxxx xxxx xxxxxLR SSSS
SSSS=0 ;inget fel har uppstÜt
SSSS=1 ;Ogiltligt kontrollfÑlt
SSSS=2 ;Ogiltligt sync-format
SSSS=3 ;Ogiltlig takt
L=1 ;Signalen i vÑnster ingÜng har varit fîr hîg
R=1 ;Signalen i hîger ingÜng har varit fîr lÜg
XBIOS $8D buffptr(l:pointer)
Till fîr att sÑtta pekaren fîr ljudbufferten (varifrÜn den skall bîrja spela
eller sampla).
IN parametrar:
pointer= ;adress till en lista fîr in- och uppspelnings adresserna
Listan ska se ut som fîljer:
LONG playbufptr ;pekaren fîr uppspelningsbufferten skall ligga hÑr
LONG recbufptr ;pekaren fîr inspelningsbufferten skall ligga hÑr
UT parametrar:
0=inget fel