
			      SHSUCDX Version 2.1a
			    Jason Hood, October 2003
			      jadoxa@yahoo.com.au


    This is an update to SHSUCDX version 1.4b by John McCoy. See  README.CDX
    for  usage	details.  This	document only contains the changes. The full
    SHSUCD package also contains  client/server  and  cache  programs.	This
    package is just the redirector component (MSCDEX replacement).

    Note: a 386 is required. It also loads itself high (by default).

    The primary reason for this update is to support long ISO  entries.  The
    previous  version  would  simply  take the first eleven characters. This
    version will take the first eight characters, or up to the dot, skip  to
    the  dot,  then  take  the next three. It also has an option to generate
    "tilded" entries, which will overcome same-name limitations.  The  tilde
    generation	is  similar, but not identical, to how Windows generates its
    short name entries for the long names. The tilde usage is controlled  by
    the new option /~:

	SHSUCDX /d... /~

    will generate tilded entries instead of truncating.  This option is also
    available after installation:

	SHSUCDX /~[+|-]

    "+" will turn tildes on, "-" off; anything else  will  toggle.  The  Get
    Directory Entry function has been extended to control tilde usage:

	Int 2F
	AX = 150F
	CL = -1
	  CH = 0: Get current tilde state in AX (0 off, -1 on)
	  CH = 1: Set current tilde state from BX (as above; assumed valid).

	  Carry will be cleared (MSCDEX will set carry).

    After changing the tilde state it might be necessary to change the path,
    to reflect the new name(s).


    A new program has been added to patch SMARTDrive 5.02  to  allow  it  to
    cache SHSUCDX. Simply run SMARTER.EXE [d:\path\smartdrv.exe] to generate
    SMARTCDX.EXE in the current directory. If the path	to  SMARTDRV.EXE  is
    not  given,  SMARTER  will	try  and  locate  it  using the "winbootdir"
    environment variable, or C:\WINDOWS. Note that SMARTCDX will  not  cache
    MSCDEX  should you wish to return to it. Another function has been added
    to supplement the patch:

	Int 2F
	AX = 1100
	BX = EBAB
	Return:
	  BX = BABE
	  ES:DI -> drive table
	  CX = number of drives

    This might be useful should you wish to know the resident segment.


    Following are the other changes:

       It's a lot smaller - only 6.5K for one drive.

       The error codes have been corrected (they were the right number,  but
       in the wrong base).

       Finding the volume label will preserve  the  path  and  pattern	(not
       implicitly set "\*.*").

       Return the hidden attribute (it was only being set in searches).

    Redirector (Int 2F AH = 11):

	All functions will set carry on drive not ready.

	Open (16) and Extended Open (2E) will fail on write;  Extended	Open
	also fails on replace.

    MSCDEX (Int 2F AH = 15):

	Get Copyright (02), Abstract (03) and Bibliographic (04) file  names
	will  return  only  what  is  necessary (ie. up to the first space).
	Previously the whole 37 bytes were returned.

	Read VTOC (05) will read all (up to 240, anyway).

	Absolute Read (08) will return 0 if successful (not 1).

	Get (MSCDEX) Version will return version 2.22.

	CDROM Check (0B) clears carry.

	Get Directory Entry (0F) will copy the length and fail the canonical
	request.


    Version 2.1a:

	Fixed bug when ignoring drivers.

	Invoke the critical error handler for DOS functions when  the  drive
	is not ready.

	Fix bug with "CD \" in FreeDOS.

    Version 2.1:

	Help screen via "/?".

	"/C" will prevent automatically  loading  into  high  memory.   High
	memory problems with some systems have also been fixed.

	Prefixing the driver name with '?' (ie: "/D:?driver") will  silently
	ignore the driver if it could not be found.

	Fixed problem in determining the drive letter to use.


    Jason Hood, 12 October, 2003.
