]> git.sur5r.net Git - cc65/blobdiff - libsrc/cbm/open.s
no TGI_ERR_NO_MEM or TGI_ERR_NO_IOCB anymore: replaced by TGI_ERR_NO_RES
[cc65] / libsrc / cbm / open.s
index a08bb31aa6bcde0b1e32dad34cda730e8d99596f..8678d358281b877410f132c1698ceebbc7d1a801 100644 (file)
@@ -30,8 +30,8 @@
 
 .proc   closeallfiles
 
-        ldx     #MAX_FDS
-loop:   lda     fdtab-1,x
+        ldx     #MAX_FDS-1
+loop:   lda     fdtab,x
         beq     next            ; Skip unused entries
 
 ; Close this file
@@ -46,7 +46,7 @@ loop:   lda     fdtab-1,x
 ; Next file
 
 next:   dex
-        bne     loop
+        bpl     loop
 
         rts
 
@@ -57,13 +57,14 @@ next:   dex
 
 .proc   _open
 
-       cpy     #4              ; correct # of arguments (bytes)?
-       beq     parmok          ; parameter count ok
-       tya                     ; parm count < 4 shouldn't be needed to be...
-               sec                     ; ...checked (it generates a c compiler warning)
-       sbc     #4
-       tay
-       jsr     addysp          ; fix stack, throw away unused parameters
+; Throw away any additional parameters passed through the ellipsis
+
+               dey                     ; Parm count < 4 shouldn't be needed to be...
+               dey                     ; ...checked (it generates a c compiler warning)
+        dey
+       dey
+       beq     parmok          ; Branch if parameter count ok
+       jsr     addysp          ; Fix stack, throw away unused parameters
 
 ; Parameters ok. Pop the flags and save them into tmp3