1
0
mirror of https://github.com/cc65/cc65.git synced 2025-02-10 09:31:08 +00:00

added closeallfiles: close all files at program exit

git-svn-id: svn://svn.cc65.org/cc65/trunk@1892 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
cpg 2003-01-05 23:36:16 +00:00
parent d25ea2001b
commit 0c50092c3e

View File

@ -1,5 +1,5 @@
; ;
; Christian Groessler, May-2002 ; Christian Groessler, Jan-2003
; ;
; int open(const char *name,int flags,...); ; int open(const char *name,int flags,...);
; ;
@ -7,7 +7,12 @@
.include "atari.inc" .include "atari.inc"
.include "fcntl.inc" .include "fcntl.inc"
.include "errno.inc" .include "errno.inc"
.include "fd.inc"
.export _open .export _open
.destructor closeallfiles, 17
.import _close
.import clriocb .import clriocb
.import fddecusage,newfd .import fddecusage,newfd
.import findfreeiocb .import findfreeiocb
@ -47,7 +52,6 @@ iocbok: stx tmp4
jsr clriocb ; init with zero jsr clriocb ; init with zero
ldy #1 ldy #1
jsr ldaxysp ; get mode jsr ldaxysp ; get mode
;brk
ldx tmp4 ldx tmp4
pha pha
and #O_APPEND and #O_APPEND
@ -149,3 +153,20 @@ ok: lda tmp2 ; get fd
rts rts
.endproc .endproc
; closeallfiles: Close all files opened by the program.
.proc closeallfiles
lda #MAX_FD_INDEX-1
loop: ldx #0
pha
jsr _close
pla
clc
sbc #0
bpl loop
rts
.endproc