Showing posts with label IBM PC. Show all posts
Showing posts with label IBM PC. Show all posts

Tuesday, April 7, 2015

IBM Character Fonts

IBM used several fonts during the life of the IBM PC line and soon thereafter.  Eventually the font support would be finalized into the standard VGA font, but there was quite an evolution to get there.

The first font set is  found in the IBM PC BIOS, starting at address FFA6E.  In PC BIOSes, whether from IBM or from another publisher like Phoenix, Award or AMI, you will always find a font beginning at this address.  This address contains the dot patterns, or glyphs, for the first, basic 128 ASCII characters. The font is always in an 8x8 pattern and essentially acts like a fallback for programs using graphics modes. You could only find the glyphs for the second, extended 128 ASCII characters on the display adapters themselves.



Note the extra pixel in the diamond character in the first row.  This is unique to the first IBM PC Model 5150 BIOS revision.  That pixel will be gone in the PC BIOS dated 10-19-81 and every other BIOS thereafter.  Note that the second 128 characters do not exist in the PC BIOS's ROM.

MDA & Hercules

MDA and Hercules-brand graphics cards share the same glyph patterns.  Their text mode uses a 9x14 text cell and you were strictly limited to the 256 characters contained in the Character Generator ROM on the display adapter.  If you wanted to use non-IBM characters with a basic Hercules Graphics Card, you would use the graphics mode.  A Hercules Graphics Card Plus or Hercules InColor Card can redefine the characters in text mode.  Here is what the demo screen looks like on an MDA or Hercules :


Interestingly, the MDA's Character Generator is an 8KB ROM chip, even though its font only takes 4KB.  The other 4KB contain the two CGA fonts described in the next section.  Apparently it was easier to use one ROM for both cards.  The IBM Part number on the chip is 6359300 or 5788005 and the ROM is a 9264 type, so it cannot be dumped or replaced by an EPROM without a pin adapter.  The Character Generator ROMs cannot be read by the system, so the glyph patterns are obtained via a ROM dump.

CGA & PCjr.

CGA text modes always use an 8x8 text cell and typically uses a thick, double-dot font.  A true IBM CGA card also has a thin, single-dot font.  This can be selected by bridging two solder pads just below the MC6845, but IBM did not provide a pair of pins to make this easy for end users.  The thick font was suitable in 40-column mode for TVs, but the thin font shows a lot of color fringing, a.k.a. artifacts.  IBM probably thought that the thin font was not such an important feature that it should be made accessible to end users.  Otherwise, many users would have probably complained that the text was too difficult to read on their TVs.

This is what the standard thick font looks like :


Note that there are four characters with minor differences between the Character Generator ROM font and the BIOS font.  They are listed as "8x8 different between card and BIOS" in the screenshot.

Here is the thin font, which may have been IBM's first attempt at ISO compliance :


The PCjr. fonts should be identical to the CGA fonts, but the thin font is not available.

Tandy 1000

The Tandy 1000 contains a Character Generator ROM that is mostly similar to IBM's CGA double-dot font, but there are some differences :


In the original 1000, the Character ROM is embedded in the Video Gate Array chip.  After the original 1000s, the Tandy integrated the Video Gate Array and MC6845s into a large VLSI chip.  This applies to the EX, SX, HX and TX.  Internal to these chips is a 2K Character Generator ROM.  In the above screenshot, the first 128 characters are correct because they are duplicated in the Tandy BIOS at address FFA6E.  It is very difficult to extract the patterns for the second 128 characters because they are not in an accessible or dumpable ROM.  Here is what the characters truly look like :



By the time of the TL and SL, Tandy was using the Tandy Video II chip and an external 16KB Character ROM with the 8x8 font and a 9x14 font that may or may not be identical to IBM and Hercules.  The Video Controller in the TL and SL and their successors could emulate MDA and Hercules text and graphics.

The Tandy default text mode uses a 8x9 text cell, but usually an 8x8 text cell can be used.  For most characters, the extra row is blank, but for some the ninth pixel row is a repeat of the eighth pixel row.

EGA

With the EGA, MCGA and VGA adapters, the Character Generator ROM would no longer be found on a separate ROM chip accessible only to the CRT Controller.  Instead, multiple character sets would be contained in the BIOS Extension ROM (for EGA and VGA) or within the BIOS (for MCGA).  As these adapters supported redefinable character sets in text mode, DOS could upload its own character set for display.

The EGA BIOS supports an 8x8 text font when displayed on 200 line monitors, an 8x14 text font when displayed on 350 line color monitors and a 9x14 text font when displayed on a monochrome 350 line monitor.  The 9x14 characters are identical to the MDA characters, but many are shifted a pixel one direction or another to produce a more pleasing spacing (kerning) than MDA.  The 8x14 characters are mostly identical to the 9x14 characters, but there are differences.  The first 128 8x8 characters are identical to the PC BIOS and the second 128 8x8 characters are identical to the CGA thick text font.  All these fonts are stored, uncompressed, in the EGA 16KB BIOS extension.

This is the EGA and VGA and (for the first 128 characters) the standard PC BIOS 8x8 text font :


Here is the EGA and VGA 8x14 text font :


And the EGA and VGA 9x14 text font :


MCGA

MCGA includes a 8x8 and an 8x16 text font.  Actually, the MCGA, in addition to the standard 8x16 font, also contains four more 8x16 fonts, none of which ever obtained popularity.  These may have been IBM's attempt to be ISO compliant.

This is the standard 8x16 font for MCGA and VGA :


In addition, PS/2 Model 30s with a revision 0 BIOS contained an earlier version of the 8x16 font.  In this font, the zero character has a slash instead of a dot.

VGA

VGA supports the EGA 8x8, 8x14, 9x14 fonts and 8x16 and 9x16 fonts.  These are all found in the VGA BIOS ROM extension, which can be 24KB-32KB.  With 8x14 and 9x14 or 8x16 and 9x16, with EGA and VGA the glyphs are mostly the same and only one set is stored in the ROM unless there is a substitution for a particular glyph.  The BIOS adjusts for the ninth pixel column, for most characters the column will be blank; for others, the ninth column will repeat whatever is in the eighth.

Here is the final, standard 9x16 VGA font :


DOS Code Pages

The PC was originally designed by and intended for English speaking countries.  Support for other languages was a cumbersome exercise in the early days of MDA and CGA.  Eventually, DOS 3.3 introduced Code Pages, which when combined with an EGA or VGA card, allowed the user to set his PC to his country's symbols.  English language users would generally be content with the default DOS code page, 437, or the alternate English code page, 850.  Code Page 850 is more friendly to Western European languages than 437 but loses some of the drawing characters.  DOS's .CPI files would contain character sets for several code pages, each of which had character sets for 8x8, 8x14 and 8x16.  EGA.CPI contains 437, 850, 852, 860, 863, 865.  Here are 437 and 850 :



While the Tandy Video II chip found in the TL and SL does not support software redefinable fonts, it has support for 512 characters instead of just 256.  (EGA can also support 512 characters).  The first 256 are the characters in Code Page 437, the second 256 characters are those of Code Page 850.  However, as Tandy 1000s after the original can be upgraded to EGA or VGA, Tandy MS-DOS 3.3 supports Code Pages in 8x8, 8x9 and 8x14 text cell sizes.

ISO.CPI contains an English-language character sets suitable for ISO-compliant fonts :


Special thanks to NewRisingSun for all his help with this blog entry.

Tuesday, March 3, 2015

PC Keyboards I Have Known

IBM PC (Model 5150) Keyboard

While not the first keyboard I have ever used, the original 83-key IBM PC Model F keyboard is easily the most sturdy and well-constructed keyboard I have ever used.  Unlike the Model M, the 83-key uses a printed circuit board on which the keyboard traces are printed.  This circuit board is sandwiched between two pieces of steel.  The keyboard controller and circuitry is located at the top of the circuit board.

The 83-key keyboard can be completely separated and put back together though the use of steel tabs.  It is not something I advise, because once the back metal plate is removed, the key plates will go out of their places.  It is very tedious putting 83 of them back in their places, and the spacebar plate is especially tough to put back in place.  The top steel plate can show corrosion from any water or ill-usage.

The keys are easy to remove.  You can pop them out with a small, flat stiff object.  Once exposed, you will see the springs.  These should be treated with care, because if they get bent out of shape, the key will no longer work correctly.  The springs of a Model F may not be replaceable by those from a Model M.

The springs in the keys are stiffer than Model M springs and require more force to register a keystroke.  The spacebar is huge and also requires a lot more force to register its press.  The keyboard is extremely heavy but does have angle adjusting feet.  The feet require a good deal of strength to move their position.  It also has four cork pads to lie on and the keyboard can be disassembled with a slotted screwdriver.  The cork pads can fall off over time.

