LASER2.TXT
1/18/92 - Creation
1/23/92 - Revision 1
2/1/92  - Revision 2

     Thought some notes from the trenches on optimizing the Sony Laser Library 
-- or even getting it up and running -- on an AT clone might be helpful.  I do 
not hold myself up as an expert.  Much of what I've picked up was discovered 
right here in the CDROM Forum thanks to helpful and knowledgeable folks with a 
willingness to share; this is more a summary of their tips and suggestions 
(Thank you, all!).

     Some of this information may be transportable to other drives and systems 
if care is exercised.  Please let me know if you have something to add or 
correct, and I'll try to update this to keep it current.

     The topic is pretty much limited to a 486/33 AT clone with DOS 5.0 and 
4MB of RAM.  Most of the discussion will apply to a 386SX processor or higher. 
Sorry, no Windows (defenestrate it) or Multimedia Extensions info here; that's 
beyond me.  Opinions are my own and highly subjective!

THE BASICS:
     To achieve anything with this tome, you must know how to edit your 
CONFIG.SYS and AUTOEXEC.BAT files and have a reasonable understanding of what 
they do. Facility at the DOS Command Prompt is also a prerequisite.

     For some additional background and discussion you might wish to review PC 
Magazine's review of CDROM drives in the 10/29/91 issue.  It's not one of 
their better efforts, especially concerning this drive and the software 
quirks, but it's a start. I'm light on info for hardware installation and 
would appreciate a contribution from anyone who's run the gamut.  The factory 
material was adequate for me.

     The Sony Laser Library (LL), CDU7205, is a popular external drive and is 
sold with a bundle of 6 CDROM disks.  LL is *not* Multimedia PC (MPC) 
compliant, so if you're having difficulty with selected disks only, check that 
they do not require a complete PC system that meets those specifications.  

     There seem to be some conflicts between the bundled disks and various 
common TSR programs such as Sidekick, etc.  If you're having difficulty with 
only a few disks, try stripping down your CONFIG and AUTOEXEC files onto a 
diskette with only the bare minimum necessary to run and enable the CDROM 
drive; boot that; and then try the suspect CD.  If the problem disappears, 
normal detective work - adding back the lines to those two files one at a time 
until the problem reappears or changing the order of commands in the files -- 
may lead to a solution.

     LL's installation routine and instructions are generally adequate for 
plain vanilla systems; but if you have special needs -- a network, other 
complex drivers or initialization routines, etc. -- it will almost totally 
desert you.

     There is no adequate Sony documentation of the critical software 
parameters, or any hints and tricks to load files high, for SONY_CDU.SYS and 
MSCDEX.EXE, the two principal files required to manage the drive.

     Sony Tech Support (201) 368-3774, East Coast, and (714) 826-6410, West 
Coast, may be able to help with some problems, but they will primarily provide 
support for the hardware and installation-related software.  Software support 
for the application disks supplied in the bundle is via a 900 phone number, 
(900) 884-1104, at $2 per minute; the documentation supplied with the disks is 
some of the worst I've seen.

     Comments here in the Forum have been mixed about the quality of both.  
Sony's Computer Peripheral Products, Optical Products Storage Division's CA 
office in San Jose, (408) 432-0190, may provide another avenue for help or a 
place to holler.  Also (408) 944-4326 and (408) 944-4225 at various times.  
I've had good and bad experiences with all those.  Literature on the LL and 
some other Sony products is supposed to be available from (800) 222-0878, but 
two requests brought nothing to my mailbox.  Tracking down dealers from any of 
these sources, or their distributors, was almost impossible: Most of the 
referrals were to dealers for other lines or to dealers that did not stock the 
product or were at the high end of the product spectrum.  Here in Silicon 
Valley, that's a crime. For info, the package can be found at deep discount 
hereabouts for about $530; I've seen some recent traffic here on CDROM that 
says $519.

THE SOFTWARE:

     SONY_CDU.SYS is the device driver necessary to operate the drive.  You 
should have the most recent version, 2.20(a), which is dated 6/11/91 and is 
9,216 bytes.  A statement must be present in your CONFIG.SYS file enabling 
this device driver.  Other CDROM drive brands will have different file names, 
etc. MSCDEX.EXE is the file containing the Microsoft CDROM Extensions, also 
necessary; they assign it a drive number and tell DOS how to access the drive 
as though it were a conventional disk drive.  The version distributed with the 
LL is 2.20, dated 6/16/91 and 25,600 bytes in size.  This file, written by 
Microsoft, and its code do not change from one brand of drive to another 
within the same version number, and a statement must be present in your 
AUTOEXEC.BAT file enabling MSCDEX.

     If you do not have something along these lines or later, see below for 
