**************************************************************************
*                                                                        *
*      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 lser ljudet fr andra programm. Anvnd bara denna rutin under
kort stund.

IN parametrar: inga
UT parametrar: 1=Lst (Bra !) -128=Redan lst


4BIOS $81   unlocksnd()

Denna rutin r samma som fregende men lser istllet upp

IN parametrar: inga
UT parametrar: 0=Inga fel (Bra !) -129=Ljudet var inte lst


XBIOS $82   soundcmd(w:mode,w:data)

Denna rutin kan anvndas fr att stlla vnster och hger volym samt bas/
diskant.

IN parametrar mode:
               
               0=LTATTEN   ;till fr att stlla vnster volym i -1.5 db-steg
               1=RTATTEN   ;till fr att stlla hger volym i -1.5 db-steg
               2=LTGAIN    ;till fr att stlla vnster volym 1.5 db (sampl)
               3=RTGAIN    ;till fr att stlla hger volym 1.5 db (sampl)
               4=ADDRIN    ;till fr att addera ADC och/eller Multiplexer
               5=ADCINPUT  ;till fr att stlla in om data ska tas frn
                           ;mickrofon eller ljudchipet fr V/H kanal
               6=SETPRESCALE  ;till fr att stlla in STE kompatibelt ljud

IN parametrar data:

0  =  stt data xxxx xxxx LLLL xxxx ;LLLL=volym (0-15)
1  =  stt data xxxx xxxx RRRR xxxx ;RRRR=volym (0-15)
2  =  stt data xxxx xxxx LLLL xxxx ;LLLL=volym (0-15)
3  =  stt data xxxx xxxx RRRR xxxx ;RRRR=volym (0-15)
4  =  xxxx xxxx xxxx xxMA  ;A=ADC, M=Multiplexer
5  =  xxxx xxxx xxxx xxLR  ;L=Vnster kanal ("1"=ljudchipet, "2"=Mic)
                           ;R=Hger 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)

Stter om buffert ska anvndas fr inspelning eller uppspelning samt start-
adress och slutadress fr samplingen.

IN parametrar

reg=0 ;Stt buffert fr uppspelning
reg=1 ;Stt buffert fr inspelning

beggaddr=   startadress fr sampling
endaddr=    slutadress fr sampling

UT parametrar

0= Inget fel


XBIOS $84   setsndmode(w:mode)

Stter vilka parametrar som ska glla fr 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 stter hur mnga spr som skall anvndas vid in- och
uppspelning. Dessa spr r i stereo. Igentligen har man allts 8 mono-spr.

IN parametrar:

playtracks= 0-3
rectracks= 0-3

UT parametrar:

0=Inga fel


XBIOS $86   setmontrack(w:montrack)

Stter vilket spr som skall hras genom hrlurarna eller den inbyggda-
hgtalaren.

IN parametrar:

montrack=0-3

UT parametrar:

0=Inga fel


XBIOS $87   setinterrupt(w:src_inter,w:cause)

Bestmmer vilken interrupt som skall anvndas vid upp- eller inspelning.

IN paramtrar:

src_inter=0 ;=Timer-A interrupt anvnds.
scr_inter=1 ;=MFP interrupt anvnds.

cause=0     ;=Ingen interrupt tillten.
cause=1     ;=Interrupt sker under uppspelning
cause=2     ;=Interrupt sker under inspelning
cause=3     ;=Interrupt sker vid bde upp- och inspelning

UT parametrar:

0=Inga fel


XBIOS $88   buffoper(w:mode)

Stter vilket lge som skall anvndas 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 instllda vrden som svar

UT parametrar

0=inget fel



XBIOS $89   dsptristate(w:dspxmit,w:dsprec)

Till fr att koppla SSI-porten till DSP:n via multiplexern vid in- eller
uppspelning. Dspxmit r till fr att skicka data via porten och dsprec r
till fr att ta emot data via porten.

 
IN parametrar:

dspxmit=0   ;Sl p Tristate.
dspxmit=1   ;Frbindning med multiplexern.
dsprec=0    ;Sl p Tristate.
dsprec=1    ;Frbindning med multiplexern.

UT parametrar:

0=Inget fel


XBIOS $8A   gpio(w:mode,w:data)

Vet inte vad denna funktion anvnds till ??


XBIOS $8B   devconnnect(w:src,w:dst,w:srcclk,w:prescale,w:protocol)

Denna funktion r till fr diverse olika instllningar s som: vilken enhet
som skall spela eller ta emot ljudet, samplingshastighet, protokoll som ska
anvndas osv.

IN parametrar:

src=0       ;DMAPLAY (DMA-utdata)
src=1       ;DSPXMIT (DSP-utdata)
src=2       ;EXTINP (extern indata-kanal)
src=3       ;ADC (mic/stereo ingngen)

dst=0       ;DMAREC (DMA-indata)
dst=1       ;DSPREC (DSP-indata)
dst=2       ;EXTOUT (extern utdata-kanal)
dst=3       ;DAC (Hrlur/stereo utgngen)

srcclk=0    ;Interna klockan p 25.175 MHz (anvndbar fr ADC/DAC)
srcclk=1    ;Extern klocka, anvndbar fr ADC/DAC
srcclk=2    ;Interna klockan p 32 MHz (inte anvndbar fr ADC/DAC)

prescale=0  ;STE kompatibelt lge
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 anvnd
prescale=7  ;CLK12K 12292 Hz
prescale=8  ;inte anvnd
prescale=9  ;CLK10K 9834 Hz
prescale=10 ;inte anvnd
prescale=11 ;CLK8K 8195 Hz
prescale=12 ;inte anvnd
prescale=13 ;inte anvnd
prescale=14 ;inte anvnd
prescale=15 ;inte anvnd

protocol=0  ;SDMA med handskakning
protocol=1  ;SDMA utan handskakning

UT parametrar:

0=inget fel


XBIOS $8C   sndstatus(w:reset)

IN parametrar

reset=1  ;utfr en reset p CODEC-kretsen samt nollar L och R.

UT parametrar

reset=xxxx xxxx xxxxxLR SSSS

SSSS=0   ;inget fel har uppstt
SSSS=1   ;Ogiltligt kontrollflt
SSSS=2   ;Ogiltligt sync-format
SSSS=3   ;Ogiltlig takt
L=1      ;Signalen i vnster ingng har varit fr hg
R=1      ;Signalen i hger ingng har varit fr lg


XBIOS $8D   buffptr(l:pointer)

Till fr att stta pekaren fr ljudbufferten (varifrn den skall brja spela
eller sampla).

IN parametrar:

pointer= ;adress till en lista fr in- och uppspelnings adresserna

Listan ska se ut som fljer:

LONG playbufptr   ;pekaren fr uppspelningsbufferten skall ligga hr
LONG recbufptr    ;pekaren fr inspelningsbufferten skall ligga hr

UT parametrar:

0=inget fel

