From: cuz Date: Wed, 3 Dec 2003 19:57:27 +0000 (+0000) Subject: Use structs/enums X-Git-Tag: V2.12.0~1093 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=4fa1f8ba97ef06aeb3269f058dfb8b9589f8a7e8;p=cc65 Use structs/enums git-svn-id: svn://svn.cc65.org/cc65/trunk@2709 b7a2c559-68d2-44c3-8de9-860c34a00d81 --- diff --git a/asminc/modload.inc b/asminc/modload.inc index 38c8420da..07c052c08 100644 --- a/asminc/modload.inc +++ b/asminc/modload.inc @@ -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 diff --git a/asminc/ser-kernel.inc b/asminc/ser-kernel.inc index 30aa9b0f5..303f1c5c8 100644 --- a/asminc/ser-kernel.inc +++ b/asminc/ser-kernel.inc @@ -34,31 +34,34 @@ ;------------------------------------------------------------------------------ -; 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 + .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 - -SER_HDR_JUMPCOUNT = 8 ; Number of jump vectors ;------------------------------------------------------------------------------ -; Offsets into the struct passed to 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 +; ser_params + +.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 diff --git a/libsrc/c64/c64-swlink.s b/libsrc/c64/c64-swlink.s index 22820c24f..dbcda273b 100644 --- a/libsrc/c64/c64-swlink.s +++ b/libsrc/c64/c64-swlink.s @@ -63,7 +63,7 @@ ACIA_CLOCK = ACIA+7 ; Turbo232 external baud-rate generator ; Global variables ; -; We reuse the RS232 zero page variables for the driver, since the ROM +; We reuse the RS232 zero page variables for the driver, since the ROM ; routines cannot be used together with this driver. RecvHead = $B5 ; Head of receive buffer RecvTail = $BD ; Tail of receive buffer @@ -183,7 +183,7 @@ OPEN: ; Check if the handshake setting is valid - ldy #SER_PARAMS_HANDSHAKE ; Handshake + ldy #SER_PARAMS::HANDSHAKE ; Handshake lda (ptr1),y cmp #SER_HS_HW ; This is all we support bne InvParam @@ -195,21 +195,21 @@ OPEN: ; Set the value for the control register, which contains stop bits, word ; length and the baud rate. - ldy #SER_PARAMS_BAUDRATE + ldy #SER_PARAMS::BAUDRATE lda (ptr1),y ; Baudrate index tay lda BaudTable,y ; Get 6551 value bmi InvBaud ; Branch if rate not supported sta tmp1 - ldy #SER_PARAMS_DATABITS ; Databits + ldy #SER_PARAMS::DATABITS ; Databits lda (ptr1),y tay lda BitTable,y ora tmp1 sta tmp1 - ldy #SER_PARAMS_STOPBITS ; Stopbits + ldy #SER_PARAMS::STOPBITS ; Stopbits lda (ptr1),y tay lda StopTable,y @@ -220,7 +220,7 @@ OPEN: ; Set the value for the command register. We remember the base value in ; RtsOff, since we will have to manipulate ACIA_CMD often. - ldy #SER_PARAMS_PARITY ; Parity + ldy #SER_PARAMS::PARITY ; Parity lda (ptr1),y tay lda ParityTable,y diff --git a/libsrc/common/modload.s b/libsrc/common/modload.s index ae851ae8f..0818f686a 100644 --- a/libsrc/common/modload.s +++ b/libsrc/common/modload.s @@ -90,7 +90,7 @@ ExpectedHdrSize = * - ExpectedHdr .code PushCallerData: - ldy #MODCTRL_CALLERDATA+1 + ldy #MOD_CTRL::CALLERDATA+1 lda (Ctrl),y tax dey @@ -336,7 +336,7 @@ _mod_load: ; Get the read function pointer from the control structure and place it into ; our call vector - ldy #MODCTRL_READ + ldy #MOD_CTRL::READ lda (Ctrl),y sta Read+1 iny @@ -397,10 +397,10 @@ Opt: jsr ReadByte ; Read the length byte bne OSError ; Wrong version jsr ReadByte ; Get low byte of id - ldy #MODCTRL_MODULE_ID + ldy #MOD_CTRL::MODULE_ID sta (Ctrl),y jsr ReadByte - ldy #MODCTRL_MODULE_ID+1 + ldy #MOD_CTRL::MODULE_ID+1 sta (Ctrl),y inc TPtr+1 ; Remember that we got the OS @@ -448,7 +448,7 @@ CalcSizes: lda TPtr add Header + O65_HDR_BLEN pha ; Save low byte of total size - ldy #MODCTRL_MODULE_SIZE + ldy #MOD_CTRL::MODULE_SIZE sta (Ctrl),y lda TPtr+1 adc Header + O65_HDR_BLEN + 1 @@ -465,7 +465,7 @@ CalcSizes: sta Module stx Module+1 - ldy #MODCTRL_MODULE + ldy #MOD_CTRL::MODULE sta (Ctrl),y txa iny diff --git a/libsrc/serial/ser-kernel.s b/libsrc/serial/ser-kernel.s index daa6580a3..338136ac4 100644 --- a/libsrc/serial/ser-kernel.s +++ b/libsrc/serial/ser-kernel.s @@ -59,12 +59,12 @@ _ser_install: ; Copy the jump vectors - ldy #SER_HDR_JUMPTAB + ldy #SER_HDR::JUMPTAB ldx #0 @L1: inx ; Skip the JMP opcode jsr copy ; Copy one byte jsr copy ; Copy one byte - cpx #(SER_HDR_JUMPCOUNT*3) + cpx #(SER_HDR::JUMPTAB + .sizeof(SER_HDR::JUMPTAB)) bne @L1 jmp ser_install ; Call driver install routine