tu58fs has a rich commandline interface. When called with out any options, it dumps out it's manual.

NAME

tu58fs - DEC TU58 tape emulator with File Sharing v1.2.0
(compile Apr 15 2017 14:29:04)
(C) 2017 Joerg Hoppe <This email address is being protected from spambots. You need JavaScript enabled to view it.>,
(C) 2005-2017 Don North <This email address is being protected from spambots. You need JavaScript enabled to view it.>,
(C) 1984 Dan Ts'o <Rockefeller University>

SYNOPSIS

Command line options are processed strictly left-to-right.

tu58fs  --help --version --debug --verbose --mrsp --nosync --vax --background
          --timing <parameter> --baudrate <baudrate> --format <bits_parity_stop>
          --port <serial_device> --xxdp --rt11 --size <size>
          --device <unit> <read_write_create> <filename>
          --shareddevice <unit> <read_write_create> <directory>
          --synctimeout <seconds> --unpack <filename> <dirname> <devicetype>
          --pack <dirname> <filename> <devicetype> --boot <monitor> [<keep>]

-?    | --help
          Print help.
-V    | --version
          Output version string.
-dbg  | --debug
          Enable debug output to console.
-v    | --verbose
          Enable verbose output to terminal.
-m    | --mrsp
          Disable sending INIT at initial startup.
-n    | --nosync
          enable standard MRSP mode (byte-level handshake).
-x    | --vax
          Remove delays for aggressive timeouts of VAX console.
-bk   | --background
          Run in background mode, no console I/O except errors.
-t    | --timing <parameter>
          timing 1: add timing delays to spoof diagnostic into passing.
          timing 2: add timing delays to mimic a real TU58.
-b    | --baudrate <baudrate>
          Set serial line speed to 300..3000000 baud. Default: "38400"
-f    | --format <bits_parity_stop>
          Set format parameters for serial line as a 3 char string <bitcount><parity><stopbits>
          <bitcount> maybe 7 or 8, <parity> is n (no), e (even) or o (odd), <stopbits> is 1 or 2.
          Set to special console params for --boot operation. leave default for device emulation.
           Default: "8N1"
          Simple example:  -f 7e2
              Set for 7 bit even parity with 2 stop bits (--boot)
-p    | --port <serial_device>
          Select serial port: "COM<serial_device>:" or <serial_device> is a node like "/dev/ttyS1"
-xx   | --xxdp
          Select XXDP file system for following --device or --shareddevice options.
          New image files are create with an empty XXDP file system.
-rt   | --rt11
          Same as --xxdp, but RT11 file system is selected.
-s    | --size <size>
          Override size of TU58 imagefile.
          <size> is number of bytes; suffix "K": * 1024, suffix "M": * K * K.
          Smaller images are enlarged, greater are trunc'd if possible.
          Devices and file system try to adapt.
          Works for XXDP non-boot-tapes, and RT-11 with patched DD.SYS driver.
          "--size std" clears overriden size.
          Simple example:  -s 10M
              image is 10 Megabytes = RL02 sized.
-d    | --device <unit> <read_write_create> <filename>
          Open image file for a TU58 drive
          <unit>: File is mounted in this drive (0..7).
          <read_write_create>: "r" = device is read-only, "w" = writable,
          "c" = writable and file is created if not existent.
          Also the --xxdp, --rt11 and --size options are evaluated.
          A missing file is created and initialized with 0s or empty XXDP or RT11 filesystem.
          Simple example:  -d 0 r 11XXDP.DSK
              mount image file XXDP.DSK into slot #0.
-sd   | --shareddevice <unit> <read_write_create> <directory>
          same as --device, but image is filled with files from a host directory.
          -xxdp or -rt11 must be specified. <directory> must be writable and
          must not contain subdirs, it is created only with "c" option.
          Simple example:  -sd 1 w /home/user/tu58/data.dir
              fill image with files in a directory.
-st   | --synctimeout <seconds>
          An image changed by PDP is written to disk after this idle period.
           Default: "3"
-up   | --unpack <filename> <dirname> <devicetype>
          Read a binary disk/tape image, and extract files into directory
          Read files from a directory and pack into binary disk/tape image
          <device_type> can specify a different device geometry for the image,
          allowed: TU58,RP0456,RK035,RL01,RL02,RK067,RM03,RS034,TU56,RX01,RX02
