drdos + qemm = problems

41 views
Skip to first unread message

Thomas L. Christensen

unread,
Jan 4, 2003, 12:57:52 PM1/4/03
to
Hi all

Somebody here know a little about DRDOS 7.03 and QEMM?
Let me know if this isn't the place to ask this question.

I have a IBM Thinkpad 360C, and when running MS-DOS 6.22 I can use QEMM
just fine. But not if I run DR-DOS. I get an error when trying to setup QEMM.
When I run Optimize and the computer boot, it stop with this message:

DOS-UP.EXE : Version 2.04, Copyright ... Blah blah
WARNING : Dos Sub-Segment unmoveable
: Dos Sub-Segment skipped
: Freed EMS handle 1
PAUSE : Pres a key to continue...

Is there something I can do to get QEMM to accept DRDOS?

Thanks in advance..

--
Thomas L. Christensen - Svendborg, Denmark

ma...@frog-net.com

unread,
Jan 4, 2003, 3:18:37 PM1/4/03
to

I have found that emm386 that comes with dr dos equals the ability of qemm
in the memory department. It is superior to the same emm of the same name
from ms/ibm. If you try it out, himem.sys is not needed and the memmax
application controls memory from the command line. The "i=" switch of
emm386 doesn't need specific memory addresses but will noetheless find all
available memory, ie. i=c000-ffff does the trick. Many other tweeks help.
The most important thing is to always have a boot floppy at hand when
trying memory options.

Thomas L. Christensen

unread,
Jan 5, 2003, 5:32:41 AM1/5/03
to
markd wrote:

> The "i=" switch of
> emm386 doesn't need specific memory addresses but will noetheless find all
> available memory, ie. i=c000-ffff does the trick.

Sorry, I don't understand this. I tried to change I=B000-B7FF to
I=C000-FFF, but it gave me 30 KB less conventional memory...

My current EMM386 line says:

DPMI=OFF FRAME=AUTO E=C000-C3FF I=B000-B7FF

(I need to exclude C000-C3FF because of my NIC driver
(3c589.com). The entire config.sys is included at the end of this
message)

But well, as you propably has guessed, I don't know much about
managing memory in DRDOS. I don't know much about it at all, but
specially under DRDOS. Maybe you - or others - know a good
beginners tutorial about managing memory with under DRDOS?

Maybe you also know where I can find an updated list of commands
and parameters. I have a rather outdated manual form Caldera's
site long ago, but it lacks a lot of stuff. For example, it
doesn't mention hibuffers and fileshigh - I only learned about
them by coincidence. I would love to have a more
updated/comprehensive list of commands and parameters...

But still, if I could get QEMM to work with DRDOS I would much
prefere that. Heck, with MSDOS I just run optimize and after 30
seconds I have more memory than I could ever dream of... Well,...

=======================
Config.sys:

DEVICE=C:\DRDOS\EMM386.EXE DPMI=OFF FRAME=AUTO E=C000-C3FF
DEVICE=C:\DRDOS\DPMS.EXE
rem DEVICE=C:\DRDOS\SETVER.EXE
SHELL=C:\COMMAND.COM C:\ /E:512 /P /MH
BREAK=OFF
HIBUFFERS=2
FILESHIGH=120
FCBS=0,0
LASTDRIVE=M
HISTORY=ON,512,ON
COUNTRY=45,865,C:\DRDOS\COUNTRY.SYS
DOS=HIGH,UMB
rem DEVICEHIGH=c:\drdos\ibmidecd.sys /d:cd001
DEVICEHIGH=C:\IBMVESA\VESA.EXE
DEVICEHIGH=C:\THINKPAD\IBMDSS01.SYS
DEVICEHIGH=C:\THINKPAD\IBMDOSCS.SYS
=======================================

This config give me
. Memory Type .........Available For Programs ..
. . .
. Conventional . 618.576 ( 604K ) .
. Upper . 2.576 ( 3K ) .
. High . 36.681 ( 36K ) .
. Extended . 0 ( 0K ) .
. Extended via XMS . 28.379.136 ( 27.714K ) .
. EMS . 28.360.704 ( 27.696K ) .
................................................

