Latest Versions as of October 19, 2000

   SHSUSERV Version 3.1
   SHSUCDN  Version 0.01
   SHSUCDX  Version 1.4b
   SHSUDRVX Version 1.1
   SHSUCDHD Version 4.0
   CDCACHER Version 5.0

SHSUSERV is a CD-ROM server that allows 48 users simultaneous access to
         CD-ROMs.  The CDs may be mounted on physical drives or they may
         be cached images created on a hard disk using the CDCACHER program.
         Driver names and cache image names may be specified in a server
         initiation file (SHSUSERV.INI) at start up.

         This version provides a toggle to turn off polling the drives to
         update the screen display of the the CD volume labels that occurs
         every 20 seconds.  I am told that this causes cd changers to
         continuously cycle through the CDs.

         The client/server link uses NETBIOS. The unique server name can be
         specified on the command line when the server is started.  Client
         names must also be unique.

         The server program will run in a DOS window under OS/2 Warp 3.  I
         have run it using native NetBeui, netbios over Novell's OS2-DOS IPX.
         I have run it using netbios over TCP/IP, but not on an OS2 machine.
         Remember that the transport protocol must be the same at the client
         and server. i.e., both ends must be IPX, IP, NetBeui, or whatever.
         When run in an OS2-DOS window, a CD must be in the drive when the
         server is started and it cannot be changed. The Pulse program shows
         100% CPU utilization when the server is run because the server uses
         polling loops.  Hence, the server does degrade OS/2 performance.  If
         I ever figure out how to make the 32 bit OS2 NetBios interface work,
         I hope to complete an interrupt driven OS/2 version of the server.

         The server will run under NT DOS emulation using cached images only.
         I have been told that, NT's DOS emulation does not provide a CD
         device driver interface.  I have also seen it run in a window under
         Win95.

SHSUCDN  is a pseudo CD-ROM driver that runs as a TSR on a client work-
         station.  It accepts CD-ROM driver request from MSCDEX and
         transmits them on to the server and returns the server response
         to MSCDEX.  SHSUCDX may be used in place of MSCDEX.

SHSUCDX  is a CD-ROM redirector substitute for MSCDEX.  It differs from
         MSCDEX in that it can be un-loaded, it occupies less memory, and
         only selected drives are mapped.  Version 1.4b also converts
         lowercase characters to upper case in directory entries.  Lower
         case characters are invalid but some mastering programs put them in.
         Local and networked CD-ROMs can be accessed simultaneously using
         the SHSUSERV/SHSUCDN client/server software or by using SHSUCDHD.
         A total of 10 drives can be mapped in any order from all available
         drives on 10 drivers.  See README.CDX

SHSUDRVX is a CD driver/controller emulator which emulates two CD drives
         loaded with ISO CD ROMS.  It is useful for testing.  It can be
         loaded multiple times with different driver names to simulate
         more than 2 drives.  See README.DRV

SHSUCDHD is a pseudo CD-ROM driver that runs as a TSR on a client work-
         station and makes up to 5 local or remote cd cache images appear as
         cd drives.  It is known to be compatible with Novell VLM clients and
         NT clients.  It will not access remote cache files using Novell's
         NETX shell client.  See README.CDH
         Images can be created using the Cacher program or any program that can
         create and ISO disk image.

         Warning!!!!  Attempting to use MSCDEX with SHSUCDHD will crash
            your system.  SHSUCDX must be used.

CDCACHER is a stand alone program for making a hard disk cache image of a CD
         ROM for the server.  A full CD can take a while and lots of disk space.

2KBLOCK.DAT is a 2048 byte block of nulls for converting old cache images to
         the new cache format.  See README.1ST.

KLUDGE0  is a dummy CD driver which makes a specified driver,unit appear as
         unit 0 on CD0.

Files included in this zip file:

     README.1ST     Warning about change in cache image file format.
     README.CD      This file.  Client/Server documentation.
     README.CDX     Documentation for SHSUCDX.
     README.DRV     Documentation for SHSUDRVX.
     SHSUSERV.EXE   Server executable.
     EXAMPLE.INI    Sample server initiation file.
     SHSUCDN.EXE    Client executable.
     SHSUCDX.EXE    Redirector executable.
     SHSUDRVX.EXE   A CD Drive emulator executable.
     SHSUCDHD.EXE   Cached image driver executable.
     CDCACHER.EXE   CD cache image creation program executable.
     KLUDGE0.EXE    Drive unit remap program executable.
     SHSUCDN.ASM    Client source.
     NETBIOS.INC    Netbios include file for SHSUCDN.ASM.
     SHSUCDX.ASM    Redirector source.
     UNDOC.INC      Include file for SHSUCDX.
     CDROMS.INC     Include file for SHSUCDX.
     CMDS.C         Redirector sub-functions.
     CDROMS.H       Header file for CMDS.
     REDIR.H        Header file for CMDS.
     SHSUSERV.ADA   Main server program - ADA83.
     TYPES.ADS      Common objects package - ADA83.
     TYPES.ADB
     NETBIOS.ADS    Netbios package - ADA83.
     NETBIOS.ADB
     DRIVERS.ADS    CD driver package - ADA83.
     DRIVERS.ADB
     SERVTASK.ADS   Server tasks package - ADA83.
     SERVTASK.ADB
     CDROMS.ADS     CDROMS package - ADA83.
     CDROMS.ADB
     CDCACHER.C     CD cache image creation program source.
     SHSUCDHD.ASM   Cached image driver program source.
     KLUDGE0.ASM    Drive unit remap program source.
     SHSUDRV0.IMG   Sample cache image files made by caching
     SHSUDRV1.IMG     the drives created by running SHSUDRVX.
     2KBLOCK.DAT    2048 byte block of nulls for converting cache images

