PIP(8)                                                     PIP(8)

     NAME
          pip - CD-ROM workbench

     SYNOPSIS
          disk/pip

     DESCRIPTION
          Pip is a SCSI I/O program centered around a SCSI disk of
          files called tracks.  Various commands will load and store
          tracks from and to various CD-ROM readers, writers, and
          files.  Pip was written to be run on a stand-alone worksta-
          tion so that the I/O data rates required for CD-audio can be
          sustained.

          When pip starts, it probes the SCSI bus and looks for one of
          the following disks.  The table in the program should be
          extended to include your favorite disk.  The program does
          not recognize just any disk because it might scribble on
          precious data.
               SEAGATE ST42400N
               SEAGATE ST41520N
               SEAGATE ST410800N
          Pip looks for the following device for the CD ROM writer.
               IMS     CDD521/10
          Pip looks for one of the following devices for the CD ROM
          reader.  The Philips will not read cdda format and the NEC
          does not work well with pip. The Toshiba does not accurately
          seek on cdda media.  We recommend the Plextor.  The first
          column is the device name that should be given in the inter-
          active commands.
               plex PLEXTOR CD-ROM PX-4XCS
               tosh TOSHIBA CD-ROM DRIVE:XM
               phil IMS     CDD521/10
               nec  NEC     CD-ROM DRIVE:5001.0
               nec  NEC     CD-ROM DRIVE:8411.0

          The following commands are recognized.

          help          Print a one line description of each command.
          load device track format disktrack
                        A track is copied from the device to the des-
                        ignated track on the disk.  The track is a
                        number or *, designating all tracks.  If the
                        copy completes normally, the old data on that
                        disk track is lost.  format is either cdda or
                        cdrom.
          verif device track format disktrack
                        This is the same as load except that the data
                        is not copied, but compared to the data on the
                        disk.  The compare allows a slip of multiples

     PIP(8)                                                     PIP(8)

                        of four bytes as might occur copying an audio
                        CD with imprecise seek.
          store track file
                        The disk track is written to a regular Plan 9
                        file.  The track may be a number or *.  If the
                        track is *, then the string file is prefixed
                        to the track number for every track.
          toc [device]  Will print the table of contents of the speci-
                        fied device. If no device is given, then the
                        track table of contents of the disk is given.
          cleartoc      All tracks on the disk are deleted.
          remove track  The specified track on the disk is deleted.
          sum track     The specified disk track is read and check-
                        summed.
          publish track The specified disk track is copied to the next
                        track on the Philips CD writer.  The format of
                        the data is not specified until the table of
                        contents is written.  Although it is not
                        required, it is usual that all tracks are the
                        same format.
          fixate format Issue a fixate command to the Philips CD
                        writer.  Format is either cdda or cdrom.  This
                        makes the table of contents permanent.
          session format
                        Issue a session command to the Philips CD
                        writer.  This is the same as fixate except
                        that a second session is opened and more data
                        may be put on the CD.  Most readers can only
                        see the table of contents from the first ses-
                        sion.
          9660 proto track
                        A filesystem description is read from the
                        proto file in mkfs(8) format.  The file system
                        is converted to ISO 9660 format and written on
                        the specified disk track.
          The first line of the proto file for the 9660 command is
          parsed for options.  The following options are recognized.
          -c       Convert all file names in the file system so that
                   they conform to 9660 standards.  (Roughly this is
                   eight or fewer single case alphanumerics followed
                   by an optional period and three or fewer single
                   case alphanumerics.)  File names that conform are
                   converted from lower case letters in the input file
                   system to upper case in the output file system.
                   Names that do not conform are renamed to Fnumber
                   and directories are renamed Dnumber.  A file named
                   _CONFORM.MAP is created in the root of the output
                   file system with old-name new-name pairs of all
                   converted files.
          -e       Add a system-use field to every directory record
                   that contains the name, uid, gid, and mode of the
                   file.  With or without this extension, directory

     PIP(8)                                                     PIP(8)

                   records conform to the 9660 standard and should be
                   able to be read on other systems.
          -a file  Places the named file in the abstract field of the
                   primary volume descriptor.  The file must be in the
                   root directory.
          -b file  Places the named file in the bibliographic field of
                   the primary volume descriptor.  The file must be in
                   the root directory.
          -n file  Places the named file in the copyright field of the
                   primary volume descriptor.  The file must be in the
                   root directory.
          -s dir   Prefix the directory name dir to the names of files
                   in the proto file.  This permits a file tree to be
                   assembled cleanly under a special directory, to be
                   then copied into the new file system at the root.
          -v       Print each file name as it is copied.

          All dates in the output file system are set to the date the
          command was executed.  The volume identifier field of the
          primary volume descriptor is set to the last component of
          the proto file name.  The system identifier field of the
          primary volume descriptor is set to PLAN 9, and should be
          keyed to the interpretation of the system-use fields of the
          directory records.

     Example
          To cut your own audio CD with your favorite CDs:

          cleartoc
          load plex 5 cdda 1  # read track 5 from an audio CD
          load plex 2 cdda 2  # read track 2 from an audio CD
          load ...            # etc.
          publish *           # write all tracks to Philips CD writer
          fixate cdda         # write table of contents

          To cut your own 9660 CD-ROM:

          mount /srv/bootes /n/bootes   # make a clean, bind-free tree
          9660 mkfs 4         # make a 9660 image from a mkfs specification
                              # for the Plan 9 distribution
                              # the first line of mkfs is
                              # -s /n/bootes -c -e -n notice
          publish 4           # write 9660 image to Philips CD writer
          fixate cdrom        # write table of contents

     SOURCE
          /sys/src/cmd/disk/pip

     SEE ALSO
          mkfs(8)

     BUGS

     PIP(8)                                                     PIP(8)

          The program only knows about a few devices.  The tables and
          device code must be extended to be more comprehensive.  The
          industry has not adopted a standard way to read and write
          audio.