With MS-DOS and QEMM I have 634 KB conventional, ~80 KB upper and
can't remember how much high memory...

Well, any sugestions is apreciated. Thanks in advance.

--
Med venlig hilsen
Thomas L. Christensen, Svendborg

Matthias Paul

unread,
Jan 6, 2003, 12:39:01 AM1/6/03
to
On 2003-01-04, Thomas L. Christensen wrote:

> I get an error when trying to setup QEMM. When I run Optimize
> and the computer boot, it stop with this message:
>
> DOS-UP.EXE : Version 2.04, Copyright ... Blah blah
> WARNING : Dos Sub-Segment unmoveable
> : Dos Sub-Segment skipped
> : Freed EMS handle 1
> PAUSE : Pres a key to continue...
>
> Is there something I can do to get QEMM to accept DRDOS?

While it is fine to discuss DR-DOS specific topics inhere,
I invite you to join the independent DR-DOS mailing list
<ope...@delorie.com> (subscription at http://www.delorie.com,
search for "OpenDOS mailing list").
This list is up for more than six years now and virtually any
Novell DOS, OpenDOS, or DR-DOS related topic has been already
discussed there in the past at great lengths. In there I
have also explained all those new configuration directives,
so please search the back-logs for older articles.

Compared to Novell DOS 7 and Caldera OpenDOS 7.01 (which
are still fully supported by QEMM), Caldera DR-DOS 7.02
was further optimized for size and speed. Besides hundreds
of other changes and usability enhancements, this included
the introduction of the new FILESHIGH= (or HIFILES=) and
FCBSHIGH= (or HIFCBS=) [D]CONFIG.SYS directives to load
the file handles structures into UMBs. For getting this to
work without much bloating of the kernel and still keep it
compatible with earlier issues of Windows 3.xx, I had to
slightly change the chunking of handles during the early boot
phase of the system, with the mere side effect that handles
are now grouped in three chunks rather than two after the
boot. This is completely valid in terms of DOS standards,
and somewhat ironically Quarterdeck even used a similar method
to dynamically extend the list of handle tables in their
FILES.COM/FCBS.COM utilities (the difference is that this
happens later on).

Anyway, DR-DOS' own memory manager, in particular EMM386.EXE
is very advanced compared to the default memory managers,
most people know from MS-DOS. So, in most cases, you can get
as much free memory using DR-DOS EMM386.EXE as you can get
with QEMM, making QEMM virtually obsolete in most cases.
However, some may find DR-DOS EMM386.EXE to be more difficult
to set up, or may need to install QEMM because they run
Quarterdeck's DESQview. And some applications also have problems
with the VCPI and DPMI implementation in DR-DOS EMM386,
at least when the multitasking is enabled.

So, for those, who still want to use QEMM under DR-DOS 7.02+,
I have developed a little patch to apply to the DR-DOS IBMBIO.COM
file, which will allow you to use QEMM without any problems
afterwards. Please decide for yourself, if you want to apply
this patch, but don't blame DR-DOS when your particular issue
of Windows suddenly no longer works.

For your convenience, here's an older support article of mine:

There are two known issues with QEMM:

