Saturday, October 19, 2013

Windows 98 Tips #1

Accessing DOS

Microsoft Windows 95 and 98 use Real Mode DOS as a boot loader.  Windows provides all the services a well-behaved DOS program needs to function.  It also allows DOS programs to directly access hardware.  However, certain functionality found in the GUI Windows environment is lost if you must use Real Mode MS-DOS unless you know how to restore it.  For games this is chiefly mouse and CD-ROM support.  You may or may not need sound card drivers, depending on the sound card you intend to use for DOS.

Many DOS games will not play at all, or optimally, when run under any Windows 9x system.  See here for Microsoft's list : http://www.vogons.org/viewtopic.php?f=5&t=761&p=28650&hilit=Microsoft+knowledge#p28650
You will need to run them in MS-DOS Mode.  In Windows 98SE, there are four ways by which Microsoft will allow you to use the DOS command line interface.

Command Propmpt Application - This provides the DOS command line interface in a window.  It may look like DOS, especially if you set it to full screen, but it is really Windows allowing you to input commands using the DOS command line prompt.  It is useful if you are trying to run an executable with variables, but it will not otherwise make your DOS game more compatible with Windows.  It does not support Very Long Filenames (none of these methods do), and it will truncate them to the first six characters followed by a ~1, then the extension.   It can also be opened by the file DOSPRMT.PIF in the WINDOWS directory.

Restart in MS-DOS Mode - This will give you a basic, real-mode DOS environment.  By default, it acts like the only thing loaded is your CONFIG.SYS file is HIMEM.SYS and DOS=HIGH.  If you have a Sound Blaster card installed, it will set the SET BLASTER environment variable in DOS.  It is found on the start menu as a shut down option, but can also be activated with the Exit to Dos.PIF in the Windows directory.  About the only thing you may be able to load without games complaining about too little Conventional Memory is the Cutemouse driver.  However, it will allow games that refuse to run with EMM386.EXE to work.  Windows 98 does not provide a mouse driver for real-mode DOS.  

MS-DOS Mode for Games - This .PIF, found in the Windows file, will give you all the benefits of Restart in MS-DOS Mode plus it will load EMM386.EXE with the NOEMS option, giving you access to the Upper Memory Area (UMA).  The CONFIG.SYS file will load DOS=HIGH,UMB instead.  Unfortunately, unlike Restart in MS-DOS Mode, it will cause your system to reboot.  This will allow you load device drivers and TSR programs in Upper Memory to conserve precious Conventional Memory for DOS games.  XMS Memory will be available, but more games used EMS Memory.  

MS-DOS Mode for Games with XMS and EMS Support -  This .PIF, found in the Windows file, will give you all the benefits of MS-DOS Mode for Games and it will by default allow for 4MB of EMS Memory.  EMS was the most popular method to access memory above 640KB and programs used it until 32-bit DOS Extenders became popular in 1994.  Many games supporting Sound Blaster digitized sound and most CD-ROM titles from the 1991-1993 either required it or supported it.  The actual provision of EMS will require 64KB that could otherwise be used as an Upper Memory Block, and this becomes extremely important when loading the Windows 98 default MS-DOS CD-ROM driver, OAKCDROM.SYS.

You can edit Exit to DOS, MS-DOS Mode for Games and MS-DOS Mode for Games with XMS and EMS Support.  You need to right click on the icon, click on properties on the drop-down menu, click on the Program tab and click on the Advanced button.  The next Window will give you boxes to change the lines of CONFIG.SYS and AUTOEXEC.BAT.  Remove the word REM from the lines you wish and add new parameters.  Note that in Windows 98SE, the path where OAKCDROM.SYS is indicated is incorrect.  

CD-ROM and Upper Memory - If you have an IDE/ATAPI CD-ROM or DVD-ROM drive, Windows 98 has a device driver called OAKCDROM.SYS which will mount the drive as a CD-ROM drive in Real Mode DOS.  When Windows 98SE is installed, you can find the file on the startup disk or if you make a recovery disk.  It is a bloated driver and requires 35K of precious memory, so I highly advise using VIDE-CCD.SYS instead, which only requires 5K of memory.  The CD-ROM driver is loaded in CONFIG.SYS in one of the following ways :

DEVICE=C:\WINDOWS\COMMAND\EBD\OAKCDROM.SYS [VIDE-CCD.SYS] /D:MSCD001 (if no UMBs are available)
DEVICEHIGH=C:\WINDOWS\COMMAND\EBD\OAKCDROM.SYS [VIDE-CCD.SYS] /D:MSCD001 (if UMBs are available)

However, loading the device driver is not enough.  For DOS to access it as a disk drive, the MSCDEX.EXE TSR must be loaded.  It is loaded in your AUTOEXEC.BAT file like this :

C:\WINDOWS\COMMAND\MSCDEX.EXE /D:MSCD001

If you have access to UMBs, you can place LH before the path to load MSCDEX in a UMB.  

OAKCDROM.SYS (35K) and MSCDEX.EXE (27K) are by far the largest programs you will ordinarily load into the Upper Memory Area.  By default, Windows will provide approximately 96K of Upper Memory in the MS-DOS Mode for Games mode, but only 32K of Upper Memory in the MS-DOS Mode for Games with XMS and EMS Support mode.  (This is another reason for you to replace OAKCDROM.SYS.)  If you have a CD-ROM game and it needs EMS Memory, try running it in Windows first.

File Transfers using Network Neighborhood

So having Windows installed on your vintage machine, how can you transfer files from a more modern system?  There are many methods.  Some of the most basic, but most annoying are floppies and CD-RWs.  USB sticks or drives may or may not work.  It tends to depend on whether a generic mass storage driver will work with Windows 98 and the drive.  Compact Flash cards are natively supported as IDE devices, but as removable devices you may not get them to work.

The best method, in my experience, is to use network transfers.  Windows 98 has support for file and printer sharing and can talk to Windows NT Networks.  PCI Network cards are cheap and easy to find for Windows 98, and Windows 98SE may have drivers for them out of the box.  The 3Com cards are especially popular and supported out of the box (except for the Gigabit cards).

Once you have your network card's drivers installed, install file and print sharing from the network properties in the control panel.  Then right click on a folder in Windows Explorer and share it.  Make sure that the network name on your Windows 98 machine matches the network name on modern system.  The default name is usually WORKGROUP.  On your modern computer, you should now see your Windows 98 computer on the network.

If your modern PC is running Windows 2000 or XP, you can typically access it with the Windows 98 machine.  With Windows Vista or 7, you cannot access your modern machine through Windows 98 by default.  There may be a method to allow access, but it is not necessary because when you share a folder on the Windows 98 machine, any other machine can copy files to that folder if you set the folder on the Windows 98 machine to allow full access.  With Network Neighborhood, you have a convenient method to send files to your computer without needing physical media.  

1 comment:

Jim Nisbet said...

I'd like to put in my two cents. Rather than reinvent (or reprogram) the wheel, I run lots of DOS programs, templates created in them, programs written for them (Turbo Pascal) etc. One of them is the spreadsheet Quattro. Lately, in summing about 12 open "notebooks", DOSBOX choked on a loaded Macbook Air, and so did a WIN98 Dell machine running DOS (without WIN98). But running the PIF for Games with XMS and EMS support, Quattro worked like a charm. Thanks!