Use structs/enums

git-svn-id: svn://svn.cc65.org/cc65/trunk@2709 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
cuz
2003-12-03 19:57:27 +00:00
parent 788208d7dc
commit 4fa1f8ba97
5 changed files with 52 additions and 50 deletions

View File

@@ -43,13 +43,13 @@
; loader will place informational data if it was successful. You will have to
; check the return code of mod_load before accessing any of these additional
; struct members.
MODCTRL_READ = 0
MODCTRL_CALLERDATA = 2
MODCTRL_MODULE = 4 ; Pointer to module data
MODCTRL_MODULE_SIZE = 6 ; Total size of loaded module
MODCTRL_MODULE_ID = 8
MODCTRL_SIZE = 10 ; Total size of struct
.struct MOD_CTRL
READ .addr
CALLERDATA .word
MODULE .addr ; Pointer to module data
MODULE_SIZE .word ; Total size of loaded module
MODULE_ID .word
.endstruct
; unsigned char mod_load (struct mod_ctrl* ctrl);
; /* Load a module into memory and relocate it. The function will return an
@@ -65,15 +65,14 @@ MODCTRL_SIZE = 10 ; Total size of struct
; */
.global _mod_free
; Errors
MLOAD_OK = 0 ; Module load successful
MLOAD_ERR_READ = 1 ; Read error
MLOAD_ERR_HDR = 2 ; Header error
MLOAD_ERR_OS = 3 ; Wrong OS
MLOAD_ERR_FMT = 4 ; Data format error
MLOAD_ERR_MEM = 5 ; Not enough memory
.enum
MLOAD_OK ; Module load successful
MLOAD_ERR_READ ; Read error
MLOAD_ERR_HDR ; Header error
MLOAD_ERR_OS ; Wrong OS
MLOAD_ERR_FMT ; Data format error
MLOAD_ERR_MEM ; Not enough memory
.endenum

View File

@@ -34,31 +34,34 @@
;------------------------------------------------------------------------------
; Offsets into the driver header
; The driver header
SER_HDR_ID = 0 ; Contains 0x73, 0x65, 0x72 ("ser")
SER_HDR_VERSION = 3 ; Interface version
.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
.endstruct
.endstruct
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
SER_HDR_JUMPCOUNT = 8 ; Number of jump vectors
;------------------------------------------------------------------------------
; 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