; ; ** $VER: serial.h 33.6 (6.11.90) ; ** Includes Release 40.15 ; ** ; ** external declarations for the serial device ; ** ; ** (C) Copyright 1985-1993 Commodore-Amiga, Inc. ; ** All Rights Reserved ; IncludePath "PureInclude:" XIncludeFile "exec/io.pb" ; array of termination char's ; to use,see serial.doc setparams Structure IOTArray TermArray0.l TermArray1.l EndStructure #SER_DEFAULT_CTLCHAR = $11130000 ; default chars for xON,xOFF ; You may change these via SETPARAMS. At this time, parity is not ; calculated for xON/xOFF characters. You must supply them with the ; desired parity. ; **************************************************************** ; CAUTION !! IF YOU ACCESS the serial.device, you MUST (!!!!) use an ; IOExtSer-sized structure or you may overlay innocent memory !! ; **************************************************************** Structure IOExtSer IOSer.IOStdReq ; STRUCT MsgNode ; * 0 APTR Succ ; * 4 APTR Pred ; * 8 UBYTE Type ; * 9 UBYTE Pri ; * A APTR Name ; * E APTR ReplyPort ; * 12 UWORD MNLength ; * STRUCT IOExt ; * 14 APTR io_Device ; * 18 APTR io_Unit ; * 1C UWORD io_Command ; * 1E UBYTE io_Flags ; * 1F UBYTE io_Error ; * STRUCT IOStdExt ; * 20 ULONG io_Actual ; * 24 ULONG io_Length ; * 28 APTR io_Data ; * 2C ULONG io_Offset ; * ; * 30 io_CtlChar.l ; control char's (order = xON,xOFF,INQ,ACK) io_RBufLen.l ; length in bytes of serial port's read buffer io_ExtFlags.l ; additional serial flags (see bitdefs below) io_Baud.l ; baud rate requested (true baud) io_BrkTime.l ; duration of break signal in MICROseconds io_TermArray.IOTArray ; termination character array io_ReadLen.b ; bits per read character (# of bits) io_WriteLen.b ; bits per write character (# of bits) io_StopBits.b ; stopbits for read (# of bits) io_SerFlags.b ; see SerFlags bit definitions below io_Status.w EndStructure ; status of serial port, as follows: ; * BIT ACTIVE FUNCTION ; * 0 --- reserved ; * 1 --- reserved ; * 2 high Connected to parallel "select" on the A1000. ; * Connected to both the parallel "select" and ; * serial "ring indicator" pins on the A500 ; * & A2000. Take care when making cables. ; * 3 low Data Set Ready ; * 4 low Clear To Send ; * 5 low Carrier Detect ; * 6 low Ready To Send ; * 7 low Data Terminal Ready ; * 8 high read overrun ; * 9 high break sent ; * 10 high break received ; * 11 high transmit x-OFFed ; * 12 high receive x-OFFed ; * 13-15 reserved ; #SDCMD_QUERY = #CMD_NONSTD ; $09 */ #SDCMD_BREAK = (#CMD_NONSTD+1) ; $0A */ #SDCMD_SETPARAMS = (#CMD_NONSTD+2) ; $0B */ #SERB_XDISABLED = 7 ; io_SerFlags xOn-xOff feature disabled bit */ #SERF_XDISABLED = (1 << 7) ; " xOn-xOff feature disabled mask */ #SERB_EOFMODE =6 ; " EOF mode enabled bit */ #SERF_EOFMODE = (1 << 6) ; " EOF mode enabled mask */ #SERB_SHARED =5 ; " non-exclusive access bit */ #SERF_SHARED =(1 << 5) ; " non-exclusive access mask */ #SERB_RAD_BOOGIE =4 ; " high-speed mode active bit */ #SERF_RAD_BOOGIE =(1 << 4) ; " high-speed mode active mask */ #SERB_QUEUEDBRK =3 ; " queue this Break ioRqst */ #SERF_QUEUEDBRK =(1 << 3) ; " queue this Break ioRqst */ #SERB_7WIRE =2 ; " RS232 7-wire protocol */ #SERF_7WIRE =(1 << 2) ; " RS232 7-wire protocol */ #SERB_PARTY_ODD = 1 ; " parity feature enabled bit */ #SERF_PARTY_ODD = (1 << 1) ; " parity feature enabled mask */ #SERB_PARTY_ON =0 ; " parity-enabled bit */ #SERF_PARTY_ON =(1 << 0) ; " parity-enabled mask */ ; These now refect the actual bit positions in the io_Status UWORD */ #IO_STATB_XOFFREAD =12 ; io_Status receive currently xOFF'ed bit */ #IO_STATF_XOFFREAD =(1 << 12) ; " receive currently xOFF'ed mask */ #IO_STATB_XOFFWRITE= 11 ; " transmit currently xOFF'ed bit */ #IO_STATF_XOFFWRITE= (1 << 11) ; " transmit currently xOFF'ed mask */ #IO_STATB_READBREAK= 10 ; " break was latest input bit */ #IO_STATF_READBREAK= (1 << 10) ; " break was latest input mask */ #IO_STATB_WROTEBREAK =9 ; " break was latest output bit */ #IO_STATF_WROTEBREAK =(1 << 9) ; " break was latest output mask */ #IO_STATB_OVERRUN =8 ; " status word RBF overrun bit */ #IO_STATF_OVERRUN =(1 << 8) ; " status word RBF overrun mask */ #SEXTB_MSPON =1 ; io_ExtFlags. Use mark-space parity, */ ; instead of odd-Even. */ #SEXTF_MSPON =(1 << 1) ; " mark-space parity mask */ #SEXTB_MARK =0 ; " if mark-space, use mark */ #SEXTF_MARK =(1 << 0) ; " if mark-space, use mark mask */ #SerErr_DevBusy = 1 #SerErr_BaudMismatch = 2 ; baud rate NOT supported by hardware */ #SerErr_BufErr = 4 ; Failed To allocate new Read Buffer */ #SerErr_InvParam = 5 #SerErr_LineErr = 6 #SerErr_ParityErr = 9 #SerErr_TimerErr = 11 ;(See the serial/OpenDevice autodoc)*/ #SerErr_BufOverflow = 12 #SerErr_NoDSR =13 #SerErr_DetectedBreak= 15 #SerErr_InvBaud = 3 ; unused */ #SerErr_NotOpen = 7 ; unused */ #SerErr_PortReset = 8 ; unused */ #SerErr_InitErr = 10 ; unused */ #SerErr_NoCTS = 14 ; unused */ ; These defines refer To the HIGH ORDER byte of io_Status. They have ; been replaced by the new, corrected ones above */ #IOSTB_XOFFREAD = 4 ; iost_hob receive currently xOFF'ed bit */ #IOSTF_XOFFREAD = (1 << 4) ; " receive currently xOFF'ed mask */ #IOSTB_XOFFWRITE= 3 ; " transmit currently xOFF'ed bit */ #IOSTF_XOFFWRITE= (1 << 3) ; " transmit currently xOFF'ed mask */ #IOSTB_READBREAK= 2 ; " break was latest input bit */ #IOSTF_READBREAK= (1 << 2) ; " break was latest input mask */ #IOSTB_WROTEBREAK= 1 ; " break was latest output bit */ #IOSTF_WROTEBREAK= (1 << 1) ; " break was latest output mask */ #IOSTB_OVERRUN =0 ; " status word RBF overrun bit */ #IOSTF_OVERRUN =(1 << 0) ; " status word RBF overrun mask */ #IOSERB_BUFRREAD= 7 ; io_Flags from Read Buffer bit */ #IOSERF_BUFRREAD= (1 << 7) ; " from read buffer mask */ #IOSERB_QUEUED =6 ; " rqst-queued bit */ #IOSERF_QUEUED =(1 << 6) ; " rqst-queued mask */ #IOSERB_ABORT =5 ; " rqst-aborted bit */ #IOSERF_ABORT =(1 << 5) ; " rqst-aborted mask */ #IOSERB_ACTIVE =4 ; " rqst-qued-or-current bit */ #IOSERF_ACTIVE =(1 << 4) ; " rqst-qued-or-current mask */ ;#SERIALNAME "serial.device"