]> git.sur5r.net Git - cc65/blobdiff - asminc/ser-kernel.inc
Comment out the RegVal function using #if to get rid of the compiler warning
[cc65] / asminc / ser-kernel.inc
index 30aa9b0f588f11b60f9594444ea46664bb495cfd..50f8ec06de4400b813358ae5fc55d9dcdd68f87c 100644 (file)
@@ -6,10 +6,10 @@
 ;*                                                                          *
 ;*                                                                          *
 ;*                                                                          *
-;*(C) 2003      Ullrich von Bassewitz                                       *
-;*              Römerstrasse 52                                             *
-;*              D-70794 Filderstadt                                         *
-;*EMail:        uz@cc65.org                                                 *
+;*(C) 2003-2006, Ullrich von Bassewitz                                      *
+;*               Römerstrasse 52                                            *
+;*               D-70794 Filderstadt                                        *
+;*EMail:         uz@cc65.org                                                *
 ;*                                                                          *
 ;*                                                                          *
 ;*This software is provided 'as-is', without any expressed or implied       *
 
 
 ;------------------------------------------------------------------------------
-; Offsets into the driver header
+; The driver header
+
+.struct SER_HDR
+        ID      .byte   3       ; Contains 0x73, 0x65, 0x72 ("ser")
+        VERSION .byte   1       ; Interface version
+        JUMPTAB .struct
+            INSTALL     .word   ; INSTALL routine
+            UNINSTALL   .word   ; UNINSTALL routine
+            OPEN        .word   ; OPEN routine
+            CLOSE       .word   ; CLOSE routine
+            GET         .word   ; GET routine
+            PUT         .word   ; PUT routine
+            STATUS      .word   ; STATUS routine
+            IOCTL       .word   ; IOCTL routine
+           IRQ         .word   ; IRQ routine
+        .endstruct
+.endstruct
 
-SER_HDR_ID              = 0             ; Contains 0x73, 0x65, 0x72 ("ser")
-SER_HDR_VERSION         = 3             ; Interface version
 
-SER_HDR_JUMPTAB         = 4
-SER_HDR_INSTALL         = SER_HDR_JUMPTAB+0     ; INSTALL routine
-SER_HDR_UNINSTALL       = SER_HDR_JUMPTAB+2     ; UNINSTALL routine
-SER_HDR_OPEN            = SER_HDR_JUMPTAB+4     ; OPEN routine
-SER_HDR_CLOSE           = SER_HDR_JUMPTAB+6     ; CLOSE routine
-SER_HDR_GET             = SER_HDR_JUMPTAB+8     ; GET routine
-SER_HDR_PUT             = SER_HDR_JUMPTAB+10     ; PUT routine
-SER_HDR_STATUS          = SER_HDR_JUMPTAB+12    ; STATUS routine
-SER_HDR_IOCTL           = SER_HDR_JUMPTAB+14    ; IOCTL routine
+;------------------------------------------------------------------------------
+; The SER API version, stored SER_HDR::VERSION
 
-SER_HDR_JUMPCOUNT       = 8                     ; Number of jump vectors
+SER_API_VERSION         = $00
 
 ;------------------------------------------------------------------------------
-; Offsets into the struct passed to ser_params
+; ser_params
 
-SER_PARAMS_BAUDRATE     =       0       ; Baudrate
-SER_PARAMS_DATABITS     =       1       ; Number of data bits
-SER_PARAMS_STOPBITS     =       2       ; Number of stop bits
-SER_PARAMS_PARITY       =       3       ; Parity setting
-SER_PARAMS_HANDSHAKE    =       4       ; Type of handshake to use
+.struct SER_PARAMS
+        BAUDRATE        .byte           ; Baudrate
+        DATABITS        .byte           ; Number of data bits
+        STOPBITS        .byte           ; Number of stop bits
+        PARITY          .byte           ; Parity setting
+        HANDSHAKE       .byte           ; Type of handshake to use
+.endstruct
 
 ;------------------------------------------------------------------------------
 ; Serial parameters
@@ -84,6 +93,8 @@ SER_BAUD_38400                =       $10
 SER_BAUD_57600                 =       $11
 SER_BAUD_115200                =       $12
 SER_BAUD_230400                =       $13
+SER_BAUD_31250         =       $14
+SER_BAUD_62500         =       $15
 
 ; Data bit settings
 SER_BITS_5                     =       $00
@@ -130,10 +141,10 @@ SER_STATUS_DSR            =       $40     ; NOT data set ready
         .global ser_put
         .global ser_status
         .global ser_ioctl
-
+       .global ser_irq
 
 ;------------------------------------------------------------------------------
-; ASM functions
+; C callable functions
 
         .global _ser_unload
         .global _ser_install
@@ -145,4 +156,5 @@ SER_STATUS_DSR              =       $40     ; NOT data set ready
         .global _ser_status
         .global _ser_ioctl
 
+        .global _ser_clear_ptr