Signals are now correctly delivered in my testing. This also makes the shutdown
command work properly as a result
ld e,a
xor a
ld (_int_disabled),a
- ld d,a
+ ld e,a
+ ld c,a
ld (U_DATA__U_CURSIG),a
ld hl,#U_DATA__U_SIGVEC
add hl,de
ld a,d
or e
jr z, no_sig
+ ex de,hl
+ ld e,c
jr intret
;
ld h,#0
push hl ; signal
ld hl,#syscall_sighelp
- push hl ; vector
- ret
+ push hl ; vector return
+ push bc ; actual signal vector
+ ret ; to handler which will return to sighelp
syscall_sighelp:
pop de ; discard signal
pop de ; recover error info