Banner
 
 

CopyWrite Software Changes

 
540.05 LFILENAME
Fri, April 23 2010

Allow Long FileNames in FETCHFOREIGNHEADERS.

540.04 Waiting
Tue, April 20 2010

Stop waiting for a Packet when the Connection is delinked.

540.03 Long
Thu, April 15 2010

Change any Array which might be used for a Header to LONG.

540.02 SelfExe EXTMODE
Fri, April 9 2010

Set Self Extracting Archive EXTMODE to SINGLE.

540.01 Self Contained Archives
Wed, April 7 2010

Implementation of Self Contained Applications. A Self Contained Application is an application codefile which contains other files needed for the application. Those other files can be accessed using a Virtual IOH.

A Self Contained Application is created in the same way as a Self Extracting Archive, except that the File EXE should be Label Equated to the Application Codefile. If this is not done, then a Self Extracting Archive is created.

530.02 Copy&Go FTPSITE
Wed, December 23 2009

The COPY&GO feature of CopyWrite used to use the Library/Maintenance FTAM Transform attribute DOCUMENTTYPE to indicate a file which was to be initiated. Since MCP54HMP13 no longer supports the FTAM attributes, a new mechanism has been implemented.

A COPY&GO Library/Maintenance statement allows an action to be associated with a File or Directory in a COPY Statement by using the FTPSITE Transform attribute.

The simplest form of COPY&GO is either a START or RUN of a file copied to a remote host.

Example:

  COPY WFLTEST(FTPSITE="START")
    TO NUCLEUS(PACK,HOSTNAME=BLUEGUM);TARGET=1

If FTPSITE is neither START or RUN, then it is interpreted as a WFL Statement.

The WFL Statement is preprocessed to interpret substitution strings as documented for Self Extracting Archives.

Example:

  COPY WFLTEST(FTPSITE="START %2 ON %3")
    TO NUCLEUS(PACK,HOSTNAME=BLUEGUM);TARGET=1
         is equivalent to the example above

In addition, single quotes are translated to double quotes.

Example:

  COPY WFLTEST(FTPSITE="START %2 ON %3('%9')")
    TO NUCLEUS(PACK,HOSTNAME=BLUEGUM);TARGET=1

530.01 BLPack Load
Thu, March 5 2009

Disable REWIND of BLPack Tape. Set RowAllocated Bits in Disk File Header for a file from a BLPack Tape for correct FileLength calculation in Flex.

520.07 FamilySubstituton
Mon, November 19 2007

Use Family Substitution for DISK if No Family in FetchTapeHeaders.

520.06 DSONERROR
Tue, November 13 2007

A FetchForeignHeaders failed if there was a Directory but no File because DSONERROR was set and so Library/Maintenance terminated the Copy.

520.05 FetchForeignHeaders
Thu, November 8 2007

FetchForeignHeaders returns the File and the Directory when a Directory is specified making it consistent with the Flex Files command.

520.04 DUPLICATED
Fri, October 26 2007

Remove use of DUPLICATED attribute, deimplemented in 5.3. Suppress 'No Status Available' message when copying to Disk Farm.

520.03 DoIntercede
Wed, September 5 2007

To avoid a ForgetCheck Dump on MCP 5.2, a call is made by MAGUS to NO_KANGAROO_ABOVE_HERE. This had the side effect of disabling Software Interrupts, which were used to report the Copy status. CopyWrite now checks the EXCEPTIONEVENT periodically and reports the Copy status if it has Happened.

520.02 F_Proc
Thu, July 12 2007

Respect F_Proc Quit Requested.

520.01 Mount DATA
Wed, July 11 2007

No matter the FILEKIND, always try and mount a CD Image.

510.05 BDR
Mon, November 13 2006

Do not remove BackupFile in RemotePrintServer.

510.04 Archive FileSize
Tue, August 1 2006

Update the FileSize in MegaBytes Archive record attribute.

510.03 BLPack Area Corruption
Sun, November 6 2005

When an Area boundary occurred within a BLPack Data Record, the Write was split but the Data Pointer was not updated to the Area boundary, resulting in a section of the previous Area's data being written to the start of the next Area.

510.02 CONVERTHEADER
Mon, April 4 2005

Use the Magus ConvertDiskFileHeader to convert Version 2 and older Headers.

510.01 BLSUPPRESS
Wed, March 9 2005

If OPTIONS=NOSUMMARY is applied to a Copy from a BLPack Tape, any attribute warnings are suppressed.

500.17 BLPACKSELECTOR
Tue, February 22 2005

If the Library BLPACKSELECTOR with the entrypoint SELECTFILE is Label Equated to CopyWrite, it will be used to decide which files should be copied from a BLPack Tape.

500.16 BLPACK EOF
Thu, February 17 2005

CopyWrite ignores Incomplete Files, which may occur when the End of Tape is reached, but the last file has not been completely copied, and for other reasons unknown.

Silent running is selected by OPTIONS=NOSUMMARY, and when set both File Copied and File Not Copied messages are suppressed.

500.15 FAB VERSION
Fri, February 4 2005

File Attribute Block versions 4 and 6 are supported by CopyWrite.

If an unsupported version is encountered, the Copy is terminated unless OPTIONS=DEBUG is set, in which case an AX is required to continue.

500.14 EXTRACT
Wed, February 2 2005

