home *** CD-ROM | disk | FTP | other *** search
/ GRIPS 2: Government Rast…rocessing Software & Data / GRIPS_2.cdr / dos / ncsa_tel / contribu / byu_tel2.hqx / tcpip / atalk.c < prev    next >
Text File  |  1989-05-17  |  4KB  |  151 lines

  1. #ifndef lint
  2. static char *SCCSid = "%W%    (NCSA)    %G%";
  3. #endif
  4. /*
  5. *    atalk.c
  6. *     by Gaige B. Paulsen
  7. ****************************************************************************
  8. *                                                                          *
  9. *      Uses    :                                                               *
  10. *      TCP/IP kernel for NCSA Telnet                                       *
  11. *      by Tim Krauskopf                                                    *
  12. *       with Macintosh code by Gaige B. Paulsen                                 *
  13. *                                                                          *
  14. *      National Center for Supercomputing Applications                     *
  15. *      152 Computing Applications Building                                 *
  16. *      605 E. Springfield Ave.                                             *
  17. *      Champaign, IL  61820                                                *
  18. *                                                                          *
  19. *                                                                          *
  20. ****************************************************************************
  21. *
  22. *    Appletalk init and shutdown (and utility) procs.    
  23. *
  24. *    Called by:
  25. *        dlayer.c
  26. *        mactools.c
  27. *        macutil.c
  28. */
  29.  
  30. #include <stdio.h>
  31. #include "protocol.h"
  32. #include "data.h"
  33. #include <AppleTalk.h>
  34. #include <Dialogs.h>
  35.  
  36. #include "::main:mpw.h"
  37.  
  38. typedef struct {
  39.     char    node[26];
  40.     char    net[2];
  41. } ABusVarStruct, *ABusVarPtr, **ABusVarHdl;
  42.  
  43. extern Listen();
  44. extern char *KIPnameptr;
  45.  
  46. getATaddress( hi,low,node)
  47. int *hi,*low,*node;
  48. {
  49.     ABusVarPtr ABusVars;
  50.     ABusVarHdl ABusHdl= (ABusVarHdl) 0x2d8L;
  51.  
  52.     ABusVars= *ABusHdl;
  53.     *hi=ABusVars->net[0];
  54.     *low=ABusVars->net[1];
  55.     *node=ABusVars->node[0];
  56.  
  57. }
  58.  
  59. atopen()
  60. {
  61.     short err;
  62.     short socket=72, refnum, item;
  63.     ABusVarPtr ABusVars;
  64.     ABusVarHdl ABusHdl=(ABusVarHdl)0x2d8L;
  65.     char buffr[100];
  66.     DialogPtr dtemp;
  67.     MPPParamBlock pb;
  68.  
  69.     err = 0;
  70.  
  71. #ifndef MPW
  72.     if (!IsMPPOpen())
  73.         err=OpenDriver("\P.MPP",&refnum);
  74.     if (!IsMPPOpen())
  75.         err=OpenDriver("\P.ATP",&refnum);
  76. #else
  77.     if (!IsMPPOpen())
  78.         err=OpenDriver(".MPP",&refnum);
  79.     if (!IsMPPOpen())
  80.         err=OpenDriver(".ATP",&refnum);
  81. #endif MPW
  82.  
  83.     pb.DDPlistener=Listen;
  84.     pb.DDPsocket = socket;
  85.  
  86.     err=POpenSkt(&pb, FALSE);
  87.  
  88.     if (err!=0) { 
  89.             sprintf(buffr,"Failed Appletalk initialization (%d)\n",err);
  90.             putln(buffr);
  91. #ifndef MPW
  92.             if (err==-91) ParamText(0L,0L,0L,"\PCouldn't install Listener");
  93.             else if (err==-192) ParamText(0L,0L,0L,"\PCouldn't find atpl resource");
  94.             else ParamText(0L,0L,0L,"\PUnknown Error");
  95. #else
  96.             if (err==-91) ParamText(0L,0L,0L,"Couldn't install Listener");
  97.             else if (err==-192) ParamText(0L,0L,0L,"Couldn't find atpl resource");
  98.             else ParamText(0L,0L,0L,"Unknown Error");
  99. #endif MPW
  100.             dtemp=GetNewDialog(302,(Ptr) 0L,(Ptr) -1L);
  101.             ModalDialog(0L,&item);
  102.             DisposDialog(dtemp);
  103.             quit();
  104.             }
  105.  
  106.     ABusVars= *ABusHdl;
  107.     nnmyaddr[0]=ABusVars->net[0];
  108.     nnmyaddr[1]=ABusVars->net[1];
  109.     nnmyaddr[2]=ABusVars->node[0];
  110.     nnmyaddr[3]=72;
  111.  
  112.     sprintf(buffr,"Net : %d,  Node : %d",*((int *)(&(ABusVars->net[0]))),(int)(ABusVars->node[0]));
  113.     putln(buffr);
  114.     return(0);
  115. }
  116.  
  117. atclose()
  118. {
  119.     MPPParamBlock pb;
  120.  
  121.     pb.DDPsocket=72;
  122.     PCloseSkt(&pb, FALSE);
  123.  
  124.     if (KIPnameptr)
  125.         KIPunregister();
  126.  
  127.     return(0);
  128. }
  129.  
  130. pascal Boolean IsMPPOpen()
  131. {
  132.     char *portBUse;
  133.  
  134.     portBUse = (char *)0x291;
  135.     if ((*portBUse & 0x0f) != 1)
  136.         return(0);
  137.     return(1);
  138. }
  139.  
  140. pascal Boolean IsATPOpen()
  141. {
  142.     char *portBUse;
  143.  
  144.     portBUse = (char *) 0x291;
  145.     if ((*portBUse & 0x0f) != 1)
  146.         return(0);
  147.     if (!(*portBUse & 0x10))
  148.         return(0);
  149.     return(1);
  150. }
  151.