Thursday, October 18, 2012

Running an XT Class Computer in an AT World

The PC and XT standards were well supported in the 80s but were quickly supplanted in the 90s by fully AT compatible machines.  Yet XT class systems still have their uses.  They support CGA, PCjr and Tandy composite video output, they run at speeds that old software demand to be run at and support timing sensitive tricks and copy protection schemes.  They almost always have big pc speakers and also there is the PCjr./Tandy sound chip.  Yet there are many challenges in acquiring affordable hardware for these systems.  When the AT was released, it added several standards, changed a few, and really offered now-cheap peripherals for almost all of them.

Keyboards

There is the XT keyboard protocol and the AT keyboard protocol.  Modern machines still support AT keyboards, even the IBM PC AT 84-key Keyboard from 1984.  They do not support pure XT keyboards, including the IBM PC/XT 83-key Keyboard from 1981.  Machines supporting the XT keyboard protocol do not work with pure AT keyboards.  During the early years, there were machines with used unique keyboards (Tandy, Amstrad) which were not physically compatible with the XT/AT DIN connector or used a protocol different enough that they would not work with a standard XT keyboard.

If you cannot find a pure XT keyboard, you can use a switching keyboard like an IBM Model M, Tandy Enhanced or Northgate Omnikey.  The Model M works best in systems supporting extended keyboards like a PC XT with a 1986 BIOS.  The original Omnikeys had switches that would allow the keyboard to be used in Tandy 1000s and Amstrad PCs.

VGA

Most VGA cards use a 16-bit ISA connector.  Monitor support for VGA graphics is nearly universal, monitors working with CGA/TGA/PCjr. (except for composite out), EGA or MDA graphics adapters are difficult to come by.  Most 16-bit VGA cards with early chipsets from Paradise (PVGA-1A) will work okay, and even the TSENG ET-4000AX, among the fastest ISA VGA chipsets, will usually work as well.  The Trident 8900C is another decent choice.  The TSENG ET-3000 is an 8-bit chip.  The ATI Wonder+ supports 8-bit.  OAK chipsets are good choices for compatibility, but like Trident the speed is poor.

IDE & SCSI

8-bit IDE and SCSI cards are hard to come by these days.  There are two types of 8-bit IDE cards, the XTA card and the 16-to-8 bit IDE card.  The former only works with relatively few drives, which only come in 20 or 40 MB capacities.  Even though the systems were otherwise fully AT, IBM still used this crippled interface in its PS/2 Model 25 & 30 286s and the PS/1 Model 2011, which had a 10MHz 80286.

The 16-to-8-bit cards, including the ADP-50L and Acculogic S-IDE 8/16 work with drives at least up to the 504MB limit, but command a price premium.  SCSI, fortunately, was 8-bit back in the day, so finding drives is not as big a deal.  Finding cards with ROM BIOSes is an issue, because without the ROM BIOS, you will need to load a driver to use a SCSI device, and no booting is possible.  The XT-IDE project is also included in this category, but does not have the 504 or even 8GB limits anymore and the v2 cards offer really fast performance.  If an IRQ is used, it must be a low one as IRQs 8-15 do not exist in the XT architecture.

MFM and RLL controllers and drives are not intended to be interchangeable.  RLL requires a more precisely calibrated drive than the ones typically intended for MFM.  You should be able to use an RLL drive with an MFM controller if you low-level format the drive to the less efficient encoding algorithm.  The reverse (RLL controller, MFM drive) may not be reliable.  ESDI drives use the same 34 & 20 pin cabling, but only work with an ESDI controller, which are all 16-bit.  

High Density Floppy Controller

Introduced in the IBM AT, these do not use the 16-bit ISA extension.  Finding a multifunction card with an HD floppy controller is not too difficult.  Adding support to the BIOS is, since most multifunction cards do not have a BIOS socket.  There is a project underway on the Vintage Computer Forums to

Real Time Clock

AT machines always have this as standard, either with a battery or a Dallas 1287 or 12887 RTC & Battery module.  MSDOS will support this as of 3.0.  XT machines generally have two options, an 8-bit multifunction card like a Six Pak Plus or a piggyback Dallas 1215 chip.  The piggyback chips have to be installed underneath a ROM chip.  Both require a TSR to be loaded on bootup.  Tandy *L systems and Amstrads use the AT-style RTC.

286 & 386

A 286 does support Protected Mode, but not a lot of software supports it.  There is a good amount of software and code that uses instructions introduced with the 286.  A V20 or V30 implements most of those instructions and can be plugged into a socket that originally contained an 8088 and 8086 CPU, respectively.  Examples include the official DOS driver for an IOMEGA Zip-100 drive and the BIOS ROM extension found on a Trantor T-130B SCSI card.

Many, many software utilities and programs from the mid-90s were written to expect a 386 or better CPU that offered 32-bit registers, Protected and Virtual 8086 modes.  If the program requires a DOS DPMI extender like DOS4GW, DOS32 or CWSDPMI.

Accelerators generally were of the board-kind for 8088 and 8086 systems, like the Intel Inboard 386XT, which used a ribbon cable to connect to the original CPU socket.  For the 286s they usually plugged into a PLCC socket.  However, the Intel Inboard 386AT used a board with a ribbon cable.  

Expanded & Extended Memory

On an XT class system, the only way you will be able to address more than 1MB of RAM is through Expanded  Memory Boards.  They come in 8 & 16 bit flavors, with the 8-bit more expensive.  A few boards can be set to work in either 8 or 16 bit mode.  They are almost always 13" long, so systems with small cases will have a problem.  Unless your system has a 16-bit ISA extension, adding extended memory in a 286 or higher machine will not be possible.  286s do not have a memory controller that can convert extended to expanded memory, and 386 and 486 plug-in upgrades usually do not have their own memory.  The Tandy 1000RLX is one exception, as it can allow HMA use (for loading DOS high) or EMS (64KB only).  The 286 IBM PS/2 and PS/1 systems offer Extended Memory, but the modules are proprietary.

Network Cards

Not all 16-bit network cards work in an 8-bit slot.  There are 8-bit Ethernet cards like the NE1000, these will require a transceiver to connect the machine using CAT-5 cable.  The Intel EtherExpress 8/16 and true NE2000 cards will work in an 8-bit slot.

Sound Cards

16-bit Sound Blasters and Pro Audio Spectrums should offer support for everything except 16-bit audio recording/playback.  16-bit playback is impossible in a Sound Blaster 16 because there are no high DMA channels in the XT architecture.

Serial Cards

XT devices use serial cards based on the 8250 or 8250B UART.  AT devices uses the faster 16450 or 16550A UART, the latter with a 16-byte FIFO.  AT BIOSes do not like the 8250 parts and the 16450 and more advanced parts fix a bug with the interrupt enable register the XT BIOS relies on.  

Wednesday, October 17, 2012

Floppy Disk Useful Storage Space

Standard DOS PC Game formats use the following :

160KB Floppy - 40 tracks x 8 sectors x 512 bytes per sector = 163,840 bytes
180KB Floppy - 40 tracks x 9 sectors x 512 bytes per sector = 184,320 bytes
320KB Floppy - 40 tracks x 8 sectors x 2 sides x 512 bytes per sector = 327,680 bytes
360KB Floppy - 40 tracks x 9 sectors x 2 sides x 512 bytes per sector = 368,640 bytes
720KB Floppy - 80 tracks x 9 sectors x 2 sides x 512 bytes per sector = 737,280 bytes
1.2MB Floppy - 80 tracks x 15 sectors x 2 sides x 512 bytes per sector = 1,228,800 bytes
1.44MB Floppy - 80 tracks x 18 sectors x 2 sides x 512 bytes per sector = 1,474,560 bytes

All disks intended for 720KB and lower capacities are referred to as Double Density (DD).  1.2MB and 1.44MB disks are referred to as High Density (HD).  No game ever came on a 2.88MB floppy, which uses 36 sectors per track and Extra High Density Disks.  I am not aware of any games that came on a DMF formatted disk from Microsoft.  The DMF format allowed 1.68MB on a 3.5HD floppy, using 21 sectors per track but having double or quadruple cluster sizes and only 16 root directory entries.

Now the above shows the maximum available disk space using the standard formatted capacities.  These also are the exact sizes for standard img/ima disk image files.  Anything else is under/overdumped, protected or compressed.  However, when a disk is formatted in MS-DOS, the FAT-12 file system takes up a certain amount of space given above.  So, with a standard format, the usable space works out to be the following :

