diff options
Diffstat (limited to 'Mac/Demo/interslip/InterslipLib.c')
-rw-r--r-- | Mac/Demo/interslip/InterslipLib.c | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/Mac/Demo/interslip/InterslipLib.c b/Mac/Demo/interslip/InterslipLib.c new file mode 100644 index 0000000..32c9717 --- /dev/null +++ b/Mac/Demo/interslip/InterslipLib.c @@ -0,0 +1,97 @@ +/* +** InterslipLib - Routines to talk to InterSLIP. Version 1.1, 31-Oct-1995. +** +** +** (c) Jack Jansen, CWI, 1995 <jack@cwi.nl> +*/ + +#include <Devices.h> + +#include "InterslipLib.h" + +static CntrlParam iopb; +static short refnum = -1; + +OSErr is_open() +{ + if ( refnum >= 0 ) return 0; + return OpenDriver("\p.InterSLIP", &refnum); +} + +OSErr is_connect() +{ + iopb.ioCRefNum = refnum; + iopb.ioVRefNum = refnum; + iopb.ioCompletion = (UniversalProcPtr) 0; + iopb.csCode = 2; + return PBControlImmed((ParmBlkPtr)&iopb); +} + +OSErr is_disconnect() +{ + iopb.ioCRefNum = refnum; + iopb.ioVRefNum = refnum; + iopb.ioCompletion = (UniversalProcPtr) 0; + iopb.csCode = 3; + return PBControlImmed((ParmBlkPtr)&iopb); +} + +OSErr is_status(long *status, long *msgseqnum, StringPtr *msg) +{ + long *csp; + OSErr err; + + iopb.ioCRefNum = refnum; + iopb.ioVRefNum = refnum; + iopb.ioCompletion = (UniversalProcPtr) 0; + iopb.csCode = 4; + if( err = PBControlImmed((ParmBlkPtr)&iopb) ) + return err; + csp = (long *)&iopb.csParam; + *status = csp[0]; + *msgseqnum = csp[1]; + *msg = (unsigned char *)csp[2]; + return 0; +} + +OSErr is_getconfig(long *baudrate, long *flags, + Str255 idrvnam, Str255 odrvnam, Str255 cfgnam) +{ + long *csp; + OSErr err; + + iopb.ioCRefNum = refnum; + iopb.ioVRefNum = refnum; + iopb.ioCompletion = (UniversalProcPtr) 0; + iopb.csCode = 6; + csp = (long *)&iopb.csParam; + csp[2] = (long)idrvnam; + csp[3] = (long)odrvnam; + csp[4] = (long)cfgnam; + if( err = PBControlImmed((ParmBlkPtr)&iopb) ) + return err; + *baudrate = csp[0]; + *flags = csp[1]; + return 0; +} + +OSErr is_setconfig(long baudrate, long flags, + Str255 idrvnam, Str255 odrvnam, Str255 cfgnam) +{ + long *csp; + OSErr err; + + iopb.ioCRefNum = refnum; + iopb.ioVRefNum = refnum; + iopb.ioCompletion = (UniversalProcPtr) 0; + iopb.csCode = 7; + csp = (long *)&iopb.csParam; + csp[0] = baudrate; + csp[1] = flags; + csp[2] = (long)idrvnam; + csp[3] = (long)odrvnam; + csp[4] = (long)cfgnam; + return PBControlImmed((ParmBlkPtr)&iopb); +} + + |