Suite of DOS programs dealing with the CD-ROM.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
cdtest.c Initial commit (Release 3-2). Nov 23, 2010
isobar.c Merged SHSUCDX 3.04 & OMIBAR 32. Nov 23, 2010
makefile Initial commit (Release 3-2). Nov 23, 2010
omi.c Merged SHSUCDX 3.04 & OMIBAR 32. Nov 23, 2010
readme.txt Updated docs for release 3-3. Jan 24, 2012
readme32.txt Updated docs for release 3-3. Jan 24, 2012
shsucdrd.nsm Initial commit (Release 3-2). Nov 23, 2010
shsucdri.nsm SHSUCDRI: Initialize CH for the Interrupt call. Jan 24, 2012
shsucdx.txt SHSUCDX: Increase stack Feb 11, 2011
shsudvhd.nsm Initial commit (Release 3-2). Nov 23, 2010
todo.txt Merged SHSUCDX 3.04 & OMIBAR 32. Nov 23, 2010
undoc.mac Initial commit (Release 3-2). Nov 23, 2010


				  SHSUCD Suite

			 Copyright 2005-2012 Jason Hood

			     Freeware.	Version 3-3

		     Derived from SHSUCD 1.4b by John McCoy


    The SHSUCD suite is a set of programs  dealing  with  the  CD-ROM.	They
    allow  access  to  the  CD-ROM as a normal drive letter; create an image
    file from the contents of a CD-ROM; access an image file as a drive; and
    test certain CD-ROM functions.


    The following programs are included in the suite:

	SHSUCDX  v3.05	Provides access to the CD-ROM as a drive (MSCDEX)
	SHSUCDHD v3.01	Simulates a CD-ROM using an image file
	SHSUCDRD v1.00	Simulates a CD-ROM using an image file in memory
	SHSUDVHD v1.00	Simulates a DVD-ROM using multiple image files
	SHSUCDRI v1.01	Creates an image from a CD-ROM in memory
	OMI	 v1.00	Creates an image from a CD-ROM or DVD-ROM
	ISOBAR	 v1.01	Extracts the boot image from a bootable CD-ROM
	CDTEST		Tests the CD-ROM functions (Int2F/AH=15)
	SMARTER 	Patches SMARTDrive 5.02 to cache SHSUCDX


    SHSUCDX is a CD-ROM redirector (substitute for MSCDEX).  It differs from
    MSCDEX in that it can be unloaded, it occupies less memory and only sel-
    ected units are mapped.  It can also handle lowercase names and ISO long
    names (where the 8.3 name would be duplicated).  Please see SHSUCDX.TXT.


    These programs are CD-ROM device drivers that emulate CD- or DVD-ROMs by
    using  image  files (possibly in memory).  The image file can be created
    by OMI, or by any program that can generate a standard .ISO  file  (DVDs
    can only be created by OMI).  Please see IMAGE.TXT.


    OMI (Optical Media Image) will create an image file from  a  CD-ROM,  or
    multiple  files from a DVD-ROM.  The image is a direct copy of the disc,
    which can then be used by the above programs to access the CD/DVD  with-
    out needing the physical disc.  Please see IMAGE.TXT.


    ISOBAR (ISO Boot Archive Remover) will display information about a boot-
    able CD-ROM and optionally extract the floppy or hard disk image, or the
    no emulation code.	In multiple-image configurations, only the  initial/
    default image is recognised.


    Without any options, ISOBAR will display the boot information for the CD
    in	the first CD-ROM drive.  A drive letter (with or without a colon) or
    an image file can be used to display information about another  CD.   To
    actually  extract  the  image, use "-o" followed by the filename to give
    the image.	By default, hard disk images will be extracted in full;  add
    "-d" to just extract the logical drive (ie. the partition).


    The boot information displayed is (all numbers are hexadecimal):

	Catalog Sector	Sector containing the El Torito boot catalog
	Platform	CPU required in order to boot
	ID String	String identifying the manufacturer/developer
	Bootable	Indicates the CD is bootable
	Boot Type	The medium emulated to achieve boot
	Load Segment	Memory address to load initial boot image
	System Type	The format of the partition
	Sector Count	The (emulated) sectors to store at Load Segment
	Image Sector	Sector containing the image
	Image Size	Size of the image in bytes (and decimal)

    To convert the CD sector to an image file offset, multiply by 2048.

    Exit Code

	0	No problems
	1	Unknown/invalid option
	2	Not enough memory
	3	Problem with CD (SHSUCDX not installed, drive is not a
		  CD-ROM, unrecognised format, no disc present)
	4	Unable to create image file
	5	Read/write error


    CDTEST is a simple program to test the CD-ROM functions on interrupt 2F,
    AH=15.   It  also  tests the installation checks using AX=1100.  It will
    only work with SHSUCDX (and only this version,  not  earlier  versions).
    All functions 00 to 0F are tested (ie.  including unsupported functions,
    but excluding 10 device request).  To test 0F directory entry, specify a
    file  name	(which	must  be  a  complete path, including drive letter).
    Since different CDs will yield different results,  the  output  of	each
    function  is  displayed,  rather  than  a "pass/fail" message, so manual
    verification is necessary.


    SMARTER will patch SMARTDrive 5.02 to enable it to cache SHSUCDX.  If no
    file  name is specified, it will try SMARTDRV.EXE in the directory given
    in the "winbootdir" environment variable, or C:\WINDOWS if that  doesn't
    exist.   If the patch is successful, SMARTCDX.EXE will be created in the
    current directory.	Note that SMARTCDX is not capable of caching MSCDEX.
    It	is  recommended  the  SMARTDRV line in CONFIG.SYS or AUTOEXEC.BAT be
    duplicated and commented, modifying the copy to point to SMARTCDX.

    Exit Code

	0	SMARTCDX.EXE created OK, or help displayed
	1	Could not open SMARTDRV.EXE or specified file
	2	Not enough memory
	3	Unrecognised SMARTDrive version
	4	Could not create SMARTCDX.EXE
	5	Could not write SMARTCDX.EXE


    I have used NASM 0.98.39 and Borland C++ 3.1.  Due to my  heavy  use  of
    the  NASM  preprocessor, a 32-bit version is required, with about 6MB of
    free memory (to avoid paging).  I think version .36 may compile, but not
    before  that.   Users  of  other  C  compilers should be able to compile
    SMARTER.C, but the other C programs may need  modifications  (I've  used
    REGPACK  and intr, which seems Borland-specific, so you'll have to split
    REGPACK into REGS and SREGS and use int86x).  Please see the MAKEFILE.

    There's no need to tell me about UPX, but feel free to use it yourself.

    Gzip decompression used by SHSUCDRD is from a modified zlib 1.2.1.	 The
    compiled  library is supplied with the suite, so zlib is not needed, un-
    less you want to use a different compiler.	My modifications to zlib are
    in the SHSUCDRD.TXT patch file (apply with -p1).  It's designed for Bor-
    land; other compilers may require modification (to SHSUCDRD, as well).


    The following files are included in the package:

	README.TXT	This file
	SHSUCDX.TXT	Documentation for SHSUCDX
	IMAGE.TXT	Documentation for all the image programs
	TODO.TXT	List of possible remaining changes
	SHSUCDX.COM	MSCDEX replacement (386+)
	SHSUCDHD.EXE	Use an image file as a CD (386+)
	SHSUCDRD.EXE	Use an image file in memory as a CD (386+)
	SHSUDVHD.EXE	Use image files as a DVD (386+)
	SHSUCDRI.EXE	Create an image file in memory, use it as CD (386+)
	OMI.EXE 	Create an image file from a CD or DVD
	ISOBAR.EXE	Extract the boot image from a bootable CD
	CDTEST.EXE	Test the CD functions (Int2F/AH=15)
	SMARTER.EXE	Patch to allow SMARTDrive 5.02 to cache SHSUCDX
	SHCDX86.COM	MSCDEX replacement (8086)
	SHCDHD86.EXE	Use an image file as a CD (8086)
	SHCDRD86.EXE	Use an image file in memory as a CD (286)
	SHDVHD86.EXE	Use image files as a DVD (8086)
	SHCDRI86.EXE	Create an image file in memory, use it as CD (286)
	NASM.MAC	General purpose NASM macros
	UNDOC.MAC	Undocumented DOS and internal structures
	CDROM.MAC	CD-ROM structures
	OMI.C		(Borland) C source code for OMI
	ISOBAR.C	(Borland) C source code for ISOBAR
	CDTEST.C	(Borland) C source code for CDTEST
	SMARTER.C	(Borland) C source code for SMARTER
	MAKEFILE	(Borland) Makefile for the suite
	ZLIBCDRD.LIB	Library used by SHSUCDRD to decompress images
	ZLIBCDRD.TXT	Patches to zlib 1.2.1 to generate above


    Jason Hood
    11 Buckle Street
    North Rockhampton
    Qld 4701

    Jason Hood, 25 January, 2012.