VOGONS


First post, by Zuon

User metadata
Rank Newbie
Rank
Newbie

I'm not going to specify my personal configuration, as this is more of a general question than a personal quest. But I know there are drivers out there, such as CuteMouse, that were made with the purpose of taking up minimal memory when loaded under native DOS. What are some good examples of these drivers? Anything from PCMCIA, to SCSI, to keyboard/mouse, CD-ROM, display, etc. Whatever you can think of that loading them together saves off every single kb you can, over using the more traditional Microsoft variants?

P.S. If I'm throwing around tech terms that aren't related to DOS machines, I'm just not putting much thought into my phrasing today. Apologies.

Reply 1 of 15, by Jorpho

User metadata
Rank l33t++
Rank
l33t++

The vast majority of the time, you are stuck using whatever driver is supplied by the hardware manufacturer. The only real exceptions are mice, wherein CuteMouse is an option, and CD-ROM drives, which are discussed in Which is the best and most memory efficient CD-driver? .

Reply 4 of 15, by aazard

User metadata
Rank Member
Rank
Member

Neat thread, I figured I would toss out a small list...

Short list of combined "in use" (I have not tested all, this information is stitched together from multiple sources):

- DOS:
PC-DOS 7.1 Rev 0 BLD134, is hyper RAM efficient, FAT32 & LBA aware/supporting, adding LFN support makes it "highly compatible/comparable" to MS-DOS 7.1, while still running on an 8088
*ONLY in PC-DOS 7.1, CONFIG.SYS: "DOSDATA=UMB" (load DOS system tables in upper memory) & "SHELL=C:\COMMAND.COM /E:512 /P /H" (/H loads COMMAND.COM into upper memory, saving 13K)

- GUI:
COSTA GUI v1.7.5 - Current & maintained, very efficient DOS GUI (Needs: 8088 CPU, 200kb RAM, CGA MONO, or better). Uses no ram when used as a program launcher (awesome!)

- Device:
Optical (MSCDEX.EXE) Replacement Driver: SHSUCDX.COM (or SHCDX86.COM, if CPU is 8088 to 286) - by Prof. John McCoy and Jason Hood*
Optical Device Driver: SMALLIDE.SYS (Other compatible options = CDROM.SYS, VIDE-CDD.SYS & UIDE.SYS )
Mouse: CTM21B4.EXE (Cute Mouse v2.1 beta 4)

- Memory Managers:
QRAM v1/2 (Quarterdeck) - v1= 8088/8086 cpu, v2= 286 cpu, works with LIM 4.0 EMS, shadow RAM, & VGA memory to free base 640k. Can replace Microsoft's himem.sys (better on XT/AT than HIMEM).
HIMEM.SYS - v3.95 (from Win98SE)
EMM386.EXE - v4.95 (from Win98SE) /or/ JEM386 is "the Best" EMS manager for DOS by "Japheth", http://www.japheth.de
XMGR - XMS Memory Manager (XMS3 driver)
UMBPCI is "the Best" UMB manager for DOS by Uwe Sieber, http://uwe-sieber.de

- Memory Helpers:
DOSMAX - v2.1 (ENVIMAX.COM, SHELLMAX.COM + DOSMAX.EXE) - Moves BUFFERS, FILES, FCBS, STACKS, LASTDRIVE + COMMAND.COM environment to upper memory
FIX27.COM - v1.0 (helper app) Reclaims environment memory blocks from TSRs already loaded in RAM.
MKEYBD is "the Best" DOS keybrd driver by Tom Ehlert http://drivesnapshot.de (untested, may increase ram usage, please test with/without)
CLOAKING.EXE - v? (helper app) Move mouse driver to High/Upper memory
RDISK - 2-Gigabyte "RAM Disk" Driver /or/ XMSDSK is "the Best" XMS RAM disk driver for DOS by Franck Uberto, Grenoble.
Creative Labs CTLOAD.COM v1.0 - loads CONFIG.SYS specific devices/drivers/TSRs from the DOS prompt or from AUTOEXEC.BAT without need for reboot
WRAPPER.SYS v1.0 + FIXWRAP (v1.0): loads almost ANY program/TSR as DEVICE(HIGH) from CONFIG.SYS. FIXWRAP prevents lock up your computer if using WRAPPER + Windows 95/98/ME!

- File Replacements:
ANSI.COM - v1.3 (replacement) ANSI.SYS replacement, least memory
RECALL.COM - v1.2c (replacement) "best" DOSKEY.COM replacement, least memory
MEM.EXE - v1.12 (drop in replacement) MEM.EXE replacement
MOVE.EXE - v3.3a (drop in replacement) MOVE.EXE replacement
XCOPY.EXE - v1.4a (drop in replacement) XCOPY.EXE replacement
ATTRIB.COM - v2.1 (replacement) ATTRIB.EXE replacement
FASTBF26.COM - v2.6 (replacement) MODE.COM replacement

- Extended features add-ons: ALL "should" increase ram use, not save it??
exfat5 - exFAT read/write dos driver
NTFSDOS Professional - NTFS read/write dos driver, has an ntfs chkdsk function
LFNDOS - LFN dos driver /or/ DOSLFN is "the Best" LFN manager for DOS by Henrik Haftmann, and Jason Hood*
USBASPI.SYS + DI1000DD.SYS - DOS USB driver /or/ USBDOS is "the Best" USB driver set | *J. Hood, http://geocities.com/jadoxa/

