Modified OS/2 CD-ROM / CD-RW / DVDs device manager driver, build JJ20030312

with CD-DA digital reading / CD-XA reading / multisessioning / CD-Extra enhancement
Modification copyright (c) 1999-2003 Takayuki 'January June' Suwa / Beliefia Productions
Modification copyright (c) 2000 Robert Lalla


0. Table of Contents



1. Welcome

JJSCDROM.DMD is a modified version of OS/2 CD-ROM / CD-RW / DVDs device manager driver (OS2CDROM.DMD), based on the latest OS/2 DDK on-line source code (DDK_020517).
This driver supports:

1.1. Copyright and Disclaimer

  1. 'MODIFICATION PART OF THIS SOFTWARE AND WHOLE SET OF DOCUMENTS' (CALLED 'THE PACKAGE') ARE ENTIRELY COPYRIGHTED BY TAKAYUKI 'JANUARY JUNE' SUWA / BELIEFIA PRODUCTIONS AND ROBERT LALLA, AUTHORS / HOLDERS OF THE PRODUCT.
  2. THE PACKAGE IS PROVIDED 'AS IS' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
  3. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR IBM CORPORATION BE LIABLE FOR ANY DAMAGES, WHETHER IN CONTRACT OR TORT (INCLUDED NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THE PRODUCT, EVEN THOUGH SUCH HOLDERS HAS BEEN ADVISED OF THE POSSIBILITY OF ANY DAMAGE.
You accept the copyright and disclaimer statement above by installing JJSCDROM.DMD. If you do not agree with this, you must remove all files in the package from your system.

1.2. System Requirements

This software is designed to function in an environment such as:

1.3. Contact Author

Email to Takayuki 'January June' Suwa:

1.4. Revision History



2. How to Use


2.1. In This Archive

JJSCDROM.dmd
Modified OS/2 CD-ROM / CD-RW / DVDs device manager driver file
JJSCDROM.sym
Symbol information file for debugging
README.htm
This document
READMEJ.htm
This document in Japanese
cmprssed\JJSCDROM.dmd
lxLite-compressed version of JJSCDROM.dmd, requires Warp v3 or later; May work well or not :)
source\source.zip
Zipped GNU-diffs from the original source files; This includes long-filenames

2.2. Driver Installation

  1. Unzip archive to where you desire. (e.g. C:\JJSCDROM)
  2. Find in your CONFIG.SYS
    DEVICE=d:\OS2\BOOT\OS2CDROM.DMD
    and remove or disable it.
  3. Add to your CONFIG.SYS a line like
    DEVICE=d:\path\JJSCDROM.dmd
    (d and path must be replaced with actual installation drive / path)
  4. Restart your system.

2.3. JJSCDROM.DMD Options


2.3.1. CONFIG.SYS Syntax

DEVICE=d:\path\JJSCDROM.DMD [options]

2.3.2. Option Diagram

----+- /Q -------+-+--- /F[C[+|S|T]|X[+|T|S|N]|M[+|T|S|C|N|H|X]|U[U|P|A]] -+---->
  ^ |          ^ | | ^                                                     | ^
  | +- /V[P] ->| | | +-----------------------------------------------------+ |
  | +- /R:n -->| | +---------------------------------------------------------+
  | +- /S ---->| |
  | +- /W -----+ |
  | +----------+ |
  +--------------+

 
  --+--- /U:n -+--- /F[C[+|S|T]|X[+|T|S|N]|M[+|T|S|C|N|H|X]|U[U|P|A]] -+---+---||
    | ^        | ^                                                     | ^ | ^
    | |        | +-----------------------------------------------------+ | | |
    | |        +- /I ----------------------------------------------------+ | |
    | +--------------------------------------------------------------------+ |
    +------------------------------------------------------------------------+

2.3.3. Option Descriptions

