Документ взят из кэша поисковой машины. Адрес оригинального документа : http://crydee.sai.msu.ru/ftproot/pub/comp/os/os2/sai/merlin/Trapdoor
Дата изменения: Mon Jun 24 09:54:50 1996
Дата индексирования: Tue Apr 12 21:11:44 2016
Кодировка:
From ns.itep.ru!CERN.ch!EU.net!howland.reston.ans.net!gatech!newsfeed.internetmci.com!in1.uu.net!news-m01.ny.us.ibm.net!news-s01.ny.us.ibm.net!usenet Mon Jun 24 09:54:51 1996
Path: ns.itep.ru!CERN.ch!EU.net!howland.reston.ans.net!gatech!newsfeed.internetmci.com!in1.uu.net!news-m01.ny.us.ibm.net!news-s01.ny.us.ibm.net!usenet
From: rrs0059@ibm.net
Newsgroups: comp.os.os2.beta
Subject: [Merlin] Merlin's TrapDoor DOS Feature
Date: 23 Jun 1996 23:59:52 GMT
Lines: 204
Message-ID: <4qklpo$1q4o@news-s01.ny.us.ibm.net>
Reply-To: rrs0059@ibm.net
X-Newsreader: IBM NewsReader/2 2.0


Merlin's TrapDoor DOS Feature
-----------------------------

Release 0.2b
June 23, 1996

Copyright (c) 1996 by Frank McKenney
All rights reserved.

This document may be freely re-distributed for non-commercial purposes.

Warning
-------

The following is based on the TrapDoor DOS feature as shipped with the
OS/2 "Merlin" Beta #1 version. Like all features of Beta software, it
is subject to revision or replacement before the final (GA) version of
the product is released.

Translation: don't necessarily assume that the final implementation of
the TrapDoor DOS feature will work the same way as I have described it.

Also, keep in mind that my comments are based on one days' testing of in
an environment (SCSI) which is listed as "supported" for this
feature.

However, along the way I did learn a little more about the TrapDoor DOS
feature and its limitations than the Merlin README file provides. I'm
posting it in the hopes that it will save others some time... which
they can then devote to testing other parts of Merlin. (;-)

TrapDoor DOS
------------

One of the new features provided in the Merlin Beta1 release is easy
access to a dedicated "real" DOS environment. This feature, called
"TrapDoor DOS", is intended for those few cranky applications that are
unable to run under OS/2's DOS emulation. Origin's "Ultima" series of
games comes to mind, or any of several MSWin31 apps that require "true"
386 enhanced mode.

This feature appers to be an outgrowth of the existing OS/2 feature
reportedly available on some Aptiva preloaded OS/2 systems.

TrapDoor DOS and the WPS
------------------------

With TrapDoor DOS support installed, your Program Reference objects will
be able to make use of two new options on the Session page of their
Properties notebook:

Warning message: If checked, each time you double-click on
the icon you'll see a warning dialog about
possible loss of communications or network
links if you choose to proceed.

Dedicated DOS/Windows: If selected, the TrapDoor feature will be
used to start the program in an OS/2-free
environment.

Requirements
------------

In order to have Merlin's TrapDoor DOS support installed, you need the
ollowing setup:

a) You must install OS/2 into your C: partition.
b) C: must be a FAT partition.
c) A version of DOS must be installed on C:
d) Dual Boot support must be installed (should be automatic from (c))

The requirements for actually making of the TrapDoor feature after
it is installed are a bit more stringent, however:

d) Your C: partition drive must be on an IDE drive. There are also
indications that the partition must be accessed using the
IBM1S506.ADD driver.

e) Your swap file must be in a FAT partition. If not, you'll get the
message:

HIB0110: Error: The system swap file is in a HPFS partition.

and be returned to OS/2.

f) You must have sufficient free space in your swap partition. If not,
you'll get the message:

HIB0108: Error: Not enough space to hibernate.

and be returned to OS/2. Based on very limited information I'll
recommend that you have, at a minimum, free space equal to your
system RAM plus a few megabytes.

When invoked, the TrapDoor feature does (at least) the following:

1) Writes a modified copy of the original DOS CONFIG.SYS out as
C:\DOS.CFG.
2) Writes a modified copy of the original DOS AUTOEXEC.BAT out as
C:\HIBER.BAT.
3) C:\WINDOWS\SYSTEM.INI may be updated as well, but this is unclear.
4) Displays the message "The system is loading TrapDoor DOS".
5) Saves the current OS/2 context. Part of this (perhaps all) goes to
the current OS/2 swap file. This takes about 30 sconds on my
system. Note that if the swap file were not on a FAT partition it
would be difficult to use this data to restore OS/2 (;-).
6) invokes PC-DOS v7.00 from C:\OS2\SYSTEM

