/* * serial_defs.h - Definitions for MacOS serial drivers * * Basilisk II (C) 1997-1999 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 = 'JF', kSERDSetPollWrite = '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