The file information for a BLPack Headers Dump has been improved.

For the BLPack utilities, if <filename> ON TAPE is specified, the archive is opened with KIND=TAPE.

The BLPACK EXTRACT <archive name> FILE <file range> AS <filename> command has been implemented.

<archive name> ::= <file title> | <filename> ON TAPE
<file range> ::= <file#> | <file#> - <file#>

This command extracts the specified files from either an ALIGNED180 or a STREAM BLPack Archive and creates an ALIGNED180 Archive.

500.13 MEMORYSTATUS
Mon, January 24 2005

Reduces the amount of Save Core when copying files from a BLPack Tape.

If OPTIONS=DEBUG is set, the quantity of Save Core being used be CopyWrite when copying files from a BLPack Tape is displayed at the end of each file copied.

500.12 BLPACKSTATS
Fri, January 21 2005

A FileName with a name which contained a fullstop was not correctly extracted from the File Attribute Block.

A Job Summary giving selected statistics for the Copy is displayed at the completion of the Copy.

At the start of the Copy a check is made that the destination Family is online.

After a BLPack File has been copied, the Direct Buffer used for I/O is deallocated.

500.11 BLCRUNCH
Tue, January 11 2005

If the COMPRESSIONREQUESTED attribute is set on the <destination volume> when copying from a BLPack Volume, then the files copied are CRUNCHED whether or not the original file was CRUNCHED.

A COPY&VERIFY command from a BLPack volume calls a function which checks that the physical size of the file copied matches the original file described in the File Attribute Block (FAB).

A ?HI command issued to a COPY command from a BLPack volume reports information about the current file being processed.

500.10 LMDFOKF
Thu, December 2 2004

A LIBMAINTDIR which contained entries for files which were not copied caused a fault.

500.09 VLCREATIONDATE
Wed, July 14 2004

An ADD&BACKUP to a Disk Farm with a LIBMAINTDIR and LIBMAINTAPPEND=TOEND updated the Volume Library with the current date instead of retaining the Volume Library CreationDate.

500.08 BACKUPHOSTNAME
Tue, June 22 2004

A LIBMAINTDIRECTORY can be recreated from a Disk Farm using a COPY statement like this,

COPY *= FROM <volume name>(PACK,HOSTNAME=<hostname>,
SERIALNO=<serialno>)
TO NULL(CD,LIBMAINTDIR,SERIALNO=<serialno>,
SCRATCHPOOL=NODATATRANSFER,
FAMILYOWNER=<hostname>)

The FAMILYOWNER attribute may be used to specify the HostName which is stored into the recreated LIBMAINTDIRECTORY.

This use of FAMILYOWNER is incompatible with the &CATALOG option which uses the FAMILYOWNER as the Catalog FamilyName.

500.07 RELEASED
Tue, June 22 2004

If an ADD statement specifies LIBMAINTDIR or LIBMAINTAPPEND=TOEND then a LIBMAINTDIRECTORY file must be present.

A COPY statement with LIBMAINTDIR specified creates a new LIBMAINTDIRECTORY.

If LIBMAINTDIR is specified and a File is released using the COPY from NULL syntax, the Released Flag ([33:1] in LMDFStatX) is set for the File Entry.

If LIBMAINTDIR is specified and an ADD&COMPARE replaces some files, the corresponding entry in the LIBMAINTDIRECTORY is modified to match the new file.

If LIBMAINTAPPEND=TOEND is specified, the files added are entered into the LIBMAINTDIRECTORY.

A LIBMAINTDIRECTORY can be recreated from a Disk Farm using a COPY statement like this,

   COPY *= FROM <volume name>(PACK,HOSTNAME=<hostname>,
 	 SERIALNO=<serialno>)
   TO NULL(CD,LIBMAINTDIR,SERIALNO=<serialno>,
   SCRATCHPOOL=NODATATRANSFER);

If the <serialno> exists in the Volume Library and has a valid Creation Date, the LIBMAINTDIR title is constructed using the Volume attributes.

If a LIBMAINTDIRECTORY is recreated from a Disk Farm which has released files, the File Entry is marked as Released and the File Attributes are set from the Released File Information stored in the Disk Farm.

A LIBMAINTDIRECTORY can be analyzed using the File Analysis utility which comes with CopyWrite for NT.

500.06 RELEASEDMSG
Mon, June 14 2004

When Copying from CD to NULL display Released File information if it exists.

500.05 COPYAS
Wed, June 9 2004

Copying from a Disk Farm which has Released Files to a CD Image on the MCP System has been corrected.

A COPY AS from a Disk Farm to a CD Image on the MCP System has been implemented.

If a Released File is encountered when copying to a CD Image on an MCP System a message about the released file is displayed.

500.04 FAMILYNAMEISDISK
Fri, May 21 2004

Set the TaskValue to 1 if any error occurs when merging Disk Farms.

Avoid family Substitution when creating a LIBMAINTDIR.

Add the CatalogFamily as the FamilyOwner in a Volume Log Record.

Set the TCP/IP Bridge DialogCheckInterval to 1 minute, and the BlockedTimeOut to 5 minutes.

The TCP/IP Bridge now writes a message in segments which have a maximum size of ACTUALMAXRECSIZE bytes.

If an INSUFFICIENTBUFFERS condition is signalled when writing to a TCP/IP Subfile in the Bridge, a message is displayed and it waits for the OUTPUTEVENT for the Port to happen, and then continues writing the messages.

