Skip to content

fileio_trace ​

Tool tools/dos/fileio_trace.py (program, 16-bit DOS). Turn a DOSBox-X file log into a per-file map of reads: which file, at which offset, how many bytes, in what order.

Run it with ./gameframe run fileio_trace ARGS or python3 tools/dos/fileio_trace.py. Source on GitHub.

Its own help ​

This is the help text in the tool itself, as ./gameframe tool fileio_trace prints it.

text
Turn a DOSBox-X file log into a per-file map of reads: which file, at which offset, how many
bytes, in what order. The read sizes of a file that a program reads field by field (Pascal
BlockRead, C fread of a struct member) are the file's record layout, measured.

Usage: fileio_trace.py DOSBOX_LOG [--file NAME] [--game DIR] [--raw]

  DOSBOX_LOG   the log written by scripts/dosbox-run.sh --fileio (analysis/dosbox/dosbox.log)
  --file NAME  only this file (case does not matter)
  --game DIR   the game folder, to resolve seeks from the end of a file (SEEK_END)
  --raw        every read on its own line, instead of grouping repeated patterns

Prints, for each file in the order it was first opened: the open count and mode, then the reads
as "offset +size". A run of identical patterns is shown once with its repeat count, for example
"0x0020: [2, 1, 4] x 120 (stride 7)", which reads as a table of 120 seven-byte records.
Evidence from this tool is *measured* (the original program ran); name the run's inputs.
It does not see memory-mapped or BIOS disk access, and the log has no timestamps beyond
DOSBox-X's own cycle counter.

Named by ​

Skills: re-observe, re-format.

Code: Apache 2.0. Content: CC0 1.0. No game material: bring your own copy.