The PC Model F keyboard is not compatible with modern PCs, even with a 5-pin DIN to a 6-pin mini-DIN adapter. It is compatible with the IBM PC/XT, Tandy 1000 TL, SL and (with adapter) RL.  The IBM PC Portable uses the same keyboard but a different type of cable.

When you see the layout of the 83-key Model F, you can understand certain early conventions.  *.* makes perfect sense when you see the . and an * key where only two keys separate them.  Users of the IBM PC AT 84-key Model F keyboard lost out, because their . and * keys are not in a straight line horizontally or vertically from each other.  IBM rectified this in the Model M keyboard, the * key is three keys above the . key on the numberpad.  Ctrl Alt Del also made a great deal of sense when the keys were in an L shape.  Finally, when certain games use F1 as a fire key, it makes sense when the function keys are on one side of the keyboard and the directional keys are on the other side.

Even so, this keyboard is very difficult to get used to after using the standard 101/104 Windows key layout.  Ctrl is not in the place where you would expect, the shift keys are way too small and the vertical enter bar is difficult to hit.  The inverted T for the arrow keys is solely missed.

IBM Model M Keyboard

I have three Model M keyboards, one 1390120, one 1390131 and one 1391401.  These are the Model Ms intended for the IBM PC/XT, IBM PC AT and IBM PS/2 series, respectively.  The first two have the silver IBM badge in the upper right hand corner, the last has a oval gray IBM badge in the upper left corner.

The Model M uses two sheets of plastic for a keyboard matrix and they are sandwiched in between a plastic front and a steel rear.  This base is held together by plastic rivets that were melted and flattened during assembly.  They have a tendency to break off after rough usage, but there are so many that it will take many hard drops before enough break off so that the structural integrity of the keyboard is compromised.  Some people have removed them and drilled screw holes in their place.  The PCB containing the keyboard controller is connected to the plastic sheets and LEDs by plastic ribbons that are easily detachable.  The keyboard also has a metal cable that screws into the back plate (presumably to prevent ground loops) and can also be detached with a flathead screwdriver.

These Model Ms use four non-slotted hex screws.  These can be removed via a long-barrel 7/32" bit.  The keyboard cable on all three is detachable and uses a type of connector called an SDL connector.  It looks like an RJ-45 plug but is wider and has plastic clips on the side that lock it in place.  Even without the plastic clips, the friction between the plug and connector is sufficient for ordinary connections.

My 1390120 was made in 1989, after the IBM PC line was discontinued.  My 1390131 is from 1986 and my 1391401 is from 1989, but made earlier than the 1390120.   It has no status LEDs, which is only occasionally irksome.  Unlike my other two Model Ms, its uses a light gray plastic for the top half of the keyboard assembly.  My other Model Ms use black, which makes the keyboard seem much dirtier if looking down into it.  It also loses the stabilizer bars for the numberpad Enter and + keys.  This is a welcome thing, since removing the stabilizer bars (for cleaning) can often break the small plastic tabs keeping them connected in the first place.  The keyboard also had a tendency to shift a little in its chassis, but a little electrical tape solved that problem.

The Model M has the innovation of using removable key caps over the key stems.  This allows the user to customize his keyboard to a much more advanced degree than the Model F keyboards.  If you want a DVORAK layout, you can make it with a minimum of fuss, assuming the operating system supports it. Removing a keycap is pretty easy.  Unfortunately, this is the reason why you often see keyboards for sale with missing keycaps.

Model Ms can be found for very reasonable prices, Model Fs command huge sums due to their relative rarity.  The Model M does not have quite the level of force required of the Model Fs, and the sound is made by the keyboards is slightly less objectionable to others.  

All three of my Model Ms are autoswitching XT/AT keyboards.  They can work in XTs or AT class PCs without any switches.  My Model Ms do not work in my IBM PC Model 5150, but it is hit and miss which Model M keyboards can do this.  Because they are PS/2 compatible keyboards, they will work in just about any PC, even ones released today, either natively or though a PS/2 to USB adapter.  They will also work in a Mac with a USB adapter.

The build-quality on true IBM Model Ms is fantastic.  IBM made Model Ms from 1986-1992 before they handed them over to Lexmark, which in turn sold the designs and the equipment to make buckling spring keyboards to Unicomp.  I highly recommend scoring an original IBM Model M.  

IBM PCjr. Keyboard 7257

My PCjr. has the second version of the PCjr. keyboard.  The 7257 uses molded keys instead of the chicklet-style keys of the original keyboard.  However, both use the same printed circuit board and the same 62 keys.    These keyboards are rubber dome keyboards, but use a capacitative based approach.  Underneath each rubber dome is a conductive carbon pad that will complete the circuit on the PCB underneath.  The PCB is really thin and the keyboard controller is attached to it.  

These keyboard connect via a wireless infrared transmitter or an optional keyboard cable,  The keyboard cable uses an RJ-11 jack on one end and a unique PCjr. connector on the other end.  Wireless operation requires 4xAA batteries and can last for a few months.  If you obtain one of these keyboards, you may be disappointed to find ancient, corroded batteries inside the battery compartment.  Possible damage to the keyboard may have been caused, but at the very least the corrosion needs to be cleaned out.  The battery contact leads will require special attention, preferably with alcohol, white vinegar and Deoxyit in that order.  Fortunately, the PCjr. keyboard is only held together with Phillips screws.  

The PCjr. keyboard is very light compared to other IBM keyboards and virtually silent because of the rubber domes.  The newer keyboard, with its keys practically touching each other and the key symbols printed directly on the face of the key is much more acceptable to people who value a traditionalist IBM keyboard.  The older keyboard had much more space over the keys and labeled the keys above the keys instead of on the keys to accommodate keyboard overlays.  

This is the only rubber dome keyboard I own, and not out of choice but it is the only keyboard that I have that will work with the PCjr.  Using a PC keyboard on a PCjr required a special adapter with circuitry to account for the low level differences between the keyboards. 

Because there are only 62 keys, the remaining keys required key combinations to activate.  The Fn key was included for this purpose, and this Fn key has been used in laptops starting with the IBM PC Convertible in 1986.  The function keys do not exist, thus the equivalent number key and the Fn key serves the same purpose.  Of course, when programs use combinations like Ctrl F5, this becomes more cumbersome.  Most of the numberpad keys were lost.  The arrow keys pulled double duty as cursor control keys.  Typing the \ key required the use of the Alt key, which DOS users probably did not appreciate.  

Using this keyboard, with its mushy keys, does not give a very good tactile experience.  Moreover, due to the slow processing of keys by the PCjr., you will often have to "race the keyboard buffer".  Fast typing or holding down keys can give you a warning beep from the system telling you that the buffer is full and your key press will not be processed.  Also, key presses are not processed during disk accesses and the keyboard is should be ignored during serial port transfers.  

Tandy 1000 Keyboard

I have two of these keyboards, one for my Tandy 1000SX and one for my Tandy 1000TX.  The 1000 keyboards are physically identical each other and to the MS-DOS compatible (but not really IBM PC compatible) Tandy 2000 computer.  Tandy saw that the 2000's keyboard was good enough for the PC compatible 1000s.  I do not know if the 1000 keyboard works in the 2000, but I know it only otherwise works in the 1000/A/HD/SX(AX)/TX.  The all-in-one Tandy EX and HX have keyboard that function and feel like the standalone 1000 keyboard and share the layout, except their status LEDs are not in the keys themselves. 

The 1000 keyboard, unlike the Model F PC/XT keyboard, has status LEDs for the Num Lock and Caps Lock keys.  It does not have a Scroll Lock key.  It is held together by Phillips screws and uses square cork feet that can fall off over time.  The keys are susceptible to plastic yellowing from UV rays.  IBM's keyboards never seemed to have this problem.  

The keyboard has 90 keys.  Its F11 and F12 and keys are unique and only generally supported in Tandy Deskmate software.  Its inverted-T cursor control keys are unique only via their low level scancodes, their translated scancodes make them appear like numberpad cursor keys.  Nonetheless, this could cause confusion, which is why some programs require you to put the Num Lock on when using a Tandy keyboard. 

The Function keys are arranged at the top of the keyboard instead of on the sides.  This makes many older PC programs more difficult to use because they were written with the function keys were on the side.  Also, there is no easy way to do *.* because there is no distinct * key, and the \ character requires that Num Lock be off (which it is by default).  Ctrl Alt Del is also awkward due to the position of these keys, but the standalone Tandy systems have a reset button.  

