
Popis pkaz pro SGP Interface:
--------------------------------

unsigned IntfMaskaPipojench()

         Tento pkaz zjiuje pipojen interfejs (i vce) na porty
         potae. Pipojen interfejsy vrac jako 16-ti bitov slo
         (masku), kde kadmu monmu pipojen interfejsu nle
         1 bit. Je-li tento bit 1, pak je interfejs pipojen, je-li 0,
         pak nen pipojen.

         Vrcen slo zpravidla pouze pedme pkazu IntfZvol; jen
         pokud chceme otestovat, zda je pipojen SGP Interface, a jak
         jsou pepnuty jeho vstupy a vstupy, pak tuto masku pouijeme.

         Bit slo 0 uruje, zda je na port LPT1 pipojen SGP Interface
         v mdu A (vstupy/vstupy 0-3); bit slo 1 uruje, zda je
         na port LPT1 pipojen SGP Interface v mdu B (vstupy/vstupy
         4-7); bit slo 2 uruje, zda je na port LPT2 pipojen
         SGP Interface v mdu A (vstupy/vstupy 0-3);
         a tak dle a po port LPT4 (to je 8 bit).
         Bit slo 8 pak uruje, zda je pipojen LEGO interfejs.

         V souboru interf.c jsou zapsny tak odpovdajc konstanty
         pro jednotliv pipojen interfejsu:

         INTERF_SGPA_LPT1  /* SGP Interface, md A, port LPT1 */
         INTERF_SGPB_LPT1  /* SGP Interface, md B, port LPT1 */
         INTERF_SGPA_LPT2  /* SGP Interface, md A, port LPT2 */
         INTERF_SGPB_LPT2  /* SGP Interface, md B, port LPT2 */
         INTERF_SGPA_LPT3  /* SGP Interface, md A, port LPT3 */
         INTERF_SGPB_LPT3  /* SGP Interface, md B, port LPT3 */
         INTERF_SGPA_LPT4  /* SGP Interface, md A, port LPT4 */
         INTERF_SGPB_LPT4  /* SGP Interface, md B, port LPT4 */
         INTERF_LEGO       /* LEGO interfejs                  */

         dle obsahuje nkolik konstant, kter spojuj vce bit:

         INTERF_SGP_LPT1 /* SGP Interface na portu LPT1       */
         INTERF_SGP_LPT2 /* SGP Interface na portu LPT2       */
         INTERF_SGP_LPT3 /* SGP Interface na portu LPT3       */
         INTERF_SGP_LPT4 /* SGP Interface na portu LPT4       */

         INTERF_SGPA     /* SGP Interface md A               */
         INTERF_SGPB     /* SGP Interface md B               */

         INTERF_SGP      /* SGP Interface na libovolnm portu */

         Pomoc bitovho souinu je tak mon testovat jednotliv
         konfigurace interfejsu nap. vraz

         IntfMaskaPipojench() & INTERF_SGPA_LPT1

         je nenulov (pravdiv), pokud je pipojen SGP Interface v mdu A
         na port LPT1; podobn

         IntfMaskaPipojench() & INTERF_SGP_LPT1

         je nenulov (pravdiv), pokud je pipojen alespo jeden SGP Interface
         na port LPT1; a konen

         IntfMaskaPipojench() & INTERF_SGP

         je nenulov, pokud je pipojen alespo jeden SGP Interface.

         Vraz

         (IntfMaskaPipojench() & (INTERF_SGPA_LPT1|INTERF_SGPB_LPT1))
         == (INTERF_SGPA_LPT1|INTERF_SGPB_LPT1)

         je nenulov (pravdiv), pokud jsou na port LPT1 pipojeny dva
         interfejsy (jeden v mdu A, druh v mdu B), take budete moci
         pouvat vstupy/vstupy 0-7.

         Pklad:

                  IntfZvol(IntfMaskaPipojench());



