Definition:
Real PROCEDURE FetchTapeDirectory(TapeTitle,TapeUnit,Names,nNames); Value TapeTitle; File Names; Pointer TapeTitle; Real TapeUnit,nNames; Library CopyWrite;Purpose: To return a Tape Directory, a CD Directory, a CD Image Directory, a WRAP Directory or a LIBMAINTDIRECTORY Directory. Result: If the function is successful, it returns GoodFate(1), otherwise it returns an error number. See the MCP @ 78877265. If GoodFate(1) is returned,
- The Names file contains the directory entries.
- nNames is the number of directory entries returned. If nNames is 3, then record 0..2 of the Names file contain the directory entries.
- The LASTRECORD of the Names file contains an information record, with this layout,
Word[0] - # of Words in the Information Record
Word[1] - SERIALNO (EBCDIC Spaces for CD)
Word[2] - LABELKIND (0 for CD)
Word[3] - DENSITY (0 for CD)
Word[4] - CREATIONDATE
Word[5] - SAVEFACTOR (0 for CD)
Word[6] - KIND (DISK or CD for CD Images)
Word[7] - Image Title in Display Form, terminated by "."- Each directory entry record of the Names file has this layout,
Byte [0] - <standard form file name>
Byte[255] - <key length byte><key>
Byte[511] - <VerifyKey Result Word>LibMaint by Tape File Name: TapeUnit = 0
TapeTitle contains a Display Form name, terminated by a '.', and which is used to set the TITLE attribute.This call is passed to the MCP, which uses the TapeTitle to locate a mounted Library/Maintenance Tape.
LibMaint by CD Family Name: TapeUnit = -1
TapeTitle contains a Display Form name, terminated by a '.', and which is used to set the FAMILYNAME attribute. The KIND is set to CDROM.This call is passed to the MCP, which uses the TapeTitle to locate a mounted CDROM family.
LibMaint by Unit: TapeUnit = <unit number>
TapeTitle is not used.This call is passed to the MCP, which uses the TapeUnit to locate either a mounted Tape or CD.
LibMaint by CD Image or Container Title: TapeUnit=-2
TapeTitle contains a Display Form name, terminated by a '.', and which is used to set the TITLE attribute of a file on either DISK or CDROM. The file may be either a CDROM Image file, a Wrapped file, a Wrapped Container, or a LIBMAINTDIRECTORY.COPYWRITE tries to open the file with KIND=CDROM, and if that fails, it then tries with KIND=DISK. The FILEKIND of the file is used to determine the type of file (PROMBURNERDATA for CDROM Images, or WRAPPEDDATA or CONTAINERDATA for Wrapped files, and LIBMAINTDIRECTORY for Library/Maintenance Directory files).
Hybrid by CD Image Title: TapeUnit=-5 for ISO9660 Partition
TapeUnit=-6 for JOLIET Partition
TapeUnit=-7 for LMCD Partition
TapeTitle contains a Display Form name, terminated by a '.', and which is used to set the TITLE attribute of a file on either DISK or CDROM.COPYWRITE sets the TITLE and then tries to open a file with KIND=CDROM, and then KIND=DISK. If the file is opened and the selected partition exists, the file names are converted to A-Series file titles.
Hybrid by Unit: TapeUnit=<unit number>
TapeTitle="ISO9660" for ISO9660 Partition
TapeTitle="JOLIET" for JOLIET Partition
TapeTitle="LMCD" for LMCD PartitionThe TapeUnit is used to locate a mounted CDROM. The TapeTitle is used to select the partition. If the partition exists, the file names are converted to A-Series file titles.
Hybrid by CD Family Name: TapeUnit=-5 for ISO9660 Partition
TapeUnit=-6 for JOLIET Partition
TapeUnit=-7 for LMCD Partition
TapeTitle contains a CDROM family name in square brackets, for example [FAMILYNAME].COPYWRITE searches the CDROM units for a mounted CD with a matching family name. If it finds the family, and the partition exists, the file names are converted to A-Series file titles.
Definition:
Real PROCEDURE FetchTapeHeaders(TapeName,Directory,Tape_Info,F_Proc); Array TapeName[*], Directory[*], Tape_Info[*]; Boolean PROCEDURE F_Proc(Hdr, Misc); Array Hdr[*], Misc[*]; FORMAL; Library CopyWrite;Purpose: To return the Disk File Headers of the files on a Tape, CD, CD Image, Wrapped Container or LIBMAINTDIRECTORY. See the Documentation in MCP System Interfaces Programming Reference Manual.
This section documents the additions to the MCP interface.
Result: If the function is successful, it returns GoodFate(0), otherwise it returns an error number. TapeName: TapeName/FIL000 or CD Family name in standard form. The meaning depends on HEAUnitX in TapeInfo. Directory: File name or Directory name(= or ../=) in standard form. TapeInfo: HEABitsX = 0#, % Reserved
HEAUnitX = 1#, % Source Tape Unit Number
HEAVersX = 2#, % Reserved
HEARsltX = 3#, % Reserved
HEATInfoX = 4#, % Source Tape Unfo (12 Words)
HEASizeX = 4#, % Size of Source Tape Info
HEASerX = 5#, % SerialNo
HEALabX = 6#, % LabelKind
HEADenX = 7#, % Density
HEACreatX = 8#, % CreationDate
HEASaveX = 9#, % SaveFactor
HEAKindX =10#, % Kind
HEAFamX =11#, % FamilyName or Title (5 Words)F_PROC: This function is called with each File Header and this information, MiscLenX = 0#, % Total and Fixed Length of MISC Array
MiscTotLenF = [39:20]#,
MiscFixLenF = [19:20]#,
MiscFlagX = 1#, % Options Bits and Validity Flag
MiscValidF = [47:8]#,
MiscOptionsF = [39:40]#,
MiscFNoX = 2#, % File # on Tape
MiscSerX = 3#, % SerialNo of Tape
MiscFamX = 4#, % Origin (3 Words)
MiscHVerX = 7#, % Header Version on Tape
MiscFixLen = (MiscHVerX + 1)#;Headers on Unit: HEAUnitX = <unit number> This call is passed to the MCP, which uses the <unit number> to locate either a mounted Tape or CD.
Headers on Tape Volume: HEAUnitX=0 This call is passed to the MCP, which uses the TapeName to locate a Tape Volume.
Headers on CD Family: HEAUnitX=-1 This call is passed to the MCP, which uses the TapeName to locat a CDROM Family.
Headers in CD Image on Disk: HEAUnitX=-2
TapeName=<image title>The standard form <image title> is used to find a CD Image(PROMBURNERDATA), Wrapped Container(CONTAINERDATA or WRAPPEDDATA) or LIBMAINTDIRECTORY, on DISK.
Headers in CD Image on CD: HEAUnitX=-3
TapeName=<image title>The standard form <image title> is used to find a CD Image file(PROMBURNERDATA) , Wrapped Container(CONTAINERDATA or WRAPPEDDATA) or LIBMAINTDIRECTORY, on a CDROM.
Headers in CD Image on DONTCARE: HEAUnitX=-4
TapeName=<image title>The standard form <image title> is used to find a CD Image(PROMBURNERDATA), Wrapped Container(CONTAINERDATA or WRAPPEDDATA) or LIBMAINTDIRECTORY, using a file with KIND = DONTCARE.