Windows 3.0 with Multimedia Extensions 1.0

3.0 with Multimedia Extensions 1.0
Build of Windows 3.0
Screenshot
OS family16-bit Windows
Version number3.00a
Architecturex86 (IBM PC/AT, NEC PC-98, Fujitsu FM TOWNS)
About dialog
Windows30-MME-About.png
TCB.png TCBGallery.png

Windows 3.0 with Multimedia Extensions 1.0 (also called Multimedia Windows by some sources) is a special, multimedia-centric release of Windows 3.0, exclusively released on 20 October 1991 by various original equipment manufacturers (OEMs). Currently available releases include a vanilla SDK release for IBM PC in English, a Tandy release for the PC in English and German, an English release for the PC by Creative Labs, and Japanese releases for NEC PC-98 and Fujitsu FM TOWNS. This was Microsoft's first serious attempt to address the multimedia market on Windows.

It is the first version of Windows to support sound output and includes new programs for audio and video playback, including the first version of Media Player, new drivers for CD-ROM drives, sound cards, displays and joysticks and screensavers, as well an updated Control Panel. Most of these changes were later incorporated into Windows 3.1. Although the operating system supports running in real mode, the new changes are only available in the Standard and 386 Enhanced modes.

Information from antitrust documents[edit | edit source]

An internal Microsoft document released during the Comes v. Microsoft antitrust hearings details the initial development plan for a "Multimedia Windows" release.[1] According to the document, the alpha release was shipped to 35 external testing groups on 15 June 1990, with 25-30 additional sites to receive it on 1 August 1990. The beta release was to be released in mid-October 1990 and the final OEM Adaptation Kit (OAK) in December 1990.

Tandy is mentioned as the first OEM to launch their multimedia-capable PC-compatibles with Multimedia Windows. IBM, Fujitsu, Sharp, Olivetti, Zenith, Sony and Intel are listed as potential candidates for release. Microsoft Works for Windows with Multimedia extensions is mentioned as one of the apps to tie in with new features of Multimedia Windows.

New Features[edit | edit source]

Windows with Multimedia Extensions comes with a wide array of features, most of which require the system to run in Standard Mode or Enhanced Mode, and most of which are provided through the MMSYSTEM.DLL file.

MCI & Sound Support[edit | edit source]

For the first time, Windows now integrates sound support greater than simple PC speaker beeps. To prevent application writers from having to add support for the myriad of available sound cards, Microsoft provides three main ways to support sound on Windows with Multimedia Extensions: the waveOut API calls, which involve directly writing PCM waveform data to the sound card, the midiOut API calls, which cause MIDI playback, and the MCI (Multimedia Control Interface) APIs, which allows high-level control of many different multimedia devices. An application could even create an "MCI Window", a special window class that allowed playback of many different kinds of multimedia files, and could even be extended.

The Media Player application is merely a shell for an MCI Window. Video for Windows extended the MCI technology to add the ability for MCI to control AVI playback.

High-Resolution Timers[edit | edit source]

To support the high-precision timing required for sound, video, and animation playback, Windows with Multimedia Extensions adds a timer API, featuring API calls such as timeGetTime, which reads directly from the PIT's interrupt timer.

Joystick Support[edit | edit source]

Windows with Multimedia Extensions integrates support for basic two-button two-axis joysticks through the joyGetPos API.

DISPDIB.DLL & DIB.DRV[edit | edit source]

Windows with Multimedia Extensions ships with a driver called DIB.DRV, that allows one to create a GDI device context around a device-independent-bitmap in memory, thus allowing one to perform GDI operations onto the DIB and then have the application directly read the result out of the bits. This is conceptually similar to the CreateDIBSection API call added in Windows 95 and NT 3.5 (and backported through WinG), but since DIB.DRV is treated as an additional display adapter, you cannot BitBlt between DIB.DRV device contexts and those owned by the real display, since the bitmaps backing them (ostensibly "device-dependent" bitmaps, really just stored in the format of the driver which is a DIB for DIB.DRV and an arbitrary format for the main display driver), so it doesn't allow one to directly display the DIB onto the screen.

