1 ;****************************************************************************
5 ;* Serial communication API *
9 ;*(C) 2003-2006, Ullrich von Bassewitz *
11 ;* D-70794 Filderstadt *
12 ;*EMail: uz@cc65.org *
15 ;*This software is provided 'as-is', without any expressed or implied *
16 ;*warranty. In no event will the authors be held liable for any damages *
17 ;*arising from the use of this software. *
19 ;*Permission is granted to anyone to use this software for any purpose, *
20 ;*including commercial applications, and to alter it and redistribute it *
21 ;*freely, subject to the following restrictions: *
23 ;*1. The origin of this software must not be misrepresented; you must not *
24 ;* claim that you wrote the original software. If you use this software *
25 ;* in a product, an acknowledgment in the product documentation would be *
26 ;* appreciated but is not required. *
27 ;*2. Altered source versions must be plainly marked as such, and must not *
28 ;* be misrepresented as being the original software. *
29 ;*3. This notice may not be removed or altered from any source *
32 ;****************************************************************************
36 ;------------------------------------------------------------------------------
40 ID .byte 3 ; Contains 0x73, 0x65, 0x72 ("ser")
41 VERSION .byte 1 ; Interface version
43 INSTALL .word ; INSTALL routine
44 UNINSTALL .word ; UNINSTALL routine
45 OPEN .word ; OPEN routine
46 CLOSE .word ; CLOSE routine
47 GET .word ; GET routine
48 PUT .word ; PUT routine
49 STATUS .word ; STATUS routine
50 IOCTL .word ; IOCTL routine
51 IRQ .word ; IRQ routine
56 ;------------------------------------------------------------------------------
57 ; The SER API version, stored SER_HDR::VERSION
61 ;------------------------------------------------------------------------------
65 BAUDRATE .byte ; Baudrate
66 DATABITS .byte ; Number of data bits
67 STOPBITS .byte ; Number of stop bits
68 PARITY .byte ; Parity setting
69 HANDSHAKE .byte ; Type of handshake to use
72 ;------------------------------------------------------------------------------
117 SER_HS_NONE = $00 ; No handshake
118 SER_HS_HW = $01 ; Hardware (RTS/CTS) handshake
119 SER_HS_SW = $02 ; Software handshake
121 ; Bit masks to mask out things from the status returned by rs232_status
122 SER_STATUS_PE = $01 ; Parity error
123 SER_STATUS_FE = $02 ; Framing error
124 SER_STATUS_OE = $04 ; Overrun error
125 SER_STATUS_DCD = $20 ; NOT data carrier detect
126 SER_STATUS_DSR = $40 ; NOT data set ready
128 ;------------------------------------------------------------------------------
131 .global _ser_drv ; Pointer to driver
133 ;------------------------------------------------------------------------------
134 ; Driver entry points
137 .global ser_uninstall
146 ;------------------------------------------------------------------------------
147 ; C callable functions
149 .global _ser_load_driver
152 .global _ser_uninstall
160 .global _ser_clear_ptr