home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 5 / FreshFish_July-August1994.bin / bbs / cbm / nduk-v40.lha / V40 / include / devices / serial.i < prev    next >
Text File  |  1993-10-15  |  5KB  |  170 lines

  1.     IFND DEVICES_SERIAL_I
  2. DEVICES_SERIAL_I SET 1
  3. **
  4. **    $VER: serial.i 33.6 (6.11.90)
  5. **    Includes Release 40.15
  6. **
  7. **    external declarations for the serial device
  8. **
  9. **    (C) Copyright 1985-1993 Commodore-Amiga, Inc.
  10. **        All Rights Reserved
  11. **
  12.     IFND     EXEC_IO_I
  13.     include "exec/io.i"
  14.     ENDC    !EXEC_IO_I
  15.  
  16. *--------------------------------------------------------------------
  17. *
  18. * Useful constants
  19. *
  20. *--------------------------------------------------------------------
  21. *
  22. SER_DEFAULT_CTLCHAR EQU $11130000  ; default chars for xON,xOFF
  23. ; You may change these via SETPARAMS.  At this time, parity is not
  24. ; calculated for xON/xOFF characters.  You must supply them with the
  25. ; desired parity.
  26.  
  27. *
  28. *--------------------------------------------------------------------
  29. *
  30. * Driver Specific Commands
  31.  
  32. SDCMD_QUERY    EQU    CMD_NONSTD    ;$09
  33. SDCMD_BREAK    EQU    CMD_NONSTD+1    ;$0A
  34. SDCMD_SETPARAMS EQU    CMD_NONSTD+2    ;$0B
  35.  
  36. SER_DEVFINISH    EQU    CMD_NONSTD+2 ; number of device comands
  37.  
  38. *--------------------------------------------------------------------
  39.  
  40. SERIALNAME:    MACRO
  41.         dc.b    'serial.device',0
  42.         dc.w    0
  43.         ENDM
  44.  
  45.     BITDEF    SER,XDISABLED,7      ; SERFLAGS xOn-xOff feature disabled bit
  46.     BITDEF    SER,EOFMODE,6      ;    "     EOF mode enabled bit
  47.     BITDEF    SER,SHARED,5      ;    "     non-exclusive access
  48.     BITDEF    SER,RAD_BOOGIE,4  ;    "     high-speed mode active
  49.     BITDEF    SER,QUEUEDBRK,3      ;    "     queue this Break ioRqst
  50.     BITDEF    SER,7WIRE,2      ;    "     RS232 7-wire protocol 
  51.     BITDEF    SER,PARTY_ODD,1      ;    "     use-odd-parity bit
  52.     BITDEF    SER,PARTY_ON,0      ;    "     parity-enabled bit 
  53. ;
  54. ;WARNING: The next series of BITDEFs refer to the HIGH order BYTE of
  55. ;IO_STATUS.  Example usage: "BTST.B #IOST_XOFFWRITE,IO_STATUS+1(AX)"
  56. ;
  57.     BITDEF    IOST,XOFFREAD,4      ; IOST_HOB receive currently xOFF'ed
  58.     BITDEF    IOST,XOFFWRITE,3  ;    "    transmit currently xOFF'ed
  59.     BITDEF    IOST,READBREAK,2  ;    "    break was latest input
  60.     BITDEF    IOST,WROTEBREAK,1 ;    "    break was latest output
  61.     BITDEF    IOST,OVERRUN,0      ;    "    status word RBF overrun
  62. ;
  63. ;    BITDEF's in a longword field)
  64. ;    Example usage: BSET.B #SEXTB_MSPON,IO_EXTFLAGS+3(AX)
  65.                 ;IO_EXTFLAGS (extended flag longword)
  66.     BITDEF    SEXT,MSPON,1    ;     "       use mark-space parity,not odd-even
  67.     BITDEF    SEXT,MARK,0    ;     "       if mark-space, use mark
  68. *
  69. ******************************************************************************
  70.  STRUCTURE TERMARRAY,0
  71.     ULONG     TERMARRAY_0
  72.     ULONG     TERMARRAY_1
  73.     LABEL     TERMARRAY_SIZE
  74.  
  75. *****************************************************************
  76. * CAUTION !!  IF YOU ACCESS the serial.device, you MUST (!!!!) use an
  77. * IOEXTSER-sized structure or you may overlay innocent memory, okay ?!
  78. *****************************************************************
  79.  
  80.  STRUCTURE IOEXTSER,IOSTD_SIZE
  81.  
  82. *     STRUCT   MsgNode
  83. *   0    APTR     Succ
  84. *   4    APTR     Pred
  85. *   8    UBYTE     Type
  86. *   9    UBYTE     Pri
  87. *   A    APTR     Name
  88. *   E    APTR     ReplyPort
  89. *  12    UWORD     MNLength
  90. *     STRUCT   IOExt
  91. *  14    APTR     IO_DEVICE
  92. *  18    APTR     IO_UNIT
  93. *  1C    UWORD     IO_COMMAND
  94. *  1E    UBYTE     IO_FLAGS
  95. *  1F    UBYTE     IO_ERROR
  96. *     STRUCT   IOStdExt
  97. *  20    ULONG     IO_ACTUAL
  98. *  24    ULONG     IO_LENGTH
  99. *  28    APTR     IO_DATA
  100. *  2C    ULONG     IO_OFFSET
  101. *
  102. *  30
  103.     ULONG    IO_CTLCHAR    ; control char's (order = xON,xOFF,rsvd,rsvd)
  104.     ULONG    IO_RBUFLEN    ; length in bytes of serial port's read buffer
  105.     ULONG    IO_EXTFLAGS    ; additional serial flags (see bitdefs above)
  106.     ULONG    IO_BAUD        ; baud rate requested (true baud)
  107.     ULONG    IO_BRKTIME    ; duration of break signal in MICROseconds
  108.     STRUCT    IO_TERMARRAY,TERMARRAY_SIZE ; termination character array
  109.     UBYTE    IO_READLEN    ; bits per read char (bit count)
  110.     UBYTE    IO_WRITELEN    ; bits per write char (bit count)
  111.     UBYTE    IO_STOPBITS    ; stopbits for read (count)
  112.     UBYTE    IO_SERFLAGS    ; see SERFLAGS bit definitions above
  113.     UWORD    IO_STATUS    ; status of serial port, as follows:
  114. *
  115. *           BIT    ACTIVE    FUNCTION
  116. *            0     ---    reserved
  117. *            1     ---    reserved
  118. *            2     high    Connected to parallel "select" on the A1000.
  119. *                Connected to both the parallel "select" and
  120. *                serial "ring indicator" pins on the A500
  121. *                & A2000.  Take care when making cables.
  122. *            3     low    Data Set Ready
  123. *            4     low    Clear To Send
  124. *            5     low    Carrier Detect
  125. *            6     low    Ready To Send
  126. *            7     low    Data Terminal Ready
  127. *            8     high    read overrun
  128. *            9     high    break sent
  129. *           10     high    break received
  130. *           11     high    transmit x-OFF'ed    
  131. *           12     high    receive x-OFF'ed
  132. *        13-15        reserved
  133. *
  134.     LABEL    IOEXTSER_SIZE
  135.  
  136. ******************************************************************************
  137.  
  138. *--------------------------------------------------------------------
  139. *
  140. * Driver error definitions
  141. *
  142. *--------------------------------------------------------------------
  143.  
  144. SerErr_DevBusy        EQU    1
  145. SerErr_BaudMismatch    EQU    2    ;baud rate not supported by hardware
  146. SerErr_BufErr        EQU    4    ;Failed to allocate new read buffer
  147. SerErr_InvParam        EQU    5
  148. SerErr_LineErr        EQU    6
  149. SerErr_ParityErr    EQU    9
  150. SerErr_TimerErr        EQU    11    ;(See the serial/OpenDevice autodoc)
  151. SerErr_BufOverflow    EQU    12
  152. SerErr_NoDSR        EQU    13
  153. SerErr_DetectedBreak    EQU    15
  154.  
  155.  
  156.  IFD    DEVICES_SERIAL_I_OBSOLETE
  157. SER_DBAUD        EQU    9600    ;unused
  158. SerErr_InvBaud        EQU    3    ;unused
  159. SerErr_NotOpen        EQU    7    ;unused
  160. SerErr_PortReset    EQU    8    ;unused
  161. SerErr_InitErr        EQU    10    ;unused
  162. SerErr_NoCTS        EQU    14    ;unused
  163.     BITDEF    IOSER,QUEUED,6      ; IO_FLAGS rqst-queued bit
  164.     BITDEF    IOSER,ABORT,5      ;    "    rqst-aborted bit
  165.     BITDEF    IOSER,ACTIVE,4      ;    "    rqst-qued-or-current bit
  166.  ENDC
  167.  
  168.  
  169.     ENDC    !DEVICES_SERIAL_I
  170.