Loading the server.

    If an initiation file named SHSUSERV.INI is not located in the default
    directory when the server is started, the server looks for CD-ROM drivers
    named CD001, CD002, MSCD001, and MSCD002, or file images SHSUDRV0.IMG, and
    SHSUDRV1.IMG

    If a server initiation file, SHSUSERV.INI is used, any valid driver or
    file image names (max pathname is 24 characters) may be used.  Names in
    the file that cannot be located are ignored.  See the example .INI file.
    This file must be in the default directory (not necessarily the directory
    where the server or cached images are located) when the server is started.
    If you are using cached images, you may need to increase DOS's default
    FILES= value in your CONFIG.SYS file.

    The default driver name in OS2-DOS is MSCD001.  Under PCDOS the driver
    name is assigned in the config.sys file statement that loads the driver.
    A typical config.sys command to do this is:

        device=tslcdr.sys /D:CD001

    NetBios must be configured and loaded on the server before starting
    the server program.  The server itself is configured to handle up to
    48 users.  Novell's NetBIOS defaults to 12 sessions and 12 outstanding
    commands.  To make full use of the server you must increase this with
    entries in the NET.CFG file.
    The commands
        NETBIOS COMMANDS=48
        NETBIOS SESSIONS=48
    are holdover shell commands and must be left justified and terminated
    with a return.  The newer command are shown in some NetWare books.
    Perhaps they will work for you.  The important thing is that if it's
    configured for 48 commands it will say so when loads.

    Once NetBIOS is loaded, the server can be started.  The syntax for
    loading SHSUSERV is

      SHSUSERV [/S:ServerName]

    The default network server name is SHSU-CD-SERVER.  Server names cannot
    exceed 16 characters (no embedded spaces).

Loading the client.

    NetBIOS must be loaded on the client and the CD server started before
    loading SHSUCDN.  The syntax for loading SHSUCDN is:

      SHSUCDN [/?][/C:ClientName][/S:ServerName][/D:DriverName][/Q][/U]

    The default network client name is CD-CLIENT.  The default Server name
    is SHSU-CD-SERVER.  The default Driver Name is SHSU-CDN.  The client
    network name must be unique and the /C: parameter is used for this purpose.

    A typical sequence to load SHSUCDN and MSCDEX on the workstation will
    look something like (case in not important):

        SHSUCDN /C:Monique
        MSCDEX  /D:SHSU-CDN

    Additional drivers can be included on the MSCDEX command line.  Prior to
    loading MSCDEX, SHSUCDN can be unloaded with the /U switch.  Unfortunately,
    MSCDEX is not unloadable and it is best to not unload SHSUCDN after MSCDEX
    is loaded.

    To unload SHSUCDN the driver name must be included on the command line if
    the default name was not used when it was loaded.  i.e., if you loaded
    SHSUCDN  with the command line

        SHSUCDN /C:Monique /D:CD001

    use the command line

        SHSUCDN /D:CD001 /U

    to unload it.

    SHSUCDX can be loaded after SHSUCDN instead of MSCDEX.  It is unloadable
    and can be unloaded using the /U switch before unloading SHSUCDN.  For more
    information on SHSUCDX see the accompanying README.CDX file.

    Some DOS programs bypass MSCDEX and access the CD driver directly.  The
    installation program for one widely used reference engine uses MSCDEX to
    install and to locate the CD driver.  After installation, however, the
    driver is accessed directly by name and MSCDEX is bypassed(it doesn't even
    have to be loaded).  Further, the program expects the CD to be on unit 0.

    KLUDGE0 is a fix for this problem.  For instance, if the CD is on unit 7
    of MSCD001, executing KLUDGE0 /D:MSCD001,7 will make it appear as unit 0
    on a driver named CD0.  This can then be mapped to a drive letter with the
    MSCDEX parameter /D:CD0.

SHSUSERV, SHSUCDN, SHSUCDX, SHSUDRVX, SHSUCDHD and CDCACHER are copyright
 reserved, free use programs.  Use at your own risk.

Time permitting, an attempt will be made to fix problems that are reported
 to CSC_JHM@SHSU.EDU.

(c)John H. McCoy, 1994, 1995, 1996 Sam Houston St. Univ., TX 77341-2206