One extremely annoying key is the HOLD key.  The closest key on the Model M keyboard is the Pause/Break key, but on the Tandy keyboard, the HOLD key acts something like a universal pause key. Unfortunately, you may hit this key by accident and it appears like the computer has frozen or crashed.  You have to press it again to unfreeze your program.  The key is right next to the Enter key, making it easy to brush up against.

The Tandy 1000 keyboard was designed by Fujitsu.  The keys use 3rd Generation Fujitsu Leaf Switches and use a linear design.  There is a PCB for the keyboard matrix and a a black metal base for holding the key stems and sockets.  The key caps are high quality double shots, with beige over black.  You can remove them with a chip puller, but I am not sure how to remove the spacebar without damaging the two retention clips on the sides, which acts like a stabilizer bar.  None of the other keys have stabilizer bars.  

While the 1000 keyboard does not use rubber dome technology, the keys feel somewhat mushy to the touch.  There is no question, however, that the keyboard was much improved over the PCjr. keyboard.  However, the shift keys are still too small, the enter and backspace keys are also small and the layout is very cramped feeling.

Tandy Enhanced Keyboard

This Tandy keyboard was used for the Tandy 1000 TL and SL computers and the later computers in the line and its other PC compatible computers after 1987.  The Enhanced Keyboard uses the same layout as the Model M.  Like the Model M, it is an autoswitching XT/AT keyboard.  However, the Tandy Enhanced Keyboard did work in my IBM PC Model 5150, even more versatile.  They come with non-detachable cables with a 5-pin or a 6-pin connector.  Unlike the Model M, the status LEDs are underneath the keycaps of the Num Lock, Caps Lock and Scroll Lock keys.  

The keys on this keyboard feel much stiffer than a Model M keyboard.  The Shift keys and the long Enter and + keys feel like they have large dead areas which feel hard to the touch and will not register a keypress.  To be fair, my Model Ms' right shift key also has this issue to a lesser degree.  

This keyboard is a rebadged Fujitsu keyboard, and has removable keycaps like a Model M.  These keyboards use Type 2 Fujitsu Peerless switches.  The key caps pull off without too much difficulty and use dye sublimation like IBM's keyboards.

Also like a Model M, the key stems sit on top of a rubber dome membrane.  The key action is much simpler, there is a spring underneath the key stem that pushes the key back up once it has pushed the rubber dome down.  Not quite as complex as the switch over membrane technology of the Model M, which use the movement of a spring to shift a piece of plastic that makes the two membranes contact each other.  

Dell AT101W

I found this keyboard at a thrift store for $1.00 sitting on a shelf with half a dozen cheap rubber dome USB keyboards.  I was told there were no returns, but the keyboard looked in good enough shape that I felt the dollar was worth it.  The Dell AT101W is my only 104-key keyboard, and its Windows keys and Menu key are the same size as the Ctrl and Alt keys.  Unlike a 101 keyboard, all the keys on this row until the cursor keys, are convex instead of concave.  A Unicomp 104 keyboard has convex keys on this row, except for the space bar.  The Unicomp's space bar is smaller than the Dell's, consequently the other keys on this row are the same size as a Ctrl or Alt key on a Model M.  

This keyboard uses complicated black ALPS switches.  The keycaps required a tremendous amount of force to remove, and I eventually resorted to using a chip puller, which worked well.  All the large keys have stabilizer bars : both shift and enter keys, the plus key, the backspace key, the numberpad 0 key and the spacebar.  This is a bit of overkill in my opinion due to the longevity concerns, but it eliminates dead spots on the right shift key.

The keyboard is not quite as large or as heavy as a Model M, and the keycaps show signs of UV yellowing.  The PS/2 connector has a purple sheath.  Interestingly, the are three channels underneath the keyboard where you can thread the keyboard cable to the left, right or center of the keyboard.  The keyboard is held together by Phillips screws and plastic tabs that are easy to pry open.  The top of the keyboard assembly is a metal plate that showed corrosion from whatever moisture got into the keyboard, just like a Model F.  

I am using this keyboard to type this article.  Since I acquired it recently, it is the only serious experience I have had with it so far.  There is still a sound when the keys are pressed, but it does not have the same harshness of a buckling spring.  The concave of the Ctrl key has gotten some taking used to.  I do not find that I miss the Windows keys since owning a Unicomp 104 some years ago.  The Menu key has always been almost useless.  Even so, after about two days of typing on the keyboard, I find that it is a very good keyboard for the time.  I make more mistakes than with a Model M, but less than with a nasty cheap rubber dome keyboard.  

Tuesday, February 17, 2015

The Apple II's Influences on the IBM PC's Design

CPU & RAM

The Apple II uses a 6502 CPU running at 1,022,727Hz.  The IBM PC uses a 8088 CPU running at 4,772,726MHz.  Both systems use the same master clock, 14,318,180Hz, principally because both systems need an even multiple of 3,579,545Hz, the NTSC color burst frequency.  IBM could boast its clock speed advantage over the Apple, but the comparison was not strictly fair because the CPU architectures were quite different.

With RAM, IBM was on a more solid footing.  The Apple II and II+ were designed to be upgraded to a maximum of 48KB on the system board and an extra 16KB on the Language Card could be installed in slot 0.  That was the limit for the official expansions.  IBM's system could be upgraded to 64KB on the system board with only the memory chips.  It also used planar memory to test for single bit memory errors, ultimately giving a fair boast that its system was more reliable.  It also could (eventually) be upgraded officially to 10 times the amount of RAM as the Apple II.  Like the Apple IIe, the PC could not access all this memory at once but had to shift memory in 64KB segments.  The PC's CPU could do all this via its instruction set, the Apple II had to use multiple "softswitches" to bankswitch memory.  Eventually both computers were able to address megabytes of additional RAM, but using extended bankswitching methods for the Apple II and Expanded Memory boards for the IBM PC.

Graphics

The Apple II's built in graphics could display 15 unique colors in a 40x48 column low resolution graphics mode and 6 unique colors in a 280x192 high resolution graphics mode.  The Apple II's color was based on NTSC decoding, it required an NTSC color monitor to produce any color.  Typical monochrome monitors would often use green phosphors.  The human eye is most sensitive to green light and green on black produced excellent contrast for the time.  White text on a black background was seen as inducing more eye strain.

The Apple II by default only produced capital letters in its 40 column by 24 line text mode.  The keyboard's shift keys only would modify the upper row of keys.  In order to produce lower case letters, the character generator ROM would need to be replaced or a third party 80-column card would need to be installed.  Additionally, users would have to run a wire from the keyboard connector to the third joystick push button input for the shift-key mod, which allowed the Apple II to determine the state of the shift key directly.

IBM made improvements to both the text and graphics display, but the inspiration is obvious.  IBM released two display adapters, the Monochrome Display and Printer Adaper (MDA) and the Color/Graphics Display Adapter (CGA).  Both could show lowercase text and supported an 80 column mode. The MDA used a green screen with a digital connection for lossless output quality.  However, like the Monitor III, frequently used with Apple IIs, it had a slow refresh rate and long persistent phosphors to compensate.  Also, IBM added an extra row of text in its text modes, thus it displays 40 columns or 80 columns by 25 rows.

The MDA did not support color or bitmap graphics, but the CGA did.  IBM ensured that color would be supported on high quality digital color monitors (although they did not release one at first) and composite color monitors.  By using a half-filled ASCII character and different colors for the foreground and background attributes for each character cell, IBM could perform the equivalent of the Apple II's low resolution graphics mode with an extra line.  IBM's 320x200 composite color mode corresponded fairly closely to Apple's II's high resolution graphics mode, as seen in early PC ports of Apple II games like Adventure in Serenia and Ultima II.  The color choices were a bit limited, but you could still get a decent red/orange in addition to a cyan/green and a magenta.

IBM also supported a 640x200 composite color mode, and here the color choices had a much wider range. For old CGA, there were black, white, two identical grays, three blues, yellow, orange, three greens, brown, one maroon, one magenta and one pink.  In the Apple IIe with a revision B motherboard and 128KB of RAM, Apple added a similar double high resolution 560x192 mode with fifteen unique available colors. Unlike the Apple, IBM supported direct color on the high resolution mode, the foreground color was selectable.

While IBM did not have the split text/graphics modes of the Apple II, invaluable for programmers, it did allow an MDA and CGA to coexist in the same system.  Thus the programmer could see the text of his program on one screen and the output on another.  However, this was a very expensive option.

Sound

Neither the IBM nor the Apple have dedicated sound hardware.  The Apple II must use the CPU to generate all sound by sending data to the speaker output at regular intervals.  Timing is left to the CPU, keeping the CPU from working on other program routines.  That is why music is rarely heard during gameplay.  However, Pulse Width Modulation came naturally by this method to produce more complex sounds than was typically expected at the time.