500.03 LOGVOLUMES
Tue, May 18 2004

After sending a TapeLabel Notice to Supervisor, CopyWrite Logs a Volume Directory Add Record to the System Sumlog.

If a Copy to NULL is performed, and LIBMAINTDIR is specified, a SERIALNO must be assigned to the <destination volume>. If the SERIALNO is found in the Volume Library, the LIBMAINTDIR is created using the Volume Name, SerialNo and Creation Date of the Volume Library entry. If not found, a message is displayed and the LIBMAINTDIR is created for a volume called NULL.

If a LIBMAINTDIR is being created by copying to NULL, then the Data for all files is copied from the <source volume>, and discarded, thus checking the integrity of the <source volume>. When copying from a <source volume> which is a Disk Farm at a Remote Host, such a Copy could cause significant network traffic, just to recreate a LIBMAINTDIR.

If the SCRATCHPOOL = NODATATRANSFER is specified on the <destination volume>, then only the Disk File Headers are transferred, and the Data is skipped.

500.02 HARDLINK
Thu, May 13 2004

If there is a mismatch between the Version of CopyWrite and the Version of ExtractArchive a warning message is displayed.

A COPY *= FROM NULL TO ...Disk Farm releases all files in the Disk Farm and deletes the Disk Farm directory from the NT File System.

A COPY <file list> FROM NULL TO ... Disk Farm replaces each selected file capsule with a Released Capsule, and the space is returned to the NT File System.

The COPY&GO between A-Series and between A-Series and Windows now waits for the Job or CodeFile to complete, before terminating. Any messages generated are displayed.

The capability to initiate a third party copy between Disk Farms on an NT system has been implemented.

The general syntax is,

COPY <file list> FROM <source>(PACK,HOSTNAME=<hostname>), <file list> FROM <source>(PACK,HOSTNAME=<hostname>) TO <destination>(PACK,HOSTNAME=<hostname>)

The <hostname> for the <source> and <destination> must be the same. This capability is used by MergeTape to merge Disk Farms.

The &CATALOG modifier may be used to add an Archive Reference.

The &BACKUP modifier may be used to add a Catalog Reference.

The LIBMAINTDIR may be used to create a LibMaintDir.

If the protocol version of the CopyWrites performing a file transfer between A-Series Hosts are incompatible, an AX is required to continue the Copy.

If a version mismatch occurs between an A-Series and an NT System, the Copy is terminated.

If a FAMILYOWNER of DISK is specified when doing a COPY&CATALOG, a family called DISK is assumed, and No Family Substitution occurs.

After a Volume is added to the Volume Library by CopyWrite it checks if a DUPLICATE FAMILY condition could occur, and if so it terminates the Copy and deletes the Volume.

An attempt to Copy a file which has been released from a Disk Farm displays information about the released file, and skips the file.

If the File CDIMAGEHARDLINK is Label Equated with a FAMILYNAME when creating a CD Image, a reference to the CD Image is created on that FAMILYNAME.

This is used by FAMILYMANAGER to allow CD Images to be located on families other than that specified by FLEX_CWIMAGE.

500.01 AUTOPRINT
Thu, February 19 2004

Adds support for remote printing to CopyWrite on NT.

A virtual server is defined like this,

    PS CONFIG CPNTA SERVER="REMOTEPRINTSERVER (
    DESTINATION='SITE',
    TYPE=CD,SCRIPT=PRINT,HOSTNAME=CPNTA,
    PATH=*ASERIESPRINT ON C) IN
    SL COPYWRITE"

Files printed to this Virtual Server are copied into a CD Image C:\ASERIESPRINT\<date>\<usercode>\<jobno>_<taskno>.mcp, and the VBScript called Print.vbs is executed. The script converts each file in the CD Image to a .txt file.

If the TYPE=WRAP is specified, a Wrapped container is created.

A site can create VBScripts to perform special processing of an Image or Wrapped Container. The Script is provided with a Selector Object, which gives access to the Files and their Headers in the Image, a Script Object which provides attributes which describe the local environment, and an Info Object which provides access to the Print Attributes in the Info Array of the Virtual Server.

470.94 FLEX_CWIMAGE
Wed, February 11 2004

When copying files from a CD Image, if the <source volume> is not resident and a SERIALNO is specified, CopyWrite uses the SERIALNO to find the <familyname> in the Volume Library, and then searches for an image called <source family>/<familyname>. This matches the FLEX FamilyManager naming conventions. The search which was previously done using the current path, is now done on the family specified by the FLEX_CWIMAGE Configuration Variable. This may be overridden by specifying the FAMILYOWNER as another FamilyName.

Example:
   Copy F from DEV(CD,SERIALNO="CI1234",LockedFile,HostName=LOCAL)
   Copy F from DEV(CD,SERIALNO="CI1234",LockedFile,HostName=LOCAL,
   FamilyOwner = DISK)

The search is done using the FamilyName specified without Family Substitution.

470.93 HDR ORIGIN
Tue, February 10 2004

If known, the OriginFamily is displayed by the HDR command.

470.92 ORIGINFAMILY
Mon, February 9 2004

If SilentRunning (Options=NOSUMMARY) is specified with a COPY&COMPARE, and the file being copied is not a better version than the resident file, the informative message is suppressed.

