Set escape routine address

Entry:
AH = 12h
BH = 14h
BL = message modifier
00h handle is DWORD on top of stack
01h define user stream
04h intercept keystrokes from KEYBOARD to a window (handle on stack)
05h intercept keystrokes from task's default KEYBOARD to a window
STACK: (if window) DWORD user stream number (14h-1Fh)
DWORD address of FAR user stream handler
(if keyboard) DWORD address of FAR filter function

The keyboard filter function is called when the keyboard is in
field mode. On entry:

AL = character
AH = 00h or extended ASCII code if AL = 00h
BL = field number
CH = cursor column
CL = cursor row
DL = field type modifier (sixth item in field table entry)
DH = ??? (seventh item in field table entry)
ES:SI = window's handle

(Also, in DV 2.00, DS:DI points to the field table entry.
This may change in other versions)

The filter function should return

AH = 00h use keystroke
01h ignore keystroke
>1 beep and ignore keystroke