README.CMS
上传用户:andy_li
上传日期:2007-01-06
资源大小:1019k
文件大小:16k
源码类别:

压缩解压

开发平台:

MultiPlatform

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