how to get them.

     There is a later version of MSCDEX, version 2.21, that I highly 
recommend. It does not require the use of DOS's SETVER command in your Config, 
as the earlier one does (but some of your other programs may need it!).  This 
file is 25,431 bytes and is dated 7/23/91.  I have also seen another, 
apparently intermediate, file between these two but lost it somewhere before 
looking at it.  Microsoft's "official" policy is that this newer version was 
developed as a work-around for an incompatibility with one manufacturer's 
product and is not supported.  This newer version seems to load high easier, 
and I have not heard any complaints here about it.

The version numbers are reported to your screen when the respective files 
load, but you may have to read quickly.

     The latest SONY_CDU, plus MSCDEX version 2.20, is available from the Sun- 
Moon-Star BBS at (408) 452-8281; the filename is SONY.ZIP.  The MSCDEX, v2.20, 
is also available separately there as MSCDEX.ZIP.

     MSCDEX -- version 2.21 -- was available here on CDROM Forum but has been 
removed; it is still available from Microsoft's Multimedia BBS at (206) 936- 
4082 as MSCDEX.ZIP.  Please note that it is for "update only" per Microsoft. 
If anyone is aware of additional postings of this file, please let me know.

THE SOFTWARE:

     A lot of the messages here have centered around "What are all those 
switches in SONY_CDU and MSCDEX" and "Why can't I get [those @#$%$#! files to 
load high?"

     Sony says, officially, that these files cannot be loaded high. Microsoft 
says MSCDEX *cannot* be loaded high because of some code that only 
acknowledges up to 640K; they're "looking into it" per an 11/91 mention in 
MSKB on CIS.  End of discussion from them.  Real world: You can do it.  It 
will either be ridiculously easy, or you will be up half the night cussing. 

     Addressing the latter question first, both these files can carry some 
pretty significant TSR overhead if loaded into conventional memory, about 31K 
for MSCDEX and 8K for SONY_CDU.  If you want your CDROM to play pretty music 
while you pound on your wordprocessor -- as I do -- making it the world's most 
expensive CD player, the LLTSR that lets you play audio CD's gobbles another 
27K of precious conventional memory.  If you can't get some of this overhead 
into Upper Memory Blocks (UMB), you may find yourself restricted to running 
programs written in 1983.  Note that many reported problems with getting 
MSCDEX to load high may be caused by its propensity to want use as much as 65K 
of upper memory when loading, which scales way back when it's actually 
running.

CONFIG.SYS:

     DEVICE #1 --To begin with, there are some basics to getting your 386 or 
above beast to load these files high.

     In your CONFIG file the *very* first DEVICE statement should be 
DEVICE=C:\dos\himem.sys (or use the Drive:\Path appropriate to your system, 
here and elsewhere below).  [N.B.: If you have a proprietary driver of some 
kind that you must use to enable extended or expanded memory on your system, 
you should load that as the very first driver.]  Use the HIMEM.SYS file that 
came with your DOS 5.0.  Mine is dated 4/9/91 and is 11,552 bytes.  Some 
previous versions of this file were supplied with applications, including 
Windows, and might be lurking on your systems; they are probably not 
compatible with loading files high.  In my file, the only lines that precede 
the above DEVICE statement are FILES, BUFFERS, STACKS, and BREAK commands.  I 
use a /int15=1088 switch on HIMEM to allocate some extended memory in a 
strange way, but I don't think it's critical to making the Sony files behave.  
I haven't tested that, however.

     DEVICE #2 -- The very next line after the HIMEM line should be the DEVICE 
statement for EMM386, DOS's memory manager.  My line reads
     DEVICE=C:\dos\emm386.exe 1024 /I=E000-EFFF ram.
This allocates 1,024K to expanded memory (the 1024 parameter), and the /I 
parameter reenables the E segment of memory and provides more UMB space (Bless 
you, PC Computing Magazine, for that one!).  Incidently, PC Mag, in its 
2/11/92 edition dealing with memory managers, says that switch should be 
/I=e000-f7ff but is discussing a DOS 5.0 file EMS386.SYS, which I've never 
seen; I think they may have a typo working.  The "ram" parameter must be 
specified to access UMB *and* expanded memory.  If you don't use/want any 
expanded memory, substitute "noems" instead, without the quotation marks, and 
access to the UMB's is still provided.  However, please note that MSCDEX, 
covered in the AUTOEXEC section below, will LOADHIGH easier on most systems if 
the /E switch is used; expanded memory can also be used by its buffers, so you 
may want to have some handy.  Without one of those last two parameters, not 
much is heading high. You can also twiddle with the /M switch on EMM386.EXE to 
change the location of the EMS page frame to provide more contiguous UMB space 
for loading larger programs like MSCDEX.

     DOS -- Next, you need the CONFIG statement that loads DOS high and 
