~ubuntu-branches/ubuntu/precise/unzip/precise-proposed

« back to all changes in this revision

Viewing changes to cmsmvs/README.CMS

  • Committer: Bazaar Package Importer
  • Author(s): Santiago Vila
  • Date: 2004-06-06 17:57:46 UTC
  • Revision ID: james.westby@ubuntu.com-20040606175746-nl7p2dgp3aobyc2c
Tags: upstream-5.51
ImportĀ upstreamĀ versionĀ 5.51

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
Using ZIP and UNZIP on VM/CMS
 
2
=============================
 
3
 
 
4
 
 
5
Installing executables
 
6
----------------------
 
7
 
 
8
The following CMS MODULEs are available:
 
9
   ZIP
 
10
   ZIPNOTE
 
11
   ZIPCLOAK
 
12
   ZIPSPLIT
 
13
   UNZIP
 
14
 
 
15
In addition to these, each MODULE file also has an EXEC with the same
 
16
name.  These EXECs are front-ends to the MODULES that will attempt to
 
17
set up the required runtime libraries before running the MODULE.
 
18
All the EXECs are identical.  Only their names are different.
 
19
They are stored as plain text files.
 
20
 
 
21
The CMS MODULE files have been packed using the COPYFILE command to
 
22
allow their file format to be properly restored, since variable length
 
23
binary files will not currently unzip properly (see below for details).
 
24
The MODULEs are shipped with a filetype or extension of CMO (for CMS
 
25
MODULE).  Their names may vary on the distribution disk to indicate
 
26
their level, etc.
 
27
 
 
28
To restore them to executable MODULEs on CMS, do the following:
 
29
   1. Upload them to CMS with a Fixed record length with LRECL 1024.
 
30
      Example, from a DOS or OS/2 window, type this:
 
