fsio is a utility for manipulating files within file system container files supported by by various emulators such as SIMH. fsio is designed for Unix and Unix-like operating systems. fsio is executed by the command: fsio [-qv] [cmdfile] If cmdfile is present, fsio will read commands from the command file and echoing each command to stdout if -v . present. If the -q switch is present, no unsolicited output will be generated by fsio. If the command file is not present fsio will prompt for input: fsio> Commands to fsio have the following general syntax: verb [switches] args... The following verbs are supported: mount - makes a container file available to fsio and specifies the file system it contains. umount - removes knowledge of a container file from fsio newfs - create a new container with an empty file system set - set file system parameters info - display information about the file system dir - list a directory dump - Dump the contents of a file in a human readable format copy - copies a single file type - types the contents of a file on the terminal delete - deletes a file status - displays the currently mounted file systems do - execute commands from a file help - display help on using fsio exit - terminate fsio The following commands are only accepted by file systems which are on magtape devices: rewind - position the tape to the start of the data stream eom - position the tape to the end of the data stream skipf - position the tape by skipping forward over a number of files skipr - position the tape by skipping backwards over a number of files fsio will accept shorter versions of each verb as long as they are unique within the command set, so c, co and cop are all synonyms for copy. The generic form of the "dev" argument is "DDnn:" where the ":" is optional in some commands. DD is a sequence of upper and lower case letters and nn is an octal number in the range 0 - 377. The length of "DDnn" must not exceed 16 characters. In most cases the number field should not be present and will be flagged as an error if it is. Some container file formats, e.g. RT-11, allow multiple file systems within a single container and the number is used to specify which file system to use. For these types of containers the following rules apply: - For "mount" and "umount" commands always use "DD:" - For file access commands (e.g. "dir", "type" etc) use "DDnn:" ("DD:" is treated the same as "DD0:") - The "info" command use the presence/absence of the number to control what information is display. If "DD:" is used, it will display information abount all file systems within the container. If "DDnn:" is used, it will only display information about the specific file system. Full command syntax: 1. mount mount [-dfr] [-t type] dev[:] container type Make the specified container file available to fsio for I/O. -d Generate debug output if fsio is built with the DEBUG symbol defined -f Force the mount to happen even if we are unable to completely validate the container file format -r If present, the file system is only available for read access -t type Specify the type of the container file. This is only required for OS/8 file systems where type should be one of "rx01", "rx02" or "rk05". dev[:] User supplied name to be used for accessing files within the container file. Files within the container are named by using the syntax dev:filespec where filespec uses the native syntax of the container file system. Files within the host file system can be named directly without any prefix. If such a file includes ':' in its filename, the reserved prefix local: may be used to provide access. If you want to disallow default access to the local filesystem, creating an environment variable with the name "FSioForceLocal" (the value does not matter) will require use of the "local:" prefix. container The name of the file containing the file system type The type of the file system in the container 2. umount umount dev[:] Removes all knowledge of the container file from fsio dev[:] The name of a previously mounted file system 3. newfs newfs [-t type] container type Create a new container file with an empty file system. The container will be a fixed size (depending on file system type) and may not exist prior to issuing this command. This command does not support all features of container files and will build a fixed size container known to work on the target O/S: dos11 RK05 image (2.5MB, 4800 blocks) rt11 MSCP image (32MB, 65535 blocks) dosmt An empty file suitable for use with any magtape controller os8 An OS/8 file system -t type Use a different size for the container file. The size used will be file system dependent. For rt11, the following disk types are valid: rl02 RL02 image (10MB, 20480 blocks) rx20 RX20 image (512KB, 1024 blocks) For os8, the following disk types are valid: rk05 RK05 image (3248 blocks) rx01 RX01 image (2002 sectors of 128 bytes each) rx02 RX02 imgae (2002 sectors of 256 bytes each) container The name of the file to create type The type of the file system to create in the container 4. set set dev: args ... Set parameters on a mounted file system. The arguments are file system dependent. dev: The name of a previously mounted file system 5. info info dev: Display internal information about the file system within the container file dev: The name of a previously mounted file system 6. dir dir [-fn] dev:dirspec List the contents of a specific directory. -f If present, display full directory information. -n If present, don't rewind the magtape before listing dev: The name of a previosly mounted file system dirspec Specification of the directory to list using the dev: syntax. 7. dump dump [-bcdnwx] dev:src Dump the contents of a specified file in some human readable format (e.g hex, octal etc). If no switches are present, the output will be in octal word format. If multiple size switches are set, the first in alphabetical order will take precedence. -b Output byte at a time -d Output double word (4 bytes) at a type -c Output ASCII characters -w Output word (2 bytes) at a time -x Output the data in hex -n Don't rewind the magtape before looking for the input file dev: The name of a previosly mounted file system src The name of the source file (e.g. dp:input.dat) 8. copy copy [-anpc blocks] dev1:src dev2:dest Copy a file. The copy may be between file systems or within a single filesystem including the host filesystem. -a Copy in ASCII mode. This performs any necessary translation of end-of-line characters. -n Don't rewind the magtape before looking for the input file -p Pad the file with NULLs. This is target file system dependent. -c blocks If the file system for the destination file supports contiguous files, "blocks" is the number of file system contiguous files to be allocated before starting to write the file. This function depends on the value of "blocks": 0 - Use the size of the source file for the allocation, if that is 0 (e.g. input from a keyboard) use 1. != 0 - Use the larger of "blocks" and the size of the source file. dev1: The name of a previosly mounted file system src The name of the source file (e.g. dk:source.file) dev2: The name of a previously mounted file system dest The name of the desination file (e.g. dm:dest.file) Note that wildcard naming is not supported and the source and destination file names must be fully specified. 9. type type [-n] dev:src Copies the specified file to the terminal. This is equivalent to copy -a dev:src /dev/tty -n Don't rewind the magtape before looking for the input file dev: The name of a previously mounted file system src The name of the source file (e.g. dp:input.txt) 10. delete delete dev:file Deletes the specified file from the file system. dev: The name of a previously mounted file system file The name of the file to be deleted 11. status status Displays the currently mounted file systems. 12. do do [-q] cmdFile Executes commands from the specified file -q By default, command lines are echoed. Use -q to not echo. 13. help help Display help text on the terminal. 14. exit exit Terminates the fsio application. 15. rewind rewind dev: Positions a magtape device to the start of the tape. dev: The name of a previously mounted file system 16. eom eom dev: Positions a magtape device past the end of the last file already on the tape. A subsequent copy to the device will append a new file to the tape. dev: The name of a previously mounted file system 17. skipf skipf dev: n Changes the current position of the magtape device by skipping forwards over a number of files. If end of tape is reached before the file count is complete, the skip operation will terminate early. dev: The name of a previously mounted file system n Number of files to skip (must be > 0) 18. skipr skipr dev: n Changes the current position of the magtape device by skipping backwards over a number of files. If beginning of tape is reached before the file count is complete, the skip operation will terminate early. dev: The name of a previously mounted file system n Number of files to skip (must be > 0)