********************************* * * * MP/AOS RDOS UTILITY * * * ********************************* The RDOS Utility allows MP/AOS users to dump and load RDOS format tapes, transfer files between RDOS and MP/AOS disks, and list information about RDOS disk files. The utility performs 'flat' dumps (i.e. no directory structure is maintained on the tape), although files from subdirectories of the current directory may be dumped as long as the subdirectory matches a template argument specified in the command line. When loading back an RDOS dump format tape, all files are ,therefore, loaded into the current directory. When subdirectories are included in the argument list, several files with the same name may be dumped to tape, but only one will be loaded back, dependent on whether or not the delete switch is set. Also, link files are resolved, if possible, and renamed to the name of the link when being dumped. Link files whose resolutions are directories are not dumped, just as files of type directory are not dumped. Files may be read from any partition or subdirectory of an RDOS disk and are placed in the current working directory on the MP/AOS disk (subordinate directories will be created on the MP/AOS disk, if necessary). When writing to an RDOS disk, only one partition (primary or secondary) or subdirectory may be specified as the destination (i.e. the RDOS Utility will NOT create secondary partitions or subdirectories on an RDOS disk). Files of type directory or link will NOT be transferred onto an RDOS disk. The default RDOS directory for both reading and writing is the primary partition. RDOS UTILITY COMMAND FORMAT: =========================== X RDOS command[switch(es)] [ argument[switch] ] ... NOTES: 1) There are no switches on the actual 'RDOS' argument. 2) Arguments may be either filenames or templates. 3) If you do not specify any filename arguments, the Utility assumes a default template of "#" for the DUMP and LOAD functions, and "+" for the LIST, GET, and PUT functions. ARGUMENT SWITCHES: ----------------- /C when used with the LOAD or GET command, converts carriage returns to newlines; when used with the DUMP or PUT command, converts newlines to carriage returns NOTES: 1) This switch is only valid for either text files or user data files. 2) This switch may be used with templates. COMMON COMMAND SWITCHES: ----------------------- /L list files on lineprinter /L=pathname list files on pathname specified /V verify COMMANDS / COMMAND SPECIFIC SWITCHES: ------------------------------------ DUMP - Dump one or more files to tape in RDOS dump format. Link files will be resolved, if possible, and files of type directory will NOT be dumped. ex. X RDOS DUMP[switch(es)] @MTAx:y [ argument[switch] ] ... LOAD - Load one or more files from an RDOS format tape. /D load new file after deleting any existing file having the same name /N no load, just verify filename(s) ex. X RDOS LOAD[switch(es)] @MTAx:y [ argument[switch] ] ... where x = tape drive number y = tape file number LIST - List information about files on RDOS disk. /DISK=rdos-diskunit RDOS disk being referenced (MUST be present for command to be valid) /T list contents of all directories designated in command line ex. X RDOS LIST/DISK=rdos-diskunit[switch(es)] [ argument ] ... GET - Transfer one or more files from any partition or subdirectory of the RDOS disk to the working directory of the MP/AOS disk (subdirectories will be created, if necessary) /DISK=rdos-diskunit RDOS disk being referenced (MUST be present for command to be valid) /N no load, just verify filenames /T transfer the contents of all RDOS directories designated in the command line ex. X RDOS GET/DISK=rdos-diskunit[switch(es)] [ arg[switch] ] ... PUT - Transfer one or more files from the MP/AOS disk to a specific partition or subdirectory of the RDOS disk. Files of type link or directory will NOT be transferred, and subdirectories and secondary partitions will NOT be created on the RDOS disk. /DIR=rdos-subdirectory transfer files to the specified RDOS subdirectory or secondary partition (default is the primary partition) /DISK=rdos-diskunit RDOS disk being referenced (MUST be present for command to be valid) ex. X RDOS PUT/DISK=rdos-diskunit[switch(es)] [ arg[switch] ] ... NOTES: 1) Filename extensions may not exceed 2 characters, with the total length of the name not being more than 13 characters. Only 1 extension is permitted per filename. 2) Filenames without extensions must not exceed 10 characters. 3) Underscores and question marks are illegal RDOS filename characters. LOADing an RDOS FORMAT TAPE: =========================== When loading an RDOS formatted tape (made under RDOS) onto MP/AOS, the following types of block must be checked for: Name Block 377r8 Data Block 376r8 Error Block 375r8 End Block 374r8 Time Block 373r8 Link Data Block 372r8 Link Access Attributes Block 371r8 These blocks should occur in the following order for each file dumped: Name Block ---------- < Link Data Block - links only > --------------- Time Block ---------- < Link Access Attributes Block - optional> ---------------------------- Data BlockS ---------- < Error Blocks - put out if an error occurs w/in a specific file > ----------- with an End Block to indicate the end of the dump for this tape file. --------- MP/AOS will ignore information in the following type blocks when loading a file dumped under RDOS: Link Data Blocks Time Blocks Link Access Attributes Block. If an Error Block is encountered while loading a file, that file will be skipped over. Any portion of the file already written to disk will be deleted, and the load will continue with the next file. The above information holds for loading dumps made under MP/AOS and AOS, with the exception that only Name, Time, Data, and End Blocks will be found. DUMPing an RDOS FORMAT TAPE: =========================== When creating an RDOS dump format tape, MP/AOS will put out only the following blocks: Name Block 377r8 Data Block 376r8 End Block 374r8 Time block 373r8. These blocks will occur in the following order per file: Name Block ---------- Time Block ---------- Data BlockS ---------- with an End Block occurring at the end of the dump to this tape file. --------- NOTE: The day last modified will be substituted for the day of creation in the Time Block (since MP/AOS does not maintain the time of creation for its files). BLOCK FORMATS: ( for RDOS format tapes ) ============= NAME BLOCK: ---------- -------------------- ! 377 ! 1 byte -------------------- ! attributes ! 2 bytes -------------------- ! # of ! 2 bytes (only present if contiguous file) ! contiguous blocks! -------------------- ! filename ! variable -------------------- ! null ! 1 byte -------------------- DATA BLOCK: ---------- -------------------- ! 376 ! 1 byte -------------------- ! byte count ! 2 bytes -------------------- ! checksum ! 2 bytes (checksum = data byte length + -------------------- sum of data WORDS -- odd bytes ! ! are written, but not calculated ! ! into the checksum ) ~ data ~ <= 256 bytes ~ ~ ! ! ! ! -------------------- ERROR BLOCK: ----------- -------------------- ! 375 ! 1 byte (causes the file currently being -------------------- loaded to be read through to the end, but not written ) END BLOCK: --------- -------------------- ! 374 ! 1 byte -------------------- TIME BLOCK: ---------- -------------------- ! 373 ! 1 byte -------------------- ! day last accessed! 2 bytes (# days since 12/31/67) -------------------- ! day of creation ! 2 bytes (# days since 12/31/67) -------------------- ! time of creation ! 2 bytes (left byte = hrs., -------------------- right byte = mins.) LINK DATA BLOCK: --------------- -------------------- ! 372 ! 1 byte -------------------- ! dirname ! variable (alternate directory name, if any) -------------------- ! null ! 1 byte -------------------- ! resolution name ! variable (resolution name) -------------------- ! null ! 1 byte -------------------- NOTE: If no alternate directory or resolution name, will be 2 NULLs. LINK ACCESS ATTRIBUTES BLOCK: ---------------------------- -------------------- ! 371 ! 1 byte -------------------- ! attributes ! 2 bytes (link access attributes) -------------------- SAMPLE RDOS FORMAT TAPE DUMP: ( 1 file dumped under MP/AOS ) ============================ ------------------------------------------------------------\\------- ! 377 ! attri!butes ! # conti!guous ! filename ! ! name blk ! ! ! blocks ! ! ------------------------------------------------------------\\------- ----------------------------------------------------------------------- ! null ! 373 ! day ! last ! day ! last ! ! ! time blk ! accessed ! modified ! ----------------------------------------------------------------------- ----------------------------------------------------------------------- ! hour ! minutes ! 376 ! by!te ! chec! ! ! ! data blk ! count ! ! ----------------------------------------------------------------------- -----------------------\\---------------------------------------------- !ksum ! 256 bytes ! 376 ! by!te ! ! ! of data ! data blk ! count ! -----------------------\\---------------------------------------------- ----------------------------------\\----------------------------------- ! chec!ksum ! 256 bytes ! 376 ! by! ! ! ! of data ! data blk ! co! ----------------------------------\\----------------------------------- (EOT) ---------------------------------------------\\-------------------------- !te ! chec!ksum ! <= 256 ! 374 !X!X! !unt ! ! ! bytes data ! end blk !X!X! ---------------------------------------------\\-------------------------- ------------ ! ! NOTES: 1) ! ! represents 1 byte of data. ------------ 2) The symbols \\ represent a variable length block. 3) In this example, if more than 1 file had been dumped to this tape file, they would have been of the same format as the one shown, and would have preceded the END BLOCK (374). 4) A tape made under RDOS may include blocks other than those displayed here. See the above section on LOADING an RDOS FORMAT TAPE for more details. 5) Under MP/AOS, the only attributes included in the attribute word are whether the file is random or contiguous, and the SAV attribute, which is required for all executable files on RDOS (i.e. program files). 6) Under RDOS (and AOS), the day of creation will be dumped in place of the day last modified in the TIME BLOCK. GETting FILES FROM AN RDOS DISK: =============================== RDOS disk files may be organized randomly, contiguously, or sequentially. The RDOS Utility is capable of reading any of these three types of files, but, since MP/AOS does not create sequentially organized files, both randomly and sequentially organized RDOS files will be created as random files when transferred to the MP/AOS disk. Contiguously organized files will remain unchanged when moved. The RDOS GET command will not delete existing files having the same name on the MP/AOS disk, but will create directories subordinate to the MP/AOS working directory, if necessary. Link files will be transferred to the MP/AOS disk unresolved. PUTting FILES ONTO AN RDOS DISK: =============================== MP/AOS disk files may be transferred to any existing RDOS partition or subdirectory, provided that sufficient file space exists in the chosen section of the RDOS disk. All files created on the RDOS disk will be either randomly or contiguously organized, since MP/AOS has no sequentially organized files. MP/AOS files of type link or directory will not be PUT onto the RDOS disk by the RDOS Utility. LISTing RDOS DISK FILE INFORMATION: ================================== Information about any file on the RDOS disk may be obtained through the use of the RDOS Utility LIST function. The following file information will be displayed in the order shown: FILENAME, BYTE LENGTH (decimal), ATTRIBUTES, DAY OF CREATION, TIME OF CREATION, DAY LAST ACCESSED, STARTING BLOCK ADDRESS (octal), and FILE USE COUNT. Subdirectories and secondary partitions will be listed in the manner described above, however, if the contents of a secondary partition or subdirectory are to be displayed as well, that information will immediately follow the directory description, starting with a directory header, such as "DIRECTORY @DPH1:DIR1", and ending with several blank lines. Display will resume where it left off before the listing of the contents of that subdirectory or secondary partition. The display for a link file will consist of the link's name and resolution. The RDOS Utility LIST command corresponds to the RDOS CLI LIST/E/A command. SAMPLE RDOS LIST DISPLAY: ======================== Sample Disk Space Apportioning: ------------------------------ ******************************************************************* * PART1 / * * ___________ / ________ * * | CONTIG2 | ________ / | SEQX | * * ----------- | SEQX | / _________ -------- * * -------- / | RANDZ | * * / --------- * * ================== / * * || SUBDIRB || / ============================ * * ================== / || SUBDIRA || * * _________ / || _________ || * * | LINKA | / || | LINKC | || * * --------- / || --------- || * * / || ________ || * *////////////////////////////// || | SEQX | || * * || -------- || * * _________ || _________ || * * | LINKC | || | RANDZ | || * * --------- ___________ || --------- || * * | CONTIG2 | ============================ * * ----------- * * Dxx * ******************************************************************* where ********* * * represents the PRIMARY PARTITION, ********* ///////// / / represents a SECONDARY PARTITION, ///////// ========= || || represents a SUBDIRECTORY, and ========= _________ | | represents a FILE. --------- NOTE: In the diagrams above, each partition and subdirectory also has its own SYS.DR file, each partition has its own MAP.DR file, and each subdirectory has a copy of its parent partition's MAP.DR file. Command Line: ------------ X RDOS LIST/DISK=@Dxx/T Screen Display: -------------- SEQX 628 11/10/83 10:51 11/10/81 [000315] 0 SYS.DR 29184 APWDY 03/09/83 15:53 11/10/83 [000006] 0 SUBDIRA 512 DY 07/14/83 11:43 11/10/83 [000322] 0 DIRECTORY @Dxx:SUBDIRA SEQX 628 11/10/83 10:51 11/10/83 [002767] 0 SYS.DR 2560 APWDY 07/14/83 11:43 11/10/83 [000322] 0 LINKC :UTIL:FILEA MAP.DR 1222 APWC 07/14/83 11:43 11/10/83 [000017] 0 RANDZ 2406 SD 10/20/83 14:10 10/20/83 [002774] 0 LINKC :UTIL:FILEA MAP.DR 1222 APWC 03/09/83 10:53 11/10/83 [000017] 0 PART1 761856 CTY 08/17/83 16:01 11/10/83 [004305] 0 DIRECTORY @Dxx:PART1 SEQX 628 APWDY 11/10/83 10:51 11/10/83 [004434] 0 SYS.DR 2560 APWDY 08/17/83 16:01 11/10/83 [004305] 0 SUBDIRA 512 DY 10/22/83 12:30 10/22/83 [004440] 0 LINKA @Dxx:RANDZ MAP.DR 186 APWC 08/17/83 10:51 11/10/83 [004316] 0 CONTIG2 250 C 11/02/83 17:36 11/02/83 [004420] 0 RANDZ 2406 SD 10/20/83 14:10 10/20/83 [000265] 0 CONTIG2 250 C 11/02/83 17:36 11/02/83 [000204] 0