However, Windows with Multimedia Extensions also ships with a DLL called DISPDIB.DLL, which allows one to suspend GDI and directly access the VGA (Mode 13h; 320x200x256) framebuffer at 0xA0000 (accessed through a selector exported by KERNEL) for high-speed display of graphics and animations. In concert with DIB.DRV, this enables the Windows desktop to run in VGA Mode 13h, since DIB.DRV provides GDI operations onto the DIB surface, and DISPDIB can draw them, allowing for the 320x200 VGA driver that comes with Windows with Multimedia Extensions. Some applications under Windows 1, 2, and 3 already bypassed GDI and accessed the video card directly, but thanks to the market dominance of VGA for new PCs (which did not exist at all when Windows 1.0 came out, and wasn't yet universal when Windows 2.0 came out), Microsoft formalized the arrangement.

New applications[edit | edit source]

Tandy OEM[edit | edit source]

Windows Help[edit | edit source]

Windows Help in this release is version 3.07. The About dialog also states "Version 3.1.061d", which is caused because SHELL.DLL from Windows 3.1 build 061d is included.

Control Panel[edit | edit source]

About dialog says "Control Panel for Windows graphical environment with Multimedia Extensions 1.0" and "Version 1.0".

Auto Install[edit | edit source]

A Tandy OEM application for installing other applications from removable media. Version 1.0.

Welcome[edit | edit source]

A fullscreen, run-once Tandy OEM application that says, "Tandy presents the world of multimedia".

Multimedia Main Menu[edit | edit source]

A Tandy OEM application for easy access to various multimedia demos, applications, and the Program Manager.

Reset Tandy Demo[edit | edit source]

A Tandy OEM application which resets the default shell back to FindCD.

FindCD[edit | edit source]

A Tandy OEM application that offers a tutorial and sound test. When finished, it first starts the Welcome application and then the Multimedia Main Menu.

Creative Labs OEM[edit | edit source]

The Creative Labs OEM notably includes utilities from the Sound Blaster driver kit, including the Sound Blaster Pro Mixer.

Problems and fixes[edit | edit source]

Startup fix (Tandy OEM)[edit | edit source]

On the Tandy version, the default shell is set to FindCD (see above). This requires the user to insert the installation CD, but the application often hangs at the start (possibly due to bad soundcard configuration), preventing the user from booting into Windows itself without changing the shell back to Program Manager in SYSTEM.INI.

To do this you must open the file SYSTEM.INI in the installation directory, find the [boot] section and change the line shell=findcd.exe to shell=progman.exe. Windows will now start Program Manager on startup.

This doesn't apply to the non-Tandy versions since they set the shell to PROGMAN.EXE by default.

VGA cards in 386 Enhanced Mode[edit | edit source]

Some VGA cards may not work or detected properly under 386 Enhanced Mode with this version unless a certain EMMExclude setting is set in SYSTEM.INI.[2] This issue is also known to affect Virtual PC 2004 and 2007.[3]

Other[edit | edit source]

Both Tandy and non-Tandy versions include special video drivers, including a 320×200×256 color driver, with special fonts, it works on any virtualization software that emulates a VGA card. It can also be used on later versions of Windows (up to Windows 95) by upgrading from this version.

File differences[edit | edit source]

The following files have been introduced or removed compared to Windows 3.00 MDK Version 59:

Added files
Name Description Version
ALARMCLK.EXE
ALARMCLK.HLP
ALMONDS.MID
CALC.HLP
CALENDAR.HLP
CANYON.MID
CARDFILE.HLP
CDISC.BMP
CLIPBRD.HLP
CONTROL.CPL
CONTROL.HLP
CONTROL3.EXE
CPL.HLP
DISPDIB.DLL
GONG.WAV
HYPER.ICO
METBLAST.MID
MIDI.BMP
MIDIMAP.CFG
MMCBOX.EXE
MMDLG.DLL
MMJBOX.EXE
MMSETUP.EXE
MMSETUP.INF
MPLAYER.HLP
MSD.EXE
MUSICBOX.EXE
MUSICBOX.HLP
NOTEPAD.HLP
PASSPORT.MID
PBRUSH.HLP
PIFEDIT.HLP
PRINTMAN.HLP
PROGMAN.HLP
RECORDER.HLP
REVERSI.HLP
SAMPLE.MMM
SB15SND.DRV
SBFM.DRV
SBPMIXER.EXE
SBPR.BMP
SCRNSAVE.SCR
SIREN.WAV
SOL.HLP
SOUNDREC.EXE
SOUNDREC.HLP
STOMP.MID
SYSINI4.TXT
T1024.DRV
TERMINAL.HLP
VADMAD.386
VERINFO.EXE
VGA.DRV
VGAGRAY.DRV
VGAPAL.DRV
VSBD.386
WATER.WAV
WAVELINE.FON
WINBLA.BMP
WINFILE.HLP
WINHELP.INI
WININI3.TXT
WRITE.HLP
WUGNET.TXT
Removed files
Name Description Version
ADLIB.DRV
CLAVIER.MID
CPL.EXE
DOOR.WAV
MCIPIONR.DRV
MEDBITS.MMH
MIDIMAP.INI
MMCLOCK.EXE
MMCPL.CPL
MMWINVER.EXE
MPU401.DRV
SNDBLST.DRV
SSCLOCK.SCR
SSCLRWSH.SCR
SSDIMMER.SCR
SSROCKET.SCR
SSRSEDSK.SCR
SSSHWPCT.SCR
T1024C.DRV
TRAIN.WAV
VGAGREY.DRV
WINFILE.INI

Gallery[edit | edit source]

OEM versions[edit | edit source]

References[edit | edit source]