X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;ds=inline;f=libsrc%2Fatari%2Fopen.s;h=2188257cb17d8f404d1131516cbaadf220d5cce0;hb=2c19ec4753b9ec349bb514498fce0a66becb644c;hp=ea3ae543bb3213d49c4d38bb5fcacc74fac2872a;hpb=bfdfd83fdeb22a87c50cc3ef24b222e6ce2b0f50;p=cc65 diff --git a/libsrc/atari/open.s b/libsrc/atari/open.s index ea3ae543b..2188257cb 100644 --- a/libsrc/atari/open.s +++ b/libsrc/atari/open.s @@ -4,152 +4,157 @@ ; int open(const char *name,int flags,...); ; - .include "atari.inc" - .include "fcntl.inc" - .include "errno.inc" - .include "fd.inc" - - .export _open - .destructor closeallfiles, 17 - - .import _close - .import clriocb - .import fddecusage,newfd - .import findfreeiocb - .import __do_oserror,incsp4 - .import ldaxysp,addysp - .import __oserror - .importzp tmp4,tmp2 -.ifdef UCASE_FILENAME - .importzp tmp3 - .import ucase_fn + .include "atari.inc" + .include "fcntl.inc" + .include "errno.inc" + .include "fd.inc" + + .export _open + .destructor closeallfiles, 5 + + .import _close + .import clriocb + .import fddecusage,newfd + .import findfreeiocb + .import incsp4 + .import ldaxysp,addysp + .import __oserror + .importzp tmp4,tmp2 +.ifdef UCASE_FILENAME + .importzp tmp3 + .import ucase_fn .endif -.proc _open - - cpy #4 ; correct # of arguments (bytes)? - beq parmok ; parameter count ok - tya ; parm count < 4 shouldn't be needed to be checked - sec ; (it generates a c compiler warning) - sbc #4 - tay - jsr addysp ; fix stack, throw away unused parameters - -parmok: jsr findfreeiocb - beq iocbok ; we found one - - lda #EINVAL - jmp seterr +.proc _open + + dey ; parm count < 4 shouldn't be needed to be checked + dey ; (it generates a c compiler warning) + dey + dey + beq parmok ; parameter count ok + jsr addysp ; fix stack, throw away unused parameters + +parmok: jsr findfreeiocb + beq iocbok ; we found one + + lda #EINVAL - jmp seterr +.ifdef UCASE_FILENAME +.ifdef DEFAULT_DEVICE + ldy #$80 + sty tmp2 ; set flag for ucase_fn +.endif + jsr ucase_fn + bcc ucok1 +invret: lda #