home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
hobbes.nmsu.edu
/
2008-06-02_hobbes.nmsu.edu.zip
/
dos
/
mscdex2.zip
/
MSCDEX.OS2
next >
Wrap
Text File
|
1993-03-02
|
15KB
|
314 lines
MSCDEX.EXE under OS2
Due to tremendous interest in getting version of MSCDEX.EXE
that would work in normal DOS session under OS2, I have pulled
following message from my archive. At the time of reading the message
it seemed to be very interesting. I have done almost the same
thing as the author of the original message. Not testing my results
properly I have posted first version of my hack to hobbes (on 3.1.93).
The I was notified by several prospective users that it doesn't
work. So I have tried harder and finaly understood what is going
on:
1) I have learned, that MSCDEX.EXE is a wild hack on the Microsoft
side, accessing internal structures of DOS. So they have good
reason to check on the version of DOS (they originaly allow
versions of DOS 3.1 - 5.x, see following post of the
first hacker). I happen to have also Correl SCSI v 1.1 that
contains replacement for MSCDEX.EXE called CORELCDX.EXE.
It checks the version of DOS only from below (>= 3.1) but
complains about "Invalid DOS pointers found" when run under OS2 DOS
session.
2) Then I went back to documentation and found on the page 81 of
volume 2 of famous "Red Books" small note about VCDROM and
MSCDEX. It basically says, that VCDROM virtual device driver
enables audio support for CD-ROM applications running in
virtual DOS machines. Under native DOS, audio and other IOCTL
support is provided by the pass-through function of the CD-ROM
file system driver, MSCDEX. VCDROM provides two features necessary
to support DOS CD-ROM applications:
* It emulates the presence of MSCDEX
* It translates the DOS style IOCTLs into requests that the
physical CD-ROM device driver can understand.
VCDROM provides only audio IOCTL support and not a full emulation
of MSCDEX, as most DOS CD-ROM applications use standard DOS interface
for file system services and the MSCDEX interface for audio services
only. Any application, that calls MSCDEX for file system services
WILL NOT RUN in a virtual DOS machine.
3) That was bad news. If I may summarize - there is no hope for getting
patched version of MSCDEX servicing file requests under virtual
DOS machine (it means standard DOS session under OS2). Of course
you have file services available with proper OS2 drivers for your
equipment, but it is done in a different way, not in the style
of MSCDEX.
4) Now for the good news - from the paragraph 2 follows, that there
was some hope at least for audio services with patched MSCDEX
(that would start and not complain about bad DOS version). So I
did exactly that - I have patched original MSCDEX.EXE to avoid
checking for DOS version. It will serve two purposes in standard
OS2 DOS session - it will positively answer to program inquiries
about the presence of "MSCDEX extansions" and it will enable
you to use your favourite program for listening audio CD's on
your CD-ROM (Trantor Musicbox, Correl CD-Audio, IBM CD Play -
almost any DOS program should work). I have also verified, that
you can play audio CD's also in Windows started in that particular
session after you have installed my patched MSCDEX2.EXE. You
don't even have to have installed in your config.sys VCDROM.SYS.
5) How should you install the whole thing (in case you are
interested in its limited functionality) ? It is simple:
a) First make sure that your setup works under real DOS.
That means install CD-ROM software and verify that everything
works.
b) Then for a dedicated DOS session go to its DOS Settings and
under DOS_DEVICE setting type in relevant lines from your
native config.sys that are connected with CD-ROM. Usually
it is either one line specifying device driver, or two
lines serving the same purpose, only one is so
called ASPI driver and second is true device driver.
You are supposed to type only what comes after "device="
from your native DOS config.sys, but with all switches
and parameters. That will start for that particular DOS
session relevant device drivers for communication with
your CD-ROM hardware.
c) After the session has started (or as a parameter at the
startup or in AUTOEXEC.BAT) you are supposed to start my
patched MSCDEX2.EXE.
There are only two parameters that you are supposed to
specify - first is /D:MSCD001 or something similar, which
represents the name by which MSCDEX2.EXE will recognize
your hardware device drivers. It is almost always set up
during setting things up under native DOS by installation
program. I sugest that you use the same name as whas used
under native DOS (to avoid confusion). The second parameter
that you MUST provide is /L:H where H is drive letter
that is not currently used in your system. This parameter
has in this case a very simple function - it will enable
MSCDEX2.EXE to start successfully. In case you don't provide
this parameter poor MSCDEX2.EXE goes to investigate the tables
of currently used drive letters, gets completely confused and
usually whole session is hung (rember gentle warning from
Correl SCSI software about invalid DOS pointers ?).
So you start like this
mscdex2.exe /D:MSCD001 /L:H
Don't panic when after this you will not see drive H, because
you will not. It really just helps poor guy to start - that's
it. It also means that you cannot access your CD with commands
like dir or copy, because drive letter for it simply doesn't
exist. But now you can start at least your audio CD program and
enjoy hi quality sound from your CD-ROM.
6) Does that mean that there is no way you guys without native OS2
CD-ROM support can see files on your CD-ROM ? No, it just requires
you to go through the pain of creating "DOS from A:" session. There
you will be able to copy files from your CD-ROM to hard drive
without limits. How are you supposed to achieve that ? I have
included at the end of this file fairly good description of the
whole procedure by the guy that has successfully done it some
time ago.
Sorry guys for the bad news, I really tried to help you. I am
happily using my setup (Trantor T13B with IBM CD_ROM I) with native
OS2 support, but I know fairly well how you feel.
If you need additional help feel free to contact me via Email.
Jan Ftacnik
ftacnikj@fnal05.fnal.gov
Message from the original hacker follows:
From bnlux1.bnl.gov!psinntp!psinntp!uunet!uunet.ca!geac!zooid!kovarski Mon Jan 18 15:46:48 1993
Article: 12049 of comp.os.os2.advocacy
Newsgroups: comp.os.os2.advocacy
Path: bnlux1.bnl.gov!psinntp!psinntp!uunet!uunet.ca!geac!zooid!kovarski
From: Mark Kovarski <kovarski@zooid.guild.org>
Subject: Problems with MSCDEX and OS/2 - Solution Found.
Organization: The Zoo of Ids
Date: Sat, 16 Jan 1993 04:29:51 GMT
Message-ID: <1993Jan16.042951.12155@zooid.guild.org>
Lines: 91
Thanks go to Gary for hacking the thing and letting everybody know.
Also many thanks to George for posting it onto the network. Since
many of you might be interested, here it is.
Mark K.
============================= Cut Here =================================
Date: 01-12-93 (11:10) Number: 17692 of 17697 (Echo)
To: DENNIS POWELL Refer#: NONE
From: GEORGE MARENGO Read: NO
Subj: MITSUMI CD ROM & OS/2 Status: PUBLIC MESSAGE
Conf: OS2 (75) Read Type: GENERAL (-)
DP>anyway, anybody got the thing to run in other than native dos?
Does it use MSCDEX? If so I found a message that may be of interest,
and possibly even help<g>. I know nothing of the following first hand,
so treat it accordingly.
========================================================================
Since Setver uses *documented* dos calls and MSCDEX uses *undocumented*
dos calls, MSCDEX won't work with OS/2 except in a VDM. Or will it?
What follows is part of a post I found most interesting:
<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-------CUT-------CUT-------CUT-------CUT-------CUT-------CUT------------
Ok, what did I do to make it work under OS/2 2.0? Simple, I went
looking for the release level check (INT 21 Code 30) and found the
following code:
MOV AH,30
INT 21
XCHG AL,AH
CMP AX,030A ; Check for DOS Version 3.1
JB 3C19 ; Less < 3.1 - Fail
CMP AX,0600 ; Check if >= Dos 6.0
JGE 3C19 ; >= 6 so fail
CMP WORD PTR [0600],+01 ; look for list of lists
JA 3C19 ; not found, fail
JZ 3C1F ; ???
JMP 3C97 ; OK - Do the right stuff
So, I just zapped out everything from the MOV AH,30 through the JZ 3C1F
with no-ops (90). Thus bypassing the version check. I didn't spend the
time looking for the segment of code that called this routine, so an
easier zap is possible.
I've tested this with two musical CD's, using the Music Box program
and did a full functional test (ff, rev, eject, play, random, etc.)
Also did it with an info CD (a large shareware disk) and it worked
fine. I don't have MAMMALS with does use a mono output mode with
one track to the left channel and one to the right.
--------------
To run under OS/2.
Change the settings on the full screen windows icon, and under devices
put in the dos device driver (mine is D:\DOSTOOLS\PCD650S.SYS /M:H).
Save this and close.
Now edit AUTOEXEC.BAT, and add a line for MSCDEX2, ie:
MSCDEX2 /E /V /D:MSCD001 /L:F
Now when you start Windows, the device driver will be loaded, and the
MSCDEX interface. (BTW if you start a regular dos session, MSCDEX
will complain about not finding a CD-ROM driver, so you may want
to re-direct the output to NUL).
I don't run seamless windows, but I'd expect you could get it
to run by creating a program template for PROGMAN.EXE and changing
the DEVICE entry as above. From PROGMAN you could the open and
start the MM support you wanted.
So far it works with musical CDs and CDs that don't require a
formal disk drive structure in place. I haven't gotten it to
work reliably with one of my share-ware cd-roms.
I'm going to dig further into the structure this weekend and see
if it really can be fixed.
Good Luck
Gary
====================================================================
Now message about installing CD-ROM support under specific DOS
session:
From bnlux1.bnl.gov!psinntp!psinntp!rpi!usc!sdd.hp.com!elroy.jpl.nasa.gov!swrinde!cs.utexas.edu!bcm!lib!oac.hsc.uth.tmc.edu!jmaynard Sat Nov 14 23:45:34 EST 1992
Article: 38605 of comp.os.os2.misc
Path: bnlux1.bnl.gov!psinntp!psinntp!rpi!usc!sdd.hp.com!elroy.jpl.nasa.gov!swrinde!cs.utexas.edu!bcm!lib!oac.hsc.uth.tmc.edu!jmaynard
From: jmaynard@oac.hsc.uth.tmc.edu (Jay Maynard)
Newsgroups: comp.os.os2.misc
Subject: Getting the DAK $199 CDROM working with OS/2
Message-ID: <7844@lib.tmc.edu>
Date: 12 Nov 1992 19:28:44 GMT
Sender: usenet@lib.tmc.edu
Organization: UT Health Science Center Houston
Lines: 72
Nntp-Posting-Host: oac.hsc.uth.tmc.edu
After a bit of hacking, I have gotten my DAK CDROM to run with OS/2 2.0. As
Tim Sipples has said, it will only work in a specific DOS session, set up
properly. Here's how I went about it:
1) I built a bootable DOS floppy by running FORMAT /S on a machine running DOS
5.0. I also copied DOSKEY.EXE, SETVER.EXE and APPEND.EXE from the DOS
directory on that machine to the disk, and then copied
C:\OS2\MDOS\FSFILTER.SYS to it.
I created a CONFIG.SYS by hand on the floppy, as follows:
DEVICE=FSFILTER.SYS
FILES=50
BUFFERS=4
LASTDRIVE=Z
2) I booted that floppy on the OS/2 system by double-clicking the DOS from
Drive A icon, and was presented with a DOS prompt.
3) I ran the DAK INSTALL program on the CD Launcher customization disk. This
stuck a bunch of files in C:\, and modified C:\CONFIG.SYS and C:\AUTOEXEC.BAT.
(There's no way to tell the program to put the files elsewhere.) I then moved
all the files it added to D:\CDROM (a directory name I fished out of thin
air), moved the modified AUTOEXEC.BAT and CONFIG.SYS there, and renamed the
previous files, saved as AUTOEXEC.OLD and CONFIG.OLD, back to the right names.
The install program checks ports 300H, 310H, 320H, 340H, and 380H to see if
there's hardware there before recommending which port address to use; mine
locked up on me until I removed the NE2000 card that was set for port 300H
from the system. Note also that the only possibilitied for the card's
interrupt vector are 2, 3, and 5.
4) I copied all of the DAK-installed files to the floppy. I then used the new
AUTOEXEC.BAT and CONFIG.SYS files, as modified by DAK, to build the following
files:
CONFIG.SYS:
DEVICE=FSFILTER.SYS
DEVICE=C:\OS2\MDOS\HIMEM.SYS
DOS=HIGH,UMB
DEVICEHIGH=SETVER.EXE
DEVICEHIGH=MTMCDSA.SYS (parameters as supplied by the INSTALL program)
FILES=50
BUFFERS=4
LASTDRIVE=Z
AUTOEXEC.BAT:
@ECHO OFF
MSCDEX (parameters as supplied by INSTALL)
PATH A:\;(rest of path as supplied by OS/2)
PROMPT (as supplied by OS/2)
LOADHIGH DOSKEY (parameters)
LOADHIGH C:\OS2\MDOS\MOUSE
While arriving at this configuration, I ran into various problems with illegal
instruction traps, bad or missing drivers, MSCDEX complaining about bad DOS
versions, and so on; all of those went away when I used VMDISK to build a
bootable image in D:\CDROM and booted from that. I have not tried turning
HW_ROM_TO_RAM on for the DOS from Drive A: object, but I plan to try that when
I get home.
At this point, I had a running DOS 5.0 session that I could use to run CD
software and so forth. The CDROM is accessible as drive S: in that session.
The DiscPassage search software that came with The Family Doctor CDROM works
just fine. Unfortunately, the same cannot be said for the Microsoft Bookshelf:
the MSL program used to access the library blows up every time, with an
illegal instruction trap.
Hopefully, this will get others pointed down the right track towards getting
their DAK $199 CDROM packages going. Good luck!
--
Jay Maynard, EMT-P, K5ZC, PP-ASEL | Never ascribe to malice that which can
jmaynard@oac.hsc.uth.tmc.edu | adequately be explained by stupidity.
We survived Jimmy Carter; we'll (probably) survive Bill Clinton.