The .DSP driver comes from the System file on my 7.1 machine.
Here's the process I went through to create the basic annotations, and it's probably a good idea to follow along exactly since the end file's offsets important. It's an exercise left to the reader to get a minivmac instance up enough to run the basic tools below. Mine is running 7.0.1 FWIW.
You can probably also get by without minivmac, and just run the fdisasm tools locally on the duo. I just used minivmac for convenience, since I tend to spend a lot of time making multiple iterations of the annotations & disassembly, and it's just easier and faster on a modern machine with minivmac.
* From 7.1, I duplicated my System file because if you open the live System, Resedit complains.
* Opened the duplicate in Resedit.
* In the DRVR resources, copied (cmd-c/Edit->Copy) the .DSP resource. My version has a size of 17082.
* Created a new file in Resedit called "DSP.rsrc" (file name gets encoded in the file, so using the same name is probably a good idea). And paste the copied DSP DRVR into it.
* Used Compact Pro's hqx encoding for safe transport to a modern machine that runs minivmac. This particular encoding probably isn't necessary, anything that you can use to copy the file into minivmac while preserving the resource fork is probably fine.
* Once inside a working minivmac instance (I used ImportFl
to get the DSP.rsrc.hqx file into minivmac), remove the binhex encoding or whatever other wrapper format you used.
* Attach this
disk to minivmac. You should see bin_names, bin_map, format, and the fdisasm utilities I'm about to mention. The fdisasm utilities are all GPL with source and licenses obtainable from the following links.
* Place the DSP.rsrc file on the mounted duodsp disk.
* Run GetRsFrk
to dump the resource fork into the data fork, so it'll be included in the disassembly. It'll generate a "bin" file in the same directory. This is the file used by all the fdisasm related tools.
* Run fdisasm
. It will generate a listing file. That's the disassembled text. I usually export it from minivmac using ExportFl
, since it's usually easier to just view text on the host system.
Hopefully, after all that, you'll have the disassembled file. The driver its self started at offset 0x104 for me, and starts with the word 0x4440. I've named the driver's open/prime/control/status/close entry points (defined in bin_names) and commented where the DRVR resource header starts (defined in the format file). You can add your own comments to the format file, and name labels, procedures, etc. in the bin_names, then rerun fdisasm to generate a new listing with the new comments/names inline.