= AST RESEARCH, INC. TECHNICAL BULLETIN # 1256 7-19-95 = UNABLE TO LOAD GAMES IN SYSTEMS EQUIPPED WITH CD-ROM DRIVERS PROBLEM When attempting to load games on systems which are shipped with drivers such as MSCDEX.EXE, some of the following failure symptoms may occur: The system may hang. The game may not play. Memory errors may be generated by EMM386. CAUSE The systems are not failing and are operating as designed. However, the systems may be experiencing a lack of memory environment to load the games or other programs, with drivers in their current configuration. SYSTEMS AFFECTED AST PART NUMBER AND DESCRIPTION All systems equipped with CD-ROMs or other memory intensive devices. SOLUTION The memory condition can be handled in one of two methods: 1) Bypassing the startup files. 2) Using the MEMMAKER command or other third-party memory manager. If the system is experiencing problems that can be related to commands in the CONFIG.SYS or AUTOEXEC.BAT files, you may want to temporarily bypass both files. To bypass the CONFIG.SYS and AUTOEXEC.BAT files do the following: 1. Start or restart the system. After the system starts, MS-DOS displays the following text: Starting MS-DOS... 2. While the above text is on the screen, press and release the key or press and hold down the key. MS-DOS will display the following text: MS-DOS is bypassing your CONFIG.SYS and AUTOEXEC.BAT files. The computer will then start with a basic configuration instead of the usual configuration. Note: Some parts of the system may not work as they usually do. Confirming each CONFIG.SYS and AUTOEXEC.BAT file. 1. Start or restart the system. After the system starts, MS-DOS displays the following text: Starting MS-DOS... 2. While the above text is on the screen, press and release the key. MS-DOS will display the following text: MS-DOS will prompt you to confirm each CONFIG.SYS and AUTOEXEC.BAT command One at a time, MS-DOS displays each command in your CONFIG.SYS and AUTOEXEC.BAT file followed by the prompt. For example, when MS-DOS reaches the DOS=HIGH command, it displays the following prompt: DOS=HIGH [Y,N]? To carry out the current command, press "Y" for yes. To bypass that command, press "N" for no. To carry out all remaining startup commands, press . To bypass all remaining startup commands, press . 3. When MS-DOS finishes processing the CONFIG.SYS file, the following prompt appears: Process AUTOEXEC.BAT [Y,N]? To carry out all the commands in your AUTOEXEC.BAT file, press "Y" for yes. To bypass your AUTOEXEC.BAT file completely, press "N" for no. Using the MEMMAKER command or other third-party memory managers. The MS-DOS User's Manual chapter named "Making More Memory Available" documents how to use the MEMMAKER utility. Below are some tips to follow (from Microsoft TechNet) when using third- party memory managers and optimizing memory with the MSCDEX.EXE driver for your CD-ROM. For complete compatibility, Windows 3.2 and MS-DOS 5.0 both provide HIMEM.SYS and EMM386.EXE as memory management drivers. The overriding objective Microsoft has for these drivers is to avoid hanging any computer during or after memory configuration. Optimization, while important, is secondary. To allocate upper memory blocks (UMBs) through a third-party memory manager, you need both a UMB provider and a UMB loader: A UMB provider is the memory manager that makes UMBs available. For MS-DOS 5.0, the UMB provider is the combination of EMM386.EXE plus HIMEM.SYS. In QEMM386 and 386MAX, for example, the UMB providers are QEMM386.SYS and 386MAX.SYS, respectively. A UMB loader loads a program into the proper UMB. The UMB loader in MS-DOS 5.0 is in the MS-DOS kernel, accessed through the "devicehigh" and "loadhigh" commands. The equivalents in 386LOAD.SYS and 386LOAD.COM; in QEMM386, they are LOADHI.SYS and LOADHI.COM. The arguments "for" using third-party memory managers include: Most third-party memory managers have a wider range of options for loading into the UMBs. For example, you can specify a particular UMB for loading a program. Third-party memory managers typically require 3K to 5K of conventional memory, while HIMEM.SYS with EMM386.EXE may take up to 10K. However, some memory managers also require overhead in the UMBs, but neither HIMEM.SYS nor EMM386.EXE require any. The arguments "against" using third-party memory managers include: Third-party memory managers can be more difficult to configure properly than EMM386.EXE, and they are often geared toward more sophisticated users. Third-party memory managers are supplemental to HIMEM.SYS and EMM386.EXE, so they require additional costs and resources to support. Unless you absolutely require 100 percent optimization, a third-party manager may be superfluous. If you decide to use a third-party memory manager, follow these guidelines: Don't use either HIMEM.SYS or EMM386.EXE. Use dos=high to load MS-DOS 5.0 into the HMA. Don't use the dos=umb, devicehigh, or loadhigh commands. Don't use the third-party commands that relocate the MS-DOS buffers into the UMBs. MS-DOS 5.0 automatically puts its buffers into the HMA, saving the UMBs for other programs. Use both the third-party UMB provider (such as 386MAX.SYS) and the third-party UMB loader (such as 386LOAD.SYS and 386LOAD.COM). Use the third-party commands to relocate MS-DOS file handles and drive space (from the files and lastdrive commands in your CONFIG.SYS) into the UMBs. You can also use third-party memory drivers as alternatives to HIMEM.SYS, SMARTDRV.EXE, and RAMDRIVE.SYS. However, the memory drivers provided with Windows 3.1 have been specifically designed and tested to provide maximum compatibility between MS-DOS 5.0 and Windows. Optimizing memory with MSCDEX.EXE When combined with a CD-ROM device driver, Microsoft CD-ROM Extensions (MSCDEX.EXE) allows you to connect a CD-ROM drive to an MS-DOS-based personal computer (PC). Outlined below are the various parameters available for the Microsoft CD-ROM Extensions and their usage: Usage: MSCDEX.EXE /D: /M: /L: /E /S /V /K Example: MSCDEX.EXE /D:MSCD001 /M:12 /L:D /E /S /V /K /M: and /E are the two parameters that can be modified to change the amount of memory that MSCDEX.EXE uses. /M: Parameter The /M: parameter defines how many memory buffers MSCDEX.EXE uses. Each buffer occupies 2K of memory. Decreasing this value decreases the amount of conventional memory that MSCDEX.EXE uses (and will decrease the performance when running software that accesses the CD-ROM drive). /E: Parameter The /E: parameter instructs MSCDEX.EXE to load a portion of the MSCDEX.EXE memory buffers into expanded memory, if it exists. /D: Parameter The /D: parameter is used to locate the device driver. /L: Parameter The /L: parameter allows the user to specify a particular drive letter for the CD-ROM unit. If this is not specified, MSCDEX.EXE assigns the next available drive letter on the system. /S: Parameter The /S: parameter specifies that MSCDEX.EXE should modify MS-DOS to allow the CD-ROM drive to be shared on MS-NET based servers. /V: Parameter The /V: parameter instructs MSCDEX.EXE to display additional information about memory usage during initialization. /K: Parameter The /K: parameter tells MSCDEX to use Kanji (Japanese) file structures, if present, rather than the default alphanumeric file structures.