Paul,
Many thanks for your detailed reply, it’s much appreciated.
I’ll start with the Bkunix utility and see if SimH can use the output, then
move on to your other suggestions if not.
Paul
On Mon, 1 Jun 2020 at 11:04 pm, Paul Ruizendaal <pnr(a)planet.nl> wrote:
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.
--