1
0
mirror of https://github.com/cc65/cc65.git synced 2024-11-18 00:07:21 +00:00
cc65/libsrc/common/errno.s
uz 131a5cad09 Renamed oserrcheck to __mappederrno. Added an additional function named
__directerrno and moved both to errno.s. Changed several sources to use these
functions. Needs testing.
                         


git-svn-id: svn://svn.cc65.org/cc65/trunk@4718 b7a2c559-68d2-44c3-8de9-860c34a00d81
2010-06-10 18:10:53 +00:00

48 lines
1.4 KiB
ArmAsm

;
; Ullrich von Bassewitz, 2003-08-12
;
; Helper functions for several high level file functions.
;
.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