diff --git a/libsrc/apple2/filedes.s b/libsrc/apple2/filedes.s index 094783a79..3a480f6a2 100644 --- a/libsrc/apple2/filedes.s +++ b/libsrc/apple2/filedes.s @@ -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) diff --git a/libsrc/apple2/open.s b/libsrc/apple2/open.s index ca08735a1..d27be5e8b 100644 --- a/libsrc/apple2/open.s +++ b/libsrc/apple2/open.s @@ -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 diff --git a/libsrc/apple2/write.s b/libsrc/apple2/write.s index 59a30b1e8..056140a9a 100644 --- a/libsrc/apple2/write.s +++ b/libsrc/apple2/write.s @@ -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 +