/////
FULL LIST
/////

Ones I use:
Optical (MSCDEX.EXE) Replacement Driver: SHSUCDX.COM (or SHCDX86.COM, if CPU is 8088 to 286) - by Prof. John McCoy and Jason Hood*
Optical Device Driver: SMALLIDE.SYS (Other compatible options = CDROM.SYS, VIDE-CDD.SYS & UIDE.SYS )
Mouse: CTM21B4.EXE (Cute Mouse v2.1 beta 4)
HIMEM.SYS - v3.95 (from Win98SE)
EMM386.EXE - v4.95 (from Win98SE)

MDGx suggestions: I HAVE tested these
ANSI.COM - v1.3 (replacement) ANSI.SYS replacement, least memory
RECALL.COM - v1.2c (replacement) "best" DOSKEY.COM replacement, least memory
DOSMAX - v2.1 (ENVIMAX.COM, SHELLMAX.COM + DOSMAX.EXE) - Moves BUFFERS, FILES, FCBS, STACKS, LASTDRIVE + COMMAND.COM environment to upper memory
MEM.EXE - v1.12 (drop in replacement) MEM.EXE replacement
MOVE.EXE - v3.3a (drop in replacement) MOVE.EXE replacement
XCOPY.EXE - v1.4a (drop in replacement) XCOPY.EXE replacement
ATTRIB.COM - v2.1 (replacement) ATTRIB.EXE replacement
FASTBF26.COM - v2.6 (replacement) MODE.COM replacement
FIX27.COM - v1.0 (helper app) Reclaims environment memory blocks from TSRs already loaded in RAM.
CLOAKING.EXE - v? (helper app) Move mouse driver to High/Upper memory
Creative Labs CTLOAD.COM v1.0 - loads CONFIG.SYS specific devices/drivers/TSRs from the DOS prompt or from AUTOEXEC.BAT without need for reboot
WRAPPER.SYS v1.0 + FIXWRAP (v1.0): loads almost ANY program/TSR as DEVICE(HIGH) from CONFIG.SYS. FIXWRAP prevents lock up your computer if using WRAPPER + Windows 95/98/ME!

80386+ CPU Needed 100%: I HAVE tested these
XMGR - XMS Memory Manager (XMS3 driver)
XHDD - Hard Disk drive caching driver
XDVD2 - Optical drive caching driver
RDISK - 2-Gigabyte "RAM Disk" Driver
SHSUCDX.COM - MSCDEX.EXE Replacement Driver (has 8088 to 80286 version SHCDX86.COM)

