Windows 3.00 MDK Version 59

3.00 MDK Version 59
Build of Windows 3.0
Screenshot
OS family16-bit Windows
Version number3.00a
Architecturex86
Compiled on1990-11-07
Base build
Windows 3.00a
About dialog
Win3mdkv99about2.png

Windows 3.00 MDK Version 59 is an early build of Windows 3.0 with Multimedia Extensions. It was publicly shared on BetaArchive on 19 December 2016.[1]

The operating system is based on Windows 3.00a and implements a series of multimedia features, such as sound drivers, applications, and screen savers. This pre-release version was likely distributed at the Multimedia Developer Conference, held by Microsoft between 27 and 28 November 1990.[2]

The build notably includes support for various device drivers such as joystick-to-mouse input translation, Sound Blaster 1.x/2.0 support, and extended display capabilities. It also emphasizes strongly on audiovisual content, as support for the MIDI and Waveform specifications were implemented alongside a dedicated media player application. Certain applications included as part of Windows 3.00a were also overhauled to take advantage of the new multimedia capabilities, and applications now support emitting sound based on specific system events. A new Control Panel application design was also introduced, and screen savers were added to help prevent screen burn-in on CRT monitors.

The build comes with development tooling and code samples that allow developers to work on Multimedia PC-compatible applications.

New features and changes[edit | edit source]

Most of the new features introduced in this build explicitly require the system be run under Standard or 386 Enhanced Mode, as multimedia capabilities are largely offered by the new MMSYSTEM.DLL core library.

Driver support[edit | edit source]

A number of drivers that extend upon various audiovisual capabilities are included as part of this build. Device drivers for Sound Blaster 1.x-/2.0-compatible sound cards (SNDBLST.DRV) are installed by default, in addition to a Joystick-to-Mouse driver (IBMJOY.DRV) that translates gamepad peripheral input into mouse input, as well as support for a wide range of synthesized musical instruments through the addition of configurable MIDI specification support.

Additional display drivers have also been implemented, such as a standard VGA driver supporting a resolution of 320×200px (of up to 256 colors), a grayscale VGA driver, and a 256-color CGA display driver. At this stage in development, GPU drivers such as those targeting the Trident TVGA and S3 Paradise video cards are not yet implemented.

To support the high-precision timing required for audiovisual playback, a new timer API (handled by the VTDAPI.386 library) that reads directly from a programmable interval timer was added to the operating system.

Sound support and Media Control Interface[edit | edit source]

Windows now integrates proper sound support rather than simple PC speaker beeps. To prevent the burden of writing additional playback support code for individual sound cards, three unified methods of playback are provided by the operating system:

  • the waveOut API calls, which involve directly writing PCM waveform data to the sound card;
  • the midiOut API calls, which handle MIDI playback, and;
  • the Media Control Interface (MCI), which allows high-level control of different multimedia devices

An application can spawn a special, extensible MCI Window class that allows playback of various multimedia file formats.

Device-independent bitmaps[edit | edit source]

This build ships with a system driver that supports plotting device-independent bitmaps (DIB) in a Graphics Device Interface (GDI) device context (DIB.DRV), allowing a software developer to perform GDI operations against the DIB and having the application directly read the result in memory. This is conceptually similar to the CreateDIBSection API call added in Windows 95 and Windows NT 3.5 (and backported through WinG), but as the DIB driver is treated as an additional display adapter, it is not possible to BitBlt between the DIB device contexts and those owned by the real display, since the bitmaps backing them[a] do not allow either context to directly display images.

User interface[edit | edit source]

Several applications from Windows 3.00a were updated or rewritten entirely to take advantage of the then-new multimedia capabilities introduced as part of the Multimedia Edition. This includes the addition of a dedicated Media Player application (MPLAYER.EXE) capable of playing audio CDs, MacroMind Director movies, Wave and MIDI streams, a rewritten Clock application (MMCLOCK.EXE) featuring support for (optionally sound-based) alarms (for every quarter-hour, half-hour and hour) and customizable clock faces, and updated versions of the Control Panel and Windows Help user interfaces—both of which later shipped as part of Windows 3.1. An updated Winver application that reports the current MDK build has also been introduced, as MMWINVER.EXE. The operating system (and subsequently the File Manager application) has also been updated to support reading data directly from a CD-ROM drive, provided by a driver loaded via the MSCDEX DOS utility.

Applications are now capable of emitting a wider range of sounds, of which include a system startup sound, as well as performing sound events for information and error dialogs.[b] Elaborate iconography has also been introduced in certain applications to better convey their purposes from a visual standpoint. A total of nine sounds (including one MIDI sheet file) are present inside of the WINDOWS\MMDATA directory.

Screen savers[edit | edit source]

Screen savers are a new feature that debuted as part of Windows 3.00 Multimedia Edition, which are decorative, animated applications showing off various visual effects that are used to reduce the chance of screen burn-in on cathode-ray tube (CRT) monitors. These are activated after a period of idle computer activity defined by the user.

