1
0
mirror of https://github.com/cc65/cc65.git synced 2024-07-02 15:29:33 +00:00

Use .assert

git-svn-id: svn://svn.cc65.org/cc65/trunk@3478 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
cuz 2005-04-20 16:52:18 +00:00
parent f3ac2be07d
commit 9bd3aba923
3 changed files with 11 additions and 41 deletions

View File

@ -17,16 +17,12 @@ getfd:
cmp #MAX_FDS
bcs error
.if .sizeof(FD) = 4
; Convert handle to fdtab slot
.assert .sizeof(FD) = 4, error
asl
asl
.else
.error "Assertion failed"
.endif
; Check for fdtab slot in use
tay
lda fdtab + FD::REF_NUM,y
@ -43,7 +39,7 @@ error: lda #EINVAL
.data
fdtab: .if .sizeof(FD) = 4
fdtab: .assert .sizeof(FD) = 4, error
.byte $80 ; STDIN_FILENO ::REF_NUM
.byte O_RDONLY ; STDIN_FILENO ::FLAGS
@ -57,8 +53,4 @@ fdtab: .if .sizeof(FD) = 4
.byte O_WRONLY ; STDERR_FILENO::FLAGS
.addr $0000 ; STDERR_FILENO::BUFFER
.else
.error "Assertion failed"
.endif
.res (MAX_FDS - 3) * .sizeof(FD)

View File

@ -37,18 +37,13 @@ _open:
: lda fdtab + FD::REF_NUM,y
beq found
.if .sizeof(FD) = 4
; Advance to next fdtab slot
.assert .sizeof(FD) = 4, error
iny
iny
iny
iny
.else
.error "Assertion failed"
.endif
; Check for end of fdtab
cpy #MAX_FDS * .sizeof(FD)
bcc :-
@ -107,13 +102,8 @@ found: tya
and #O_CREAT
beq open
.if MLI::CREATE::PATHNAME = MLI::OPEN::PATHNAME
; PATHNAME already set
.else
.error "Assertion failed"
.endif
.assert MLI::CREATE::PATHNAME = MLI::OPEN::PATHNAME, error
; Set all other parameters from template
ldx #(MLI::CREATE::CREATE_TIME+1) - (MLI::CREATE::PATHNAME+1) - 1
@ -138,7 +128,7 @@ found: tya
beq open
lda #$47 ; "Duplicate filename"
; Cleanup name
oserr2: jsr popname ; Preserves A
@ -148,7 +138,7 @@ oserr1: ldy tmp2 ; Restore fdtab slot
pha ; Save oserror code
jsr freebuffer
pla ; Restore oserror code
; Return oserror
jmp oserrexit
@ -200,20 +190,15 @@ open: ldy tmp2 ; Restore fdtab slot
done: lda tmp1 ; Restore fd
sta fdtab + FD::REF_NUM,y
.if .sizeof(FD) = 4
; Convert fdtab slot to handle
.assert .sizeof(FD) = 4, error
tya
lsr
lsr
.else
.error "Assertion failed"
.endif
; Cleanup name
jsr popname ; Preserves A
; Return success
ldx #$00
rts

View File

@ -44,21 +44,13 @@ _write:
jsr callmli
bcs oserr
.if MLI::MARK::REF_NUM = MLI::EOF::REF_NUM
; REF_NUM already set
.assert MLI::MARK::REF_NUM = MLI::EOF::REF_NUM, error
.else
.error "Assertion failed"
.endif
.if MLI::MARK::POSITION = MLI::EOF::EOF
; POSITION already set
.else
.error "Assertion failed"
.endif
.assert MLI::MARK::POSITION = MLI::EOF::EOF, error
; Set file pointer
lda #SET_MARK_CALL
@ -121,3 +113,4 @@ errno: jmp errnoexit
; Return oserror
oserr: jmp oserrexit