Patch Notes for Level 7
These notes provide information on known defects in PKZIP Version 2.1 for VSE. The PTF's listed below should be included in Version 2.1 Level 7 as required.
Click on the relevant summary heading to jump to the patch, and simply cut and paste.
Alternatively, you can download all level 7 patches (this is a self extracting file, which must be run before use) in a single job.
Last Updated: January 2004
When processing a very small file or a file that has an error opening, PKZIP may appear to hang.
If this happens, to stop PKZIP processing the job will need to be cancelled.
A timing difference between compression and the mainline process causes this hang when the compression task finishes very quickly.
PKZIP 2.1/7 for VSE cannot make case sensitive file selections. This can cause problems when decompressing files from another platform.
This patch removes the lower to upper case conversion performed on PC/Unix style file selections (i.e. those in (") double quotes) for PKUNZIP. With this conversion removed, the PC/Unix style file selection will be case sensitive.
PKZIP 2.1/7 for VSE uses an incorrect record length when processing using NOCRLF. If an input file is processed in this way the following message is output:
UNZIP920E Write error, code=x0000006C, r15=x00000008,...
The message is a result of the VSE processing incorrectly adding an RDW (Record Descriptor Word, typically of the form x'LLLL00000' where LLLL is the length of the record) to the output record. As a result of this, the record is 4 bytes longer than the maximum record allowed in the file, causing the error.
This patch removes the RDW for NOCRLF extraction.
When compressing a large file using the BINARY and ZDW options, PKZIP will occasionally duplicate 4 bytes of the input record and truncate the last 4 bytes.
This problem occurs when ZIP detects a record boundary occurring at exactly the same time as an internal buffer boundary. If the following record is greater than 4096 then the bytes 4092-4095 will be repeated and the last 4 bytes of the record will be truncated.
This patch corrects this problem.
When compressing an empty file, PKZIP may output the following message:
ZIP921E Open error x0000006E, r15=x00000008, file=...
PKZIP will subsequently stop processing, without creating the output archive.
This problem occurs because VSAM will not open a file for 'input' if that file has not had some records written into it.
This patch corrects this problem by detecting the error and processing as though the file had been opened correctly but contained no data.
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.
When selecting multiple files in one run, PKZIP can ABEND with U0008 or other storage related error, typically after processing a number of the files. Messages that may be seen include:
IDC4999I UABORT CODE 28
PKZIP ABEND U0008
This problem occurs because some storage that is acquired for each file is not freed until termination.
This patch frees some of the larger blocks associated with each file.
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 VSE will correctly display both the new format and the current format volume attributes.
This is a
documentation Patch Note.
When using VIEWDETAIL to
display attributes for MVS or VM files, the record format attribute may specify
that the record format is 'Undefined Variable' or 'Undefined Fixed'. For
example:
UNZIP519I Record format: Undefined Variable
...
In this situation, the 'Undefined' attribute is not
correct and should be ignored. If 'Undefined' is followed by anything other than
'Fixed' or 'Variable', then it is correct.
This is a documentation update. When processing VSAM RRDS datasets with unused ‘slots’, PKZIP replicates the processing performed by IDCAMS REPRO when the RRDS is copied to a sequential dataset, i.e. missing slots are ignored. If the data is subsequently used to recreate an RRDS, the resultant file does not include any missing slots, effectively changing the slot number of (some of) the copied records.
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:
T4XFLIC 3.1/1 has a bug in PUTSYSPR which prevents multiple 80M statements from being processed.
This patch relates to a storage problem. When processing, PKZIP and PKUNZIP can fail with an Abend U0008 when processing larger files/archives, but will process smaller files/archives quite happily in the same partition with the same JCL.
This patch note documents a fix to PKZIP to assist use of the product in conjunction with the VSAMLITE product from Macro 4. In addition, it includes information about using PKZIP with a number of BIM products and with REXX.
When processing some archives, PKZIP and PKUNZIP can generate the following message UNZIP404E ZIP archive file has an invalid format… When processed on another platform, the archive is valid.
When compressing multiple files, PKZIP can occasionally Abend with the following message:
0S03I PROGRAM CHECK INTERRUPTION - HEX LOCATION 00xxxxxx - INTERRUPTION CODE 01 - OPERATION EXCEPTION
The failing location will be x' 20A24' from the start of the partition.
Attributes created by PKZIP for VSE 4.0, or other platforms that are not used on
PKZIP for VSE, will result in message 518 when the archive is viewed using
VIEWDETAIL
This patch fixes two problems:
P0106-L007-017
P0106-L007-018
This patch clarifies and improves PKZIP for VSE handling of multivolume files.
This patch clarifies and improves PKZIP for VSE handling of multivolume files.
Error Description
When processing a very
small file or a file that has an error opening, PKZIP may appear to hang.
If this happens, to stop PKZIP processing the job will need
to be cancelled.
A timing difference between compression
and the mainline process causes this hang when the compression task finishes
very quickly.
Corrective Action
For users with level
7, the following patch should be incorporated into PKZIP, which will correct the
compression.
*
$$ JOB ...
* $$ LST ...
// JOB
PKZAP1
// OPTION LOG,NOSYSDUMP
// LIBDEF *,SEARCH=(PRD1.BASE),TEMP
// EXEC MSHP
PATCH
SUBLIBRARY=T4ZIP.TST217
AFFECTS PHASES=(ZIPZTASK)
ALTER 000378 4780C3A4:47F0C670
ALTER 000670 00000000:4780C3A4
ALTER 000674 00000000:91803005
ALTER 000678 00000000:4710C4AC
ALTER 00067C 00000000:47F0C37C
/*
// EXEC LISTLOG
/&
* $$ EOJ
Date Issued
January 1999
Error Description
PKZIP 2.1/7 for VSE
cannot make case sensitive file selections. This can cause problems when
decompressing files from another platform.
This patch removes the lower to upper case conversion
performed on PC/Unix style file selections (i.e. those in (") double quotes) for
PKUNZIP. With this conversion removed, the PC/Unix style file selection will be
case sensitive.
Corrective Action
For users with level 7, the following patch should be incorporated into PKZIP, which will correct the compression.
*
$$ JOB ...
* $$ LST ...
// JOB
PKZAP2
// OPTION LOG,NOSYSDUMP
// LIBDEF *,SEARCH=(PRD1.BASE),TEMP
// EXEC MSHP
PATCH
SUBLIBRARY=T4ZIP.TST217
AFFECTS PHASES=(ZFSUDFVS)
ALTER 0013E1 41424344454647:61626364656667
ALTER 0013E8 48494A4B4C4D:68696A6B6C6D
ALTER 0013EE 4E4F5051525354:6E6F7071727374
ALTER 0013F5 55565758595A:75767778797A
/*
// EXEC LISTLOG
/&
* $$ EOJ
Note
The conversion of selection strings ensures that file names created by PKUNZIP processing are always upper case. With this conversion removed, it is possible that PKUNZIP will attempt to create files that contain lower case letters in the file name. To prevent this occurring, we recommend that mixed case processing only be used to select one file and that OUTNAME (OUTDATANAME and OUTINDEXNAME) or the HLQ command be used to specify the output file name, as shown in the following commands:
-ECHO
-ARCHIVE(MY.ZIP.ARCHIVE)
"abCD4.header"
-OUTNAME(A.TOTALLY.NEW.NAME)
-OUTDATANAME(A.TOTALLY.NEW.NAME.DATA)
Date Issued
February 1999
Error Description
PKZIP 2.1/7 for VSE
uses an incorrect record length when processing using NOCRLF. If an input file
is processed in this way the following message is output: UNZIP920E Write error,
code=x0000006C, r15=x00000008,...
The message is a
result of the VSE processing incorrectly adding an RDW (Record Descriptor Word,
typically of the form x'LLLL00000' where LLLL is the length of the record) to
the output record. As a result of this, the record is 4 bytes longer than the
maximum record allowed in the file, causing the error.
This patch removes the RDW for NOCRLF
extraction.
Corrective Action
For users with level 7, the following patch should be incorporated into ZFHWVSVS.
*
$$ JOB ...
* $$ LST ...
// JOB
PKZAP3
// OPTION LOG,NOSYSDUMP
// LIBDEF *,SEARCH=(PRD1.BASE),TEMP
// EXEC MSHP
PATCH
SUBLIBRARY=T4ZIP.TST217
AFFECTS PHASES=(ZFHWVSVS)
ALTER 008020 4710C770:4700C770
/*
// EXEC LISTLOG
/&
* $$ EOJ
Note
Any user that is converting from PKZIP for VSE 2.1/6, and who has not applied patch 13, should be aware of the following. This patch should not effect other users. This correction changes the output from extractions using NOCRLF so that it no longer includes a redundant RDW. Any processing based on ZIP output where NOCRLF has been used, will need to be changed to ensure that this does not cause any problems.
Date Issued
March 1999
Error Description
When compressing a
large file using the BINARY and ZDW options, PKZIP will occasionally duplicate 4
bytes of the input record and truncate the last 4 bytes.
This problem occurs when ZIP detects a record boundary
occurring at exactly the same time as an internal buffer boundary. If the
following record is greater than 4096 then the bytes 4092-4095 will be repeated
and the last 4 bytes of the record will be truncated.
This patch corrects this problem.
Corrective Action
For users with level 7, the following patch should be incorporated into ZFHRVSVS.
*
$$ JOB ...
* $$ LST ...
// JOB
PKZAP4
// OPTION LOG,NOSYSDUMP
// LIBDEF *,SEARCH=(PRD1.BASE),TEMP
// EXEC MSHP
PATCH
SUBLIBRARY=T4ZIP.TST217
AFFECTS PHASES=(ZFHRVSVS)
ALTER 003AD6 47E0CA16:47F0CA16
/*
// EXEC LISTLOG
/&
* $$ EOJ
Date Issued
April 1999
Error Description
When compressing an
empty file, PKZIP may output the following message: ZIP921E Open error
x0000006E, r15=x00000008, file=...
PKZIP will
subsequently stop processing, without creating the output archive.
This problem occurs because VSAM will not open a file for
'input' if that file has not had some records written into it.
This patch corrects this problem by detecting the error and
processing as though the file had been opened correctly but contained no
data.
Corrective Action
For users with level 7, the following patch should be incorporated into ZFHRVSVS.
*
$$ JOB ...
* $$ LST ...
// JOB
PKZAP5
// OPTION LOG,NOSYSDUMP
// LIBDEF *,SEARCH=(PRD1.BASE),TEMP
// EXEC MSHP
PATCH
SUBLIBRARY=T4ZIP.TST217
AFFECTS PHASES=(ZFHRVSVS)
ALTER 14AE 5860D078:47F0C82A
ALTER
175A 00000000:5860D078
ALTER 175E 00000000:4100006E
ALTER 1762 0000:1960
ALTER 1764
00000000:4770C582
ALTER 1768 00000000:92E8B0FC
ALTER 176C 00000000:47F0C76A
ALTER
2E04 5840B0E0:47F0C34A
ALTER 302A 00000000:5840B0E0
ALTER 302E 00000000:95E8B0FC
ALTER
3032 00000000:4770C128
ALTER 3036 00000000:47F0C208
/*
// EXEC LISTLOG
* $$ /&
EOJ
Note
With this patch
applied, the following (or similar) message may display in the log for empty
files that are processed by PKZIP.
4228I FILE ZIPREAD OPEN ERROR
X'6E'(110) CAT= (OPNAB-25) INPUT OPEN INVALID FOR EMPTY FILE
This message may be ignored.
Date Issued
April 1999
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 ASCII table
supplied with PKZIP for VSE 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:![]()
| ||||||||||||||||||
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
|
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
Error Description
When selecting
multiple files in one run, PKZIP can ABEND with U0008 or other storage related
error, typically after processing a number of the files. Messages that may be
seen include:
IDC4999I UABORT CODE 28
PKZIP ABEND U0008
This problem occurs because some storage that is acquired
for each file is not freed until termination.
This patch
frees some of the larger blocks associated with each file.
Corrective Action
For users with level 7, the following patch should be incorporated into ZFHRVSVS.
*
$$ JOB ...
* $$ LST ...
// JOB
PKZAP7
// OPTION LOG,NOSYSDUMP
// LIBDEF *,SEARCH=(PRD1.BASE),TEMP
// EXEC MSHP
PATCH
SUBLIBRARY=T4ZIP.TST217
AFFECTS PHASES=(ZFHRVSVS)
ALTER 1A98 5800CD10:411403E8
ALTER
1A9C 5A00CD08:47F0C2CA
ALTER 255C 000003E8:000003F8
ALTER 2E1C 4780C282:4780C208
ALTER
2EEA 5B10C3D8:47F0C35A
ALTER 2F06 4780C282:4780C370
ALTER 303A 00000000:5810B0E8
ALTER
303E 0000:1211
ALTER 3040 00000000:4780C370
ALTER 3044 00000000:5B10C3D8
ALTER
3048 00000000:5800B0EC
ALTER 304C 00000000:47F0C212
ALTER 3050 0000:121B
ALTER 3052
00000000:4780C282
ALTER 3056 00000000:5810B0E4
ALTER 305A 0000:1211
ALTER 305C
00000000:4780C392
ALTER 3060 00000000:5B10C3D8
ALTER 3064 0000:1700
ALTER 3066
00000000:5000B0E4
ALTER 306A 00000000:410003F8
ALTER 306E 00000000:47F0C212
ALTER
3072 0000:181B
ALTER 3074 0000:17BB
ALTER 3076 00000000:5B10C3D8
ALTER
307A 00000000:47F0C20E
/*
//
EXEC LISTLOG
/&
* $$ EOJ
Date Issued
July 1999
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 VSE will correctly display both the new format and the current format volume attributes.
Corrective Action
For users with level 7, the following patch should be incorporated into ZFHWVSVS, PKZIP and PKUNZIP.
*
$$ JOB ...
* $$ LST ...
// JOB
PKZAP8
// OPTION LOG,NOSYSDUMP
// LIBDEF *,SEARCH=(PRD1.BASE),TEMP
// EXEC MSHP
PATCH
SUBLIBRARY=T4ZIP.TST217
AFFECTS PHASES=(PKUNZIP)
ALTER 6A90 0000002C:00000006
ALTER
6B20 0000002C:00000006
AFFECTS PHASES=(PKZIP)
ALTER 6FC8 0000002C:00000006
ALTER
7058 0000002C:00000006
AFFECTS PHASES=(ZFHWVSVS)
ALTER 1D1E 924D5010:47F0CC5A
ALTER
1D22 D22B50119008:D20050119008
ALTER 27FA
00000000:924D5010
ALTER 27FE 00000000:92405011
ALTER 2802 000000000000:D22A50125011
ALTER 2808 00000000:48E90004
ALTER
280C 00000000:41F00005
ALTER 2810 0000:1BEF
ALTER 2812 00000000:44E0C182
ALTER
2816 00000000:41F0002B
ALTER 281A 0000:19EF
ALTER 281C 00000000:4740CC8C
ALTER
2820 00000000:95405011
ALTER 2824 00000000:4780C188
ALTER 2828 00000000:9540503C
ALTER
282C 00000000:4780C188
ALTER 2830 00000000:92405017
ALTER 2834 000000000000:D22450185017
ALTER 283A 00000000:47F0C188
ALTER
2D1E 924D5010:47F0CAC2
ALTER 2D22
D22B50119008:D20050119008
ALTER 35CA 00000000:924D5010
ALTER 35CE 00000000:92405011
ALTER 35D2 000000000000:D22A50125011
ALTER 35D8 00000000:48E90004
ALTER
35DC 00000000:41F00005
ALTER 35E0 0000:1BEF
ALTER 35E2 00000000:44E0C21A
ALTER
35E6 00000000:41F0002B
ALTER 35EA 0000:19EF
ALTER 35EC 00000000:4740CAF4
ALTER
35F0 00000000:95405011
ALTER 35F4 00000000:4780C220
ALTER 35F8 00000000:9540503C
ALTER
35FC 00000000:4780C220
ALTER 3600 00000000:92405017
ALTER 3604 000000000000:D22450185017
ALTER 360A 00000000:47F0C220
/*
// EXEC LISTLOG
/&
* $$ EOJ
Date Issued
June 1999
Error Description
This is a
documentation Patch Note.
When using VIEWDETAIL to
display attributes for MVS or VM files, the record format attribute may specify
that the record format is 'Undefined Variable' or 'Undefined Fixed'. For
example:
UNZIP519I Record
format: Undefined Variable ...
In this situation, the 'Undefined' attribute is not correct
and should be ignored. If 'Undefined' is followed by anything other than 'Fixed'
or 'Variable', then it is correct.
Corrective Action
There is no corrective action associated with this Patch Note.
Date Issued
July 1999
Error Description
This is a documentation update. When processing VSAM RRDS datasets with unused slots, PKZIP replicates the processing performed by IDCAMS REPRO when the RRDS is copied to a sequential dataset, i.e. missing slots are ignored. If the data is subsequently used to recreate an RRDS, the resultant file does not include any missing slots, effectively changing the slot number of (some of) the copied records.
For example, if an RRDS contained records in slots 1, 5, 9 and 11 before the processing, the recreated RRDS would have records in slots numbered 1, 2, 3 and 4.
Only RRDS files with no interspersed empty slots will be correctly recreated by PKZIP processing.
This restriction applies to both variable length and fixed length RRDS files.
Date Issued
August 1999
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 Empty files, but can occur with other (typically very small) files. When extracting such a file the user will see:
UNZIP607E 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 didnt 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 didnt compress.
Corrective Action
For users with level 7, the following patch should be incorporated into ZIPCTASK.
Date Issued
October 1999
Error Description
T4XFLIC 3.1/1 has a bug in PUTSYSPR which prevents multiple 80M statements from being processed.
Corrective Action
For users with level 7, the following patch should be incorporated into T4XFLIC which will correct the error.
* $$ JOB …
* $$ LST …
// JOB PKZAP12
// OPTION LOG,NOSYSDUMP
// LIBDEF *,SEARCH=(PRD1.BASE),TEMP
// EXEC MSHP
PATCH SUBLIBRARY=T4XFLIC.TEST
AFFECTS PHASES=(T4XFLIC)
SCAN 1CA2 ARG=4780BCF0
ALTER 1CA2 4780BCF0:47F0BCF0
/*
// EXEC LISTLOG
/&
* $$ EOJ
Date Issued
January 2000
This patch relates to a storage problem. When processing, PKZIP and PKUNZIP can fail with an Abend U0008 when processing larger files/archives, but will process smaller files/archives quite happily in the same partition with the same JCL.
Though not clearly stated in the manual, PKZIP requires a partition with at least 2 megabytes of free storage, to process correctly. To ensure that as much GETVIS is available as possible, SIZE=AUTO should be specified on the EXEC JCL card.
PKZIP and PKUNZIP use GETVIS storage for programs, I/O buffers and the like. In most cases, this storage does not vary with the size of the file being compressed or uncompressed.
However there is one particular
use of storage that does vary with the size of the files/archive. This is the archive
index. An
archive index entry is created for each record written to or extracted from an
archive. On
VSE, because of the way that VSE allocates storage, 128 bytes
are allocated to each index entry. This means there is a storage overhead of 128
bytes per record read from or written to the archive. In addition, when
using PKZIP, the compressed data is written to a temporary archive before being
put in the final output archive - which means the overhead for compressed data
is effectively 256 bytes per index entry, (i.e. 256 bytes per archive
record).
There are two ways to minimize the impact of this
overhead:
1. Use a large record size, such as 32750, for the
archive. With
the value 32750, a 1 megabyte archive will require just over 4 kilobytes for the
index entries.
If the default record size of 6160 was used, 22 kilobytes would be
required. Alternatively, if the record size specified was 80, the index entries
would require 1.6 megabytes of storage, which is more than the amount of data in
the archive!
2. Use a stronger compression, which reduces the size of the
archive required.
However even where these options are used, the index may prove to be a limiting function because index entries are located below the 16M line (i.e. in 24 bit addressable storage).
This patch changes the addressing mode for index entries so that storage above the line may be used for these indexes. In a large enough partition, with this patch applied and an appropriate record size, the PKZIP architecture which limits archive size to 4 gigabytes, becomes the limiting factor in the amount of data that may be placed in an archive.
For users with level 7, the following patch should be incorporated into PKZIP and PKUNZIP.
* $$ JOB ...
* $$ LST ...
// JOB PKZAP13
* PATCH 13 FOR PKZIP
// OPTION LOG,NOSYSDUMP
// LIBDEF *,SEARCH=(PRD1.BASE),TEMP
// EXEC MSHP
PATCH SUBLIBRARY=T4ZIP.TST217
AFFECTS PHASES=(PKZIP)
ALTER 01F930 58F0C55405EF:58F0C5540DEF
ALTER 01F93E 5870B070:47F0C4C6
ALTER 01F960 4780C158:4780C4DC
ALTER 01FD56 00000000:4170C4D4
ALTER 01FD5A 00000000:5670C4D0
ALTER 01FD5E 0000:0B07
ALTER 01FD60 00000000:80000000
ALTER 01FD64 00000000:5870B070
ALTER 01FD68 00000000:47F0C0B2
ALTER 01FD6C 00000000:4180C158
ALTER 01FD70 00000000:5480C4E6
ALTER 01FD74 0000:0B08
ALTER 01FD76 00000000:7FFFFFFF
ALTER 02017E 47F0C040:47F0C156
ALTER 0202B4 4710C144:4710C164
ALTER 0202CE 00000000:41E0C040
ALTER 0202D2 00000000:56E0C160
ALTER 0202D6 0000:0B0E
ALTER 0202D8 00000000:80000000
ALTER 0202DC 00000000:41E0C144
ALTER 0202E0 00000000:54E0C16E
ALTER 0202E4 0000:0B0E
ALTER 0202E6 00000000:7FFFFFFF
ALTER 020356 47F0C040:47F0C1FA
ALTER 020514 58F0211C:47F0C216
ALTER 020530 4710C1E8:4710C208
ALTER 02054A 00000000:41E0C040
ALTER 02054E 00000000:56E0C204
ALTER 020552 0000:0B0E
ALTER 020554 00000000:80000000
ALTER 020558 00000000:41E0C1E8
ALTER 02055C 00000000:54E0C212
ALTER 020560 0000:0B0E
ALTER 020562 00000000:7FFFFFFF
ALTER 020566 00000000:58F0211C
ALTER 02056A 00000000:41E0C1C8
ALTER 02056E 00000000:47F0C20C
ALTER 0205D6 47F0C040:47F0C21A
ALTER 0207D0 4710C208:4710C228
ALTER 0207EA 00000000:41E0C040
ALTER 0207EE 00000000:56E0C224
ALTER 0207F2 0000:0B0E
ALTER 0207F4 00000000:80000000
ALTER 0207F8 00000000:41E0C208
ALTER 0207FC 00000000:54E0C232
ALTER 020800 0000:0B0E
ALTER 020802 00000000:7FFFFFFF
ALTER 020886 47F0C040:47F0C3F6
ALTER 020914 4510C0BC:4510C412
ALTER 0209C0 4780C252:4780C41A
ALTER 020A64 4780C1EA:4780C422
ALTER 020AC8 58F0211C:47F0C43A
ALTER 020AE0 0000100058F0F000:0000200058F0F000
ALTER 020B84 4510C324:4510C42A
ALTER 020C10 4780C396:4780C432
ALTER 020C5A 4710C3E4:4710C3E4
ALTER 020C74 07FE:0B0E
ALTER 020C76 00000000:41E0C040
ALTER 020C7A 00000000:56E0C400
ALTER 020C7E 0000:0B0E
ALTER 020C80 00000000:80000000
ALTER 020C84 00000000:41E0C3E4
ALTER 020C88 00000000:54E0C40E
ALTER 020C8C 0000:0B0E
ALTER 020C8E 00000000:7FFFFFFF
ALTER 020C92 00000000:41E0C0BC
ALTER 020C96 00000000:47F0C408
ALTER 020C9A 00000000:41E0C252
ALTER 020C9E 00000000:47F0C3FA
ALTER 020CA2 00000000:41E0C1EA
ALTER 020CA6 00000000:47F0C3FA
ALTER 020CAA 00000000:41E0C324
ALTER 020CAE 00000000:47F0C408
ALTER 020CB2 00000000:41E0C396
ALTER 020CB6 00000000:47F0C3FA
ALTER 020CBA 00000000:58F0211C
ALTER 020CBE 00000000:41E0C24C
ALTER 020CC2 00000000:47F0C408
ALTER 020FD6 47F0C040:47F0C836
ALTER 0210BC 0000100058F0F000:0000200058F0F000
ALTER 02118C 4510C1E4:4510C852
ALTER 021220 4780C256:47F0C85A
ALTER 0212F0 4510C348:4510C862
ALTER 02145A 47F0C686:47F0C872
ALTER 02155C 4780C592:4780C86A
ALTER 021588 4510C5D8:4510C87A
ALTER 021614 4780C64A:4780C882
ALTER 0217EC 4710C824:4710C824
ALTER 021804 07FE:0B0E
ALTER 021806 00000000:41E0C040
ALTER 02180A 00000000:56E0C840
ALTER 02180E 0000:0B0E
ALTER 021810 00000000:80000000
ALTER 021814 00000000:41E0C824
ALTER 021818 00000000:54E0C84E
ALTER 02181C 0000:0B0E
ALTER 02181E 00000000:7FFFFFFF
ALTER 021822 00000000:41E0C1E4
ALTER 021826 00000000:47F0C848
ALTER 02182A 00000000:41E0C256
ALTER 02182E 00000000:47F0C83A
ALTER 021832 00000000:41E0C348
ALTER 021836 00000000:47F0C848
ALTER 02183A 00000000:41E0C592
ALTER 02183E 00000000:47F0C83A
ALTER 021842 00000000:41E0C686
ALTER 021846 00000000:47F0C83A
ALTER 02184A 00000000:41E0C5D8
ALTER 02184E 00000000:47F0C848
ALTER 021852 00000000:41E0C64A
ALTER 021856 00000000:47F0C83A
AFFECTS PHASES=(PKUNZIP)
ALTER 01F3F8 58F0C55405EF:58F0C5540DEF
ALTER 01F406 5870B070:47F0C4C6
ALTER 01F428 4780C158:4780C4DC
ALTER 01F81E 00000000:4170C4D4
ALTER 01F822 00000000:5670C4D0
ALTER 01F826 0000:0B07
ALTER 01F828 00000000:80000000
ALTER 01F82C 00000000:5870B070
ALTER 01F830 00000000:47F0C0B2
ALTER 01F834 00000000:4180C158
ALTER 01F838 00000000:5480C4E6
ALTER 01F83C 0000:0B08
ALTER 01F83E 00000000:7FFFFFFF
ALTER 01FC46 47F0C040:47F0C156
ALTER 01FD7C 4710C144:4710C164
ALTER 01FD96 00000000:41E0C040
ALTER 01FD9A 00000000:56E0C160
ALTER 01FD9E 0000:0B0E
ALTER 01FDA0 00000000:80000000
ALTER 01FDA4 00000000:41E0C144
ALTER 01FDA8 00000000:54E0C16E
ALTER 01FDAC 0000:0B0E
ALTER 01FDAE 00000000:7FFFFFFF
ALTER 01FE1E 47F0C040:47F0C1FA
ALTER 01FFDC 58F0211C:47F0C216
ALTER 01FFF8 4710C1E8:4710C208
ALTER 020012 00000000:41E0C040
ALTER 020016 00000000:56E0C204
ALTER 02001A 0000:0B0E
ALTER 02001C 00000000:80000000
ALTER 020020 00000000:41E0C1E8
ALTER 020024 00000000:54E0C212
ALTER 020028 0000:0B0E
ALTER 02002A 00000000:7FFFFFFF
ALTER 02002E 00000000:58F0211C
ALTER 020032 00000000:41E0C1C8
ALTER 020036 00000000:47F0C20C
ALTER 02009E 47F0C040:47F0C21A
ALTER 020298 4710C208:4710C228
ALTER 0202B2 00000000:41E0C040
ALTER 0202B6 00000000:56E0C224
ALTER 0202BA 0000:0B0E
ALTER 0202BC 00000000:80000000
ALTER 0202C0 00000000:41E0C208
ALTER 0202C4 00000000:54E0C232
ALTER 0202C8 0000:0B0E
ALTER 0202CA 00000000:7FFFFFFF
ALTER 02034E 47F0C040:47F0C3F6
ALTER 0203DC 4510C0BC:4510C412
ALTER 020488 4780C252:4780C41A
ALTER 02052C 4780C1EA:4780C422
ALTER 020590 58F0211C:47F0C43A
ALTER 0205A8 0000100058F0F000:0000200058F0F000
ALTER 02064C 4510C324:4510C42A
ALTER 0206D8 4780C396:4780C432
ALTER 020722 4710C3E4:4710C3E4
ALTER 02073C 07FE:0B0E
ALTER 02073E 00000000:41E0C040
ALTER 020742 00000000:56E0C400
ALTER 020746 0000:0B0E
ALTER 020748 00000000:80000000
ALTER 02074C 00000000:41E0C3E4
ALTER 020750 00000000:54E0C40E
ALTER 020754 0000:0B0E
ALTER 020756 00000000:7FFFFFFF
ALTER 02075A 00000000:41E0C0BC
ALTER 02075E 00000000:47F0C408
ALTER 020762 00000000:41E0C252
ALTER 020766 00000000:47F0C3FA
ALTER 02076A 00000000:41E0C1EA
ALTER 02076E 00000000:47F0C3FA
ALTER 020772 00000000:41E0C324
ALTER 020776 00000000:47F0C408
ALTER 02077A 00000000:41E0C396
ALTER 02077E 00000000:47F0C3FA
ALTER 020782 00000000:58F0211C
ALTER 020786 00000000:41E0C24C
ALTER 02078A 00000000:47F0C408
ALTER 020A9E 47F0C040:47F0C836
ALTER 020B84 0000100058F0F000:0000200058F0F000
ALTER 020C54 4510C1E4:4510C852
ALTER 020CE8 4780C256:47F0C85A
ALTER 020DB8 4510C348:4510C862
ALTER 020F22 47F0C686:47F0C872
ALTER 021024 4780C592:4780C86A
ALTER 021050 4510C5D8:4510C87A
ALTER 0210DC 4780C64A:4780C882
ALTER 0212B4 4710C824:4710C824
ALTER 0212CC 07FE:0B0E
ALTER 0212CE 00000000:41E0C040
ALTER 0212D2 00000000:56E0C840
ALTER 0212D6 0000:0B0E
ALTER 0212D8 00000000:80000000
ALTER 0212DC 00000000:41E0C824
ALTER 0212E0 00000000:54E0C84E
ALTER 0212E4 0000:0B0E
ALTER 0212E6 00000000:7FFFFFFF
ALTER 0212EA 00000000:41E0C1E4
ALTER 0212EE 00000000:47F0C848
ALTER 0212F2 00000000:41E0C256
ALTER 0212F6 00000000:47F0C83A
ALTER 0212FA 00000000:41E0C348
ALTER 0212FE 00000000:47F0C848
ALTER 021302 00000000:41E0C592
ALTER 021306 00000000:47F0C83A
ALTER 02130A 00000000:41E0C686
ALTER 02130E 00000000:47F0C83A
ALTER 021312 00000000:41E0C5D8
ALTER 021316 00000000:47F0C848
ALTER 02131A 00000000:41E0C64A
ALTER 02131E 00000000:47F0C83A
/*
// EXEC LISTLOG
/&
* $$ EOJ
Regardless of whether this patch is applied, it is helpful to minimize the storage required for indexes by doing the following when processing large files:
· Use the largest possible block size (see ARCHBLKSIZ command).
· Use the best compression method possible (given the time available for the compression).
· On ZIP, make sure the file is being compressed into an empty archive.
Even with the patch applied, the partition size might provide a restriction to the size of archive that can be processed. For example, assume that there is 24 megabytes available for indexes during a ZIP process (i.e. 256 byte per record overhead). In 24 megabytes, there is room for just under 200,000 index entries, which at the default 6160 bytes per record setting, means the largest archive that can be created is just over 1 gigabyte.
However, using a 32750 byte block size, and performing the same calculation demonstrates that 24 megabytes is sufficient space to process a 4 gigabyte archive (the maximum supported by PKZIP).
In a 30 megabyte partition, after application of this fix, and using a sufficiently large block size, it should be possible to:
· Create a 4 gigabyte archive using PKZIP.
· Extract from a 4 gigabyte archive, using PKUNZIP.
May 2000
P0101-L007-014
Error Description
This patch note documents a fix to PKZIP to assist use of the product in conjunction with the VSAMLITE product from Macro 4. In addition, it includes information about using PKZIP with a number of BIM products and with REXX.
When using PKZIP for VSE with Macro 4's VSAMLITE product, PKZIP will typically process the compressed (VSAMLITE) version of the file, rather than the expanded logical version.
This occurs because of an incorrectly sized dataset name area set up by PKZIP that causes VSAMLITE to assume that compression has not been used.
This patch increases the size of the dataset name area so that VSAMLITE will correctly extract the information it needs to determine whether the file is one of its compressed datasets.
Corrective Action
For users with level 7, the following patch should be incorporated into modules PKZIP, PKUNZIP, ZFHRVSVS and ZFHWVSVS.
*
$$ JOB
* $$ LST
// JOB
PKZAP14
// OPTION LOG,NOSYSDUMP
// LIBDEF *,SEARCH=(PRD1.BASE),TEMP
// EXEC MSHP
PATCH
SUBLIBRARY=T4ZIP.TST217
AFFECTS
PHASES=(PKZIP)
ALTER 01ED18
4100B018:47F0C9A6
ALTER 01EFD6
000000000000:D22BB1B4B018
ALTER 01EFDC
00000000:9240B1E0
ALTER 01EFE0
000000000000:D22AB1E1B1E0
ALTER 01EFE6
00000000:4100B1B4
ALTER 01EFEA
00000000:47F0C6EC
ALTER 01F074
000001B4:00000210
ALTER 01F464
4100B018:47F0C65A
ALTER 01F7A2
000000000000:D22BB1B4B018
ALTER 01F7A8
00000000:9240B1E0
ALTER 01F7AC
000000000000:D22AB1E1B1E0
ALTER 01F7B2
00000000:4100B1B4
ALTER 01F7B6
00000000:47F0C320
ALTER 01F834
000001B4:00000210
ALTER 01FE20
000001B4:00000210
AFFECTS
PHASES=(PKUNZIP)
ALTER 01E7E0
4100B018:47F0C99A
ALTER 01EA92
000000000000:D22BB1B4B018
ALTER 01EA98
00000000:9240B1E0
ALTER 01EA9C
000000000000:D22AB1E1B1E0
ALTER 01EAA2
00000000:4100B1B4
ALTER 01EAA6
00000000:47F0C6EC
ALTER 01EB3C
000001B4:00000210
ALTER 01EF2C
4100B018:47F0C65A
ALTER 01F26A
000000000000:D22BB1B4B018
ALTER 01F270
00000000:9240B1E0
ALTER 01F274
000000000000:D22AB1E1B1E0
ALTER 01F27A
00000000:4100B1B4
ALTER 01F27E
00000000:47F0C320
ALTER 01F2FC
000001B4:00000210
ALTER 01F8E8
000001B4:00000210
AFFECTS
PHASES=(ZFHRVSVS)
ALTER 000F24
00000100:00000160
ALTER 001358
4100B038:47F0C840
ALTER 001770
000000000000:D22BB100B038
ALTER 001776
00000000:9240B12C
ALTER 00177A
000000000000:D22AB12DB12C
ALTER 001780
00000000:4100B100
ALTER 001784
00000000:47F0C42C
ALTER 0030BC
00000100:00000160
AFFECTS
PHASES=(ZFHWVSVS)
ALTER 004014
00000090:00000150
ALTER 00482E
4100B038:47F0C9E2
ALTER 004A3A
000000000000:D22BB090B038
ALTER 004A40
00000000:9240B11C
ALTER 004A44
000000000000:D22AB11DB11C
ALTER 004A4A
00000000:4100B090
ALTER 004A4E
00000000:47F0C7DA
/*
// EXEC
LISTLOG
/&
* $$
EOJ
Note
Though this patch has been developed specifically for the VSAMLITE product, it should be applied in all installations, in case other products have a similar dependency on the size of the dataset name area.
PKZIP and BIM products
PKZIP
processing may Abend with a protection exception when used in conjunction with a
number of BIM products. This problem is resolved by upgrading the shared
BIMVSR subsystem.
Specifically, if any of the
following products, BIM-BUFF 2.0E, BIM-PACK 4.0G or BIM-JOURNAL 2.2C, are
installed without an upgrade to (at least) 1.0I of the BIMVSR subsystem used by
all the above products, BIM FIX 16822 must be applied to prevent a protection
exception fault.
PKZIP and REXX
It is
possible to invoke PKZIP and PKUNZIP using REXX. Users planning to use
this facility should be aware of the following:
1. PKZIP and PKUNZIP complete their processing using
the EOJ macro. Programs invoked by REXX that use this macro should be
placed in the table of authorized programs (ARXEOJTB) which allows programs
using the EOJ macro to return to REXX rather than terminating the jobstep.
2. PKZIP for VSE uses the EOJ cleanup to free some
its resources. Calling PKZIP or PKUNZIP repeatedly without terminating the
REXX routine will delay the freeing of these resources, to the extent that PKZIP
or PKUNZIP may not execute correctly.
Date Issued
January 2001
P0005-L007-015
Error Description
When
processing some archives, PKZIP and PKUNZIP can generate the following
message
UNZIP404E ZIP archive file has an invalid
format
When processed on another platform, the archive
is valid.
In this case, the message occurs because ZIP
processing can not find the ZIP directory (also known as the Central End), which
is located at the end of the archive (note that this message may also be issued
in other circumstances when PKZIP believes the archive is not valid).
This problem is typically caused when transferring an
archive from another platform to a fixed length file, where there is more than
900 bytes of 'free space' left at the end of the last record (which means that
the record length of the target file must be > 1024 bytes). Even then,
it will only happen when the position of the ZIP directory occurs on the
boundary of an internal buffer.
This patch ensures that
PKZIP/PKUNZIP detection of the ZIP directory is not impacted by the position of
the directory relative to the internal buffer.
Corrective Action
For users with
level 7, the following patch should be incorporated into PKZIP and
PKUNZIP.
* $$ JOB ...
* $$ LST ...
// JOB PKZAP15
* PATCH 15 FOR PKZIP
//
OPTION LOG,NOSYSDUMP
// LIBDEF
*,SEARCH=(PRD1.BASE),TEMP
// EXEC MSHP
PATCH SUBLIBRARY=T4ZIP.TST217
AFFECTS PHASES=(PKZIP)
ALTER 01D736 41110010:47F0C5A6
ALTER 01D820 5A70D0B0:47F0C5B4
ALTER 01DBDE 00000000:41110010
ALTER 01DBE2 000000000000:D7FF14001400
ALTER 01DBE8 00000000:47F0C102
ALTER 01DBEC 00000000:5A70D0B0
ALTER 01DBF0 00000000:41707100
ALTER 01DBF4 00000000:47F0C1EC
AFFECTS PHASES=(PKUNZIP)
ALTER 01D1FE 41110010:47F0C5A6
ALTER 01D2E8 5A70D0B0:47F0C5B4
ALTER 01D6A6 00000000:41110010
ALTER 01D6AA 000000000000:D7FF14001400
ALTER 01D6B0 00000000:47F0C102
ALTER 01D6B4 00000000:5A70D0B0
ALTER 01D6B8 00000000:41707100
ALTER 01D6BC 00000000:47F0C1EC
/*
// EXEC LISTLOG
/&
* $$ EOJ
Date Issued
February 2001
P0005-L007-016
Error Description
When compressing multiple files, PKZIP can occasionally Abend with the following message:
0S03I PROGRAM CHECK INTERRUPTION - HEX LOCATION 00xxxxxx - INTERRUPTION CODE 01 - OPERATION EXCEPTION
The failing
location will be x' 20A24' from the start of the partition.
This error is caused by the incorrect use of shared storage
by the write processing associated with both the temporary file and ZIP
archive. The problem will only occur when the separate compression and
archive handling tasks both attempt to write data at the same time, and some
event (typically external to PKZIP) causes VSE to stop one task and dispatch the
other at a critical phase in the processing.
This
problem will only happen when processing multiple files and is more likely on
heavily loaded systems with larger files.
This patch
ensures that the shared storage is not re-used.
Corrective Action
For users with level 7, the following patch should be incorporated into PKZIP.
*
$$ JOB ...
* $$ LST ...
// JOB
PKZAP16
* PATCH 16 FOR PKZIP
// OPTION LOG,NOSYSDUMP
// LIBDEF
*,SEARCH=(PRD1.BASE),TEMP
// EXEC MSHP
PATCH SUBLIBRARY=T4ZIP.TST217
AFFECTS PHASES=(PKZIP)
ALTER 02090C 5070C0B0:5070900C
ALTER 020910 5080C0B8:50809010
ALTER 020C92 41E0C0BC:41E0C12E
/*
// EXEC LISTLOG
/&
* $$ EOJ
Note
Patch 13 must be applied before applying this patch.
Date Issued
February 2001
P0106-L007-017
Error Description
This is a
compatibility patch.
Attributes created by PKZIP
for VSE 4.0, or other platforms that are not used on PKZIP for VSE, will result
in message 518 when the archive is viewed using VIEWDETAIL. Message 518
should be changed from a warning message to an information message.
Unknown attributes are usually not a problem, especially when archives are
transferred between PKZIP on various platforms or between levels of PKZIP for
MVS.
This patch ensures that the message 518 is
an information message and does not set the return code.
Corrective Action
For users with level 7, the following patch should be incorporated into PKZIPMS.
* $$ JOB ...
* $$ LST ...
// JOB
PKZAP17
* PATCH 17 FOR PKZIP
// OPTION LOG,NOSYSDUMP
// LIBDEF
*,SEARCH=(PRD1.BASE),TEMP
// EXEC MSHP
PATCH
SUBLIBRARY=T4ZIP.TST217
AFFECTS PHASES=(PKZIPMS)
ALTER 003352 001A0004:001A0000
ALTER 003359
E6E49592:C9E49592
/*
// EXEC LISTLOG
/&
* $$ EOJ
Date Issued
June 2001
Error Description
This patch fixes two problems:
When processing an archive that contains a ZIP Comment, the comment is not displayed correctly. This patch fixes this problem by changing the code to look in the correct place for the comment.
When running UNZIP for a number of files, PKUNZIP may Abend with a ‘lack of storage” related code, for example a U0008 User Abend.
These Abends are caused because the PKUNZIP component responsible for writing the output files (ZFHWVSVS), does not free all the buffers associated with its processing.
It is not possible to patch in the changes necessary to free these buffers, so this fix is only available as replacement module for ZFHWVSVS. With this fix applied, most of the storage associated with an output file is released when the file is closed. There is a small amount of “leakage” so storage related Abends are still possible, however this fix will enable most installations to process large numbers of ZIP files in a reasonable size partition.
Corrective Action
For users with level 7, the following steps should be used.
In addition, to ensure that any ZIP Comment displays correctly, the following fix should be incorporated into PKZIP and PKUNZIP:
* $$ JOB ... Date Issued
July 2002 Error Description
This patch clarifies and improves PKZIP for VSE handling of multivolume files.:
PKZIP and PKUNZIP will process multivolume input files and archives. However, PKZIP for VSE does not directly support the creation of multivolume output archives or output files, as PKZIP and PKUNZIP commands that are used to identify target volumes do not support the specification of multiple volumes.
Support for creating multivolume files is provided indirectly through the use of a VSAM MODEL. Multiple volume output archives and files can be specified using the default MODEL and the OUTMODEL command respectively, when the defaulted or specified MODEL has an appropriate space allocation.
When creating an output file, PKUNZIP will use the attributes found in the archive to assist in the specification of the new file. If the file being extracted has VSAM attributes, then these will be used by PKUNZIP to override the Model. As these attributes typically include Volume information, processing the attributes included with an archive may result in only a single volume being used (as specified in the attributes). To ensure this is not a problem, the NOATTRIB command is changed by this patch to work with the OUTMODEL command.
Also included with this patch are a number of updates to OUT commands related to multivolume processing that should clarify their use with the OUTMODEL command.
Note that this change does not effect the pre-allocation of an output file with the VSAM REUSE parameter, with the file subsequently being used by PKUNZIP with the OVERWRITE command. This method may be used to create multivolume output files with or without this patch.
Corrective Action
For users with level 7, the following patch should be incorporated into PKZIP and PKUNZIP.
Note Patch 18 must be applied before applying this Patch.
Date Issued
January 2004 Error Description
Please use the following instructions (in italics) to update the manual for the indicated commands.
-OUTATTR The note should be updated as follows:
Note: This value, or a value stored in the file attributes, must be available for UNZIP processing, even when an OUTMODEL is used.
-OUTKEYS A note should be added as follows:
Note: This value, or a value stored in the file attributes, must be available for UNZIP processing, even when an OUTMODEL is used.
-OUTMODEL A note should be added as follows:
Note: When creating an output file, PKUNZIP will use the attributes found in the archive to assist in the specification of the new file. If the file being extracted has VSAM attributes, then these may be used by PKUNZIP to override the Model in a way that is not desirable. For example, as Volume information is typically included as an attribute, using the attributes may result in an incorrect volume being used. Where this is a problem, the NOATTRIB command should be specified to ensure that attributes from the archive (i.e. from the original file) are not used.
To supply PKUNZIP with the information it needs to process the file, the OUTATTR and OUTRECORDSIZE (and for KSDS files, the OUTKEYS) commands may need to be specified to PKUNZIP, even if the equivalent attribute is specified in the identified MODEL.
-OUTRECORDSIZE The last sentence of the note should be updated as follows:
Note: This value, or a value stored in the file attributes, must be available for UNZIP processing, even when an OUTMODEL is used.
* $$ JOB ...
* $$ LST ...
// JOB PKZAP18A
* PATCH 18A FOR PKZIP
// OPTION LOG,NOSYSDUMP
// LIBDEF *,SEARCH=T4ZIP.TST217
// LIBDEF PHASE,CATALOG=T4ZIP.TST217
// OPTION CATAL
INCLUDE ZFHWVSVS
// EXEC LNKEDT
/*
// EXEC LISTLOG
/&
* $$ EOJ
This fixes the Storage Abend problem.
* $$ LST ...
// JOB PKZAP18B
* PATCH 18B FOR PKZIP
// OPTION LOG,NOSYSDUMP
// LIBDEF *,SEARCH=(PRD1.BASE),TEMP
// EXEC MSHP
PATCH SUBLIBRARY=T4ZIP.TST217
AFFECTS PHASES=(PKZIP)
ALTER 01D88C 18085A00C63C:1E9641008010
AFFECTS PHASES=(PKUNZIP)
ALTER 01D354 18085A00C63C:1E9641008010
/*
// EXEC LISTLOG
/&
* $$ EOJ
* $$ JOB ...
* $$ LST ...
// JOB PKZAP19
* PATCH 19 FOR PKZIP
// OPTION LOG,NOSYSDUMP
// LIBDEF *,SEARCH=(PRD1.BASE),TEMP
// EXEC MSHP
PATCH SUBLIBRARY=T4ZIP.TST217
AFFECTS PHASES=(ZFHWVSVS)
ALTER 000756 4770C0E0:47F0C0E0
AFFECTS PHASES=(ZFSUDFVS)
ALTER 00E2E2 58609008:47F0CE3E
ALTER 00E346 00000000:58609008
ALTER 00E34A 00000000:95002296
ALTER 00E34E 00000000:4770CDDE
ALTER 00E352 0000:1766
ALTER 00E354 00000000:47F0CDDE
/*
// EXEC LISTLOG
/&
* $$ EOJ