home *** CD-ROM | disk | FTP | other *** search
/ Dave Lowe: AssemPro For Development Amiga Driver / Lowe_AssemProForDevelopmentAmigaDriver.adf / Includes / devices / serial.i < prev    next >
Encoding:
Text File  |  1978-06-06  |  8.6 KB  |  222 lines

  1.  
  2. ;****************************************************************
  3. ;                                                               ;
  4. ; Copyright 1985, Commodore Amiga Inc.  All rights reserved.    ;
  5. ; No part of this program may be reproduced, transmitted,       ;
  6. ; transcribed, stored in retrieval system, or translated into   ;
  7. ; any language or computer language, in any form or by any      ;
  8. ; means, electronic, mechanical, magnetic, optical, chemical,   ;
  9. ; manual or otherwise, without the prior written permission of  ;
  10. ; Commodore-Amiga Incorporated, 983 University Ave. Building #D,*
  11. ; Los Gatos, California, 95030                                  ;
  12. ;                                                               ;
  13. ;****************************************************************
  14.  
  15.  
  16. ;****************************************************************
  17. ;
  18. ; serial.i -- external declarations for Serial Port Driver
  19. ;
  20. ; SOURCE CONTROL
  21. ; ------ -------
  22. ; $Header: serial.i,v 33.1 86/04/29 14:19:10 barry Exp $
  23. ;
  24. ; $Locker:  $
  25. ;
  26. ;****************************************************************
  27.  
  28.     IFND    DEVICES_SERIAL_I@
  29. DEVICES_SERIAL_I@ = 1
  30.  
  31.     IFND     EXEC_STRINGS_I@
  32.     include 'exec/strings.i'
  33.     ENDIF
  34.  
  35.     IFND     EXEC_IO_I@
  36.     include 'exec/io.i'
  37.     ENDIF
  38.  
  39. ;--------------------------------------------------------------------
  40. ;
  41. ; Useful constants
  42. ;
  43. ;--------------------------------------------------------------------
  44. ;
  45. SER_CTL       EQU     $1113     ; default char's for xON,Xoff.
  46. SER_DBAUD     EQU     9600      ; default baud 
  47.  
  48. ;
  49. ;--------------------------------------------------------------------
  50. ;
  51. ; Driver Specific Commands
  52.  
  53. SDCMD_QUERY     EQU     CMD_NONSTD
  54. SDCMD_BREAK     EQU     CMD_NONSTD+1
  55. SDCMD_SETPARAMS EQU     CMD_NONSTD+2
  56.  
  57. SER_DEVFINISH   EQU     CMD_NONSTD+2 ; number of device comands 
  58.  
  59. ;--------------------------------------------------------------------
  60.  
  61. ;-- SERIALNAME is a generic macro to get the name of the driver.  This
  62. ;-- way if the name is ever changed you will pick up the change
  63. ;-- automatically.
  64. ;--
  65. ;-- Normal usage would be:
  66. ;--
  67. ;-- internalName:       SERIALNAME
  68. ;--
  69.  
  70. SERIALNAME:     MACRO
  71.                 STRING  'serial.device'
  72.                 ENDM
  73.  
  74. ;        BITDEF  SER,XDISABLED,7   ; SERFLAGS xOn-xOff feature disabled bit
  75. SERB_XDISABLED = 7   ; SERFLAGS xOn-xOff feature disabled bit
  76. SERF_XDISABLED = 1<<7   ; SERFLAGS xOn-xOff feature disabled bit
  77. ;        BITDEF  SER,EOFMODE,6     ;    "     EOF mode enabled bit
  78. SERB_EOFMODE = 6     ;    "     EOF mode enabled bit
  79. SERF_EOFMODE = 1<<6     ;    "     EOF mode enabled bit
  80. ;        BITDEF  SER,SHARED,5      ;    "     non-exclusive access
  81. SERB_SHARED = 5      ;    "     non-exclusive access
  82. SERF_SHARED = 1<<5      ;    "     non-exclusive access
  83. ;        BITDEF  SER,RAD_BOOGIE,4  ;    "     high-speed mode active
  84. SERB_RAD_BOOGIE = 4  ;    "     high-speed mode active
  85. SERF_RAD_BOOGIE = 1<<4  ;    "     high-speed mode active
  86. ;        BITDEF  SER,QUEUEDBRK,3   ;    "     queue this Break ioRqst
  87. SERB_QUEUEDBRK = 3   ;    "     queue this Break ioRqst
  88. SERF_QUEUEDBRK = 1<<3   ;    "     queue this Break ioRqst
  89. ;        BITDEF  SER,7WIRE,2       ;    "     RS232 7-wire protocol
  90. SERB_7WIRE = 2       ;    "     RS232 7-wire protocol 
  91. SERF_7WIRE = 1<<2       ;    "     RS232 7-wire protocol 
  92. ;        BITDEF  SER,PARTY_ODD,1   ;    "     use-odd-parity bit
  93. SERB_PARTY_ODD = 1   ;    "     use-odd-parity bit
  94. SERF_PARTY_ODD = 1<<1   ;    "     use-odd-parity bit
  95. ;        BITDEF  SER,PARTY_ON,0    ;    "     parity-enabled bit
  96. SERB_PARTY_ON = 0    ;    "     parity-enabled bit 
  97. SERF_PARTY_ON = 1<<0    ;    "     parity-enabled bit 
  98. ;        BITDEF  IOSER,QUEUED,6    ; IO_FLAGS rqst-queued bit
  99. IOSERB_QUEUED = 6    ; IO_FLAGS rqst-queued bit
  100. IOSERF_QUEUED = 1<<6    ; IO_FLAGS rqst-queued bit
  101. ;        BITDEF  IOSER,ABORT,5     ;     "    rqst-aborted bit
  102. IOSERB_ABORT = 5     ;     "    rqst-aborted bit
  103. IOSERF_ABORT = 1<<5     ;     "    rqst-aborted bit
  104. ;        BITDEF  IOSER,ACTIVE,4    ;     "    rqst-qued-or-current bit
  105. IOSERB_ACTIVE = 4    ;     "    rqst-qued-or-current bit
  106. IOSERF_ACTIVE = 1<<4    ;     "    rqst-qued-or-current bit
  107. ;        BITDEF  IOST,XOFFREAD,4   ; IOST_HOB receive currently xOFF'ed
  108. IOSTB_XOFFREAD = 4   ; IOST_HOB receive currently xOFF'ed
  109. IOSTF_XOFFREAD = 1<<4   ; IOST_HOB receive currently xOFF'ed
  110. ;        BITDEF  IOST,XOFFWRITE,3  ;     "    transmit currently xOFF'ed
  111. IOSTB_XOFFWRITE = 3  ;     "    transmit currently xOFF'ed
  112. IOSTF_XOFFWRITE = 1<<3  ;     "    transmit currently xOFF'ed
  113. ;        BITDEF  IOST,READBREAK,2  ;     "    break was latest input
  114. IOSTB_READBREAK = 2  ;     "    break was latest input
  115. IOSTF_READBREAK = 1<<2  ;     "    break was latest input
  116. ;        BITDEF  IOST,WROTEBREAK,1 ;     "    break was latest output
  117. IOSTB_WROTEBREAK = 1 ;     "    break was latest output
  118. IOSTF_WROTEBREAK = 1<<1 ;     "    break was latest output
  119. ;        BITDEF  IOST,OVERRUN,0    ;     "    status word RBF overrun
  120. IOSTB_OVERRUN = 0    ;     "    status word RBF overrun
  121. IOSTF_OVERRUN = 1<<0    ;     "    status word RBF overrun
  122. ;       BITDEF's (longword field) ; IO_EXTFLAGS (extended flag longword)
  123.  
  124. ;(longword field) ; IO_EXTFLAGS (extended flag longword)
  125.         BITDEF  SEXTB_MSPON = 1      ;     "    use mark-space parityF_not odd-even
  126. SEXTB_MSPON = 1      ;     "    use mark-space parityF_not odd-even
  127. SEXTB_MSPON = 1      ;     "    use mark-space parityF_not odd-even
  128.         BITDEF  SEXT = 1<<MARKB_0       ;     "    if mark-space =  use mark
  129. ;
  130. ;*************************************************************************************
  131.  STRUCTURE TERMARRAYF_0
  132.         ULONG    TERMARRAY_0
  133.         ULONG    TERMARRAY_1
  134.         LABEL    TERMARRAY_SIZE
  135. ;
  136. ;****************************************************************
  137. ; CAUTION ||  IF YOU ACCESS the serial.device = 1<< you MUST (||||) use an
  138. ; IOEXTSER-sized structure or you may overlay innocent memory, okay ?|  
  139. ;****************************************************************
  140.  
  141.  STRUCTURE IOEXTSER,IOSTD_SIZE
  142.  
  143. ;     STRUCT   MsgNode
  144. ;   0   APTR     Succ
  145. ;   4   APTR     Pred
  146. ;   8   UBYTE    Type
  147. ;   9   UBYTE    Pri
  148. ;   A   APTR     Name
  149. ;   E   APTR     ReplyPort
  150. ;  12   UWORD    MNLength
  151. ;     STRUCT   IOExt
  152. ;  14   APTR     IO_DEVICE
  153. ;  18   APTR     IO_UNIT
  154. ;  1C   UWORD    IO_COMMAND
  155. ;  1E   UBYTE    IO_FLAGS
  156. ;  1F   UBYTE    IO_ERROR
  157. ;     STRUCT   IOStdExt
  158. ;  20   ULONG    IO_ACTUAL
  159. ;  24   ULONG    IO_LENGTH
  160. ;  28   APTR     IO_DATA
  161. ;  2C   ULONG    IO_OFFSET
  162. ;
  163. ;  30
  164.         ULONG   IO_CTLCHAR      ; control char's (order = xON,xOFF,rsvd,rsvd)
  165.         ULONG   IO_RBUFLEN      ; length in bytes of serial port's read buffer
  166.         ULONG   IO_EXTFLAGS     ; additional serial flags (see bitdefs above)
  167.         ULONG   IO_BAUD         ; baud rate requested (true baud)
  168.         ULONG   IO_BRKTIME      ; duration of break signal in MICROseconds
  169.         STRUCT  IO_TERMARRAY,TERMARRAY_SIZE ; termination character array
  170.         UBYTE   IO_READLEN      ; bits per read char (bit count)
  171.         UBYTE   IO_WRITELEN     ; bits per write char (bit count)
  172.         UBYTE   IO_STOPBITS     ; stopbits for read (count)
  173.         UBYTE   IO_SERFLAGS     ; see SERFLAGS bit definitions above 
  174.         UWORD   IO_STATUS       ; status of serial port, as follows:
  175. ;
  176. ;                  BIT  ACTIVE  FUNCTION
  177. ;                   0    low    busy
  178. ;                   1    low    paper out
  179. ;                   2    low    select
  180. ;                   3    low    Data Set Ready
  181. ;                   4    low    Clear To Send
  182. ;                   5    low    Carrier Detect
  183. ;                   6    low    Ready To Send
  184. ;                   7    low    Data Terminal Ready
  185. ;                   8    high   read overrun
  186. ;                   9    high   break sent
  187. ;                  10    high   break received
  188. ;                  11    high   transmit x-OFF'ed       
  189. ;                  12    high   receive x-OFF'ed
  190. ;               13-15           reserved
  191. ;
  192.         LABEL   IOEXTSER_SIZE
  193.  
  194. ;********************************************************************************
  195.  
  196. ;--------------------------------------------------------------------
  197. ;
  198. ; Driver error definitions
  199. ;
  200. ;--------------------------------------------------------------------
  201.  
  202. SerErr_DevBusy          EQU     1
  203. SerErr_BaudMismatch     EQU     2
  204. SerErr_InvBaud          EQU     3
  205. SerErr_BufErr           EQU     4
  206. SerErr_InvParam         EQU     5
  207. SerErr_LineErr          EQU     6
  208. SerErr_NotOpen          EQU     7    
  209. SerErr_PortReset        EQU     8   
  210. SerErr_ParityErr        EQU     9
  211. SerErr_InitErr          EQU    10
  212. SerErr_TimerErr         EQU    11
  213. SerErr_BufOverflow      EQU    12
  214. SerErr_NoDSR            EQU    13
  215. SerErr_NoCTS            EQU    14
  216. SerErr_DetectedBreak    EQU    15
  217.  
  218.     ENDIF
  219.     END
  220.  
  221.