The screensavers included in this build are:

  • Clock (SSCLOCK.SCR): shows an analog or digital alarm clock on the screen against a black background or in full-screen. Can be configured to play alarms, either jump around in a black screen or be shown in full screen.
  • Color Wash (SSCLRWSH.SCR): displays a gradient of two colors. Allows configuring the two colors to be displayed.
  • Dimmer (SSDIMMER.SCR): dims the screen to a certain percentage. Allows configuring the amount of dim and how long it takes to fully dim the screen.
  • Lissajous Figures (SSLISSJU.SCR): shows trailing lines on the screen. Allows configuring the number of lines on the screen and how long before the figure changes.
  • Marquee (SSMARQUE.SCR): displays text that scrolls throughout the screen. Allows configuring the text, its font and color, the background color, and scroll speed and location.
  • Melt/Slime Screen (SSMELT.SCR): either shifts portions of the screen down by blocks or gradually adds green blocks to the current display. Ported from the screensaver included in the IdleWild program from the Microsoft Entertainment Pack 1–3. Allows configuring the speed of melt/slime.
  • Mystify (SSMYST.SCR): displays wireframe shapes. Allows configuring the shape of the object and the colors to use.
  • Raise Desktop (SSRSEDSK.SCR): hides all windows to only display the desktop. No configuration available.
  • Rockets (SSROCKET.SCR): launches rockets on a black screen which explodes into fireworks. Allows configuring how fast rockets are launched.
  • Show Picture (SSSHWPCT.SCR): displays a picture. Can be configured to cycle colors on the picture.
  • Starfield Simulation (SSSTARS.SCR): shows white dots (stars) that zooms in towards the screen.

Development tooling and code samples[edit | edit source]

This build was distributed in two CDs:

  • an "End-User Environment" disc containing the operating system installation media with MME components added, and;
  • a "Development Environment" disc containing special tooling and assets needed to develop Multimedia PC-compliant applications, dubbed the Multimedia Development Kit

The Development Environment disc features samples for five test applications written in the C programming language, which include:

  • Go, an interactive abstract strategy board game that tasks the player with capturing as much territory as possible using black/white stones while also trying to fend off the opponent player
  • a MacroMind Director movie player (MMPLAY)
  • a Media Control Interface (MCI) test application (MCITEST)
  • an application that plays Wave files in reverse (REVERSE)
  • a Sound Blaster device debugger (SBTEST)[c]

Five development tools are present in the latter disc, which include

  • BitEdit, a device-independent bitmap (DIB) image editor
  • PalEdit, a color palette editor used in conjunction with creating DIBs
  • WaveEdit, a tool used to edit audio samples in Wave files
  • Convert, which supports converting one file to many audiovisual formats (such as TIFF, CompuServe GIF, MIDI, and Wave)
  • FileWalk, a multi-purpose file editor featuring support for hex editing as well as DIB, palette and RIFF/WAVE file modification

Debug and non-debug components as well as C headers and libraries for the Multimedia System Core and related functions are also included as part of the Development Environment disc. It is possible to perform a direct system upgrade from Windows 3.00(a) to this build via the MDK setup application.

The updated Windows Help application in this build includes a small set of stress tooling for the GDI, hidden inside of an unlabeled drop-down menu item.

Bugs and quirks[edit | edit source]

  • Setup does not provide configuration for the Sound Blaster driver, and defaults to I/O port 0x220 and IRQ 3. They can be changed via the Drivers applet in the Control Panel. The user is informed about this after setup finishes.
  • The Control Panel application title erroneously changes to "MIDI Mapper" after closing the MIDI Mapper applet.
  • There is no valid program association for either Wave or MIDI files at this point in development. They must be manually assigned to via the File Manager or directly opened in the Media Player.

File differences[edit | edit source]

The following files have been introduced or removed compared to Windows 3.00a:

Added files
Name Description Version
ADLIB.DRV
BELLS.WAV
BLOCKS.WAV
CLAVIER.MID
CLOCK.WAV
CPL.EXE
DIB.DRV
DISP.CPL
DOOR.WAV
DRIVERS.CPL
IBMJOY.DRV
JAWHARP.WAV
JOYSTICK.CPL
LASER.WAV
LRFIX.FON
LRHELV.FON
LRHELVB.FON
LROEM.FON
LRSYS.FON
MCGA256.DRV
MCICDA.DRV
MCIMMP.DRV
MCIPIONR.DRV
MCISEQ.DRV
MCIWAVE.DRV
MEDBITS.MMH
MEDIAMAN.DLL
MEDWAVE.MMH
MIDI.CPL
MIDIMAP.INI
MMCLOCK.EXE
MMCPL.CPL
MMP.DLL
MMSOUND.DRV
MMSYSTEM.DLL
MMTASK.TSK
MMWINVER.EXE
MPLAYER.EXE
MPU401.DRV
OHOH.WAV
SCRNSVR.EXE
SND.CPL
SNDBLST.DRV
SSCLOCK.SCR
SSCLRWSH.SCR
SSDIMMER.SCR
SSDLG.CPL
SSLISSJU.SCR
SSMARQUE.SCR
SSMELT.SCR
SSMYST.SCR
SSROCKET.SCR
SSRSEDSK.SCR
SSSHWPCT.SCR
SSSTARS.SCR
TIMER.DRV
TRAIN.WAV
VGA.GR3
VGAGREY.DRV
VTDAPI.386
WINCOM.DLL
WINFILE.INI
Removed files
Name Description Version
CLOCK.EXE
MSNET.DRV
SYSTEM.SRC

Gallery[edit | edit source]

Applications[edit | edit source]

Control Panel[edit | edit source]

Screen savers[edit | edit source]

Setup[edit | edit source]

Notes[edit | edit source]

  1. 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.
  2. Defined in code as SystemStart, SystemDefault, SystemExclamation
  3. In compiled form only. Source code for this application is not available.

References[edit | edit source]

  1. https://www.betaarchive.com/forum/viewtopic.php?t=36518
  2. Keefe, Patricia. Microsoft, Tandy pitch multimedia standard, Computerworld (vol. 24, iss. 46; pp. 145). 12 November 1990.