; int remove (const char* name);
;
- .include "atari.inc"
- .include "errno.inc"
- .import findfreeiocb
- .importzp tmp2
-.ifdef UCASE_FILENAME
- .importzp tmp3
- .import addysp
- .import ucase_fn
+ .include "atari.inc"
+ .include "errno.inc"
+ .import findfreeiocb
+ .importzp tmp4
+.ifdef UCASE_FILENAME
+ .importzp tmp3
+ .import addysp
+ .import ucase_fn
.endif
- .export __sysremove
+ .export __sysremove
-.proc __sysremove
+.proc __sysremove
- pha ; save input parameter
- txa
- pha
+ pha ; save input parameter
+ txa
+ pha
- jsr findfreeiocb
- beq iocbok ; we found one
+ jsr findfreeiocb
+ beq iocbok ; we found one
- pla
- pla ; fix up stack
+ pla
+ pla ; fix up stack
- lda #TMOF ; too many open files
- rts
+ lda #TMOF ; too many open files
+ rts
-iocbok: stx tmp2 ; remember IOCB index
- pla
- tax
- pla ; get argument again
+iocbok: stx tmp4 ; remember IOCB index
+ pla
+ tax
+ pla ; get argument again
-.ifdef UCASE_FILENAME
+.ifdef UCASE_FILENAME
- jsr ucase_fn
- bcc ucok1
+ jsr ucase_fn
+ bcc ucok1
- lda #177 ; see oserror.s
- rts
+ lda #183 ; see oserror.s
+ rts
ucok1:
-.endif ; defined UCASE_FILENAME
+.endif ; defined UCASE_FILENAME
- ldy tmp2 ; IOCB index
- sta ICBAL,y ; store pointer to filename
- txa
- sta ICBAH,y
- tya
- tax
- lda #DELETE
- sta ICCOM,x
- lda #0
- sta ICAX1,x
- sta ICAX2,x
- sta ICBLL,x
- sta ICBLH,x
- jsr CIOV
+ ldy tmp4 ; IOCB index
+ sta ICBAL,y ; store pointer to filename
+ txa
+ sta ICBAH,y
+ tya
+ tax
+ lda #DELETE
+ sta ICCOM,x
+ lda #0
+ sta ICAX1,x
+ sta ICAX2,x
+ sta ICBLL,x
+ sta ICBLH,x
+ jsr CIOV
-.ifdef UCASE_FILENAME
- tya
- pha
- ldy tmp3 ; get size
- jsr addysp ; free used space on the stack
- pla
- tay
-.endif ; defined UCASE_FILENAME
+.ifdef UCASE_FILENAME
+ tya
+ pha
+ ldy tmp3 ; get size
+ jsr addysp ; free used space on the stack
+ pla
+ tay
+.endif ; defined UCASE_FILENAME
- bmi cioerr
- lda #0
- rts
-cioerr: tya
- rts
+ bmi cioerr
+ lda #0
+ rts
+cioerr: tya
+ rts
-.endproc ; __sysremove
+.endproc ; __sysremove