PERQDisk v0.0
J.Dersch 8/19/2006

PERQDisk is yet another quick-'n-dirty PERQ utility I whipped up to serve a 
personal need.  Maybe it will serve a need for you as well. The code is pretty
simple and not too ugly (there are a few places where things should be better 
factored) and should be easy to change for a variety of POS-filesystem related 
tasks.

As it currently stands it's hardcoded for reading a POS filesystem dumped off 
of a Shugart SA4002 14" hard drive (202 cyls, 8 tracks, 30 sectors) using my 
"dumpdisk" utility.

It reads the drive, partition, and directory/file structures from the image 
and allows traversing the partition/directory trees, and 
prodding/dumping/copying files off the "virtual" drive to a "real" disk.  It 
runs in "read-only" mode (you can't modify the virtual disk.)

It provides a very limited pseudo-shell that allows you to do a few simple 
actions on the virtual disk's filesystems.  The commands available are:

 - cd : Change directory.  At the root, this allows you to select a partition, 
        otherwise you need to specify a directory (sans ".DR"). Note that this 
        is very primitive -- it only allows changing one directory at a time 
        (i.e. "cd foo" not "cd foo>bar>baz"). "cd .." will take you up one 
        directory.
		
 - dir : Print the contents of the current directory.  Files are in grey, 
	     directories in red.  No special options here at all.
 - type : Dumps the file to the screen.  ASCII 7 is not printed to save 
          time/ears.
 - info : Prints various information about the specified file/directory/
          partition.
 - copy : Copies the specified file (or directory) to the provided "real" 
          destination on the host's filesystem.  Directories are copied 
          recursively.
          
 - exit : Leaves the program (as if you ever really want to!)
 

All of this code was written based on the POS documentation -- copies are 
available on bitsavers.

Currently everything seems to work OK, there are some fuzzy spots in the code 
(mostly around determining the size of/reading the blocks for a Directory file.)
I tried to comment things, but if you have questions feel free to shoot me 
e-mail at derschjo@mail.msu.edu.


 

	