INT 21 - Turbo Debug HARDWARE BREAKPOINTS - READ STATUS BLOCK AH = 3Fh BX = handle for character device "TDHDEBUG" CX = number of bytes to read DS:DX -> buffer for status block (see below) Return: CF clear if successful AX = number of bytes actually read CF set on error AX = error code (05h,06h) (see AH=59h) SeeAlso: AH=40h"Turbo Debug" Values for status of 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 status block: Offset Size Description 00h BYTE status of command (see above) ---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 below) 07h BYTE supported breakpoint types (see below) 08h WORD supported addressing match modes (see below) 0Ah WORD supported data matches (see below) 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 configuration bits: bit 0 CPU and DMA accesses are distinct bit 1 can detect DMA transfers bit 2 supports data mask bit 3 hardware pass counter on breakpoints bit 4 can match on data as well as addresses Bitfields for supported breakpoint types: bit 0 memory read bit 1 memory write bit 2 memory read/write bit 3 I/O read bit 4 I/O write bit 5 I/O read/write bit 6 instruction fetch Bitfields for supported addressing match modes: bit 0 any address bit 1 equal to test value bit 2 not equal bit 3 above test value bit 4 below test value bit 5 below or equal bit 6 above or equal bit 7 within range bit 8 outside range Bitfields for supported data matches: bit 0 any data bit 1 equal to test value bit 2 not equal bit 3 above test value bit 4 below test value bit 5 below or equal bit 6 above or equal bit 7 within range bit 8 outside range .