31
         SEND unzip.cmo A:unzip module a (RECFM F LRECL 1024
 
32
 
 
33
      Example, using FTP from CMS, type this:
 
34
         BINARY FIXED 1024
 
35
         GET unzip.cmo unzip.module.a
 
36
 
 
37
      Note:  Replace "unzip.cmo" with the actual name.
 
38
 
 
39
   2. Use COPYFILE to unpack the file.
 
40
      Example, in CMS type this:
 
41
         COPYFILE UNZIP MODULE A (UNPACK REPLACE OLDDATE
 
42
 
 
43
   3. Repeat steps 1-2 for each of the programs.
 
44
 
 
45
   4. Build the ZIPINFO module by typing this:
 
46
         COPYFILE UNZIP MODULE A ZIPINFO MODULE A (OLDDATE
 
47
 
 
48
   5. Upload the EXECs to CMS as text files (with ASCII-to-EBCDIC
 
49
      translation).
 
50
      Example, from a DOS or OS/2 window, type this:
 
51
         SEND unzip.exc A:unzip exec a (CRLF
 
52
 
 
53
      Example, using FTP from CMS, type this:
 
54
         GET unzip.exc unzip.exec.a
 
55
 
 
56
   6. Repeat steps 4 for each of the EXECs.
 
57
 
 
58
 
 
59
Preparing the environment
 
60
-------------------------
 
61
 
 
62
The executables provided were compiled with IBM C 3.1.0 and
 
63
require the the Language Environment (LE) runtime libraries.
 
64
 
 
65
To provide access to the runtime libraries:
 
66
   1. Link to the disk containing the Language Environment files,
 
67
      if necessary.
 
68
 
 
69
   2. Use the command "GLOBAL LOADLIB SCEERUN"
 
70
 
 
71
   These commands can be placed in your PROFILE EXEC.
 
72
 
 
73
   Note:  EXECs have been provided called ZIP, UNZIP, etc. that
 
74
   issue the GLOBAL LOADLIB statement.  This was done to alleviate
 
75
   frustration of users that don't have the GLOBAL LOADLIB statement
 
76
   in their PROFILE EXEC.  These EXECs may require changing for
 
77
   your system.
 
78
 
 
79
   Unfortunately, there is no way, using IBM C, to produce a MODULE
 
80
   that doesn't require a runtime library.
 
81
 
 
82
 
 
83
Testing
 
84
-------
 
85
 
 
86
To test the MODULEs, just type ZIP or UNZIP.  They should
 
87
show help information on using the commands.
 
88
 
 
89
If you see something like this:
 
90
   DMSLIO201W The following names are undefined:
 
91
    CEEEV003
 
92
   DMSABE155T User abend 4093 called from 00DCD298 reason code 000003EB
 
93
 
 
94
Then you don't have access to the proper runtime libraries, as
 
95
described above.
 
96
 
 
97
Here is additional information on the ZIP and UNZIP programs that
 
98
may assist support personnel:
 
99
   - Compiled with IBM C V3R1M0 on VM/ESA 2.2.0 with
 
100
     CMS level 13 Service Level 702.
 
101
 
 
102
   - Require the SCEERUN LOADLIB runtime library.  This is
 
103
     part of the Language Environment (LE).
 
104
 
 
105
   - Linked with options RMODE ANY AMODE ANY RLDSAVE.
 
106
 
 
107
If you continue to have trouble, report the problem to Zip-Bugs
 
108
(see the bottom of this document).
 
109
 
 
110
 
 
111
 
 
112
Compiling the source on VM/CMS
 
113
------------------------------
 
114
 
 
115
The source has been successfully compiled previously using
 
116
C/370 2.1 and 2.2.  The source has been recently compiled using
 
117
IBM C 3.1.0 on VM/ESA 2.2.0 with CMS level 13.  I don't have
 
118
access to an MVS system so the code hasn't been tested there
 
119
in a while.
 
120
 
 
121
 1. Unzip the source files required for CMS.  The root-level files
 
122
    inside the ZIP file and the files in the CMSMVS subdirectory are
 
123
    needed.  Example (use both commands):
 
124
       unzip -aj zip23.zip -x */*   -dc
 
125
       unzip -aj zip23.zip cmsmvs/* -dc
 
126
 
 
127
    This example unzips the files to the C-disk, while translating
 
128
    character data and ignoring paths.
 
129
 
 
130
    If you don't already have a working UNZIP MODULE on CMS you will
 
131
    have to unzip the files on another system and transport them
 
132
    to CMS.  All the required files are plain text so they can
 
133
    be transferred with ASCII-to-EBCDIC translations.
 
134
 
 
135
 2. Repeat step 1 with the zip file containing the UNZIP code.
 
136
    Unzip the files to a different disk than the disk used for the ZIP
 
137
    code.
 
138
 
 
139
 3. To compile the ZIP code, run the supplied CCZIP EXEC.
 
140
    To compile the UNZIP code, run the supplied CCUNZIP EXEC.
 
141
 
 
142
NOTE:
 
143
Some of the ZIP and UNZIP source files have the same name.  It is
 
144
recommended that you keep the source from each on separate disks and
 
145
move the disk you are building from ahead of the other in the search
 
146
order.
 
147
 
 
148
For example, you may have a 192 disk with the ZIP source code and
 
149
a 193 disk with the UNZIP source code.  To compile ZIP, access
 
150
the 192 disk as B, then run CCZIP.  This will create the following
 
151
modules:  ZIP, ZIPNOTE, ZIPSPLIT, ZIPCLOAK.
 
152
 
 
153
To compile UNZIP, access 193 as B, then run CCUNZIP.  This will create
 
154
the following modules:  UNZIP, ZIPINFO (a copy of UNZIP).
 
155
 
 
156
 
 
157
=========================================================================
 
158
 
 
159
 
 
160
Using ZIP/UNZIP
 
161
---------------
 
162
 
 
163
Documentation for the commands is in MANUAL NONAME (for ZIP) and in
 
164
UNZIP DOC UNZIP.  INFOZIP DOC describes the use of the -Z option of
 
165
UNZIP.
 
166
 
 
167
The rest of this section explains special notes concerning the VM/CMS
 
168
version of ZIP and UNZIP.
 
169
 
 
170
 
 
171
Filenames and directories
 
172
-------------------------
 
173
 
 
174
 1. Specifying filenames
 
175
 
 
176
    a. When specifying CMS files, use filename.filetype.filemode format
 
177
       (separate the three parts of the name with a period and use no
 
178
       spaces).  Example:  profile.exec.a
 
179
 
 
180
       Unfortunately, this prevents you from using ZIP from
 
181
       FILELIST.  To unzip a zip file, however, you can type something
 
182
       like this next to it in FILELIST:
 
183
          unzip /n -d c
 
184
 
 
185
       This will unzip the contents of the current file to a C-disk.
 
186
 
 
187
    b. It is possible to use DD names with ZIP and UNZIP on CMS, though
 
188
       it can be cumbersome.  Example:
 
189
          filedef out disk myzip zip a
 
190
          zip dd:out file1.txt file2.txt
 
191
 
 
192
       While you can also use a DD name for the input files, ZIP
 
193
       currently does not correctly resolve the filename and will
 
194
       store something like "dd:in" inside the ZIP file.  A file stored
 
195
       in this manor cannot easily be unzipped, as "dd:in" is an invalid
 
196
       filename.
 
197
 
 
198
    c. In places where a directory name would be used on a PC, such as
 
199
       for the ZIP -b (work path) option or the UNZIP -d (destination
 
200
       path) options, use a filemode letter for CMS.  For example,
 
201
       to unzip files onto a C-disk, you might type something like this:
 
202
          unzip myzip.zip -d c
 
203
 
 
204
       Currently, ZIP uses the A-disk for work files.  When zipping
 
205
       large files, you may want to specify a larger disk for work files.
 
206
       This example will use a C-disk for work files.
 
207
          zip -b C myzip.zip.c test.dat.a
 
208
 
 
209
 
 
210
 2. Filename conversions
 
211
 
 
212
    a. Filemode letters are never stored into the zip file or take from
 
213
       a zip file.  Only the filename and filetype are used.
 
214
       ZIP removes the filemode when storing the filename into the
 
215
       zip file.  UNZIP assumes "A" for the filemode unless the -d
 
216
       option is used.
 
217
 
 
218
    b. When unzipping, any path names are removed from the fileid
 
219
       and the last two period-separated words are used as the
 
220
       filename and filetype.  These are truncated to a maximum of
 
221
       eight characters, if necessary.  If the filetype (extension)
 
222
       is missing, then UNZIP uses "NONAME" for the filetype.
 
223
       Any '(' or ')' characters are removed from the fileid.
 
224
 
 
225
    c. All files are created in upper-case.  Files in mixed-case
 
226
       cannot currently be stored into a ZIP file.
 
227
 
 
228
    d. Shared File System (SFS) directories are not supported.
 
229
       Files are always accessed by fn.ft.fm.  To use an SFS disk,
 
230
       Assign it a filemode, then it can be used.
 
231
 
 
232
 
 
233
 3. Wildcards in file names
 
234
 
 
235
    a. Wildcards are not supported in the zip filename.  The full
 
236
       filename of the zip file must be given (but the .zip is not
 
237
       necessary).  So, you can't do this:
 
238
          unzip -t *.zip
 
239
 
 
240
    b. Wildcards CAN be used with UNZIP to select (or exclude) files
 
241
       inside a zip file.  Examples:
 
242
          unzip myzip *.c          - Unzip all .c files.
 
243
          unzip myzip *.c -x z*.c  - Unzip all .c files but those
 
244
                                     starting with Z.
 
245
 
 
246
    c. Wildcards cannot currently be used to select files with ZIP.
 
247
       So, you can't do this:
 
248
          zip -a myzip *.exec
 
249
 
 
250
       I expect to fix this for CMS in the future.
 
251
 
 
252
 
 
253
 4. File timestamps
 
254
 
 
255
    a. The dates and times of files being zipped or unzipped are not
 
256
       currently read or set.  When a file is zipped, the timestamp
 
257
       inside the zip file will always be the current system date and
 
258
       time.  Likewise, when unzipping, the date and time of files
 
259
       being unzipped will always be the current system date/time.
 
260
 
 
261
    b. Existing files are assumed to be newer than files inside a zip
 
262
       file when using the -f freshen option of UNZIP.  This will prevent
 
263
       overwriting files that may be newer than the files inside the
 
264
       zip file, but also effectively prevents the -f option from working.
 
265
 
 
266
 
 
267
 5. ASCII, EBCDIC, and binary data
 
268
 
 
269
    Background
 
270
    ----------
 
271
    Most systems create data files as just a stream of bytes.  Record
 
272
    breaks happen when certain characters (new line and/or carriage
 
273
    return characters) are encountered in the data.  How to interpret
 
274
    the data in a file is up to the user.  The system must be told
 
275
    to either notice new line characters in the data or to assume
 
276
    that the data in the file is binary data and should be read or
 
277
    written as-is.
 
278
 
 
279
    CMS and MVS are record-based systems.  All files are composed
 
280
    of data records.  These can be stored in fixed-length files or
 
281
    in variable length files.  With fixed-length files, each record
 
282
    is the same length.  The record breaks are implied by the
 
283
    LRECL (logical record length) attribute associated with the file.
 
284
    With variable-length files, each record contains the length of
 
285
    that record.  The separation of records are not part of the
 
286
    data, but part of the file structure.
 
287
 
 
288
    This means you can store any type of data in either type of file
 
289
    structure without having to worry about the data being interpreted
 
290
    as a record break.  Fixed-length files may have padding at the
 
291
    end of the file to make up a full record.  Variable-length files
 
292
    have no padding, but require extra record length data be stored
 
293
    with the file data.
 
294
 
 
295
    Storing fixed-length files into a zip file is simple, because all
 
296
    the data can just be dumped into the zip file and the record
 
297
    format (RECFM) and logical record length (LRECL) can be stored
 
298
    in the extra data area of the zip file so they can be restored
 
299
    when UNZIP is used.
 
300
 
 
301
    Storing variable-length data is harder.  There is no place to put
 
302
    the record length data needed for each record of the file.  This
 
303
    data could be written to the zip file as the first two bytes of
 
304
    each record and interpreted that way by UNZIP.  That would make
 
305
    the data unusable on systems other than CMS and MVS, though.
 
306
 
 
307
    Currently, there isn't a solution to this problem.  Each record is
 
308
    written to the zip file and the record length information is
 
309
    discarded.  Binary data stored in variable-length files can't be put
 
310
    into a zip file then later unzipped back into the proper records.
 
311
    This is fine for binary data that will be read as a stream of bytes
 
312
    but not OK where the records matter, such as with CMS MODULEs.
 
313
 
 
314
    If the data is text (character data), there is a solution.
 
315
    This data can be converted into ASCII when it's stored into
 
316
    a zip file.  The end of each record is now marked in the file
 
317
    by new line characters.  Another advantage of this method is
 
318
    that the data is now accessible to non-EBCDIC systems.  When
 
319
    the data is unzipped on CMS or MVS, it is converted back into
 
320
    EBCDIC and the records are recreated into a variable-length file.
 
321
 
 
322
 
 
323
    So, here's what we have...
 
324
 
 
325
    a. To store readable text data into a zip file that can be used
 
326
       on other platforms, use the -a option with ZIP to convert the
 
327
       data to ASCII.  These files will unzip into variable-length
 
328
       files on CMS and should not contain binary data or corruption
 
329
       may occur.
 
330
 
 
331
    b. Files that were zipped on an ASCII-based system will be
 
332
       automatically translated to EBCDIC when unzipped.  To prevent
 
333
       this (to unzip binary data on CMS that was sent from an
 
334
       ASCII-based system), use the -B option with UNZIP to force Binary
 
335
       mode.  To zip binary files on CMS, use the -B option with ZIP to
 
336
       force Binary mode.  This will prevent any data conversions from
 
337
       taking place.
 
338
 
 
339
    c. When using the ZIP program without specifying the "-a" or "-B"
 
340
       option, ZIP defaults to "native" (EBCDIC) mode and tries to
 
341
       preserve the file information (RECFM, LRECL, and BLKSIZE).  So
 
342
       when you unzip a file zipped with ZIP under CMS or MVS, UNZIP
 
343
       restores the file info.  The output will be fixed-length if the
 
344
       original was fixed and variable-length if the original was
 
345
       variable.
 
346
 
 
347
    If UNZIP gives a "write error (disk full?)"  message, you may be
 
348
    trying to unzip a binary file that was zipped as a text file
 
349
    (without using the -B option)
 
350
 
 
351
 
 
352
    Summary
 
353
    -------
 
354
    Here's how to ZIP the different types of files.
 
355
 
 
356
    RECFM F text
 
357
       Use the -a option with ZIP to convert to ASCII for use with other
 
358
       platforms or no options for use on EBCDIC systems only.
 
359
 
 
360
    RECFM V text
 
361
       Use the -a option with ZIP to convert to ASCII for use with other
 
362
       platforms or no options for use on EBCDIC systems only.
 
363
 
 
364
 
 
365
    RECFM F binary
 
366
       Use the -B option with ZIP (upper-case "B").
 
367
 
 
368
    RECFM V binary
 
369
       Use the -B option with ZIP.  Can be zipped OK but the record
 
370
       structure is destroyed when unzipped.  This is OK for data files
 
371
       read as binary streams but not OK for files such as CMS MODULEs.
 
372
 
 
373
 
 
374
 6. Character Sets
 
375
 
 
376
    If you are used to running UNZIP on systems like UNIX, DOS, OS/2 or
 
377
    Windows, you will may have some problems with differences in the
 
378
    character set.
 
379
 
 
380
    There are a number of different EBCDIC code pages, like there are a
 
381
    number of different ASCII code pages.  For example, there is a US
 
382
    EBCDIC, a German EBCDIC, and a Swedish EBCDIC.  As long as you are
 
383
    working with other people who use the same EBCDIC code page, you
 
384
    will have no trouble.  If you work with people who use ASCII, or who
 
385
    use a different EBCDIC code page, you may need to do some
 
386
    translation.
 
387
 
 
388
    UNZIP translates ASCII text files to and from Open Systems EBCDIC
 
389
    (IBM-1047), which may not be the EBCDIC that you are using.  For
 
390
    example, US EBCDIC (IBM-037) uses different character codes for
 
391
    square brackets.  In such cases, you can use the ICONV utility
 
392
    (supplied with IBM C) to translate between your EBCDIC character set
 
393
    and IBM-1047.
 
394
 
 
395
    If your installation does not use IBM-1047 EBCDIC, messages from
 
396
    UNZIP may look a little odd.  For example, in a US EBCDIC
 
397
    installation, an opening square bracket will become an i-acute and a
 
398
    closing square bracket will become a u-grave.
 
399
 
 
400
    The supplied ZIP and UNZIP EXECs attempt to correct this by setting
 
401
    CMS INPUT and OUTPUT translations to adjust the display of left and
 
402
    right brackets.  You may need to change this if brackets don't
 
403
    display correctly on your system.
 
404
 
 
405
 
 
406
 7. You can unzip using VM/CMS PIPELINES so unzip can be used as
 
407
    a pipeline filter.  Example:
 
408
       'PIPE COMMAND UNZIP -p test.zip george.test | Count Lines | Cons'
 
409
 
 
410
 
 
411
 
 
412
 
 
413
Please report all bugs and problems to:
 
414
   Zip-Bugs@lists.wku.edu
 
415
 
 
416
 
 
417
-----------------------------------------------------------------------
 
418
Original CMS/MVS port by George Petrov.
 
419
e-mail:  c888090@nlevdpsb.snads.philips.nl
 
420
tel:     +31-40-781155
 
421
 
 
422
Philips C&P
 
423
Eindhoven
 
424
The Netherlands
 
425
 
 
426
-----------------------------------------------------------------------
 
427
Additional fixes and README re-write (4/98) by Greg Hartwig.
 
428
e-mail:  ghartwig@ix.netcom.com
 
429
         ghartwig@vnet.ibm.com
 
430
 
 
431
-----------------------------------------------------------------------
 
432
Additional notes from Ian E. Gorman.
 
433
e-mail:  ian@iosphere.net
 
434