views:

244

answers:

2

Hi,

I have a bit of an unusual question. I'm running an old DOS game in dosbox under windows xp and i'm trying to determine when and where it access it's data file.

what can i use that will give me a log of all read requests made to a file? I want to know the "when", "from" and "size" of each file read.

I know my basic 8086/8088 assembly but nothing more. so if there's no shortcut tool available, a recommendation of a debugging tool / tutorial that can help me get on the right track can be great also.

the game's "below the roots", if anyone can shed some light about this game's internals, it will be a great help :)

+6  A: 

You could try using FileMon for Windows and see what dosbox is accessing via the windows file system.

QAZ
+2  A: 

You could patch the DOSBOX source code :) Just get it to write some debug messages when the reads occur. If you set the debug level high enough it might happen anyway!

Most DOS programs use DOS interrupts. Some however use BIOS interrupts or worse.

Anyway, in case it helps, here are the file-reading DOS interrupts I know of:

FCB-oriented functions:

  • INT 21h, AH=14h (sequential read)
  • INT 21h, AH=21h (random read)
  • INT 21h, AH=27h (random block read, à la fread())

Handle-oriented functions:

  • INT 21h, AH=3Fh (sequential read)
  • INT 21h, AH=42h (seek)
Artelius