home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 4 Drivers / 04-Drivers.zip / ibmdasdf.zip / readme.txt < prev   
Text File  |  2002-09-27  |  44KB  |  1,061 lines

  1.   FIXED IDE HARD DRIVE AND REMOVABLE MEDIA SUPPORT
  2.  
  3.   September 06, 2002
  4.  
  5.   OS/2 Device Driver Development
  6.   IBM Solution Technologies
  7.   Austin, TX
  8.  
  9.   (c) Copyright International Business Machines Corporation, 2001, 2002.
  10.   All rights Reserved.
  11.  
  12.   CONTENTS
  13.   ________
  14.  
  15.   1.0  INTRODUCTION
  16.  
  17.   2.0  INSTALLATION
  18.   2.1  Updating the Installation Diskettes
  19.   2.2  Updating a Previously Installed Warp System
  20.  
  21.   3.0  LARGE HARD DRIVE CONSIDERATIONS
  22.   3.1  System Hang or Hard Drive Hesitation
  23.   3.2  Cannot Mark a Partition Installable
  24.   3.3  IPE on Boot, "Trap D"
  25.   3.4  Inconsistencies in Total Disk Space
  26.   3.5  Application Install Fails with "Not Enough Space"
  27.   3.6  Performance Problems With Two Devices on a Single Channel
  28.   3.7  Install Diskettes or Utility Diskettes Hang on Boot (APAR JR12065)
  29.   3.8  Additional Parameters For IDE Device Driver
  30.   3.9  Additional Parameters for IBMATAPI.FLT and IBMIDECD.FLT drivers
  31.  
  32.   4.0  REMOVABLE MEDIA SUPPORT
  33.   4.1  Partitioned Removable Media
  34.     4.1.1  Using Protected Media
  35.     4.1.2  Assignment of Drive Letters
  36.     4.1.3  Configuring Partition Support (OS2DASD)
  37.     4.1.4  Ejecting the media
  38.     4.1.5  Limitations of Partitioned Removable Media Support
  39.   4.2  Large Floppy Removable Media (LS-120)
  40.     4.2.1  Limitations of LS-120 Support
  41.   4.3 CD-ROM Device Manager (OS2CDROM.DMD)
  42.   4.4 CD-RW media support in IBMIDECD.FLT
  43.  
  44.   5.0 SUPPORTED CHIPSETS, KNOWN RESTRICTIONS AND LIMITATIONS
  45.   5.1 Supported chipset table
  46.   5.2 Known restrictions and limitations
  47.     5.2.1 Intel chipsets restrictions
  48.     5.2.2 VIA chipsets restrictions
  49.     5.2.3 SiS chipsets restrictions
  50.  
  51.   6.0  COPYRIGHT AND TRADEMARK INFORMATION
  52.  
  53.   1.0  INTRODUCTION
  54.   _________________
  55.  
  56.   FixPak 35 (FP35) for Warp 3 and FixPak 6 (FP6) for Warp 4 extended support
  57.   for fixed Enhanced IDE drives to sizes up to 8.4GB and added new caching HPFS
  58.   and FAT file system support for removable media drives such as SCSI Syquest
  59.   Syjet 1.5GB portable hard drive and the Iomega jaz 1GB and 2GB personal hard
  60.   drives.
  61.  
  62.   This package contains updates to the support in FP35 and FP6,
  63.   extending support to fixed Enhanced IDE drives greater than 8.4GB,
  64.   fixing some problems, and adding additional documentation on
  65.   removable media support.  Beginning with FP40 and FP10 OS/2 base
  66.   device drivers were separated into a Base Device Driver FixPak.
  67.  
  68.   This package also contains extensions to OS2CDROM.DMD, providing support for
  69.   multi-session CDROM media.
  70.  
  71.   The package also contains an updated floppy diskette driver (IBM1FLPY.ADD),
  72.   which corrects a problem where a failure occurs upon Resume on a ThinkPad when
  73.   the diskette drive is installed in the ThinkPad docking station.
  74.  
  75.   For Warp Server Advanced HPFS386 support of removable media, you additionally
  76.   need LAN Server SelectPack IP_8508.
  77.  
  78.   These fixpaks are available from http://ps.software.ibm.com/ under the link
  79.   "Downloads and News."  Install the fixpaks first, carefully following the
  80.   instructions with the fixpaks; then follow the directions in this README to
  81.   install this package.
  82.  
  83.   If you are attempting to install Warp 3 or Warp 4 for the first time on a fixed
  84.   hard drive greater than 4.3GB, then:
  85.  
  86.   1.  Follow the instruction on "Updating the Installation Diskettes" in this
  87.       README and use the new diskettes to install Warp.
  88.  
  89.   2.  Install FP35 for Warp 3 or FP6 for Warp 4.
  90.  
  91.   3.  Follow the instructions in this README to install this package.
  92.  
  93.   2.0  INSTALLATION
  94.   _________________
  95.  
  96.   2.1  UPDATING THE INSTALLATION DISKETTES
  97.   ________________________________________
  98.  
  99.   If you are attempting to install Warp on a hard drive greater than
  100.   4.3GB, or your are attempting to install Warp Server for e-business on
  101.   a hard drive greater than 30GB, then the Installation diskettes must
  102.   be updated.
  103.  
  104.   1.  Make a backup copy of your Diskette 1 (D1).
  105.  
  106.   2.  Copy the new versions of IBM1S506.ADD, and IBMIDECD.FLT
  107.       device driver files onto your D1 diskette.
  108.  
  109.   3.  If the installation diskettes are for Warp Server for e-business,
  110.       Warp Server for e-business Convenience Pak, or Warp 4 Convenience Pak,
  111.       copy the DASD32.DMD file to your D1 diskette and rename it to
  112.       OS2DASD.DMD.  Otherwise copy the DASD16.DMD file to your D1
  113.       diskette and rename it to OS2DASD.DMD.
  114.  
  115.   4.  Add the statement SET COPYFROMFLOPPY=1 to the CONFIG.SYS on D1.
  116.  
  117.   5.  Save the changes.
  118.  
  119.   6.  Start the installation with the Installation Diskette.
  120.  
  121.   7.  When you are prompted for Diskette 1, use the diskette you modified.
  122.  
  123.   8.  Proceed with the installation.
  124.  
  125.   9.  If during the installation process or when restarting your system, you
  126.       lose connection to your hard disk or CDROM, make sure that the device
  127.       driver statements are in the CONFIG.SYS file and the new versions of the
  128.       IBM1S506.ADD, IBMIDECD.FLT and OS2DASD.DMD device drivers have been
  129.       copied to the \OS2\BOOT directory.  Use the date of the files to distin-
  130.       guish the newer versions.
  131.  
  132.   2.2  UPDATING A PREVIOUSLY INSTALLED WARP SYSTEM
  133.   ________________________________________________
  134.  
  135.   1.  (Optional) Save the  existing (old) level of drivers in your system.
  136.  
  137.       a.  Change Directory to the \os2\boot directory on your boot drive.
  138.  
  139.       b.  Rename the drivers (for example, where the boot drive is C:).  The
  140.           IBMATAPI.FLT driver may not have been previously installed.
  141.  
  142.             [C:\os2\boot] rename IBM1S506.ADD  IBM1S506.ORG
  143.             [C:\os2\boot] rename IBM1FLPY.ADD  IBM1FLPY.ORG
  144.             [C:\os2\boot] rename IBMIDECD.FLT  IBMIDECD.ORG
  145.             [C:\os2\boot] rename IBMATAPI.FLT  IBMATAPI.ORG
  146.             [C:\os2\boot] rename OS2CDROM.DMD  OS2CDROM.ORG
  147.             [C:\os2\boot] rename OS2DASD.DMD   OS2DASD.ORG
  148.  
  149.   2.  Open an OS/2 Window and enter the SYSLEVEL X: (where X: is your
  150.       boot drive).  Look for the entry x:\OS2\INSTALL\SYSLEVEL.OS2 and
  151.       see which version of OS/2 you have installed; for example "Version
  152.       4.00" or "Version 4.50".
  153.  
  154.   3.  Device Driver Install
  155.  
  156.       o   (Warp 3, Warp Server) Open the Device Driver Install program
  157.           in the OS/2 System Folder/System Setup Folder.
  158.  
  159.       o   (Warp 4, Warp Server for e-business) Open the Device Driver
  160.           Install program in the OS/2 System/System Setup/Install-Remove
  161.           Folder.
  162.  
  163.   3.  Point the Device Driver Install file dialogue to the directory where you
  164.       have placed the new files in this package.
  165.  
  166.          If your version of OS/2 is 4.00 or earlier, select the driver
  167.          named IBM IDE AND REMOVABLE MEDIA SUPPORT (V4.00).
  168.  
  169.          If your version of OS/2 is 4.50 or later, select the driver
  170.          named IBM IDE AND REMOVABLE MEDIA SUPPORT (V4.50).
  171.  
  172.       Click on INSTALL.
  173.  
  174.   4.  Reboot the system.
  175.  
  176.   3.0  LARGE HARD DRIVE CONSIDERATIONS
  177.   ____________________________________
  178.  
  179.   3.1  SYSTEM HANG OR HARD DRIVE HESITATION
  180.   _________________________________________
  181.  
  182.   The problem is the IDE chip sets on certain planars signal that they support
  183.   busmastering but actually have a defect that prevents it from working cor-
  184.   rectly.  The driver detects busmastering support, turns on busmastering and
  185.   attempts to use it.  Some symptoms are:
  186.  
  187.   o   System will not boot with IBM1S506.ADD.
  188.  
  189.   o   CHKDSK command does not work properly.
  190.  
  191.   o   Hard drive stops or hesitates for minutes at a time.
  192.  
  193.   This is a known problem with ThinkPad models 760E/ED/ELD/EL.  However the
  194.   chip set can, and does, show up on planars of other manufacturers.  To
  195.   correct:
  196.  
  197.   1.  Edit the CONFIG.SYS file on Diskette 1 or the boot drive.
  198.  
  199.   2.  Disable busmastering by adding the parameter /!BM to the driver; for
  200.       example:
  201.  
  202.         BASEDEV=IBM1S506.ADD /A:0 /!BM /A:1 /!BM
  203.  
  204.   3.  Save the changes and reboot.
  205.  
  206.   3.2  CANNOT MARK A PARTITION INSTALLABLE
  207.   ________________________________________
  208.  
  209.   There is a BIOS restriction that installable (startable) or bootable parti-
  210.   tions must be contained within the first 1024 logical cylinders of the disk.
  211.   This is true for both EIDE and SCSI hard disk drives.  If FDISK fails to
  212.   allow a partition to be marked installable, the partition is either above
  213.   1024 cylinders or the partition spans the first 1024 logical cylinders of the
  214.   disk.  Use FDISK to reduce the size of the startable or bootable partition by
  215.   sufficient MBytes.  One way to calculate the correct partition size is to do
  216.   the following:
  217.  
  218.   1.  Edit your CONFIG.SYS and add the parameter /W or /V to the
  219.       BASEDEV=IBM1S506.ADD statement.
  220.  
  221.   2.  Save this change and reboot the system.
  222.  
  223.   3.  At initialization, record the far left hand column of numbers of the
  224.       geometry information under the OS2:log heading; for example, where
  225.       C=cylinder, H=head, and S=sector:
  226.  
  227.             OS2:log
  228.        C       1027
  229.        H         63
  230.        S        128
  231.  
  232.   4.  Calculate the 1024 cylinder size in MBytes as ( H x S ) / 2.  (round
  233.       down).
  234.  
  235.       All bootable partitions must be contained within this size.  In this
  236.       example the bootable partition must be contained in the first 4032
  237.       MBbytes of the disk and cannot exceed a single partition size of 4032
  238.       MBytes within this area.  No bootable partition may extend beyond the
  239.       first 4032 MBytes.
  240.  
  241.   5.  Use FDISK to resize the partitions and reboot.
  242.  
  243.   3.3  IPE ON BOOT, "TRAP D"
  244.   __________________________
  245.  
  246.   If you experience a Trap D on boot when using the /FORCE parameter on
  247.   IBM1S506.ADD, and you have the NetFinity client installed, REMark out the
  248.   BASEDEV=NFDASD.FLT statement in CONFIG.SYS.
  249.  
  250.   3.4  INCONSISTENCIES IN TOTAL DISK SPACE
  251.   ________________________________________
  252.  
  253.   This version of IBM1S506.ADD allows the detection and correct reporting of
  254.   some additional free space on certain drives.  This "free space" is real and
  255.   now can be accessed, either by creating a new partition or using a program
  256.   such as PartitionMagic to add the free space to an existing partition.  This
  257.   will not cause any corruption or inaccessibility to the data currently on the
  258.   disk.
  259.  
  260.   3.5  APPLICATION INSTALL FAILS WITH "NOT ENOUGH SPACE"
  261.   ______________________________________________________
  262.  
  263.   FAT partitions under OS/2 are limited to a 2.1GB maximum size.  HPFS parti-
  264.   tions are limited to a 64GB maximum size.  However there is the magic number,
  265.   2,147,483,647 (2.1GB).  This 2.1GB value is the maximum number that will fit
  266.   into a signed 32-bit integer.  Some application software installation pro-
  267.   grams query OS/2 about the available remaining space on the partition and
  268.   save the result into a signed 32-bit integer.  If more than 2.1GB is avail-
  269.   able there is an overflow, it appears no space is available, and the instal-
  270.   lation program refuses to continue.  Two solutions are:
  271.  
  272.   o   Partition the remaining space into maximum 2GB partitions.
  273.  
  274.   o   Retain the large partition, but before trying to install software create
  275.       a large temporary file that reduces available space to less than 2.1GB.
  276.       After installation of the application delete the temporary file.
  277.  
  278.   3.6  PERFORMANCE PROBLEMS WITH TWO DEVICES ON A SINGLE CHANNEL
  279.   ______________________________________________________________
  280.  
  281.   With certain planars, two devices attached to the same IDE channel will
  282.   exhibit performance problems when one device is a slow non-DMA device like a
  283.   CDROM or removable drive and the other device is a faster disk drive.  To
  284.   alleviate this problem move the slow device to the other channel, where it is
  285.   the only device or is paired with a similar slow device.
  286.  
  287.   If moving the device is not possible, then you can disable busmastering for
  288.   that channel, by specifying parameters on the driver IBM1S506.ADD in
  289.   CONFIG.SYS.  For example, if you wanted to disable bus mastering for the sec-
  290.   ondary controller, you would add the parameters "/A:1 /!BM" to the
  291.   IBM1S506.ADD line in CONFIG.SYS.
  292.  
  293.   3.7  INSTALL DISKETTES OR UTILITY DISKETTES HANG ON BOOT (APAR JR12065)
  294.   _______________________________________________________________________
  295.  
  296.   Diskette 1 of the Install or Utility diskette sets may appear to hang on
  297.   boot, waiting for a removable media device to respond.  To avoid:
  298.  
  299.   1.  Edit the CONFIG.SYS on Diskette 1 of the set
  300.  
  301.   2.  REMark out the basedev=ibmint13.i13 statement and save the file.
  302.  
  303.   3.  Reboot
  304.  
  305.   3.8  ADDITIONAL PARAMETERS FOR IDE DEVICE DRIVER
  306.   ________________________________________________
  307.  
  308.   PARAMETER      FUNCTION
  309.  
  310.   /V             Verbose Mode, displays controller status and drive geometry
  311.                  information during OS/2 initialization.
  312.  
  313.   /W             Verbose Mode, displays controller status and drive geometry
  314.                  information during OS/2 initialization.   Initialization stops
  315.                  after displaying the information for each device, with a
  316.                  "Press Enter to Continue" message.   It is possible that the
  317.                  message buffer will overflow, resulting in  a "Lost message"
  318.                  message.  This parameter works correctly on Warp 3 with FP35
  319.                  or later systems and on Warp 4 systems with FP6 or later.
  320.  
  321.   /FORCE         Forces the emulation of an IDE CDROM drive, even though one is
  322.                  not present during OS/2 initialization.  For example, the
  323.                  statements
  324.  
  325.                    BASEDEV=IBM1S506.ADD /A:1 /U:0 /ATAPI /FORCE
  326.                    BASEDEV=IBMIDECD.FLT
  327.  
  328.                  support inserting an internal CDROM drive into the Ultrabay of
  329.                  a ThinkPad 755CD after suspend, even though the drive is not
  330.                  present during initialization.
  331.  
  332.   /UDMA:x        If the system is UDMA capable, this parameter may be used to
  333.                  limit a highest UDMA mode for a system to use. Limit is specified
  334.                  by "x", it can be from 1 to 9. If the specified value is higher
  335.                  then the max UDMA capability, or is 0, the parameter is ignored.
  336.  
  337.  
  338.   3.9  ADDITIONAL PARAMETERS FOR IBMATAPI.FLT AND IBMIDECD.FLT DRIVERS
  339.   ____________________________________________________________________
  340.  
  341.   PARAMETER      FUNCTION
  342.  
  343.   /C             IBMATAPI.FLT and IBMIDECD.FLT have been modified so that they
  344.                  no longer fill the request's S/G list with 0's for the commands
  345.                  without data tranfer phase, even if the particular command contains
  346.                  a valid S/G list. To avoid possible unforseen compatibility problems
  347.                  with older drivers, /C parameter disables this new behavior.
  348.  
  349.  
  350.   4.0  REMOVABLE MEDIA SUPPORT
  351.   ____________________________
  352.  
  353.   Removable media devices attach to the system by a variety of interfaces.
  354.  
  355.   IDE            Supported with the OS/2 supplied IBM1S506.ADD device driver.
  356.  
  357.   EIDE           Supported with the OS/2 supplied IBM1S506.ADD device driver.
  358.  
  359.   ATAPI          Supported with the OS/2 supplied IBMATAPI.FLT device driver.
  360.  
  361.   ATA            Supported with the OS/2 supplied IBM1S506.ADD device driver.
  362.                  Iomega Zip ATA drives are supported only as single partition
  363.                  media and be configured in ATA Compatibility Mode; that is,
  364.                  the jumpers are:
  365.  
  366.                     Master             Slave
  367.  
  368.                       ■              ─ ■
  369.                                       
  370.  
  371.   SCSI           Small Computer System Interface.  Supported with the OS/2
  372.                  device driver for the SCSI controller to which the device is
  373.                  attached.  Many SCSI drivers are supplied with OS/2.  If your
  374.                  device is not recognized you must acquire the proper device
  375.                  driver from the vendor.   Consult
  376.                  http://service.software.ibm.com/os2ddpak/html/diskands/index.htm.
  377.                  To ensure correct operation with the Adaptec 1542 SCSI
  378.                  adapter, partition sizes should always be less than 1GB.
  379.  
  380.   PP             Parallel Port attached devices are supported with vendor-
  381.                  supplied drivers.  The device driver must have an ".ADD"
  382.                  extension for the media to be supported as partitioned remov-
  383.                  able.  For example, the Syquest Syjet Parallel drive is prop-
  384.                  erly supported by the vendor-supplied EPST.ADD driver, the
  385.                  Iomega Zip Parallel uses a vendor-supplied *.SYS driver and is
  386.                  not supported by the partitioned removable support, and the
  387.                  Syquest SparQ Parallel Iomega ZipPlus Parallel drives have no
  388.                  OS/2 drivers at all.
  389.  
  390.   USB            Floppy and removable media devices (including CDROM, CD-RW devices)
  391.                  are supported with the OS/2 supplied USBMSD.ADD device driver and
  392.                  special CDROM class device driver USBCDROM.ADD.
  393.  
  394.   Removable media devices are supported in one of two ways.
  395.  
  396.   LARGE FLOPPY        The LS-120 drive.
  397.  
  398.   PARTITIONED         All other magnetic removable media devices.  This media
  399.                       appears as a removable hard drive.
  400.  
  401.   4.1  PARTITIONED REMOVABLE MEDIA
  402.   ________________________________
  403.  
  404.   Features of the partitioned removable media support are:
  405.  
  406.   o   Ability to partition removable media into multiple partitions
  407.  
  408.   o   Ability to format with either HPFS or FAT
  409.  
  410.   o   Ability to exploit caching performance
  411.  
  412.   o   Ability to use HPFS long file names
  413.  
  414.   o   Drag/drop capability through the Workplace drive icon
  415.  
  416.   o   Operating system protection to safely eject media through software eject
  417.       utility
  418.  
  419.   o   Assignment of drive letters to end of disk drive lettering chain to
  420.       prevent floating drive letters
  421.  
  422.   o   Ability to predetermine a fixed number of drive letters for multiple par-
  423.       titions for removable media
  424.  
  425.   4.1.1  USING PROTECTED MEDIA
  426.  
  427.   There are some restrictions on the use of these devices.  These restrictions
  428.   deal with vendor-provided protection routines that either read/write or pass-
  429.   word protect the media.
  430.  
  431.   You are unable to read or write HPFS formatted media that has been read,
  432.   write or password protected by a vendor supplied protection utility.  For all
  433.   read and write protected media, remove the vendor protection prior to trying
  434.   to read or write to the media.  For instance, if you do not remove the pro-
  435.   tection, you will get the following failures:
  436.  
  437.   o   If you issue a DIR command to write or password protected media, you will
  438.       receive  a  "Drive improperly stopped" error message.
  439.  
  440.   o   If you try to FORMAT a write or password protected media, you will
  441.       receive numerous error messages after a few minutes.
  442.  
  443.   o   If you try to use desktop operations like drag/drop folders/files, you
  444.       will receive numerous error messages.
  445.  
  446.   Once the vendor supplied protection is removed, then these errors will no
  447.   longer occur.
  448.  
  449.   4.1.2  ASSIGNMENT OF DRIVE LETTERS
  450.  
  451.   New Algorithm: no filters assumed
  452.  
  453.      Primary from fixed disk 1
  454.      Primary from fixed disk 2
  455.  
  456.      Primary from fixed disk n
  457.      Extended from fixed disk 1
  458.      Extended from fixed disk 2
  459.  
  460.      Extended from fixed disk n
  461.      Primary from removable disk 1
  462.      Extended(s) from removable disk 1
  463.      Primary from removable disk 2
  464.      Extended(s) from removable disk 2
  465.  
  466.      Primary from removable disk n
  467.      Extended(s) from removable disk n
  468.  
  469.   Lack of a primary partition (or Extended Partition only) is allowed.  If no
  470.   media is present at boot, a single logical drive is reported.  Note that some
  471.   drives, Syquest EZ135A for example, do NOT report correctly when no media is
  472.   present and will not be seen at all.  If media with multiple partitions is
  473.   present at boot, then all partitions will be assigned drive letters.
  474.  
  475.   4.1.3  CONFIGURING PARTITION SUPPORT (OS2DASD)
  476.  
  477.       BASEDEV=OS2DASD.DMD [/LF] [/MP:(disk,count)[,(disk,count)]]
  478.  
  479.   PARAMETER      DESCRIPTION
  480.  
  481.   /LF            Forces all removable devices to be treated as Large Floppy
  482.                  rather than partitioned media.
  483.  
  484.   /MP            Used to support allocating a predetermined number of
  485.                  drive letters for a partitioned removable media device.
  486.                  Note that this option only applies to partitioned
  487.                  removable devices, and is ignored for any other device
  488.                  type.
  489.  
  490.   If the /MP parameter is used, then:
  491.  
  492.   SUB-PARAMETER  DESCRIPTION
  493.  
  494.   DISK           The integer disk number of the device, as reported by FDISK,
  495.                  or the wildcard character * to specify all partitioned remov-
  496.                  able devices.
  497.  
  498.   COUNT          The integer count of the number of partitions to reserve for
  499.                  the device.  If the wildcard character * is used, it specifies
  500.                  a default number of drive letters to reserve for all parti-
  501.                  tioned removable devices.  Specifying a count for a particular
  502.                  disk will override this default.  Also, if there is media in
  503.                  the device at boot time, and it has more partitions which are
  504.                  eligible to receive drive letters than there are drive letters
  505.                  reserved for the device through the /MP option, then the
  506.  
  507.                  number of drive letters reserved for the device will be
  508.                  increased so that every eligible partition on the media will
  509.                  have a drive letter.
  510.  
  511.   If the /MP option is not used, the rules for determining the number of drive
  512.   letters reserved for a partitioned removable media device are as follows:
  513.  
  514.   o   If there is no media in the drive at boot time, or the media in the drive
  515.       has no valid partitions, then one drive letter is reserved for the
  516.       device.
  517.  
  518.   o   If there is media in the drive at boot time and the media has valid par-
  519.       titions which are eligible for drive letters, the number  of drive
  520.       letters is equal to the number of eligible partitions on the media.
  521.       Media which is formatted in floppy mode is treated as a single partition
  522.       and allocated a single drive letter.
  523.  
  524.   4.1.4  EJECTING THE MEDIA
  525.  
  526.   OS/2 prevents the media from being ejected during data transfers or while
  527.   there are pending file transactions.  The hardware manual eject button is
  528.   disabled during these times. The eject button will be enabled when the media
  529.   can be safely ejected.
  530.  
  531.   There is a new OS/2 utility, EJECT.EXE, that provides a command line method
  532.   for ejecting the media.  The Workplace Drive Icon now supports the software
  533.   eject option for these drives as well. For example, the command EJECT J:,
  534.   where J: is the logical drive letter of one of the partitions on the media
  535.   will cause the media to be ejected.
  536.  
  537.   In order for this command to succeed there must be no open files on any of
  538.   the partitions on the media, nor any open search operations.  Removable media
  539.   that is shared on a server cannot be ejected because of open file handles.
  540.   If it is necessary to remove the media without rebooting you may issue the
  541.   command CHKDSK J: /F, where J: is the logical drive letter of one of the par-
  542.   titions on the media.   This will free the media and a subsequent EJECT J:
  543.   command will cause the media to be ejected.
  544.  
  545.   4.1.5  LIMITATIONS OF PARTITIONED REMOVABLE MEDIA SUPPORT
  546.  
  547.   o   Applications that manipulate partitioned devices, such as file managers,
  548.       must be updated to test the fixed/removable flag in order to account for
  549.       partitioned removable devices.  Such applications that have not been
  550.       updated treat the removable devices as fixed and the results are unpre-
  551.       dictable whenever media is not present.
  552.  
  553.   o   Due to the variability of hardware adapter support, installing to or
  554.       booting from partitioned removable media is not supported.
  555.  
  556.   o   Optical drive support is unchanged.  Partitioned removable media and HPFS
  557.       do not support optical drives.  You should continue to use OPTICAL.DMD
  558.       and OS2SCSI.DMD.
  559.  
  560.   o   The following devices were tested during the development of the Parti-
  561.       tioned Removable Media Support.  Similar devices should operate cor-
  562.       rectly, as should other removable media devices that are made available
  563.       with a supporting ADD device driver.
  564.  
  565.       -   Iomega SCSI jaz 1GB and 2GB personal hard drives
  566.  
  567.       -   Iomega Zip ATA 100MB drives (supported only as single partition
  568.           media).
  569.  
  570.       -   Iomega Zip ATAPI 100 MB drives
  571.  
  572.       -   Syquest SCSI Syjet 1.5GB portable hard drives
  573.  
  574.       -   Syquest IDE Syjet 1.5GB portable hard drives
  575.  
  576.       -   Syquest SparQ IDE portable hard drives
  577.  
  578.   4.2  LARGE FLOPPY REMOVABLE MEDIA (LS-120)
  579.   __________________________________________
  580.  
  581.   The LS-120 drive supports 120-MB diskettes and is compatible with 3.5 inch
  582.   1.44-MB standard diskettes, with improved performance.
  583.  
  584.   4.2.1  LIMITATIONS OF LS-120 SUPPORT
  585.  
  586.   o   If you have an LS-120 drive as drive B, then you must not format it from
  587.       an OS/2 windowed or full screen session where the current drive is drive
  588.       A or drive B. The current drive for an OS/2 windowed or full screen
  589.       session is given as part of the command prompt.  For example, if the
  590.       command prompt in an OS/2 windowed or full screen session is [C:\], then
  591.       drive C is the current drive.
  592.  
  593.   o   If an LS-120 drive is installed in a ThinkPad docking station and a CD-ROM
  594.       or DVD drive is in the system UltraBay, you may get an error message
  595.       "A program in this session encountered a problem and cannot continue." when
  596.       a DOS window is opened.    In this case edit the config.sys file and move the
  597.       statement BASEDEV=IBMIDECD.FLT so that it appears before the statement
  598.       BASEDEV=IBMATAPI.FLT in the file.
  599.  
  600.   o   The following devices were tested during the development of the Large
  601.       Floppy Removable Media Support.  Similar devices should operate cor-
  602.       rectly.
  603.  
  604.       -   Imation LS-120
  605.  
  606.       -   SuperDisk LS-120
  607.  
  608.   4.3  CD-ROM DEVICE MANAGER (OS2CDROM.DMD)
  609.   __________________________________________________
  610.  
  611.   The CD-ROM Device Manager (OS2CDROM.DMD) has the following additional features:
  612.  
  613.   o   support read/write blocks for CD-RW media,
  614.  
  615.   o   support USB CD-ROM, CD-RW, DVD-ROM, DVD-RAM devices,
  616.  
  617.   o   low level formatting for CD-RW and DVD-RAM media,
  618.  
  619.   o   new IOCtl functions added:
  620.          Format and Verify Disk (Cat: 8, Funct: 45h),
  621.          Execute SCSI-command (Cat: 80h, Funct: 7Ah),
  622.          Write sectors (Cat: 80h, Funct: 52h),
  623.          Write and verify sectors (Cat: 80h, Funct: 53h),
  624.          OS2CDROM Features (Cat: 82h, Funct: 63h),
  625.          Get CD-ROM Drives (Cat: 82h, Funct: 60h).
  626.  
  627.   o   some IOCtl functions modified:
  628.          Get Device Parameters (Cat: 8, Funct: 63h),
  629.          Read sectors (Cat: 80h, Funct: 72h).
  630.  
  631.   Category: IOCTL_DISK (08h)
  632.   Function: DSK_FORMATVERIFY (45h)
  633.   Description: Format and Verify Disk
  634.  
  635.   Parameter Packet format:
  636.  
  637.    struct FmtVerify_param {
  638.       UCHAR        Command;  // Bit 7: 0 = start formatting, 1 = format status
  639.    };
  640.  
  641.   Data Packet format:
  642.  
  643.    struct FmtVerify_data {
  644.       UCHAR        Status;   // Percent of formatted volume, if supported such feature
  645.                              // 0, if not supported
  646.    };
  647.  
  648.   Returns:
  649.  
  650.    02h - device not ready
  651.    03h - bad command (this IOCtl function is not supported)
  652.    13h - unsupported parameter
  653.    14h - device already in use
  654.    a3h - uncertain media
  655.  
  656.   Compatibility problem:
  657.  
  658.   If IOCtl function DSK_FORMATVERIFY (45h) is used in an earlier version of OS2CDROM.DMD you get back return code 03h.
  659.   It means this version of OS2CDROM.DMD is not supported.
  660.  
  661.  
  662.   Category: IOCTL_CDROMDISK (80h)
  663.   Function: CDROMDISK_EXECMD (7Ah)
  664.   Description: Executes SCSI command
  665.  
  666.   Parameter Packet format:
  667.  
  668.    struct ExecCMD {
  669.       ULONG        ID_code;         // 'CD01'
  670.       USHORT       data_length;     // length of the Data Packet
  671.       USHORT       cmd_length;      // length of the Command Buffer
  672.       USHORT       flags;           // flags
  673.       UCHAR        cmd_buffer[16];  // Command Buffer for SCSI command
  674.    };
  675.  
  676.   flags:
  677.      #define EX_DIRECTION_IN     0x0001
  678.      #define EX_PLAYING_CHK      0x0002
  679.  
  680.   EX_DIRECTION_IN         0, if transfer data to device,  1, if transfer data from device
  681.   EX_PLAYING_CHK          0, if don't check playing audio, 1, if device plays audio return error
  682.  
  683.   Data Packet format:
  684.  
  685.   Content of the Data Packet depends on the SCSI command. Length is defined by data_length field in the Parameter Packet.
  686.  
  687.   Returns:
  688.  
  689.    02h - device not ready
  690.    03h - bad command (this IOCtl function is not supported)
  691.    13h - unsupported parameter
  692.    14h - device already in use
  693.  
  694.   Compatibility problem:
  695.  
  696.   If IOCtl function CDROMDISK_EXECMD (7Ah) is used in an earlier version of OS2CDROM.DMD you get back return code 03h.
  697.   It means this version of OS2CDROM.DMD is not supported.
  698.  
  699.  
  700.   Category: IOCTL_CDROMDISK2 (82h)
  701.   Function: CDROMDISK2_FEATURES (63h)
  702.   Description: Returns features of the current DM version if applied to "CD-ROM2$" device name.
  703.  
  704.   Parameter Packet format:
  705.  
  706.      None.
  707.  
  708.   Data Packet format:
  709.  
  710.     ULONG driver_status;
  711.  
  712.   #define FEATURE_USB_SUPPORT     0x00000001L
  713.   #define FEATURE_CDRW_SUPPORT    0x00000002L
  714.   #define FEATURE_EXECMD_SUPPORT  0x00000004L
  715.  
  716.   Returns:
  717.  
  718.    03h - bad command (this IOCtl function is not supported)
  719.  
  720.   Compatibility problem:
  721.  
  722.   If IOCtl function CDROMDISK2_FEATURES (63h) is used in an earlier version of OS2CDROM.DMD
  723.   you get back return code 03h. It means this version of OS2CDROM.DMD doesn't
  724.   support this function.
  725.  
  726.  
  727.   Category: IOCTL_CDROMDISK2 (82h)
  728.   Function: CDROMDISK2_DRIVELETTERS (60h)
  729.   Description: Returns drive letters for CD-ROM devices if applied to "CD-ROM2$" device name.
  730.  
  731.   Parameter Packet format:
  732.  
  733.      None.
  734.  
  735.   Data Packet format:
  736.  
  737.    struct DriveLetters {
  738.       USHORT        DriveCount;         // number of supported CD-ROM drives
  739.       USHORT        DriveFirst;         // letter of the first CD-ROM drive
  740.    };
  741.  
  742.   Returns:
  743.  
  744.    03h - bad command (this IOCtl function is not supported)
  745.  
  746.   Compatibility problem:
  747.  
  748.   This function didn't work correctly in previous versions of OS2CDROM.DMD.
  749.  
  750.   Category: IOCTL_DISK (08h)
  751.   Function: DSK_GETDEVICEPARAMS (63h)
  752.   Description: Query device parameters
  753.  
  754.   Parameter and data packet formats are standard but the values of 2 fields
  755.   of BIOSPARAMETERBLOCK depends on device and media type.
  756.  
  757.   Media Descriptor contains information about media type:
  758.  
  759.      MEDIA TYPE        VALUE
  760.  
  761.      CD-R              4
  762.      CD-ROM            5
  763.      DVD-ROM           6
  764.      DVD-RAM           7
  765.      CD-RW             8
  766.      DVD-R             9
  767.      DVD-RW            10
  768.      DVD+RW            11
  769.      DDCD-ROM          12
  770.      DDCD-R            13
  771.      DDCD-RW           14
  772.      DVD+R             15
  773.  
  774.   If media allows writing but cannot be written at the moment (device cannot
  775.   write such media type or disk is write-protected) 128 is added to the value.
  776.  
  777.   Device Type field contains information about device type. If device cannot write
  778.   on the disk inserted value 7 is returned. If device allows writing on the disk inserted
  779.   (DVD-RAM disk in the DVD-RAM device or CD-RW disk in the CD-Writer) value 8
  780.   is returned.
  781.  
  782.   Category: IOCTL_CDROMDISK (80h)
  783.   Function: CDROMDISK_READLONG (72h)
  784.   Description: Reads the specified sectors in the data buffer.
  785.  
  786.   Parameter Packet format:
  787.  
  788.    struct ReadLong_param {
  789.       ULONG       ID_code;                // 'CD01'
  790.       UCHAR       address_mode;           // Addressing format of start_sector:
  791.                                           //   00 - Logical Block format
  792.                                           //   01 - Minutes/Seconds/Frame format
  793.       USHORT      transfer_count;         // Numbers of sectors to read. Must not be 0
  794.       ULONG       start_sector;           // Starting sector number of the read operation
  795.       UCHAR       reserved;               // Reserved. Must be 0
  796.       UCHAR       interleave_size;        // Not used. Must be 0
  797.       UCHAR       interleave_skip_factor; // Not used. Must be 0
  798.    };
  799.  
  800.   Data Packet format:
  801.  
  802.    struct ReadLong_data {
  803.       UCHAR       sector_data[SECTOR_SIZE]; // Sector read from the disk
  804.                                             // SECTOR_SIZE is 2352 for CD disks and 2048 for DVD disks
  805.    };
  806.  
  807.    The media type is detected by means of IOCtl function DSK_GETDEVICEPARAMS (63h)
  808.    of category IOCTL_DISK (08h) (see above).
  809.  
  810.    For DVD disk (DVD-ROM, DVD-R, DVD+R, DVD-RAM, DVD-RW and DVD+RW) sector_data
  811.    contains user data (2048 bytes).
  812.  
  813.    For CD disk (CD-ROM, CD-R, CD-RW, DDCD-ROM, DDCD-R, DDCD-RW) sector_data consists of 2352 bytes.
  814.    Contents of the sector depends on the mode of the sector (byte 15 from the beginning
  815.    of the sector_data or field data_mode of the structure describing sector's contents (see below)).
  816.  
  817.    Mode 0 is rarely used format as it is zero filled in the entire user data area.
  818.    Structure of the sector for Mode 0 is described by Mode_0_sector_data:
  819.  
  820.    struct Mode_0_sector_data {
  821.       UCHAR     sync_pattern[12]; // Data block sync pattern
  822.       UCHAR     msf[3];           // Block MSF address
  823.       UCHAR     data_mode;        // Data mode = 0
  824.       UCHAR     user_data[2336];  // User data (each byte is 0)
  825.    };
  826.  
  827.    Mode 1 data is most prevalent in CD-ROM applications. Structure of the sector
  828.    for Mode 1 is described by Mode_1_sector_data:
  829.  
  830.    struct Mode_1_sector_data {
  831.       UCHAR     sync_pattern[12]; // Data block sync pattern
  832.       UCHAR     msf[3];           // Block MSF address
  833.       UCHAR     data_mode;        // Data mode = 1
  834.       UCHAR     user_data[2048];  // User data
  835.       UCHAR     crc[4];           // CRC
  836.       UCHAR     zero_fill[8];     // Zero bytes
  837.       UCHAR     p_parity[172];    // P parity symbols
  838.       UCHAR     q_parity[104];    // Q parity symbols
  839.    };
  840.  
  841.    The Mode 2 form 1 format is regularly used in recorder applications and Video CD.
  842.    Structure of the sector for Mode 2 form 1 is described by Mode_21_sector_data:
  843.  
  844.    struct Mode_21_sector_data {
  845.       UCHAR     sync_pattern[12]; // Data block sync pattern
  846.       UCHAR     msf[3];           // Block MSF address
  847.       UCHAR     data_mode;        // Data mode = 2
  848.       UCHAR     sub_header1;      // Sub-header, first copy
  849.       UCHAR     sub_header2;      // Sub-header, second copy
  850.       UCHAR     user_data[2048];  // User data
  851.       UCHAR     crc[4];           // CRC
  852.       UCHAR     p_parity[172];    // P parity symbols
  853.       UCHAR     q_parity[104];    // Q parity symbols
  854.    };
  855.  
  856.    The Mode 2 form 2 format is regularly used in recorder applications and Video CD.
  857.    Structure of the sector for Mode 2 form 2 is described by Mode_22_sector_data:
  858.  
  859.    struct Mode_22_sector_data {
  860.       UCHAR     sync_pattern[12]; // Data block sync pattern
  861.       UCHAR     msf[3];           // Block MSF address
  862.       UCHAR     data_mode;        // Data mode = 2
  863.       UCHAR     sub_header1;      // Sub-header, first copy
  864.       UCHAR     sub_header2;      // Sub-header, second copy
  865.       UCHAR     user_data[2324];  // User data
  866.       UCHAR     crc[4];           // Optional CRC
  867.    };
  868.  
  869.    The difference between 2 forms of Mode 2 is defined by sub-header (Bit 5 of the field sub_mode):
  870.  
  871.    struct Mode_2_sub_header {
  872.       UCHAR     file_number;    // Identifies the file to which the block belongs
  873.       UCHAR     channel_number; // Playback channel selection
  874.       UCHAR     sub_mode;       // Bit 7: End of file
  875.                                 // Bit 6: Real time block
  876.                                 // Bit 5: 0 = form 1, 1 = form 2
  877.                                 // Bit 4: Trigger block
  878.                                 // Bit 3: Data block
  879.                                 // Bit 2: Audio block
  880.                                 // Bit 1: Video block
  881.                                 // Bit 0: End of record
  882.       UCHAR     code_info;      // Coding information
  883.    };
  884.  
  885.   Returns:
  886.  
  887.    02h - device not ready
  888.    03h - bad command (this IOCtl function is not supported)
  889.    08h - sector not found
  890.    10h - uncertain media
  891.    13h - unsupported parameter
  892.    14h - device already in use
  893.  
  894.   Category: IOCTL_CDROMDISK (80h)
  895.   Function: CDROMDISK_WRITELONG (52h)
  896.   Description: Writes the data buffer to the specified sectors.
  897.  
  898.   Parameter Packet format:
  899.  
  900.    struct WriteLong_param {
  901.       ULONG       ID_code;                // 'CD01'
  902.       UCHAR       address_mode;           // Addressing format of start_sector:
  903.                                           //   00 - Logical Block format
  904.                                           //   01 - Minutes/Seconds/Frame format
  905.       USHORT      transfer_count;         // Numbers of sectors to read. Must not be 0
  906.       ULONG       start_sector;           // Starting sector number of the read operation
  907.       UCHAR       reserved;               // Reserved. Must be 0
  908.       UCHAR       interleave_size;        // Not used. Must be 0
  909.       UCHAR       interleave_skip_factor; // Not used. Must be 0
  910.    };
  911.  
  912.   Data Packet format:
  913.  
  914.    struct WriteLong_data {
  915.       UCHAR       sector_data[2048]; // Sector to be written to the disk
  916.    };
  917.  
  918.   Returns:
  919.  
  920.    02h - device not ready
  921.    03h - bad command (this IOCtl function is not supported)
  922.    08h - sector not found
  923.    10h - uncertain media
  924.    13h - unsupported parameter
  925.    14h - device already in use
  926.  
  927.   Category: IOCTL_CDROMDISK (80h)
  928.   Function: CDROMDISK_WRITEVLONG (53h)
  929.   Description: Writes the data buffer to the specified sectors and verifies.
  930.  
  931.   Parameter Packet format:
  932.  
  933.    struct WriteVLong_param {
  934.       ULONG       ID_code;                // 'CD01'
  935.       UCHAR       address_mode;           // Addressing format of start_sector:
  936.                                           //   00 - Logical Block format
  937.                                           //   01 - Minutes/Seconds/Frame format
  938.       USHORT      transfer_count;         // Numbers of sectors to read. Must not be 0
  939.       ULONG       start_sector;           // Starting sector number of the read operation
  940.       UCHAR       reserved;               // Reserved. Must be 0
  941.       UCHAR       interleave_size;        // Not used. Must be 0
  942.       UCHAR       interleave_skip_factor; // Not used. Must be 0
  943.    };
  944.  
  945.   Data Packet format:
  946.  
  947.    struct WriteVLong_data {
  948.       UCHAR       sector_data[2048]; // Sector to be written to the disk
  949.    };
  950.  
  951.   Returns:
  952.  
  953.    02h - device not ready
  954.    03h - bad command (this IOCtl function is not supported)
  955.    08h - sector not found
  956.    10h - uncertain media
  957.    13h - unsupported parameter
  958.    14h - device already in use
  959.  
  960.  
  961.   4.4  CD-RW MEDIA SUPPORT IN IBMIDECD.FLT
  962.   ________________________________________
  963.  
  964.   IBMIDECD.FLT now supports IDE CD-Writers for reading/writing.
  965.  
  966.  
  967.   5.0 SUPPORTED IDE CONTROLLERS, KNOWN RESTRICTIONS AND LIMITATIONS
  968.   _________________________________________________________________
  969.  
  970.   5.1 Supported chipset table
  971.   ___________________________
  972.  
  973.   The OS/2 IDE Controller Adapter Device Driver (IBM1S506.ADD)
  974.   supports the following PCI IDE Controllers
  975.   --------------------------------------------------------------
  976.   |Controller|   Controller Info    | Highest |  Comments      |
  977.   |   Name   |                      |  UDMA   |                |
  978.   --------------------------------------------------------------
  979.   |CMD640    | First CMD640         |    -    |                |
  980.   |RZ1000    | First RZ1000         |    -    |                |
  981.   |I82371FB  | INTEL82371FB         |    -    |                |
  982.   |PIIX3     | Intel PIIX3 IDE      |    -    |                |
  983.   |ORION     | INTEL_ORION          |    -    |                |
  984.   |PIIX4     | Intel PIIX4 IDE      | ATA 33  |                |
  985.   |I82801AA  | Intel 82801AA IO HUB | ATA 66  |See sec.  5.2.1 |
  986.   |I82801AB  | Intel 82801AB IO HUB | ATA 33  |                |
  987.   |I82801BA  | Intel 82801BA IO HUB | ATA 100 |See sec.  5.2.1 |
  988.   |I82801CA  | Intel 82801CA IO HUB | ATA 100 |See sec.  5.2.1 |
  989.   |I82801DB  | Intel 82801DB IO HUB | ATA 100 |See sec.  5.2.1 |
  990.   |CMD646    | CMD 646 PCI 2 IDE    | ATA 33  |                |
  991.   |CMD648    | CMD 648 PCI 2 IDE    | ATA 66  |                |
  992.   |VIA586B   | VIA 586B PCI 2 IDE   | ATA 33  |See sec.  5.2.2 |
  993.   |VIA596B   | VIA 596B PCI 2 IDE   | ATA 66  |See sec.  5.2.2 |
  994.   |VIA686A   | VIA 686A PCI 2 IDE   | ATA 66  |See sec.  5.2.2 |
  995.   |SIS630    | SIS 630 PCI 2 IDE    | ATA 66  |See sec.  5.2.3 |
  996.   --------------------------------------------------------------
  997.  
  998.   5.2 Known restrictions and limitations
  999.   ______________________________________
  1000.  
  1001.   This section covers some restrictions for IBM1S506.ADD
  1002.   These restrictions are caused mainly by hardware problems.
  1003.  
  1004.   5.2.1 Intel chipsets restrictions
  1005.   _________________________________
  1006.  
  1007.   -in case there are 2 devices on a channel on any Intel 82801 chip,
  1008.    the top UDMA mode will be limited to UDMA 2.
  1009.   -82801 series chipsets now support UDMA for ATAPI devices.
  1010.  
  1011.   5.2.2 VIA chipsets restrictions
  1012.   _______________________________
  1013.  
  1014.   IBM1S506.ADD has the following limitations for VIA IDE  controllers
  1015.   listed above:
  1016.  
  1017.   - all of the chipsets have a problem with 40 pin cable detection.
  1018.     to ensure the proper operation, please check what kind of IDE
  1019.     cables are used. If you have a 40 pin cable on any channel, please
  1020.     specify the parameter /UDMA:2 in CONFIG.SYS . Usage of this parameter
  1021.     is described above .
  1022.   - any VIA chipset, which is not in the list above, but has the same
  1023.     Device ID, will be detected as VIA586B and performance will be dropped
  1024.     down to UDMA 2.
  1025.  
  1026.   5.2.3 SiS chipsets restrictions
  1027.   _______________________________
  1028.  
  1029.   IBM1S506.ADD has the following limitations for SiS IDE  controllers
  1030.   listed above:
  1031.  
  1032.   - since there is a problem for these IDE contrllers to work in UDMA
  1033.     mode with the secondary channel when 40 pin cable is installed,
  1034.     the driver will drop to PIO mode on this channel if 40 pin cable is
  1035.     detected. This, however, does not apply to primary channel.
  1036.   - it is not advised to use /UDMA:x parameter on SiS IDE controllers.
  1037.  
  1038.   6.0  COPYRIGHT AND TRADEMARK INFORMATION
  1039.   ________________________________________
  1040.  
  1041.   The following terms are trademarks of International Business Machines
  1042.   Corporation in the United States and/or other countries:
  1043.         IBM
  1044.         OS/2
  1045.         ThinkPad
  1046.         Ultrabay
  1047.   Other company, product, and service names may be trademarks or service
  1048.   marks of others.
  1049.  
  1050.   THE INFORMATION PROVIDED IN THIS README IS PROVIDED "AS IS" WITHOUT
  1051.   WARRANTY OF ANY KIND.  IBM DISCLAIMS ALL WARRANTIES, WHETHER
  1052.   EXPRESSED OR IMPLIED, INCLUDING WITHOUT LIMITATION, THE IMPLIED
  1053.   WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE AND MERCHANTABILITY
  1054.   WITH RESPECT TO THE INFORMATION IN THIS DOCUMENT. BY FURNISHING
  1055.   THIS DOCUMENT, IBM GRANTS NO LICENSES TO ANY PATENTS OR COPYRIGHTS.
  1056.  
  1057.   (C) Copyright IBM Corporation, 2001, 2002. All rights reserved.
  1058.   U.S. Government Users Restricted Rights -- Use, duplication or
  1059.   disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  1060.  
  1061.