kgober
Veteran Member
Some months back, someone on reddit needed assistance recovering data from an RT-11 RL02 cartridge they had accidentally clobbered. I happened to have a program that could read RT-11 disk images and was able to offer a little bit of help, and it occurred to me at that point that it would be a good idea to share such a utility, except that the code needed a lot of cleanup first. That code is still not cleaned up.
However, I've written a new program that does most of what the old one did, in a more interactive style, and it's not code I'd be embarrassed to let other people see. I've just posted it at https://github.com/kgober/FSX
This utility lets you 'mount' a disk image, and then once it's mounted you can get a directory listing, or view or save files. If the disk image contains files that are themselves disk images, you can mount those too. For example:
A disk image can be saved from within the utility, in SIMH format. This is useful if you have a logical block image of an RX01 floppy (a sequence of 512-byte blocks) and you want to save it in physical sector format (128-byte sectors, track 0 not used, with the appropriate interleave and skew expected by the DEC RX01 device driver). When mounting an RT-11 floppy image, the utility tries to figure out whether the image needs interleave applied or not, so it works for both physical diskette images as well as logical block images. While converting disk images to SIMH format wasn't the primary purpose this utility was made for, it's probably its most useful feature right now.
I haven't packaged a GitHub 'release' for this utility yet, but there's a pre-compiled EXE in the bin folder if you don't want to compile this yourself. It's written using Visual Studio 2005 so it should work on anything from WinXP up (although on WinXP you may need to install .NET Framework 2.0 if you haven't already).
The utility is intended to support multiple file system formats, but currently only RT-11 and Commodore DOS (e.g. CBM 2040/4040/8050/8250/1541 format) are implemented (and the CBMDOS support is currently incomplete).
I am considering adding Files-11 support next. Possibly support for ISO-9660 and ZIP archives; currently only .gz and ImageDisk .IMD files are supported, as well as any kind of raw block/sector image file. The example above shows an ISO file being mounted, but that's only because it's specially formatted to be accessible as an RT-11 volume. I have some MS-DOS 1.0 FAT12 code I plan to import at some point. I would be willing to add CP/M support if I had some CP/M disk images to play with.
I'd like to add the ability to delete/rename/add files in an image but of course writing to an image is a lot more work than reading one, so for now this is what you get.
However, I've written a new program that does most of what the old one did, in a more interactive style, and it's not code I'd be embarrassed to let other people see. I've just posted it at https://github.com/kgober/FSX
This utility lets you 'mount' a disk image, and then once it's mounted you can get a directory listing, or view or save files. If the disk image contains files that are themselves disk images, you can mount those too. For example:
Code:
FSX>mount DVD RT11DV10.ISO
DVD: = C:\Users\kgober\Personal\Emulators\PDP-11\RT-11 Disk Images\RT11DV10.ISO [RT11]
FSX>dir DVD:rtv2*
19-Aug-2019
System ID: DECRT11A V05
Volume ID: RT Dist V1-0
Owner : RK05 / RL02
RTV2R1.B 996P 01-May-1975 RTV2R1.C 1492P 20-Nov-1975
RTV2RK.B 844P 01-May-1975 RTV2RK.C 1228P 20-Nov-1975
< UNUSED > 0 < UNUSED > 0
< UNUSED > 0 < UNUSED > 0
< UNUSED > 0 < UNUSED > 0
< UNUSED > 0 < UNUSED > 0
< UNUSED > 0 < UNUSED > 0
4 Files, 4560 Blocks
0 Free blocks
FSX>mount RTV2 DVD:RTV2R1.C
RTV2: = DVD:RTV2R1.C [-1KB] [RT11]
FSX>dir RTV2:
19-Aug-2019
RTV213.C 494P 20-Nov-1975 RTV223.C 494P 20-Nov-1975
RTV233.C 494P 20-Nov-1975
3 Files, 1482 Blocks
0 Free blocks
FSX>RTV2:
FSX>mount d1 rtv213.c
d1: = RTV2:RTV213.C [C=4x494@0] [RT11]
FSX>save d1: rtv2-1.rx01
d1: => rtv2-1.rx01
FSX>dir d1:
19-Aug-2019
MONITR.SYS 46 20-Nov-1975 DXMNFB.SYS 58 20-Nov-1975
DP .SYS 2 20-Nov-1975 RK .SYS 2 20-Nov-1975
RF .SYS 2 20-Nov-1975 TT .SYS 2 20-Nov-1975
LP .SYS 2 20-Nov-1975 BA .SYS 7 20-Nov-1975
SYSMAC.SML 18 20-Nov-1975 SYSMAC.8K 25 20-Nov-1975
BATCH .SAV 25 20-Nov-1975 EDIT .SAV 19 20-Nov-1975
MACRO .SAV 31 20-Nov-1975 ASEMBL.SAV 21 20-Nov-1975
EXPAND.SAV 12 20-Nov-1975 CREF .SAV 5 20-Nov-1975
LINK .SAV 25 20-Nov-1975 LIBR .SAV 15 05-Dec-1975
PIP .SAV 14 20-Nov-1975 PATCH .SAV 5 20-Nov-1975
ODT .OBJ 9 20-Nov-1975 VTHDLR.OBJ 8 20-Nov-1975
DEMOFG.MAC 5 20-Nov-1975 DEMOBG.MAC 4 20-Nov-1975
< UNUSED > 118
24 Files, 362 Blocks
118 Free blocks
FSX>type d1:demofg.mac
.NLIST
; COPYRIGHT (C) 1974,1975
;
; DIGITAL EQUIPMENT CORPORATION
; MAYNARD, MASSACHUSETTS 01754
(remainder removed)
I haven't packaged a GitHub 'release' for this utility yet, but there's a pre-compiled EXE in the bin folder if you don't want to compile this yourself. It's written using Visual Studio 2005 so it should work on anything from WinXP up (although on WinXP you may need to install .NET Framework 2.0 if you haven't already).
The utility is intended to support multiple file system formats, but currently only RT-11 and Commodore DOS (e.g. CBM 2040/4040/8050/8250/1541 format) are implemented (and the CBMDOS support is currently incomplete).
I am considering adding Files-11 support next. Possibly support for ISO-9660 and ZIP archives; currently only .gz and ImageDisk .IMD files are supported, as well as any kind of raw block/sector image file. The example above shows an ISO file being mounted, but that's only because it's specially formatted to be accessible as an RT-11 volume. I have some MS-DOS 1.0 FAT12 code I plan to import at some point. I would be willing to add CP/M support if I had some CP/M disk images to play with.
I'd like to add the ability to delete/rename/add files in an image but of course writing to an image is a lot more work than reading one, so for now this is what you get.