IBM improved on the Apple II design because it had a timer chip connected to the speaker output.  All the CPU had to do was to set the frequency of the timer and a square wave would be output to the speaker until a new frequency value was sent to the timer.  This freed the CPU to do other tasks, making music possible during gameplay.  The PC speaker could also be controlled via direct writes like the Apple, and eventually gaming companies and other programmers used it to produce digitized sound.  Like the Apple, this sound would seldom be heard during any kind of animation or interactivity.

Input - Joystick

IBM virtually copied Apple's design here.  Their improvements were minor, IBM used more commonly available potentiometers for the directionals, four pushbuttons compared to three (one of which was taken over for the shift key mod on the Apple II), and a proper D-sub connector instead of a DIP socket.  However, it was not built in, unlike Apple's interface, and expansion slots were precious on a 5-slot IBM PC.

Input - Keyboard

IBM went their own way here, their keyboard was influenced by their Selectric typewriters and their previous mini-computers.  Apple played catch up here, as its keyboards for the Apple IIe and //c closely hew to IBM's in terms of key placement and not to its earlier ASCII keyboards found on the II and II+

Input - Mice

Mice were not yet readily available in 1981, but Apple released its Lisa computer with one in 1983 and Microsoft soon followed.  The Lisa had a built-in port for its mouse, and Microsoft released a version of its mouse for a serial port, which was often found in a PC.  Microsoft added a second button and a more ergonomic form factor compared to the Lisa mouse.  Apple released a Mouse Card for its IIe and Microsoft and other companies released bus mice, which required an interface card, throughout the 1980s and early 1990s.

Serial Communications

The Apple II had its Super Serial Card, IBM had its Asynchronous Communications Card.  The SSC was based around the 6551 and the ASC around the 8250.  Both were companion chips to their respective CPUs.  The SSC was a combination of two previous cards, one for modem use, one for printing.  The ASC could work with either.  Maximum speed for the 8250 was 9,600 bps and 19,200 or 115,200 for the 6551.  However, that 9,600 bps was reliable with the CPU doing other things thanks to interrupts, Speeds above 9,600 bps required almost all the Apple II's time.

Printers

While parallel printer cards existed for the Apple II, typically slower serial printers were used.  The Grappler 3rd party parallel interface cards were popular purchases, but a Super Serial Card was almost ubiquitous with Apple II systems.  With IBM systems, the situation was reversed.  Often people think that the PC supported only parallel printers, but this is far from the truth.

Expansion Bus

Here is another example where IBM took a great deal of inspiration from Apple II's bus design.  The Apple II has eight 50-pin connectors for expansion cards, the IBM PC has five 62-pin connectors for expansion cards.  Physically the connectors are very similar.  IBM wisely decided to give its cards extra support by designing brackets that would screw into the back of the chassis and plastic stablizers to keep the long cards in place.  The Apple II keeps cards held in only by the friction of the connector and only had a few v-shaped cut outs in the back of its case for wires and connectors.

IBM decided to make its slots generic, unlike the Apple II which mapped address space to each particular card.  While this could be overcome in the Apple II, in practice certain types of peripherals began to lay claim to each slot, SSCs in slots 1 & 2, 80 column cards in slot 3, Disk II in slot 6, mouse cards in slot 4, fixed disk storage in slot 7 and 3.5" drive controllers in slot 5.  It got worse for the IIe and //c.  IBM also gave its expansion bus IRQ and DMA controllers, allowing peripherals to assert IRQs and DMAs without monopolizing the system.  Apple II's IRQs and DMAs were implemented very simply, slot 1 got priority, then slot 2 and so forth.  Eventually, cards began to hog the limited number of IRQs available in the PC, which IBM did not fully alleviate with extra IRQs in the AT because not all systems had them.

Finally, while Apple II devoted one expansion slot, slot 0, for memory expansion, every slot in the IBM PC could be used for memory expansion.  The PC ISA bus allowed total access to the I/O and Memory Bus, making memory expansion flexible for the IBM PC, XT, Portable, AT and XT/286 and their clones.

Floppy Drives

IBM used the same floppy disks as Apple (and Atari) did, the 5.25" flexible disk.  Initially IBM's drives were single sided and held 160KB, only 17KB more than Apple's drives.  However, IBM's scheme had more flexibility than Apple's. as it soon was able to use double sided drives and expand each side of the disk to 180KB.  It also had a true floppy disk controller chip on its card, the NEC uDP765.  The Apple II Disk II controller card was made up of a small number of standard logic chips and 256 bytes of firmware and provided the bare minimum to interface with the floppy drive.

IBM and Apple disk formatting were quite different.  Apple used 35 tracks and 16 256 byte sectors.  IBM used 40 tracks and 8 or 9 512 byte sectors and 1 or 2 sides.  Apple also used Group Code Recording while IBM used Modified Frequency Modulation encoding for their disks.  That truly made the disks unreadable in the other machine without extra hardware.

Each Apple II's Disk II interface card supported two drives.  IBM's controller supported two internal disk drives, but also could support two external disk drives as well.  Rarely did an average user ever use more than two floppy drives with either system.  Both systems only booted from the first drive.

System Board and Chassis

Apple had a very open design philosophy regarding its Apple II.  There are no custom or proprietary or security chips on its board and it published full schematics and BIOS listings for just about everything outside of Applesoft BASIC.  Similarly, IBM had no custom or proprietary or security chips on its PC system board.  It did have 808x off-the-shelf support chips on its motherboard, whereas Apple relied strictly on TTL logic for the Apple II.  It also published full schematics and BIOS listings (except for the BASIC), but you had to purchase it separately.

Both Apple and IBM used switching power supplies instead of linear power supplies.  Instead of having large power bricks to cutter up your wall socket, you only need a generic grounded plug wire.  The plug will fit in an Apple or IBM machine.  IBM added a fan directly to its power supply, while Apple II users often added a fan via a "system saver".  Their supplies provided the usual voltages, +5, -5, +12 and -12.  They plugged into a connector on the board rather than being part of the circuitry.

Apple also had a totally open access policy to its computer.  The case cover had no screws, only plastic friction and whatever was on it held it in place.  IBM was also very generous here.  While its case had screws (2 then 5), this was not intended to hinder the user but to keep its industrial-strength chassis secure.  Just like the Apple II, the system board and the power supply could be easily removed.  The RAM could be upgraded on the motherboard just by inserting chips into the sockets.

Monday, February 16, 2015

Will Harvey's Music Construction Set - PC Sound Device Support

In 1984 Electronic Arts introduced a program called Music Construction Set.  It was originally written by 15 year old Will Harvey for his Apple II computer.  Electronic Arts liked what it saw and published it to great success.  It also ported the program to every popular U.S. computer with any kind of sound hardware, the Atari 8-bit machines, the Commodore 64, the Atari ST, the Apple IIgs and the IBM PC.  An upgraded version called Deluxe Music Construction Set was released for the Macintosh and Amiga.  Each version would take advantage of the native sound capabilities of the hardware.

Unfortunately, the Apple II and the IBM PC's hardware was unimpressive compared to the other machines.  They only have a speaker.  The Apple II's CPU must directly drive the speaker, so there was no CPU time left over for scrolling the screen on the Apple II version using the built-in speaker.  The IBM PC's speaker was timer driven, so it could still scroll the screen using the 1-note speaker option.

Fortunately, both the Apple II and the IBM PC supported alternatives.  The Apple II version supported a Mockingboard card for six voices of stereo sound.  Using the timer-supplied Mockingboard allowed the CPU to scroll the note sheet.  The IBM PC versions are much more interesting from a hardware perspective.

Original Release


The original release for the PC supported the IBM PC, XT and PCjr. and "COMPAQ"  Because it calibrated itself for CPU speed, it would also work in faster machines like the IBM AT., although the loading time may be increased as a result.  This program was a PC booter, and the version widely available also has Tandy 1000 support.  Tandy marketed Music Construction Set, so this version may have originally have been from Tandy.


Interestingly, the program does detect the machine it is being used in on startup and will adjust its configuration options accordingly.

On the Tandy 1000, here are the options :

Input - Keyboard; Joystick (Right Port)
Sound - 3 Notes, Scroll; Speaker - 1 Note, Scroll
Printer - Tandy Graphics Printer (IBM Mode), Epson Graphics Printer, Okidata Graphics Printer, No Printer

On the IBM PCjr., here are the options :

Input - Keyboard, Koala Pad, Joystick
Sound - PCjr - 3 Notes, Scroll; Cassette - 4 Notes, Speaker - 1 Note, Scroll
Printer - IBM Graphics Printer, Epson Graphics Printer, Okidata Graphics Printer, No Printer

On the IBM PC, here are the options :

