1
0
mirror of https://github.com/cc65/cc65.git synced 2024-11-19 06:31:31 +00:00
cc65/libsrc/common/_mappederrno.s

34 lines
1.1 KiB
ArmAsm
Raw Normal View History

;
; 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