- QEMM's Stealth feature may conflict with the new DR-DOS 7.02+
YEAR2000=ON [D]CONFIG.SYS directive and its Y2K-correcting
code. Either use YEAR2000=OFF before you load QEMM (requires
a ROM-BIOS which does not have Y2K bugs, or a 3rd party Y2K-
fixing TSR instead of DR-DOS' built-in fix), or use QEMM's
EXCLUDESTEALTHINT=1A or XSTI=1A option.

- The memory arrangement of the handle structures (MEM /A HANDLES=)
changed with the introduction of the FILESHIGH= and FCBSHIGH=
[D]CONFIG.SYS directives in order to free up to several more Kb
of conventional memory under DR-DOS (depends on the count of
handles (FILES+FCBS) on your system). They are now grouped in
3 chunks while they were arranged in 2 chunks previously.

The change should not have caused problems for QEMM because this
is completely valid in terms of DOS standards, however, QEMM's
DOS-UP feature does not expect this, and its sanity checks keep
it from loading the DOS structures high. This results in ca. 1 Kb
less conventional memory than the theoretical possible maximum
under QEMM. Unfortunately, Quarterdeck stopped working on QEMM
before they could incorporate this really minor correction on
their party, so you will have to live with it.

However, here's a DEBUG script named IBMBIO85.SCR which will
reenable the old handle memory layout when applied to the
DR-DOS IBMBIO.COM system file.
This will free even more conventional memory under DR-DOS,
but may cause serious compatibility problems with some issues
of Windows 3.xx and Windows for Workgroups 3.xx when the FILESHIGH=,
FCBSHIGH=, or DOS=AUTO directives are used at the same time,
because it will leave only 5 handles in low memory in contrast
to the 8 handles which are required for Windows to work properly.
This is due to an extremely dangerous hack on Microsoft's side to
determine the size of the DOS internal SFT structures (known as
"CON CON CON CON CON" hack, because Windows opens CON five times
and then simply scans the first 512 Kb of memory for the "CON"
string to measure the displacement between these strings, something
that could be easily fooled by just placing some "CON" strings
in the DOS memory image with incorrect offsets from each other -
with fatal consequences for the running system).

Here it comes:

--- snip here ---

; -------------------------------------------------------------------
; Copyright (C) 1997,2003 Matthias Paul. All rights reserved.
;
; This is provided "AS IS" without warranties or support of any kind!
; Use at your own risk! Improper use may cause serious loss of data!
;
; -------------------------------------------------------------------
;
; Description:
;
; Caldera DR-OpenDOS 7.02+ DEBUG R1.50+ script to patch the
; DR-OpenDOS 7.02+ IBMBIO.COM (since 1997-12) file to allocate
; only five instead of eight file handles during [D]CONFIG.SYS.
;
; Sympthom:
;
; Quarterdeck's QEMM 8 DOS-UP refuses to relocate DOS sub-
; structures on DR-OpenDOS 7.02+ and later, resulting in
; about 1 Kb less free total conventional memory.
;
; Synopsis:
;
; Due to the introduction of new FILESHIGH=/HIFILES= and
; FCBSHIGH=/HIFCBS= [D]CONFIG.SYS directives, the chunking
; of handles has slightly changed with DR-OpenDOS 7.02+.
; For unknown reasons, DOS-UP refuses to work with this
; changed layout.
;
; Solution:
;
; A patch should be made available by Quarterdeck for QEMM,
; but none seems to be available so far. Please keep asking
; them for a solution to this problem, as a fix is a simple
; two-liner for them and besides would also improve general
; DOS compatibility in their product.
;
; Workaround:
;
; A temporary solution is to apply this patch (IBMBIO85.SCR)
; to the IBMBIO.COM file. As a nice sideeffect the patch gives
; about 150 bytes more conventional memory on systems, where
; handles are loaded into UMBs using the new FILESHIGH=/HIFILES=
; or FCBSHIGH=/HIFCBS= directives.
;
; Requirements:
;
; - DEBUG R1.50+ (since DR-OpenDOS 7.02 and DR-DOS 7.02+).
;
; - IBMBIO.COM as of Caldera DR-OpenDOS 7.02, DR-DOS 7.02, 7.03,
; and OEM DR-DOS 7.04, 7.05, 7.06. Tested with DR-DOS 7.06
; up to 1999-12-14.
;
; Hints:
;
; - Never try to execute this patch with other issues of DEBUG or
; to apply it to other IBMBIO.COM files than those listed above.
;
; - It is not garanteed that this patch will continue to work
; with future issues of DR-DOS, although it will hardly ever
; become broken, as the script will attempt to synchronize
; with new issues automatically.
;
; - You can query the file version number by toggling Scrollock
; on when the "Starting Caldera DR-DOS..." message is shown at
; startup, or by issueing "VERSION IBMBIO.COM" at the C:\ prompt.
;
; Restrictions:
;
; Microsoft Windows 3.xx will probably stop running after applying
; this patch to IBMBIO.COM. Instead, it will display: "Unsupported
; version of MS-DOS" on startup, in particular with the handles
; loaded into UMBs.
; At least Microsoft Windows for Workgroups 3.11 still runs fine.
; If you have success running another issue of MS Windows after
; applying this patch, I would appreciate your feedback -- just
; for my records.
;
; How To:
;
; C:
; SYS A: Make a backup boot floppy
; ATTRIB -R -H -S C:\IBMBIO.COM Strip off attributes
; COPY C:\IBMBIO.COM C:\TEMP\IBMBIO.COM Backup the BIOS file
; CD C:\TEMP
; DEBUG < IBMBIO85.SCR Apply the patch
; COPY C:\TEMP\IBMBIO.COM C:\IBMBIO.COM Update system if OK
; ATTRIB +R +H +S C:\IBMBIO.COM Restore attributes
;
; Version: 1.08
; Last edit: 2003-01-04 MPAUL
;
/X ; Enter extended DEBUG mode
Nibmbio.com ; Name & load the BIOS from disk
; (+100h)
L
R ax=cx ; Save file length
R cx=0 ; Search for 1st match and store
; location in CX
-S cs:100 L ax+100 "IBMDOS",20,20
R dx=cx ; Store location in DX (0 if not
; found)
R cx=0 ; Search for 1st match and store
; location in CX
-S cs:dx-A L 1 4
;-S cs:dx-A L 1 1 ; [To revert the patch modify above
; line!]
; If CX is zero, the correct
; DEF_NUM_FILES value (4) was not
; found, hence the patch does not
; alter the file (it's directed
; into a dummy PSP at offset +0h).
; Otherwise DEF_NUM_FILES is
; altered from 4 to 1.
E cs:cx 1
;E cs:cx 4 ; [To revert the patch modify above
; line!]
R cx=ax ; Restore file length
; Write the BIOS back to disk
W
Q ; Quit DEBUG
Q ;

--- snip here ---

Hope it helps, please let us know... ;-)

