DSUTIL - Data Set Utility DSUTIL is a utility program intended to allow a privileged user to examine data from devices or files on a block-by-block basis and display it on a VT100 in various formats. It can be used to read logical blocks from disks, tapes, terminals or other devices or virtual blocks from files or uic directories. The display options are octal word, octal byte, hexadecimal word, radix50, ascii and ebcdic. Logical or virtual blocks can be accessed randomly or sequentially. When run, DSUTIL prompts for a dataset specification. (If it has been installed, the dataset specification can be passed as part of the command.) The dataset specification must be at least a device name, e.g., sy: or mm1:. The specification may be for a ufd, in which case the device must also be in- cluded, or a file in which case both device and ufd are required. There are no defaults. Some examples are: DSU>MM2: - In response to the prompt the user has requested a logical-block dump of the tape on unit 2. DSU>SY:[34,35] - This specification will read virtual blocks from the directory for UFD [34,35] (i.e., [0,0]034035.DIR) DSU SY:[34,35]DATAFILE.NEW - Invoked as an installed task with the the filespec passed in the command, DSU will access the file DATAFILE.NEW on a virtual-block basis. Note that version number could also have been specified. Once DSU has recieved it's dataset specification, it clears the screen and display the following at the top: DEV= UFD: FILE: LOGICAL BLOCK: 000,000000 MODE: O ------------------------------------------------------------------------------- 00 02 04 06 10 12 14 16 with the device, uic and filename filled in appropriately according to the dataset specification. Also, if the dataset spec is for a file or uic, VIRTUAL BLOCK will display instead of LOGICAL BLOCK. The cursor will be on the last digit of the block number field. DSU will now accept only the following keystrokes as valid. Invalid input will cause the terminal to beep. Cursor left: Moves the cursor on digit to the left. The cursor will auto- matically jump over the comma. Cursor movement beyond the leftmost digit is invalid Cursor right: Moves the cursor right one digit if to the left of last digit position. Again, the comma is skipped automatically. If the cursor is in the last position it is skipped to the mode field. Movement to the right of the mode field is invalid. Digits 0-7: Valid only in the block number field and only in the correct octal context, i.e., only 0 or 1 is allowed in the the high- order digit position to the right of the comma and only a 0-3 in the highest-order digit. Display mode: With the cursor in the MODE field one of the following mode specifiers is valid. A - ASCII Byte B - Octal Byte E - EBCDIC Word H - Hexadecimal Word O - Octal Byte R - Radix 50 Word Carriage return: Causes the first half of the logical or virtual block specified in the block number field to be displayed in the specified display format. Two items of note here - 1) By changing the display mode and not modifying the block number, a user can re-display the same block repeatedly. Re-displaying in this way does NOT require a re-read of the block. 2) DSU considers a file's header block to be VIRTUAL BLOCK 000,000000. Spacebar: Toggles between display of first-half and second half of virtual or logical block. Cursor up: Displays the next logical or virtual block. The block number field is incremented. Cursor down: Displays the previous logical or virtual block. The block number is decremented. Backing up beyond block 0 is invalid. C: Exits the program. One final word of caution: DSU changes terminal characteristics to NOECHO, READ-PASS-ALL upon entry and restores the original characteristics upon exit. If it blows up somewhere in between you must use SET/ECHO and SET/NORPA to reset the terminal's characteristics.