home *** CD-ROM | disk | FTP | other *** search
- /*
- * If you are using the Microsoft C compiler version 5.1 or later,
- * the following two constants should be defined.
- */
-
- // #define MSC_FAR _far
- // #define MSC_CDECL _cdecl
-
- /*
- *** Changed for Borland C++ compiler, SGJ 12/23/1994
- */
- #define MSC_FAR far
- #define MSC_CDECL cdecl
-
- /*
- *
- * If you are using the Microsoft C compiler version 5.0 or earlier
- * the following two constants should be defined.
- *
- * #define MSC_FAR far
- * #define MSC_CDECL cdecl
- */
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
- /* C Declarations */
- /* */
- /* */
- /* Status variables declared public by mcib.obj. */
-
- extern int ibsta; /* status word */
- extern int iberr; /* GPIB error code */
- extern unsigned int ibcnt; /* number of bytes sent */
- extern unsigned long ibcntl; /* (same) number of bytes sent */
-
- #ifdef __cplusplus
- }
- #endif
-
- /* Optionally include the following declarations in your */
- /* program. */
-
- /* GPIB Commands */
-
- #define UNL 0x3f /* GPIB unlisten command */
- #define UNT 0x5f /* GPIB untalk command */
- #define GTL 0x01 /* GPIB go to local */
- #define SDC 0x04 /* GPIB selected device clear */
- #define PPC 0x05 /* GPIB parallel poll configure */
- #define GET 0x08 /* GPIB group execute trigger */
- #define TCT 0x09 /* GPIB take control */
- #define LLO 0x11 /* GPIB local lock out */
- #define DCL 0x14 /* GPIB device clear */
- #define PPU 0x15 /* GPIB parallel poll unconfigure */
- #define SPE 0x18 /* GPIB serial poll enable */
- #define SPD 0x19 /* GPIB serial poll disable */
- #define PPE 0x60 /* GPIB parallel poll enable */
- #define PPD 0x70 /* GPIB parallel poll disable */
-
- /* GPIB status bit vector : */
- /* global variable ibsta and wait mask */
-
- #define ERR (1<<15) /* Error detected */
- #define TIMO (1<<14) /* Timeout */
- #define END (1<<13) /* EOI or EOS detected */
- #define SRQI (1<<12) /* SRQ detected by CIC */
- #define RQS (1<<11) /* Device needs service */
- #define CMPL (1<<8) /* I/O completed */
- #define LOK (1<<7) /* Local lockout state */
- #define REM (1<<6) /* Remote state */
- #define CIC (1<<5) /* Controller-in-Charge */
- #define ATN (1<<4) /* Attention asserted */
- #define TACS (1<<3) /* Talker active */
- #define LACS (1<<2) /* Listener active */
- #define DTAS (1<<1) /* Device trigger state */
- #define DCAS (1<<0) /* Device clear state */
-
- /* Error messages returned in global variable iberr */
-
- #define EDVR 0 /* DOS error */
- #define ECIC 1 /* Function requires GPIB board to be CIC */
- #define ENOL 2 /* Write function detected no Listeners */
- #define EADR 3 /* Interface board not addressed correctly*/
- #define EARG 4 /* Invalid argument to function call */
- #define ESAC 5 /* Function requires GPIB board to be SAC */
- #define EABO 6 /* I/O operation aborted */
- #define ENEB 7 /* Non-existent interface board */
- #define EOIP 10 /* I/O operation started before previous */
- /* operation completed */
- #define ECAP 11 /* No capability for intended operation */
- #define EFSO 12 /* File system operation error */
- #define EBUS 14 /* Command error during device call */
- #define ESTB 15 /* Serial poll status byte lost */
- #define ESRQ 16 /* SRQ remains asserted */
- #define ETAB 20 /* The return buffer is full. */
-
- /* EOS mode bits */
-
- #define BIN (1<<12) /* Eight bit compare */
- #define XEOS (1<<11) /* Send END with EOS byte */
- #define REOS (1<<10) /* Terminate read on EOS */
-
- /* Timeout values and meanings */
-
- #define TNONE 0 /* Infinite timeout (disabled) */
- #define T10us 1 /* Timeout of 10 us (ideal) */
- #define T30us 2 /* Timeout of 30 us (ideal) */
- #define T100us 3 /* Timeout of 100 us (ideal) */
- #define T300us 4 /* Timeout of 300 us (ideal) */
- #define T1ms 5 /* Timeout of 1 ms (ideal) */
- #define T3ms 6 /* Timeout of 3 ms (ideal) */
- #define T10ms 7 /* Timeout of 10 ms (ideal) */
- #define T30ms 8 /* Timeout of 30 ms (ideal) */
- #define T100ms 9 /* Timeout of 100 ms (ideal) */
- #define T300ms 10 /* Timeout of 300 ms (ideal) */
- #define T1s 11 /* Timeout of 1 s (ideal) */
- #define T3s 12 /* Timeout of 3 s (ideal) */
- #define T10s 13 /* Timeout of 10 s (ideal) */
- #define T30s 14 /* Timeout of 30 s (ideal) */
- #define T100s 15 /* Timeout of 100 s (ideal) */
- #define T300s 16 /* Timeout of 300 s (ideal) */
- #define T1000s 17 /* Timeout of 1000 s (maximum) */
-
-
- /* IBLN Constants */
- #define NO_SAD 0
- #define ALL_SAD -1
-
-
- /* Miscellaneous */
-
- #define S 0x08 /* parallel poll sense bit */
- #define LF 0x0A /* ASCII linefeed character */
-
-
- /* The following constants are used for the second parameter of the
- * ibconfig function. They are the "option" selection codes.
- */
- #define IbcPAD 0x0001 /* Primary Address */
- #define IbcSAD 0x0002 /* Secondary Address */
- #define IbcTMO 0x0003 /* Timeout Value */
- #define IbcEOT 0x0004 /* Send EOI with last data byte? */
- #define IbcPPC 0x0005 /* Parallel Poll Configure */
- #define IbcREADDR 0x0006 /* Repeat Addressing */
- #define IbcAUTOPOLL 0x0007 /* Disable Auto Serial Polling */
- #define IbcCICPROT 0x0008 /* Use the CIC Protocol? */
- #define IbcIRQ 0x0009 /* Use PIO for I/O */
- #define IbcSC 0x000A /* Board is System Controller? */
- #define IbcSRE 0x000B /* Assert SRE on device calls? */
- #define IbcEOSrd 0x000C /* Terminate reads on EOS */
- #define IbcEOSwrt 0x000D /* Send EOI with EOS character */
- #define IbcEOScmp 0x000E /* Use 7 or 8-bit EOS compare */
- #define IbcEOSchar 0x000F /* The EOS character. */
- #define IbcPP2 0x0010 /* Use Parallel Poll Mode 2. */
- #define IbcTIMING 0x0011 /* NORMAL, HIGH, or VERY_HIGH timming. */
- #define IbcDMA 0x0012 /* Use DMA for I/O */
- #define IbcReadAdjust 0x0013 /* Swap bytes during an ibrd. */
- #define IbcWriteAdjust 0x014 /* Swap bytes during an ibwrt. */
-
-
- /* These are the values are used by the Send 488.2 command. */
- #define NULLend (unsigned int)0x00 /* Do nothing at the end of a transfer.*/
- #define NLend (unsigned int)0x01 /* Send NL with EOI after a transfer. */
- #define DABend (unsigned int)0x02 /* Send EOI with the last DAB. */
-
-
- /* This value is used by the 488.2 Receive command.
- */
- #define STOPend (unsigned int)0x0100
-
-
- /*
- * This macro can be used to easily create an entry in address list
- * that is required by many of the 488.2 functions. An address list is
- * just an array of unsigned integers. The primary address goes in the
- * lower 8-bits and the secondary address goes in the upper 8-bits.
- */
- #define MakeAddr(pad, sad) ((unsigned int)(((unsigned char)(pad)) | (((unsigned char)(sad))<<8)))
-
-
- /*
- * The following two macros are used to "break apart" an address list
- * entry. They take an unsigned integer and return either the primary
- * or secondary address stored in the integer.
- */
- #define GetPAD(val) ((unsigned char)(val))
- #define GetSAD(val) ((unsigned char)((val) >> 8))
-
-
- /*
- * The following values are used by the iblines function. The unsigned
- * integer returned by iblines contains:
- * The lower byte will contain a "monitor" bit mask. If a bit is
- * set (1) in this mask, then the corresponding line can be
- * monitiored by the driver. If the bit is clear (0),
- * then the line cannot be monitored.
- * The upper byte will contain the status of the bus lines.
- * Each bit corresponds to a certain bus line, and has
- * a correcponding "monitor" bit in the lower byte.
- *
- */
- #define ValidEOI (unsigned short)0x0080
- #define ValidATN (unsigned short)0x0040
- #define ValidSRQ (unsigned short)0x0020
- #define ValidREN (unsigned short)0x0010
- #define ValidIFC (unsigned short)0x0008
- #define ValidNRFD (unsigned short)0x0004
- #define ValidNDAC (unsigned short)0x0002
- #define ValidDAV (unsigned short)0x0001
- #define BusEOI (unsigned short)0x8000
- #define BusATN (unsigned short)0x4000
- #define BusSRQ (unsigned short)0x2000
- #define BusREN (unsigned short)0x1000
- #define BusIFC (unsigned short)0x0800
- #define BusNRFD (unsigned short)0x0400
- #define BusNDAC (unsigned short)0x0200
- #define BusDAV (unsigned short)0x0100
-
-
- /*
- * This value is used to terminate an address list. It should be
- * assigned to the last entry.
- */
- #define NOADDR 0xFFFF
-
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
-
- extern int MSC_FAR MSC_CDECL ibbna(int handle, char MSC_FAR *bdname);
- extern int MSC_FAR MSC_CDECL ibcac(int handle, int v);
- extern int MSC_FAR MSC_CDECL ibclr(int handle);
- extern int MSC_FAR MSC_CDECL ibcmd(int handle, char MSC_FAR *buffer, unsigned long cnt);
- extern int MSC_FAR MSC_CDECL ibcmda(int handle, char MSC_FAR *buffer, unsigned long cnt);
- extern int MSC_FAR MSC_CDECL ibconfig(int handle, unsigned int option, unsigned int value);
- extern int MSC_FAR MSC_CDECL ibdev(int boardID, int padval, int sadval, int tmoval, int eotval, int eosval);
- extern int MSC_FAR MSC_CDECL ibdma(int handle, int v);
- extern int MSC_FAR MSC_CDECL ibeos(int handle, int v);
- extern int MSC_FAR MSC_CDECL ibeot(int handle, int v);
- extern int MSC_FAR MSC_CDECL ibfind(char MSC_FAR *bdname);
- extern int MSC_FAR MSC_CDECL ibgts(int handle, int v);
- extern int MSC_FAR MSC_CDECL ibist(int handle, int v);
- extern int MSC_FAR MSC_CDECL iblines(int handle, unsigned int MSC_FAR *lines);
- extern int MSC_FAR MSC_CDECL ibln(int handle, int padval, int sadval, int MSC_FAR *listenflag);
- extern int MSC_FAR MSC_CDECL ibloc(int handle);
- extern int MSC_FAR MSC_CDECL ibonl(int handle, int v);
- extern int MSC_FAR MSC_CDECL ibpad(int handle, int v);
- extern int MSC_FAR MSC_CDECL ibpct(int handle);
- extern int MSC_FAR MSC_CDECL ibppc(int handle, int v);
- extern int MSC_FAR MSC_CDECL ibrd(int handle, char MSC_FAR *buffer, unsigned long cnt);
- extern int MSC_FAR MSC_CDECL ibrda(int handle, char MSC_FAR *buffer, unsigned long cnt);
- extern int MSC_FAR MSC_CDECL ibrdf(int handle, char MSC_FAR *flname);
- extern int MSC_FAR MSC_CDECL ibrpp(int handle, char MSC_FAR *ppr);
- extern int MSC_FAR MSC_CDECL ibrsc(int handle, int v);
- extern int MSC_FAR MSC_CDECL ibrsp(int handle, char MSC_FAR *spr);
- extern int MSC_FAR MSC_CDECL ibrsv(int handle, int v);
- extern int MSC_FAR MSC_CDECL ibsad(int handle, int v);
- extern int MSC_FAR MSC_CDECL ibsic(int handle);
- extern int MSC_FAR MSC_CDECL ibsre(int handle, int v);
- extern int MSC_FAR MSC_CDECL ibsrq(void (MSC_FAR *func)(void));
- extern int MSC_FAR MSC_CDECL ibstop(int handle);
- extern int MSC_FAR MSC_CDECL ibtmo(int handle, int v);
- extern int MSC_FAR MSC_CDECL ibtrap(int mask, int mode);
- extern int MSC_FAR MSC_CDECL ibtrg(int handle);
- extern int MSC_FAR MSC_CDECL ibwait(int handle, unsigned int mask);
- extern int MSC_FAR MSC_CDECL ibwrt(int handle, char MSC_FAR *buffer, unsigned long cnt);
- extern int MSC_FAR MSC_CDECL ibwrta(int handle, char MSC_FAR *buffer, unsigned long cnt);
- extern int MSC_FAR MSC_CDECL ibwrtf(int handle, char MSC_FAR *flname);
-
- extern int MSC_FAR MSC_CDECL ibpoke(int handle, unsigned int option, unsigned int value);
- extern int MSC_FAR MSC_CDECL ibdiag(int handle, char MSC_FAR *buffer, unsigned long cnt);
- extern int MSC_FAR MSC_CDECL ibxtrc(int handle, char MSC_FAR *buffer, unsigned long cnt);
-
- extern int MSC_FAR MSC_CDECL ibwrtkey(int handle, char MSC_FAR *buffer, unsigned int cnt);
- extern int MSC_FAR MSC_CDECL ibrdkey(int handle, char MSC_FAR *buffer, unsigned int cnt);
-
- extern void MSC_FAR MSC_CDECL SendCmds(int boardID, unsigned char MSC_FAR *buf, unsigned long cnt);
- extern void MSC_FAR MSC_CDECL SendSetup(int boardID, unsigned int MSC_FAR listen[]);
- extern void MSC_FAR MSC_CDECL SendDataBytes(int boardID, unsigned char MSC_FAR *buffer, unsigned long cnt, unsigned int eot_mode);
- extern void MSC_FAR MSC_CDECL Send(int boardID, unsigned int listener, unsigned char MSC_FAR *databuf, unsigned long datacnt, unsigned int eotMode);
- extern void MSC_FAR MSC_CDECL SendList(int boardID, unsigned int MSC_FAR listeners[], unsigned char MSC_FAR *databuf, unsigned long datacnt, unsigned int eotMode);
- extern void MSC_FAR MSC_CDECL ReceiveSetup(int boardID, unsigned int talker);
- extern void MSC_FAR MSC_CDECL RcvRespMsg(int boardID, unsigned char MSC_FAR *buffer, unsigned long cnt, unsigned int eotMode);
- extern void MSC_FAR MSC_CDECL Receive(int boardID, unsigned int talker, unsigned char MSC_FAR *buffer, unsigned long cnt, unsigned int eotMode);
- extern void MSC_FAR MSC_CDECL SendIFC(int boardID);
- extern void MSC_FAR MSC_CDECL DevClear(int boardID, unsigned int address);
- extern void MSC_FAR MSC_CDECL DevClearList(int boardID, unsigned int MSC_FAR addrlist[]);
- extern void MSC_FAR MSC_CDECL EnableLocal(int boardID, unsigned int MSC_FAR laddrs[]);
- extern void MSC_FAR MSC_CDECL EnableRemote(int boardID, unsigned int MSC_FAR laddrs[]);
- extern void MSC_FAR MSC_CDECL SetRWLS(int boardID, unsigned int MSC_FAR laddrs[]);
- extern void MSC_FAR MSC_CDECL SendLLO(int boardID);
- extern void MSC_FAR MSC_CDECL PassControl(int boardID, unsigned int talker);
- extern void MSC_FAR MSC_CDECL ReadStatusByte(int boardID, unsigned int talker, unsigned int MSC_FAR *result);
- extern void MSC_FAR MSC_CDECL Trigger(int boardID, unsigned int laddrs);
- extern void MSC_FAR MSC_CDECL TriggerList(int boardID, unsigned int MSC_FAR laddrs[]);
- extern void MSC_FAR MSC_CDECL PPollConfig(int boardID, unsigned int laddr, unsigned int dataLine, unsigned int lineSense);
- extern void MSC_FAR MSC_CDECL PPollUnconfig(int boardID, unsigned int MSC_FAR laddrs[]);
- extern void MSC_FAR MSC_CDECL PPoll(int boardID, unsigned int MSC_FAR *res_ptr);
- extern void MSC_FAR MSC_CDECL TestSRQ(int boardID, int MSC_FAR *result);
- extern void MSC_FAR MSC_CDECL WaitSRQ(int boardID, int MSC_FAR *result);
- extern void MSC_FAR MSC_CDECL ResetSys(int boardID, unsigned int MSC_FAR laddrs[]);
- extern void MSC_FAR MSC_CDECL FindRQS(int boardID, unsigned int MSC_FAR taddrs[], unsigned int MSC_FAR *dev_stat);
- extern void MSC_FAR MSC_CDECL AllSpoll(int boardID, unsigned int MSC_FAR taddrs[], unsigned int MSC_FAR res[]);
- extern void MSC_FAR MSC_CDECL FindLstn(int boardID, unsigned int MSC_FAR pads[], unsigned int MSC_FAR results[], unsigned int limit);
- extern void MSC_FAR MSC_CDECL TestSys(int boardID, unsigned int MSC_FAR addrs[], unsigned int MSC_FAR result[]);
-
- #ifdef __cplusplus
- }
- #endif
-