Matthias

--
<mailto:Matthi...@post.rwth-aachen.de>; <mailto:mp...@drdos.org>
http://www.uni-bonn.de/~uzs180/mpdokeng.html; http://mpaul.drdos.org

"Programs are poems for computers."

Thomas L. Christensen

unread,
Jan 6, 2003, 3:34:31 PM1/6/03
to
"Matthias Paul" <Matthi...@post.rwth-aachen.de> wrote:
>On 2003-01-04, Thomas L. Christensen wrote:
>

>While it is fine to discuss DR-DOS specific topics inhere,
>I invite you to join the independent DR-DOS mailing list
><ope...@delorie.com> (subscription at http://www.delorie.com,
>search for "OpenDOS mailing list").

Thanks, I'll do that.

[...]


>Anyway, DR-DOS' own memory manager, in particular EMM386.EXE
>is very advanced compared to the default memory managers,

Yes, everybody says so.

I have added the patch to IBMBIO.COM and now QEMM runs fine (and
I just run GEOS, not windows, so I found no compatibility
problems). I ran optimizer, but the result was terrible. I could
do it better without QEMM, so I need to have a closer look at it
to see what's wrong.

But I am also curious about how much I can get out of DR-DOS
(EMM386.EXE), so I will definitely check out the mailing list you
talk about. I need to know more tips and tricks to get more out
of DR-DOS, but if I can get near the result I get with MS-DOS +
QEMM, then I'll prefer DR-DOS. Basically because of taskmgr -
GEOS support taskmgr, and it is just so cool to swap out to dos
and back in split-seconds... :-)

Thank you for a very interesting and useful answer.

Reply all
Reply to author
Forward
0 new messages