{$B NOT DEVICES_SERIAL_H }
{$D DEVICES_SERIAL_H := TRUE }

{$B NOT EXEC_IO_H }
INCLUDE 'exec/io.h';
{$E NOT EXEC_IO_H }

TYPE
   IOTArray =
    PACKED RECORD
     TermArray0,
     TermArray1 : INTEGER;
    END;

   IOExtSerPtrType = ^IOExtSer;

   IOExtSer =
    PACKED RECORD
     IOSer        : IOStdReq;
     io_CtlChar,
     io_RBufLen,
     io_ExtFlags,
     io_Baud,
     io_BrkTime   : INTEGER;
     io_TermArray : IOTArray;
     io_ReadLen,
     io_WriteLen,
     io_StopBits,
     io_SerFlags  : BYTE;
     io_Status    : WORD;
    END;

CONST
   SDCMD_QUERY        = 9;      {=  CMD_NONSTD }
   SDCMD_BREAK        = 10;     {= (CMD_NONSTD+1) }
   SDCMD_SETPARAMS    = 11;     {= (CMD_NONSTD+2) }
   SERB_XDISABLED     = 7;
   SERF_XDISABLED     = $B10000000;
   SERB_EOFMODE       = 6;
   SERF_EOFMODE       = $B01000000;
   SERB_SHARED        = 5;
   SERF_SHARED        = $B00100000;
   SERB_RAD_BOOGIE    = 4;
   SERF_RAD_BOOGIE    = $B00010000;
   SERB_QUEUEDBRK     = 3;
   SERF_QUEUEDBRK     = $B00001000;
   SERB_7WIRE         = 2;
   SERF_7WIRE         = $B00000100;
   SERB_PARTY_ODD     = 1;
   SERF_PARTY_ODD     = $B00000010;
   SERB_PARTY_ON      = 0;
   SERF_PARTY_ON      = $B00000001;
   IOSERB_BUFRREAD    = 7;
   IOSERF_BUFRREAD    = $B10000000;
   IOSERB_QUEUED      = 6;
   IOSERF_QUEUED      = $B01000000;
   IOSERB_ABORT       = 5;
   IOSERF_ABORT       = $B00100000;
   IOSERB_ACTIVE      = 4;
   IOSERF_ACTIVE      = $B00010000;
   IOSTB_XOFFREAD     = 4;
   IOSTF_XOFFREAD     = $B00010000;
   IOSTB_XOFFWRITE    = 3;
   IOSTF_XOFFWRITE    = $B00001000;
   IOSTB_READBREAK    = 2;
   IOSTF_READBREAK    = $B00000100;
   IOSTB_WROTEBREAK   = 1;
   IOSTF_WROTEBREAK   = $B00000010;
   IOSTB_OVERRUN      = 0;
   IOSTF_OVERRUN      = $B00000001;
   SEXTB_MSPON        = 1;
   SEXTF_MSPON        = $B00000010;
   SEXTB_MARK         = 0;
   SEXTF_MARK         = $B00000001;
   SerErr_DevBusy     = 1;
   SerErr_BaudMismatch= 2;
   SerErr_InvBaud     = 3;
   SerErr_BufErr      = 4;
   SerErr_InvParam    = 5;
   SerErr_LineErr     = 6;
   SerErr_NotOpen     = 7;
   SerErr_PortReset   = 8;
   SerErr_ParityErr   = 9;
   SerErr_InitErr     = 10;
   SerErr_TimerErr    = 11;
   SerErr_BufOverflow = 12;
   SerErr_NoDSR       = 13;
   SerErr_NoCTS       = 14;
   SerErr_DetectedBreak = 15;
   SERIALNAME         = 'serial.device';

{$E NOT DEVICES_SERIAL_H }
