AH = 8Ch
AL = signal number (see below)
BL = action (see below)
DS:DX -> signal handler
Return: CF clear if successful
AL = previous action
ES:BX -> previous signal handler
CF set on error
AX = error code (01h,invalid SigNumber or Action) (see AH=59h)
Desc:   set the routine which will be invoked on a number of exceptional
Note:   all signals will be sent to the most recently installed handler

Values for signal number:
01h    SIGINTR         Control-C or user defined interrupt key
08h    SIGTERM         program termination
09h    SIGPIPE         broken pipe
0Dh    SIGUSER1        reserved for user definition
0Eh    SIGUSER2        reserved for user definition

Values for signal action:
00h    SIG_DFL         terminate process on receipt
01h    SIG_IGN         ignore signal
02h    SIG_GET         signal is accepted
03h    SIG_ERR         sender gets error
04h    SIG_ACK         acknowledge received signal and clear it, but don't
change current setting

Signal handler is called with:
AL = signal number
AH = signal argument
Return: RETF, CF set: terminate process
RETF, CF clear, ZF set: abort any interrupted system call with an error
RETF, CF clear, ZF clear: restart any interrupted system call
IRET: restart any interrupted system call
Note:   the signal handler may also perform a nonlocal GOTO by resetting the
stack pointer and jumping; before doing so, it should dismiss the
signal by calling this function with BL=04h

See also: 218D

218C - European MSDOS 4.0 - SET SIGNAL HANDLER