]> git.sur5r.net Git - cc65/blobdiff - libsrc/atari/open.s
Removed (pretty inconsistently used) tab chars from source code base.
[cc65] / libsrc / atari / open.s
index aeeee44e9353d9d53fabeba186cf16103e054866..8aeff9ed4d24ba4fabe3def1ddc9d151c9686225 100644 (file)
 ; int open(const char *name,int flags,...);
 ;
 
-       .include "atari.inc"
-       .include "fcntl.inc"
-       .include "errno.inc"
-       .include "fd.inc"
+        .include "atari.inc"
+        .include "fcntl.inc"
+        .include "errno.inc"
+        .include "fd.inc"
 
-       .export _open
+        .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
+        .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
-
-       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     #<EMFILE        ; "too many open files"
-seterr:        jsr     __directerrno
-       jsr     incsp4          ; clean up stack
-       lda     #$FF
-       tax
-       rts                     ; return -1
-
-       ; process the mode argument
-
-iocbok:        stx     tmp4
-       jsr     clriocb         ; init with zero
-       ldy     #1
-       jsr     ldaxysp         ; get mode
-       ldx     tmp4
-       pha
-       and     #O_APPEND
-       beq     no_app
-       pla
-       and     #15
-       cmp     #O_RDONLY       ; DOS supports append with write-only only
-       beq     invret
-       cmp     #O_RDWR
-       beq     invret
-       lda     #OPNOT|APPEND
-       bne     set
-
-.ifndef        UCASE_FILENAME
-invret:        lda     #<EINVAL        ; file name is too long
-       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     #<EMFILE        ; "too many open files"
+seterr: jsr     __directerrno
+        jsr     incsp4          ; clean up stack
+        lda     #$FF
+        tax
+        rts                     ; return -1
+
+        ; process the mode argument
+
+iocbok: stx     tmp4
+        jsr     clriocb         ; init with zero
+        ldy     #1
+        jsr     ldaxysp         ; get mode
+        ldx     tmp4
+        pha
+        and     #O_APPEND
+        beq     no_app
+        pla
+        and     #15
+        cmp     #O_RDONLY       ; DOS supports append with write-only only
+        beq     invret
+        cmp     #O_RDWR
+        beq     invret
+        lda     #OPNOT|APPEND
+        bne     set
+
+.ifndef UCASE_FILENAME
+invret: lda     #<EINVAL        ; file name is too long
+        jmp     seterr
 .endif
 
-no_app:        pla
-       and     #15
-       cmp     #O_RDONLY
-       bne     l1
-       lda     #OPNIN
-set:   sta     ICAX1,x
-       bne     cont
+no_app: pla
+        and     #15
+        cmp     #O_RDONLY
+        bne     l1
+        lda     #OPNIN
+set:    sta     ICAX1,x
+        bne     cont
 
-l1:    cmp     #O_WRONLY
-       bne     l2
-       lda     #OPNOT
-       bne     set
+l1:     cmp     #O_WRONLY
+        bne     l2
+        lda     #OPNOT
+        bne     set
 
-l2:    ; O_RDWR
-       lda     #OPNOT|OPNIN
-       bne     set
+l2:     ; O_RDWR
+        lda     #OPNOT|OPNIN
+        bne     set
 
-       ; process the filename argument
+        ; process the filename argument
 
-cont:  ldy     #3
-       jsr     ldaxysp
+cont:   ldy     #3
+        jsr     ldaxysp
 
-.ifdef UCASE_FILENAME
+.ifdef  UCASE_FILENAME
 
-       jsr     ucase_fn
-       bcc     ucok1
-invret:        lda     #<EINVAL        ; file name is too long
-       jmp     seterr
+        jsr     ucase_fn
+        bcc     ucok1
+invret: lda     #<EINVAL        ; file name is too long
+        jmp     seterr
 ucok1:
 
-.endif ; defined UCASE_FILENAME
-
-       ldy     tmp4
-
-       ;AX - points to filename
-       ;Y  - iocb to use, if open needed
-       jsr     newfd           ; maybe we don't need to open and can reuse an iocb
-                               ; returns fd num to use in tmp2, all regs unchanged
-       bcs     doopen          ; C set: open needed
-       lda     #0              ; clears N flag
-       beq     finish
-
-doopen:        sta     ICBAL,y
-       txa
-       sta     ICBAH,y
-       ldx     tmp4
-       lda     #OPEN
-       sta     ICCOM,x
-       jsr     CIOV
-
-       ; clean up the stack
-
-finish:        php
-       txa
-       pha
-       tya
-       pha
-
-.ifdef UCASE_FILENAME
-       ldy     tmp3            ; get size
-       jsr     addysp          ; free used space on the stack
-.endif ; defined UCASE_FILENAME
-
-       jsr     incsp4          ; clean up stack
-
-       pla
-       tay
-       pla
-       tax
-       plp
-
-       bpl     ok
-       jsr     fddecusage      ; decrement usage counter of fd as open failed
-       tya                     ; put error code into A
-       jmp     __mappederrno
-
-ok:    lda     tmp2            ; get fd
-       ldx     #0
-       stx     __oserror
-       rts
+.endif  ; defined UCASE_FILENAME
+
+        ldy     tmp4
+
+        ;AX - points to filename
+        ;Y  - iocb to use, if open needed
+        jsr     newfd           ; maybe we don't need to open and can reuse an iocb
+                                ; returns fd num to use in tmp2, all regs unchanged
+        bcs     doopen          ; C set: open needed
+        lda     #0              ; clears N flag
+        beq     finish
+
+doopen: sta     ICBAL,y
+        txa
+        sta     ICBAH,y
+        ldx     tmp4
+        lda     #OPEN
+        sta     ICCOM,x
+        jsr     CIOV
+
+        ; clean up the stack
+
+finish: php
+        txa
+        pha
+        tya
+        pha
+
+.ifdef  UCASE_FILENAME
+        ldy     tmp3            ; get size
+        jsr     addysp          ; free used space on the stack
+.endif  ; defined UCASE_FILENAME
+
+        jsr     incsp4          ; clean up stack
+
+        pla
+        tay
+        pla
+        tax
+        plp
+
+        bpl     ok
+        jsr     fddecusage      ; decrement usage counter of fd as open failed
+        tya                     ; put error code into A
+        jmp     __mappederrno
+
+ok:     lda     tmp2            ; get fd
+        ldx     #0
+        stx     __oserror
+        rts
 
 .endproc
 
@@ -156,14 +156,14 @@ ok:       lda     tmp2            ; get fd
 
 .proc   closeallfiles
 
-       lda     #MAX_FD_INDEX-1
-loop:  ldx     #0
-       pha
-       jsr     _close
-       pla
-       clc
-       sbc     #0
-       bpl     loop
-       rts
+        lda     #MAX_FD_INDEX-1
+loop:   ldx     #0
+        pha
+        jsr     _close
+        pla
+        clc
+        sbc     #0
+        bpl     loop
+        rts
 
 .endproc