BackbuttonExported Functions

FetchTapeDirectory

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 Partition

The 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.

FetchTapeHeaders

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.