summaryrefslogtreecommitdiffstats
path: root/Mac/Demo/interslip/InterslipLib.c
diff options
context:
space:
mode:
Diffstat (limited to 'Mac/Demo/interslip/InterslipLib.c')
-rw-r--r--Mac/Demo/interslip/InterslipLib.c97
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);
+}
+
+