
  DRVEXCH - Exchange drive letters
  Copyright (C) 1997-2001 BTTR Software
  [Under GNU GENERAL PUBLIC LICENSE]
  Published by BTTR Software


                                C O N T E N T S
  

  1  INTRODUCTION
  2  LICENSE & DISCLAIMER
  3  SYSTEM REQUIREMENTS
  4  INSTALLATION
  5  USAGE
  6  TECHNICAL SUPPORT & UPDATES
  7  ADDITIONAL INFORMATION


  1                         I N T R O D U C T I O N
  

  It is known that the way that DOS assigns drive letters to hard disk
  partitions at startup is not very conveniently for users, who have removable
  hard disks, i.e., mounted in "drawers", or just add a new hard disk to their
  systems.

  On a two-disk system with 1 primary partition and 2 logical drives in an
  extended partition for each hard disk:

  (*) primary DOS partition on the first hard disk becomes drive C:

  (*) primary DOS partition on the second hard disk becomes drive D:

  (*) next drive letters are assigned to logical drives in extended partitions
      on the first hard disk

  (*) next drive letters are assigned to logical drives in extended partitions
      on the second hard disk

  Therefore, if you have software installed in the extended partition of the
  first hard disk and you add or remove second hard disk, the drive letter
  changes and all paths (and maybe software configuration files) become
  invalid.

  In addition, you can create (but not with standard DOS FDISK programs) more
  than one primary partition on each hard disk; this can be sometimes useful,
  e.g., when you want to have several versions of DOS and/or Microsoft Windows
  installed on your PC and want to keep them well separated.

  As it is non-standard configuration, it is handled differently by different
  versions of DOS.

  Very old DOS versions ignore the additional partitions. The MS-DOSes
  (including MS-DOS 7.x from Microsoft Windows 9x) and probably IBM PC-DOSes
  assign letters AFTER all logical drives in extended partitions on all hard
  disks to those primary partitions. The DR/Novell/Caldera DOSes assign
  letters to ALL primary partitions BEFORE all logical drives in extended
  partitions.

  What a mess...

  But now, after a long trial-and-error research, we managed to prepare a
  solution (or better: a partial solution) to this problem.


  2                  L I C E N S E  &  D I S C L A I M E R
  

  This program is free software; you can redistribute it and/or modify it
  under the terms of the GNU General Public License as published by the Free
  Software Foundation; either version 2 of the License, or (at your option)
  any later version.

  This program is distributed in the hope that it will be useful, but WITHOUT
  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
  more details.

  You should have received a copy of the GNU General Public License along with
  this program; if not, write to the Free Software Foundation, Inc., 59 Temple
  Place, Suite 330, Boston, MA 02111-1307 USA

  Trademarks of companies mentioned in this software appear for identification
  purposes only and are the property of their respective owners.


  3                  S Y S T E M  R E Q U I R E M E N T S
  

  (*) Intel i8086 microprocessor (or compatibles)

  (*) Microsoft MS-DOS 3.00 (or compatibles)


  4                         I N S T A L L A T I O N
  

  There is no designated setup program that comes with DRVEXCH because
  installation can be done very easily: Decompress the complete archive (with
  e.g., PKUNZIP or WinZip) into an empty directory and you are ready to use
  DRVEXCH.


  5                                U S A G E
  

  DRVEXCH is a joined device driver and executable.

  It has two functions:

  (a) Automatically re-arranges drive letters according to the physical hard
      disk number (the number used by BIOS INT 13h) on which the logical drive
      is placed. This way it prevents DOS from mixing up drive letters when a
      second hard disk is added or removed (with three disks it may work or
      not, depending on IDE channel and master/slave settings of the
      added/removed drive).

      To achieve this effect, put the line

      DEVICE=DRVEXCH.COM #

      in your CONFIG.SYS (somewhere at the beginning, at least before any path
      other than to drive C: is used). Notice that drive C: is never swapped
      this way, because DOS boots from the first primary partition on the
      first hard disk (well, some DOSes are told to be able to boot in another
      way IN SPECIAL CONFIGURATIONS, but we have not tested it).

  (b) Exchanges (swaps) given pairs of drive letters explicitly. This allows,
      e.g., removing the differences between MS-DOS and DR-DOS families in
      assigning letters to additional primary partitions.

      To achieve this effect, put the line

      DEVICE=DRVEXCH.COM X-Y W-Z ...

      in your CONFIG.SYS, if you wish to swap drives X: with Y:, W: with Z:,
      etc. Notice, that any multi-element permutation can be written as a
      sequence of two-element transpositions (exchanges), so you can
      re-arrange your drives in any way you wish.

      Remember, that all letters in DRVEXCH command line have their meaning AS
      BEFORE DRVEXCH was called, so the following command sequences:

      DEVICE=DRVEXCH.COM D-F E-F

      and

      DEVICE=DRVEXCH.COM D-F
      DEVICE=DRVEXCH.COM E-F

      are NOT equivalent! The first one maps (D E F) -> (F D E), whereas the
      second maps (D E F) -> (E F D).

      The letters you specify do not have to be drives on hard disk. You can
      swap floppies and virtual (RAM) disks as well (technically speaking, all
      block devices with DPBs), but not CD-ROM drives or network drives.

      BE CAREFUL with software which tries to obtain system information in
      many ways, not only through DOS, but also analysing partition tables,
      etc. It may lead to contradictory results when DRVEXCH is in use, and
      therefore to unpredictable behaviour of such software. This note applies
      particularly to diagnostic software, but not only to. Many programs may
      behave strangely when they find a virtual disk on A: instead of diskette
      drive, or in another untypical configuration.

      IN THIS EXPERIMENTAL VERSION, this function can be called not only from
      CONFIG.SYS, but also at any time from command prompt:

      DRVEXCH D-F E-F

      However, using this option at the command prompt is DANGEROUS and may
      cause damage to your data on hard disks, especially when you are using
      disk-caching software (like SMARTDrive). This option has not been tested
      enough!

      Do not use this command line option in multitasking environments (as the
      DOS window in Microsoft Windows, DR-DOS TaskMgr, DESQView, DOSShell,
      etc.).

      Please also do not use these feature when current directories on the
      swapped drives are not root directories!

      In our opinion, the ability to run from command line should be disabled
      in (hypothetical) future releases. Any feedback concerning this feature
      is welcome!

  DRVEXCH was tested (to some extent) with two hard disks (including "#"
  option):

    (*) Caldera DR-DOS 7.03

    (*) Microsoft MS-DOS 6.20

    (*) Microsoft MS-DOS 7.10 (from Microsoft Windows 98 Second Edition)

  and with a single hard disk (w/o "#" option):

    (*) Caldera DR-DOS 7.03

    (*) DR DOS 6.0

    (*) Microsoft MS-DOS 7.10 (from Microsoft Windows 98 SE), including
        swapping of FAT16 and FAT32 drives.

  It was NOT TESTED WITH COMPRESSED DRIVES (which can be setup with software
  like Stacker, DoubleSpace, DriveSpace, etc.)!

  Remember, that this is still EXPERIMENTAL software and you are using it at
  your own risk. At the current stage, it is rather for "expert's use".

  Because of a limited number of computers we have access to (and even more
  limited to ones we could open and reconfigure), this software underwent only
  a LIMITED NUMBER of tests, so please send us your results, especially when
  they are negative.


  6            T E C H N I C A L  S U P P O R T  &  U P D A T E S
  

  If you encounter any bugs or just want to tell us your opinion about this
  software, do not hesitate to contact our technical support by e-mail.

                           <support@bttr-software.de>

  Possible future updates to this software will be available from our website.

                     `http://www.bttr-software.de/drvexch/'


  7                A D D I T I O N A L  I N F O R M A T I O N
  

  DRVEXCH was created using Aurora Editor 3.0c, Borland MAKE 3.0, DR-DOS DEBUG
  1.51, Netwide Assembler (NASM) 0.98 and Borland Turbo Pascal 7.01 IDE
  editor.

  The program works by physical interchanging of DPB contents. It does not
  change anything in CDS tables. During our experiments we noticed that this
  is the only method that seems to work reliably enough with all tested
  operating systems.

  Special thanks to Matthias Paul <mpaul@drdos.org> without whose encouraging
  DRVEXCH would probably never released publicly.

   END OF DOCUMENT 
