Team Unix, Is there a Windows or Linux utility to
create a disk image in any of the above formats, from a local folder tree? Paul *Paul
Riley*
It seems you are asking for two tools in the BK-UNIX toolbox, fsutil and dskutil
https://github.com/sergev/bkunix/tree/master/fsutil
https://github.com/sergev/bkunix/tree/master/diskutil
The first generates a Unix 6th edition file system from a local directory tree. The result
is a binary file with the 512 byte disk blocks stored in sequence. Maybe this is what SIMH
needs, I’m not into the details of SIMH.
The second appears to be a tool to take the a file generated by the fsutil tool and split
that into sectors and tracks. I’m not familiar with this tool, but it looks like you might
need something similar (I assume that you have some way to hook up a 8” drive to your
PC?). Sector interleaving may be an issue to look out for.
When preparing a LSX system disk, you will need to think carefully about the layout:
Presumably the disk works with 128 byte sectors and 4 sectors are grouped together to
create a 512 byte unix block. Check out the disk driver code for details:
https://www.tuhs.org/cgi-bin/utree.pl?file=LSX/sys/decfd.c
Block 0 contains bootstrap code which is loaded/called from the monitor rom (or from a
short code sequence keyed in on a “blinkenpanel” console).
The filesystem itself starts at block 1 and runs up to a block N (you need to tell fsutil
how big the filesystem needs to be).
After block N up to the end of the disk is space to contain 2 swapped out programs plus 1
block for the return code of the third (default LSX has a maximum of 3 processes). You
have to figure out how many 512 blocks are on your floppy and subtract out the swap space
to arrive at a figure for N.
In the LSX source code ’N’ is known as the define SWPLO, see param.h for details:
https://www.tuhs.org/cgi-bin/utree.pl?file=LSX/sys/param.h
In this file, 99 blocks are reserved for swap, corresponding to processes with 24KB
memory; total disk size is defined as 500 blocks, 250KB - note that this slightly exceeds
the 241KB offered by the standard IBM 77 track 26 sector formatting for 8” disks. Probably
you will need to tweak the values in param.h
Be careful with size units in the source code. Often sizes are expressed in words (2
bytes). Where memory is concerned it is often expressed in ‘clicks’, 64 bytes.