Input - Keyboard, Koala Pad, Joystick
Sound - Speaker, 4 Notes; Cassette - 4 Notes; Speaker - 1 Note, Scroll; Cassette - 1 Note, Scroll
Printer - IBM Graphics Printer, Epson Graphics Printer, Okidata Graphics Printer, No Printer


I do not own a Koala Pad, but it uses the joystick port.  It probably would have been the smoothest way to control the icon-based interface of MCS.  Because of the special characters, a character-based printer would not work to print Treble and Bass clefs and musical notes, so a Graphics Printer was required.  Interestingly, I find no mention of the PCjr. Compact Printer in the PCjr.'s options, but if there is no parallel port sidecar, it may work as it would designated as LPT1.  The Compact Printer does support bitmap modes like the listed Graphics Printers.  A list of the printers it has been tested with can be found in the Reference Card.  Music is printed vertically down the printer page, rather than horizontally as one would expect sheet music to print.


The 4 Notes selections used up all the available CPU time, so the music did not scroll when played with these modes.  For the PCjr and Tandy, the 3 note option, using the built-in sound chip, was obviously the way to go.  I do not know why they even bothered with the cassette option for the PCjr., a person with a cassette player could record the 3-voice music just as easily.  I do not know if the cassette option is still selectable on an IBM PC/XT, which does not have a cassette port and can be uniquely identified.  Most generic PC compatibles identify themselves as an IBM PC, so the cassette option is still there although it will not work.


Despite being deemed a PC booter, MCS is tied very much to DOS.  The disk is readable in DOS, but only the song files will be seen.  When loading and saving songs, a DOS prompt is used and the commands are very DOS and BASIC like.  A standard DOS formatted disk can save and load more songs.  Oddly, the
loading screen uses a 40-column mode, probably for the PCjr.  Full instructions for use in the PC can be found in the Reference Card.  The manual and reference card for the IBM PC version can be found at replacementdocs.com.  Listings for the sample songs can also be found in the reference card.


IBM Music Feature Card Version


In 1987, Electronic Arts released a revised version of Music Construction Set for the IBM Music Feature Card.  I was able to find a download of this program.  This version of MCS is a true DOS program, although presumably still protected.  If you load a mouse driver beforehand (CTMOUSE.EXE 1.91 works, make sure your COM1 settings are standard 3F8/04), you can use a Microsoft protocol-compatible mouse to control the cursor.  The movement is still a bit rough and only supports one button, but better than a joystick.  Using the keyboard will allow for fine placement of notes.  PCjr. support was removed, but the program still works on an IMFC-less PC and a Tandy 1000.


The IBM Music Feature and mouse are autodetected, but if one or the other is not present, you still have some options.  On the IBM PC, the sound options are Speaker - 1 Note, Scroll; Cassette - 1 Note, Scroll.  On the Tandy 1000, the options are the same as they were for the non-IMFC version.  Koala Pad support is not present, but joysticks are still supported.


The loading screen for the IMFC version is now using 80-columns and has a text based cursor select system.  It was very forward thinking for EA to provide a command list on the screen.  Also, if the settings button (the plug) is clicked after the program starts, a menu displays that allows you to select the instruments to be used from the 240 voice patches available on the IMFC.  The program does not appear to supply custom voice patches, even though the IMFC has room for 96 of them.  When you play back a song, it will show one of the voice patches assigned to the treble and bass clefs.

The Setup Screen allows to choose up to 13 voices for customization.  You can customize each instrument from the IMFC by the following :

Pan : L, L+R, R
Portamento : Off, Slow, Med., Fast
Vibrato : Off, On
Octave : -2, -1, 0, 1, 2

While you can only use two instruments at a time for playback, the SO sliders allow you to select one instrument for each stave on the Music Screen.  On a PCjr. or Tandy, the SO sliders had 13 steps which determined the character of the sound for each stave.  With the IMFC, the name of the instrument will change if you raise or lower the respective SO slider.  The VO slider does the same for the volume of the stave on either the PCjr., Tandy or IMFC.  Because DOSBox does not support the IMFC, I cannot post a screenshot of the Setup Screen.  Unfortunately, the instruments selected cannot be changed during the song, but this is a handy way of quickly trying out new instruments.

Most of the songs found on the original version can be found on the IMFC version, but weirdly Daisy and the Canon in D Major are not present.  The modern songs are not present, but there are several other songs, such as Dixie, Yankee Doodle Dandy and the first few bars of M.U.L.E.'s theme song.  Mystery, Buggy, Rhythm and Scales are present.  Songs from either version will not necessarily sound the same as the song on the other version on the same hardware.

Why no further versions?

MCS had always tried to provide broad sound support, and this version for the IMFC was the first and last time the program was updated to support a PC sound peripheral.  Electronic Arts did not attempt to release a version for the Adlib.  In 1987, IBM was still considered a sure thing and Adlib was barely known.  The IMFC filled a niche with the IMFC by providing a basic, easy to use music program.  This program was especially useful to younger people.  However, considering the rarity of both the IMFC and this version, it was no great seller and EA probably lost money on the conversion.  By the end of 1988, when an Adlib version would have been feasible, MCS was looking a bit long in the tooth.  Adlib also had its Visual Composer software that took many cues from MCS.  EA itself was transitioning from a publisher-assisted producer to a fully-fledged game studio.  The end result was that this was the end of the venerable MCS.

Sound Samples

All captured from real hardware.  No post-processing of any sort has been done (that I know of), so you may want to turn the volume up for the Tandy recordings.  For the PC Speaker recordings, I used my cassette cable to capture the equivalent of what would be heard through the speaker.  I used a Tandy 1000SX for the Tandy recordings and used my IMFC in my IBM PC.

IBM PC Speaker/Cassette 1-Note Original







IBM PC Speaker/Cassette 4-Note







PCjr./Tandy 3-Note Original Version







PCjr./Tandy 3-Note IMFC Version







IBM Music Feature Card







Saturday, February 14, 2015

The IBM Music Feature Card - Overpriced, Underperforming, Yet Insanely Desirable

The IBM Music Feature Card (IMFC) was one of IBM's last products for its IBM PC/XT/AT family.  Released around March, 1987, it was an 8-bit card that could be used in its PC line, which was deprecated on April 2, 1987 and also in its IBM PS/2 Model 30.  IBM's focus had firmly shifted to its PS/2 line and spent most of its R&D developing Microchannel expansion cards.  In 1990 IBM began releasing systems with ISA slots that could fit the full-length Music Feature card, but by that time, the card has been discontinued.

The IMFC was not cheap at $600.00 ($1,250.00 today) when it was introduced.  This was not uncommon, buying IBM was not cheap.  The card was designed by Yamaha and contained at its core a Yamaha music chip.  The card was also consisted of a complex design of off the shelf logic chips to implement a MIDI interface and features useful to a hardware developer.  Because IBM had exclusive access to Yamaha's chip, the YM-2164 OPP, and the card was incredibly expensive and difficult to clone, no clones ever appeared on the market.

IBM barely marketed the card at all, and IBM products appealed to businessmen and white collar types. Musicians were typically anything but. For little more than the cost of the IMFC, a musician could buy a complete Atari 520ST system, which included a built-in MIDI Interface.  Thus the card was doomed to failure in the marketplace.

IBM still deserves credit for making the first sound card expansion for general PC use.  You certainly could use the card in a non-IBM PC, so long as you had a slot and room to fit it.  Unlike the PCjr. sound chip or the PCjr. Speech Adapter, IBM's card was not tied to a specific computer.  Other PC expansion cards that generated sound probably predated IBM's card, like the Mindscape Music Board included with the PC version of the Bank Street Music Writer, but the hardware was only intended for use with the manufacturer's software. IBM and Yamaha provided a few utilities for the IMFC, including the Compose and Playrec software.  IBM's Storyboard Plus 2.0 has IMFC and PS/2 Speech Adapter support.  Software for the card can be found at ftp.oldskool.org/pub.misc/Hardware/IBM/Music Feature Card.  The card came with a diagnostics disk and can be tested with a late IBM PC/XT Advanced Diagnostics disk.  Some software outside IBM and Yamaha also supported it. Electronic Arts released a special, rare version of Music Construction Set for the card.  These include MIDI sequencers like Cakewalk Pro ans Voyetra Sequencer Plus, most of Sierra's games from 1988-1990.

The card itself has two features.  First is an 8-voice sound generator centered around the YM-2164.  This eight voice polyphonic/multitimbral chip can access 240 preset instruments and 96 user created instruments. It generates sound through four-operator FM synthesis and supports stereo sound output.  The sound generator is identical to the Yamaha FB-01 MIDI Module with the exceptions that the FB-01 can save user patches and configurations and has external controls.  The second is a MIDI interface that is used to communicate with the sound generator and other devices.  Windows never supported the MIDI Interface or the card's sound hardware.

