INT 21 - Turbo Debug HARDWARE BREAKPOINTS - SEND CMD TO HARDWARE BRKPNT DRIVER
AH = 40h
BX = handle for character device "TDHDEBUG"
CX = number of bytes to write
DS:DX -> hardware breakpoint command (see below)
Return: CF clear if successful
AX = number of bytes actually written
CF set on error
AX = error code (05h,06h) (see AH=59h)
Note:   results are retrieved by reading from the device

Format of hardware breakpoint commands:
Offset  Size    Description
00h    BYTE    command code
00h install interrupt vectors
01h get hardware capabilities
02h enable hardware breakpoints
03h disable hardware breakpoints
04h set hardware breakpoint
05h clear hardware breakpoint
06h set I/O base address and reset hardware
07h restore interrupt vectors
---command code 00h---
01h    DWORD   pointer to Turbo Debugger entry point to be jumped to on
hardware breakpoint; call with CPU state the same as on
the breakpoint except for pushing AX and placing an entry
code (FFh if breakout button or breakpoint handle) in AH
---command code 04h---
01h    BYTE    breakpoint type
00h memory read
01h memory write
02h memory read/write
03h I/O read
04h I/O write
05h I/O read/write
06h instruction fetch
02h    BYTE    address matching mode
00h any address
01h equal to test value
02h different from test value
03h above test value
04h below test value
05h below or equal to test value
06h above or equal to test value
07h within inclusive range
08h outside specified range
03h    DWORD   32-bit linear low address
07h    DWORD   32-bit linear high address
0Bh    WORD    pass count
0Dh    BYTE    data size (01h, 02h, or 04h)
0Eh    BYTE    source of matched bus cycle
01h CPU
02h DMA
03h either
0Fh    BYTE    data-matching mode
00h match any
01h equal to test value
02h different from test value
03h above test value
04h below test value
05h below or equal to test value
06h above or equal to test value
07h within specified range
08h outside specified range
10h    DWORD   low data value
14h    DWORD   high data value
18h    DWORD   data mask specifying which bits of the data are tested
---command code 05h---
01h    BYTE    handle of breakpoint to clear (breakpoint returned from command
04h)
---command code 06h---
01h    WORD    base address of hardware debugger board

See also: 213F

2140 - Turbo Debug HARDWARE BREAKPOINTS - SEND CMD TO HARDWARE BRKPNT DRIVER