160KB Floppy - 158,720 bytes or 96.875% of theoretical capacity
180KB Floppy - 179,200 bytes or 97.222%
320KB Floppy - 322,560 bytes or 98.438%
360KB Floppy - 362,496 bytes or 98.333%
720KB Floppy - 730,112 bytes or 99.027%
1.2MB Floppy - 1,213,952 bytes or 98.792%
1.44MB Floppy - 1,457,664 bytes or 98.854%

So what takes up all that space that you cannot use?

All floppy and hard disks have their first sector reserved by the file system.  This sector is called the Master Boot Record (MBR) or the Boot Sector.  This tells the system if the disk is bootable and DOS that it is a DOS compatible disk.  Then floppy disks have two copies of the File Allocation Table (FAT) for redundancy.  The FAT indicates on which sector each file starts and how many sectors the file takes on the disk.  Each FAT copy can take 1-9 sectors, with 160K & 320K disks taking 1 sector, 180K and 360K disks 2 sectors, 720K disks 3 sectors, 1.2MB disks 7 sectors and 1.44MB disks taking 9.  The FAT maps all clusters on the disk using a 12-bit number.  .

Finally, the root directory entries have a certain number of sectors allocated to them, from 4-14 sectors.  Each directory entry takes 32 bytes and includes the file name and extension, the file attributes (read only, hidden, system, archive), date and time of creation or last modification, starting cluster and file size in bytes.  Single sided DD disks default to 64 root directory entries (4 sectors used), double sided DD disks 112 entries (7 sectors used) and HD disks 224 entries (14 sectors used).  An entry can be a file or a subdirectory with DOS 2.0 or higher.   This limit only applies to the root directory such as A:\ or B:\, a subdirectory like A:\MYDOCS\ can have any number of files in it.

So, for a 360K disk, 1 sector is used by the MBR, 4 sectors for the FAT and 7 sectors for the root directory entries.  368,640 bytes - (12 sectors x 512 bytes/sector) = 362,496 bytes.

But why cannot I fill every byte of that disk with data?

This is where the FAT cluster size comes into play.  Cluster sizes for all double sided non-HD floppy formats is 2 sectors.  So a file that is one byte large will take 1,024 bytes on the disk, as would a file that is 900 bytes large.  A file that is 1,025 bytes long will take 2,048 bytes on the disk, and the extra space is wasted.  On a 360KB floppy, you could never have more than 354 files on that disk, since 362,496/1,024 is 354.  Single sided DD floppy formats, HD floppy formats, excluding the 2.88MB and DMF floppies, use a cluster size of 1 sector.  So on a 1.44MB floppy, you could have 2,847 files on the disk, if each were no more than 512 bytes large.  The cluster size is not intended to be changeable.

But I need to squeeze just 1KB more!

So, you are finding how tight floppy drive space is, eh?  Well, if you cannot feel you can work without an extra 1-2KB, you need to modify the default format.  The safest was to do this is to reduce the number of root directory entries supported.  If you will never need to put more than 16 files on the disk, then you can gain 3KB extra space and not have to worry about DOS complaining it cannot recognize the disk format.

If you really wanted to push the envelope, you could eliminate the second FAT, but if a bad sector develops in the first FAT, your disk will be unreadable.  Plus you will only gain 1K more on double density media.  So for a 360K disk, if you went to the total extreme of having only 1 FAT table and no more than 16 root directory entries, the usable space would be 366,592 bytes.

How to tell if a disk image is really original :

A disk image will contain a OEM ID string starting with byte 3 in the image file.  It will be something like IBM  3.1, TAN 3.2, MSDOS5.0.  However, images can also contain strings like WINIMAGE or VFD2.1.  These labels are created when the WinImage or Virtual Floppy Drive program makes a new disk image and are obviously not original.  More expert eyes will quickly look at the boot sector to determine whether an image is original or has been modified or recreated.  The boot sector from an MS-DOS 5.0 formatted floppy will look very different from one created by Virtual Floppy Disk.  WinImage may even overwrite the original OEM ID string when imaging disks.  Fortunately the parts of the boot sector which OEMs modify is not essential to disk operation in DOS.

The second way is to look at the volume label.  If there is no volume label for the floppy, it may not be original.  This is far from definitive, because many games did not have volume labels on their disks, because their install programs did not use them.  If someone else tells you that his original disks have a label and your disks do not, then they may not be original.  Some games do look at the volume label for installation or to swap disks, most do not care.

The third way is to look at the File Date and Time.  If the file dates is in the 21st century, then the disk is not original.  Other disks may have most of their files with consistent dates, but one or two relatively or much later dates.  But this is not conclusive, because the disks may have been mastered on a system without a real time clock (which was not ubiquitous in the 1980s), or one which had the wrong date/time set.

The fourth way is to do a binary comparison between the files between your disk and a known good disk.

Saturday, October 6, 2012

Lucasfilm Games & LucasArts Technical Qualities

