]> git.sur5r.net Git - cc65/commitdiff
Moved two errno helper functions into separate files. 211/head
authorGreg King <gregdk@users.sf.net>
Fri, 25 Sep 2015 18:06:58 +0000 (14:06 -0400)
committerGreg King <gregdk@users.sf.net>
Fri, 25 Sep 2015 18:06:58 +0000 (14:06 -0400)
Only the function that actually is needed will be linked.  It is very useful for targets that do not have file-system I/O.

libsrc/common/_directerrno.s [new file with mode: 0644]
libsrc/common/_mappederrno.s [new file with mode: 0644]
libsrc/common/errno.s
libsrc/sim6502/errno.s [deleted file]

diff --git a/libsrc/common/_directerrno.s b/libsrc/common/_directerrno.s
new file mode 100644 (file)
index 0000000..7942471
--- /dev/null
@@ -0,0 +1,27 @@
+;
+; 2003-08-12, Ullrich von Bassewitz
+; 2015-09-24, Greg King
+;
+; Helper function for several high-level file functions.
+;
+
+        .include        "errno.inc"
+
+        .macpack        cpu
+
+; ----------------------------------------------------------------------------
+; int __fastcall__ _directerrno (unsigned char code);
+; /* Set errno to a specific error code, clear _oserror, and return -1. Used
+; ** by the library.
+; */
+
+__directerrno:
+        jsr     __seterrno              ; Set errno (returns with .A = 0)
+        sta     __oserror               ; Clear __oserror
+.if (.cpu .bitand CPU_ISET_65SC02)
+        dec     a
+.else
+        lda     #$FF                    ; Return -1
+.endif
+        tax
+        rts
diff --git a/libsrc/common/_mappederrno.s b/libsrc/common/_mappederrno.s
new file mode 100644 (file)
index 0000000..33f654c
--- /dev/null
@@ -0,0 +1,33 @@
+;
+; 2003-08-12, Ullrich von Bassewitz
+; 2015-09-24, Greg King
+;
+; Helper function for several high-level file functions.
+;
+
+        .include        "errno.inc"
+
+        .macpack        generic
+        .macpack        cpu
+
+; ----------------------------------------------------------------------------
+; int __fastcall__ _mappederrno (unsigned char code);
+; /* Set _oserror to the given platform-specific error code. If it is a real
+; ** error code (not zero), set errno to the corresponding system error code,
+; ** and return -1. Otherwise, return zero.
+; ** Used by the library.
+; */
+
+__mappederrno:
+        sta     __oserror               ; Store the error code
+        tax                             ; Did we have an error?
+        bze     ok                      ; Branch if no
+        jsr     __osmaperrno            ; Map OS error into errno code
+        jsr     __seterrno              ; Save in errno (returns with .A = 0)
+.if (.cpu .bitand CPU_ISET_65SC02)
+        dec     a
+.else
+        lda     #$FF                    ; Return -1 if error
+.endif
+        tax
+ok:     rts
index 3a1f1b6c8ab15cea01ca992c855198b2408a5c17..f448c3c14cb49bb9823a64ebf2c17b337081772b 100644 (file)
@@ -1,47 +1,14 @@
 ;
-; Ullrich von Bassewitz, 2003-08-12
+; 2003-08-12, Ullrich von Bassewitz
+; 2015-09-24, Greg King
 ;
-; Helper functions for several high level file functions.
+; extern int _errno;
+; /* Library errors go here. */
 ;
 
-
         .include        "errno.inc"
 
-.code
-
-; ----------------------------------------------------------------------------
-; int __fastcall__ _directerrno (unsigned char code);
-; /* Set errno to a specific error code, clear _oserror and return -1. Used
-; ** by the library.
-; */
-
-__directerrno:
-        jsr     __seterrno              ; Set errno, returns with A = 0
-        sta     __oserror               ; Clear __oserror
-        beq     fail                    ; Branch always
-
-; ----------------------------------------------------------------------------
-; int __fastcall__ _mappederrno (unsigned char code);
-; /* Set _oserror to the given platform specific error code. If it is a real
-; ** error code (not zero) set errno to the corresponding system error code
-; ** and return -1. Otherwise return zero.
-; ** Used by the library.
-; */
-
-__mappederrno:
-        sta     __oserror               ; Store the error code
-        tax                             ; Did we have an error?
-        beq     ok                      ; Branch if no
-        jsr     __osmaperrno            ; Map os error into errno code
-        jsr     __seterrno              ; Save in errno
-fail:   lda     #$FF                    ; Return -1
-        tax
-ok:     rts
-
-
-; ----------------------------------------------------------------------------
 .bss
 
 __errno:
         .word   0
-
diff --git a/libsrc/sim6502/errno.s b/libsrc/sim6502/errno.s
deleted file mode 100644 (file)
index d9f7e39..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-;
-; 2013-05-16, Oliver Schmidt
-; 2015-07-18, Greg King
-;
-; Helper functions for several high-level functions.
-;
-
-        .include        "errno.inc"
-
-; ----------------------------------------------------------------------------
-; int __fastcall__ _directerrno (unsigned char code);
-; /* Set errno to a specific error code; and, return -1. Used
-; ** by the library.
-; */
-
-__directerrno:
-        jsr     __seterrno              ; Save in errno
-fail:   lda     #$FF                    ; Return -1
-        tax
-ok:     rts
-
-
-; ----------------------------------------------------------------------------
-;
-; extern int _errno;
-;
-        .bss
-
-__errno:
-        .word   0