The IMFC came with a MIDI breakout box that consisted of one MIDI IN, one MIDI OUT and one MIDI THRU port, all DIN-5s of course.  It allowed the MIDI interface to control external MIDI devices and external MIDI devices to control the sound hardware on the card.  It connected to the expansion cable with nine wires and uses a DE-9 connector.  There is no circuitry in the breakout box, so it can be easily replicated.  IBM provided full documentation for the card's features in its Options and Adapters manual, and it can be found online at http://www.minuszerodegrees.net/  The breakout box is even rarer than the card itself.  It has a PS/2 design.

Competition soon appeared in the face of the Adlib Music Synthesizer Card.  The Adlib at first was marketed as a music creation tool with its Visual Composer software.  The Adlib card uses a two operator FM Synthesis chip from Yamaha, the YM-3812, but Adlib intentionally scratched off the part number to obscure the identity of the chip.  Unlike the IMFC, the Adlib was a simple card which required programmers to access the sound chip's registers directly.  The Adlib was introduced at $219.99, roughly 1/3 of the price of the IBM card and came with software as well.  The Adlib was not a huge hit until it started to be adopted for games toward the end of 1988.  Creative Technology also sold its Creative Music System package as well around this time, but its PSG based sound was not well received and it was not successful.  Roland had been marketing its MPU-401 Interface for several years and had interface cards for the IBM PC and any clone with an ISA slot, but it could be used with any MIDI hardware.  In the days before General MIDI, MIDI capabilities and features varied tremendously from manufacturer to manufacturer and product to product.

The IMFC has a pair of dipswitches to set the address, and there are only two official selections.  If switch one is "OFF", you get the default base address of 2A20 and if "ON", you get the alternative address of 2A30.  Because many cards or systems only decode 10 bits of the I/O address bus, these selections will frequently overlap with I/O addresses 220, 230, 320 and 330.  You may issues if you have a Sound Blaster or a Roland MPU-401 or a Gravis Ultrasound installed at the same address.  It also uses an IRQ, any from 3-7.  Yamaha's software uses the IRQ and is very speed sensitive and does not work in a 386 or faster system.  Sierra's software does not have a problem with system speeds and the IMFC.  Officially, IBM allowed for two IMFCs in a single system, the other two I/O address settings were not documented.  IBM PC/XT slot 8 operation is not supported and it does not fit in that slot or slot 7 in an IBM PC/XT case anyway.

IBM Music Feature Breakout Box
The IMFC with its breakout box has two small advantages over other "modules on a card" like the Roland LAPC-I, SCC-1 and MPU-401AT with a daughterboard.  First, the sound generator can accept sysex from its MIDI IN without any settings in the MIDI interface needing to be changed.  Second, the sound generator can receive MIDI input and send MIDI output.  The sound generators on the Roland devices can only receive MIDI Input, they cannot send MIDI output.  Therefore, you cannot simply dump a game's patches from a LAPC-I by transmitting a dump receive command to the sound generator, the data that the sound generator wants to send will go nowhere.  This allows the card to be used as an FB-01 just by powering on the system.  Additionally, unlike the FB-01, you do not need to turn the memory protection to OFF to allow the sound generator to receive custom patches and configurations.  However, you may need to reset the system with the IMFC between games.

If the IMFC card had been only supported by IBM and Yamaha, it probably would have faded into obscurity and have been almost forgotten.  The IBM marquee would have ensured some level of vintage recognition, but Sierra On-line gave it a lot more.  Sierra, when it developed its SCI engine, focused on supporting music devices for every computer user's budget.  Uses with no sound card would have to make do with the PC Speaker and PCjr. and Tandy 1000 users could hear 3-voice music from their system. Sierra identified the Adlib Music Synthesizer as an appropriate low-end card and the Roland MT-32 with the MPU-401 as a high end solution.  IBM's card was the only other device with any meaningful market penetration and a published Technical Reference manual, so Sierra supported it as well in its SCI engine adventure games, starting with King's Quest IV in September, 1988.

Unfortunately, chip music was not the strong suit of Sierra's in house or contracted musicians.  Their strength was with the MT-32, hence their sound tracks were optimized for that device.  The music for its games simply was not as impressive on the Adlib and Tandy chips.  However, because the Adlib was much cheaper than the MT-32, Sierra at least tried to make their music sound decent on it.  Tandy 1000 systems were still very popular and Sierra was still a strong supporter of that PC offshoot at this time.  If the MT-32 was Sierra's first tier sound device, the Adlib and Tandy were the second tier.  Unfortunately, the IMFC was definitely in the third tier.  Sierra did not spend sufficient resources to make its music sound good on the Music Feature.  Its music scores played to the strengths of the MT-32, not the advanced FM synthesis of the IMFC.  It spent even less time with later supported music devices like the CMS Game Blaster, the Casio MT-540/CT-460/CSM-1 and other synthesizers.

There is no question that the hardware inside the IMFC can be used to make great music, even though access to its registers is indirect via voice parameters.  The YM-2614 is in the same family as the YM-2151 OPM chip.  A very close cousin is the YM-2612 found in the Sega Genesis and Fujitsu FM-Towns.  The YM-2151 was used as one of or the main music chip in countless arcade games and the Sharp X-1 and X68000.  Even the YM-3812 in the Adlib, Sound Blaster and their clones could be coaxed, in the right hands, to produce memorable tunes.  Unfortunately, Sierra's musicians were not the "right hands".  In fact, most of Sierra's games sound much better on the Adlib than they did on the Music Feature, despite the latter having far more potential.  However, the MT-32 and Roland MPU-IPC, at $550.00, was cheaper than IBM's card and totally blew it out of the water once you heard both in any Sierra game.  Ken Williams, President of Sierra On-Line, Inc., rather obliquely recognized this in his letter included in Sierra's games discussing the advantages of sound cards :

"A third card, from IBM, is also of exceptional quality, and out products do support it, but it carries a high price when compared feature by feature with the Ad Lib or MT-32."

Sierra sold the Ad Lib and MT-32 directly but told customers to order the IMFC directly from their local IBM dealer.

Sierra eventually supported the external FB-01 when attached to a Roland MPU-401 interface. The MPU-401 MIDI Interface is totally incompatible with the IMFC MIDI interface.  Most of its games support or can be easily be made to support this music through either the Music Feature or the FB-01.  Here is a list of games and what each supports :

SCI0 Games IMFC FB-01 Notes
King's Quest IV Y New Only v1.003.006 or later for FB-01
Leisure Suit Larry 2 Y New Only v1.002.000 or later for FB-01
Leisure Suit Larry 3 Y Y
The Colonel's Bequest Y Y
Space Quest III Y Y
Codename: Iceman Y Y
Hero's Quest/Quest for Glory Y Y
Hoyle's Official Book of Games Y Y
Police Quest II Y Y
Conquests of Camelot Patch Patch
King's Quest I SCI N Y Crashes often with IMFC
Mixed Up Mother Goose Patch Patch




SCI1 Games IMFC FB-01 Notes
Jones in the Fast Lane Patch N
King's Quest V Patch N
Quest for Glory 2 Patch N




Game Arts/Falcom Ports IMFC FB-01 Notes
Sorcerian Buggy Buggy
Thexder 2 Patch N
Silpheed Y New Only v2.x or later for FB-01




SCI0 Demos and Previews IMFC FB-01 Notes
1988 Christmas Card Y N
Astro Chicken 1 Y Y
Astro Chicken 2 Y Y
Fun Seeker's Guide Y Patch

For the entries in the above table marked Patch, if the game has a IMF.DRV file, all it needs for FB-01 support is the FB01.DRV file, which can be found from another game using the same engine.  If the game does not have an IMF.DRV file, then not only will it need that file but also a file named PATCH.002.  If you can find an FB01.DRV from another game with the engine, it should work as well.  If there is an N underneath the FB-01 column, that means that no working FB01.DRV works with the game. 

The games Sierra released in 1990, for the most part, only supported the IMFC by patches.  After 1990 Sierra discontinued support for the IMFC and other MIDI devices which it had previously provided some support.  By that time, IBM had discontinued the card.  At that point, it only served as a MIDI device which had no Windows support, so interest must have withered away.  No game companies other than Sierra ever supported the IBMC.

When I acquired mine around 2007, I was able to get it for about $120.00 on ebay from one of those crusty sellers who take the worst cell phone pictures and have a vastly inflated sense of value for most of their stuff.  I later found the breakout box for about $40.00.  On January 14, 2016, a fully boxed and complete Music Feature went for $1,225.00.  Cards with the breakout box can go from anywhere from $300-$880.  I believe there are at least twenty specimens of the card known to exist in the hands of various collectors.  Considering what the IMFC was capable of, these prices are unreal.  

