45 lines
906 B
ArmAsm
45 lines
906 B
ArmAsm
|
;
|
||
|
; Ullrich von Bassewitz, 2003-03-14
|
||
|
;
|
||
|
; int __fastcall__ raise (int sig);
|
||
|
;
|
||
|
|
||
|
.import jmpvec
|
||
|
|
||
|
.include "signal.inc"
|
||
|
|
||
|
|
||
|
;----------------------------------------------------------------------------
|
||
|
; int __fastcall__ raise (int sig);
|
||
|
|
||
|
|
||
|
_raise:
|
||
|
cpx #0
|
||
|
bne invalidsig
|
||
|
cmp #SIGCOUNT
|
||
|
bcs invalidsig
|
||
|
|
||
|
; Save the signal number low byte, then setup the function vector
|
||
|
|
||
|
pha
|
||
|
asl a
|
||
|
tax
|
||
|
lda sigtable,x
|
||
|
sta jmpvec+1
|
||
|
lda sigtable+1,x
|
||
|
sta jmpvec+2
|
||
|
|
||
|
; Restore the signal number and call the function
|
||
|
|
||
|
pla ; Low byte
|
||
|
ldx #0 ; High byte
|
||
|
jsr jmpvec ; Call signal function
|
||
|
|
||
|
; raise() returns zero on success and any other value on failure
|
||
|
|
||
|
lda #0
|
||
|
tax
|
||
|
invalidsig:
|
||
|
rts
|
||
|
|