If the OriginFamily is available, it is included in the File Copied message.

470.91 LASTFILENO
Fri, January 30 2004

When copying files to a Disk Farm and creating a LIBMAINTDIR, the Last FileNo was correct in the LibMaintDir control record but not set in the Volume Record.

470.90 EXEAREASIZE
Tue, January 27 2004

A Block in a Self Extracting Archive is defined to be the Compiler AreaSize of 504 Sectors. The default BLOCKSIZE is the greater of 1 and the number of Blocks in an Area of *METALOGIC/COPYWRITE/ EXTRACTARCHIVE. A BLOCKSIZE of 1 limits the absolute size of an archive to 15000 Areas * a 504 Sector Block per Area, and would create an archive with a segmented header, which is not loadable during a ColdStart by SYSTEM/LOADER. The BLOCKSIZE attribute can be used to increase the number of Blocks Per Area to avoid these limitations. For example, a BLOCKSIZE of 100 will result in an archive with an AreaSize of 50400 Sectors (100 * 504 Sectors), giving an archive size of about 130GB.

For Example,
COPY *= TO EXE(CD,HOSTNAME=LOCAL,LOCKEDFILE,BLOCKSIZE = 5)

The BLOCKSIZE attribute has been added to the Package and Archive
Directives in a CopyWrite MakeFile.

{$Package BlockSize=5}

The MP attribute may now be set in the Package and Archive
Directives in a CopyWrite MakeFile.

{Package MP +PU +IDENTITY CopyWrite, BlockSize = 5}

This patch also corrects a problem introduced in 470.85 which made the Compare option inactive when doing a COPY&COMPARE to a remote host.

470.89 EXTENSIONS
Wed, January 21 2004

When the LIBMAINTJOLIET transform is used, FileKind CONTAINERDATA and WRAPPEDDATA files are given a .con extension, FileKind PROMBURNERDATA files are given a .mcp extension and all other FileKinds are given a .txt extension, provided that no other extension has been specified.

470.88 UNQUOTEDSTRING
Fri, January 16 2004

A USERCODE.Instruction in an External File List was not executed correctly because the Transform.NOTE attribute was enclosed in quotes.

470.87 MAKELOAD
Thu, January 15 2004

Implement the MakeLoad command to create a list of the target files in a Make file, suitable for use as an external file list in a Copy statement.

470.86 ITSADIRECTIVE
Wed, January 14 2004

