Version 1.5
Data Probe is a light weight HEX editor for DOS that runs on any x86 machine. Data Probe was written in the 1990's but still serves as a useful tool for any retro computing environment in use today.
- Insert and overwrite editing, selection blocks, and delete/backspace operations that track logical file length.
- Chunked paging engine: edit files larger than available memory via a sliding chunk window sized from free far memory.
- CUA / Turbo C++ IDE clipboard —
Copy = Ctrl+Ins,Cut = Shift+Del,Paste = Shift+Ins(mode-aware paste: inserts in insert mode, overwrites in overwrite mode). - Find / Replace across the whole file — search plain strings or byte-pair sequences, paging chunks in and out as needed.
- Export to text and printing, either the whole file or the current selection only.
- Live dual status bars (hex and decimal): size, offset, selected, byte, and word — with configurable little-/big-endian word order.
- Relative-position margin marking top-of-file, bottom-of-file, chunk boundaries, and the cursor's scaled file position.
- Runtime settings (rows, address radix, hex divider, position margin, buffer size, insert default, word byte-order, About-dialog-at-launch) that persist to a hand-editable
CONFIG.INI.
A ready-to-run DPROBE.EXE is attached to the GitHub release. Download the latest DPROBE.EXE and drop it anywhere on your MS-DOS machine or in a folder you can reach from DOSBox. The executable is fully self-contained; on first run it writes a CONFIG.INI next to itself for your saved settings, so nothing else needs to be installed.
Data Probe takes no command-line arguments — you load files from inside the program. Start it, press F10 to drop the menu bar, and choose File → Open… to browse to a file. Press F10 again (or Esc) at any time for the menus, and open Help → User Guide for the full key map.
Copy DPROBE.EXE onto the machine — for example into C:\TOOLS — then run it from that directory:
C:\TOOLS> DPROBE
Data Probe needs MS-DOS 3.30 or later and an 80286 or better CPU (it will run on any 386/486 and beyond). That is the only requirement; there is no installer and no runtime to set up.
If you are on a modern PC, DOSBox gives you the same experience. Put DPROBE.EXE in a folder on your host — say C:\DOS\TOOLS on Windows — then start DOSBox, mount that folder as a DOS drive, and run it:
Z:\> mount c C:\DOS\TOOLS
Z:\> c:
C:\> DPROBE
For a full-screen, sharper display, press Alt+Enter to toggle DOSBox to full screen.
To use Data Probe as a system-wide tool, launchable by typing DPROBE from any directory, put its folder on the DOS PATH.
On an MS-DOS PC, keep DPROBE.EXE in a dedicated tools directory such as C:\TOOLS and add that directory to the PATH line in C:\AUTOEXEC.BAT:
PATH=C:\DOS;C:\TOOLS
Reboot (or re-run AUTOEXEC.BAT) so the new PATH takes effect. After that, DPROBE works from any drive or directory.
In DOSBox, do the same thing from the [autoexec] section at the bottom of your dosbox.conf (or dosbox-0.74-3.conf), so the mount and PATH are set up automatically every time DOSBox starts:
[autoexec]
mount c C:\DOS\TOOLS
c:
set PATH=%PATH%;C:\TOOLSWith that in place, launching DOSBox drops you at a C:\ prompt from which DPROBE runs no matter which directory you have changed into.
Requires MS-DOS, or a DOS emulator like DOSBox, with the Borland C++ 3.1 command-line driver (bcc) on the PATH. The scripts run inside an already-configured DOSBox session and are launched from the build/ directory:
cd build
BUILD.BATBUILD.BAT compiles the four modules — MicroText (mtext.c, C with inline assembly), MicroApp (mapp.cpp, C++), the INI settings library (ini.cpp, C++), and DataProbe (hexview.cpp, filebuf.cpp, dprobe.cpp, C++), all with the large memory model (-ml), then links the six objects into dprobe.exe. The .obj, .exe, and build.log artifacts land in build/.
Run CLEAN.BAT from the build/ directory to remove build artifacts (*.obj, *.exe, build.log).
Data Probe/
├─ src/
│ ├─ M-TEXT/ MicroText — C + inline-asm text library
│ │ ├─ mtext.c
│ │ └─ mtext.h
│ │
│ ├─ M-APP/ MicroApp — C++ user interface class framework
│ │ ├─ mapp.cpp
│ │ └─ mapp.h
│ │
│ ├─ INI/ INI — C++ INI-file settings library
│ │ ├─ ini.cpp
│ │ └─ ini.h
│ │
│ └─ D-PROBE/ DataProbe — HEX editor application
│ ├─ dprobe.cpp
│ ├─ dprobe.h
│ ├─ hexview.cpp
│ ├─ hexview.h
│ ├─ filebuf.cpp
│ └─ filebuf.h
│
├─ build/ Build scripts (BUILD.BAT compiles + links DPROBE.EXE)
│ ├─ BUILD.BAT
│ └─ CLEAN.BAT
│
├─ test/ Per-module test drivers
├─ README.md
└─ LICENSE
- Target OS: MS-DOS 3.30, or above.
- Target CPU: 80286 / 80386 / 80486, real mode.
- Memory model: Large (
-ml), far code + far data, with afarmalloc-ed file buffer. - Display: Direct
0xB800hardware text mode (80×25, or 43/50 rows), one word per cell (character + attribute). - Double buffering: The UI composites into an off-screen
TEXTBUFFER, then a singleFlipScreenBuffer(REP MOVSW) blits it to0xB800, flicker-free. - Chunked paging: A sliding chunk window, sized from free far memory (
farcoreleft), lets Data Probe edit and search files larger than available RAM. - Toolchain: Borland C++ 3.1 (
bcc), with MicroText'sasm { }blocks handled by the built-in inline assembler (no separate TASM pass).
Data Probe is dependant on three other projects.
- INI — An INI configuration file management library.
- Microtext — A low level text mode library written in C and inline x86 assembly language.
- MicroApp — A visual text mode application framework, that is itself dependant on MicroText.
- Data Probe — An MS-DOS HEX Editor (this application), that depends on MicroApp and INI.
┌───────────────────────────────────────┐
│ Data Probe │
└──────┬────────────┬────────────┬──────┘
│ │ │
▼ │ ▼
┌─────────────┐ │ ┌─────────────┐
│ MicroApp │ │ │ INI │
└──────┬──────┘ │ └─────────────┘
│ │
▼ ▼
┌──────────────────────────┐
│ MicroText │
└──────────────────────────┘
Released under the MIT License — Copyright © 1992 Rohin Gosling.
