PKZIP Version 2.1 For VM

Patch Notes for Level 8


These notes provide information on known defects in PKZIP Version 2.1/8 for VM. The PTF's listed below should be included in Version 2.1 Level 8 as required.

Click on the relevant summary heading to jump to the patch.

Alternatively, a text file version of the patch can be downloaded directly from this web site. Click on the download link underneath the patch heading.

Last Updated: April 17th, 2002


SUMMARY OF PATCHES:

P9709-L08-001

When multiple VM machines executing PKZIP use the same Shared File System workarea, a file name conflict can occur.

PKZIP assumes that the work locations (which are the file mode used for the archive and the value specified on the TEMPLOCation parameter) will be unique for each virtual machine running PKZIP. Where these areas are shared with other virtual machines (as is possible using SFS), concurrent PKZIP processes can use the same file name with unpredictable results.

P9709-L08-002

Having applied the previous fix, unexpected errors on the temporary archive files (file name ZIPnnnnn) are noted during concurrent Zip processes.

For example: ZIP841E Unexpected FSERASE error, 31 when processing file

The previous fix (001) used the Time of Day to ensure that concurrent Zip processes used different file names. In some circumstances, this was not sufficient. This fix will ensure that the temporary file does not exist. In this way, concurrent processes can not use the same file name.

P9709-L08-003

Displaying detailed information using the DISPLAY DETAIL option of the parameter on PKZIP for VM 2.1/8, for archives produced by PKZIP for MVS 2.2 (or later), can fail with the message ZIP863E and/or produce results which include invalid information for the some of the attributes stored by PKZIP for MVS 2.2 (or later). This fix corrects the failure and ensures that most of the attributes are correctly reported.

P9709-L08-004

When extracting files from an archive created by PKZIP for MVS 2.2 or later, using the (default) attributes in the archive, PKUNZIP can fail in a number of ways, including going into a loop after displaying the message:

ZIP886W Zero length record(s) found in …

and not extracting the file correctly after displaying the message:

ZIP841E Unexpected FSOPEN error, 11, when processing …

These problems are a result of VM not correctly interpreting the file attributes stored by PKZIP for MVS. These problems can be circumventing by specifying the OUTLRECL and OUTRECFM parameters so that PKZIP for VM does not attempt to use the values stored in the archive.

P9806-L08-005

When using TEXTUPD to apply fixes to this level of PKZIP for VM, the utility indicates that it is at level 7, not level 8.

This patch updates the message to indicate that the TEXTUPD utility is at the same level as PKZIP for VM.

P9806-L08-006

The manual is not clear about the use of the various NAME* Conversion routines that are available to convert names from and to the ZIP archive format. This patch provides a brief introduction to these routines that should clarify the material presented in the manual.

P9901-L08-007

When compressing a SFS directory that is also being used as the location for the ZIP archive, the PKZIP process will select the ZIP archive for compression.

For example, assume that the directory T4POOL:USER.DIR1 was accessed as the E minidisk and already contained an archive called DIR1 ZIP. In this case the following command would select all the files in the DIR1 directory structure including the 'old' DIR1 ZIP and compress these into the new DIR1 ZIP.