This article discusses the hardware support for every Lucasfilm Games/LucasArts title released on a floppy disk for the IBM PC and compatibles for DOS.  This article does not cover games not developed by LucasArts (Indy Action Adventures, Pipe Dream, Night Shift, Masterblazer) or versions of these games for other systems (C64, Apple II, Amiga, Atari ST, Macintosh, FM-Towns), CD-ROM versions, collections or games for Windows (Indy's Desktop Adventures).  It also identifies any different versions and gives information about them where known.  Non-English versions are not covered.

Options in bold are, at least in my opinion, the ideal graphics and sound hardware to run the game on.  Unless otherwise noted, all games support keyboard, mouse and joystick.  All games in this article can be run from a hard drive and do not have disk-based copy protection.

Maniac Mansion
Video Support - CGA, HGC, TGA, EGA, MCGA, VGA
Sound Support - PC Speaker, Tandy 3-Voice
Minimum RAM - 256KB
Media - 1 x 5.25" DD & 1 x 3.5" DD
File Date - 04/13/1988
Copy Protection - Nuke'm Alarms Codebook

Initially distributed by Activision, uses a box with no border, unlike every Lucas product thereafter.  First Lucas game for the IBM PC and DOS (PHM Pegasus and Strike Fleet have later file dates)  Supports CGA composite color, but poorly.  Tandy 3-Voice is the ideal for music and sound effects, but EGA graphics are superior to Tandy graphics because the text looks nicer.  (Tandy uses a true 160x200 mode, requiring a blockier font, while all other graphics adapters except Hercules use a 320x200 mode with double-wide pixels for the graphics area).  Can be found without copy-protection in Day of the Tentacle, but Tandy support is broken in that version (text is garbled).  Comes with large poster with hints for puzzles in the game.  Can write the current configuration, including video mode and input (joystick or mouse) to a file called PREFS.

PHM Pegasus
Video Support - CGA, HGC, TGAEGA
Sound Support - PC Speaker, Tandy 3-Voice
Minimum RAM - 256KB
Media - 1 x 5.25" DD & 1 x 3.5" DD
File Date - 05/15/1988
Copy Protection - Manual

Distributed by Electronic Arts.  Early release came on 5.25" floppy, later release included both types of media.  Unusually, EGA is more colorful than Tandy.  Tandy 3-Voice only seems to be used for the title music.  CGA is supported in color and Black & White, the latter intended for laptops.  No mouse support.

Zak McKracken and the Alien Mindbenders
Video Support - CGA, HGC, TGA, EGA, MCGA, VGA
Sound Support - PC Speaker, Tandy 3-Voice
Minimum RAM - 256KB
Media - 2 x 5.25" DD & 1 x 3.5" DD
File Date - 07/19/1988; 07/25/1988
Copy Protection - Zap 'Em II Exit Visa Security Codes Codebook

Probably the first product fully distributed by Lucas.  Supports CGA composite color, but poorly.  Was on the market for only a few months, then replaced by the Enhanced edition.  Tandy 3-Voice is the ideal for music and sound effects, but EGA graphics are superior to Tandy graphics because the text looks nicer.  (Tandy uses a true 160x200 mode, requiring a blockier font, while all other graphics adapters except Hercules use a 320x200 mode with double-wide pixels for the graphics area).  Comes with The National Inquisitor with hints for the puzzles in the game.  Can write the current configuration, including video mode and input (joystick or mouse) to a file called PREFS.

Battlehawks 1942
Video Support - CGA, TGA, EGA, MCGA, VGA
Sound Support - PC Speaker, Tandy 3-Voice
Minimum RAM - 384KB
Media - 2 x 5.25" DD & 1 x 3.5" DD
File Date - 10/06/1988
Copy Protection - Manual

First game to use Lucas' flight simulator engine, which would be continuously improved until the Star Wars sims.  Copy protection is removed in the Air Combat Classics Collection.

Strike Fleet
Video Support - CGA, HGC, TGAEGA
Sound Support - PC Speaker, Tandy 3-Voice
Minimum RAM - 384KB
Media - 1 x 5.25" DD
File Date - 11/30/1988
Copy Protection - Manual?

No mouse support.  Last game to be released by another company.  Unknown if released on 3.5" disk.

Zak McKracken and the Alien Mindbenders "Enhanced"
Video Support - CGA, HGC, TGA, EGA, MCGA, VGA
Sound Support - PC Speaker, Tandy 3-Voice
Minimum RAM - 384KB
Media - 3 x 5.25" DD & 2 x 3.5" DD
File Date - 12/30/1988; 09/21/1992
Copy Protection - Zap 'Em II Exit Visa Security Codes Codebook

Uses proper 320x200 graphics for all modes.  First game to be developed for the IBM PC.  Music and sound effects are identical with low resolution version.  As far as I can tell, Lucas never used the words "Enhanced" to refer to this version.  I believe that they silently replaced the older version with this version.  Copy protection removed in the Classic Adventures Collection with a 09/21/1992 install date (even though the codes are in the manual).

Indiana Jones and the Last Crusade : The Graphics Adventure
Video Support - CGA, TGA, EGA, MCGA, VGA
Sound Support - PC Speaker, Tandy 3-Voice, Adlib, Creative C/MS*
Minimum RAM - 384KB
Media - 6 x 5.25" DD or 3 x 3.5" DD
File Date - 07/09/1989 (v1.0); 08/14/1989 (v1.3); 11/07/1989 (v1.4)
Copy Protection - Translation Table with Red Filter
* - Version 1.4 only

First game to not include both types of disks (5.25" 360KB and 3.5" 720KB) in the box, requiring the user to use an offer to switch their game disks.  First use of a red filter for copy protection.  A decent scan of the pages will allow the underlying text to be read with a filter (looking at a screen) or by color manipulation in Photoshop.  Not immediately removed from the company store when the 256-color version was released.  Comes with a Grail Diary with clues to various puzzles in the game and is essential to beating the game.   Versions 1.0, 1.3 and 1.4 exist.  Mouse & Adlib support is autodetected for this game, LOOM and later games using the SCUMM engine.  

Maniac Mansion "Enhanced"
Video Support - CGA, HGC, TGA, EGA, MCGA, VGA
Sound Support - PC Speaker, Tandy 3-Voice
Minimum RAM - 384KB
Media - 2 x 5.25" DD & 1 x 3.5" DD
File Date - 08/03/1989; 10/31/1989; 09/21/1992
Copy Protection - Nuke'm Alarms Codebook with Red Filter

Apparently the maroon pages of the original Codebook were not sufficient to deter photocopying, so Lucas used a red filter in this version.  Uses proper 320x200 graphics for all modes.  Music and sound effects are improved compared with low resolution version.  I believe that they silently replaced the older version with this version.  Copy protection is not removed in the Classic Adventures Collection (at least the version with the install files end with 09/21/1992).  Last game to support Hercules.

Their Finest Hour : The Battle of Britain
Video Support - CGA, TGA, EGA, MCGA, VGA
Sound Support - PC Speaker, Tandy 3-Voice, Adlib
Minimum RAM - 512KB
Media - 4 x 5.25" DD or 2 x 3.5" DD
File Date - 10/02/1989
Copy Protection - Radio Frequency Cipher Wheel Codewheel
Expansions : Their Finest Missions Volume One

First Lucas game with a Codewheel, would not be the last.  Copy protection is removed in the Air Combat Classics Collection.  First Lucas game to provide true support for VGA (more than the 16 CGA colors are used), although graphics were originally drawn for EGA.

Loom
Video Support - CGA, TGA, EGA, MCGA, VGA
Sound Support - PC Speaker, Tandy 3-Voice, Adlib, Creative C/MS, Roland MT-32*
Minimum RAM - 512KB
Media - 6 x 5.25" DD or 3 x 3.5" DD
File Date - 03/07/1990 (v1.0/Int. 3.5.57); 03/15/1990 (v1.1/Int. 3.5.37) 09/21/1992 (v1.1/Int. 3.5.40)
Copy Protection - Book of Patterns with Red Filter

* - Patch disk required

Uniquely came with a stereo Cassette featuring a nearly 30-minute audio drama telling the backstory.  Only 16-color game not to have an upgraded floppy version released.  Copy protection removed in the Classic Adventures Collection.  Users originally had to pay $10 and send in a card to receive the MT-32 patch, but it is available on LucasArts' support site.  Last game to use a red filter for copy protection.  Versions 1.0 and 1.1 exist.  CD version dated 06/09/92, has 256-color graphics, full voice-acting with simplified script, almost no portraits, CD audio music and sound effects.  FM-Towns CD uses floppy text, 256-color portraits and CD audio music (two different versions for each piece) but no voice acting.  First game to use the /? command line argument to list the arguments the game accepts.  LucasArts Classic Collection version with copy protection eliminated reports v1.1/Int. 3.5.40.

Indiana Jones and the Last Crusade : The Graphics Adventure "256-Color VGA"
Video Support - MCGA, VGA
Sound Support - PC Speaker, Tandy 3-Voice, Adlib, Creative C/MS
Minimum RAM - 640KB
Media - 4 x 3.5" HD or 4 x 5.25" HD or 3 x 3.5" HD
File Date - 05/03/1990 (v.2.0/Int. 3.0.18); 08/30/1990 (v2.0/Int. v3.0.20) 08/06/1992; 09/21/1992 (v2.0/Int. 3.0.22)
Copy Protection - None

There is no translation table screen in this version, so no copy protection.  Unlike 16-color version, any copy of this version will support the C/MS Game Blaster.  Included in the Classic Adventures Collection.  First game to come on high density floppies, but LucasArts apparently only offered a "full" version on 5.25"HD disks.  Upgrade, budget or slash releases may come on 1.44MB 3.5" disks.  If there are four 3.5" HD disks, then the game can be run off floppies.  If there are only three disks, then it must be decompressed to a hard drive.  FM-Towns CD uses CD audio music.  LucasArts Classic Collection version with copy protection eliminated reports v2.0/Int. 3.0.22.

The Secret of Monkey Island
Video Support - CGA, HGC, TGA, EGA, MCGA, VGA
Sound Support - PC Speaker, Tandy 3-Voice, Adlib, Creative C/MS, Roland MT-32*
Minimum RAM - 640KB
Media - 8 x 5.25" DD or 4 x 3.5" DD
File Date - 09/01/1990 (v1.0/Int. v.4.0.62)
Copy Protection - Dial-A-Pirate Codewheel

* - Patch disk required, cost $10 back in the day.  Not immediately removed from the company store when the 256-color version was released.  Last game to support CGA and HGC.  Roland is not always ideal, since you lose the sound effects of the Adlib and other sound drivers.

The Secret of Monkey Island "256-Color VGA"
Video Support - EGA, MCGA, VGA
Sound Support - PC Speaker, Tandy 3-Voice, Adlib , Creative C/MS, Roland MT-32
Minimum RAM - 640KB
Media - 8 x 3.5" DD or 7 x 3.5" DD (v1.1) or 4 x 5.25" HD.or 3 x 3.5" HD
File Date - 12/03/1990; 02/04/1992 (v1.0/Int. v.5.0.16); 02/15/1991 (v1.1/Int. v.5.0.16), (v1.1/Int. v.5.0.15); 09/21/1992 (v1.0/Int. v.5.0.19)
Copy Protection - Dial-A-Pirate Codewheel

CD version dated 06/10/92, "stump joke" removed, CD audio music added and interface changed from text to icons and fewer verbs.  Copy protection removed in the Classic Adventures Collection, which reports v1.0/Int. v.5.0.19.  Versions 1.0 and 1.1? exist.  Later budget releases may come on 1.44MB floppies.  Last game to support C/MS.

Secret Weapons of the Luftwaffe
Video Support - TGA, EGA, MCGA, VGA
Sound Support - PC Speaker, Tandy 3-Voice, Adlib, Sound Blaster
Minimum RAM - 640KB, 768KB for Tandy, 1MB EMS Recommended
Media - 8 x 5.25" DD or 4 x 3.5" DD
File Date - 09/01/1990
Copy Protection -  Codewheel
Expansions : P-38 Lightning Tour Of Duty
                   Do 335 Pfeil Tour Of Duty
                   P-80 Shooting Star Tour Of Duty
                   He 162 Volksjager Tour Of Duty

Expansions will bring 1.0 and 1.02 to 2.0 and 2.1.  2.1 is the version that third-party missions use.  2.2 comes on the CD.  First game with "true" VGA graphics and last to support Tandy graphics and sound.

Monkey Island 2 - LeChuck's Revenge
Video Support - EGA, MCGA, VGA
Sound Support - PC Speaker, Adlib, Sound Blaster, Roland MT-32
Minimum RAM - 640KB
Media - 6 x 5.25" HD or 5 x 3.5" HD
File Date - 11/21/1991 (v1.0/Int. v.5.2.02)
Copy Protection - Mix-n-Mojo Codewheel

Copy protection, Easy Mode & the 16-color EGA support (appears in B&W) removed in the Monkey Island Madness CD.  KIXX released this game with the copy protection removed (probably to eliminate the expensive codewheel), but without damage otherwise.  Last game to use a codewheel.  Last to use Lucasfilm Games and first to use LucasArts company name.  I believe the opening title music was originally composed for Adlib and the in-game music for Roland.

Indiana Jones and the Fate of Atlantis
Video Support - EGA, MCGA, VGA
Sound Support - PC Speaker, Adlib, Sound Blaster, Roland MT-32
Minimum RAM - 640KB
Media - 6 x 5.25" HD or 5 x 3.5" HD
File Date - 05/21/1992 (v1.0/Int. v.5.2.20)
Copy Protection - Manual

CD version is dated 05/17/93 and adds voice acting.  Last game to support EGA.

Star Wars : X-Wing
Video Support - MCGA, VGA
Sound Support - Adlib, Sound Blaster, Creative Sound Blaster Pro, Roland MT-32, General MIDI
Minimum RAM - 640KB, 896KB EMS Recommended
Media - 6 x 5.25" HD or 5 x 3.5" HD
File Date - 02/16/1993 (v1.0)
Copy Protection - Manual
Expansions : Imperial Pursuit Tour of Duty
                    B-Wing Tour of Duty

No music or sound effects without EMS.  Limited Edition release came with a book, The Farlander Papers, but is otherwise identical to the standard version.  Supports the hat switch of a CH Flightstick Pro.  Last game to be offered publicly by LucasArts on 5.25" disks.

Maniac Mansion - Day of the Tentacle
Video Support - MCGA, VGA
Sound Support - Adlib, Sound Blaster, Roland MT-32*, General MIDI
Minimum RAM - 640KB, 2MB EMS Recommended
Media - 6 x 3.5" HD or 8 x 5.25" HD
File Date - 06/02/1993 (v1.5/Int. v.6.4.2)
Copy Protection - Manual

* - Patch disk required

Released simultaneously with CD version.  Floppy has speech in intro and end, CD has speech (same actors) throughout.  CD version came in a unique triangular box or regular box.  LucasArts has a patch to add Roland MT-32 and General MIDI support to the floppy disk version.  This patch was originally sent from the company on floppy disk.  It adds the files GMIDI.IMS, ROLAND.IMS and TENTACLE.002.  If your copy has those files, you can play the game with MIDI devices.  If not, then presumably you have a virgin install and the game will not start with those options selected, despite what the configuration menu may allow.  The 5.25" version may have been available by special order or was released for non-U.S. markets only.

Sam 'N Max Hit the Road
Video Support - MCGA, VGA
Sound Support - Adlib, Sound Blaster, Roland MT-32, General MIDI
Minimum RAM - 640KB, 2MB EMS Recommended
Media - 6 x 3.5" HD + 1 x 3.5" DD or 8 x 5.25" HD
File Date - 11/02/1993 (v1.0/Int. v.6.5.0)
Copy Protection - Crimestompers' Coloring Book : How to Play Sam & Max Hit the Road Manual

CD version dated 03/24/94 (CDv1.11), includes 4 CD audio tracks.  Floppy has speech in intro and end, CD has speech (same actors) throughout.  The 5.25" version may have been available by special order or was released for non-U.S. markets only.

Star Wars : TIE Fighter
Video Support - MCGA, VGA
Sound Support - Adlib, Sound Blaster, Sound Blaster Pro, Sound Blaster 16, Sound Blaster AWE32, Pro Audio Spectrum, Pro Audio Spectrum 16, Roland MT-32, General MIDI
Minimum RAM - 640KB, 2MB EMS Recommended, 900KB Required
Media - 6 x 3.5" HD
File Date - 06/22/1994 (v1.0)
Copy Protection - Manual
Expansions : Defender of the Empire

Last floppy disk game developed by LucasArts.  Came with short story The Stele Chronicles.

Friday, October 5, 2012

Important System Resources in Vintage Computing

In the beginning, IBM created the PC/XT architecture.  All clone machines tried to adhere to this architecture.  This architecture was based around the Intel 8088 processor, which had an 8-bit data bus and 20-bit data bus.

Then IBM used a 286 in the PC AT and an extension to the architecture, the AT architecture, was born.  This had a 16-bit data bus architecture and a 24-bit address bus.

Around this time, IBM also released the PCjr. and Tandy released the 1000 series, which are very important for vintage PC gaming.  Other important computers include the Amstrad PC-1512 & 1640, the IBM PS/2 Model 25 & 30 (8086 & 80286 Models) and the IBM PS/1 Models 2011, 2121 & 2123.

Since resource conflicts seem inherent to the ISA bus, I do not discuss hardware intended for other bus architectures like EISA, MCA, VLB or PCI.

I.  The XT Architecture

IBM's designated assignments for its common peripherals :

I/O Ports

System Board :

000-01F - Direct Memory Access Controller
020-03F - Interrupt Controller
040-05F - Timer
060-06F - Parallel Peripheral Interface
080-09F - DMA Page Registers
0A0-0AF - Non-maskable Interrupt Mask Register

Expansion Bus :

200-20F - IBM Game Control Adapter

210-217 - IBM Expansion Unit

2B0-2DF - Enhanced Graphics Adapter (EGA Alternate Address)

278-27F - IBM Printer Adapter (Secondary, not officially supported)

2F8-2FF - IBM Asynchronous Communications Adapter (Secondary Serial)

320-32F - IBM Fixed Disk Adapter (Hard Drive, also XT IDE usually 320-323 only)

378-37F - IBM Printer Adapter

3B0-3BF - IBM Monochrome Display and Printer Adapter (MDA, Printer at 3BC-3BF)

3C0-3CF - IBM Enhanced Graphics Adapter (EGA) or IBM PS/2 Display Adapter (VGA)

3D0-3DF - IBM Color/Graphics Display Adapter

3F0-3F7 - IBM 5-1/4" Diskette Drive Adapter (Floppy)

3F8-3FF - IBM Asynchronous Communications Adapter (Primary Serial)

IRQ : 0-7

NMI - Memory Parity, 8087 Coprocessor & I/O Channel Errors

IRQ 0 - System Timer, not available on bus

IRQ1 - Keyboard Controller, not available on bus.

IRQ2 - IBM Enhanced Graphics Adapter (EGA) or IBM PS/2 Display Adapter (VGA)

IRQ3 - IBM Asynchronous Communications Adapter (Secondary Serial)

IRQ4 - IBM Asynchronous Communications Adapter (Primary Serial)

IRQ5 - IBM Fixed Disk Adapter (Hard Drive)

IRQ6 - IBM 5-1/4" Diskette Drive Adapter (Floppy)

IRQ7 - IBM Monochrome Display and Printer Adapter (MDA, Printer only) or IBM Printer Adapter

DMA : 0-3

DMA 0 - (DRAM Refresh) not available on bus.

DMA1 - no particular assignment

DMA2 - IBM 5-1/4" Diskette Drive Adapter (Floppy)

DMA3 - IBM Fixed Disk Adapter (Hard Drive)

Upper Memory :

A0000-AFFFF - IBM Enhanced Graphics Adapter (EGA) or IBM PS/2 Display Adapter (VGA)

B0000-B0FFF - IBM Monochrome Display and Printer Adapter (MDA)

B8000-BBFFF - IBM Color/Graphics Display Adapter (CGA)

C0000-C3FFF - IBM Enhanced Graphics Adapter (EGA)

C0000-C5FFF - IBM PS/2 Display Adapter (VGA) (non-IBM VGA cards typically use C0000-C7FFF)
C6800-C8000 - Ditto
CA000-CA800 - Ditto

C8000-CBFFF - IBM Fixed Disk Adapter (Hard Drive)

F0000-FFFFF - ROM BASIC & BIOS (XT 2nd & 3rd BIOS)

F4000-FFFFF - ROM BASIC & BIOS (PC, Portable, XT 1st BIOS)

II.  The AT Architecture

I/O Ports

Same as XT except :

070-07F - MC146818A Real Time Clock & NMI Mask Register
0A0-0BF - IRQ Controller 2
0C0-0DF - DMA Controller 2
0F0-0FF - 80287 Coprocessor Control

170-177 - IBM Fixed Disk and Diskette Drive Adapter (Hard Drive only, Secondary Controller, unsupported)

1F0-1F8 - IBM Fixed Disk and Diskette Drive Adapter (Hard Drive only, Primary Controller)

278-27F - IBM Serial/Parallel Adapter (Secondary Parallel)

2F8-2FF - IBM Serial/Parallel Adapter (Secondary Serial)

370-377 - IBM Fixed Disk and Diskette Drive Adapter (Floppy & Hard Drive, Secondary Controller, unsupported)

378-37F - IBM Serial/Parallel Adapter (Primary Parallel)

3F0-3F7 - IBM Fixed Disk and Diskette Drive Adapter (Floppy & Hard Drive, Primary Controller, also IDE)

3F8-3FF - IBM Serial/Parallel Adapter (Primary Serial)

IRQ : 0-15

NMI - Memory Parity or I/O Channel Error

IRQ 0 - System Timer, not available on bus

IRQ1 - Keyboard Controller, not available on bus.

IRQ2 - 2nd IRQ Controller Cascade, rerouted to IRQ9.

IRQ3 - IBM Serial/Parallel Adapter (Secondary Serial)

IRQ4 - IBM Serial/Parallel Adapter (Primary Serial)

IRQ5 - IBM Serial/Parallel Adapter (Secondary Parallel only)

IRQ6 -  IBM Fixed Disk & Diskette Drive Adapter (Floppy only)

IRQ7 - IBM Monochrome Display and Printer Adapter (MDA, Printer only) or IBM Serial/Parallel Adapter (Primary Parallel only)

IRQ8 - Real Time Clock, not available on bus.

IRQ9 - IBM Enhanced Graphics Adapter (EGA) or IBM PS/2 Display Adapter (VGA)

IRQ10-12 - no particular assignment

IRQ13 - 80287 Coprocessor

IRQ14 - IBM Fixed Disk & Diskette Drive Adapter (Hard drive only)

IRQ15 - no particular assignment (later secondary Hard Drive controller)

DMA : 0-7

DMA 0 - no particular assignment

DMA1 - no particular assignment

DMA2 - IBM Fixed Disk & Diskette Drive Adapter (Floppy only)

DMA3 - no particular assignment

DMA4 - (2nd DMA Controller Cascade) is not available on bus. 

DMA5-7 - no particular assignment

Upper Memory :

Same as above, except no Fixed Disk at C8000-CBFFF :

E0000-EFFFF : Optional ROM Sockets (AT only)

F0000-FFFFF : BASIC & BIOS ROM

PS/2 Difference :

IRQ12 - PS/2 Mouse

III.  Other System Differences 

PCjr./Tandy 1000 Differences :

I/O Same as XT architecture except :

000-01F - Direct Memory Access Controller (Tandy only, optional on 1000/A/EX/HX)
020-027 - Interrupt Controller
040-047 - Timer
060-067 - Parallel Peripheral Interface
080-083 - DMA Page Registers (Tandy only, optional on 1000/A/HD/EX/HX)
0A0-0A7 - Non-maskable Interrupt Register, Memory Configuration Register (Tandy), Configuration Register (PCjr.)
0C0-0C7 - TI SN76496 Programmable Sound Generator
0C0-0C7 - Tandy PSSJ Sound Chip (except for RSX)
0F0-0F7 - Floppy Interface (PCjr.)
1E0-1E7 - Tandy PSSJ (RSX, also 2500XL, Sensation!)
200-207 - Joystick Interface
2F8-2FF - Serial Interface (PCjr.)
320-323 - XT IDE 8-bit Interface (TL/2, TL/3, RL, RLX)
378-37F - Printer Interface / IBM PCjr. Parallel Printer Attachment
3D0-3DF - Graphics Interface
3F0-3F7 - Floppy Interface (Tandy)
3F8-3FF - IBM PCjr. Internal Modem, Serial Interface (Tandy TX, TL, TL/2, TL/3, RL, RL, RLX, RSX, SL, SL/2)
FFEB-FFEF - Tandy System Programming Options (TL, TL/2, TL/3, RL, RLX, SL, SL/2, RSX)

IRQ Same as XT architecture except :

NMI - Keyboard Controller (PCjr.) or Coprocessor & I/O Channel Error (Note parity memory is not supported on these machines)

IRQ1 - no particular assignment (PCjr.)

IRQ2 - no particular assignment, Alternate Video (Tandy SX, TX, TL, TL/2, TL/3, RL, SL, SL/2)

IRQ3 - Serial (PCjr.), PS/2 Mouse (RL, RLX, TL/3)

IRQ4 - Modem (PCjr.), Serial (Tandy)

IRQ5 - Video (Optional on Tandy SX, TX, TL, TL/2, TL/3, RL, SL, SL/2), otherwise no particular assignment

IRQ6 - Floppy

IRQ7 - Printer

DMA Same as XT architecture except :

DMA1 - Tandy PSSJ Sound Chip

DMA not supported on PCjr.

Upper Memory Same as XT except :

B8000-BBFFF - PCjr. Video Memory Window (CGA compatibility)
B8000-BFFFF - Tandy Video Memory Window
D0000-DFFFF - IBM PCjr. Cartridge
E0000-EFFFF -  IBM PCjr. Cartridge
E0000-EFFFF - DOS-in-ROM Paging (Tandy HX, TL, TL/2, TL/3, SL, SL/2, RL, RLX, RSX)
F0000-FFFFF - BASIC & BIOS (PCjr.) BIOS (Tandy)

Amstrad PC-1512 Differences :

I/O 70-77 - Real Time Clock (functions like AT)
I/O 78-7F - Amstrad Mouse Movement

IRQ2 - Real Time Clock (can be used with EGA)

PS/2 & PS/1 Differences :

I/O 3B0-3DF - IBM Video Graphics Array (Model PS/2 25 & 30 286, PS/1)

I/O 3C0-3DF - IBM Multicolor Graphics Array (MCGA) (Model 25 & 30 8086 only)

IRQ2 - MCGA, VGA

I/O 320-327 XT IDE 8-bit Interface (Model 25 & 30, PS/1 Model 2011)

IV.  ISA Expansion Cards


Hercules Graphics Differences (from MDA) :

Upper Memory - B0000-B7FFF - Half-Graphics Mode
Upper Memory - B0000-BFFFF - Full Graphics Mode (CGA Emulation)

Adlib Music Feature Card :
I/O - 388-389

Game Blaster
I/O - 210-21F, 220-22F, 230-23F, 240-24F, 250-25F, 260-26F

Sound Blaster 1.0-1.5, Mediavision Thunderboard :
I/O - 210-21F, 220-22F, 230-23F, 240-24F, 250-25F, 260-26F; 200-207 (Joystick); 388-389 (Adlib)
IRQ - 2, 3, 5, 7
DMA1

Sound Blaster 2.0 :
Same as Sound Blaster above except :
I/O - 220-23F, 240-24F; 200-207 (Joystick)

Sound Blaster Pro 1.0-2.0
I/O - 220-23F, 240-24F; 200-207 (Joystick)
IRQ - 2, 5, 7, 10
DMA - 0, 1, 3

Sound Blaster 16, AWE32, AWE64
I/O - 220-23F, 240-24F, 260-27F. 280-29F (DSP); 330-331, 300-301 (MIDI); 200-207 (Joystick); 388-38B (Adlib); 620-623 & A20-A23 & E20-E23 (Advanced WavEffects Synthesizer, AWE32, SB32 & AWE64 only); 100 (3D Stereo Enhancement device, AWE64 only)
IRQ - 2, 5, 7, 10
DMA - 0, 1, 3 (Low); 5, 6, 7 (High)
SCSI Port - 140, 340 (certain models only)
IDE Port - 1E8-1EF, 170-177, 168-16F (certain models only)

Roland MPU-401 w/MIF-IPC & MIF-IPC-A:
I/O - 330-337
IRQ2

Roland MPU-IPC & IPC-T
I/O - 330-331 (MPU-IPC), 330-331, 300-301, 320-321 (MPU-IPC-T)
IRQ - 2 (MPU-IPC), 2, 3, 4, 5, 6, 7 (MPU-IPC-T)

Roland LAPC-I, SCC-1, MPU-401AT
I/O - 330-331, 332-333, 334-335, 336-337; 300-301, 320-321 (MPU-401AT only)
IRQ -  2, 3, 4, 5, 6, 7

Innovation SSI-2001
I/O - 280-29F, 2A0-2BF, 2C0-2DF, 2E0-2FF; 200-20F (Joystick)

IBM Music Feature Card
I/O - 2A20-2A2F, 2A30-2A3F (alias of 220-22F, 230-23F)

Gravis Ultrasound
I/O - 210-21F & 310-31F, 220-22F & 320-32F, 230-23F &  & 330-33F, 240-24F & 340-34F, 250-25F &  & 350-35F, 260-26F & 360-36F (Ultrasound); 388-389 (Adlib); 30C. 31C, 32C, 33C, 34C, 35C, 36C (16-bit Base Port Address, CS4231 cards only, GUS MAX, GUS w/daughterboard)
IRQ - 2, 3, 5, 7, 11, 12, 15 (GUS IRQ & MIDI IRQ can use two different IRQs)
DMA - 1, 3, 5, 6, 7 (Playback & Record DMA can use two different DMAs)

Novell NE1000 & NE2000
I/O & ROM : 300-31F & C8000-CBFFF, 320-33F & CC000-CFFFF, 340-35F, D0000-D3FFF, 360-37F & Disabled or D4000-D7FFF.(some cards will go all the way up to the F segment.)
IRQ : 2, 3, 4, 5
DMA (Some Cards Only) : 1, 3 (NE1000), 3, 5, 6, 7 (NE2000)

AST Six Pak Plus Real Time Clock
I/O - 2C0-2DF
IRQ - 2, 4, 5, 7 (optional)

Monday, October 1, 2012

All You Ever Wanted to Know about the Creative Music System , a.k.a. the Game Blaster




I.  Market History

In 1988, DOS games were finally beginning to support cards and devices that would allow games to expand their musical abilities beyond the PC Speaker and PCjr./Tandy 3-Voice sound.  King's Quest IV, released in September, 1988, was the first DOS game to support sound cards and midi interfaces.  It supported the Adlib Music Synthesizer Card, the Roland MT-32 Multi-timbral MIDI Sound Module (with a Roland MPU-401 midi interface) and the IBM Music Feature, all of which had been released the previous year.

While the Adlib would soon become supported by all developers, and the MT-32 would dominate the high end of PC gaming for several years, IBM's card was seen as overpriced and lacking in features.  It was supported in games only by Sierra, and then as something of an afterthought.  Could a third card succeed?  Creative Technologies of Singapore thought it could.

In late 1987 or early 1988, Creative Labs, Inc. released the Creative Music System (CMS or C/MS as it was abbreviated) in the United States (it had previously been released in Malaysia and Singapore).    It consisted of a half-length 8-bit ISA card (called the "Creative Music Card") and software to compose music on the card.   The software came on five 5.25" Double Density 360KB disks (Master Disk, Intelligent Organ, Sound Disk 1, Sound Disk 2, Utilities Disk).  It included the Intelligent Organ, which used text mode ASCII graphics to show piano keys, demos, lots and lots of songs, many of which composed by the company's founder, W.H. Sim.  It also includes a TSR called CMSDRV.COM, which some of the programs use to communicate with the card.


The Creative Music System had no game support in the beginning, and without it, any consumer based audio PC device would be considered little more than a toy.  Creative had a card it could not sell, which is the reason why the Creative Music System box and package is incredibly rare today.  Creative teamed up with Radio Shack to sell a repacked version of the card in its stores under the name Game Blaster.  The official name of the actual card in this package is the Game Blaster Music Board.  Note that whether the card is in a box with the label "Creative Music System" or "Game Blaster", the card is functionally identical.  The software came on one 5.25" or 3.5" Double Density disk (both included), with only the Intelligent Organ, a demo, a test card utility, CMSDRV.COM and drivers for Sierra's games.  The disks that came with the Creative Music System were available separately along with other Creative Labs programs for the card.

Like Ad Lib, Creative reached out to game developers, and in the Game Blaster box it included a full copy of Sierra's Silpheed and drivers for Sierra's SCI games released at the time.  Hereafter, I use the label "CMS" to refer to the boards and software support for them.  I believe the card was also referred to as the Avenger Music Card in some countries.

While the Game Blaster was more successful than the Creative Music System, it was still unable to challenge the Adlib's increasing dominance over PC audio.  Creative's card had one feature the Adlib lacked however, and that was stereo output.  In the beginning, it was the poor man's stereo music card, because only high end solutions like the Roland MT-32 supported stereo until the days of the SB Pro.  Unfortunately, its musical capabilities were not inspiring to game programmers despite its marketing as a music card.  Programmers and consumers viewed square wave synthesis was seen as technically inferior to the FM synthesis of the Adlib.  The Adlib was a simple card and easy to clone or implement.  Creative decided to combine the CMS functionality with the Adlib functionality and add a MIDI interface, a joystick adapter and digital audio input and output functions to create a "Killer Card."  This card was marketed as the Sound Blaster at the end of 1989.

It soon became apparent that the CMS functionality (which enabled Creative to advertise the card as a "stereo" solution) was unimportant to buyers, so Creative left out the chips in the 1.5 and 2.0 versions of the Sound Blaster.  The chips could be added in as an upgrade from Creative, or in the 1.5's case, by buying the right chips from anyone who had two of them.  Relatively few people bothered when the Adlib provided all the functionality that PC games needed.  In mid-1991, Creative released the Sound Blaster Pro and eliminated support for CMS on the board and in their products.


II.  Technical Qualities

The card has six jumpers to set the I/O address to 210, 220 (default), 230, 240, 250 or 260.  It takes up the consecutive sixteen ($00-$0F) addresses from and including the I/O starting address set by the jumper.  It uses no IRQs and no DMAs.  It uses standard TTL Logic and a custom Creative Technology CT-1302 Programmable Logic Array for interfacing.  The music is exclusively made by two Phillips SAA-1099 chips, one for the left channel, one for the right channel. SAA-1099s from Creative have CMS-301 stickers on these chips.

The left SAA-1099 is at I/O 2x0 & 2x1 and the right SAA-1099 is at I/O 2x2 & 2x3.  The subsequent twelve I/O addresses are used by the CT-1302.  For a long time, the function of this chip was a mystery, but now we know what it can do.  One problem which Creative used this chip to solve was that of detection.  While the game publisher could require a user to tell a program the hardware he had in his system, it would be difficult for a less savvy user to know or remember what he had or where in the I/O space it was.  Creative decided to make it easy for the consumer and the game programmers by allowing the card to be detected by software.

In order for a card to be detectable in software in a PC, it has to give a reliable, non-random response to a read from the processor, the more distinctive the better.  The SAA-1099s cannot be read, only written, so there was no reliable way to detect these chips in software.  Here is where the CT-1302 comes in.  For the remaining addresses, the card will store or latch an 8-bit value written to it at addresses 2x6 or 2x7, which is then read back by a program from address 2xA or 2xB.  Port 2x4 always contains value 7F, giving this card an even more unique detection scheme.  If the value read at 2xA or 2xB is the same as the value written at 2x6 or 2x7 and the unique value at 2x4 is 7F, then the card is detected.  There must be two different I/O addresses involved in the reading/writing scheme, otherwise this scheme does not work reliably.

There is a volume wheel to control the amplified output to the RCA jacks and headphone minijack.  They can drive speakers up to 8ohms.  There are cards marked with CT-1300A and CT-1300B part numbers.

Each Phillips SAA-1099 chip supported six channels of sound using square waves with 12-bit frequency control and 4-bit amplitude control.  Up to two of the six channels could be used for white noise generation or envelope generation with 8 preset envelopes.  The chip can output in stereo through dual amplitude controls.  Compare the TI SN76496 and its derivatives found in the IBM PCjr. and Tandy 1000 computers with three channels of square waves with 11-bit frequency control, 4-bit amplitude control, a separate noise generator and mono output.  The SAA-1099 is almost a stereo clone of two AY-3-8910s, where each chip supports three square wave channels with a 12-bit frequency control, 4-bit amplitude control, a noise generator and a envelope generator.

In Creative's products, the SAA-1099s are clocked at 7.159MHz, which is exactly half of the OSC 14.318MHz signal.  It its 1990 C/MS Programming Information manual, Creative Labs copies much of the SAA-1099 datasheet but fails to make any mention of the envelope generator functions or registers and also leaves out the most important noise selection (in which it uses the programmable frequency of a tone generators), giving the impression that the noise generator is only capable of three pre-selected frequencies. The manual gives the impression that the Game Blaster is less capable than it actually is, and doubtless may have contributed to the relative lack of use of the noise capabilities in DOS games.  I am not aware of any game that used the envelope function.  The chips Creative Labs used appear to be generic SAA-1099s (after you peel the CMS-301 sticker off them), so all the functions described in the SAA-1099 datasheet should be available.


When Creative released the Sound Blaster, it kept the SAA-1099 chips at I/O 2x0-2x3, but the other I/O ports in the sixteen-port address space the Sound Blaster allots to itself were used by its Digital Sound Processor (DSP) (2x6, 2xA, 2xC, 2xE) and Adlib YM-3812 chip (2x8 & 2x9).  Thus the CT-1302 latch functionality described above will not work on a Sound Blaster, and this affects compatibility with games.  Simply put, if a game cannot detect a CMS card, it may refuse to play CMS music and/or sound effects.


The Sound Blaster 1.5 is the same card as the Sound Blaster 1.0 but it has two empty sockets for SAA-1099 chips.  Once these are installed, and they can be obtained from IC suppliers, then CMS becomes available.  No jumpers or other fiddling is required.  With the 2.0, not only do the ICs need to be inserted, but a programmed PAL (write once) or GAL (rewritable) will need to be inserted into the third socket.  Chuck(G) of the Vintage Computer Forums develpoed a method to deduce logic tables for PALs and used his method to determine the logic table for the PAL Creative used and programmed.  The upgrade GALs programmed with the derived logic will work on all 2.0s except those with the CT1336A chip.  On those boards, a newer upgrade chip or reversed engineered chip will be required.  Once the three chips are installed, the CMSOFF jumper needs to be removed.

III.  CMS Games & Software

Through various sources, including MobyGames and VOGONS forums, I have identified 83 unique DOS games that support CMS.  In the chart below, I give the release year as reported by MobyGames, but I highly doubt, for example, that the DOS ports of Airball and Times of Lore were released in 1987 or 1988 respectively, or that patches were available for Sierra's 1988 games until 1989.  (I have been corrected as to Times of Lore).  Games that supported CMS were really available from late 1988 to 1992.

Unfortunately, due to the self-detection mechanisms described above, not all games work with a Sound Blaster with CMS.  However, I have been able to make 75 of those 83 games work with a Sound Blaster with CMS.  Many games, including all games from Sierra, Activision and LucasArts games, do not try to detect CMS and require the user to select CMS in an install program or with a command line argument to make the game work with CMS.  Some games will play Adlib or Roland MT-32 music and sound if they detect one in the system even if they detect a CMS.  In those cases, you need to manually select CMS by a command line argument.

This would not be a huge problem except that CMS cards are extremely rare.  One to two come up on eBay in a year.  Thus if someone wants to hear CMS on real hardware and not worry about compatibility or finding the right command line switches to get CMS working, they need a real CMS.  Sound Blasters, the 1.5 and 2.0 are not as rare, and can be upgraded with Phillips SAA-1099 chips obtained from an IC supplier and a programmed GAL (with the caveat given above).

In many, many cases, CMS music in games will sound pretty awful next to the Adlib or the Roland MT-32, and sometimes even the Tandy 3-voice chip sounds better.  Elvira and Conan are especially awful, and Sierra's support for games like Laura Bow 2 is pretty pathetic.  However, Times of Lore uses it well, and Airball is unique in that it supports CMS and Innovation SSI-2001 (better than CMS) but not Adlib, Tandy or Roland.

Some games and most of Creative's CMS software use CMSDRV.COM to access the Game Blaster and require it to be run as a TSR prior to the game or software being run.  The driver provides basic interface services to the game through a software interrupt.  CMSDRV.COM v3.10, used before the Sound Blaster, will refuse to load unless it successfully detects a true CMS or Game Blaster card.  So will the Intelligent Organ executables found with true CMS boards.  However, Creative included versions of these programs that will run with a Sound Blaster in its original 1.0 driver disks.  The version of CMSDRV.COM that comes on the Sound Blaster 1.0 disks is v3.20B.  If a game requires you to use CMSDRV.COM and its CMSDRV.COM fails to load because you have a Sound Blaster, just copy over the later version.

Some games will automatically detect a Sound Blaster, and if so, will allow CMS music to work.  Sound Blaster detection is usually done by sending a report DSP version command to the card and reading back a value that would seem to make sense (1.5, 2.0 or 2.01).  Thus some Accolade games will default to CMS music because it detects a Sound Blaster and the user did not load the SOUND.COM TSR from an Adlib disk or SBFMDRV.COM from a Sound Blaster 1.5 or above disk.  These TSRs act exactly like the CMS TSR, and if a game advertises Adlib support but you cannot hear the sound in the game, try running one of these beforehand.

Silpheed (v1.0) had already been released without support for CMS, so the version (v2.3) in the Game Blaster box included the full game (on 5.25" and 3.5" disks) with support added for the CMS, volume control (which does not work with CMS) and text for Xacalite's speech (apparently his speech did not function correctly, so it was impossible to understand everything he said).  Sierra did not leave out any of the other sound card drivers in this version and even added a driver for a Yamaha FB-01 MIDI module (connected to a Roland MPU-401 MIDI interface).  Sierra would later release v2.4 in the Silpheed box and v3.0 with the PS/1 Audio/Game Card.

Drivers were included on the Game Blaster disk for King's Quest IV, Leisure Suit Larry II, Police Quest II and Space Quest III.  For the later versions of King's Quest IV and Leisure Suit Larry II and all versions of Police Quest II and Space Quest III, there are two files.  The first, CMS.DRV, is common to all games.  The second, PATCH.101, is unique to each game.  For the older versions of King's Quest IV and Leisure Suit Larry II (SCI interpreter versions 1.000.111 and 1.000.011 or earlier, respectively), there was a unique CMS.DRV for each game combining the two files identified in the previous sentence.  There was a program called SG-INST.EXE which allowed you to change the I/O address of the driver.  This should work with all Sierra SCI0 engine CMS drivers.

Finally, there are several instances where claimed support for CMS does not seem to really exist.  In the list, I have identified games where I could not find any indication that CMS support was actually included in the game or that the support was broken and not fixable.  Even the box will sometimes give false advertising.  However, if anyone is actually able to get CMS working in these games, let me know.

In the table, Y = Yes, N = No, P = Patch Required.  Many games will not recognize CMS at an I/O port other than 220-22F.

Game Release Publisher CMS/Game Blaster Only I/O Port Select Notes
Airball 1987 MicroDeal N N
Altered Destiny 1990 Accolade, Inc. Y N
Arkanoid II: Revenge of Doh 1989 Taito Corporation Y N "Special Version", not present on other versions
Bad Blood 1990 ORIGIN Systems, Inc. N Y
Battle Chess II: Chinese Chess 1990 Interplay Productions, Inc. N Y
BattleTech: The Crescent Hawks' Revenge 1990 Infocom, Inc. N N
Breach 2 1990 Impressions Games, Mindcraft Software, Inc. N N
Bubble Bobble 1989 Taito Software Inc. Y N
Budokan: The Martial Spirit 1989 Electronic Arts, Inc. N N
Castle of Dr. Brain 1991 Sierra On-Line, Inc. N Y
Champions of Krynn 1990 Strategic Simulations, Inc. N N
Chuck Yeager's Air Combat 1991 Electronic Arts, Inc. N N
Codename: Iceman 1989 Sierra On-Line, Inc. N P
Colonel's Bequest, The 1989 Sierra On-Line, Inc. N P
Conan: The Cimmerian 1991 Virgin Games, Inc. N N
Conquests of Camelot: The Search for the Grail 1990 Sierra On-Line, Inc. N P
Conquests of the Longbow: The Legend of Robin Hood 1991 Sierra On-Line, Inc. N Y
Day of the Viper 1989 Accolade, Inc. N N
Death Knights of Krynn 1991 Strategic Simulations, Inc. Y N
Don't Go Alone 1989 Accolade, Inc. N N
EcoQuest: The Search for Cetus 1991 Sierra On-Line, Inc. N Y
Elvira 1990 Accolade, Inc. N N
F-14 Tomcat 1990 Activision, Inc. N Y
Fire Hawk : Thexder – The Second Contact 1990 Sierra On-Line, Inc. N N
Gunboat 1990 Accolade, Inc. N N
Harpoon 1989 Three-Sixty Pacific, Inc. N N
Hero's Quest: So You Want to Be a Hero / Quest for Glory I 1989 Sierra On-Line, Inc. N P
Hoyle's Official Book of Games: Volume 1 1989 Sierra On-Line, Inc. N P
Hoyle's Official Book of Games: Volume 2 1990 Sierra On-Line, Inc. N P
Hoyle's Official Book of Games: Volume 3 1991 Sierra On-Line, Inc. N Y
Indiana Jones and The Last Crusade: The Graphic Adventure 1989 Lucasfilm Games LLC N N EGA Version 1.4 for Support, All VGA Versions have Support
J.R.R. Tolkien's The Lord of the Rings, Vol. I 1990 Interplay Productions, Inc. N Y
Jack Nicklaus' Unlimited Golf & Course Design 1990 Accolade, Inc. N N
Joe Montana Football 1990 SEGA of America, Inc. N N
Jones in the Fast Lane 1991 Sierra On-Line, Inc. N P
Keef the Thief: A Boy and His Lockpick 1989 Electronic Arts, Inc. N N
King's Quest I: Quest for the Crown 1990 Sierra On-Line, Inc. N P
King's Quest IV: The Perils of Rosella 1988 Sierra On-Line, Inc. N P Patches Required, Different for Old or New Version
King's Quest V: Absence Makes the Heart Go Yonder! 1990 Sierra On-Line, Inc. N N
Lakers versus Celtics and the NBA Playoffs 1989 Electronic Arts, Inc. N N
Leisure Suit Larry 1 : In the Land of the Lounge Lizards 1991 Sierra On-Line, Inc. N P
Leisure Suit Larry 3: Passionate Patti in Pursuit of the Pulsating Pectorals 1989 Sierra On-Line, Inc. N P
Leisure Suit Larry 5: Passionate Patti Does a Little Undercover Work 1991 Sierra On-Line, Inc. N Y
Leisure Suit Larry Goes Looking for Love (in Several Wrong Places) 1988 Sierra On-Line, Inc. N P Patches Required, Different for Old or New Version
Les Manley in: Search for the King 1990 Accolade, Inc. N N
Loom 1990 Lucasfilm Games LLC N N
Miami Vice 1989 Capstone Software N Y Replace included CMSDRV.COM with CMSDRV.COM from Sound Blaster 1.0 Install Disk
Mixed-Up Fairy Tales 1990 Sierra On-Line, Inc. N P
Mixed-Up Mother Goose (16-Color High Res) 1990 Sierra On-Line, Inc. N P
Mixed-Up Mother Goose (256-Color Floppy) 1991 Sierra On-Line, Inc. N Y
Night Shift 1990 Lucasfilm Games LLC N N
Oil's Well 1990 Sierra On-Line, Inc. N N
Operation Wolf 1989 Taito America Corporation N N Fails to Detect but Works Anyway
Paku Paku 2011 Paladin Systems North N Y
PGA Tour Golf 1990 Electronic Arts, Inc. N N Run SOUND.COM for Adlib Music
Police Quest II: The Vengeance 1988 Sierra On-Line, Inc. N P Patch Required
Police Quest III: The Kindred 1991 Sierra On-Line, Inc. N Y
Police Quest: In Pursuit of the Death Angel 1992 Sierra On-Line, Inc. N Y
Power Drift 1990 Activision Publishing, Inc. N N
Prince of Persia 1990 Brøderbund Software, Inc. N N v1.0 Only, Must remove Adlib chip from Sound Blaster to get C/MS Music, buggy unless patch, see comments below
Puzznic 1990 Taito Corporation Y N
QIX 1989 Taito Corporation Y N
Quest for Glory I: So You Want To Be A Hero (256-Color) 1992 Sierra On-Line, Inc. N Y
Quest for Glory II: Trial by Fire 1990 Sierra On-Line, Inc. N N
Rambo III 1989 Taito America Corporation Y N
Rastan 1990 Taito Corporation Y N
Shanghai II: Dragon's Eye 1990 Activision, Inc. N Y
Silpheed 1988 Sierra On-Line, Inc. N Y v2.2 and above
Sorcerian: Master Scenario 1990 Sierra On-Line, Inc. N N
Space Quest I: The Sarien Encounter 1991 Sierra On-Line, Inc. N N
Space Quest III: The Pirates of Pestulon 1989 Sierra On-Line, Inc. N P Patch Required
Space Quest IV: Roger Wilco and the Time Rippers 1991 Sierra On-Line, Inc. N N
Spirit of Excalibur 1990 Virgin Games, Inc. N N
Spot 1990 Virgin Mastertronic Ltd. N N
Star Control 1990 Accolade, Inc. N Y Game will try all six I/O ports to detect Game Blaster, Must Remove Adlib chip to get Game Blaster music to work, Game will automatically enforce MT-32, Adlib, Game Blaster, Tandy and PC Speaker in that order
Strike Aces 1990 Accolade, Inc. N N
SU-25 Stormovik 1990 Electronic Arts, Inc. N N
Test Drive III: The Passion 1990 Accolade, Inc. N N
The Dagger of Amon Ra 1992 Sierra On-Line, Inc. N Y
The Game of Harmony 1990 Accolade, Inc. N N
The Secret of Monkey Island 1990 Lucasfilm Games LLC N N
Times of Lore 1988 ORIGIN Systems, Inc. N Y
Ultima VI: The False Prophet 1990 ORIGIN Systems, Inc. N Y
Windwalker 1989 ORIGIN Systems, Inc. N N
WolfPack 1990 Brøderbund Software, Inc. N N Fails to Detect but Works Anyway






Games without CMS Support




Xenocide 1990 Micro Revelations, Inc.

Box claims support, but not fully implemented in software
Secret of the Silver Blades 1990 Strategic Simulations, Inc.

Box claims support, card will make some horrible noises in game, but there is no entry at the music selection screen. Adlib overrides everything for music
Jordan vs Bird: One on One 1988 Electronic Arts, Inc.

Some Boxes have the System Requirements Label from Lakers v. Celtics, Game does not support Adlib, C/MS or Roland MT-32
Sargon 5: World Class Chess 1991 Activision, Inc.

No switches for Game Blaster in Executable
Trump Castle II 1991 Capstone Software

Possibly Broken
Monte Carlo Baccarat 1991 Capstone Software

Possibly Broken
Hoverforce 1990 Accolade, Inc.

Seems to Support Adlib/MT-32 Only
Stratego 1990 Accolade, Inc.

Seems to Support Adlib/MT-32 Only
Blue Max: Aces of the Great War 1990 Three-Sixty Pacific, Inc.

Box claims support, but seems to support Adlib only
Das Boot: German U-Boat Simulation 1990 Three-Sixty Pacific, Inc.

Box claims support, but seems to support Adlib only