/Q
quiet; displays no messages if not installed
/V
verbose; displays CD-ROM unit information
/VP
same as /V, with pausing (requires PAUSEONERROR=YES)
/R:n
reserves at least n driveletters (driveletter reservation)
/S
assigns only 1 driveletter to SCSI-3/MMC / ATAPI changer units
/W
treats all WORM-style devices as CD-ROM; in order to not apply this treatment to specific unit(s), use /U:n /I
/U:n
specifies unit number for /Fxy and /I, 0 based
/I
ignores unit (no driveletter assignment)
/Fxy
enforces CD-DA / CD-XA / multisessioning / UPC treatments; without preceding /U, applies to all units
/FC+
forces "CD-DA readable" flag on
/FCS
enforces Sony CDU-561 compatible SCSI CD-DA readout method *
/FCT
enforces Toshiba XM-3401 compatible SCSI CD-DA readout method *
/FC
same as /FC+ /FCS
/FX+
forces "CD-XA readable" flag on
/FXT
enforces Toshiba XM-3401 compatible SCSI CD-XA readout method *
/FXS
enforces Sony CDU-561 compatible SCSI CD-XA readout method *
/FXN
enforces NEC 84-1 compatible SCSI CD-XA readout method *
/FX
same as /FX+ /FXS
/FM+
forces "multisessioning-aware" flag on
/FMT
enforces Toshiba XM-3401 compatible SCSI multisessioning method *
/FMS
enforces Sony CDU-561 compatible SCSI multisessioning method *
/FMC
enforces Chinon CDS-535 compatible SCSI multisessioning method *
/FMN
enforces NEC 84-1 compatible SCSI multisessioning method *
/FMH
enforces HP C4324 compatible SCSI multisessioning method *
/FMX
enforces NEC 46x compatible SCSI multisessioning method *
/FM
same as /FM+ /FMS
/FUU
marks as "UPC readable" and enforces unpacked raw UPC format *
/FUP
marks as "UPC readable" and enforces packed raw UPC format *
/FUA
marks as "UPC readable" and enforces ASCII raw UPC format *
/FU
same as /FUA
/F
same as /FC+ /FCS /FX+ /FXS /FM+ /FMS
* because SCSI-3/MMC / ATAPI drives can automatically detect and configure their own capabilities, these options are ignored on such drives.

2.3.4. Startup Output Description

IBM OS/2 JJSCDROM.DMD (DDK_020517) (JJ20030312)
ui : di-ai-un-lu : vendor   product          rev  : da xa ms up
00 : 01-01-01-00 : TEAC     CD-W216E         1.0A : +* +* +* +A
01 : 02-00-03-00 : TEAC     CD-ROM CD-532S   3.0A : +S +S +S --
02 : 02-00-05-00 : RICOH    MP6200S          2.40 : +* +* +* +A
^^   ^^ ^^ ^^ ^^   ^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^   ^^ ^^ ^^ ^^
|    |  |  |  |    |        |                |      || || || ||
a    b  c  d  e    f        g                h      ij kl mn op
a
# of CD-ROM unit index (for /U option)
b
# of adapter device driver index installed
c
# of adapter index controlled by each adapter device driver
d
physical unit number of CD-ROM units connected to each adapter
e
logical unit number on each physical unit
f, g, h
device inquiry strings
i
'+' if "CD-DA readable" flag is turned on
j
SCSI CD-DA reading method enforced [S/T], or '-' if not enforced
'*' if SCSI-3/MMC / ATAPI drive and therefore automatically configured
k
'+' if "CD-XA readable" flag is turned on
l
SCSI CD-XA reading method enforced [T/S/N], or '-' if not enforced
'*' if SCSI-3/MMC / ATAPI drive and therefore automatically configured
m
'+' if "multisessioning-aware" flag is turned on
n
SCSI multisessioning method enforced [T/S/C/N/H/X], or '-' if not enforced
'*' if SCSI-3/MMC / ATAPI drive and therefore automatically configured
o
'+' if marked as "UPC readable"
p
raw UPC format [U/P/A], or '-' if not readable
SCSI-3/MMC / ATAPI drive always tells 'A' if readable


3. Added / Modified IOCtl Functions


3.1. IOCTL_CDROMDISK - CDROMDISK_FEATURE_CTRL

Category:
IOCTL_CDROMDISK (80h)
Function:
CDROMDISK_FEATURE_CTRL (4ah)
Desctiption:
Set JJSCDROM-extended feature flags
Parameter Packet Format:
Pointer to struct FeatureCtrl_Parm.
struct FeatureCtrl_Parm {
   ULONG    ID_code;  // 'CD01'
   USHORT   flags;    // flags, see below
};
 