Here are links with varied samples of the card's output :

The rather plain, PS/2 style box the card came in can be seen in this video :


If you ever come across someone advertising a CIB Music Feature, you should expect to find inside the box the card itself, the breakout box with an IBM logo, a black retaining bracket to support a full length card, the installation manual and diagnostics diskettes.  The CIB Music Feature that sold for $1,225.00 came with [PC & XT] Diagnostics v2.24, Diagnostics for IBM Personal Computer AT and IBM Personal Computer XT Model 286 v2.07, both on 5.25" floppies and IBM Personal System/2 Model 30 Starter Diskette v1.03 on 3.5" disk.  The included disks and version numbers may vary a bit

IBM Music Feature Cards generally come in two varieties, one with a socketed EPROM in U34 and another with a Mask ROM in U34.  The EPROM cards came earlier than the Mask ROM cards.  However, there are two revisions of the Mask ROM card, the difference being a fix to the diode/resistor/capacitor jumble at C26.  In the older card, there is a diode and a resistor soldered to the legs of the capacitor in a hot-fix way.  In the card I own, the later Mask ROM card, there are plated holes and labels for the resistor and diode.  All the EPROM cards I have seen appear to be the same revision.  I do not know if there are any revisions to the code in the EPROM, but all photos I have seen of the EPROM seem to have the same label over the erase window.

IBM Music Feature Card - Earlier Edition (Wikipedia image)
IBM Music Feature - Later Edition

If you need documentation or diagnostics for the Music Feature, you can find everything you need here :

ftp.oldskool.org/pub/misc/Hardware/IBM/Music Feature Card - has the technical reference and programs you could have obtained separately.

http://www.ibm-pc.org/manuals/ibm/options/options.htm - has the installation manual which came with the Music Feature

There are no drivers for this card, the card only came with Diagnostics disks. You can find them here : http://www.ibm-pc.org/diagnostic/ibm/ibm.htm Always use the latest dated version.

If you have a Music Feature Card and the EPROM becomes corrupted, you can burn a new EPROM with the firmware located here : http://www.ibm-pc.org/firmware/ibm/options/options.htm

Saturday, January 3, 2015

Everdrive N8 - A Most Worthy NES Multicart



Early in 2013, Krikzz released his Everdrive N8, the latest in the famed Everdrive series.  Unlike most of his Flash Carts, the Everdrive already had serious competition from the NES PowerPak, released in 2007.

Advantages compared to the NES PowerPak :

The Everdrive N8 has several advantages over the PowerPak.  First, it uses SD (NES version) or microSD (Famicom version) cards.  SD cards are cheaper and easier to find then the Compact Flash carts that the PowerPak supports.  They do not connect to a pin connector, so it is much less likely you will damage the connector.  SD cards are supported up to 32GB and it supports FAT16 or FAT32.

Second, it comes in a Famicom variety, which is awesome for those of us with a Famicom AV.  Krikzz even sells translucent Famicom cartridge shells.  You can see the LED showing the cartridge's operation.  The Famicom version supports mixing external audio emulated in the cartridge with the Famicom's internal audio.  Krikzz sells a 60-72 pin adapter that will allow you to use the Famicom version inside a NES.  You will only need to slightly modify a standard NES cartridge shell to make the two boards fit.  You can get the best of both worlds here.  If you wire Famicom connector pin 46 to NES front loader pin 51 or NES top loader pin 54 and solder the appropriate resistor to your system, you should be able to obtain expansion audio from your NES.

You can use the PowerPak on a Famicom or Famicom AV, but all the 72-60 pin converters I have tried are very poor.  The best one is too thick for the cartridge connector, and the rest use the cheapest plastic covers, have no supporting cover, and do not connect all the necessary pins or their edge pins are too short.  Krikzz's 60-72 pin converter is excellent and fits inside a NES cartridge shell very well.

