home *** CD-ROM | disk | FTP | other *** search
- /* modem initialization code */
- /* New file: May 20,1987
- Author: Jerry LeVan
- 325 Boone Trail
- Richmond Ky 40475
- */
-
- #include <types.h>
- #include <serial.h>
- #include <devices.h>
- #include <menus.h>
- #include <OSUtils.h>
- #include <memory.h>
-
- #define AIn -6
- #define AOut -7
-
- extern short sIn; /* input refnum */
- extern short sOut; /* output refnum */
-
- Ptr serialBuffPtr;
-
- void FlowControl(refnum,xonflag) /* process xoff/xon processing */
- short refnum;
- char xonflag;
- { SerShk flags; /* handshake flags */
- OSErr err;
- flags.fXOn = xonflag;
- flags.fCTS = (char)false;
- flags.xOn = 0x11;
- flags.xOff = 0x13; /* xoff char */
- flags.errs = 0 ;
- flags.evts = 0;
- flags.fInX = xonflag;
- flags.fDTR = (char)false;
- if(err = SerHShake(refnum,&flags))
- ErrorMessage("Error Setting XON/XOFF",err);
- }
-
- void InitModem(whichPort,config)
- SPortSel whichPort; /* modem or phone */
- short config; /* configuration data */
-
- { OSErr err; /* error code returned by OS */
- SerShk flags; /* modem characteristics */
-
- /* step one .. Open the driver */
- if(err=RAMSDOpen(whichPort)){
- ErrorMessage("Can't Open Ram Serial Driver",err);
- return ;
- }
- /* step two ... Configure the modem */
- if(err=SerReset(sOut,config)){
- ErrorMessage("Can't Configure Output Port",err);
- return;
- }
- /* step three...now the input side */
- if(err=SerReset(sIn,config)){
- ErrorMessage("Can't Configure Input Port",err);
- return;
- }
- /* step four...set other useful characteristics */
- flags.fXOn = (char)true;
- flags.fCTS = (char)false;
- flags.xOn = 0x11;
- flags.xOff = 0x13; /* xoff char */
- flags.errs = 0 ;
- flags.evts = 0;
- flags.fInX = (char)true;
- flags.fDTR = (char)false;
- if(err = SerHShake(sOut,&flags)){
- ErrorMessage("Error Setting XON/XOFF",err);
- return;
- }
- /* step 5 ...set a larger input buffer for higher speeds */
-
- serialBuffPtr = NewPtr(1200);
- SerSetBuf(sIn,serialBuffPtr,1200);
-
- }
- /* the new phone manager makes this routine obsolete */
- void Dial(refnum,itemNumber,menuH)
- short refnum; /* output device */
- short itemNumber; /* menuitem number */
- MenuHandle menuH; /* the Phone menu */
- { char name[40]; /* storage for phone number */
- long len; /* length of phone number */
- long two,tmp; /* temp storage */
- Handle number; /* handle to the number */
- char *ptr; /* kludge */
-
- GetItem(menuH,itemNumber,name);
- number = (Handle)GetNamedResource('DIAL',name);
- HLock(number);
- /* compute length of number */
- len = 0;
- while((*number)[len])len++;
- /* use Hayes AT commands */
- two = 2;
- FSWrite(refnum,&two,"AT"); Delay(20,&tmp);
- two =2;
- FSWrite(refnum,&two,"DT"); Delay(20,&tmp);
- /* and now the number (cr is part of number) */
- FSWrite(refnum,&len,*number);
- HUnlock(number);
- }