enables the Upper Memory Area:  DOS=HIGH,UMB.  The order of the three previous 
lines is critical.

     LASTDRIVE= -- Sony's installation process has probably put a LASTDRIVE=Z 
statement in your CONFIG file somewhere.  Get rid of it!  It may be 
mislocated, and the statement wastes RAM by allocating RAM for drives all the 
way to #Z.  Rather than test my system for compatibility with the complete 
absence of a LASTDRIVE statement, I inserted a LASTDRIVE=E statement 
immediately after the DOS line above.  The actual letter used should be one 
higher than the letter of your highest drive letter (that should be DOS's 
default, but belt and suspenders won out at 4AM one night).  Don't forget 
about RAM drives and/or network drives you may have.  On my system, I have a 
C: hard disk; CDROM is D:, hence LASTDRIVE=E.

     SHELL -- Here, I inserted my SHELL statement,
SHELL=C:\dos\command.com c:\dos\ /p.  Your may vary, of course.

     DEVICEHIGH #1 -- Laser Library time, finally.
DEVICEHIGH=C:\laserlib\sony_cdu.sys /D:SONY_001 /B:340 /Q:* /T:* /M:H
does it for me.  Most comments suggest that these defaults, or the one the 
install program generates for you, are OK.  Explanations of the switches 
follow, to the extent I've seen discussion of them.  Special thanks to Scott 
Welliver for filling in several blanks recently:

/D:device_name Switch:    The /D: switch provides a name for the drive.  This
                name *must* be the same as used in MSCDEX's /D: switch, covered
                below in the AUTOEXEC section, otherwise the two files will not
                cooperate.  Sony's default was SONY_001 for me.  Someone
                mentioned that these two /D: switches are case-sensitive; they
                are not case-sensitive on my PC.

/U:n Switch:    There is a /U:n switch in which the n=number of CDROM drives. 
                The default is n=1, so your installation may not provide it at
                all.

/B:nnn Switch:  The /B: Switch is the I/O address or base address of the
                CDROM host adaptor.  Default is nnn=340.

/M:n Switch:    The transfer mode, where n=D for DMA; P for software; H for
                High speed software.  Default is P for PC/XT and H for PC/AT.

/T:n Switch:    The channel number of the CDROM host adapter, which only works
                with /M:D.  The default drq is /T:* in which the "*" indicates
                not to use DMA requests.

/Q:n Switch:    The IRQ channel number of CDROM host adapter.  The default is
                /Q:* in which the "*" indicates not to use the interrupt.

The order of the switches was reported to be important, but Sony's install 
routine did not follow the above order in my case, so I'm not sure if order is 
important or if the above-listed order is correct.

     DEVICEHIGH #2 -- Following the SONY_CDU statement, I inserted 
DEVICEHIGH's for my video driver, SETVER (Yes, I know I don't need it for 
MSCDEX v2.21, but I have one other troublemaking program that needs it.), and 
mouse. (Please see note below on LLTSR.EXE for additional comments on these 
device drivers.)

     DEVICEHIGH #2+ -- If you elected not to use MSCDEX version 2.21, you will 
need a DEVICEHIGH=C:\dos\setver.exe statement in CONFIG to permit MSCDEX to 
load in your AUTOEXEC later.  (Please see note below on LLTSR.EXE for 
additional comments on these device drivers.)

These additional device drivers should usually be loaded in decreasing order
of size, per MS's instructions, but you may have difficulty or conflicts. 
Try adding one at a time where possible, check with MEM/C|MORE often and read
MS DOS 5.0 manual carefully, especially the sections on DEVICEHIGH,
Customizing your system, Optimizing your system, etc.  I know that violates
the first rule of computing, "Never read the manual," but...
AUTOEXEC.BAT:

     Aside from providing some alterations to my environment with the SET 
command, I launched right into a PATH statement in my AUTOEXEC.  The PATH must 
include C:\laserlib.  A typical PATH might read as follows:
     PATH=C:\;C:\dos;C:\laserlib

     LOADHIGH #1 -- This line is the critical one.  Mine is:
LOADHIGH C:\laserlib\mscdex.exe /D:SONY_001 /L:D /M:8 /E /V.

A discussion of the [MSCDEX] switches follows:

/D: Switch:     This provides the name of the drive as above for SONY_CDU. It
                is imperative that the two /D: switches in MSCDEX and SONY_CDU
                use exactly the same name. Matt Seitz reports that MSCDEX will
                recopnize multiple device drivers.  Just add multiple /D:
                switches to MSCDEX, e.g.
                 MSCDEX /D:device_name1 /D:device_name2
                that conform to the device drivers /D: switches loaded in your
                CONFIG.