PKZIP DIR1 ZIP E * * T4POOL:USER.DIR1 ( RECURSE UPDATE

PKZIP for VM includes code to prevent the selection of the existing archive. The existing code compares the file name, file type and file mode of the specified archive, with the file(s) selected. When a match occurs the file selected will not be processed. However, in the case described above, the existing ZIP archive is being selected with a directory and not a file mode, so it will not match the name specified as the archive on the ZIP command. It is not possible to specify a directory as the location for the ZIP archive, so this example will always result in the selection of the archive.

This patch changes the processing so that only the file name and file type are compared when checking whether or not the file selected is an archive.

P9906-L08-008

This documentation patch describes how to update PKZIP to provide support for the euro.

To support the euro symbol, EBCDIC code pages on the mainframe have been changed so that the '' currency symbol (x'9F') would display the euro correctly. So the x'9F' will look like a euro if the display is using one of the code pages that supports it (e.g. 'US/Canada (euro)' page 1140) or it will look like the currency symbol using a non euro supporting page.

P9906-L008-009

This is a compatibility patch. In PKZIP for MVS 2.5 and later, the format of the Volume attributes retained in the archive will be changed. This patch ensures that PKZIP for VM will correctly display both the new format and the current format volume attributes.

P9906-L008-010

When the following three conditions are met during the compression of a file, the compressed file will fail the CRC check when it is TESTed or extracted:

P0103-L008-011

When created on another platform, it is possible for a ZIP archive to indicate that the Local file information block will not contain information about the file in the ZIP archive (this information should be placed in a data descriptor after the file in the archive). However, the Local file information block is verified by ZIP processing - if this information is missing, PKUNZIP will report the following problem:

ZIP605W Inconsistent local header for file …

This message may be followed by other messages which indicate that there is a problem with the data in the archive, for example

ZIP720E Invalid IPP table found in file.

This patch ensures that PKUNZIP will detect whether or not the Local file information block contains file information and so perform the appropriate checking.

P0105-L008-012

This patch corrects a problem processing empty files and provides documentation for the maintenance messages. 

P0204-L008-013

This patch corrects a problem processing variable length archives.

P0205-L008-014

This patch corrects a problem when a command does not complete successfully.

After an unsuccessful command, PKZIP and PKUNZIP may not completely close the input archive. In this circumstance, CMS will normally complete the close of the archive. However if the PKZIP or PKUNZIP command has been issued in a way that means CMS does not recognise the 'end of command processing', then the input archive will remain open. Subsequent commands issued against the archive will fail for this reason, for example, a subsequent PKUNZIP command will result in the following message:

The file identified will be the ZIP archive.

PKZIP and PKUNZIP processing is changed by this patch to close open archives, even in error situations. As a result of this patch, it is possible that additional messages may result, when the close does not complete correctly because of other errors. These additional close messages will only be seen when there is a preceding error in the processing.


PATCHES:

P9709--L08-001

Click here to download this patch in a text file

Error Description

When multiple VM machines executing PKZIP use the same Shared File System workarea, a file name conflict can occur.

PKZIP assumes that the work locations (which are the file mode used for the archive and the value specified on the TEMPLOCation parameter) will be unique for each virtual machine running PKZIP. Where these areas are shared with other virtual machines (as is possible using SFS), concurrent PKZIP processes can use the same file name with unpredictable results.

Corrective Action

For users with level 8, the following patch should be applied using the Maintenance Instructions in the Reference Manual. Once the patch has been applied, the PKZIP MODULE must be rebuilt.

* Fix for duplicated file names
* Note that the '*' should be in column 1
* The '*' indicates a comment
UPDATE TEMPFILE TMPCREAT
UPDATE TEMPFILE TMPCREAT
VER 000001C4 9240B00C
REP 000001C4 47F0C5C2
VER 000005C2 00000000
REP 000005C2 5870C3F8
VER 000005C6 0000
REP 000005C6 1277
VER 000005C8 00000000
REP 000005C8 4770C5E2
VER 000005CC 00000000
REP 000005CC B205D0A8
VER 000005D0 0000
REP 000005D0 1777
VER 000005D2 00000000
REP 000005D2 BF7FD0AA
VER 000005D6 00000000
REP 000005D6 89700007
VER 000005DA 00000000
REP 000005DA 88700011
VER 000005DE 00000000
REP 000005DE 5070C3F8
VER 000005E2 00000000
REP 000005E2 9240B00C
VER 000005E6 00000000
REP 000005E6 47F0C1C8
ENDUPD

Issued:

September 1997

Modules Affected

PKZIP

Note

This fix works by altering the name used for the work files, based on the current time.

This fix does not guarantee that overlap in file names will never occur. Concurrent PKZIP processing that starts within 1/100 of a second may still obtain a duplicate name - in addition names may be shared with processing that starts approximately 30 minutes later. However in normal operation, the likelihood of duplicated names is very small.

This fix should only be applied where the situation described above is a possibility; i.e. several PKZIP processes use the same SFS workarea at the same time. If this is not the situation, then this fix should not be applied. If this is the situation, then the following fix (002) should also be applied.

Summary of application instructions

Use the Typical Application Instructions described at the beginning of this page to apply this patch. Note that the TEMPFILE TEXT file is updated and the PKZIP module must be rebuilt.

To apply this patch, read the Typical Application Instructions. Note that the TEMPFILE TEXT file is updated and the PKZIP module must be rebuilt.


P9709--L08-002

Click here to download this patch in a text file

Error Description

Having applied the previous fix, unexpected errors on the temporary archive files (file name ZIPnnnnn) are noted during concurrent Zip processes.

For example: ZIP841E Unexpected FSERASE error, 31 when processing file

The previous fix (001) used the Time of Day to ensure that concurrent Zip processes used different file names. In some circumstnaces, this was not sufficient. This fix will ensure that the temporary file does not exist. In this way, concurrent processes can not use the same file name.

Corrective Action

For users with level 8, the following patch should be applied using the Maintenance instructions in the Reference manual.

* Fix for archive/temporary file errors in shared SFS
* Note that the ‘*’ should be in column 1
* The ‘*’ indicates a comment
UPDATE TEMPFILE TMPCREAT
VER 00000496 92E71027
REP 00000496 92D51027
VER 000004AA 4780C4F8
REP 000004AA 47F0C5EA
VER 000005EA 00000000
REP 000005EA 4780C4F8
VER 000005EE 00000000
REP 000005EE 49F0C5FA
VER 000005F2 00000000
REP 000005F2 4780C3A6
VER 000005F6 00000000
REP 000005F6 47F0C4AE
VER 000005FA 0000
REP 000005FA 0023
ENDUPD

Issued

September 1997

Modules Affected

PKZIP

Note

This fix works by changing the name used for the work files, when the temporary name defined has already been used. The name is incremented until an unused name has been found.

This fix should only be applied where the situation described above is a possibility, i.e. several PKZIP processes use the same SFS workarea at the same time. If this is not the situation, then this fix should not be applied. If this is the situation, then the previous fix (001) should also be applied.

Summary of application instructions

To apply this patch, read the Typical Application Instructions. Note that the TEMPFILE TEXT file is updated and the PKZIP module must be rebuilt.

Important Note

With this fix applied, PKZIP will never ‘reuse’ a temporary file, if a file of the same name already exists.

If an execution of PKZIP fails in some way, the temporary files may not be deleted. In this case, the instructions given in the reference manual in the section “Recovering from an unexpected termination of PKZIP” should be followed. However, be careful when removing the work files to ensure that these are not in use by a separate PKZIP process.

It may be advisable to schedule a deletion of all ZIP work files at a time when no PKZIP processing is using the shared SFS area.

 

P9709--L08-003

Click here to download this patch in a text file

Error Description

Displaying detailed information using the DISPLAY DETAIL option of the parameter on PKZIP for VM 2.1/8, for archives produced by PKZIP for MVS 2.2 (or later), can fail with the message ZIP863E and/or produce results which include invalid information for the some of the attributes stored by PKZIP for MVS 2.2 (or later). This fix corrects the failure and ensures that most of the attributes are correctly reported.

Corrective Action

For users with level 8, the following patch should be applied using the Maintenance instructions in the Reference manual.

* Fix for attribute compatibility with PKZIP for MVS 2.2
* Note that the ‘*’ should be in column 1
* The ‘*’ indicates a comment
UPDATE LISTZIP PLNGFATT
VER 000003A4 C8C5E7D3
VER 000003A8 00000082
REP 000003A4 C8C5E7C1
REP 000003A8 0000003E
ENDUPD
UPDATE LISTZIP PFDTHEXA
VER 000000B2 5AA0C158
VER 000000DA 00000000
REP 000000B2 47F0C0DA
REP 000000DA 5AA0C158
REP 000000DE 41880001
REP 000000E2 47F0C0B6
ENDUPD
UPDATE LISTZIP PFDTHEXL
VER 000000B8 5AA0C160
VER 000000E2 00000000
REP 000000B8 47F0C0E2
REP 000000E2 5AA0C160
REP 000000E6 41880001
REP 000000EA 47F0C0BC
ENDUPD

Issued

October 1997

Modules Affected

PKZIP and PKUNZIP

Note

This fix does not enable PKZIP for VM to display all the MVS specific attributes stored by PKZIP for MVS 2.2. For example, a file with record format U will indicate that it is both record format Fixed and Variable.

Summary of application instructions

To apply this patch, read the Typical Application Instructions. Note that the LISTFILE TEXT file is updated and both the PKZIP and PKUNZIP modules must be rebuilt.

 

P9709--L08-004

Click here to download this patch in a text file

Error Description

When extracting files from an archive created by PKZIP for MVS 2.2 or later, using the (default) attributes in the archive, PKUNZIP can fail in a number of ways, including going into a loop after displaying the message:

ZIP886W Zero length record(s) found in …

and not extracting the file correctly after displaying the message:

ZIP841E Unexpected FSOPEN error, 11, when processing …

These problems are a result of VM not correctly interpreting the file attributes stored by PKZIP for MVS.

These problems can be circumvented by specifying the OUTLRECL and OUTRECFM parameters so that PKZIP for VM does not attempt to use the values stored in the archive.

Corrective Action

For users with level 8, the following patch should be applied using the Maintenance instructions in the Reference manual.

* Fix for attribute compatibility with PKZIP for MVS 2.2
* Note that the ‘*’ should be in column 1
* The ‘*’ indicates a comment
UPDATE ZFHWSF00 ZFHXOPEN
VER 000004CA 9540B1C0
REP 000004CA 9140B1C0
VER 000004CE 4770C4D6
REP 000004CE 4710C4DA
VER 000004D2 92E5B1C0
REP 000004D2 92C6B1C0
VER 000004D6 9580B1C0
REP 000004D6 47F0C4E2
VER 000004DA 4770C4E2
REP 000004DA 92E5B1C0
VER 000004DE 92C6B1C0
REP 000004DE 47F0C4E2
ENDUPD
UPDATE ZFHWCM00 ZFHWOPEN
VER 000004AE 9540B1C0
REP 000004AE 9140B1C0
VER 000004B2 4770C4BA
REP 000004B2 4710C4BE
VER 000004B6 92E5B1C0
REP 000004B6 92C6B1C0
VER 000004BA 9580B1C0
REP 000004BA 47F0C4C6
VER 000004BE 4770C4C6
REP 000004BE 92E5B1C0
VER 000004C2 92C6B1C0
REP 000004C2 47F0C4C6
ENDUPD
UPDATE ZFSUVM00 FILLOCB
VER 00000286 47F0C2B4
REP 00000286 47F0C422
VER 00000290 9580D180
REP 00000290 9140D180
VER 00000294 4780C29E
REP 00000294 47E0C29E
VER 00000422 00000000
REP 00000422 4810D17C
VER 00000426 0000
REP 00000426 1211
VER 00000428 00000000
REP 00000428 4770C2B4
VER 0000042C 00000000
REP 0000042C 47F0C28A
ENDUPD

Issued

October 1997

Modules Affected

PKUNZIP

Note

This fix will enable PKZIP for VM to interpret the PKZIP for MVS stored record format as either fixed or variable, and will also extract the record length from the archive. Note that if this record length is 0 (as is common for example, with record format U files), PKZIP for VM will use the default record length (as documented in the Reference Manual).

Summary of application instructions

To apply this patch, read the Typical Application Instructions. Note that the ZFHWSF00 TEXT, ZFHWCM00 TEXT and ZFSUVM00 TEXT files are updated and the PKZIPUNZIP module must be rebuilt.

 

P9806-L08-005

Click here to download this patch in a text file

Error Description

When using TEXTUPD to apply fixes to this level of PKZIP for VM, the utility indicates that it is at level 7, not level 8.

This patch updates the message to indicate that the TEXTUPD utility is at the same level as PKZIP for VM.

Corrective Action

For users with level 8, the following patch should be applied using the Maintenance instructions in the Reference manual.

* Fix for TEXTUPD message
* Note that the '*' should be in column 1
* The '*' indicates a comment
UPDATE TEXTUPD TEXTUPD
VER 00000E99 859340F7
REP 00000E99 859340F8
ENDUPD

Issued

June 1998

Modules Affected

TEXTUPD

Summary of application instructions

To apply this patch, read the Typical Application Instructions. Note that the TEMPFILE TEXT file is updated and the TEXTUPD module must be rebuilt.

 

P9806-L08-006

Name Conversion

The manual is not clear about the use of the various NAME* Conversion routines that are available to convert names from and to the ZIP archive format. The following provides a brief introduction to these routines that should clarify the material presented in the manual.

The typical naming standards used for files in the ZIP archive and for CMS files are significantly different, with no universally acceptable conversion approach being possible.

Rather than attempt to prescribe a conversion standard, PKZIP for VM:

  • Retains the original CMS name in the archive, along with the ZIP archive file name. The CMS name is stored in a special VM only attribute and is not used on any other platform (though some platforms may be able to display it). To see both the CMS name and the ZIP archive file name, view the 'details' of an archive e.g.

    PKUNZIP TEST ZIP A ( VIEW DISPLAY DETAILS.

    PKZIP for VM can use the CMS name stored in the archive in the same way as it would use the ZIP archive file name.

  • Includes a number of 'exit' points at which user written Name conversion routines may be used. These routines are written in Rexx. PKZIP for VM parameters associated with each 'exit' points, tell PKZIP for VM which user written routines to use. These routines are invoked by PKZIP for VM, which supplies the input parameters and processes the returned name. Defined name 'exit' points are:

    • NAMECREATE - used by PKZIP processing when converting a CMS name to the ZIP archive file name. The CMS name will still be retained in the archive. This routine specifies the name that will be 'seen' on other platforms.

    • NAMEEXTRACT - used by PKUNZIP processing when converting a ZIP archive file name to a CMS file name to be used on the VM platform.

    • NAMETRANSLATE - used by PKUNZIP processing when converting a CMS file name (found in the archive). This routine will typically only be used when processing archives created at other VM sites.

The fact that there are two file names associated with a file in a ZIP archive can be hidden from users by the setting of the DISPLAY parameter. For example, if the Configuration file has "DISPLAY VMIDS", then the user would typically see the CMS file name when viewing the archive and may be unaware that there is an additional name that would be used if the archive was shipped to another platform.

To make the creation of these exits easier, the product includes a number of sample Rexx routines which each perform name conversion in may be used in specific environments.

For further information on this topic, read the Name Processing Appendix of the User Guide.

 

P9901-L08-007

Click here to download this patch in a text file

Error Description

When compressing a SFS directory that is also being used as the location for the ZIP archive, the PKZIP process will select the ZIP archive for compression.

For example, assume that the directory T4POOL:USER.DIR1 was accessed as the E minidisk and already contained an archive called DIR1 ZIP. In this case the following command would select all the files in the DIR1 directory structure including the 'old' DIR1 ZIP and compress these into the new DIR1 ZIP.

PKZIP DIR1 ZIP E * * T4POOL:USER.DIR1 ( RECURSE UPDATE

PKZIP for VM includes code to prevent the selection of the existing archive. The existing code compares the file name, file type and file mode of the specified archive, with the file(s) selected. When a match occurs the file selected will not be processed. However, in the case described above, the existing ZIP archive is being selected with a directory and not a file mode, so it will not match the name specified as the archive on the ZIP command. It is not possible to specify a directory as the location for the ZIP archive, so this example will always result in the selection of the archive.

This patch changes the processing so that only the file name and file type are compared when checking whether or not the file selected is an archive.

Corrective Action

For users with level 8, the following patch should be applied using the Maintenance instructions in the Reference manual.

* Fix for Archive file selection
* Note that the '*' should be in column 1
* The '*' indicates a comment
UPDATE ZFSZVM00 CHKZIPFL
VER 0000013C 4770C16C
REP 0000013C 47F0C166
ENDUPD

Issued

January 1999

Modules Affected

PKZIP

Summary of application instructions

To apply this patch, read the Typical Application Instructions. Note that the ZFSZVM00 TEXT file is updated and the PKZIP module must be rebuilt.

Note

With this patch applied, any file that has the same file name and file type as specified for the ZIP archive will be ignored, regardless of the directory or minidisk that the file is selected from. To ensure that this does not unexpectedly miss files that should be included, it is recommended that users use a different file name and/or file type for ZIP archives, to that used by any existing files.


P9906-L08-008

Error Description

This documentation patch describes how to update PKZIP to provide support for the euro.
To support the euro symbol, EBCDIC code pages on the mainframe have been changed so that the '' currency symbol (x'9F') would display the euro correctly. So the x'9F' will look like a euro if the display is using one of the code pages that supports it (e.g. 'US/Canada (euro)' page 1140) or it will look like the currency symbol using a non euro supporting page.
On other platforms (notably the PC) new code pages have been created with the euro character using a number of code points including x'80', X'88' and X'A1' (depending on the code page).
As the character to be used for the euro depends on the target platform and the code page that is in use on that platform, it is not possible to provide a generic translation table that supports the euro. However, in most cases for PC based files, the euro will be processed on a system that uses x'80' as the code point for the euro symbol.
To provide support for this conversion, PKZIP translation tables must be updated. As a sample, the translation tables supplied below could be used in place of the USASCII and UKASCII tables supplied with PKZIP for VM to provide support for the euro. Instructions for using the source given below to create new tables are given in the User Guide.
Note: The euro symbol is '€' (which will display as a 'box' if your system does not support the euro). As a picture, the euro looks like the following:
Euro Symbol

New translation Tables

System: PKZIP/370
Module name: UKASCIIE.ASM
Version: #VMVER/#LEVEL
Author: P. Strange
Copyright: Targetfour Ltd, Imperial House, Oaklands Park,
Fishponds Road, Wokingham, Berkshire,
England. RG41 2FD
Description:
This module contains translation tables that may be used when processing data containing the euro.
The euro is mapped to x'9F' (EBCDIC) and x'80' (ASCII).
This is very similar to the UKASCII table, except for the translation of the following characters:
EBCDIC: x'68' and x'9F'
ASCII: x'80' and x'CF'

This table has been prepared using the following pages:
Host: 1146
PC: 850

The first 256 bytes are used when mapping EBCDIC to ASCII.

UKASCIIE CSECT
DC     XL1'00',XL1'01',XL1'02',XL1'03'     /*00-0F*/
DC     XL1'DC',XL1'09',XL1'C3',XL1'7F'
DC     XL1'CA',XL1'B2',XL1'D5',XL1'0B'
DC     XL1'0C',XL1'0D',XL1'0E',XL1'0F'
DC     XL1'10',XL1'11',XL1'12',XL1'13'     /*10-1F*/
DC     XL1'DB',XL1'DA',XL1'08',XL1'C1'
DC     XL1'18',XL1'19',XL1'C8',XL1'F2'
DC     XL1'1C',XL1'1D',XL1'1E',XL1'1F'
DC     XL1'C4',XL1'B3',XL1'C0',XL1'D9'     /*20-2F*/
DC     XL1'BF',XL1'0A',XL1'17',XL1'1B'
DC     XL1'B4',XL1'C2',XL1'C5',XL1'B0'
DC     XL1'B1',XL1'05',XL1'06',XL1'07'
DC     XL1'CD',XL1'BA',XL1'16',XL1'BC'     /*30-3F*/
DC     XL1'BB',XL1'C9',XL1'CC',XL1'04'
DC     XL1'B9',XL1'CB',XL1'CE',XL1'DF'
DC     XL1'14',XL1'15',XL1'FE',XL1'1A'
DC     XL1'20',XL1'FF',XL1'83',XL1'84'     /*40-4F*/
DC     XL1'85',XL1'A0',XL1'C6',XL1'86'
DC     XL1'87',XL1'A4',XL1'24',XL1'2E'
DC     XL1'3C',XL1'28',XL1'2B',XL1'7C'
DC     XL1'26',XL1'82',XL1'88',XL1'89'     /*50-5F*/
DC     XL1'8A',XL1'A1',XL1'8C',XL1'8B'
DC     XL1'8D',XL1'E1',XL1'21',XL1'9C'
DC     XL1'2A',XL1'29',XL1'3B',XL1'AA'
DC     XL1'2D',XL1'2F',XL1'B6',XL1'8E'     /*60-6F*/
DC     XL1'B7',XL1'B5',XL1'C7',XL1'8F'
DC     XL1'CF',XL1'A5',XL1'DD',XL1'2C'
DC     XL1'25',XL1'5F',XL1'3E',XL1'3F'
DC     XL1'9B',XL1'90',XL1'D2',XL1'D3'     /*70-7F*/
DC     XL1'D4',XL1'D6',XL1'D7',XL1'D8'
DC     XL1'DE',XL1'60',XL1'3A',XL1'23'
DC     XL1'40',XL1'27',XL1'3D',XL1'22'
DC     XL1'9D',XL1'61',XL1'62',XL1'63'     /*80-8F*/
DC     XL1'64',XL1'65',XL1'66',XL1'67'
DC     XL1'68',XL1'69',XL1'AE',XL1'AF'
DC     XL1'D0',XL1'EC',XL1'E7',XL1'F1'
DC     XL1'F8',XL1'6A',XL1'6B',XL1'6C'     /*90-9F*/
DC     XL1'6D',XL1'6E',XL1'6F',XL1'70'
DC     XL1'71',XL1'72',XL1'A6',XL1'A7'
DC     XL1'91',XL1'F7',XL1'92',XL1'80'
DC     XL1'E6',XL1'EE',XL1'73',XL1'74'     /*A0-AF*/
DC     XL1'75',XL1'76',XL1'77',XL1'78'
DC     XL1'79',XL1'7A',XL1'AD',XL1'A8'
DC     XL1'D1',XL1'ED',XL1'E8',XL1'A9'
DC     XL1'BD',XL1'5B',XL1'BE',XL1'FA'     /*B0-BF*/
DC     XL1'B8',XL1'F5',XL1'F4',XL1'AC'
DC     XL1'AB',XL1'F3',XL1'5E',XL1'5D'
DC     XL1'7E',XL1'F9',XL1'EF',XL1'9E'
DC     XL1'7B',XL1'41',XL1'42',XL1'43'     /*C0-CF*/
DC     XL1'44',XL1'45',XL1'46',XL1'47'
DC     XL1'48',XL1'49',XL1'F0',XL1'93'
DC     XL1'94',XL1'95',XL1'A2',XL1'E4'
DC     XL1'7D',XL1'4A',XL1'4B',XL1'4C'     /*D0-DF*/
DC     XL1'4D',XL1'4E',XL1'4F',XL1'50'
DC     XL1'51',XL1'52',XL1'FB',XL1'96'
DC     XL1'81',XL1'97',XL1'A3',XL1'98'
DC     XL1'5C',XL1'F6',XL1'53',XL1'54'     /*E0-EF*/
DC     XL1'55',XL1'56',XL1'57',XL1'58'
DC     XL1'59',XL1'5A',XL1'FD',XL1'E2'
DC     XL1'99',XL1'E3',XL1'E0',XL1'E5'
DC     XL1'30',XL1'31',XL1'32',XL1'33'     /*F0-FF*/
DC     XL1'34',XL1'35',XL1'36',XL1'37'
DC     XL1'38',XL1'39',XL1'FC',XL1'EA'
DC     XL1'9A',XL1'EB',XL1'E9',XL1'9F'

ASCII to EBCDIC translation.
Note that this must be an exact match to the previous table, so that a translation from ASCII to EBCDIC and back will produce exactly the same file.

This area MUST commence precisely 256 bytes after the previous table commences.

EBCDIC
DC     XL1'00',XL1'01',XL1'02',XL1'03'     /*00-0F*/
DC     XL1'37',XL1'2D',XL1'2E',XL1'2F'
DC     XL1'16',XL1'05',XL1'25',XL1'0B'
DC     XL1'0C',XL1'0D',XL1'0E',XL1'0F'
DC     XL1'10',XL1'11',XL1'12',XL1'13'     /*10-1F*/
DC     XL1'3C',XL1'3D',XL1'32',XL1'26'
DC     XL1'18',XL1'19',XL1'3F',XL1'27'
DC     XL1'1C',XL1'1D',XL1'1E',XL1'1F'
DC     XL1'40',XL1'5A',XL1'7F',XL1'7B'     /*20-2F*/
DC     XL1'4A',XL1'6C',XL1'50',XL1'7D'
DC     XL1'4D',XL1'5D',XL1'5C',XL1'4E'
DC     XL1'6B',XL1'60',XL1'4B',XL1'61'
DC     XL1'F0',XL1'F1',XL1'F2',XL1'F3'     /*30-3F*/
DC     XL1'F4',XL1'F5',XL1'F6',XL1'F7'
DC     XL1'F8',XL1'F9',XL1'7A',XL1'5E'
DC     XL1'4C',XL1'7E',XL1'6E',XL1'6F'
DC     XL1'7C',XL1'C1',XL1'C2',XL1'C3'     /*40-4F*/
DC     XL1'C4',XL1'C5',XL1'C6',XL1'C7'
DC     XL1'C8',XL1'C9',XL1'D1',XL1'D2'
DC     XL1'D3',XL1'D4',XL1'D5',XL1'D6'
DC     XL1'D7',XL1'D8',XL1'D9',XL1'E2'     /*50-5F*/
DC     XL1'E3',XL1'E4',XL1'E5',XL1'E6'
DC     XL1'E7',XL1'E8',XL1'E9',XL1'B1'
DC     XL1'E0',XL1'BB',XL1'BA',XL1'6D'
DC     XL1'79',XL1'81',XL1'82',XL1'83'     /*60-6F*/
DC     XL1'84',XL1'85',XL1'86',XL1'87'
DC     XL1'88',XL1'89',XL1'91',XL1'92'
DC     XL1'93',XL1'94',XL1'95',XL1'96'
DC     XL1'97',XL1'98',XL1'99',XL1'A2'     /*70-7F*/
DC     XL1'A3',XL1'A4',XL1'A5',XL1'A6'
DC     XL1'A7',XL1'A8',XL1'A9',XL1'C0'
DC     XL1'4F',XL1'D0',XL1'BC',XL1'07'
DC     XL1'9F',XL1'DC',XL1'51',XL1'42'     /*80-8F*/
DC     XL1'43',XL1'44',XL1'47',XL1'48'
DC     XL1'52',XL1'53',XL1'54',XL1'57'
DC     XL1'56',XL1'58',XL1'63',XL1'67'
DC     XL1'71',XL1'9C',XL1'9E',XL1'CB'     /*90-9F*/
DC     XL1'CC',XL1'CD',XL1'DB',XL1'DD'
DC     XL1'DF',XL1'EC',XL1'FC',XL1'70'
DC     XL1'5B',XL1'80',XL1'BF',XL1'FF'
DC     XL1'45',XL1'55',XL1'CE',XL1'DE'     /*A0-AF*/
DC     XL1'49',XL1'69',XL1'9A',XL1'9B'
DC     XL1'AB',XL1'AF',XL1'5F',XL1'B8'
DC     XL1'B7',XL1'AA',XL1'8A',XL1'8B'
DC     XL1'2B',XL1'2C',XL1'09',XL1'21'     /*B0-BF*/
DC     XL1'28',XL1'65',XL1'62',XL1'64'
DC     XL1'B4',XL1'38',XL1'31',XL1'34'
DC     XL1'33',XL1'B0',XL1'B2',XL1'24'
DC     XL1'22',XL1'17',XL1'29',XL1'06'     /*C0-CF*/
DC     XL1'20',XL1'2A',XL1'46',XL1'66'
DC     XL1'1A',XL1'35',XL1'08',XL1'39'
DC     XL1'36',XL1'30',XL1'3A',XL1'68'
DC     XL1'8C',XL1'AC',XL1'72',XL1'73'     /*D0-DF*/
DC     XL1'74',XL1'0A',XL1'75',XL1'76'
DC     XL1'77',XL1'23',XL1'15',XL1'14'
DC     XL1'04',XL1'6A',XL1'78',XL1'3B'
DC     XL1'EE',XL1'59',XL1'EB',XL1'ED'     /*E0-EF*/
DC     XL1'CF',XL1'EF',XL1'A0',XL1'8E'
DC     XL1'AE',XL1'FE',XL1'FB',XL1'FD'
DC     XL1'8D',XL1'AD',XL1'A1',XL1'BE'
DC     XL1'CA',XL1'8F',XL1'1B',XL1'B9'     /*F0-FF*/
DC     XL1'B6',XL1'B5',XL1'E1',XL1'9D'
DC     XL1'90',XL1'BD',XL1'B3',XL1'DA'
DC     XL1'FA',XL1'EA',XL1'3E',XL1'41'
END

System: PKZIP/370
Module name: USASCIIE.ASM
Version: #VMVER/#LEVEL
Author: P. Strange
Copyright: Targetfour Ltd, Imperial House, Oaklands Park,
Fishponds Road, Wokingham, Berkshire,
England. RG41 2FD
Description:
This module contains translation tables that may be used when processing data containing the euro.
The euro is mapped to x'9F' (EBCDIC) and x'80' (ASCII). This is very similar to the USASCII table, except for the translation of the following characters:
EBCDIC: x'68' and x'9F'
ASCII: x'80' and x'0F'

This table has been prepared using the following pages:
Host: 1140
PC: 437

The first 256 bytes are used when mapping EBCDIC to ASCII.

USASCII CSECT
DC     XL1'00',XL1'01',XL1'02',XL1'03'     /*00-0F*/
DC     XL1'EC',XL1'09',XL1'CA',XL1'7F'
DC     XL1'E2',XL1'D2',XL1'D3',XL1'0B'
DC     XL1'0C',XL1'0D',XL1'0E',XL1'A9'
DC     XL1'10',XL1'11',XL1'12',XL1'13'     /*10-1F*/
DC     XL1'EF',XL1'C5',XL1'08',XL1'CB'
DC     XL1'18',XL1'19',XL1'DC',XL1'D8'
DC     XL1'1C',XL1'1D',XL1'1E',XL1'1F'
DC     XL1'B7',XL1'B8',XL1'B9',XL1'BB'     /*20-2F*/
DC     XL1'C4',XL1'0A',XL1'17',XL1'1B'
DC     XL1'CC',XL1'CD',XL1'CF',XL1'D0'
DC     XL1'D1',XL1'05',XL1'06',XL1'07'
DC     XL1'D9',XL1'DA',XL1'16',XL1'DD'     /*30-3F*/
DC     XL1'DE',XL1'DF',XL1'E0',XL1'04'
DC     XL1'E3',XL1'E5',XL1'E9',XL1'EB'
DC     XL1'B0',XL1'B1',XL1'9E',XL1'1A'
DC     XL1'20',XL1'C9',XL1'83',XL1'84'     /*40-4F*/
DC     XL1'85',XL1'A0',XL1'F2',XL1'86'
DC     XL1'87',XL1'A4',XL1'9B',XL1'2E'
DC     XL1'3C',XL1'28',XL1'2B',XL1'B3'
DC     XL1'26',XL1'82',XL1'88',XL1'89'     /*50-5F*/
DC     XL1'8A',XL1'A1',XL1'8C',XL1'8B'
DC     XL1'8D',XL1'E1',XL1'21',XL1'24'
DC     XL1'2A',XL1'29',XL1'3B',XL1'AA'
DC     XL1'2D',XL1'2F',XL1'B2',XL1'8E'     /*60-6F*/
DC     XL1'B4',XL1'B5',XL1'B6',XL1'8F'
DC     XL1'0F',XL1'A5',XL1'7C',XL1'2C'
DC     XL1'25',XL1'5F',XL1'3E',XL1'3F'
DC     XL1'BA',XL1'90',XL1'BC',XL1'BD'     /*70-7F*/
DC     XL1'BE',XL1'F3',XL1'C0',XL1'C1'
DC     XL1'C2',XL1'60',XL1'3A',XL1'23'
DC     XL1'40',XL1'27',XL1'3D',XL1'22'
DC     XL1'C3',XL1'61',XL1'62',XL1'63'     /*80-8F*/
DC     XL1'64',XL1'65',XL1'66',XL1'67'
DC     XL1'68',XL1'69',XL1'AE',XL1'AF'
DC     XL1'C6',XL1'C7',XL1'C8',XL1'F1'
DC     XL1'F8',XL1'6A',XL1'6B',XL1'6C'     /*90-9F*/
DC     XL1'6D',XL1'6E',XL1'6F',XL1'70'
DC     XL1'71',XL1'72',XL1'A6',XL1'A7'
DC     XL1'91',XL1'CE',XL1'92',XL1'80'
DC     XL1'E6',XL1'7E',XL1'73',XL1'74'     /*A0-AF*/
DC     XL1'75',XL1'76',XL1'77',XL1'78'
DC     XL1'79',XL1'7A',XL1'AD',XL1'A8'
DC     XL1'D4',XL1'D5',XL1'D6',XL1'D7'
DC     XL1'5E',XL1'9C',XL1'9D',XL1'FA'     /*B0-BF*/
DC     XL1'9F',XL1'15',XL1'14',XL1'AC'
DC     XL1'AB',XL1'FC',XL1'5B',XL1'5D'
DC     XL1'E4',XL1'FE',XL1'BF',XL1'E7'
DC     XL1'7B',XL1'41',XL1'42',XL1'43'     /*C0-CF*/
DC     XL1'44',XL1'45',XL1'46',XL1'47'
DC     XL1'48',XL1'49',XL1'E8',XL1'93'
DC     XL1'94',XL1'95',XL1'A2',XL1'ED'
DC     XL1'7D',XL1'4A',XL1'4B',XL1'4C'     /*D0-DF*/
DC     XL1'4D',XL1'4E',XL1'4F',XL1'50'
DC     XL1'51',XL1'52',XL1'EE',XL1'96'
DC     XL1'81',XL1'97',XL1'A3',XL1'98'
DC     XL1'5C',XL1'F0',XL1'53',XL1'54'     /*E0-EF*/
DC     XL1'55',XL1'56',XL1'57',XL1'58'
DC     XL1'59',XL1'5A',XL1'FD',XL1'F5'
DC     XL1'99',XL1'F7',XL1'F6',XL1'F9'
DC     XL1'30',XL1'31',XL1'32',XL1'33'     /*F0-FF*/
DC     XL1'34',XL1'35',XL1'36',XL1'37'
DC     XL1'38',XL1'39',XL1'DB',XL1'FB'
DC     XL1'9A',XL1'F4',XL1'EA',XL1'FF'

ASCII to EBCDIC translation.
Note that this must be an exact match to the previous table, so that a translation from ASCII to EBCDIC and back will produce exactly the same file.

This area MUST commence precisely 256 bytes after the previous table commences.

EBCDIC
DC     XL1'00',XL1'01',XL1'02',XL1'03'     /*00-0F*/
DC     XL1'37',XL1'2D',XL1'2E',XL1'2F'
DC     XL1'16',XL1'05',XL1'25',XL1'0B'
DC     XL1'0C',XL1'0D',XL1'0E',XL1'68'
DC     XL1'10',XL1'11',XL1'12',XL1'13'     /*10-1F*/
DC     XL1'B6',XL1'B5',XL1'32',XL1'26'
DC     XL1'18',XL1'19',XL1'3F',XL1'27'
DC     XL1'1C',XL1'1D',XL1'1E',XL1'1F'
DC     XL1'40',XL1'5A',XL1'7F',XL1'7B'     /*20-2F*/
DC     XL1'5B',XL1'6C',XL1'50',XL1'7D'
DC     XL1'4D',XL1'5D',XL1'5C',XL1'4E'
DC     XL1'6B',XL1'60',XL1'4B',XL1'61'
DC     XL1'F0',XL1'F1',XL1'F2',XL1'F3'     /*30-3F*/
DC     XL1'F4',XL1'F5',XL1'F6',XL1'F7'
DC     XL1'F8',XL1'F9',XL1'7A',XL1'5E'
DC     XL1'4C',XL1'7E',XL1'6E',XL1'6F'
DC     XL1'7C',XL1'C1',XL1'C2',XL1'C3'     /*40-4F*/
DC     XL1'C4',XL1'C5',XL1'C6',XL1'C7'
DC     XL1'C8',XL1'C9',XL1'D1',XL1'D2'
DC     XL1'D3',XL1'D4',XL1'D5',XL1'D6'
DC     XL1'D7',XL1'D8',XL1'D9',XL1'E2'     /*50-5F*/
DC     XL1'E3',XL1'E4',XL1'E5',XL1'E6'
DC     XL1'E7',XL1'E8',XL1'E9',XL1'BA'
DC     XL1'E0',XL1'BB',XL1'B0',XL1'6D'
DC     XL1'79',XL1'81',XL1'82',XL1'83'     /*60-6F*/
DC     XL1'84',XL1'85',XL1'86',XL1'87'
DC     XL1'88',XL1'89',XL1'91',XL1'92'
DC     XL1'93',XL1'94',XL1'95',XL1'96'
DC     XL1'97',XL1'98',XL1'99',XL1'A2'     /*70-7F*/
DC     XL1'A3',XL1'A4',XL1'A5',XL1'A6'
DC     XL1'A7',XL1'A8',XL1'A9',XL1'C0'
DC     XL1'6A',XL1'D0',XL1'A1',XL1'07'
DC     XL1'9F',XL1'DC',XL1'51',XL1'42'     /*80-8F*/
DC     XL1'43',XL1'44',XL1'47',XL1'48'
DC     XL1'52',XL1'53',XL1'54',XL1'57'
DC     XL1'56',XL1'58',XL1'63',XL1'67'
DC     XL1'71',XL1'9C',XL1'9E',XL1'CB'     /*90-9F*/
DC     XL1'CC',XL1'CD',XL1'DB',XL1'DD'
DC     XL1'DF',XL1'EC',XL1'FC',XL1'4A'
DC     XL1'B1',XL1'B2',XL1'3E',XL1'B4'
DC     XL1'45',XL1'55',XL1'CE',XL1'DE'     /*A0-AF*/
DC     XL1'49',XL1'69',XL1'9A',XL1'9B'
DC     XL1'AB',XL1'0F',XL1'5F',XL1'B8'
DC     XL1'B7',XL1'AA',XL1'8A',XL1'8B'
DC     XL1'3C',XL1'3D',XL1'62',XL1'4F'     /*B0-BF*/
DC     XL1'64',XL1'65',XL1'66',XL1'20'
DC     XL1'21',XL1'22',XL1'70',XL1'23'
DC     XL1'72',XL1'73',XL1'74',XL1'BE'
DC     XL1'76',XL1'77',XL1'78',XL1'80'     /*C0-CF*/
DC     XL1'24',XL1'15',XL1'8C',XL1'8D'
DC     XL1'8E',XL1'41',XL1'06',XL1'17'
DC     XL1'28',XL1'29',XL1'9D',XL1'2A'
DC     XL1'2B',XL1'2C',XL1'09',XL1'0A'     /*D0-DF*/
DC     XL1'AC',XL1'AD',XL1'AE',XL1'AF'
DC     XL1'1B',XL1'30',XL1'31',XL1'FA'
DC     XL1'1A',XL1'33',XL1'34',XL1'35'
DC     XL1'36',XL1'59',XL1'08',XL1'38'     /*E0-EF*/
DC     XL1'BC',XL1'39',XL1'A0',XL1'BF'
DC     XL1'CA',XL1'3A',XL1'FE',XL1'3B'
DC     XL1'04',XL1'CF',XL1'DA',XL1'14'
DC     XL1'E1',XL1'8F',XL1'46',XL1'75'     /*F0-FF*/
DC     XL1'FD',XL1'EB',XL1'EE',XL1'ED'
DC     XL1'90',XL1'EF',XL1'B3',XL1'FB'
DC     XL1'B9',XL1'EA',XL1'BD',XL1'FF'
END

Date Issued

June 1999


P9906-L008-009

Click here to download this patch in a text file

Error Description

This is a compatibility patch. In PKZIP for MVS 2.5 and later, the format of the Volume attributes retained in the archive will be changed. This patch ensures that PKZIP for VM will correctly display both the new format and the current format volume attributes.

Corrective Action

For users with level 8, the following patch should be applied using the Maintenance instructions in the Reference manual.

* Note that the '*' should be in column 1
* The '*' indicates a comment
* Fix for PKZIP ZIP for MVS 2.5 compatibility

UPDATE LISTZIP PLNGFATT
VER 00000510 0000002C
REP 00000510 00000006
VER 000005A0 0000002C
REP 000005A0 00000006
ENDUPD

Issued

June 1999

Modules Affected

PKUNZIP, PKZIP

Summary of application instructions

To apply this patch, read the Typical Application Instructions. Note that the LISTZIP TEXT file is updated and the PKUNZIP and PKZIP modules must be rebuilt.



P9906--L008-010

Click here to download this patch in a text file

Error Description

When the following three conditions are met during the compression of a file, the compressed file will fail the CRC check when it is TESTed or extracted:

This is most commonly seen with very small files. When extracting such a file the user will see:

ZIP607E File ... fails CRC check.

When the archive is VIEWed, the file is not marked as encrypted.

The problem occurs because the processing that is used to STORE the file if the original compression method didn't compress the file, resets the Encryption flag in the archive. The processing used if METHOD STORE is selected does not reset this flag.

The fix ensures that this flag is not reset by the post compression STORE of a file that didn't compress.

Corrective Action

For users with level 8, the following patch should be applied using the Maintenance instructions in the Reference manual.

* Note that the '*' should be in column 1
* The '*' indicates a comment
* Fix for PKZIP Small file encryption

UPDATE COMPRESS COMPSTOR
VER 0000009A BE924009
REP 0000009A 94004009
VER 0000009E 42904008
REP 0000009E 94014008
ENDUPD

Issued

October 1999

Modules Affected

PKZIP

Summary of application instructions

Use the Typical Application Instructions described at the beginning of this manual to apply this patch.
Note that the COMPRESS TEXT file is updated and the PKZIP module must be re-built.


P0103-L008-011

Click here to download this patch in a text file

Error Description

When created on another platform, it is possible for a ZIP archive to indicate that the Local file information block will not contain information about the file in the ZIP archive (this information should be placed in a data descriptor after the file in the archive). However, the Local file information block is verified by ZIP processing - if this information is missing, PKUNZIP will report the following problem:

ZIP605W Inconsistent local header for file …

This message may be followed by other messages which indicate that there is a problem with the data in the archive, for example

ZIP720E Invalid IPP table found in file.

This patch ensures that PKUNZIP will detect whether or not the Local file information block contains file information and so perform the appropriate checking.

Corrective Action

For users with level 8, the following patch should be applied using the Maintenance instructions in the Reference manual.

* Note that the ‘*’ should be in column 1
* The ‘*’ indicates a comment
* Fix for PKUNZIP ZIP605W …
 UPDATE EXTRZIP  CLOCAL
 VER 00000124 4140D0A8
 REP 00000124 47F0C1A2
 VER 000001A2 00000000
 REP 000001A2 4140D0A8
 VER 000001A6 00000000
 REP 000001A6 91084006
 VER 000001AA 00000000
 REP 000001AA 47E0C128
 VER 000001AE 00000000
 REP 000001AE 5870400E
 VER 000001B2 0000
 REP 000001B2 1277
 VER 000001B4 00000000
 REP 000001B4 4780C15C
 VER 000001B8 00000000
 REP 000001B8 47F0C128
 ENDUPD

Issued

March 2001

Modules Affected

PKUNZIP

Summary of application instructions

Use the Typical Application Instructions described at the beginning of this manual to apply this patch.  Note that the EXTRZIP TEXT file is updated and the PKUNZIP module must be rebuilt.


P0105-L008-012

Error Description

This patch corrects a problem processing empty files and provides documentation for the maintenance messages. 

PKZIP outputs the following messages when processing an empty file:

ZIP845E File: ZIPnnnnn/CMSUT2  /A  not found.
ZIP841E Unexpected FSCLOSE  error,  6, when processing file ZIPnnnnn/CMSUT2  /A…

These messages are a result of creating an empty ZIP Temporary File using minidisk processing – this file is removed, rather than written to the minidisk. 

This patch ensures that PKZIP will detect a ZIP Temporary File that is non-existent because it is empty and process it correctly.

See later for some additional documentation and restrictions for empty files.  Also see later for the maintenance messages documentation.

Corrective Action

For users with level 8, the following patch should be applied using the Maintenance instructions in the Reference manual.

* Note that the '*' should be in column 1
* The '*' indicates a comment
* Fix for Empty Files on ZIP …
 UPDATE TEMPFILE TMPOPEN
 VER 0000032A 4780C378
 REP 0000032A 47F0C512
 VER 00000512 00000000
 REP 00000512 4780C378
 VER 00000516 00000000
 REP 00000516 41E0001C
 VER 0000051A 0000
 REP 0000051A 19EF
 VER 0000051C 00000000
 REP 0000051C 4770C32E
 VER 00000520 00000000
 REP 00000520 91803048
 VER 00000524 00000000
 REP 00000524 47E0C32E
 VER 00000528 00000000
 REP 00000528 92FFB0D8
 VER 0000052C 00000000
 REP 0000052C 47F0C374
 ENDUPD
 UPDATE TEMPFILE TMPCLOSE
 VER 000001EC 4780C23C
 REP 000001EC 47F0C40A
 VER 0000040A 00000000
 REP 0000040A 4780C23C
 VER 0000040E 00000000
 REP 0000040E 41E00006
 VER 00000412 0000
 REP 00000412 19EF
 VER 00000414 00000000
 REP 00000414 4770C1F0
 VER 00000418 00000000
 REP 00000418 92FFB0D8
 VER 0000041C 00000000
 REP 0000041C 4770C1F0
 VER 00000420 00000000
 REP 00000420 47F0C232
 ENDUPD

Issued

May 2001

Modules Affected

PKZIP

Summary of application instructions

Use the Typical Application Instructions described at the beginning of this manual to apply this patch.  Note that the TEMPFILE TEXT file is updated and the PKZIP module must be rebuilt.

Empty Files

When PKZIP compresses an empty file, the details for the file will be the same as would be expected if the file contained some records, except that it will have a record count of 0. 
With this patch on PKZIP will correctly process these ‘empty’ files.
When PKUNZIP decompresses an empty record, it will pad this record by adding at least 1 character to the output.  As a result, it is not possible for PKZIP for VM to create empty files – even if the input is empty, PKUNZIP processing will add a byte to the first record. 

Maintenance Messages

These messages were not originally included in the Reference Manual.  It is seldom necessary to review the messages, but in case it is, the maintenance messages have been included at the end of these patch notes – please insert these into the Reference Manual as Appendix F.   

Appendix F.  Maintenance Messages

This chapter gives details of the standard messages produced during updates to the product that use the TEXTUPD facilities. All the messages detailed in this section are written to SYSPRINT and the console.

Message format

The format of the messages produced is as follows:
T4Xnnns < - Message Text ->

where:
nnn is the message number.
s is the severity. The possible values are:
E Error
W Warning
I Information

The messages produced are described in the following section, listed in order of message number.

Details of messages

Any message number not included in this document should be referred to your normal support procedures to receive an explanation.

011 Severity: Error
Message Text: Error on SYSIN file
Explanation: Utility could not read the SYSIN file – does it exist?
Action: Check that is has been created as required by the support personnel supplying the fix.

012 Severity: Error (Console only)
Message Text: Error on SYSPRINT file
Explanation: Utility could not write the SYSPRINT file. 
Action: Check that there is sufficient space for the file on disk and that the ‘A’ disk can be written to.

021 Severity: Information
Message Text: Update Process: <Product & version>, starting.
Explanation: Processing has started.
Action: None.

022 Severity: Information
Message Text: Update Process: <Product & version>, ending.
Explanation: Processing is ending.
Action: None.

030 Severity: Information
Message Text: *
Explanation: ‘Spacer’ line for formatting the output.
Action: None.

031 Severity: Information
Message Text: <output message>
Explanation: Review the output message for meaning and actions required.
Action: None.

040 Severity: Information
Message Text: Processing card <card image>
Explanation: The indicated card has been read from the SYSIN file and is being processed.
Action: None.

041 Severity: Information
Message Text: CSECT has been updated (to file).
Explanation: The update associated with on CSECT (effectively one routine) has been completed successfully. 
Action: None.

042 Severity: Information
Message Text: No Update required for CSECT.
Explanation: CSECT was not changed. 
Action: None.

043 Severity: Information
Message Text: CSECT Printed.
Explanation: A Print command has been actioned. 
Action: None.

044 Severity: Information
Message Text: CSECT Updated (in memory).
Explanation: CSECT has been updated but update has not been written to Disk (as yet). 
Action: None.

045 Severity: Information
Message Text: CSECT Loaded into memory.
Explanation: CSECT to be updated has been extracted and now may be updated in memory. 
Action: None.

046 Severity: Information
Message Text: CSECT data verified with input.
Explanation: CSECT details have been checed against input and they match. 
Action: None.

070 Severity: Error
Message Text: Invalid input control record.
Explanation: Input record has not been recognised – check that it has been created correctly. 
Action: Check Input.

071 Severity: Error
Message Text: Text file error: <file>, Operation: <action>.
Explanation: Input CSECT could not be read properly.  Ensure that the appropriate files are available and have been copied correctly. 
Action: If no errors can be found, contact support.

072 Severity: Error
Message Text: CSECT identified not found in TEXT file.
Explanation: Input CSECT could not be read properly.  Ensure that the appropriate files are available and have been copied correctly. 
Action: If no errors can be found, contact support.

073 Severity: Error
Message Text: Offset given is not in identified CSECT.
Explanation: Input CSECT did not have the required offset. 
Action: Check that the specified offset and CSECT name as as requested.  If this doesn’t resolve the problem, contact support.

074 Severity: Error
Message Text: Verify data not matched in CSECT.
Explanation: Input CSECT did not have the required data. 
Action: Check that the specified offset, data and CSECT name as as requested.  If this doesn’t resolve the problem, contact support.

075 Severity: Error
Message Text: Unexpected SYNAD error.
Explanation: Unexpected I/O problem. 
Action: Check other processing and see if there is a general problem.  If not, attempt the process again.  If the problem persists, contact support.


P0204-L008-013

Error Description

This patch corrects a problem processing variable length archives.

PKUNZIP may output one (or more) of the following messages when processing some variable length archives:

ZIP605W Inconsistent local header for file…
ZIP883E Error reading fn /ft/fm/. Unable to find block ...
ZIP720E Invalid IPP table found in file.

These messages will only be seen when the archive is variable length and has been transferred to the VM platform.

The messages are a result of optimisation that PKUNZIP attempts when processing a file. Part of this optimisation assumes that variable length records are all 'full' (except for the last one). If the archive contains different lengths (for example, some early records that are shorter than the specified record length), the optimisation causes PKUNZIP to position incorrectly within the archive.

This patch removes this optimisation for variable length archives.

Circumvention

It is possible to process the archives successfully on VM, if the archives are reformatted so that the records in the archive are similar length, or the archive contains Fixed Length records. Possibly the easiest way to achive this is to use a PIPE command with an FBLOCK stage, such as the following:

PIPE < fn ft A | fblock 4096 00 | > fn newft A F 4096

PKUNZIP should process the reformatted archive correctly.

Corrective Action

For users with level 8, the following patch should be applied using the Maintenance instructions in the Reference manual.

* Note that the '*' should be in column 1
* The '*' indicates a comment
* Fix for Variable Length Record Archives
UPDATE TEMPFILE TFILGBLK
VER 00000152 4780C180
REP 00000152 47F0C586
VER 00000586 00000000
REP 00000586 4780C180
VER 0000058A 00000000
REP 0000058A 4110B118
VER 0000058E 00000000
REP 0000058E 95E51024
VER 00000592 00000000
REP 00000592 4770C180
VER 00000596 00000000
REP 00000596 47F0C156
ENDUPD

Issued:

April 2002

Modules Affected

PKZIP and PKUNZIP.

PKZIP should be rebuilt in case a variable length archive with different record lengths is updated.

Summary of application instructions

Use the Typical Application Instructions described at the beginning of this manual to apply this patch. Note that the TEMPFILE TEXT file is updated and the PKZIP and PKUNZIP modules must be rebuilt.

P0204-L008-014

Error Description

This patch corrects a problem when a command does not complete successfully.

After an unsuccessful command, PKZIP and PKUNZIP may not completely close the input archive. In this circumstance, CMS will normally complete the close of the archive. However if the PKZIP or PKUNZIP command has been issued in a way that means CMS does not recognise the 'end of command processing', then the input archive will remain open. Subsequent commands issued against the archive will fail for this reason, for example, a subsequent PKUNZIP command will result in the following message:

ZIP841E Unexpected FSOPEN error, 37, when processing file ...

The file identified will be the ZIP archive.

PKZIP and PKUNZIP processing is changed by this patch to close open archives, even in error situations. As a result of this patch, it is possible that additional messages may result, when the close does not complete correctly because of other errors. These additional close messages will only be seen when there is a preceding error in the processing.

Circumvention

It is possible to use the FINIS command after a failed PKZIP or PKUNZIP to ensure that the archive is closed. This will force the archive closed.

Corrective Action

For users with level 8, the following patch should be applied using the Maintenance instructions in the Reference manual. * Note that the '*' should be in column 1
* The '*' indicates a comment
* Fix for Open Error 37 on archive
UPDATE UNZIP UNZIP
VER 0000149E 4770B55A
REP 0000149E 4770B6F0
VER 0000166E 47F0B55A
REP 0000166E 47F0B6F0
VER 00001678 47F0B55A
REP 00001678 47F0B6F0
VER 00001682 47F0B55A
REP 00001682 47F0B6F0
VER 0000168C 47F0B55A
REP 0000168C 47F0B6F0
VER 00001696 47F0B55A
REP 00001696 47F0B6F0
VER 000016EC 000000000000
REP 000016EC D503201CB7E0
VER 000016F2 00000000
REP 000016F2 4770B530
VER 000016F6 00000000
REP 000016F6 47F0B55A
ENDUPD
UPDATE ZIP ZIP
VER 00001972 4770BC3A
REP 00001972 4770BDD0
VER 00001D4E 47F0BC3A
REP 00001D4E 47F0BDD0
VER 00001D58 47F0BC3A
REP 00001D58 47F0BDD0
VER 00001D62 47F0BC3A
REP 00001D62 47F0BDD0
VER 00001D6C 47F0BC3A
REP 00001D6C 47F0BDD0
VER 00001D76 47F0BC3A
REP 00001D76 47F0BDD0
VER 00001DCC 000000000000
REP 00001DCC D503201CBEE0
VER 00001DD2 00000000
REP 00001DD2 4770BC10
VER 00001DD6 00000000
REP 00001DD6 47F0BC3A
ENDUPD
Issued:

May 2002

Modules Affected

PKZIP and PKUNZIP.

PKZIP should be rebuilt in case a variable length archive with different record lengths is updated.

Summary of application instructions

Use the Typical Application Instructions described at the beginning of this manual to apply this patch. Note that the TEMPFILE TEXT file is updated and the PKZIP and PKUNZIP modules must be rebuilt.

P0205-L008-015

Error Description

This patch corrects a problem when a file that is greater than 2GB is processed. Without this patch, PKZIP processing will create an archive with no file in it, when processing a file with more that 2GB uncompressed data.

Corrective Action

For users with level 8, the following patch should be applied using the Maintenance instructions in the Reference manual. * Note that the * should be in column 1
* The * indicates a comment
* Fix for files > 2GB uncompressed
UPDATE COMPRESS COMPRESS
VER 000004FE 1956
REP 000004FE 1556
VER 00000698 1978
REP 00000698 1578
VER 000006A6 5970C91C
REP 000006A6 5570C91C
ENDUPD
UPDATE ZTASK ZTSKFILE
VER 00000128 5950C3F0
REP 00000128 5550C3F0
VER 00000282 5950C3F0
REP 00000282 5550C3F0
ENDUPD
UPDATE EXTRZIP EXTRFILE
VER 000004B0 5B90CB64
REP 000004B0 5F90CB64
ENDUPD
UPDATE EXTRACT EX00
VER 0000013C 5950C314
REP 0000013C 5550C314
VER 00000144 5950C318
REP 00000144 5550C318
VER 0000016C 1B571A87
REP 0000016C 1F571E87
ENDUPD
UPDATE INFLATE FSCGRBF1
VER 0000008A 59430004
REP 0000008A 55430004
ENDUPD
UPDATE UNSHRINK GETMORE
VER 00000080 5940A050
REP 00000080 5540A050
VER 0000008C 5940C174
REP 0000008C 5540C174
ENDUPD
UPDATE IMPLODE SNEWTHSH
VER 00000096 1978
REP 00000096 1578
VER 000000A4 5970C1B0
REP 000000A4 5570C1B0
ENDUPD
UPDATE LISTZIP LISTZIP
VER 00000422 5A60D0AC
REP 00000422 5E60D0AC
VER 0000043C 5A60D0A8
REP 0000043C 5E60D0A8
VER 000004E6 5960C780
REP 000004E6 5560C780
VER 0000051C 5960C780
REP 0000051C 5560C780
VER 00000554 1978
REP 00000554 1578
VER 00000562 5970C78C
REP 00000562 5570C78C
ENDUPD
UPDATE LISTZIP PRININFO
VER 0000011E 5960C5D8
REP 0000011E 5560C5D8
VER 00000170 5960C5D8
REP 00000170 5560C5D8
VER 000001C4 1978
REP 000001C4 1578
VER 000001D2 5970C5F0
REP 000001D2 5570C5F0
ENDUPD
UPDATE LISTZIP PLNGINFO
VER 00000322 5960C76C
REP 00000322 5560C76C
VER 00000382 5960C76C
REP 00000382 5560C76C
ENDUPD
UPDATE LISTZIP SSIZERTN
VER 000000A6 1967
REP 000000A6 1567
ENDUPD
UPDATE LISTZIP SCOMPRTN
VER 000000AE 1979
REP 000000AE 1579
VER 00000102 1979
REP 00000102 1579
ENDUPD
UPDATE UTILS CONVTDEC
VER 00000082 4E40D050
REP 00000082 47F0C0E2
VER 000000DE 00000000
REP 000000DE 3B9ACA00
VER 000000E2 00000000
REP 000000E2 17661874
VER 000000E6 00000000
REP 000000E6 5D60C0DE
VER 000000EA 00000000
REP 000000EA 4E60D050
VER 000000EE 00000000 0000
REP 000000EE F3F7D078 D050
VER 000000F4 00000000
REP 000000F4 4270D07E
VER 000000F8 00000000
REP 000000F8 96F0D07E
VER 000000FC 00000000
REP 000000FC 47F0C08C
ENDUPD
Issued:

November 2003

Modules Affected

PKZIP and PKUNZIP.

Summary of application instructions

Use the ical Application Instructions described at the beginning of this manual to apply this patch. Note that the COMPRESS, EXTRACT, EXTRZIP, IMPLODE, INFLATE, LISTZIP, UNSHRINK, UTILS and ZTASK TEXT files are updated and the PKUNZIP and PKZIP modules must be rebuilt

P0407-L008-016

Error Description

This patch corrects a problem when a file that is greater than or equal to 4GB is compressed. Without this patch, PKZIP processing will create an archive with a shortened version of the file in it, and PKUNZIP will have CRC errors when extracting this data. With this patch, PKZIP will terminate with a return code of 24 and the following error message, when a file containing 4GB or more is compressed. ZIP863E Unexpected processing error, Op: FILE >= 4GB, RC: 24.

Corrective Action

For users with level 8, the following patch should be applied using the Maintenance instructions in the Reference manual. * Note that the * should be in column 1
* The * indicates a comment
* Error message for input files > 4 GB
UPDATE IMPLODE VREAD
VER 00000118 1A05
REP 00000118 1E05
VER 0000013A 1A97
REP 0000013A 1E97
VER 0000013C BE98801B
REP 0000013C 47F0C21A
VER 000001F0 1A05
REP 000001F0 1E05
VER 0000021A 00000000
REP 0000021A 4730C226
VER 0000021E 00000000
REP 0000021E BE98801B
VER 00000222 00000000
REP 00000222 47F0C140
VER 00000226 00000000
REP 00000226 4110D050
VER 0000022A 00000000
REP 0000022A 4100035F
VER 0000022E 00000000
REP 0000022E 50001000
VER 00000232 00000000
REP 00000232 4100C272
VER 00000236 00000000
REP 00000236 50001004
VER 0000023A 00000000
REP 0000023A 4100000B
VER 0000023E 00000000
REP 0000023E 50001008
VER 00000242 00000000
REP 00000242 4100C270
VER 00000246 00000000
REP 00000246 5000100C
VER 0000024A 00000000
REP 0000024A 41000002
VER 0000024E 00000000
REP 0000024E 50001010
VER 00000252 00000000
REP 00000252 58F0211C
VER 00000256 0000
REP 00000256 05EF
VER 00000258 00000000
REP 00000258 92C1D118
VER 0000025C 00000000
REP 0000025C 47F0C1F8
VER 00000270 0000
REP 00000270 F2F4
VER 00000272 00000000
REP 00000272 C6C9D3C5
VER 00000276 00000000
REP 00000276 406E7E40
VER 0000027A 00000000
REP 0000027A F4C7C200
ENDUPD
UPDATE COMPRESS COMPSTOR
VER 000001BA 1E57
VER 000001BC 4110D050
REP 000001BC 47F0C30A
VER 0000030A 00000000
REP 0000030A 4730C316
VER 0000030E 00000000
REP 0000030E 4110D050
VER 00000312 00000000
REP 00000312 47F0C1C0
VER 00000316 00000000
REP 00000316 4110D050
VER 0000031A 00000000
REP 0000031A 4100035F
VER 0000031E 00000000
REP 0000031E 50001000
VER 00000322 00000000
REP 00000322 4100C352
VER 00000326 00000000
REP 00000326 50001004
VER 0000032A 00000000
VER 0000032A 00000000
REP 0000032A 4100000B
VER 0000032E 00000000
REP 0000032E 50001008
VER 00000332 00000000
REP 00000332 4100C350
VER 00000336 00000000
REP 00000336 5000100C
VER 0000033A 00000000
REP 0000033A 41000002
VER 0000033E 00000000
REP 0000033E 50001010
VER 00000342 00000000
REP 00000342 58F0211C
VER 00000346 0000
REP 00000346 05EF
VER 00000348 00000000
REP 00000348 92C1D0D0
VER 0000034C 00000000
REP 0000034C 47F0C250
VER 00000350 0000
REP 00000350 F2F4
VER 00000352 00000000
REP 00000352 C6C9D3C5
VER 00000356 00000000
REP 00000356 406E7E40
VER 0000035A 00000000
REP 0000035A F4C7C200
ENDUPD
Issued:

July 2004

Modules Affected

PKZIP

Summary of application instructions

Use the ical Application Instructions described at the beginning of this manual to apply this patch. Note that the IMPLODE and COMPRESS TEXT files are updated and the PKZIP module must be rebuilt.

-End-