mirror of
https://github.com/elliotnunn/mac-rom.git
synced 2025-01-04 01:29:22 +00:00
5b0f0cc134
Resource forks are included only for .rsrc files. These are DeRezzed into their data fork. 'ckid' resources, from the Projector VCS, are not included. The Tools directory, containing mostly junk, is also excluded.
176 lines
3.4 KiB
C
176 lines
3.4 KiB
C
|
|
/************************************************************
|
|
|
|
Created: Saturday, July 27, 1991 at 6:42 PM
|
|
Serial.h
|
|
C Interface to the Macintosh Libraries
|
|
|
|
|
|
Copyright Apple Computer, Inc. 1985-1991
|
|
All rights reserved
|
|
This file is used in these builds: Mac32 BigBang Sys606
|
|
|
|
|
|
Change History (most recent first):
|
|
|
|
<SM2> 1/13/94 chp Add lots of useful constants previously missing. The csCodes
|
|
need new names since a few differ from function names only in
|
|
case.
|
|
<7> 7/31/91 JL Updated Copyright.
|
|
<6> 1/27/91 LN Checked in Database generate file from DSG.
|
|
<5> 11/7/90 JL Changed all #defines to anonymous enums
|
|
|
|
To Do:
|
|
************************************************************/
|
|
|
|
|
|
#ifndef __SERIAL__
|
|
#define __SERIAL__
|
|
|
|
#ifndef __TYPES__
|
|
#include <Types.h>
|
|
#endif
|
|
|
|
|
|
enum {
|
|
baud300 = 380,
|
|
baud600 = 189,
|
|
baud1200 = 94,
|
|
baud1800 = 62,
|
|
baud2400 = 46,
|
|
baud3600 = 30,
|
|
baud4800 = 22,
|
|
baud7200 = 14,
|
|
baud9600 = 10,
|
|
baud19200 = 4,
|
|
baud38400 = 1,
|
|
baud57600 = 0,
|
|
|
|
stop10 = 16384,
|
|
stop15 = -32768,
|
|
stop20 = -16384,
|
|
|
|
noParity = 0,
|
|
oddParity = 4096,
|
|
evenParity = 12288,
|
|
|
|
data5 = 0,
|
|
data6 = 2048,
|
|
data7 = 1024,
|
|
data8 = 3072
|
|
};
|
|
|
|
enum {
|
|
ctsEvent = 32,
|
|
breakEvent = 128,
|
|
xOffWasSent = 128,
|
|
dtrNegated = 64,
|
|
|
|
ainRefNum = -6, /*serial port A input*/
|
|
aoutRefNum = -7, /*serial port A output*/
|
|
binRefNum = -8, /*serial port B input*/
|
|
boutRefNum = -9, /*serial port B output*/
|
|
|
|
swOverrunErr = 1, /*serial driver error masks*/
|
|
breakErr = 8, /*serial driver error masks*/
|
|
parityErr = 16, /*serial driver error masks*/
|
|
hwOverrunErr = 32 /*serial driver error masks*/
|
|
};
|
|
|
|
|
|
// csCodes for Control routines
|
|
enum {
|
|
serReset = 8,
|
|
serSetBuf = 9,
|
|
serHShake = 10,
|
|
serClrBrk = 11,
|
|
serSetBrk = 12,
|
|
serSetBaud = 13,
|
|
serHShakeDTR = 14,
|
|
serSetMIDI = 15,
|
|
serSetMisc = 16,
|
|
serSetDTR = 17,
|
|
serClrDTR = 18,
|
|
|
|
serSetPEChar = 19,
|
|
serSetPECharAlt = 20,
|
|
|
|
serSetXOff = 21,
|
|
serClrXOff = 22,
|
|
serSendXOnCond = 23,
|
|
serSendXOn = 24,
|
|
serSendXOffCond = 25,
|
|
serSendXOff = 26,
|
|
|
|
serChanReset = 27,
|
|
|
|
serSet230KBaud = 'JF',
|
|
serSetPollWrite = 'jf',
|
|
serSetFlushCount = 'FC'
|
|
};
|
|
|
|
|
|
// csCodes for Status routines
|
|
enum {
|
|
serGetBuf = 2,
|
|
serStatus = 8,
|
|
serGetVers = 9,
|
|
serGetVersSys = 0x8000
|
|
};
|
|
|
|
|
|
|
|
// miscellaneous options for the serSetMisc control function (csCode 16)
|
|
enum {
|
|
OPT_CLOCK_EXTERNAL = 0x40,
|
|
OPT_PRESERVE_DTR = 0x80
|
|
};
|
|
|
|
|
|
enum {sPortA,sPortB};
|
|
typedef unsigned char SPortSel;
|
|
|
|
|
|
struct SerShk {
|
|
char fXOn; /*XOn flow control enabled flag*/
|
|
char fCTS; /*CTS flow control enabled flag*/
|
|
unsigned char xOn; /*XOn character*/
|
|
unsigned char xOff; /*XOff character*/
|
|
char errs; /*errors mask bits*/
|
|
char evts; /*event enable mask bits*/
|
|
char fInX; /*Input flow control enabled flag*/
|
|
char fDTR; /*DTR input flow control flag*/
|
|
};
|
|
|
|
typedef struct SerShk SerShk;
|
|
|
|
struct SerStaRec {
|
|
char cumErrs;
|
|
char xOffSent;
|
|
char rdPend;
|
|
char wrPend;
|
|
char ctsHold;
|
|
char xOffHold;
|
|
};
|
|
|
|
typedef struct SerStaRec SerStaRec;
|
|
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
pascal OSErr SerReset(short refNum,short serConfig);
|
|
pascal OSErr SerSetBuf(short refNum,Ptr serBPtr,short serBLen);
|
|
pascal OSErr SerHShake(short refNum,const SerShk *flags);
|
|
pascal OSErr SerSetBrk(short refNum);
|
|
pascal OSErr SerClrBrk(short refNum);
|
|
pascal OSErr SerGetBuf(short refNum,long *count);
|
|
pascal OSErr SerStatus(short refNum,SerStaRec *serSta);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|