Prevent ambiguity between [ as a Directive and [ as part of a COPY [FTP] statement in a MAKE File.

470.85 COPYFROMREMOTETOEXE
Fri, January 9 2004

Files may be copied from a remote Disk Farm to a Self Extracting Archive. An external file list, such as '@LISTNAME', which contains instructions may be specified.

470.84 TOBECONTINUED
Fri, January 9 2004

A Keyed Library/Maintenance CD in which a directory block was split on the null of a key entry was not handled correctly.

470.83 SIGORGF
Thu, December 11 2003

Support for Origin Family Lists on MCP 5.0.

470.82 NOLOGICALIO
Mon, December 1 2003

Files could not be reloaded from a CD Image with the error message

		FILE000.LASTRECORD NOT ENOUGH ROOM IN DISK FILE HEADER.

This has now been fixed.

470.81 TARGET
Thu, November 20 2003

A large WFL statement with about 17000 filenames resulted in some limits being exceeded.

470.80 LIBMAINTDIRFAMILY
Tue, November 18 2003

The source FamilyName is now appended to the FileTitle which is stored in a LIBMAINTDIR.

470.79 COPYLONGLISTF
Mon, November 17 2003

The WFL Statement passed to LMGUTS was corrupted when copying files from a 4.9 system to an earlier MCP, such as 4.6, which does not support the LMNEWF format and COPYLONGLISTF option.

If the TARGET attribute is label equated to a COPY statement, and it is not 0, then the COPY is assumed to be for CopyWrite, no matter what protocol has been specified in the WFL statement. This feature is intended for communication between other Metalogic software and CopyWrite.

470.78 NOTRUNCATE
Fri, November 14 2003

If a file with a long filename was copied as another filename, any file identifiers greater than 17 characters were truncated.

When a COPY&BACKUP of a long filename with greater than 12 levels was done, the file was copied but the Backup References were not updated.

470.77 SIGSKIPV
Thu, November 13 2003

If a file with a long filename, and hence a version 8 header, was copied to a system which did not have LONGFILENAMES set, the header was rejected, and the Copy terminated. CopyWrite now displays messages explaining the problem, and continues copying files.

470.76 VLUPDATE
Tue, October 28 2003

Implements the VLUPDATE <libmaintdir title> command in CopyWrite Utility. If a Volume is deleted from the Volume Library, and then added again, the FAMILY CREATION DATE is set to UNKNOWN. An attempt to load a file using a backup reference which refers to this volume will fail because the FAMILY CREATION DATE is used to build the title of the LIBMAINTDIR file. The LIBMAINTDIR file stores the name of the Disk Farm Host on which the volume resides. This command opens the LIBMAINTDIR file, and uses the BOTTIMESTAMP as the CREATION DATE to update the Volume Library entry.

470.75 COPYLONGLISTF
Mon, September 8 2003

On 4.9 the NEWWFL flag in LMGUTS is only set if LMNEWF and COPYLONGLISTF are set. COPYLONGLISTF is not used on MCP 4.8 and adds nothing on MCP 4.9. This change caused a Bounds Error in LMGUTS at 60250280.

470.74 ATTABLEGENTABLES
Wed, July 2 2003

AtTableGen table generation interface for CopyWrite.

470.73 UNWRAPNOKEY
Fri, June 13 2003

If there was no valid key for a file with a LICENSEKEY when copying from a Wrapped Container, the Copy was abandoned, instead of just the file being skipped.

470.72 DSED
Tue, June 10 2003

The Volume Information is also kept for a COPY&BACKUP to DISK which is DSED.

When a SERIALNO is specified on a COPY to a Disk Farm, the SERIALNO is used to create the Path as for a COPY&BACKUP and COPY&CATALOG.

470.71 KEEPVOLUME
Tue, June 10 2003

If a COPY&BACKUP copies some files to a DISK, then the Volume Information is kept, and if a LIBMAINTDIR is requested, only those files copied are stored.

470.70 SCRATCH
Wed, May 14 2003

When doing a COPY&BACKUP or COPY&CATALOG, if the Volume with the SERIALNO is already in the Volume Library, but is marked as SCRATCH, or has the FamilyName "S C R A T C H", CopyWrite will Volume Delete the Volume and use it for the Copy.

470.69 CHANGE LIBMAINTDIR
Mon, May 5 2003

The LIBMAINTDIR utility command has been added. Utility commands may be executed under CANDE by

U *METALOGIC/COPYWRITE <command>

The LIBMAINTDIR command syntax is,

LIBMAINTDIR <title> HOSTNAME
will display the HostName stored in LIBMAINTDIR given by the <title>.

LIBMAINTDIR <title> HOSTNAME <hostname>
will set the HostName in the LIBMAINTDIR given by <title> to the <hostname> specified.

The entrypoints LibMaintDirFileName, FindLibMaintDirHostName and ChangeLibMaintDirHostName are exported from CopyWrite.

470.68 LIBMAINTDIR
Fri, May 2 2003

A LIBMAINTDIRECTORY is created if the LIBMAINTDIR attribute is set and a SERIALNO is specified.

By default the file is called LIBMAINTDIR/<tapename>/<date>/<serial> under the Usercode of the Task performing the Copy, and it is stored on the DL LIBMAINTDIR Family.

The title may be changed by Label Equating FILE LIBMAINTDIR on the Copy Statement.

470.67 CARDLIST
Tue, April 22 2003

The CARDLIST command of CopyWrite Utility can be used to create an External File List from a Pseudo Reader Data Deck.

The syntax is,
CARDLIST <filetitle>
The INTNAME of the Input File is CARD.

470.66 FILELIST
Tue, April 22 2003

The FILELIST command of CopyWrite Utility can be used to create an External File List.

The syntax is,
FILELIST <filetitle> = <source>,<source>...
<source> ::= <title> | <title> <instructions>
<title> ::= <filetitle> | <filetitle> AS <filetitle>
<instructions> ::= [ <instruction list> ]

The External File List can be used in a local or remote COPY statement. For example,

COPY '@FRED' TO IMAGE(CD,HOSTNAME=LOCAL)

470.65 LONGFILENAME
Mon, March 10 2003

A COPY&BACKUP failed with a filename which had a long FileId, on a system which had SYSOPS LONGFILENAMES set.

470.64 DESTROYED
Thu, February 20 2003

When doing a COPY&BACKUP a Volume is marked as DESTROYED at the start of the Copy, and if the Copy is CompletedOK, the DESTROYED flag is cleared. On 4.8 the VOLUME DESTROYED statement does not work for Packs, see UCF # 94628242. If CopyWrite detects that the DESTROYED flag has not been set when it should have been set it issues a WARNING message.

470.63 FILENO
Thu, February 20 2003

Display the <file#> when copying from a CD Image to NULL.

Fixes a problem when recovering files from a CD Image with a large number of files.

470.62 CALLBITF
Tue, February 11 2003

On MCPs before 4.9, the Origin Family List was not provided by LMGUTS for NFT. To avoid this an MCP patch was developed which provided the Origin Family List if NFTFamDirF [39:1] was set. On 4.9 CALL_LIBMAINT was introduced and this is indicated by the CallBitF [39:1] being set. This conflict resulted in CopyWrite faulting on 4.9. NFS 77966442 was accepted as 'Implement ORIGIN for NFT Transfers', but it is not in the base release of 4.9. For the transition to 4.9, the NFTFamDirF bit is only set for MCPs before 4.9.

470.61 FIX TAPELABEL NOTICE FOR MERGETAPE IMAGES
Tue, February 4 2003

For image files created by Flex MERGETAPE, COPYWRITE was not supplying the full multi-level title of the image in the Tapelabel notice sent to Supervisor. This meant that the image familyname was not visible from a TP interrogation and has now been fixed.

470.60 FAMILYNAME
Mon, January 27 2003y called DISK.

This patch corrects a problem when copying files from a CD-ROM Image when the Copy is performed with a Family set to "." and there is no famil

470.59 METAMORPHTIMESTAMP
Mon, December 23 2002

When creating a Joliet hybrid CD Image, the file Recording Date and Time was being set to the current date and time, instead of the Creation Timestamp of the original file.

470.58 COMPARE
Tue, December 17 2002

Fix BLPack Compare when AreaSize = 1.

470.57 TASKSTRING
Mon, December 16 2002

Pass the TaskString Attribute through to the remote host.

470.56 BLHEADERS
Thu, December 5 2002

Flex Files <pattern> MT <unit> on a non Library/Maintenance tape calls CopyWrite to return the Disk File Headers.

BLPack Tapes have AUTOUNLOAD=OFF set by default. This can be changed in the <source volume> attributes of the COPY statement.

470.55 BLPACK TAPE MOUNT
Wed, December 4 2002

Wait for a BLPack Tape to be available or terminate after 60 seconds. The TAPEDIR process is terminated if it becomes SUSPENDED, and the OPEN of the BLPack Tape is delayed by the rewinding of the Tape after the MCP FETCHTAPEDIRECTORY has determined it is not a Library/ Maintenance Tape.

470.54 UNITISTAPE
Wed, December 4 2002

Check for all kinds of Tape.

470.53 FETCHFROMUNIT
Tue, December 3 2002

FetchImageHeaders tries to return a Tape Directory for a BLPack Tape if the TapeUnit specifies a non Library/Maintenance Tape Unit.

470.52 ADD&BACKUP CDROM
Tue, December 3 2002

On 4.8, WFL disallows ADD&BACKUP to a destination volume with a KIND = CDROM. A COPY&BACKUP is allowed. To allow an ADD&BACKUP, a synonym is provided for KIND = CDROM.

If the destination volume is KIND = DISK and DENSITY = SUPER, or any CDROM attribute is set, such as CDCOPIES = 1, CDLOADER or PACKETWRITE, then the destination volume is treated as though it were KIND = CDROM.

If the syntax for a COPY statement is rejected by CopyWrite, and is therefore considered to be a local WFL Copy request, the reason for the rejection is reported.

470.51 NFTBLPACK
Thu, November 28 2002

Support access to headers in BLPack containers.

470.50 BLPACK
Mon, November 25 2002

Implement copying of files from BLPack containers and tapes.

470.49 LICENSE
Tue, October 22 2002

Improve message from Status utility when CopyWrite is installed, but not linked to the current SL'ed MAGUS.

470.48 SCSIGEN
Tue, June 25 2002

Added SCSI <filename>,.. command to parse SCSI Command and Response Descriptions and generate Delphi Pascal classes for building the commands and interpreting the responses.

470.47 INVALID INDEX
Fri, June 7 2002

Fix an Invalid Index on NX4200.

470.46 LIBMAINTDIR
Thu, June 6 2002

CopyWrite failed to copy a file from a tape when LIBMAINTDIR was specified.

470.45 MP
Tue, June 4 2002

Implement {$MP <MP command>} for a target.

470.44 TAPELABELNOTICE
Mon, May 27 2002

The TapeLabelNotice sent after a COPY&CATALOG from CD-ROM Images now has a KIND of CDR, to distinguish between CD-ROM Images and CD-ROM volumes.
If OPTIONS=NOSUMMARY is set on the COPY statement, then general information messages are not displayed.

470.43 RECREATE NR
Fri, May 24 2002

In the case where a catalog block was present, but it was marked as Not Catalogued, CopyWrite would CATALOG ADD the file, and then update the backup references. However, if there were no resident entry, the CATALOG ADD failed. CopyWrite now checks if there is a resident entry, and if not, it recreates the non resident entry.

This case can be reproduced by Copy&Backup to Image. Copy A from the Image (without &Backup). Remove A. Copy&Catalog A from Image.

470.42 INCLUDE RQGEN/NEWTAPE
Tue, May 21 2002

Internal change.

470.41 RQGEN
Wed, April 17 2002

Added Build <filename>,.. command to parse request definitions and generate Algol and Delphi Pascal modules for packing and unpacking messages.

470.40 COPYWRITE MODULES
Thu, March 28 2002

Use the BIND += to bind the CopyWrite Modules.

470.39 MAKE
Thu, March 21 2002

The title of a Self Extracting Archive may be label equated using the volume name, in the same way as a CD-ROM Image.

For example, in WFL
T(FILE F(FILENAME=FRED));
COPY = TO F(CD,HOSTNAME=LOCAL,LOCKEDFILE)[T]
The SI_ODTCOMMANDS attribute in Flex returns the commands in Simple Install format and in ODT command format.

The MAKE command is implemented.
MAKE <filename> : <make options>
This command may be used with a MakeFile to create software and system images. See COPYWRITE/MAKEFILE/COLDSTART for an example.

The BURN command is implemented.
BURN <filename> : <burn options> This command calls the MCP to burn a CD-ROM Image.
Running METALOGIC/COPYWRITE without a parameter displays the syntax for these commands.
If the MULTIVOLUME attribute is set when creating a Self Extracting Archive, then any Self Extracting Archive which is extracted is executed. This avoids the need for a RUN %4 instruction which creates an infinite run loop if the archive is executed.

Prolog instructions are available for Self Extracting Archives. If the file PROLOG is label equated to the Copy statement which creates a Self Extracting Archive, then the NOTES file attribute should contain instructions, which are stored within the archive, and which are executed before the files are extracted from the archive.

Some additional instructions for Self Extracting Archives are available.

%9 Returns the HOSTNAME
%10 Returns the GROUPNAME
REQUIRES <filename> suspends execution until the <filename> is available, or the waiting entry is OKed or DSed.

470.38 CONTINUATION
Mon, February 18 2002

The record of an external file may be continued across multiple logical records by appending the continuation character (\) to the end of a line.

For example,
A, \
B
is the same as writing
A,B

The syntax for a record of an external file is given below,

<record> ::= <filename> <as filename> <text>
<as filename> ::= <empty> | , <as filename>
<text> ::= <empty> | [ <ebcdic characters> ]
<comment> ::= % <ebcdic characters>
<continuation character> ::= \

Instructions may now be applied to the files in a self extracting archive by using an external file and setting the text to the instructions to be associated with the file.

For example, the external file E, A,B [TD\WM]

Copy "@E" to Fred(Cd,HostName=Local,LockedFile); Run $Fred

This will extract the file called B, and issue the ODT instructions TD and then WM.

The command separator is a back slash. Note that if the last character on a line is a backslash, then it will be interpreted by the file loader as a continuation record.

For example,
A [TD/ /WM]
The first backslash is the command delimiter, the second is the continuation character.

470.37 COPY "@<filename>"
Fri, February 15 2002

Due to some changes in 4.8 WFLSUPPORT, the way in which CopyWrite is invoked has changed.
A COPY statement which specifies a HOSTNAME=LOCAL is always passed to CopyWrite. If the HOSTNAME is not specified as LOCAL, then the request is a remote transfer, which may or may not be handled by CopyWrite, depending on the COPYWRITEPROTOCOL configuration.

The COPY "@<filename>" syntax implements a feature whereby an external file contains the names of the files to be copied. The "@<filename>" can be part of a list of filenames or other external references, as in COPY A/=,"@B"...

The file which contains the list of filenames can be any filekind, and each record contains the name of a file to be copied, or an external reference.

A file can be copied AS another filename by following the filename by a comma and the as filename. A comment is started with a % and blank lines are ignored.
Neither a family name nor a hostname may be specified.

For example,

A % Copy the file A
A,B % Copy the file A as B
A/"=" % Copy the directory A/=
A/"=",B/"=" % Copy the directory A/= as B/=
'@FRED' % Copy the files listed in FRED
"@FRED" % Copy the files listed in FRED

Any local copy request, indicated by a HOSTNAME=LOCAL, which is not handled by CopyWrite is now passed to LIBRARY/MAINTENANCE. This allows the "@<filename>" syntax to be used for Disk, Tape and CD copies not normally handled by CopyWrite.

For example,

COPY "@filename" to fred(tape,hostname=local)

470.36 REMOTE CD IMAGE
Thu, January 17 2002

This patch corrects an Assert Dump when copying a file from a CD Image at a remote host.

470.35 COPY FILE NUMBER
Thu, January 17 2002

A file may be copied by specifying a file number. The file number is specified by a # followed by an integer, and must be enclosed in single quotes.

For example, COPY '#1' FROM TEST(CD,HOSTNAME=LOCAL,LOCKEDFILE)

This syntax may be used for copying files from TAPE or CD, as well as CD Images and Wrapped Containers.

470.34 FAMILYLIST
Mon, January 7 2002

FetchImageDirectory loads an origin family list if present in a Tape Directory.

470.33 DUMPDISKFILEHEADER
Tue, December 18 2001

Exported some diagnostic functions from COMMON.

470.32 LONG LIST
Fri, January 4 2002

The NFTFamDirF bit is set to request Origin Family Names when creating CD Images. This requires an MCP patch (NFS 77966442).

CopyWrite supports the Long List WFL statement format internally, to allow selection of options which are not normally available to NFT.

The &SKIPEXCLUSIVE option is now set in FetchForeignHeaders, which is used by Flex when scanning files at a foreign host. Since files which are opened exclusive are skipped, those files are never able to be selected.

470.31 RUNSCRIPT
Tue, December 18 2001

Implement the RunScript entrypoint.

470.30 UNQUOTEDIOHSTRING
Wed, December 12 2001

Remove quotes from IOHSTRING in IPC Virtual File.

470.29 IPC VIRTUAL
Mon, December 10 2001

Check for a bad archive on a family before attempting to create a new archive. Improve message if unable to create an archive.

Improve message if the CopyWrite Environment cannot be installed, or access is denied because MP SERVICE COPYWRITE has not been done.

Implement FetchForeignHeaders for use by Flex AT <hostname> command.

Implement IPC Virtual File for accessing programs on Windows NT.

Includes a mechanism for WFL to do I/O using the IOHSTRING attribute.

Implement configuration variables for modifying timeouts.

 COPYWRITE_MAXREADERWAIT - This is the maximum time in seconds that   
                           the destination volume host will wait for  
                           data to be returned from the remote source 
                           volume host. This includes the time taken  
                           to mount the source volume at the remote   
                           source volume host.

					
 COPYWRITE_MAXWRITERWAIT - This is the maximum time in seconds that   
                           the source volume host will wait for the     
                           data to be written to the remote destination 
                           volume host. This includes the time taken    
                           to mount the destination volume.

					
 COPYWRITE_MAXACKWAIT    - This is the maximum time in seconds that     
                           the source volume host will wait for the     
                           data to be acknowledged by the remote        
                           destination volume host.
	

The COPYWRITE_MAXTAPEDATAACKWAIT has been deimplemented.

Prevent DUP FILE with COPY&COMPARE by rejecting System Files.

470.28 RESETHIDEJOLIETFROMMCP
Thu, November 29 2001

Change the previous change so that if a file called PLE_17681630 is Label Equated, the CD_HideJOLIETFromMCPF option is reset. Therefore the default behaviour of CopyWrite is to hide the JOLIET partition from the MCP. No version with the previous patch was distributed.

470.27 HIDEJOLIETFROMMCP
Wed, November 28 2001

If a file called PLE_17681630 is Label Equated, the CD_HideJOLIETFromMCPF option is set when generating a hybrid CD-ROM Image. This option appends a 47"21" byte to the JOLIET Escape Sequences in the Secondary Volume Descriptor. The MCP does not recognize such an Escape Sequence as JOLIET, but it does not prevent Windows 2000/NT from recognizing the Volume. This option avoids a problem caused by PLE 17681630, in which a volume was recognized by the MCP as both Library/Maintenance and JOLIET.

470.26 CONVERTHEADER
Wed, November 7 2001

Fixes a problem where a COPY AS failed when the source files had Level 6 Headers. Headers are converted to the current MCP Header Level.

470.25 SERIALNO
Thu, November 1 2001

Implement the MAGUS configuration variable COPYWRITE_MAXTAPEDATAACKWAIT to allow the timeout for waiting for a Tape to be mounted, or a reel switch, to be specified.

If a SERIALNO is specified in the <destination volume> attribute list, it is stored in the CD Image, and is used by 4.8 and later MCPs.

CopyWrite delinks from Magus after retrieving configuration variables.

470.24 NOT RESIDENT
Date: Wed, October 24 2001

Improve the message displayed when a COPY&CATALOG cannot find the generation being copied, and a resident generation exists.

470.23 CATALOG ADD
Date: Thu, October 11 2001

When doing a COPY&BACKUP to a CD Image and the file being backed up was not Catalogued, CopyWrite could not alter the backup references. Now, if a file being backed up is not Catalogued, CopyWrite will CATALOG ADD the file.

470.22 REMOTE CATALOG
Date: Wed, October 10 2001

Implements COPY&CATALOG from a CD at a remote host to NULL or a CD Image at the local host, updating the backup references on the local host.

For example,

COPY&CATALOG[FTAM]*=FROM TEST(CD,HOSTNAME=RED,SERIALNO="123456")               
TO NULL(CD,FAMILYOWNER=TESTDATA)

470.21 OPTIONS
Date: Mon, October 8 2001

A new configuration variable called COPYWRITE_OPTIONS may be defined in the MAGUS configuration file. The variable contains a comma separated list of option names.

COPYWRITE_OPTIONS=<option name>,<option name>... These option names are defined,

 TELLUSWHY  - If CopyWrite rejects a WFL Copy statement and this              
                      option is set, the reason is displayed.                         
 IGNOREDSS  - If CopyWrite rejects a WFL Copy statement and this              
                       option is set, the Copy is abandoned. If not set,               
                       the statement is passed to FILECOPIER.
The options may be interrogated or changed using the OPTIONS command of *METALOGIC/COPYWRITE utility.

470.20 EXCLUSIVE
Date: Thu, September 13 2001

Although a file which is open EXCLUSIVE can be replaced or removed, a COPY&COMPARE considers it a better version than the file being copied, and does not replace it.

470.19 NO CD KIND 4.8
Date: Thu, September 13 2001

On 4.8 Field Test release, a COPY statement to a remote HOSTNAME with a KIND=CD is disallowed by WFL. This syntax is used by CopyWrite for copying to and from CD images and self extracting archives. To avoid this problem, the attribute pair KIND=DISK,DENSITY=SUPER is now treated as a synonym for KIND=CD. For example, COPY TEST/= TO FRED(DISK,DENSITY=SUPER,HOSTNAME=LOCAL) creates a CD image called FRED

470.18 LOCKEDFILE
Date: Wed, September 12 2001

If a COPY&COMPARE encountered a LOCKEDFILE, a DUP FILE occurred and the OF or DS terminated the copy. Now, a LOCKEDFILE is considered a better version than the file being copied, and it is skipped and the copy continues.

If no files were copied in a COPY&COMPARE, the copy task was not shut down immediately. This has been fixed.

An attempt to COPY&CATALOG to NULL failed for a non-resident file which had archive references but no catalog references. The catalog references are now created in this case.

470.17 SEARCH OUTPUT
Date: Wed, August 1 2001

A COPY <file list> TO SEARCH(CD,HOSTNAME=LOCAL,SCRATCHPOOL=SEARCH); TASKSTRING="Find UnCased .target.:File F", created the disk file F containing the search results with unprintable characters after the text.

470.04 ANYUSER
Date: Thu, September 13 2001

GetLocalAlias in COPYWRITE/COMMON recognizes a username of *ANYUSER

470.02 ANYUSER
Date: Thu, September 13 2001

COPYWRITE/BRIDGE now checks for a *ANYUSER/<IPAddress>, *ANYUSER/<hostname> and *ANYUSER/<domainname> entry in the UserDataFile when a remote user attempts to connect

470.01 REMOVE TIME(7)
Date: Mon, July 30 2001

Remove Time(7) definitions from ZIP, as they are now defined in COPYWRITE/COMMON/INTERFACE