mirror of
https://github.com/cc65/cc65.git
synced 2024-08-16 12:29:03 +00:00
34 lines
1.1 KiB
ArmAsm
34 lines
1.1 KiB
ArmAsm
|
;
|
||
|
; 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
|