home *** CD-ROM | disk | FTP | other *** search
/ FreeWare Collection 2 / FreeSoftwareCollection2pd199x-jp.img / av / xbas.c < prev    next >
Text File  |  1990-06-14  |  1KB  |  64 lines

  1. /*        xbas.c        1990.02.11    Programmed by MSどす        */
  2. /*        last update    1990.04.24                                */
  3.  
  4. extern    int    xamout();
  5. extern    int    xamkey();
  6.  
  7. #include "crossam.h"
  8.  
  9. int    xbas(mode,dial_adr,key_adr,cnt)
  10. int    mode,cnt;
  11. UCHAR    *dial_adr,*key_adr;
  12. {
  13.     int    ret,time;
  14.     UCHAR    *d_ptr,dial,*k_ptr,key,co;
  15.     USHORT    len;
  16.  
  17.     d_ptr = *(unsigned char    **)dial_adr;
  18.     len = *(unsigned short *)(dial_adr+4);
  19.     if(len != 1){
  20.         return(NG);
  21.     }
  22.  
  23.     k_ptr = *(unsigned char    **)key_adr;
  24.     len = *(unsigned short *)(key_adr+4);
  25.     if(len != 1){
  26.         return(NG);
  27.     }
  28.  
  29.     dial = (UCHAR)(*d_ptr & 0xff);
  30.     key = (UCHAR)(*k_ptr & 0xff);
  31.     time = (int)cnt;
  32.  
  33.     if(dial < 1 || dial > 6)    return(PARA_ERR_D);
  34.     if(key < 1 || key > 39)    return(PARA_ERR_K);
  35.     if(time < 45000)    return(PARA_ERR_T);
  36.     
  37.     switch (mode){
  38.       case 0:
  39.         ret=xamout(dial,key,time);
  40.         if(ret){
  41.             co=STB_ON;                    /* STB ON    */
  42.             outp(PADOUT,co);
  43.         }
  44.         break;
  45.       case 1:
  46.         ret=xamkey(&dial,&key);
  47.         if(! ret){
  48.             *d_ptr = (UCHAR)(dial);
  49.             *k_ptr = (UCHAR)(key);
  50.         }
  51.         else{
  52.             co=STB_ON;                    /* STB ON    */
  53.             outp(PADOUT,co);
  54.         }
  55.         break;
  56.       default:
  57.           return(PARA_ERR_M);
  58.           break;
  59.     }
  60.         
  61.     return (ret);
  62. }
  63.  
  64.