/* flags for FeatureCtrl_Parm */
#define FEATURECTRL_DISABLEMS  0x0001
  // disables multisession handling (restricts only 1st session TOC; CDS200 spoiler)
#define FEATURECTRL_FIXTRK1NEG 0x0002
  // fixes track 1 negative start LBA (to zero; CDS200 spoiler)
Data Packet Format:
None. This pointer should be NULL.
Returns:
NO_ERROR
Success.
ERROR_I24_INVALID_PARAMETER
Invalid parameter (ID_code or flags value are not valid).
ERROR_I24_BAD_COMMAND
This function is not supported.
Remarks:
This new function sets / resets the JJSCDROM-extended feature flags.
FEATURECTRL_DISABLEMS (0x0001)
If the bit set, disables multisession handling of the specified drive. If reset, enables multisession handling. By default, this bit is reset state (no disabling; multisession handling enabled).
Useful for CD-DA handling of the last audio/data-mixed CD-Extra track, because disabling multisessioning can completely hide the CD-Extra data part / Midbar CDS-200 bogus 2nd session TOC information.
FEATURECTRL_FIXTRK1NEG (0x0002)
If the bit set, fixes track 1 start LBA value to zero if the value is negative. If reset, no fix applied. By default, this bit is reset state (no fix).
Useful for CDDA-Redbook-violate TOC information medium such as Midbar CDS-200 disc.
If a medium is present when any flags are changed, the medium is automatically remounted. Issueing IOCTL_CDROMDISK - CDROMDISK_RESETDRIVE also makes all flags default state.

3.2. IOCTL_CDROMDISK - CDROMDISK_DEVICESTATUS

Category:
IOCTL_CDROMDISK (80h)
Function:
CDROMDISK_DEVICESTATUS (60h)
Desctiption:
Get device status
Parameter Packet Format:
(not changed)
Data Packet Format:
(not changed)
Returns:
(not changed)
Remarks:
3 new device status bits are added:
bit 29
If set, this drive has multisession handling capability.
bit 28
If set, multisession handling of this drive is currently disabled.
bit 27
If set, track 1 negative start LBA fix of this drive is currently enabled.

3.3. IOCTL_CDROMDISK2 - CDROMDISK2_FEATURES

Category:
IOCTL_CDROMDISK2 (82h)
Function:
CDROMDISK2_FEATURES (63h)
Desctiption:
Return DM feature information
Parameter Packet Format:
(not changed)
Data Packet Format:
(not changed)
Returns:
(not changed)
Remarks:
2 new feature flag bits are added:
FEATURE_MSCTRL_SUPPORT (0x00008000)
If set, this driver supports IOCtl IOCTL_CDROMDISK - CDROMDISK_FEATURE_CTRL and therefore JJSCDROM-extended feature FEATURECTRL_DISABLEMS flag and device status bits 28-29.
FEATURE_TRK1NEGFIX_SUPPORT (0x00004000)
If set in addition to FEATURE_MSCTRL_SUPPORT, this driver also supports JJSCDROM-extended feature FEATURECTRL_FIXTRK1NEG flag and device status bits 27.


4. Credits

Development
Modification programming
Takayuki 'January June' Suwa / Beliefia Productions
Documentation
Takayuki 'January June' Suwa / Beliefia Productions
Special thanks to
Atsushi Nishio (aka. 'The Netscape Communicator 4.61 for OS/2 Team - Extended Development Team' member :))
My predecessor in modifying the CD-DA reading feature. He suggested me with enabling CD-DA reading / multisessioning capabilities and to attach WORM-style SCSI CD-R.
Robert Lalla
Author / donator of CD-Extra support modification. I think that many OS/2 users admire your decision.
Sant Coetzer
Corrector / proofreader of this document. Sorry for my poor English :)


Modification copyright (c) 1999-2003 Takayuki 'January June' Suwa / Beliefia Productions. All rights reserved.
Modification copyright (c) 2000 Robert Lalla. All rights reserved.
Beliefia Productions and its logo design are trademarks of Beliefia Productions. All rights reserved.
Other copyrighted works (images, musics, programs, and so on), trademarks and servicemarks in this document are owned by their respective owners.

[This document is HTML3.2(Wilbur)-compliant.]