When your application completes, or on typing EXIT, the PC-DOS
COMMAND.COM exits, the message "Restoring OS/2..." is displayed, the
OS/2 context is presumably restored, and OS/2 continues. If I'm a bit
vague about this portion, well, I haven't been able to successfully
recover back to OS/2. I'm not claiming this as a 'bug', however; I've
been cheating, since I don't meet requirement (d) - my C:, though FAT,
is on a SCSI drive. a TrapDoor session is relatively easy;
getting home to OS/2 cleanly is another matter (;-).

Observations
------------

- Since the TrapDoor feature loads PC-DOS v7.00, your MS-DOS 6.x (or
whatever) utilities such as DOSKEY are likely to report "Incorrect
DOS version".

- All those useful DOS programs and utilities already installed on
HPFS partitions (because they run under MDOS) will be
unavailable from a TrapDoor session.

- If you haven't kept your RealDOS drivers up to date, you may have to
scramble to locate a DOS driver for your CD-ROM drive, sound
adapter, or other hardware that OS/2 was handling with no
complaints.

- When I successfully invoked a TrapDoor session, my swap file grew by
almost 17 Mb. This is enough to hold the contents of my 16 Mb of
RAM plus a copy of my WPS desktop (1024x768x256 = 0.75 Mb).

I only have this one system's information to go on. Still, I'd
recomend that you have at least this much swap space free when
invoking a TrapDoor session.

- There may be a way to use the TrapDoor feature to invoke other
versions of DOS, and return cleanly to OS/2, but I haven't figured
out how. The PC-DOS 7.00 files shipped with Merlin are modified,
and it's not yet clear that I've located all of the modification
points (;-).

Out of sheer perversity I replaced the IBMDOS.COM, IBMBIO.COM, and
COMMAND.COM files in C:\OS2\SYSTEM with their MS-DOS 5.0 equivalents
and patched IO.SYS to look for "\DOS.CFG" instead of "\CONFIG.SYS".
I did boot my copy of MS-DOS 5.0 successfully, and my apps seemed to
run properly, but I was unable to return to OS/2.

Unanswered questions regarding the TrapDoor feature

- Will a shrink-wrapped copy of PC-DOS v7.00 (excluding the files
mentioned above) work properly under OS/2's modified COMMAND.COM?

- Are there any DOS or MSWin31 applications which still won't run in
the TrapDoor DOS environment?

- Can MSWin95 run in the TrapDoor DOS environment?

- Can you use the TrapDoor feature if your swap file is on D:, and D:
is a FAT partition? Word of warning... if your use a swap
partition other than C: and its label is (say) E: under OS/2 but
(say) D: under "real" DOS, you can expect to see problems (;-).

TrapDoor DOS on non-IDE drives
------------------------------

From the comments in the Merlin README file, and some thought about what
must be involved in saving and restoring the complete OS/2 context, I
can see problems with extending TrapDoor DOS support to other drives.
Among the things which would need to be saved would be the hardware
states for all of the OS/2 devices, the HD adapter(s) in particular. If
additional hooks need to be added to a DASD device driver before you can
save its state, then TrapDoor DOS will be limited to those adapters
which are been updated (a.k.a. "re-written") to provide the hooks for
TrapDoor DOS.

The good news is that there are a of systems with one or two
(E)IDE drives and one (E)IDE controller which is supported by
IBM1S506.ADD.

Other restrictions may come to light over time. For example, if you
have (say) two EIDE adapters, and you use IBM1S506.ADD for the boot
drive but need XEIDEOS2.ADD (and an XEIDEDOS.SYS driver under DOS) for
the second, what happens when you access the second drive from a
TrapDoor DOS session using the XEIDEDOS.SYS driver and then return to
OS/2?

Feedback
--------

This document is far from complete. Please feel free to comment on it,
mention things I've overlooked, or point out where I'm wrr... rwrwr...
er, not completely correct (;P).

Frank McKenney, McKenney Associates / OS2BBS OS/2 Advisor
Richmond, Virginia (804) 320-4887 / Forum Manager 1.3.1, EPM 6.03
Internet: rrs0059@ibm.net / TalkLink: WZ01123