unsigned IntfZvol( unsigned interf )

         Tento pkaz uruje, se kterm interfejsem chceme pracovat, t.j.
         kter interfejs budeme dit pkazy Intf...

         Parametr <interf> udv interfejs, kter bude zvolen. <interf>
         me bt i maska interfejsu (viz pkaz IntfMaskaPipojench())
         - pak bude pipojen interfejs nebo interfejsy na stejnm portu,
         kterm odpovd bit s nejnim slem, a kter jsou pipojeny.
         Jako parametr <interf> lze pout konstanty uveden u pkazu
         IntfMaskaPipojench().

         IntfZvol mus bt uveden ped pkazy, kter interfejs jakkoli
         nastavuj i testuj. Proto je dobr mt tento pkaz pmo
         na zatku programu.

         Po prvnm zvolen danho interfejsu jsou jeho vstupy v neurenm
         stavu - je nutn je nastavit.

         Pipomeme, e uvedeme-li nap. parametr INTERF_SGPA_LPT1, meme
         se samozejm odkazovat v pkazech krom vstupu/vstupu 0-3
         i na vstupy/vstupy 4-7; nekontroluje se ovem, zda je takov
         interfejs vbec pipojen. To lze otestovat pomoc pkazu
         IntfMaskaPipojench().

         Pkaz vrac 0 v ppad nespchu pi detekci zvolenho interfejsu,
         jinak vrac konstantu (nastaven bity v 16-ti bitovm sle)
         odpovdajc zvolenmu interfejsu, viz pkaz IntfMaskaPipojench().
         Napklad, kdy pouijeme jako parametr INTERF_SGP, a jsou-li
         pipojeny dva interfejsy v mdu A a v mdu B na portu LPT1, pak
         bude vrcena maska INTERF_SGPA_LPT1|INTERF_SGPB_LPT1, protoe
         oba dva interfejsy na jednom portu lze ovldat stejnmi pkazy (li
         se slovnm vstup a vstup).

         Pklad:

                  IntfZvol(IntfMaskaPipojench());

                  IntfZvol(INTERF_SGPA_LPT1);
                  IntfZvol(INTERF_SGP_LPT1);
                  IntfZvol(INTERF_SGP_LPT2);
                  IntfZvol(INTERF_SGP);
                  i= IntfZvol(INTERF_SGP);
                  OK= (i & (INTERF_SGPA_LPT1|INTERF_SGPB_LPT1))
                      ==(INTERF_SGPA_LPT1|INTERF_SGPB_LPT1);



void     IntfStop()

         Tento pkaz ukon prci s SGP Interfacem - pepne interfejs
         na zvukov vstup a vrt LPT port, na nm je SGP Interface
         pipojen, do pvodnho stavu.

         Tento pkaz bv zpravidla na konci programu.

         Pklad:

                  IntfStop();



