Int 21 Fn 3F - Turbo Debug Hardware Breakpoints - Read Status Block [G]
AH = 3Fh
BX = handle for character device "TDHDEBUG"
CX = number of bytes to read
DS:DX -> buffer for status block (see #1093)
Return: CF clear if successful
AX = number of bytes actually read
CF set on error
AX = error code (05h,06h) (see #1366 at AH=59h/BX=0000h)
See Also: AH=40h"Turbo Debug"
(Table 1092)
Values for status of Turbo Debugger command:
00h successful
01h invalid handle
02h no more breakpoints available
03h hardware does not support specified breakpoint type
04h previous command prevents execution
05h debugger hardware not found
06h hardware failure
07h invalid command
08h driver not initialized yet
FEh recursive entry (hardware breakpoint inside hw bp handler)
Format of Turbo Debugger status block:
Offset Size Description (Table 1093)
00h BYTE status of command (see #1092)
---status for command 01h---
01h WORD device driver interface version number (currently 1)
03h WORD device driver software version
05h BYTE maximum simultaneous hardware breakpoints
06h BYTE configuration bits (see #1094)
07h BYTE supported breakpoint types (see #1095)
08h WORD supported addressing match modes (see #1096)
0Ah WORD supported data matches (see #1097)
0Ch BYTE maximum data match length (01h, 02h, or 04h)
0Dh WORD size of onboard memory (in KB)
0Fh WORD maximum number of trace-back events
11h WORD hardware breakpoint enable byte address segment (0000h if not
supported)
---status for command 04h---
01h BYTE handle to use when referring to the just-set breakpoint
Bitfields for Turbo Debugger configuration bits:
Bit(s) Description (Table 1094)
0 CPU and DMA accesses are distinct
1 can detect DMA transfers
2 supports data mask
3 hardware pass counter on breakpoints
4 can match on data as well as addresses
Bitfields for Turbo Debugger supported breakpoint types:
Bit(s) Description (Table 1095)
0 memory read
1 memory write
2 memory read/write
3 I/O read
4 I/O write
5 I/O read/write
6 instruction fetch
Bitfields for Turbo Debugger supported addressing match modes:
Bit(s) Description (Table 1096)
0 any address
1 equal to test value
2 not equal
3 above test value
4 below test value
5 below or equal
6 above or equal
7 within range
8 outside range
Bitfields for Turbo Debugger supported data matches:
Bit(s) Description (Table 1097)
0 any data
1 equal to test value
2 not equal
3 above test value
4 below test value
5 below or equal
6 above or equal
7 within range
8 outside range