-pk   | --pack <dirname> <filename> <devicetype>
          Read a binary disk/tape image, and extract files into directory
          Read files from a directory and pack into binary disk/tape image
          <device_type> can specify a different device geometry for the image,
          allowed: TU58,RP0456,RK035,RL01,RL02,RK067,RM03,RS034,TU56,RX01,RX02
-boot | --boot <monitor> [<keep>]
          Deposits a TU58 bootloader over console monitor into PDP-11, then starts it.
          The TU58 emulator must have been started on a different serial port before.
          <port> and <baudrate> of the console are set by "-p" and "-b" options
            left of "--boot".
          <monitor> specifies the implemented console: "odt", "m9312", or "m9301".
            "code" displays the bootloader code as value/address pairs on stdout.
          With <keep>=1 the transfer dialog terminal window remains active, so you can
            immediately operate the booted TU58 OS. With <keep>=0 connection is terminated and
            you have to start a more comfortable terminal emulator.
          - The serial CONSOLE port is always DIFFERENT from the TU58 port!
          - The PDP-11 must be HALTed and show its monitor prompt,
            with the HALT/RUN switch in RUN position.
          - the bootloader doesn't catch any TRAPs, so turn off the BEVENT/LTC signal.
            The code is loaded at end of first 4k page at address 7000.

Option names are case sensitive.

EXAMPLES

sudo ./tu58fs-p /dev/ttyS2 -b 38400 -d 0 r 11XXDP.DSK
    Define device #0: tape image file is 11XXDP.DSK .
    Access to serial line device requires "sudo". Image is readonly.
    If it not exist, an error is signaled.

tu58fs <serial params> -d 0 c 11XXDP.DSK
    Same. If "11XXDP.DSK" does not exists, an unformatted 0-filled image file is created.

tu58fs <serial params> -rt11 -sd 1 w tinyrt11
    Shared device image for device #1, "tinyrt11" is a directory:
    Image is constructed from file content, to a max size of 256kb, else error.
    Can be accessed with "DD1:"

tu58fs <serial params> --size 10M -rt11 -d 1 w bigrt11
    Same, but device image is automatically enlarged to 10MBytes, max 32MB.
    A modified DD.SYS driver must be used on the RT11 system.

tu58fs <serial params> -xxdp -d 0 r 11XXDP.DSK -d 1 w data.dsk -sd 7 w shared.dir
    Define device #0:
    Standard 256kb image, loaded from file "11XXDP.DSK", not created.
    Device #1:
    If "data.dsk" does not exist, a file is create and formatted as empty XXDP
    If "data.dsk" exists, it is opened for read/write
    Device #7:
    contains the files in a sub directory "shared.dir" on the host.
    Can be accessed with "DD0:", "DD1:", "DD7:"

tu58fs -xxdp --unpack 11XXDP.DSK 11xxdp.dir TU58
    Extracts all files from an TU58 image into a directory.
    If image is bootable, pseudofiles for bootloader and monitor are generated.
    The directory is then bootable too.

tu58fs <serial params> -xxdp -sd 0 w 11xxdp.dir
    Define device #0:
    Standard 256kb image, loaded from file "11xxdp.dir", not created.
    Dir is bootable, if it contains the pseudo files for monitor and boot block.
    A bootable dir is can be created by unpacking a bootable image file.

tu58fs <serial params> -rt11 -unpack RT11V53.DSK rt11v53.imgdir TU58 -sd 0 w rt11v53.imgdir
    Combination of exmaples before:
    Extract content of image into shared directory, then run TU58 emulator on that directory.
    Dir is bootable, if the image is bootable.

tu58fs -p /dev/ttyS1 -b 9600 -f 7e2 --boot odt 1
    Deposit TU58 bootloader over serial console port into PDP-11 and try to start it.
    The console is configured for 7 bit, even parity and 2 stop bits.
    A LSI-11 with ODT monitor is assumed, boot loader is dumped into memory at
        address octal 7000 (at end of first 4K page).
    The actual TU58 emulator must have been started on a different serial port before.
    The boot loader will try to boot from TU58 tape.
    After that the terminal window remains active, so you have a primitive
    teletype to operate the booted PDP_11


SEE ALSO

Online docs: www.retrocmp.com/tools/tu58fs
Repository: https://github.com/j-hoppe/tu58fs
Contact: This email address is being protected from spambots. You need JavaScript enabled to view it.