Old (2006'ish) "DOS RULEZ" txt doc claims (amongst others): I have NOT tested all of these
FORDOS is "the Best" COMMAND.COM for DOS by JP Software - http://4dos.hit.bg
AEFDSK is "the Best" FDSK+FORMAT for DOS by Daniel Nagy, http://aefdisk.com/
UMBPCI is "the Best" UMB manager for DOS by Uwe Sieber, http://uwe-sieber.de
JEM386 is "the Best" EMS manager for DOS by "Japheth", http://www.japheth.de
DOSLFN is "the Best" LFN manager for DOS by Henrik Haftmann, and Jason Hood*
XMSDSK is "the Best" XMS RAM disk driver for DOS by Franck Uberto, Grenoble.
*UIDE* is "the Best" UDMA HDD+DVD driver by J.Ellis, http://mdgx.com/drv.htm
MKEYBD is "the Best" DOS keybrd driver by Tom Ehlert http://drivesnapshot.de
USBDOS is "the Best" USB driver set | *J. Hood, http://geocities.com/jadoxa/
DOSFNT is "the Best" DOS loader of VGA font files by T. Blader in Wisconsin.

Extended features add-ons:
exfat5 - exFAT read/write dos driver
NTFS4DOS - NTFS read dos driver
NTFSDOS Professional - NTFS read/write dos driver, has an ntfs chkdsk function
LFNDOS - LFN dos driver (alternative to DOSLFN)
USBASPI.SYS - DOS USB driver
DI1000DD.SYS - DOS USB driver

"Best" DOS on memory: IMHO
PC-DOS 7.1 (7.1, not 7.0/2000) is hyper RAM efficient, FAT32 & LBA aware/supporting, adding LFN support makes it "highly compatible/comparable" to MS-DOS 7.1, while still running on an 8088

"Best" GUI's on memory:
COSTA GUI v1.7.5 - Current & maintained, very efficient DOS GUI (Needs: 8088 CPU, 200kb RAM, CGA MONO, or better)
New Deal Office 2000 - Still runs on an 8088 CPU (and has a "modern" kernel update from late 2023)

Last edited by aazard on 2024-09-12, 04:41. Edited 10 times in total.

Aazard -
Mono Planar Mortal & Unascended Master
Retro Enthusiast & L3 Trouble Shooter
.... Getting old

Reply 5 of 15, by wbahnassi

User metadata
Rank Oldbie
Rank
Oldbie

I prefer to be more practical about this. The goal would be to free the amount of conventional memory I'd ever need. I guess this is around 615KB or so.. That leaves all high memory and some conventional memory available for drivers. I think compatibility is not to be underestimated. After all, what good is 632KB conventional memory if the game hangs?
So I prefer to stick to the battle-proven drivers of the time over new ones, and usually MemMaker is enough to give me 613KB with all the drivers I need loaded. Beyond that, it's not like having more conventional memory or free high memory would result in better perf. It's basically unused resources.. so might as well use it and maximize compatibility.

My 2 cents...

Turbo XT 12MHz, 8-bit VGA, Dual 360K drives
Intel 386 DX-33, TSeng ET3000, SB 2.0, 1x CD
Intel 486 DX2-66, CL5428 VLB, SBPro 2, 2x CD
Intel Pentium 90, Matrox Millenium 2, SB16, 4x CD
HP Z400, Xeon 3.46GHz, YMF-744, Voodoo3, RTX2080Ti

Reply 7 of 15, by aazard

User metadata
Rank Member
Rank
Member
wbahnassi wrote on 2024-09-12, 00:46:

I prefer to be more practical about this. The goal would be to free the amount of conventional memory I'd ever need. I guess this is around 615KB or so.. That leaves all high memory and some conventional memory available for drivers. I think compatibility is not to be underestimated. After all, what good is 632KB conventional memory if the game hangs?
So I prefer to stick to the battle-proven drivers of the time over new ones, and usually MemMaker is enough to give me 613KB with all the drivers I need loaded. Beyond that, it's not like having more conventional memory or free high memory would result in better perf. It's basically unused resources.. so might as well use it and maximize compatibility.

My 2 cents...

This video guide seems to keep this exact issue ("to be more practical") "top of mind", highly well made video with good info too:
https://youtu.be/oD_m6q7uLu4

they managed not only 702kb... but got to 800kb (their use of some "helper" apps was new to me), I think the same person made a video about 960kb free with an 1024kb EMS card on an XT as well (emulated): https://youtu.be/Nbw5klso-VY

Memory management, on real hardware, is one of my (new) fav DOS games.... (theory crafting for a Pocket8086/Pocket386 ... that Canadian customs is like "all but" refusing to release)

Aazard -
Mono Planar Mortal & Unascended Master
Retro Enthusiast & L3 Trouble Shooter
.... Getting old

Reply 8 of 15, by LSS10999

User metadata
Rank Oldbie
Rank
Oldbie

I think one may also consider using FreeDOS' COMMAND.COM (FreeCOM). It can be used with many modern DOS kernels including MS-DOS 7.1.

The difference in memory footprint is mostly negligible to me but it has some interesting advantages:
- DOSKEY functionality is built-in so no need to load a separate DOSKEY.
- Can specify a different BAT file as AUTOEXEC with its /P argument, which can be useful if multibooting with different DOS kernels. FreeDOS itself uses FDAUTO.BAT.
- Additional features such as ALIAS.

However, I don't see any option to force FreeCOM load high similar to PC-DOS' COMMAND's /H option (thanks for the hint). I think that's because FreeDOS kernel supports SHELLHIGH for the purpose. AFAIK that directive is not supported by other DOS kernels.

Reply 9 of 15, by aazard

User metadata
Rank Member
Rank
Member
LSS10999 wrote on 2024-09-12, 06:10:
I think one may also consider using FreeDOS' COMMAND.COM (FreeCOM). It can be used with many modern DOS kernels including MS-DOS […]
Show full quote

I think one may also consider using FreeDOS' COMMAND.COM (FreeCOM). It can be used with many modern DOS kernels including MS-DOS 7.1.

The difference in memory footprint is mostly negligible to me but it has some interesting advantages:
- DOSKEY functionality is built-in so no need to load a separate DOSKEY.
- Can specify a different BAT file as AUTOEXEC with its /P argument, which can be useful if multibooting with different DOS kernels. FreeDOS itself uses FDAUTO.BAT.
- Additional features such as ALIAS.

However, I don't see any option to force FreeCOM load high similar to PC-DOS' COMMAND's /H option (thanks for the hint). I think that's because FreeDOS kernel supports SHELLHIGH for the purpose. AFAIK that directive is not supported by other DOS kernels.

Isnt PC-DOS 7.1 Rev 0 BLD134 "more" memory efficient? It has the main features of MS0DOS 7.1, except default LFN handling

Aazard -
Mono Planar Mortal & Unascended Master
Retro Enthusiast & L3 Trouble Shooter
.... Getting old

Reply 10 of 15, by aazard

User metadata
Rank Member
Rank
Member

This is info I got from CDU/CDA, circa 2006: (I have corrected typo's in spacing/numbering)

TL;DR =
QCDROM.SYS v3.7, seems "best over-all"? Binary itself is "a bit big" at 11kb (10.6kb) - MUCH better documented, users report VERY GOOD compatibility 14-Jan-07
PTSATAPI.SYS v1.4, seems "lightest over-all"? Binary itself is "tiny" at 3kb (3.1kb) - I cant find "specific/official" documentation for use of PTSATAPI.SYS, users report FAIR compatibility
both use sub-2kb (1.8kb) memory & can be loaded high

SMALLIDE.SYS appears to be in "same class" - I will need to test

.... ELTORITO.SYS is INSANLY TINY in binary size, at 2kb (1.54kb) - v1.5 (as id'ed by FreeDOS's syslinux link https://www.ibiblio.org/pub/micro/pc-stuff/fr … /boot/syslinux/) by Gary Tong and Bart Lagerweij
updated Jul 29, 2002 - (Re-)Released under the MIT license on July 25, 2009

I drop the readme's I found as well:

QCDROM.SYS: updated 14-Jan-07

QCDROM -- DOS CD and DVD Disk Driver, V4.2 ============================================== […]
Show full quote

QCDROM -- DOS CD and DVD Disk Driver, V4.2
==============================================

1. Description
-----------

QCDROM is a DOS driver for CD and DVD drives. It is for use on normal
PC system IDE channels, including 1997 or later PC mainboards that have
Intel/VIA/SiS/ALi or similar UltraDMA controller chips. QCDROM is NOT
for SCSI, Serial-ATA, or "add-on" UltraDMA cards by Promise, SiiG, etc.
QCDROM handles normal mainboard IDE channels, with or without UltraDMA,
avoiding a need for "add-on" cards!

QCDROM runs from 1 to 3 CD/DVD drives. On loading, it checks both IDE
channels, in order from primary-master to secondary-slave, and runs the
first three CD/DVD drives found. It has switch options (see below) to
specify the "driver name" and request testing of specific IDE units for
CD/DVD drives, instead of checking all units in "IDE order". Both old
"PIO mode" and new UltraDMA CD/DVD drives may be used. QCDROM handles
file-input requests issued by SHCDX33C, MSCDEX, etc. It also supports
all DOS "audio" requests and can "play back" an audio CD.

QCDROM runs only the IDE channels at their normal I-O address ranges of
01F0h-1F7h (primary) and 0170h-177h (secondary). The old "alternate"
addresses of 01E8h-1EFh (primary) and 0168h-16Fh (secondary) can be set
using its /A switch. QCDROM does not use interrupts and does standard
"PIO mode" data input when no UltraDMA controller is found. This lets
QCDROM work with older mainboards or with pre-1997 "plug-in IDE" cards.

QCDROM can set a local stack, does an 80386+ test and I-O timeout tests
and has other items to make the driver SAFE! QCDROM takes 2528 bytes
of memory with its local-stack or 2016 bytes without a stack. An XMS
buffer is recommended, to avoid "PIO mode" data input. When the QDMA
driver loads first, QCDROM can "share" QDMA's XMS buffer, or QCDROM can
set its own if 128K of XMS is free. XMS or "PIO mode" is used only as
needed -- QCDROM does UltraDMA input whenever possible, for best speed!

V4.2+ QCDROM is updated to detect the V3.8 QHIMEM driver. V4.8 QCACHE
has been similarly updated. Old versions should not be mixed with the
newer drivers.

*** NOTE ***
Due to incessant, unfavorable posts on FreeDOS forums, this driver is
PROHIBITED from use with FreeDOS and will now ABORT if loaded in that
system. Using this driver in all other DOS systems (MS-DOS, EDR-DOS
etc.) is still supported and is unaffected.

2. NO Warranty
-----------

QCDROM is offered as free software, "as is" and "use at your own risk",
and WITHOUT any warranty, not even the implied warranties of MERCHANT-
ABILITY nor of FITNESS for ANY particular purpose!

QCDROM questions may be addressed to Johnson Lam at <johnson@tmfc.net>.
The author of QCDROM in the U.S.A. will try to reply and to keep QCDROM
working O.K.

3. Revisions
---------

V4.2 14-Jan-07 QCDROM updated to work with V3.8+ QHIMEM.

V4.1 10-Jan-07 QCDROM corrected to post "no disk in drive" status.
V4.0 29-Dec-06 QCDROM works again in VMWare! Many Thanks to Erwin
Veermans for his help!
V3.9 8-Dec-06 Corrected a load-time ERROR in QCDROM.
V3.8 6-Dec-06 Using QCDROM with FreeDOS is now PROHIBITED!
V3.7 12-Nov-06 QCDROM "A20 line" handling corrected.
V3.6 9-Nov-06 QCDROM stack increased.
V3.5 2-Nov-06 QCDROM /I switch added, to avoid "odd" BIOS trouble.
V3.4 24-Oct-06 QCDROM updated for QXHIMEM. V3.3 changed DELETED!
V3.3 15-Oct-06 QCDROM no longer requires XMS memory with UMBPCI!
V3.2 11-Oct-06 QCDROM now has a /X switch and can omit its stack.
V3.1 1-Oct-06 Added QCDROM /A switch for alternate EIDE addresses.

V3.0 21-Sep-06 QCDROM now handles the Intel 82801EB chipset!
V2.9 8-Sep-06 QCDROM revised for the no-overlap V3.2+ QDMA/QDBOOT.
V2.8 15-Aug-06 QCDROM now reserves its own XMS memory, when needed.
V2.7 7-Aug-06 QCDROM updated to support V3.0 QHIMEM and QHIMEM2.
V2.6 11-Jul-06 QCDROM updated for fast V2.8+ QHIMEM XMS moves.
V2.5 8-Jul-06 QCDROM now loads in UMBPCI upper-memory and uses PIO
mode as needed, if QDMA sets only one XMS buffer.
V2.4 30-Jun-06 QCDROM now has "Int 13h" logic to locate QDMA. XMS
buffers assigned one per driver, not per channel.

[V2.2 and V2.3 were never used by QCDROM].

V2.1 23-Jun-06 QCDROM updated to work with V2.3+ QDBOOT.
V2.0 30-Apr-06 QCDROM/QDMA "linkage" revised to support EMM386.

V1.2 16-Mar-06 QCDROM loads in UMBPCI upper-memory with V1.4+ QDMA.
V1.1 8-Mar-06 QCDROM "shares" QDMA's XMS buffers and runs 3 units.
V1.0 20-Feb-06 Original release.

4. Switch Options
--------------

QCDROM switch options are as follows:

/A Requests use of the old alternate EIDE controller addresses,
01E8h-01EFh on the primary channel, and 0168h-016Fh on the
secondary channel. If /A is omitted, the driver will use
normal controller addresses of 01F0h-01F7h or 0170h-0177h.
/A is only for an "odd" SATA BIOS or other unusual cases.

/D: Specifies the desired "device name" which SHCDX33C or MSCDEX
will use during their initialization to address the CD/DVD
drives. Examples are: /D:CDROM1 /D:MYCDROM etc. The
device name must be from 1 to 8 bytes valid for use in DOS
filenames. If /D: is omitted, or the "device name" after
a /D: is missing or invalid, QCDROM1 will be the default.

/I Forces "independent" driver setup. QCDROM requests its own
XMS buffer and does NOT test if QDMA is loaded. An "odd"
BIOS may mishandle the special QCDROM call to locate QDMA!
For systems not using the QDMA driver, /I may be needed to
avoid drive-select or other "odd" BIOS errors! /I is not
needed if /UX is also given.

/L Limits DMA to memory below 640K. /L is REQUIRED for UMBPCI
or other drivers whose upper-memory cannot do DMA. When
QCDROM itself loads with /L in upper-memory, XMS memory is
required to issue DMA command-lists, or QCDROM will ABORT!
Without /L or if QCDROM is in low memory, XMS is optional.
/L makes QCDROM use its XMS buffer for input of data above
640K. "PIO mode" will handle such requests if XMS is not
available or is unwanted due to QDMA's /B switch. /L is
IGNORED, and XMS is not needed, if /UX is also given.

/PM Requests the driver to check the IDE primary-master unit for
a CD/DVD drive during driver init. If a CD/DVD drive is
NOT found as primary-master, driver loading will ABORT!

/PS Same as /PM but tests the primary-slave unit only.

/SM Same as /PM but tests the secondary-master unit only.

/SS Same as /PM but tests the secondary-slave unit only.

--- NOTE ---
For 2 or 3 drives, multiple /PM /PS /SM /SS switches are
allowed. The first-specified drive is addressed as "unit
0", the second as "unit 1", etc. If fewer switches than
drives are given, unreferenced drives will be UNUSED. If
NO drive switches are given, QCDROM will "scan" for CD/DVD
drives from primary-master to secondary-slave. The first
drive found will be "unit 0", the second "unit 1", etc.

/UF Enables "Fast DMA". I-O requests which cross UltraDMA "64K
boundaries" use two-part DMA, for data up to the boundary,
and for data beyond it. I-O which is misaligned (not at
an even 4-byte address) will go through QDMA's XMS buffers
if available or will use "PIO mode" otherwise.

--- NOTE ---
Despite UltraDMA specs, NOT ALL chipsets or mainboards run
"Fast DMA" properly! /UF must be TESTED on every system!

/UX Disables ALL UltraDMA, even for CD/DVD drives capable of it.
QCDROM then uses "PIO mode" for all commands. /UX is not
usually needed and is mainly for tests or diagnostic work.

/X Causes no local-stack to be set. This saves 512 bytes when
SHCDX33C is used, as QCDROM can run on the SHCDX33C stack.
/X must NOT be given if SHCDX33C will not be used!

For each switch, a dash may replace the slash and lower-case characters
may be used.

5. Setup and Configuration
-----------------------

QCDROM is loaded by the CONFIG.SYS file, which must have a command line
similar to:

DEVICE [HIGH] = [path] QCDROM.SYS [/D:DeviceNm] [...]

Examples: DEVICE=C:\DOS\QCDROM.SYS

DEVICEHIGH=C:\BIN\QCDROM.SYS /D:CDROM1 /UF /L /X /SM /SS

If QCDROM is to share QDMA's XMS memory, the QDMA driver must be loaded
first. When QDMA is not used, QCDROM may be loaded at any time.

6. Error Reporting
---------------

QCDROM reports an I-O error to its "CD-ROM redirector" program the same
as all other DOS CD/DVD drivers. For full details, see the Microsoft
"MS-DOS CD-ROM Extensions 2.1", which includes information about CD/DVD
device drivers for use with SHCDX33C or MSCDEX.

7. SPECIAL NOTES
-------------

Some CD/DVD drives (Sony, etc.) DO NOT follow all ATAPI "standards" and
may require DISABLING UltraDMA with the /UX switch!

Be sure to "enable" your CD/DVD drive(s) with the BIOS set-up routines!
A drive that is "disabled" may cause the BIOS to clear all its UltraDMA
flags and leave the drive in "PIO mode" zero, which is terribly SLOW!

When cabling a CD/DVD drive by itself to an IDE channel, note that both
"ends" of the cable must be used, NOT one end and the middle connector!
This prevents ERRORS, as an unused cable-end can pick up "noise" like a
RADIO antenna!

If the driver "scans" for CD/DVD drives to use, error events WILL occur
(select error, not a CD/DVD found, etc.). Such events cause that IDE
unit to be ignored. When an actual CD/DVD drive is ignored, users can
add the appropriate /PM /PS /SM /SS switch for that drive to QCDROM's
line in the CONFIG.SYS file, then re-boot. Specifying a drive-select
switch always causes errors for that drive to be displayed.

If no CD/DVD drives are found, QCDROM displays "No CD/DVD drive to use;
QCDROM not loaded!" and aborts. But note that some BIOS programs will
NOT "configure" mainboard UltraDMA chips when they find no IDE devices!
Users who get the above message must first verify that the CD/DVD drive
is "enabled" through the BIOS set-up routines. If this HAS been done,
"No CD/DVD drive to use" says the UltraDMA chip is NOT set for "legacy"
IDE addresses (1F0h/170h, 1E8h/168h) and the BIOS might need an UPDATE!
Note also that QCDROM does not support "Native PCI mode" UltraDMA chips
("servers"), only chips set to "Legacy IDE mode".

ELTORITO.SYS: updated Jul 29, 2002 - (Re-)Released under the MIT license on July 25, 2009

Change log for eltorito.asm(& eltorito.sys, combined by aazard), by Bart Lagerweij […]
Show full quote

Change log for eltorito.asm(& eltorito.sys, combined by aazard), by Bart Lagerweij

Jun 25, 2009 - License source code under the MIT license

Oct 28, 2002
I've worked together with some people at Dell to fix their BIOS problems. They say that they got their BIOSes fixed.
They gave me a very nice notebook (Latitude C400) for my efforts... I wanna thank Dell for that!

Jul 29, 2002 - v1.4
Major bugfix. There was a bug in the drive number scan routine that would start the scan from a "wild" value left in DL register (jump to wrong label). I synchronized the drive number scan with the subroutine used in ettool.com (that one worked OK, now also easier to maintain...) so it is fixed!!!
Thanks to Pete Woytovech from Dell for helping me fix this!
Jun 28, 2002 - v1.3b
Minor bugfix.
Jun 27, 2002 - v1.3
Did some more "workarounds", should work now even on Compaq and Dell PC's with the worst possible BIOSes.
Jun 6, 2002 - v1.2
Eltorito.sys does now also finds the correct driver number for the booted CD-Rom on a Dell PC with very buggy BIOS. The Dell BIOS does not clear the carry flag after a succesfull eltorito status call (int13/ax=4b01h). Eltorito.sys now ignores the carry flag, and looks at the specification packet size field. Other PC's also using Phoenix BIOS version 1.10, or alike maybe also benefit from this "workaround".
Jun 6, 2002 - v1.2
Eltorito.sys does now also finds the correct driver number for the booted CD-Rom
on a Dell PC with very buggy BIOS. It does not clear the carry flag after a
succesfull call to int13/ax=4b01h call. Other PC's also using Phoenix BIOS
version 1.10 A14, or alike maybe also benefit from this "workaround".

Mar 9, 2002
- All read requests are now retried 5 times.
- Bug fix, had...
cmp ax, 3FFFh ;Too large?
ja ReadLBad ;If yes
seperated from...
mov ax,es:[bx+18] ;Get number of sectors to read
mov word ptr [SpecPkt+2],ax
so, it was checking "wild" ax values...
- Some cleanup and small changes
- The tracers give trouble when using SHCD..
- Reverted proc ReadL back to Rev. 0.15BETA

Mar 5, 2002
- Bug fix, when changing CD media some machines would "hang" in the PriVolDesc
routine.
- Added printing of TRACER characters to trace the bug above
- Major cleanup and now using ASCIIZ strings

May 9, 2001
- Fixed a "pad devicename with spaces" bug, this only happened when a device
name was used with less than 8 characters, for example, "MSCD000" became
"MSCD000("
- Bug fix, when eltorito.sys was called with invalid command line parameters,
garbage was printed and sometimes followed by "system halted" that has been
there since the very first version of eltorito.sys. I know that because I
had the bug back then. When loading eltorito.sys using a device loader,
for example "device.com eltorito.sys /test:123" garbage was printed instead
of "No device name found." "driver not installed".
Changed the error message to include a "usage" string.

May 8, 2001
- If diskemu.bin is loaded eltorito.sys uses the drivenumber from diskemu
A call is made to "diskemu/Get status" (INT13/AX=5400) and the drivenumber is returned in CL
This should fix boot problems on Dell PCs (YES!)
When diskemu.bin is not loaded, eltorito still loops all drive numbers using eltorito calls.
- Removed "press Escape..."
- When the Alt-key is pressed (and holded) more info is printed and eltorito.sys halts

//

There are currently 4 types of optical drive programs commonly used under DOS

1. VIDE-CDD.SYS file size 11K, memory occupies 5K, and the light drive identification capability ★★★★ drives the loading speed relatively fast

2. OAKCDROM.SYS file size 41K, memory occupies 30K light-driven identification capability ★★★ drive loading speed average

3. TRICD.SYS file size 19K, memory occupies 7K light-driven identification capability ★★★★★ drive loading speed is slow (can recognize light-driven model)

4. PTSATAPI.SYS file size 4K, memory occupies 2K light-driven identification capability ★★★★★ Drive loading speed fast (can recognize the optical-driven model and IRQ) is strongly recommended for everyone to use!

The version number I extracted from PT-DOS is 1.4 (2004). Ibid.: P

&&

Originally posted by Wengier at 2006-5-11 23:53: I have recommended PTSATAPI.SYS before, and later found that there is a problem with compatibility, so I still use VIDE-CDD.SYS.
It is now recommended that QCDROM.SYS(the latest version 2.0 was only released a few days ago), which only accounts for 2KB memory, but compatibility seems to be much better than PTSATAPI.SYS, and supports UltraDMA.

Last edited by aazard on 2024-09-12, 18:09. Edited 18 times in total.

Aazard -
Mono Planar Mortal & Unascended Master
Retro Enthusiast & L3 Trouble Shooter
.... Getting old

Reply 11 of 15, by igully

User metadata
Rank Newbie
Rank
Newbie

There were many versions of QCDROM.SYS. Be sure to have the latest which was version four something.
Anyway, this one, if I am not wrong, is the one that evolved into the current XDVD2.SYS king of the hill, from Jack, and should incorporate many of those previous features.

Reply 12 of 15, by aazard

User metadata
Rank Member
Rank
Member
igully wrote on 2024-09-12, 17:14:

There were many versions of QCDROM.SYS. Be sure to have the latest which was version four something.
Anyway, this one, if I am not wrong, is the one that evolved into the current XDVD2.SYS king of the hill, from Jack, and should incorporate many of those previous features.

Edit: XDVD2.SYS, seems very nice, shame it needs a 386+, otherwise it could be a singular go to, seems to have "best of everything"

QCDROM.SYS v4.x?? ... README states "[..] does an 80386+ test [..]", looks to need 386+ cpu

The lastest I can locate is V4.2 ... I will keep digging.

I have no intend to "collect them all", only "best in class" ("best in class" of: binary size, memory use, drive compatibility, & app compatibility)

Example:
- (IBM's) eltorito.sys, v1.5, is SO TINY (1.5kb), its very useful when disk space is at a premium
- (FreeDOS's? abandoned?) qcdrom.sys, v4.2, is hyper memory efficient at approx. 1.8kb ram used
- (Acer's) vide-cdd.sys, v2.15, Is the a highly compatible low level driver for apps, specifically CD-based audio for old games (and very old systems like 8088 to 286)
- (M$'s) cdrom.sys, v2.1, Is the a highly compatible low level driver for devices, specifically for boot disks very old systems like 8088 to 286, due to its 4kb binary size & ability to function with an 8088 cpu
- (Jack R. Ellis's) xdvd2.sys, v"Last Update : 2022-06-29", is the "newest", being last updated June 29th of 2022 (but needs a 386+ cpu)
- (McCoy & Hood's) shsucdx.com & shcdx86.com = tiny, memory efficient, highly compatible with both devices and apps, can work on any system back to 8088 cpu (better replacement for: mscdex.exe)
- (PTS-DOS's) PTSATAPI.SYS v1.4 for small size, ram use & 286+ compatibility

I have not found stuff for mice better than (like none/notta/zip):
- (Eric Auer's) Cute Mouse v2.1 beta 4
- (Logitech mouseware's?) "cloaking.exe" - multimedia cloaker to move mouse driver into high/upper memory

Sound driver seems "singularly ubiquitous" with:
- (JazeFox's) unisound.com v0.81b - a Freeware DOS-only tool useful to configure and initialize ISA PnP sound cards from serveral brands and models and a few non-PnP exceptions
From README: This tool has been tested successfully on several different systems: [..]
3- Generic DTK turbo XT motherboard with 640K RAM, 6 8-bit ISA slots. CPU Siemens 8088-10. Paradise VGA 8-bit. (only some cards work in 8bit slots, read about it in section 4) [..]

Less "pure device driver" related... I have heard good use cases of these "additional helpers":
- (Creative Lab's) ctload.exe v1.0 - loads CONFIG.SYS specific devices/drivers/TSRs from the DOS prompt or from AUTOEXEC.BAT without need for reboot
- (Philip B. Gardner's) WRAPPER.SYS (/OR/ WRAPP86.SYS) v1.0 (+ FIXWRAP v1.0) - loads almost ANY program/TSR as DEVICE(HIGH) from CONFIG.SYS
- (Keith P. Graham 's) FIX27.COM v1.0 - reclaims environment memory blocks from TSRs already loaded in RAM
- (Eric Auer') DEVLOAD v3.25 - loads device drivers from command line, supports FAT16 & FAT32 block device drivers (e.g. DI1000DD.SYS), COM & EXE style DOS device drivers & a very small binary (sub 3kb)
- (Philip B. Gardner's) DOSMAX v2.1 + Enhancement Tools (ENVIMAX.COM, SHELLMAX.COM + DOSMAX.EXE) - moves BUFFERS, FILES, FCBS, STACKS, LASTDRIVE + COMMAND.COM to upper memory, freeing up to 100 KB of conventional ram

I have seen a app named "BEYOND"(German?), that seems interesting, but I can not find it or its source to remake it

MDGx also had a killer replacements doc, which appears to be eaten by demon spiders in dark corners of the interwebs (dead link):
I'll link it in this post

//

To drill down, PURE DRIVER & DRIVER LOADER "BASIC" WISE, I doubt there is "much better/lighter" than combining:
- (McCoy & Hood's) shsucdx.com /OR/ shcdx86.com
- (Jack R. Ellis's) xdvd2.sys, v"2022-06-29" (386+) /OR/ (PST-DOS's) PTSATAPI.SYS v1.4 for small size, ram use & 286+ compatibility /OR/ (Acer's) vide-cdd.sys, v2.15, for app & 8088+ compatibility
- (Eric Auer's) Cute Mouse v2.1 beta 4
- (JazeFox's) unisound.com v0.81b
- (Philip B. Gardner's) WRAPPER.SYS (/OR/ WRAPP86.SYS) v1.0 (+ FIXWRAP v1.0), for anything that cant be loaded high/upper by default
- &, optionally, (Eric Auer') DEVLOAD v3.25 for "on the fly" loading/unloading
- Hard Disk Caching (I am unsure on): smartdrv > Cache86 V3.02 [V5.03?] (8088+) > UIDE.SYS (386+) > XHDD.SYS (486+)

*this should apply to 95%+ systems IMHO
**the only "maybe" factors, in above list, looks to be the optical disc driver & hard disk caching driver.. where no single driver "offers everything under the sun, or support for an 8088"
***memory managers + "memory helper apps/tools" & their CPU, OS, APP & ETC. compatibility get...complicated IMHO

Attachments

  • Filename
    W31-11D.ZIP
    File size
    615.24 KiB
    Downloads
    22 downloads
    File comment
    "lost" MDGx DOS/Win3.x tips/tricks
    File license
    Fair use/fair dealing exception
Last edited by aazard on 2024-09-12, 21:01. Edited 6 times in total.

Aazard -
Mono Planar Mortal & Unascended Master
Retro Enthusiast & L3 Trouble Shooter
.... Getting old

Reply 13 of 15, by aazard

User metadata
Rank Member
Rank
Member

anyone know how to "look" at a binary in a hex editor and learn its minimum cpu requirement?

I want to take a peak "inside" smallide.sys and see what "it needs" to run/work

Aazard -
Mono Planar Mortal & Unascended Master
Retro Enthusiast & L3 Trouble Shooter
.... Getting old

Reply 14 of 15, by igully

User metadata
Rank Newbie
Rank
Newbie

There is no easy fool-proof method, as even if you had some strings to scan for, drivers may be compressed or even encrypted, and so the code will not be visible at plain sight. Also most of your 8088 assumptions regarding CD-ROM drivers requirements are probably wrong (example: vide-cdd.sys). As far as I know there are no known generic 8088 CD-ROM drivers, unfortunately.

I suggest you simply create a batch file DEVLOADing them on an emulator with a preconfigured cpu and take notes on which ones fail and then work your way up to complete the list. Most likely, they will all set their minimum requirements between either a 286 or 386 cpu. It will be interesting to find the notable exceptions (the ones that do work with cpus that predate the 286).

Good luck.

Reply 15 of 15, by aazard

User metadata
Rank Member
Rank
Member
igully wrote on 2024-09-12, 22:47:

There is no easy fool-proof method, as even if you had some strings to scan for, drivers may be compressed or even encrypted, and so the code will not be visible at plain sight. Also most of your 8088 assumptions regarding CD-ROM drivers requirements are probably wrong (example: vide-cdd.sys). As far as I know there are no known generic 8088 CD-ROM drivers, unfortunately.

I suggest you simply create a batch file DEVLOADing them on an emulator with a preconfigured cpu and take notes on which ones fail and then work your way up to complete the list. Most likely, they will all set their minimum requirements between either a 286 or 386 cpu. It will be interesting to find the notable exceptions (the ones that do work with cpus that predate the 286).

Good luck.

pardon, vide-cdd doent run on an 8088?

using PC-DOS 7.1 Rev0 BLD134 boot disk image below:

I just tossed a test in DOSBOX-X, emulated a generic xt (shcdx86.com) =
VIDE-CDD-SYS (crash on boot, swap to 286 = FINE)

Then tested (all same, generic XT with shcdx86.com):
Microsoft CDROM.SYS = worked without issue (this is also the one on my EXTPE project disk, in other thread/topic)
good measure 286 test = still FINE

vide-cdd.sys is v2.15 ... maybe an older one works on an 8088?

Aazard -
Mono Planar Mortal & Unascended Master
Retro Enthusiast & L3 Trouble Shooter
.... Getting old