/L: Switch:     This is the drive letter assigned to the CDROM drive.

/M: Switch:     This switch specifies how much memory should be used as buffers
                for caching CD data.  Default is 8.  You can reserve /M:xx,
                where xx=number of sectors (1 sector = about 2K, so BEP says,
                for this).  The /E switch below enables expanded memory for
                these; it's use is [highly] recommended since the default of 8
                uses 32,768 bytes of expanded memory for buffers (thanks,
                Jack!), while the driver lurks in high memory at about 15K.
                The total of these may exceed your high memory total, causing
                MSCDEX not to load high.

/E Switch:      See discussion for /M: Switch.  If you have EMS or can provide
                it, its use is recommended.  Don't forget to enable it in
                EMM386.EXE, covered above.

/K Switch:      Use of the /K Switch enables the use of the Kanji (Japanese)
                file structure if it is on the CD.

/S Switch:      Per BEP, this switch is used to patch DOS on MS-NET based
                networks to let the CDROM drive be shared by other nodes.  Matt
                also reported, more clearly I hope to those of you that are
                network aware, that the /S Switch (Server) instructs MSCDEX to
                make the CDROM appear to networks as a local drive, rather than
                another network drive; you should then be able to share the
                CDROM drive using NET SHARE or the net menu.

/V Switch:      This switch displays some additional (Verbose) information when
                the file loads.  It may include the total initial loading size
                of MSCDEX when loading it high.  You will probably need to
                insert a temporary PAUSE in your AUTOEXEC immediately after
                the MSCDEX call so you can read it.  Delete the PAUSE once the
                system is humming.

The order, above, of the switches may be important, but I have not tested the
/K or /S switches.

     If you are using a fast system and are having problems with LOADHIGH for 
MSCDEX, try the poor-man's fix:  Insert a PAUSE in the AUTOEXEC line just 
before calling MSCDEX; I almost kissed Rick for that one!  When I later 
rearranged my LOADHIGH's, the need for it went away somehow.

     After a successful load of MSCDEX, add additional AUTOEXEC lines as 
necessary, starting with all other LOADHIGH lines.  Per MS, try descending 
order of size,  one at a time, checking with MEM/C|MORE each time.  Note that 
some files, even though there appears to be sufficient UMB available will 
balk.  Sidekick would not load high at all until I put 4 other dinky TSR's in 
front of it.  Work hard on the order and expect some odd surprises, e.g. my 
ancient Logitech mouse driver not only wouldn't load in UMB, but it wouldn't 
run at all with any programs in UMB.  I ended up further enriching Bill Gates 
to get a new mouse driver for an old MS mouse I had gathering dust.  Then it 
turned out that two programs wouldn't recognize Bill's latest drive, 8.15, so 
I had to revert to 7.0.  It's tedious, but it works.

     If you should encounter an "Incorrect DOS Version" error message when 
loading MSCDEX in your AUTOEXEC file, be sure you have correctly invoked 
SETVER in your CONFIG file.  If the message persists, change to the directory 
containing SETVER.EXE and enter the following command: SETVER MSCDEX.EXE 4.00 
That will update your SETVER table to report to MSCDEX that it is running 
under DOS 4.0.

     After all the LOADHIGH's, finish up with whatever additional 
instructions, TSR's, etc. you need or want in conventional memory.

     Oh, if you want to play background music with LLTSR.EXE while crunching 
other data, I finally found the deep, dark secret (Thanks, Teddy!) to loading 
it high, at least on my system.  Normally, when you try to load this high, 
you'll find that a small piece of it, only 0.1 - 0.5K, will go up; but the 
rest, about 27K, stays in conventional memory.  Sony says LLTSR will not 
loadhigh, but that's what they said about SONY_CDU and MSCDEX too.  Try 
clearing out CONFIG of all DEVICEHIGH statements, except SONY_CDU.  Just reset 
them to DEVICE statements.  I had been running an MS Mouse driver, a 
proprietary version of ANSI, and SETVER with DEVICEHIGH's and that was what 
prevented LLTSR from loading high, for some reason.  Since LLTSR is a whole 
lot bigger than the three others combined, it was an easy decision.  I'll work 
on that last 10K or so...  One caveat: LLPLAY will not function on my system 
with LLTSR loaded high;  LLTSR works fine, however.  More gremlins to ferret 
out, time permitting.

     For those of true daring, Glen Chapman, 73517,2273, posted a message in 
late January '92 on the CDROM Forum with an EXPERIMENTAL way to tinker with 
MSCDEX, if you have EXMOD, a utility distributed with some compilers.  It may 
let you adjust the loading/running size of MSCDEX.  Please refer to his 
message if you'd like more information.

Enjoy!

Kevin -- 76650,351