void     IntfNastavVstup( int slo, int Hodnota )

         Tento pkaz nastav vstup <slo> na hodnotu <Hodnota>.
         Parametr <slo> me bt od 0 do 7 (odpovd popisu vstupu na
         interfejsu. <Hodnota> je 0 nebo 1. Je-li <Hodnota> 0, je vstup
         pipojen na nulov napt (svorka 0), je-li 1, je vstup pipojen
         na napt zdroje.

         Mme-li pipojen pouze jeden SGP Interface na danm portu
         potae, meme pouvat pouze vstupy slo 0-3 resp. 4-7.

         Pklad:
                  IntfNastavVstup(0,1);
                  IntfNastavVstup(1,0);

                  IntfNastavVstup(3,tiVstup(1));



void     IntfNastavVstupy( int Hodnota )

         Tento pkaz nastav vstupy interfejsu na hodnotu <Hodnota>.
         Tak lze souasn nastavit vechny vstupy interfejsu.

         Hodnota je chpna jako 8 bitov slo, ve kterm kad bit
         odpovd jednomu vstupu - bit slo 0 odpovd vstupu 0,
         bit . 1 vstupu 1 atd.
         Je-li hodnota bitu 0, je vstup pipojen na nulov napt,
         je-li 1, je vstup pipojen na napt zdroje.

         Mme-li pipojen pouze jeden SGP Interface na danm portu
         potae budou pouity pouze bity slo 0-3 resp. 4-7.

         Pklad:
                  IntfNastavVstupy(0x00);
                  IntfNastavVstupy(0xff);

                  IntfNastavVstupy(1<<0|1<<2);

                  IntfNastavVstupy(tiVstupy()^0x03);



void     IntfNegujVstup( int slo )

         Tento pkaz neguje (nastav na opanou hodnotu) vstup
         slo <slo>; t.j. je-li vstup nastaven na 0, bude nastaven
         na 1 a naopak.

         Pklad:
                  IntfNegujVstup(2);



int      IntftiVstup( int slo )

         Tento pkaz slou ke zjitn nastaven vstupu interfejsu.
         Parametr <slo> udv slo vstupu, jeho nastaven
         zjiujeme.

         Pkaz vrac 1, je-li vstup nastaven na 1, nebo 0, je-li
         nastaven na 0.

         Pklad:
                  i= 1;
                  a= IntftiVstup(i);



int      IntftiVstupy()

         Tento pkaz slou k zjitn nastaven vech vstup
         interfejsu.

         Pkaz vrac 8 bitov slo, kde kadmu vstupu odpovd
         1 bit. Jednotliv bity jsou nastaveny podle nastaven vstupu
         - viz pkaz IntfNastavVstupy.

         Pklad:
                  a= IntftiVstupy();



int      IntftiVstup( int slo )

         Tento pkaz te vstup interfejsu slo <slo> a tuto hodnotu
         vrac. Parametr <slo> oznauje vstup a me bt 0 a 7.

         Mme-li pipojen pouze jeden SGP Interface na danm portu
         potae, meme pouvat pouze vstupy slo 0-3 resp. 4-7.

         Je-li vstup pipojen na nulov napt (zkratovn - odpovdajc
         LED svt), pkaz vrac 1; je-li vstup nezapojen, nebo zapojen
         na vt napt ne nulov (LED nesvt), vrac 0.

         Pklad:
                  a= tiVstup(0);



int      IntftiVstupy()

         Tento pkaz te vechny vstupy souasn.

         Vrac 8 bitov slo, v kterm kad bit odpovd jednomu
         vstupu - bit slo 0 odpovd vstupu 0, bit . 1 vstupu 1 atd.
         Je-li hodnota bitu 1, je vstup pipojen na nulov napt
         (LED svt), je-li 0, je vstup pipojen na vt napt
         (LED nesvt).

         Mme-li pipojen pouze jeden SGP Interface na danm portu
         potae, budou podle vstupu nastaveny pouze bity slo 0-3
         resp. 4-7. Ostatn bity budou nastaveny na 1.

         Pklad:
                  a= IntftiVstupy();

                  /:IntftiVstupy()&0x03



void     IntfPepniNaAudio()

         Tento pkaz pepne vstup z potae na zvukov (audio)
         vstup na SGP Interface. Po tomto pkazu budou vechny
         zmny na vstupech (IntfNastavVstup, IntfNastavVstupy)
         poslny na zvukov vstup. Vkonov vstupy SGP Interface
         budou odpojeny (nastaveny na 0).

         Po proveden tohoto pkazu je mon spoutt pomoc pkazu
         DOSProve rzn extern programy, kter pehraj na zvukov vstup
         njakou digitln nahrvku apod. (nap. dodvan program SOUND).
         Takov program ovem zmn nastaven vstupu, proto je nutn
         vstupy pestavit ped tm, ne pepneme vstup z potae
         zpt na vkonov vstupy (viz nsledujc pklad a pkaz
         IntfPepniNaVstupy).


         Pklad:

                  a= IntftiVstupy();
                  IntfPepniNaAudio();
                  DOSProve("sound /c1 sound.vov >nul");
                  IntfNastavVstupy(a);
                  IntfPepniNaVstupy();



void     IntfPepniNaVstupy()

         Tento pkaz pepne zpt vstup z potae na vkonov vstupy
         SGP Interface (viz pedchoz pkaz).

         Pklad:
                  IntfNastavVstupy(0);
                  IntfPepniNaVstupy();



---------------------------------- ooo ----------------------------------
