macemu/BasiliskII/src/include/serial_defs.h
2008-01-01 09:40:36 +00:00

170 lines
3.1 KiB
C

/*
* serial_defs.h - Definitions for MacOS serial drivers
*
* Basilisk II (C) 1997-2008 Christian Bauer
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef SERIAL_DEFS_H
#define SERIAL_DEFS_H
// Error codes
enum {
rcvrErr = -89,
breakRecd = -90
};
// Serial port configuration
enum {
baud150 = 763,
baud300 = 380,
baud600 = 189,
baud1200 = 94,
baud1800 = 62,
baud2400 = 46,
baud3600 = 30,
baud4800 = 22,
baud7200 = 14,
baud9600 = 10,
baud14400 = 6,
baud19200 = 4,
baud28800 = 2,
baud38400 = 1,
baud57600 = 0
};
enum {
stop10 = 0x4000,
stop15 = 0x8000,
stop20 = 0xc000
};
enum {
noParity = 0,
oddParity = 0x1000,
evenParity = 0x3000
};
enum {
data5 = 0,
data6 = 0x0800,
data7 = 0x0400,
data8 = 0x0c00
};
// Serial events
enum {
dsrEvent = 2,
riEvent = 4,
dcdEvent = 8,
ctsEvent = 32,
breakEvent = 128
};
// Flags for SerStaRec.xOffSent
enum {
xOffWasSent = 128,
dtrNegated = 64,
rtsNegated = 32
};
// Serial driver error masks
enum {
swOverrunErr = 1,
breakErr = 8,
parityErr = 16,
hwOverrunErr = 32,
framingErr = 64
};
// Option for kSERDMiscOptions
enum {
kOptionPreserveDTR = 128,
kOptionClockX1CTS = 64
};
// Flags for SerShk.fCTS
enum {
kUseCTSOutputFlowControl = 128,
kUseDSROutputFlowControl = 64,
kUseRTSInputFlowControl = 128,
kUseDTRInputFlowControl = 64
};
// Control codes
enum {
kSERDConfiguration = 8,
kSERDInputBuffer = 9,
kSERDSerHShake = 10,
kSERDClearBreak = 11,
kSERDSetBreak = 12,
kSERDBaudRate = 13,
kSERDHandshake = 14,
kSERDClockMIDI = 15,
kSERDMiscOptions = 16,
kSERDAssertDTR = 17,
kSERDNegateDTR = 18,
kSERDSetPEChar = 19,
kSERDSetPEAltChar = 20,
kSERDSetXOffFlag = 21,
kSERDClearXOffFlag = 22,
kSERDSendXOn = 23,
kSERDSendXOnOut = 24,
kSERDSendXOff = 25,
kSERDSendXOffOut = 26,
kSERDResetChannel = 27,
kSERDHandshakeRS232 = 28,
kSERDStickParity = 29,
kSERDAssertRTS = 30,
kSERDNegateRTS = 31,
kSERD115KBaud = 115,
kSERD230KBaud = 230,
kSERDSetHighSpeed = 0x4a46, // 'JF'
kSERDSetPollWrite = 0x6a66 // 'jf'
};
// Status codes
enum {
kSERDInputCount = 2,
kSERDStatus = 8,
kSERDVersion = 9,
kSERDGetDCD = 256
};
enum { // SerShk struct
shkFXOn = 0,
shkFCTS = 1,
shkXOn = 2,
shkXOff = 3,
shkErrs = 4,
shkEvts = 5,
shkFInX = 6,
shkFDTR = 7
};
enum { // SerSta struct
staCumErrs = 0,
staXOffSent = 1,
staRdPend = 2,
staWrPend = 3,
staCtsHold = 4,
staXOffHold = 5,
staDsrHold = 6,
staModemStatus = 7
};
#endif