X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=asminc%2Fser-kernel.inc;h=debae78fc0469d8fe4cf0aa5b20bdae9e8e80a02;hb=5c63b08d26cf167bfe8ef1a52f6e6f1dd0746a83;hp=938799cc625d95548179da45380c9ac5cfbbbf02;hpb=09c208ee67dce8040ad94c8d6389cb6e9d5d412a;p=cc65 diff --git a/asminc/ser-kernel.inc b/asminc/ser-kernel.inc index 938799cc6..debae78fc 100644 --- a/asminc/ser-kernel.inc +++ b/asminc/ser-kernel.inc @@ -34,32 +34,40 @@ ;------------------------------------------------------------------------------ -; 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_PARAMS = SER_HDR_JUMPTAB+4 ; PARAMS routine -SER_HDR_GET = SER_HDR_JUMPTAB+6 ; GET routine -SER_HDR_PUT = SER_HDR_JUMPTAB+8 ; PUT routine -SER_HDR_PAUSE = SER_HDR_JUMPTAB+10 ; PAUSE routine -SER_HDR_UNPAUSE = SER_HDR_JUMPTAB+12 ; UNPAUSE routine -SER_HDR_STATUS = SER_HDR_JUMPTAB+14 ; STATUS routine -SER_HDR_IOCTL = SER_HDR_JUMPTAB+16 ; IOCTL routine +;------------------------------------------------------------------------------ +; The SER API version, stored SER_HDR::VERSION -SER_HDR_JUMPCOUNT = 9 ; 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 @@ -85,7 +93,7 @@ SER_BAUD_38400 = $10 SER_BAUD_57600 = $11 SER_BAUD_115200 = $12 SER_BAUD_230400 = $13 - + ; Data bit settings SER_BITS_5 = $00 SER_BITS_6 = $01 @@ -125,14 +133,13 @@ SER_STATUS_DSR = $40 ; NOT data set ready .global ser_install .global ser_uninstall - .global ser_params + .global ser_open + .global ser_close .global ser_get .global ser_put - .global ser_pause - .global ser_unpause .global ser_status .global ser_ioctl - + .global ser_irq ;------------------------------------------------------------------------------ ; ASM functions @@ -140,11 +147,10 @@ SER_STATUS_DSR = $40 ; NOT data set ready .global _ser_unload .global _ser_install .global _ser_uninstall - .global _ser_params + .global _ser_open + .global _ser_close .global _ser_get .global _ser_put - .global _ser_pause - .global _ser_unpause .global _ser_status .global _ser_ioctl