Third, the Everdrive N8 has an advantage in picture quality over the PowerPak.  With the PowerPak, there are faint jailbars present whereas on an Everdrive they are much less noticeable. I can see faint jailbars (sitting three feet away from a 19" CRT TV) in the blue background of Super Mario Bros. (real cart) on a front loader, but I can barely notice them on the Famicom AV with the Everdrive loading Super Mario Bros. With the PowerPak the jail bars are quite noticeable, although it is not as bad as a NES Top Loader.

Fourth, the Everdrive supports automatically backing up saves to its RAM.  It has a replaceable coin battery to allow this function to work.  The PowerPak requires a reset to the menu.  If you do not reset, you lose the save.  Also, the PowerPak used to (and may still) require that the user create a blank save file, the Everdrive creates a new file automatically.  One exception is FDS games, both flash carts require pressing reset to save data onto the .fds disk images.

Both the PowerPak and Everdrive N8 support the entry of five Game Genie codes, but the Game Genie functionality does not work with every PowerPak mapper set.  The Everdrive supports Save States officially, whereas the PowerPak's save state support only comes with 3rd party mappers.  In order to play the two MMC6 games, Startropics and Startropics 2: Zoda's Revenge, the save state feature must be turned off in the options menu.

The Everdrive N8 supports file sorting without using a program, the PowerPak requires a program like DriveSort to accomplish the same thing.

BIOS updates for the NES PowerPak require the cartridge to be shipped back to retroUSB.  BIOS updates for the Everdrive can be performed with an SDHC card.  Only Everdrives shipped in the first two weeks would need a BIOS update.

The NES PowerPak costs $135.00 from retroUSB, the Everdrive N8 costs $119.00 from retrogate (including a is with a shell), so it is a bit cheaper.

The NES PowerPak has been around longer, and it has had mapper contributions from several people, loppy and thefox in particular.  On his own, Bunnyboy's PowerPak mappers never implemented FDS functionality, MMC5 or any of the expansion audio chips.  Krikzz's Everdrive has not had any mapper contributors other than Krikzz, even so he has still has implemented an impressive number of mappers.  There is little of importance, mapper wise, that is implemented in the PowerPak that is not in the Everdrive.  His mappers support games like Salamander, which is superior to its NES counterpart, Life Force but is the only game using its mapper.  Krikzz's mappers also support proper saving for the official Final Fantasy I & II combination cart, even though that is outside the iNES specification.  In fact, judging by the mapper support grid, every official Japanese game, excluding MMC5 and VRC7 games and some really weird stuff, is supported (it won't play sampled sound from games like the Japanese Bases Loaded series, nor will the PowerPak but most emulators don't bother with that either.)

Because there is only one source, you don't have to play the game of find a mapper file that will make your game work with an Everdrive.  Things are much easier as a result, and rarely has there been a mapper regression, which cannot be said about the PowerPak mappers.  In the seventeen months between the earliest and the latest OS versions, the Everdrive has come a long, long way.  I could not get every important MMC3 games that used the scanline counter to generate an IRQ (split screen effects) to work properly in the PowerPak, regardless of mapper I tried except by using thefox's original save state mapper.  I have no such complaints for the Everdrive.

The Everdrive does not have the issue of corrupt background tiles in certain games like Noah's Ark, which may be an insolvable problem with the PowerPak.  I could never get FDS Metroid to work in the PowerPak, but it plays fine in an Everdrive.

Disadvantages compared to the NES PowerPak :

While the Everdrive N8 supports some expansion audio chips, the resulting audio is sometimes less than ideal. It supports the FDS, Namco 163 and Konami VRC6 expansion audio.  It does not support MMC5 expansion audio (MMC5 works pretty much only for Castlevania III).  Note that the working MMC5 mapper (loopy's) for the PowerPak does not support its expansion audio either.  :

Loopy's Sunsoft FME-7/5B's PowerPak mapper supports Gimmick!'s expansion audio, the save state mappers cannot due to lack of space on the FPGA.  Recently, a user on Krikzz's forums named Necronomfive made a Sunsoft FME-7/5B mapper which supports expansion sound, and it sounds really good.  Get it here : http://krikzz.com/forum/index.php?topic=3245.msg31931#msg31931

Neither flash cart supports the VRC7 mapper or its sound.  The PowerPak mappers have more accurate expansion audio.  The PowerPak FDS support will also let you delay the automatic disk swapping to allow the introductions of Zelda no Densetsu and Doki Doki Panic to work. However, the Everdrive can set its emulated audio output mixing to low or high, which may be useful for late Famicoms and all Famicom AVs, which supposedly have quieter internal audio output.

The PowerPak is compatible with a CopyNES add-on, in fact it can use CopyNES to update its bootrom.  retroUSB sells both.  The Everdrive N8 refuses to work in a CopyNES-modded system.  On the other hand, the Everdrive is more friendly to clone systems than the PowerPak.

The PowerPak can play NSF audio files, the EverDrive requires them to be compiled into a ROM, and that is not easy to do.

Games Currently Not Working as of OS v13 (USA/Europe, Japanese Games not included) :

Too Large:
Action 52 (1.5MB of PRG-ROM + 512KB of CHR-ROM, Everdrive and PowerPak only support 512KB of each, will never work unless broken up)

Unsupported Mappers :
Racermate Challenge II (Mapper 168)
Death Race (Mapper 144)
Nintendo World Championships (Mapper 105)
Super Mario Bros + Tetris + Nintendo World Cup (Mapper 37, PAL Only, play separate releases)

The PowerPak supports Death Race and will play the Nintendo World Championships cart, but the timer can only be changed by using an alternate MAP069.MAP file.

Unsupported Mapper Feature :
Bandit Kings of Ancient China (MMC5 EX-RAM not supported, too glitchy to play)
Gemfire (ditto)
L'Empereur (ditto)
Nobunaga's Ambition II (ditto)
Romance of the Three Kingdoms II (ditto)
Uncharted Waters (ditto)
Laser Invasion (MMC5 game, glitchy graphics during takeoff sequence, works properly on PowerPak with loopy's mapper)
Mickey's Safari in Letterland (MMC3 Acclaim clone, status bar shakes)

All the above work on the PowerPak without glitches except for Mickey's Safari in Letterland, Uncharted Waters and Bandit Kings.

Using Game Genie codes requires a bit of explanation.  First, you must select the ROM you want to play.  Do not use the Select + Load option.  Then go into the cheats menu by pressing select.  In the cheats menu, you hold down B and use the D-pad to select a letter.  If you have swapped A/B in the options menu, you must use A instead.  The on-screen instructions do not change to reflect this change.  When you have entered all the codes, you exit out of the cheat screen using select and then A or B.  When you get back to using a cursor to select a ROM, press start to load the game and the cheat code will be applied to it.

Most people today use the No-Intro set for the basic set of properly dumped ROMs.  However, even with this set there are games that will not work.  Some do not work properly in emulators or flash carts because they lack headers.  If the game's size is an even number like 24KB, 32KB, 40KB, 48KB, 64KB, 80KB, 96KB, 128KB, 160KB, 192KB, 256KB, 320KB, 384KB, 512KB, 640KB, 768KB or 1,024KB, then it will appear as a bad ROM.  Every NES ROM file should be 16 bytes larger than the pure dump, thus appearing as 25KB, 33KB, etc.  Adding a NES header is easy enough.

Other games do not work properly, or at all, because they have the wrong information in their headers.  The header format flash carts support is the iNES 1.0 format, established back in the late 1990s when so much was yet to be learned about NES and Famicom cartridge hardware.  A header tells the emulator or flash cart how much PRG-ROM, CHR-ROM (if any), and PRG-RAM (if any) the cartridge has.  It will also tell the emulator whether the PRG-RAM is battery backed and the mirroring scheme the cartridge uses if hardwired or special (horizontal, vertical or four-screen).  It also has some useless and unsupported bits to inform an emulator whether the game is an NTSC or PAL game, if it is a Vs. System or Playchoice-10 game and whether it contains a pirate trainer.

Often, if a game does not work on an accurate emulator like Nintendulator, it will not work on the flash carts.  Sometimes this is because the header has the wrong mapper number assigned to it or has the wrong mirroring information.  The NES Cart Database has the appropriate information fort almost every NES and most Famicom games.  You should always use it, (Panesian games all use Mapper 3, with Bubble Bath Babes using Vertical mirroring and Hot Slots and Peek-A-Boo Poker using horizontal mirroring) except for the following :

Mapper 71 Camerica/Codemasters Games

Many of these games will experience severe glitches.  Examples include :

Big Nose the Caveman (major graphical glitches on left side of screen, should not see any)
Micro Machines (substantial graphical glitches for standalone cart version, Aladdin Deck Enhancer version just shows a gray screen)
Fantastic Adventures of Dizzy (standalone cart version crashes in seconds of starting gameplay)
The Ultimate Stuntman (severe graphical glitches, similar to Micro Machines)

Today, all Camerica/Codemasters games, with four exceptions, use Mapper 71.  They used to use Mapper 2 and the extra bits of Mapper 71 are really not important for emulation or a flash cart (with one exception). These problems will go away if you change the mapper to Mapper 2.  Fire Hawk is the sole exception, it must be Mapper 71 and appears to play fine.  The Quattro games (Action, Adventure, Sports) use Mapper 232.

Game Patch Required

Cheetamen II - Use Mapper 228 to Mapper 1 patch here : http://thegaminguniverse.org/ninjagaiden4/mottzilla/mapper.html to get this game to work
Cybernoid - Use or permanently patch the ROM with Game Genie code SXZNZV to get the game to work properly after you change the sound mode from sound effects to music.

These games work OK on the PowerPak without patches.

Four-Screen Mirroring Games

With the current OS, the two US four-screen mirroring games must use Mapper 04.  This is always the case for Rad Racer 2, but Gauntlet ideally uses the less advanced Mapper 206.  Change it to 04, which will harm nothing as far as Gauntlet goes.

Third Party Mappers

A few individuals other than Krikzz have released mapper files for the Everdrive to improve expansion audio and allow games to work, see here : http://krikzz.com/forum/index.php?topic=3405.0

VRC6 Expansion Audio Improvement
Akumajou Densetsu
Esper Dream 2
Madara

Sunsoft 5B Expansion Audio Support
Gimmick!

VRC7 Functionality :
Lagrange Point

Mapper 31 Support
NSF Carts

Mapper files use the RBF extension and always use three digits, hence 033.RBF, 249.RBF.  Each file may contain the configuration information for more than one mapper, unlike the PowerPak.  A file called MAPROUT.BIN assigns each iNES mapper to a RBF file.  This file is a 512 byte file and each value in the first 256 bytes corresponds the relative position on the iNES mapper grid here : http://wiki.nesdev.com/w/index.php/Mapper#iNES_1.0_mapper_grid

Mapper files usually contain mappers with similar functionality, so many of the Konami mappers will use 022.RBF.  Here is a list I made of the RBF files and the mappers they support :

RBF  - iNES Mapper #

000 - 0, 3, 7, 11, 13, 15, 34, 36, 38, 66, 70, 71, 72, 75, 77, 78, 79, 87, 89, 92, 93, 96, 97, 101, 113, 144, 146, 148, 150, 151, 152, 164, 184, 185, 202, 212, 219, 227, 232, 234, 241, 242, 243
001 - 1
002 - 2, 40, 41, 42, 57, 58, 61, 86, 91, 94, 99, 107, 133, 178, 180, 188, 193, 200, 201, 203, 231, 240, 246
004 - 4, 220
005 - 5
009 - 9, 10
019 - 19
022 - 21, 22, 23, 25, 85
024 - 24, 26
028 - 28
031 - 31
032 - 32
033 - 33, 48
064 - 64
065 - 16, 18, 65, 67, 68, 73, 76, 80, 82, 88, 95, 112, 154, 206, 207
069 - 69
085 - 85
090 - 90, 211
118 - 12, 41, 47, 74, 115, 118, 119, 158, 182, 189, 191, 196, 205, 245

If the value for the mapper is FF, then it is unsupported.  If you want to add a mapper, you must convert the decimal number into hex, then enter the hex value in the appropriate byte in the MAPROUT.BIN.

Japanese Game Support :

As of OS v13, the following games have issues :

Incomplete Mapper :
Lagrange Point (game is playable but VRC7 expansion audio not yet implemented)

No PowerPak mapper supports the VRC7 games at all.  If you have a HiDef NES mod, you can use it to emulate the VRC7 audio for Lagrange Point.  You will have to revert to OS v3 for the EverDrive to work with a HiDef NES mod.

Glitches :
Fire Emblem (MMC4 game, glitches on right side of window borders)
Fire Emblem Gaiden (MMC4 game, glitches on right side of window borders)

Nonworking :
No Famicom MMC5 game can be expected to work correctly.
Any game using the Bandai mappers 153, 157 and 159 will probably not work.
Study Box will never work properly on any Flash Cart because it embeds a cassette deck.

Fix Required :
Galaxian - Must be an overdumped 24KB ROM, real cartridge is only a 16KB ROM, which is outside the iNES specification.  GoodNES's [!] rom will work.  Also has a Rev. A.  Same fix required for PowerPak.

Conclusion

The Everdrive N8 is an excellent product that has been well-implemented and boasts a very impressive array of mapper support.  With the proper ROMs, it will make your NES or your Famicom work with well over 1,000 games.  It has given the NES PowerPak serious competition and may yet completely eclipse it.