A Brief Overview of the History of Disk Drives and DOS
MS-DOS assigns drive letters to disk drives, whether they are physical drives or virtual drives. All user-level drive access through DOS is via drive letters. This is why to copy a file from drive A: to drive B:, you can type at the command prompt :
copy b:\myfile.txt a:
The PC BIOS itself had no concept of drive letters, all it originally acknowledged were floppy controllers. (The PC and PCjr. BIOSes also had routines to interface with a cassette recorder, but this was not accomplished with specialized hardware and is unique to these systems). The PC Floppy controller could originally support two internal drives and two external drives, but few systems ever used a four drive system.
Due to the flexibility of the PC expansion bus, just about any kind of storage device could be made to work with the computer. A tape drive, for example, may attach to a specialized interface card. Later, it would likely be SCSI compatible and attach via a SCSI interface card. An internal hard drive could use an ST-506 MFM or RLL style controller with the separate command and data ribbons, an IDE interface card or a SCSI interface card. In order to do anything with these devices, either the PC BIOS had to be aware of them, they had to have BIOS extension ROMs on their interface cards, device drivers for the operating system with which they were intended to work or a specialized program that could talk directly to the card via I/O ports or its upper memory range.
In the days of PC-DOS 1.0-3.2, it would have been very unlikely for drive letters to get above C:. This is because most computers used two floppy drives at best and hard drives were not yet ubiquitous. A standard MFM controller could control a pair of drives, but not all systems had four half height 5.25" drive bays. MFM controllers were generally limited to internal hard drives. More importantly, hard drives cost a great deal in the 1980s, often half the price of a computer was due to the purchase of hard drives.
The use of the letters of the alphabet to access drives seemed reasonable at the time. The concept of someone having twenty-six physical drives in a system was still more fantasy than reality. Then DOS 3.3 came along with support for the creation of logical drives within the extended partition. Prior to DOS 4.0, each drive letter could only recognize 32MB of storage. Thus you could have one primary 32MB partition, the boot partition, and an extended partition up to 2GB. Within the extended partition, you could carve out logical drives, each no larger than 32MB. Each drive would get assigned a drive letter. A: and B: being reserved for floppy drives, you could have a maximum amount of usable storage of 768MB in DOS 3.3 (24 x 32MB). Because DOS 4.0 acquired a reputation of being a buggy memory hog, many people stayed with DOS 3.3 until the release of DR-DOS 5.0 in 1990 or MS-DOS 5.0 in 1991.
Even though MS-DOS 3.3 had severe partition limitations, few hard drives of its day came anywhere near 768MB. However, each physical drive had to share the same 24 available drive letters. MS-DOS 5.0 allowed each partition, whether primary or extended, to be up to 2GB. The Int 13h disk BIOS routines only supported 8GB hard drive parameters, and thanks to different ATA IDE limitations, the storage space was even more limited to 504MB until BIOS makers began using workarounds such as LBA and BIOS translation. By the time 2GB hard drives became affordable, Windows 95 was in use.
The CD-ROM drive, despite its read-only capabilities, was to be accessed like a disk drive. While at first it used proprietary interfaces, usually tied to a sound card, eventually it would usually use IDE or SCSI interfaces. While DOS increased its support for hard drive capacities over the years and the PC BIOSes added support for the standard AT-IDE interface starting with the IBM PC AT, full support for CD-ROM drives was never included in the BIOS and DOS never integrated it into its core operating files. Instead, the CD-ROM was accessed through a device driver specific to the drive and interface loaded in CONFIG.SYS and MS-DOS CD-ROM extensions program MSCDEX loaded in AUTOEXEC.BAT. MSCDEX would assign a drive letter to the CD-ROM drive.
Each set of IDE ports can support a master and a slave drive, and the PC can support up to four sets of IDE ports, the primary, secondary, tertiary and quaternary. With IDE you can have eight devices, assuming you have a tower large enough to hold them. One SCSI interface can support seven or fifteen devices (the interface counts as a device), depending on the SCSI version.
Drive Letter Assignment Over the Years
With the IBM PC, which only supported full height drives and typically came with two 5.25" full height double density Tandon TM100-1 (single sided) or -2A (double sided) drives, one drive was Drive A: and the other drive was Drive B: There were only two bays for disk drives and they were only designed to support full-height drives. More adventurous PC owners could find a third-party kit to mount two half-height drives in the full height bay, use a hard card or an external disk drive. The IBM PCjr. only supported one disk drive, and it was Drive A: and B:, DOS being able to redirect commands meant for Drive B: to Drive A:
The IBM PC/XT shared the same number of bays as the PC and originally came with one 5.25" full height Tandon TM100-2A and one 10MB ST-412 MFM full height hard disk drive. You might think that the hard drive would be assigned to Drive B:, but to maintain compatibility with two floppy disk systems, DOS 2.0 assigned it to drive C: With the IBM PC AT, with two external half height bays and one internal half height bay, drives A:, B; and C: were now quite feasible. A typical AT configuration would have one 1.2MB half height drive and one 360KB half height drive (for compatibility with double density disks) and a 20MB internal hard drive. Unlike the PC and XT floppy controller, the AT hard disk and floppy controller did not have a port on the bracket for external floppy drives, so the two floppy drive maximum limit was firmly established with these machines.
Nonetheless, PC and MS-DOS 1.0-3.3 and DR-DOS up to and including 6.0 assigned drive letters to the first four floppy drives, then to other kinds of drives. PC and MS-DOS 4.0 and above, reflecting a greater understanding of how PCs were actually used, assigned A: and B: to floppy drives, then C: and letters thereafter to hard drives, and then it assigned letters to any further floppy drives the user may have in the system.
However, drive lettering after C: was very flexible in DOS, and as most home users only had one hard drive, CD-ROM programs typically ran off Drive D: In fact, there are some games, both for DOS and Windows 3.x and 9x, that refuse to run unless run off Drive D: MSCDEX could reserve Drive D: for the CD-ROM drive, and hard drive partitions could be assigned to use Drive E: or above.
Even today with Windows 8.1, much of this drive lettering arrangement is still followed. Drive letters A: and B: are still reserved for floppy drives, even though a typical user is unlikely to have physical floppy drives in his modern system. Fortunately, floppy drive emulators can use A: and B: without difficulty. Drive C: is always a boot drive. Thereafter, things get very flexible. Dual-boot Windows systems, like Windows XP and Windows 7 can each be Drive C:, depending on which OS is being active. Drive C: can be just about anything except a floppy (too small) or an CD/DVD/Blu-ray (not made for rewriting) drive. It could be a hard disk drive, a solid state drive, a Compact Flash or SD Card or a USB stick. Drive D: and above could be an optical drive, physical or virtual or any of the above. Windows will let you assign whatever drive letter you want. However, there is no Drive AA:, even in Windows 8.1. The twenty-three available drive letters can get fully used today.
The Ideal Vintage Drive Setup
I believe that if you are buying a specific system, like an IBM PC Model 5150, a Compaq Portable or a Tandy 1000 RLX-HD, it is usually preferable to stick with the drives it came with, especially the floppy drives, assuming they work. For systems with few bays, using things like CF cards or DOMs mounted directly onto an XT-IDE header may be required.
For systems of the 1980s, it is typically best to have at least one 360KB drive and one 720KB drive, where possible, and a hard drive. Actually, virtually any 1.44MB drive will work as a 720KB drive, which can be rare. The same cannot be said for 1.2MB drives, and generally they were not used for games during the 1980s. With such a setup, you have your A: B: and C:, and you can play just about anything.
For systems of the 1990s, it is best to have one 1.44MB drive, one 1.2MB drive and one CD-ROM (early to mid-90s) or DVD-ROM (late 90s) drive with a hard drive. With your optical drive as D:, you have one of everything. For the late 1990s, you can get away with the 1.44MB drive, or no floppy drive at all if you have no need for a boot disk. Unfortunately, all floppy drive emulators that I know of require at least Windows 2000.
Showing posts with label PC Hardware. Show all posts
Showing posts with label PC Hardware. Show all posts
Saturday, September 6, 2014
Friday, September 5, 2014
The Underrated Voodoo 3 Chipset
The Voodoo 3 was 3dfx's first performance oriented 2D & 3D card. Released in 1999, it was designed to compete with the nVidia TNT2 chipset, the Matrox G400 and the ATi Rage 128. It often gets overshadowed by the Voodoo 5, which came out in 2000, and the nVidia Geforce, which was the first GPU to support Hardware Transform and Lighting. However, it is a really nice card to have, especially with Glide games, which were still very common in 1999 and 2000. I would like to discuss some of its good qualities here.
There are five good Voodoo 3 cards, the Voodoo 3 2000 PCI, Voodoo 3 2000 AGP, Voodoo 3 3000 PCI, Voodoo 3 3000 AGP, and the Voodoo 3 3500 AGP. There are also Voodoo 3 Velocity cards, but they are low-end OEM cards with only 8MB of SDRAM and a clock speed of 125MHz.
Superior Performance and Image Quality to Voodoo and Voodoo 2
While the Voodoo 3 may not be able to run every ancient Voodoo 1 game, it will run most of the good ones. The only games that will fail are those that have old statically linked glide dlls that typically only work on a Voodoo 1 and may be coaxed to work on a Voodoo 2. Here is a compatibility list for DOS games : http://www.vogons.org/viewtopic.php?f=46&t=35721&hilit=voodoo+matrix&start=80#p344241
The Voodoo 3 has better image quality than either the Voodoo or Voodoo 2, even with lower resolution 3D graphics. Voodoo and Voodoo tend to have fuzzy image quality and washed out color, whereas Voodoo 3 is sharp and saturated. SLI cards may display more aliasing due to the interleaved nature of the graphics output using two cards.
A Voodoo 3 3000, even though it only has 16MB, usually surpasses a Voodoo 2 SLI 24MB in most benchmarks. The Voodoo 3 is far more efficient in using its unified memory, whereas the Voodoo has separate frame buffer and texture memory. In addition, the Voodoo 3 chipset is clocked higher (143 for the 2000, 166MHz for the 3000 and 183 for the 3500) than the Voodoo 2 (90-95MHz) and uses SDRAM over less efficient EDO DRAM.
The Voodoo and Voodoo 2 use a VGA passthrough cable to output the analog 2D card's output through the input of the Voodoo card, and then onto the monitor. The analog passthrough results in degraded image quality, especially at high 2D resolutions like 1024x768.
One Slot Usage, Excellent Windows and DOS Compatibility and Speed
The Voodoo 3 has an integrated 128-bit 2D accelerator core that supports VBE 3.0. It works with just about any game that supports VGA or better. It handles all the common non-BIOS VGA Mode X graphics modes, supports common SVGA modes and 15-bit and 16-bit color VESA modes. In Windows, the 2D resolution can go up to 2048x1536 @ 75Hz.
The Voodoo 2 can eat up to three slots to provide similar speed and performance (two cards for SLI plus a third card for 2D support).
Relatively Easy to Find
The only time you really saw 3dfx hardware inside systems of the late 1990s was with the Voodoo 3. The Voodoo and Voodoo Rush were too early for the big OEMs like Dell, HP and Compaq to put in their computers, the Voodoo 2 was too high end and the Voodoo 5 was too little too late. Only the Voodoo Banshee and Voodoo 3 ever really saw the insides of these systems, which sold in the millions. When these systems get stripped for parts or sold or dumped as junk machines, there is often a golden nugget or two inside.
The Banshee is more common but only implemented one of the two texture units of the Voodoo 2. Part of the improved performance of the Voodoo 3 is due to the addition of the second texture unit. More complex games like Quake 3 and Unreal can take advantage of multi-pass texturing, and the better performance with these titles will be had with a Voodoo 3. Additionally, the Banshee was manufactured by many OEMs like Diamond and Creative, while the Voodoo 3 board were almost exclusively manufactured by it through its STB subsidiary. The result is a more consistent level of board design and quality along the Voodoo 3 line.
The Voodoo 4 & 5 is not that much better
While the Voodoo 4 and 5 have improved performance and true 32-bit color support, their greatest benefit is probably the support for full screen anti-aliasing. However, as far as being future proof, they lack support for hardware transform and lighting, just like the Voodoo 3. Hardware T&L was a feature of DirectX 7, and by 2004 it was a must-have feature, even if the game only had optional support for it.
No Voodoo 3 card has a fan or needs one if the case has good airflow and the card is not being overclocked. All Voodoo 4 and 5 cards do, and the Voodoo 5 requires a 4-pin Molex connector. Voodoo 4s and 5s are much harder to find at reasonable prices. In my personal experience, there are more things that can go wrong on a Voodoo 5 and have done so.
32-bit support was highly touted back in 1998-2000, but there was a strong argument that many gamers preferred the increased speed of 16-bit graphics over the less noticeable improvement of going from 65 thousand colors to 16 million colors. The Voodoo 3 cannot quite show 32-bit color in 3D modes, but it can get very close with its filtering, which eliminates banding issues seen in 16-bit color modes. The Glide API was typically built around 16-bit color.
Little Difference between PCI and AGP Cards
The Voodoo 3 2000 and 3000 came in PCI and AGP versions. The clock rate was the same on the PCI and AGP cards of each model number. The Voodoo 3 chipset was designed with PCI in mind and really does not see a measurable benefit by using the AGP bus. It does not support the major AGP features like the sideband bus or AGP textures using system memory. Any benefit comes from the increased bandwidth of a 66MHz dedicated AGP slot over a 33MHz PCI slot shared with other peripherals. However, the Voodoo 3 3500 only comes in an AGP variety and has the highest clock rate of any Voodoo 3 board.
Two of AGP cards do come with more than just a VGA output connector. The Voodoo 3 3000 AGP comes with TV output support through a socket that uses an S-video connector. The Voodoo 3 3500 has a DVI-like port that connects to an AV dongle. While it does not support LCD DVI, it does have a TV tuner and AV inputs. The dongle is required to obtain any video output from the card.
The lack of practical performance benefit of the AGP cards means that you can use the PCI card in an Intel i440BX motherboard, which does not have a 1/4 AGP divider which allows for trouble free overclocking at a 133MHz Front Side Bus speed.
There are five good Voodoo 3 cards, the Voodoo 3 2000 PCI, Voodoo 3 2000 AGP, Voodoo 3 3000 PCI, Voodoo 3 3000 AGP, and the Voodoo 3 3500 AGP. There are also Voodoo 3 Velocity cards, but they are low-end OEM cards with only 8MB of SDRAM and a clock speed of 125MHz.
Superior Performance and Image Quality to Voodoo and Voodoo 2
While the Voodoo 3 may not be able to run every ancient Voodoo 1 game, it will run most of the good ones. The only games that will fail are those that have old statically linked glide dlls that typically only work on a Voodoo 1 and may be coaxed to work on a Voodoo 2. Here is a compatibility list for DOS games : http://www.vogons.org/viewtopic.php?f=46&t=35721&hilit=voodoo+matrix&start=80#p344241
The Voodoo 3 has better image quality than either the Voodoo or Voodoo 2, even with lower resolution 3D graphics. Voodoo and Voodoo tend to have fuzzy image quality and washed out color, whereas Voodoo 3 is sharp and saturated. SLI cards may display more aliasing due to the interleaved nature of the graphics output using two cards.
A Voodoo 3 3000, even though it only has 16MB, usually surpasses a Voodoo 2 SLI 24MB in most benchmarks. The Voodoo 3 is far more efficient in using its unified memory, whereas the Voodoo has separate frame buffer and texture memory. In addition, the Voodoo 3 chipset is clocked higher (143 for the 2000, 166MHz for the 3000 and 183 for the 3500) than the Voodoo 2 (90-95MHz) and uses SDRAM over less efficient EDO DRAM.
The Voodoo and Voodoo 2 use a VGA passthrough cable to output the analog 2D card's output through the input of the Voodoo card, and then onto the monitor. The analog passthrough results in degraded image quality, especially at high 2D resolutions like 1024x768.
One Slot Usage, Excellent Windows and DOS Compatibility and Speed
The Voodoo 3 has an integrated 128-bit 2D accelerator core that supports VBE 3.0. It works with just about any game that supports VGA or better. It handles all the common non-BIOS VGA Mode X graphics modes, supports common SVGA modes and 15-bit and 16-bit color VESA modes. In Windows, the 2D resolution can go up to 2048x1536 @ 75Hz.
The Voodoo 2 can eat up to three slots to provide similar speed and performance (two cards for SLI plus a third card for 2D support).
Relatively Easy to Find
The only time you really saw 3dfx hardware inside systems of the late 1990s was with the Voodoo 3. The Voodoo and Voodoo Rush were too early for the big OEMs like Dell, HP and Compaq to put in their computers, the Voodoo 2 was too high end and the Voodoo 5 was too little too late. Only the Voodoo Banshee and Voodoo 3 ever really saw the insides of these systems, which sold in the millions. When these systems get stripped for parts or sold or dumped as junk machines, there is often a golden nugget or two inside.
The Banshee is more common but only implemented one of the two texture units of the Voodoo 2. Part of the improved performance of the Voodoo 3 is due to the addition of the second texture unit. More complex games like Quake 3 and Unreal can take advantage of multi-pass texturing, and the better performance with these titles will be had with a Voodoo 3. Additionally, the Banshee was manufactured by many OEMs like Diamond and Creative, while the Voodoo 3 board were almost exclusively manufactured by it through its STB subsidiary. The result is a more consistent level of board design and quality along the Voodoo 3 line.
The Voodoo 4 & 5 is not that much better
While the Voodoo 4 and 5 have improved performance and true 32-bit color support, their greatest benefit is probably the support for full screen anti-aliasing. However, as far as being future proof, they lack support for hardware transform and lighting, just like the Voodoo 3. Hardware T&L was a feature of DirectX 7, and by 2004 it was a must-have feature, even if the game only had optional support for it.
No Voodoo 3 card has a fan or needs one if the case has good airflow and the card is not being overclocked. All Voodoo 4 and 5 cards do, and the Voodoo 5 requires a 4-pin Molex connector. Voodoo 4s and 5s are much harder to find at reasonable prices. In my personal experience, there are more things that can go wrong on a Voodoo 5 and have done so.
32-bit support was highly touted back in 1998-2000, but there was a strong argument that many gamers preferred the increased speed of 16-bit graphics over the less noticeable improvement of going from 65 thousand colors to 16 million colors. The Voodoo 3 cannot quite show 32-bit color in 3D modes, but it can get very close with its filtering, which eliminates banding issues seen in 16-bit color modes. The Glide API was typically built around 16-bit color.
Little Difference between PCI and AGP Cards
The Voodoo 3 2000 and 3000 came in PCI and AGP versions. The clock rate was the same on the PCI and AGP cards of each model number. The Voodoo 3 chipset was designed with PCI in mind and really does not see a measurable benefit by using the AGP bus. It does not support the major AGP features like the sideband bus or AGP textures using system memory. Any benefit comes from the increased bandwidth of a 66MHz dedicated AGP slot over a 33MHz PCI slot shared with other peripherals. However, the Voodoo 3 3500 only comes in an AGP variety and has the highest clock rate of any Voodoo 3 board.
Two of AGP cards do come with more than just a VGA output connector. The Voodoo 3 3000 AGP comes with TV output support through a socket that uses an S-video connector. The Voodoo 3 3500 has a DVI-like port that connects to an AV dongle. While it does not support LCD DVI, it does have a TV tuner and AV inputs. The dongle is required to obtain any video output from the card.
The lack of practical performance benefit of the AGP cards means that you can use the PCI card in an Intel i440BX motherboard, which does not have a 1/4 AGP divider which allows for trouble free overclocking at a 133MHz Front Side Bus speed.
Sunday, April 27, 2014
The Original 8-bit XT IDE Interface
Back in the late 1980s, Western Digital had a good idea. Its idea was to simplify hard drive interfaces and make them much more reliable by incorporating all the drive interface electronics on the hard drive. Instead of having two ribbon cables connect a mostly dumb hard drive to a complex controller board, as was the case for the IBM XT and AT drive controller boards, all that would be required was one cable. This cable would bring only the pins of the AT/16-bit IDE bus (essentially the data bus lines and a few address lines and some drive select signals) that the drive needed and could be implemented with simple glue logic.
This was a great idea and eventually became predominant in the industry for reasonable cost hard drives. Reliability and data transmission speeds markedly increased. The older ST-506 interface was already long in the tooth, and its successor, the ESDI, still used separate cables for data and control and still had too many functions on an interface card to implement on a PC motherboard. SCSI was, and still is, a high cost, high end solution with its own headaches.
However, consumer based PCs of the late 1980s were increasingly feeling the pressure to add hard drives, or least the option to install one, into the PC. When Western Digital and others were finalizing the AT Attachment (ATA) Standard, they also introduced a less functional version of the standard called the XT Attachment (XTA) Standard. This has also been called 8-bit IDE and XT-IDE, but care must be had to distinguish it from the modern XT-IDE devices. Hereafter, I will refer to it as XTA. The chief differences between the two standards are as follows :
The XTA interface was intended to replace the IBM PC/XT Fixed Disk Drive Adapter, which worked on I/O 320-323, IRQ5 and DMA3. The ATA interface was intended to replace the IBM PC AT Fixed Disk and Diskette Drive Adapter, which used I/O 1F0-1F7 and IRQ14.
One word of caution cannot be emphasized enough when dealing with these drives. Do NOT use a low-level formatting program unless that program is specific to your manufacturer and drive. DOS formats at a high level, and you should use that. While the Seagate drives use 17 sectors per cylinder, the WD and MS drives use 27 or 28.
As you can see above, the XTA interfaces has many drawbacks and disadvantages to the ATA interface. For modern devices, the most important limitation is the I/O ports used. Modern Parallel ATA hard drives, Disk On Modules and Compact Flash cards only support the ATA interface and the eight register addresses it uses. While CF and DOMs support an 8-bit transfer mode, they must be programmed into this mode on bootup.
This was a great idea and eventually became predominant in the industry for reasonable cost hard drives. Reliability and data transmission speeds markedly increased. The older ST-506 interface was already long in the tooth, and its successor, the ESDI, still used separate cables for data and control and still had too many functions on an interface card to implement on a PC motherboard. SCSI was, and still is, a high cost, high end solution with its own headaches.
However, consumer based PCs of the late 1980s were increasingly feeling the pressure to add hard drives, or least the option to install one, into the PC. When Western Digital and others were finalizing the AT Attachment (ATA) Standard, they also introduced a less functional version of the standard called the XT Attachment (XTA) Standard. This has also been called 8-bit IDE and XT-IDE, but care must be had to distinguish it from the modern XT-IDE devices. Hereafter, I will refer to it as XTA. The chief differences between the two standards are as follows :
| AT Attachment | XT Attachment | |
| Data Path | 16-bit Wide | 8-bit Wide |
| Number of Drives Supported | 2 | 1 |
| I/O Addresses Used | 1F0-1F7, 170-177 | 320-323, 324-327 |
| Hard Drive Capacities | 20MB-504MB | 20MB-40MB |
| ROM Addresses | Integrated into BIOS | C8000-C9FFF |
| Interrupt | IRQ14, IRQ15 | IRQ5, IRQ2 |
| DMA | None | 3 |
The XTA interface was intended to replace the IBM PC/XT Fixed Disk Drive Adapter, which worked on I/O 320-323, IRQ5 and DMA3. The ATA interface was intended to replace the IBM PC AT Fixed Disk and Diskette Drive Adapter, which used I/O 1F0-1F7 and IRQ14.
Several very interesting systems from the late 1980s and early 1990s had the XT-Attachment interface. This includes the 286 based Tandy 1000 TL/2, TL/3, RLX, RLX-B, IBM PS/2 Model 25-286 and Model 30-286, and the IBM PS/1 Model 2011. Also, the 8086 based Tandy 1000RL & RL-HD and the IBM PS.2 Model 25 and Model 30 also had this interface.
The IBM version of the XTA interface derivatives somewhat from the standard. It uses a 44-pin cable and supplies power to the drive on some of the pins instead of a separate Molex connector. In its 286 machines, which have or can be equipped with 16-bit ISA slots, IRQ14 will be used instead of IRQ5. Their hard drive BIOSes may be integrated into the main BIOS.
With the Tandy XTA interface, you are typically restricted to only a few hard drives, including the Seagate ST-325-X (20MB) and ST-351-A/X & ST-352-A/X (40MB), the Miniscribe M8225XT (20MB) and M8450XT (40MB) and the Western Digital WD95028-X-11R (20MB), WD95038-X-11R (30MB) and WD93044-X-11R (40MB). The best drives from Seagate offer a 28ms seek time, the other drives can have a 40ms seek. Conner Peripherals, Epson and Areal and Prairietek also made XTA drives.
The best of the bunch must be the Seagate ST351A/X. As its name implies, the drive can work with an ATA or XTA interface. Thus it can be connected to a modern IDE port without difficulty, although its storage capacity is still tiny compared to what is available today. On the standard IBM drives table, it would be type 18. Tandy sold the WD93028, WD93044 and ST-325-X. The WD drives have a low-level format utility and require head parking when being moved. The ST drives do not and can auto-park their heads.
The best of the bunch must be the Seagate ST351A/X. As its name implies, the drive can work with an ATA or XTA interface. Thus it can be connected to a modern IDE port without difficulty, although its storage capacity is still tiny compared to what is available today. On the standard IBM drives table, it would be type 18. Tandy sold the WD93028, WD93044 and ST-325-X. The WD drives have a low-level format utility and require head parking when being moved. The ST drives do not and can auto-park their heads.
One word of caution cannot be emphasized enough when dealing with these drives. Do NOT use a low-level formatting program unless that program is specific to your manufacturer and drive. DOS formats at a high level, and you should use that. While the Seagate drives use 17 sectors per cylinder, the WD and MS drives use 27 or 28.
As you can see above, the XTA interfaces has many drawbacks and disadvantages to the ATA interface. For modern devices, the most important limitation is the I/O ports used. Modern Parallel ATA hard drives, Disk On Modules and Compact Flash cards only support the ATA interface and the eight register addresses it uses. While CF and DOMs support an 8-bit transfer mode, they must be programmed into this mode on bootup.
Three difficulties present themselves in trying to get modern hard drive devices to work with the XTA interface. First, the data, control and status information would need to be translated from the ATA interface of the device to the XTA interface of the system. Second, the device would need to support and be put into 8-bit transfer mode on startup. Third, the BIOS would need to be instructed on the correct geometry for the modern device. While #1 and 3 can be fixed with a ROM BIOS extension, #2 is not an easy fix because the XTA connector presents I/O at 320, not 1F0. In theory, someone could design an adapter that could do all three.
Wednesday, April 23, 2014
"Tips" for the Xircom Parallel Port Ethernet Adapters
Xircom released several parallel port Ethernet adapters, and the advantage to these adapters is they can add Ethernet capabilities to any PC compatible with a standard parallel port. They work better with bidirectional and EPP ports, but will function on a standard unidirectional port quite well. Intel bought Xircom, so it hosts the drivers for the PE3 series of adapters here : http://www.intel.com/p/en_US/support/highlights/network/pe3
When it came to the PE3 series, Xircom released four adapters :
PE3-10BC - Twisted Pair (RJ-45) and Coaxial (Thin Ethernet) connector
PE3-10BT - Twisted Pair (RJ-45) connector
PE3-10B2 - Coaxial (Thin Ethernet) connector
PE3-10BX - AUI 15-pin connector
If you get one with only a Coaxial or AUI connector, you will probably need an adapter for the Coaxial connector or a transceiver to add an RJ-45 port to the AUI connector. These are usually $10-20.
Sometimes these adapters come with a wall-wart, other times with a "Phantom" PS/2 power cable. If you have the Phantom cable, do yourself a favor and throw it away. It is intended to plug into only into a PS/2 mouse port, but the power draw of the adapter may cause damage to the adapter or the system.
The official AC power adapter is rated for DC output at 12v/500mA. This will be sufficient for any of the above adapters. A 300mA adapter will work with all but the BX. If you need a wall-wart, buy one like this : http://www.radioshack.com/product/index.jsp?productId=3832491 You will need the "N" Adaptaplug, which should be provided in a store at no extra charge. The adapter uses a positive tip, so the + symbol must be next to the TIP symbol on the tip end.
Never insert or remove any device from a parallel or PS/2 port when the computer is on. Install the Xircom adapter when the computer is off and plug in the AC adapter for the Xircom before turning the power on.
Once installed, the installing the packet driver in DOS is simple, and usually all that is required is designating the software interrupt and setting the mode to unidirectional or non-EPP bidirectional if your parallel port does not support a bidirectional or EPP port.
There is a previous PE2 series, with at least a 10BT, 10B2 and 10BX. Drivers for those adapters can be found here : http://www.minuszerodegrees.net/manuals.htm
When it came to the PE3 series, Xircom released four adapters :
PE3-10BC - Twisted Pair (RJ-45) and Coaxial (Thin Ethernet) connector
PE3-10BT - Twisted Pair (RJ-45) connector
PE3-10B2 - Coaxial (Thin Ethernet) connector
PE3-10BX - AUI 15-pin connector
If you get one with only a Coaxial or AUI connector, you will probably need an adapter for the Coaxial connector or a transceiver to add an RJ-45 port to the AUI connector. These are usually $10-20.
Sometimes these adapters come with a wall-wart, other times with a "Phantom" PS/2 power cable. If you have the Phantom cable, do yourself a favor and throw it away. It is intended to plug into only into a PS/2 mouse port, but the power draw of the adapter may cause damage to the adapter or the system.
The official AC power adapter is rated for DC output at 12v/500mA. This will be sufficient for any of the above adapters. A 300mA adapter will work with all but the BX. If you need a wall-wart, buy one like this : http://www.radioshack.com/product/index.jsp?productId=3832491 You will need the "N" Adaptaplug, which should be provided in a store at no extra charge. The adapter uses a positive tip, so the + symbol must be next to the TIP symbol on the tip end.
Never insert or remove any device from a parallel or PS/2 port when the computer is on. Install the Xircom adapter when the computer is off and plug in the AC adapter for the Xircom before turning the power on.
Once installed, the installing the packet driver in DOS is simple, and usually all that is required is designating the software interrupt and setting the mode to unidirectional or non-EPP bidirectional if your parallel port does not support a bidirectional or EPP port.
There is a previous PE2 series, with at least a 10BT, 10B2 and 10BX. Drivers for those adapters can be found here : http://www.minuszerodegrees.net/manuals.htm
Sunday, April 20, 2014
Tape Cassette Storage with the IBM PC and PCjr.
IBM include a 5-pin DIN cassette port in the IBM PC Model 5150. This was intended for systems sold without floppy disk drives, which were still very expensive in 1981. Until the PC was discontinued in 1987, you could still buy a 5150 from IBM without a floppy disk drive (Model 104).
The 5-pin DIN connector used a TRS-80 cassette cable to connect to a tape recorder deck. The Radio Shack CCR-81 and 82 came with the cables and had both Mic and Aux input jacks. IBM never made a cable for the PC, and the only software it ever supplied was IBM PC Diagnostics and Advanced Diagnostics. Otherwise, use of the cassette port was intended solely for users of Cassette BASIC. Cassette BASIC, built into the system, used its save and load commands to access the cassette drive. In this IBM followed other 8-bit microcomputers of the day, as Cassette storage was the cheapest form of storage available for home computing.
When IBM released the XT, it removed the cassette port circuitry but kept Cassette BASIC in ROM for compatibility with Disk BASIC, Advanced BASIC (BASICA) and programs which relied on any of the three. You could no longer save or load a program in Cassette BASIC. However, IBM also used the same cassette interface logic for the PCjr. This time, IBM released a cable to connect to the unique cassette port on the PCjr.
The IBM PC and PCjr. communicate with the cassette deck via Int 15. At the low level, the audio coming from the deck to the system is digitized and read serially on bit 4 of the 8255 Port C. Audio generated from the system to the deck is generated by 8253 Timer 2, which also controls the PC Speaker and then sent to the cassette. The motor is controlled by bit 3 (and bit 4 in the PCjr) of the 8255 Port B. The BIOS routine writes a 1 bit is with a tone of 1 millisecond (1000Hz), and a 0 bit with a tone of 0.5 millisecond (2000Hz).
To signal the beginning of a program to BASIC, there will be a "leader" of 256 bytes where all the bits are 1, followed by a 0-bit and then ASCII Hex 16. Then a 256-byte data block will be written, followed by a 2-byte Cyclic Redundancy Check, and then more data + CRC blocks until the whole program has been written. The maximum size that can be written is probably close to 64K, since that is the absolute maximum size of a BASIC program on the PC.
Typing SAVE"[program name] will save a BASIC program to the cassette. Typing LOAD"[program name] in Cassette BASIC will instruct BASIC to start the cassette and search for the file. It is up to the user to remember where the program is located. If the system cannot "hear" a program, it will eventually quit trying and give the "Device Timeout" error message. If there is some kind of problem with what it is trying to load, it will say "Device I/O Error." You should keep the volume as high as possible when recording and playing back.
By using the cassette cable, you can record the output of the IBM PC's Speaker without any other adapter hardware. You can of course plug the other end of the cable into a PC instead of a recording deck. It is better to use the audio jack of the PCjr. to record sounds from it, as that jack can record from the PC Speaker, the 3-voice sound chip, the PCjr. Speech Attachment or the audio coming from the cassette.
Using the cassette port is may be a good method to record PC speaker music from a PC, but note that unlike the internal Speaker, the PC will generate a solid tone from the time it signals a system ready beep until software takes control of the PC Speaker.
One program that specifically supports the cassette port is Electronic Arts Music Construction Set. This program has a setting to output 1 note PC Speaker or 4 note (tweaked) PC Speaker music, and has an option to output it to the internal PC Speaker or the cassette port. 4-voice output may sound better through a powered speaker than the internal speaker, but the basic sound will be the same.
One issue with the PC and PCjr. is that both support being connected to the Mic or Aux input of a tape deck. The PC does so via a jumper on the system board near the PC Speaker header. The jumper block is a 2x2 block. If the jumper is placed across the pins closest to the M silkscreened on the board, then the audio will be sent at a level appropriate for a Mic Input. If the jumper is placed across the pins closest to the A silkscreened on the board, then the audio will be sent at a level appropriate for a Line Input. The PCjr sends both the Mic and Aux input lines to the C connector, but the official cable only uses the Aux line. Some modern cassette recorders only come with a Mic Input.
The 5-pin DIN connector used a TRS-80 cassette cable to connect to a tape recorder deck. The Radio Shack CCR-81 and 82 came with the cables and had both Mic and Aux input jacks. IBM never made a cable for the PC, and the only software it ever supplied was IBM PC Diagnostics and Advanced Diagnostics. Otherwise, use of the cassette port was intended solely for users of Cassette BASIC. Cassette BASIC, built into the system, used its save and load commands to access the cassette drive. In this IBM followed other 8-bit microcomputers of the day, as Cassette storage was the cheapest form of storage available for home computing.
When IBM released the XT, it removed the cassette port circuitry but kept Cassette BASIC in ROM for compatibility with Disk BASIC, Advanced BASIC (BASICA) and programs which relied on any of the three. You could no longer save or load a program in Cassette BASIC. However, IBM also used the same cassette interface logic for the PCjr. This time, IBM released a cable to connect to the unique cassette port on the PCjr.
The IBM PC and PCjr. communicate with the cassette deck via Int 15. At the low level, the audio coming from the deck to the system is digitized and read serially on bit 4 of the 8255 Port C. Audio generated from the system to the deck is generated by 8253 Timer 2, which also controls the PC Speaker and then sent to the cassette. The motor is controlled by bit 3 (and bit 4 in the PCjr) of the 8255 Port B. The BIOS routine writes a 1 bit is with a tone of 1 millisecond (1000Hz), and a 0 bit with a tone of 0.5 millisecond (2000Hz).
To signal the beginning of a program to BASIC, there will be a "leader" of 256 bytes where all the bits are 1, followed by a 0-bit and then ASCII Hex 16. Then a 256-byte data block will be written, followed by a 2-byte Cyclic Redundancy Check, and then more data + CRC blocks until the whole program has been written. The maximum size that can be written is probably close to 64K, since that is the absolute maximum size of a BASIC program on the PC.
Typing SAVE"[program name] will save a BASIC program to the cassette. Typing LOAD"[program name] in Cassette BASIC will instruct BASIC to start the cassette and search for the file. It is up to the user to remember where the program is located. If the system cannot "hear" a program, it will eventually quit trying and give the "Device Timeout" error message. If there is some kind of problem with what it is trying to load, it will say "Device I/O Error." You should keep the volume as high as possible when recording and playing back.
By using the cassette cable, you can record the output of the IBM PC's Speaker without any other adapter hardware. You can of course plug the other end of the cable into a PC instead of a recording deck. It is better to use the audio jack of the PCjr. to record sounds from it, as that jack can record from the PC Speaker, the 3-voice sound chip, the PCjr. Speech Attachment or the audio coming from the cassette.
Using the cassette port is may be a good method to record PC speaker music from a PC, but note that unlike the internal Speaker, the PC will generate a solid tone from the time it signals a system ready beep until software takes control of the PC Speaker.
One program that specifically supports the cassette port is Electronic Arts Music Construction Set. This program has a setting to output 1 note PC Speaker or 4 note (tweaked) PC Speaker music, and has an option to output it to the internal PC Speaker or the cassette port. 4-voice output may sound better through a powered speaker than the internal speaker, but the basic sound will be the same.
One issue with the PC and PCjr. is that both support being connected to the Mic or Aux input of a tape deck. The PC does so via a jumper on the system board near the PC Speaker header. The jumper block is a 2x2 block. If the jumper is placed across the pins closest to the M silkscreened on the board, then the audio will be sent at a level appropriate for a Mic Input. If the jumper is placed across the pins closest to the A silkscreened on the board, then the audio will be sent at a level appropriate for a Line Input. The PCjr sends both the Mic and Aux input lines to the C connector, but the official cable only uses the Aux line. Some modern cassette recorders only come with a Mic Input.
Wednesday, April 16, 2014
Simple Soldering Mods for Vintage PC Components
There are some simple, yet extremely useful modifications you can perform to some vintage PCs and cards using a soldering iron and a bit of solder or a few wires. In this post, I am going to outline some well-known, highly useful modifications requiring soldering no more than three wires or chips. Of course, you should have a solder sucker or desoldering braid to repair any mistakes.
Before I detail the mods, there is a debate between lifting pins and cutting traces. In my opinion, its easier to cut a trace than it is to lift a pin. I once broke a pin off an IC and had to remove and replace the whole IC. Cut traces can easily be repaired by wiring the two pins connected by that trace together.
IBM XT & Portable 640KB System Board
All IBM XTs and Portables use the same basic motherboard design. For those motherboards marked 64KB-256KB System Board, there is an empty socket at U84. These Boards were intended to support only 256KB, but through a very easy mod and a chip replacement, they can all support 640KB on the motherboard. This is the maximum amount of RAM that an 8-bit PC compatible is designed to use and it saves an expansion slot.
First, fit a 74LS158 chip into the U84 socket. Second, replace the 64Kx1 DRAM chips in banks 0 & 1 with 256Kx1 chips, 150ns or better. That is 18 chips (since the XT uses parity memory). If banks 2 & 3 are empty, you can put those 64kx1 chips in those sockets. Third, bridge the two points marked with an E2 on the motherboard. It is near the power supply. You just need solder and maybe a bit of wire to make the connection, because this is not a mod you are likely to want to reverse. Finally, set switches 3 & 4 to the Off position if you haven't already done so. This informs the system that all four banks of memory are populated. More detailed instructions are here :
http://www.uncreativelabs.net/textfiles/hardware/XTMB640K.MOD
IBM Bidirectional Parallel Port
The IBM 8-bit cards all had a unidirectional parallel port, but could be modified to support a basic PS/2-style bidirectional port with one wire. To do this, you need to solder pin 1 of the appropriate 74LS374 to pin 15 of the appropriate 74LS174. You also need to cut away the trace that connects pin 1 of the 74LS374 to ground or lift the pin out of its solder hole. Here are the correct chip numbers for each card :
IBM PC Monochrome Display and Printer Adapter :
74LS374 - U41
74LS174 - U39
IBM PC Printer Adapter :
74LS374 - U4
74LS174 - U7
IBM PC AT Serial/Parallel Adapter :
74LS374 - U18
74LS174 - U4
IBM PCjr. Parallel Printer Attachment :
74LS374 - ZM4
74LS174 - ZM11
Hercules Graphics Card (long, 13" version)
74LS374 - U32
74LS174 - U22
AST Six Pak Plus Type 1
74LS374 - U73
74LS174 - U81
74LS374 - U76
74LS174 - U71
IBM LPT2 Parallel Port
The IBM Parallel cards, with the exception of the IBM PC AT Serial Parallel Adapter, are set to use only one set of addresses. The IBM PC Monochrome Display and Printer Adapter uses addresses at 3BC-3BF and these should never be changed. The BIOS will always assign LPT1 to a Monochrome card's parallel port, and the port must be at those addresses. For the standalone parallel adapters, while they are set at 378-37F, they can be changed to use 278-27F. The BIOS will assign LPT1 (assuming no mono card is in the system) to the parallel port at 378 and LPT2 to the parallel port at 278.
To make the IBM PC Printer Adapter use address starting at 278, you need to cut the trace connecting J1. To reverse this, you need to solder a pair of staking pins to the pads at J1 and place a jumper over them. Some solder sucker should be used to obtain clean holes first.
To change the address on a IBM PCjr. Parallel Printer Attachment, there are two traces that need to be cut and two wires soldered. The instructions are here : http://www.brutman.com/PCjr/lpt2_mod.html
IBM CGA Thin-font
The IBM CGA card contains two character sets or fonts in its character generator ROM. The standard font is the thick-font, which was designated as the default font because the characters were much easier to see on a TV screen or a composite monochrome monitor. There is also a thin font available by connecting the two solder pads just below pins 1 & 2 of the 6845 CRTC chip. Solder in a two-pin header and you can use a jumper to switch between the two.
IBM PCjr. Tandy-mod
One of the most popular modifications to enhance the PCjr.'s graphical capabilities is to install the Tandy mod. This mod, which requires one common 74 series TTL chip, cutting a trace and soldering three wires, is relatively easy to do. With the mod, the problem of the Venetian Blinds with games only supporting Tandy 320x200 and 640x200 (if there are any) graphics will go away. This will fix many games. The best instructions can be found here : http://vintagemashups.net/2011/12/ibm-pcjr-tandy-1000-graphics-mod/
So, shouldn't all PCjr.'s have this mod installed? Well, in my opinion, a PCjr. should be used and maintained as a unique computer, not an ersatz Tandy 1000. Unlike the Tandy 1000s with their speed options (7.16MHz 8088s to 10MHz 80286s), the PCjr. is stuck at 4.77MHz as a practical matter. Even installing a V20 and RAM above 128KB is not going to provide the speed necessary to run many games at a good speed which use the ubiquitous graphics 320x200x16c Mode 09h. While it is possible to increase the clock speed of a PCjr. above 4.77MHz, the modification is much more involved than the Tandy mod and the results are not very reliable above 7.37MHz.
In addition, the Tandy mod does not solve all compatibility problems that a game specifically supporting only Tandy graphics and sound would have on the PCjr. A review of the technical references of the Tandy 1000 and the PCjr. (available online) shows many differences in their respective graphics registers. Their keyboard handling at the hardware level is very different. Even their sound chips (the PCjr, uses a true TI SN76496, the Tandys typically use a NCR 8496 clone, discrete or integrated) have their differences.
In short, if you have or intend to acquire a Tandy 1000, leave your PCjr. alone. If you have no interest or desire for a Tandy 1000 machine, then by all means consider the mod, but
CMOS Battery Replacement
CMOS batteries typically give 3-6V. They generally come in three varieties for generic motherboards, the Dallas 1287 or 12887 RTC module, the barrel-type and the CR2032 coin-style with holder. Each variety was common until the Pentium era, where the coin-style battery holder became ubiquitous. The CR2032s can be readily replaced, because only the holder is soldered to the board. The Dallas RTC module has a battery built-in that will eventually fail. In these cases, the part is typically socketed and can be replaced. A coin-style battery holder can be soldered to the appropriate legs, thereby extending the life of the part indefinitely. A sharp hobby knife, or better still a dremel, will be needed to cut away enough of the plastic to expose the "thick" portion of the legs to solder the battery holder terminals. Detailed instructions can be found here : http://www.mcamafia.de/mcapage0/dsrework.htm or here : http://www.classic-computers.org.nz/blog/2009-10-10-renovating-a-dallas-battery-chip.htm
The barrel style batteries are the most annoying of the bunch. Too frequently they corrode and leak, causing damage to the motherboard. If you buy a motherboard with one, remove it immediately, even if it hasn't leaked. Remove the leads from the motherboard using solder braid or a solder sucker, or simply solder the battery holder terminals to the extended leads. Some of the barrel batteries are Ni-Cd rechargeable types, and standard batteries will not take the recharge current. With a bit of searching, you can find modern Ni-MH barrel-style batteries that will work as a direct replacement. Here is an example : http://www.jameco.com/1/1/48175-5560830312-nimh-rechargable-batteries-3-6v-rechargeable.html
If you want to instead solder a battery holder, you will need to wire a schottky diode in between the battery's + terminal and the motherboard's + point to prevent the current from going from the motherboard to the battery.
If you do not want to solder a battery clip, some motherboards have a pin header to connect an external battery. There are 3xAA and 4xAA battery holders with 2-pin or 4-pin connectors ideal for the task. 3xAA is 4.5v, which is quite sufficient to power CMOS, but 2xAA is only 3v, which is the bare minimum. 3 and 4 battery holders will last longer.
Before I detail the mods, there is a debate between lifting pins and cutting traces. In my opinion, its easier to cut a trace than it is to lift a pin. I once broke a pin off an IC and had to remove and replace the whole IC. Cut traces can easily be repaired by wiring the two pins connected by that trace together.
IBM XT & Portable 640KB System Board
All IBM XTs and Portables use the same basic motherboard design. For those motherboards marked 64KB-256KB System Board, there is an empty socket at U84. These Boards were intended to support only 256KB, but through a very easy mod and a chip replacement, they can all support 640KB on the motherboard. This is the maximum amount of RAM that an 8-bit PC compatible is designed to use and it saves an expansion slot.
First, fit a 74LS158 chip into the U84 socket. Second, replace the 64Kx1 DRAM chips in banks 0 & 1 with 256Kx1 chips, 150ns or better. That is 18 chips (since the XT uses parity memory). If banks 2 & 3 are empty, you can put those 64kx1 chips in those sockets. Third, bridge the two points marked with an E2 on the motherboard. It is near the power supply. You just need solder and maybe a bit of wire to make the connection, because this is not a mod you are likely to want to reverse. Finally, set switches 3 & 4 to the Off position if you haven't already done so. This informs the system that all four banks of memory are populated. More detailed instructions are here :
http://www.uncreativelabs.net/textfiles/hardware/XTMB640K.MOD
IBM Bidirectional Parallel Port
The IBM 8-bit cards all had a unidirectional parallel port, but could be modified to support a basic PS/2-style bidirectional port with one wire. To do this, you need to solder pin 1 of the appropriate 74LS374 to pin 15 of the appropriate 74LS174. You also need to cut away the trace that connects pin 1 of the 74LS374 to ground or lift the pin out of its solder hole. Here are the correct chip numbers for each card :
IBM PC Monochrome Display and Printer Adapter :
74LS374 - U41
74LS174 - U39
IBM PC Printer Adapter :
74LS374 - U4
74LS174 - U7
IBM PC AT Serial/Parallel Adapter :
74LS374 - U18
74LS174 - U4
74LS374 - ZM4
74LS174 - ZM11
Hercules Graphics Card (long, 13" version)
74LS374 - U32
74LS174 - U22
AST Six Pak Plus Type 1
74LS374 - U73
74LS174 - U81
AST Six Pak Plus Type 2 or Type 3
74LS374 - U76
74LS174 - U71
The IBM Parallel cards, with the exception of the IBM PC AT Serial Parallel Adapter, are set to use only one set of addresses. The IBM PC Monochrome Display and Printer Adapter uses addresses at 3BC-3BF and these should never be changed. The BIOS will always assign LPT1 to a Monochrome card's parallel port, and the port must be at those addresses. For the standalone parallel adapters, while they are set at 378-37F, they can be changed to use 278-27F. The BIOS will assign LPT1 (assuming no mono card is in the system) to the parallel port at 378 and LPT2 to the parallel port at 278.
To make the IBM PC Printer Adapter use address starting at 278, you need to cut the trace connecting J1. To reverse this, you need to solder a pair of staking pins to the pads at J1 and place a jumper over them. Some solder sucker should be used to obtain clean holes first.
To change the address on a IBM PCjr. Parallel Printer Attachment, there are two traces that need to be cut and two wires soldered. The instructions are here : http://www.brutman.com/PCjr/lpt2_mod.html
IBM CGA Thin-font
The IBM CGA card contains two character sets or fonts in its character generator ROM. The standard font is the thick-font, which was designated as the default font because the characters were much easier to see on a TV screen or a composite monochrome monitor. There is also a thin font available by connecting the two solder pads just below pins 1 & 2 of the 6845 CRTC chip. Solder in a two-pin header and you can use a jumper to switch between the two.
IBM PCjr. Tandy-mod
One of the most popular modifications to enhance the PCjr.'s graphical capabilities is to install the Tandy mod. This mod, which requires one common 74 series TTL chip, cutting a trace and soldering three wires, is relatively easy to do. With the mod, the problem of the Venetian Blinds with games only supporting Tandy 320x200 and 640x200 (if there are any) graphics will go away. This will fix many games. The best instructions can be found here : http://vintagemashups.net/2011/12/ibm-pcjr-tandy-1000-graphics-mod/
So, shouldn't all PCjr.'s have this mod installed? Well, in my opinion, a PCjr. should be used and maintained as a unique computer, not an ersatz Tandy 1000. Unlike the Tandy 1000s with their speed options (7.16MHz 8088s to 10MHz 80286s), the PCjr. is stuck at 4.77MHz as a practical matter. Even installing a V20 and RAM above 128KB is not going to provide the speed necessary to run many games at a good speed which use the ubiquitous graphics 320x200x16c Mode 09h. While it is possible to increase the clock speed of a PCjr. above 4.77MHz, the modification is much more involved than the Tandy mod and the results are not very reliable above 7.37MHz.
In addition, the Tandy mod does not solve all compatibility problems that a game specifically supporting only Tandy graphics and sound would have on the PCjr. A review of the technical references of the Tandy 1000 and the PCjr. (available online) shows many differences in their respective graphics registers. Their keyboard handling at the hardware level is very different. Even their sound chips (the PCjr, uses a true TI SN76496, the Tandys typically use a NCR 8496 clone, discrete or integrated) have their differences.
In short, if you have or intend to acquire a Tandy 1000, leave your PCjr. alone. If you have no interest or desire for a Tandy 1000 machine, then by all means consider the mod, but
CMOS Battery Replacement
CMOS batteries typically give 3-6V. They generally come in three varieties for generic motherboards, the Dallas 1287 or 12887 RTC module, the barrel-type and the CR2032 coin-style with holder. Each variety was common until the Pentium era, where the coin-style battery holder became ubiquitous. The CR2032s can be readily replaced, because only the holder is soldered to the board. The Dallas RTC module has a battery built-in that will eventually fail. In these cases, the part is typically socketed and can be replaced. A coin-style battery holder can be soldered to the appropriate legs, thereby extending the life of the part indefinitely. A sharp hobby knife, or better still a dremel, will be needed to cut away enough of the plastic to expose the "thick" portion of the legs to solder the battery holder terminals. Detailed instructions can be found here : http://www.mcamafia.de/mcapage0/dsrework.htm or here : http://www.classic-computers.org.nz/blog/2009-10-10-renovating-a-dallas-battery-chip.htm
The barrel style batteries are the most annoying of the bunch. Too frequently they corrode and leak, causing damage to the motherboard. If you buy a motherboard with one, remove it immediately, even if it hasn't leaked. Remove the leads from the motherboard using solder braid or a solder sucker, or simply solder the battery holder terminals to the extended leads. Some of the barrel batteries are Ni-Cd rechargeable types, and standard batteries will not take the recharge current. With a bit of searching, you can find modern Ni-MH barrel-style batteries that will work as a direct replacement. Here is an example : http://www.jameco.com/1/1/48175-5560830312-nimh-rechargable-batteries-3-6v-rechargeable.html
If you want to instead solder a battery holder, you will need to wire a schottky diode in between the battery's + terminal and the motherboard's + point to prevent the current from going from the motherboard to the battery.
If you do not want to solder a battery clip, some motherboards have a pin header to connect an external battery. There are 3xAA and 4xAA battery holders with 2-pin or 4-pin connectors ideal for the task. 3xAA is 4.5v, which is quite sufficient to power CMOS, but 2xAA is only 3v, which is the bare minimum. 3 and 4 battery holders will last longer.
Saturday, January 25, 2014
Meet another Video Card - The Prolink Systems, Inc. MVGA-AVGA4VL VLB Card
Recently, I found a card nearly identical to this one from http://www.vgamuseum.info/ in an old system and decided to try it out :
I have tried it out and have come to like it more than my S3-805 based Diamond Stealth VLB card. Its slightly faster, more compatible, supports more RAM and video modes. I have no complaints about the DOS video quality. It uses the Cirrus Logic CL-GD5429, which supports true color modes and Windows acceleration. It uses memory-mapped I/O for increased speed. It comes with 1MB of RAM and can be upgraded to 2MB with two 256x16-70ns Fast Page Mode SOJ chips.
The card has two jumpers, JP1 when closed allows for IRQ2/9 usage, and JP2 when closed allows for operation when the bus speed is greater than 33MHz. The data sheet for the family of VGA controllers, for which this is perhaps its most advanced member, is readily available. It reports that the card's BIOS supports the following SVGA/VESA modes :
14h - 132x25T
54h/10Ah - 132x43T
55h/109h - 132x25T
5Eh/100h - 640x400x256
5Fh/101h - 640x480x256
58h,6Ah/102h - 800x600x16
5Ch/103h - 800x600x256
5Dh/104h - 1024x768x16i/p
60h/105h - 1024x768x256i/p
6Ch/106h - 1280x1024x16i
6Dh/107h - 1280x1024x256i*
66h/110h - 640x480x32K
64h/111h - 640x480x64K
71h/112h - 640x480x16M
67h/113h - 800x600x32K
65h/114h - 800x600x64K
68h/116h - 1024x768x32Ki
74h/117h - 1024x768x64Ki
* - Requires 2MB of video RAM.
i - Interlaced Mode
T - Text Mode
This card has better compatibility that the S3 card. EGA compatibility is very good. Commander Keen 4, 5 and 6 and Dangerous Dave do not need the SVGA compatibility switch, Keen 1-3 and Keen Dreams do not have scrolling problems, SimCity's text fonts look correct in the EGA high resolution mode and there are almost no flickering lines in the Silpheed intro.
VGA and SVGA compatibility is outstanding. System Shock CD allows the 640x400 mode to be used, although the speed on my 486DX2/66 is not the speed at which I would like to play the game. It has no problem with games with unusual Mode-X VGA modes like 320x240 (Epic Pinball), 320x400 (System Shock CD), 320x199 (Jazz Jackrabbit), 360x350 (Pinball Illusions), 312x200 (Prehistorik 2), 320x184 (Jurassic Park) and 320x350 (Pinball Fantasies). It supports SVGA 640x480 and 800x600 resolution modes in Pinball Illusions perfectly. It works with Prehistorik 1 & 2, Duff and Lollypop, both of which use a tweaked 320x200 mode. It is among the supported 640x400 SVGA modes of Microsoft Flight Simulator 5.x. It can even support the old Paradise SVGA 800x600 mode that Wonderland uses. DOOM and DOOM II run just as fast on this card as the S3 card.
The DOS refresh utility is called CLMODE and there are Windows 3.1 drivers for the chipset. The BIOS revision on my card is 1.00A.
Prompted by a friend of mine, I decided to perform a more demanding test, namely testing this card's support with UniVBE 5.3 and 6.53. UniVBE 6.53 reports that Linear Frame Buffer will not work reliably with CL 542x chips with more than 14MB of RAM. Support for LFB was thus dsiabled in my system, but 16MB of system RAM is more useful in a 486 than 12MB of system RAM and LFB. With 8MB of RAM, UniVBE will install LFB at 14MB. UniVBE also reports that Multi Buffering and Virtual Scrolling are also available, but 8-bit DACs are not present.
The card supports lots and lots of modes with UniVBE loaded, so I didn't test each and every resolution at each and every frame rate. With UniVBE 5.3 all the modes I tested worked. There are more modes supported with UniVBE than with the card's BIOS, and UniVBE offers superior compatibility with some modes than the BIOS alone. UniVBE requires 13KB of RAM and it may not be possible to load it into upper memory, so it should only be used when necessary. Here are the list of modes the card supports with UniVBE loaded :
4-bit Banked Only
640x480
800x600
1024x768
8-bit Banked and Linear
320x200
320x240
400x300
320x400
320x480
512x384
640x350
640x400
640x480
800x600
1024x768
1152x864
15-bit Banked and Linear
320x200
320x240
400x300
320x400
320x480
512x384
640x350
640x400
640x480
800x600
16-bit Banked and Linear
320x200
320x240
400x300
320x400
320x480
512x384
640x350
640x400
640x480
800x600
24-bit Banked and Linear
320x200
320x240
400x300
320x400
320x480
512x384
640x350
640x400
640x480
32-bit Modes
None
I have tried it out and have come to like it more than my S3-805 based Diamond Stealth VLB card. Its slightly faster, more compatible, supports more RAM and video modes. I have no complaints about the DOS video quality. It uses the Cirrus Logic CL-GD5429, which supports true color modes and Windows acceleration. It uses memory-mapped I/O for increased speed. It comes with 1MB of RAM and can be upgraded to 2MB with two 256x16-70ns Fast Page Mode SOJ chips.
The card has two jumpers, JP1 when closed allows for IRQ2/9 usage, and JP2 when closed allows for operation when the bus speed is greater than 33MHz. The data sheet for the family of VGA controllers, for which this is perhaps its most advanced member, is readily available. It reports that the card's BIOS supports the following SVGA/VESA modes :
14h - 132x25T
54h/10Ah - 132x43T
55h/109h - 132x25T
5Eh/100h - 640x400x256
5Fh/101h - 640x480x256
58h,6Ah/102h - 800x600x16
5Ch/103h - 800x600x256
5Dh/104h - 1024x768x16i/p
60h/105h - 1024x768x256i/p
6Ch/106h - 1280x1024x16i
6Dh/107h - 1280x1024x256i*
66h/110h - 640x480x32K
64h/111h - 640x480x64K
71h/112h - 640x480x16M
67h/113h - 800x600x32K
65h/114h - 800x600x64K
68h/116h - 1024x768x32Ki
74h/117h - 1024x768x64Ki
* - Requires 2MB of video RAM.
i - Interlaced Mode
T - Text Mode
This card has better compatibility that the S3 card. EGA compatibility is very good. Commander Keen 4, 5 and 6 and Dangerous Dave do not need the SVGA compatibility switch, Keen 1-3 and Keen Dreams do not have scrolling problems, SimCity's text fonts look correct in the EGA high resolution mode and there are almost no flickering lines in the Silpheed intro.
VGA and SVGA compatibility is outstanding. System Shock CD allows the 640x400 mode to be used, although the speed on my 486DX2/66 is not the speed at which I would like to play the game. It has no problem with games with unusual Mode-X VGA modes like 320x240 (Epic Pinball), 320x400 (System Shock CD), 320x199 (Jazz Jackrabbit), 360x350 (Pinball Illusions), 312x200 (Prehistorik 2), 320x184 (Jurassic Park) and 320x350 (Pinball Fantasies). It supports SVGA 640x480 and 800x600 resolution modes in Pinball Illusions perfectly. It works with Prehistorik 1 & 2, Duff and Lollypop, both of which use a tweaked 320x200 mode. It is among the supported 640x400 SVGA modes of Microsoft Flight Simulator 5.x. It can even support the old Paradise SVGA 800x600 mode that Wonderland uses. DOOM and DOOM II run just as fast on this card as the S3 card.
The DOS refresh utility is called CLMODE and there are Windows 3.1 drivers for the chipset. The BIOS revision on my card is 1.00A.
Prompted by a friend of mine, I decided to perform a more demanding test, namely testing this card's support with UniVBE 5.3 and 6.53. UniVBE 6.53 reports that Linear Frame Buffer will not work reliably with CL 542x chips with more than 14MB of RAM. Support for LFB was thus dsiabled in my system, but 16MB of system RAM is more useful in a 486 than 12MB of system RAM and LFB. With 8MB of RAM, UniVBE will install LFB at 14MB. UniVBE also reports that Multi Buffering and Virtual Scrolling are also available, but 8-bit DACs are not present.
The card supports lots and lots of modes with UniVBE loaded, so I didn't test each and every resolution at each and every frame rate. With UniVBE 5.3 all the modes I tested worked. There are more modes supported with UniVBE than with the card's BIOS, and UniVBE offers superior compatibility with some modes than the BIOS alone. UniVBE requires 13KB of RAM and it may not be possible to load it into upper memory, so it should only be used when necessary. Here are the list of modes the card supports with UniVBE loaded :
4-bit Banked Only
640x480
800x600
1024x768
8-bit Banked and Linear
320x200
320x240
400x300
320x400
320x480
512x384
640x350
640x400
640x480
800x600
1024x768
1152x864
15-bit Banked and Linear
320x200
320x240
400x300
320x400
320x480
512x384
640x350
640x400
640x480
800x600
16-bit Banked and Linear
320x200
320x240
400x300
320x400
320x480
512x384
640x350
640x400
640x480
800x600
24-bit Banked and Linear
320x200
320x240
400x300
320x400
320x480
512x384
640x350
640x400
640x480
32-bit Modes
None
Saturday, November 2, 2013
IBM PC Color Composite Graphics
IBM PC CGA Color Composite Graphics
First, I would like to address some myths. The first myth is that only a few games used composite color. Well over 100 games have been confirmed to use composite color. The second myth is that virtually all of them used the 640x200 graphics mode. In fact, many, many games used composite color, although many looked acceptable on an RGB monitor, and just as many games used 320x200 graphics mode and color composite graphics as those that used the 640x200 graphics mode. Here are a list of games that are known to use composite artifact color graphics and the type of graphics they use :
| Game Title | Composite Color Type |
| Adventure in Serenia | 320 |
| Agent USA | 320 |
| Alphabet Zoo | 320 |
| Ancient Art of War | 320 |
| Archon: The Light and the Dark | 320 |
| Battle of Antietam | 320 |
| BC's Quest for Tires | 640 |
| Below the Root | 320 |
| Beneath Apple Manor | 320 |
| Black Cauldron, The | 640 |
| Blue Angels: Formation Flight Simulation | 640 |
| Borrowed Time | 320 |
| Boulderdash | 320 |
| Boulderdash II | 320 |
| Bruce Lee | 640 |
| BurgerTime | 640 |
| Buzzard Bait | 320 |
| California Games | 640 |
| Championship Baseball | 640 |
| Championship Golf: The Great Courses of the World - Volume One: Pebble Beach | 320 |
| Chuck Yeager's Advanced Flight Trainer | 640 |
| Crossfire | 320 |
| Demon's Forge | 320 |
| Dino Eggs | 320 |
| Donald Duck's Playground | 640 |
| Drag Race Eliminator | 320 |
| Dragon Wars | 320 |
| Exodus : Ultima III | 320 |
| Fooblitzky | 320 |
| Football | 640 |
| Freddy's Rescue Roundup | 320 |
| Frogger II: Three Deep | 640 |
| Gamma Force in Pit of a Thousand Screams | 320 |
| Gertrude's Puzzles | 320 |
| Gertrude's Secrets | 320 |
| Gettysburg: The Turning Point | 320 |
| Gold Rush | 640 |
| Indianapolis 500: The Simulation | 640 |
| J-Bird | 640 |
| Jumpman | 640 |
| Jungle Hunt | 320 |
| King's Quest | 640 |
| King's Quest II : Romancing the Throne | 640 |
| King's Quest III : To Heir is Human | 640 |
| King's Quest IV : The Perils of Rosella (AGI) | 640 |
| Lane Mastodon vs. the Blubbermen | 320 |
| Leisure Suit Larry in the Land of the Lounge Lizards | 640 |
| Lost Tomb | 320 |
| M.U.L.E. | 320 |
| Manhunter : New York | 640 |
| Manhunter 2 : San Francisco | 640 |
| Maniac Mansion (Low-Res) | 320 |
| MasterType | 320 |
| Mean 18 | 640 |
| Mickey's Space Adventure | 640 |
| MicroLeague Baseball | 320 |
| MicroLeague Baseball II | 320 |
| Microsoft Decathlon | 320 |
| Microsoft Flight Simulator (v1.0) | 640 |
| Microsoft Flight Simulator (v2.0) | 640 |
| Mindshadow | 320 |
| Mixed-Up Mother Goose | 640 |
| Mr. Cool | 320 |
| Ms. Pac-Man | 640 |
| Murder on the Zinderneuf | 320 |
| Night Mission Pinball | 640 |
| Night Mission Pinball (v3.0) | 640 |
| Oil's Well | 640 |
| Pits & Stones | ? |
| Pitstop II | 640 |
| Roadwar 2000 | 320 |
| Roadwar Europa | 320 |
| Robot Odyssey | 320 |
| Rocky's Boots | 320 |
| Shamus | 320 |
| Sierra Championship Boxing | 320 |
| Solo Flight | 320 |
| Space Quest : Chapter I : The Sarien Encounter | 640 |
| Space Quest II : Vohaul's Revenge | 640 |
| Spy Hunter | 320 |
| Starflight | 640 |
| Strip Poker: A Sizzling Game of Chance | 320 |
| Sub Mission | 320 |
| Super Zaxxon | 640 |
| Superbowl Sunday | 640 |
| Tales of the Unknown: Volume I - The Bard's Tale | 640 |
| Tapper | 640 |
| Tass Times in Tonetown | 320 |
| The Bard's Tale II: The Destiny Knight | 640 |
| The Bard's Tale III: Thief of Fate | 640 |
| The Fourth Protocol | 320 |
| The Oregon Trail | 320 |
| The Seven Cities of Gold | 640 |
| The Tracer Sanction | 320 |
| The World's Greatest Baseball Game | 640 |
| Think Quick! | 320 |
| Transylvania | 320 |
| Troll's Tale | 640 |
| Ultima II : Revenge of the Enchantress | 320 |
| Ultima IV : Quest of the Avatar | 320 |
| Ulysses and the Golden Fleece | 320 |
| Wasteland | 640 |
| Where in the U.S.A. is Carmen Sandiego? | 320 |
| Where in the World is Carmen Sandiego? | 320 |
| Wilderness: A Survival Adventure | 320 |
| Winnie the Pooh in the Hundred Acre Wood | 640 |
| Wizard of Id's WizType | 640 |
| Zak McKracken and the Alien Mindbenders (Low-Res) | 320 |
| ZorkQuest: Assault on Egreth Castle | 320 |
| ZorkQuest: The Crystal of Doom | 320 |
The advantage to using the 640x200 graphics mode is that a good color palette is available using white as the foreground color. White or light gray, rather than high intensity or bright white was used because the brightness level was more tolerable on composite devices. The disadvantages are that the game must support two completely different sets of graphics, otherwise users of RGB monitors would feel left out. Additionally, most games used an algorithm that requires extra coding and CPU time to implement for either the RGB or color composite mode.
The advantage to using 320x200 graphics is that only one set of graphics, or in a few cases two sets of very similar graphics, need be used. Both users of composite monitors and RGB monitors can be satisfied, although the result may not be as impressive as tailoring graphics to either RGB or composite monitors. The disadvantage is that the graphics designer has to cope with both direct and artifact colors, often giving a fuzzy image. With the green/red/brown palette, the results often look somewhat garish and it was seldom intended to be used for composite color graphics. Often that palette, many times with a blue background, would be used for the RGB graphics selection. The colors choices available in the 320x200 modes are not as flexible as they would be in the 640x200 mode.
![]() |
| 320x200 Palette 1 High Intensity Composite Color Graphics from L to R : RGB, Old CGA, New CGA, PCjr., Tandy |
![]() |
| 320x200 Palette 0 High Intensity Composite Color Graphics from L to R : RGB, Old CGA, New CGA, PCjr., Tandy |
![]() |
| 640x200 Color Composite Graphics from L to R : Old CGA, New CGA, PCjr., Tandy |
IBM CGA cards, Catalog Part Number 1504910 come with Card and PCB numbers
Card PCB
1804456
1804464
1804472
1501486 1501453
1501981 1501982
6278550 6133807?
6447058
Cards 1804456 to 1501486 are early CGA cards. 1501981 to 6447058 re late CGA cards. The 180xxxx cards have the black brackets on them which the very earliest IBM PC cards had. Later cards use a silver bracket appropriate for an IBM PC, XT or any compatible machine. The major physical differences between the two versions of these can be seen here :
![]() |
| Old CGA vs. New CGA, note the increased number of resistors on the New CGA card (courtesy of minuszerodegrees.net) |
Old cards seem to come exclusively with MC6845s, while new cards will use either chip. Old cards always seem to use a green PCB color, but new cards almost always use a brown PCB color.
One of the chief differences between these cards is the number of shades of gray it can produce when connected to a monochrome composite monitor or B&W TV set through an RF modulator. Old cards can produce two shades of gray plus black, while new cards can produce 15 shades of gray plus black in black and white modes. Many computer users had to use monochrome green, amber or white monitors back in the day, and the increase in shades of gray meant that more detail could be seen in the graphics. With the old cards, you had black for black and gray, white for white and bright white and gray for all other colors. This is found in CGA Mode 5, which on an RGB monitor gives a cyan, red and white palette but on a color composite monitor will give either black and white (2 colors) or black, dark gray, light gray and white (4 colors).
Colorwise, new CGA was adjusted to more closely adhere to the NTSC standard. It will appear more consistently across different monitors than old CGA. There are differences between the saturation and brightness between the colors output by old and new CGA. Newer monitors may make the image too dark with old CGA, requiring the user to increase the brightness level of his monitor. There is a test program that can tell you which type of CGA card you may have. Here are the screenshots of it showing how it informs you of the type you may have :
Old CGA has a raster bendiness issue with certain computers, and the black and white modes may not always eliminate all colors. Running the signal through a powered RF modulator like the Recoton Video RF Modulator V647 should eliminate the bendy horizontal sections of the picture without reducing the video quality (assuming you are not modulating an audio signal with the video.)
Unlike the Apple II, where the pixels being output in the high resolution and double high resolution modes were either white or black, on the PC the pixels being put out have direct color. The six colors in between black and white, without accounting for intensity, are generated by adjusting the phase of the 3.58MHz color burst signal for the hue and the amplitude of that signal for the brightness. Unlike on an RGB TTL monitors from IBM, color #6 is dark yellow, not brown, because a color composite monitor or TV does not have circuitry built inside it to detect color #6 and turn it to brown.
For direct or chroma colors, both the old and new CGA cards look similar to the RGB colors, but there are minor differences between them. The PCjr. and Tandy 1000 show direct or chroma colors identically with the new CGA cards. Here are the 16 direct or chroma colors :
![]() |
| Rows 1 & 4 : RGB CGA Colors, Rows 2 & 5 : Old CGA Direct Colors, Rows 2 & 6 : New CGA, Tandy and PCjr. Direct Colors |
![]() |
| 320x200 Palette 1 Color Composite Graphics Example - Adventure in Serenia New CGA |
![]() |
| 320x200 Palette 0 Color Composite Graphics Example - Jungle Hunt (Note the Diving Bar, New CGA) |
![]() |
| 640x200 Color Composite Graphics Example #1 - Pitstop II, New CGA |
![]() |
| 640x200 Color Composite Graphics Example #2, - King's Quest, Old CGA |
Tandy can only show the same direct or chroma colors as CGA, but the Tandy 1000 artifact colors are different. Changing the hue adjust will be sufficient to change Tandy colors to late CGA colors in DOSBox, and vice versa, but only in the 640x200 mode. A hue adjustment in the 640x200 mode of 120 degrees will give a good Tandy palette. You can only approximate the palette colors for the 320x200 modes. Games that are not "Tandy-aware" with their color composite graphics will show different colors. This occurs either with either 320x200 or 640x200 graphics.
Blue Angels: Formation Flight Simulation is the only game known where the color composite graphics look correct on the Tandy 1000 but do not look right on the IBM CGA cards. It also apparently was developed on a system with a comb filter. For a 1989 game, this would not have been difficult to find, but comb filters were not used on the composite color monitor and TVs of the early 1980s when most of the composite color CGA games were developed. Many early 1980s games look better on monitors without comb filters. Compare these two screenshots :
![]() |
| IBM CGA Composite |
![]() |
| Tandy 1000 Composite |
Indianapolis 500 specifically supported both IBM and Tandy color composite graphics with different command line arguments so that the colors would look correct regardless of system. However, the colors in each mode are not identical. The command line switch /c1 will give colors appropriate for a CGA card, and switch /c2 will give colors appropriate for a Tandy graphics adapter.
![]() |
| Indianapolis 500 - The Simulation 640x200 RGB CGA |
![]() |
| Indianapolis 500 - The Simulation 640x200 RGB Tandy |
![]() |
| Indianapolis 500 - The Simulation Color Composite Early CGA |
![]() |
| Indianapolis 500 - The Simulation Color Composite Late CGA |
In modes using true 320x200 graphics (the AGI games use the 320x200 16 color graphics mode, but the effective graphics resolution is 160x200, at least for graphics above the command line), you can see color, but detail is lost, unintended artifacts that look like Hanover bars appear, and the game usually looks bad. As far as 640x200x4 graphics go, no game is known to use that graphics mode.
![]() |
| Indianapolis 500 - The Simulation Color Composite Tandy (Simulated) |
IBM PCjr. Color Composite Graphics
The PCjr. does support color composite artifact colors, but the artifact colors are different from the CGA cards and the Tandy 1000. Again this is due not to differences in the phase of the color burst but the pixel clock delay compared with the CGA cards. In the 320x200 mode, there is a pixel clock delay of 120 degrees compared with the CGA cards. PCjr. color composite graphics can appear quite different to CGA color composite graphics.
Below the Root sounds best (at least the opening song does) when run on an IBM PCjr. and the direct colors when the game is run on a PCjr. were tweaked to look very appropriate for a color composite monitor with artifact color. Ditto for The Seven Cities of Gold, except it uses 640x200-based color composite graphics.
![]() |
| IBM PC CGA RGB |
As explained in the prior blog entry, the PCjr's default 320x200 palette is not identical to the CGA's default cyan, magenta and white palette. The PCjr. intentionally uses high intensity white instead, causing brightness and saturation differences.
Wilderness : A Survival Adventure may show the best composite color results using the PCjr., but the underlying patterns are not changed for the machine. Frogger II is PCjr. aware and shows good composite or RGB colors either with CGA or PCjr. A late version of Pitstop II has direct support for the PCjr.'s 160x200x16 mode, so it will always look better than the CGA with or without color composite graphics. Ditto for Murder on the Zinderneuf, all versions use 160x200x16 on the PCjr. Several other games just use 160x200x16 on the PCjr. because it looks excellent on an RGB or color composite monitor.
BC's Quest for Tires uses 320x200 composite color graphics on the PCjr. but 640x200 composite color graphics on the PC. Microsoft Flight Simulator 2.xx uses 640x200 composite color graphics for the PC and PCjr., but the patterns are different for each. There was a version of Ultima II for the PCjr. that uses appropriate composite color 320x200 graphics. M.U.L.E. also uses 320x200 composite color graphics.
Current SVNs of DOSBox emulate old and new CGA with the cga machine type, 640x200 and 320x200 color composite graphics but does not emulate color composite graphics with the tandy or pcjr machine types.
Other computers may have inaccurate CGA artifact colors. The Columbia Data Products 1600 (one of the very first PC clones) came with a CGA clone card that is almost as off as the Tandy or PCjr. A hue adjustment of 315 degrees will get something like its palette in 640x200 mode. Here are the games that intentionally support composite color on an IBM PCjr. with the type of composite color they use :
Lode Runner : Support for All Composite Color Types
Lode Runner for the PC always looks best in composite color mode, despite using the 320x200 resolution. Only the in-game border and certain objects on the screen really take advantage of composite color, but the solid objects always look appropriate regardless of monitor.
When first released for the PC, the game only supported the IBM PC and CGA. A second release added PCjr. support by adjusting the patterns for the composite color objects. A final release under the Tandy label retained the PC and PCjr.'s respective patterns but adjusted the patterns again when it detected a Tandy 1000 machine. Here are correct screenshots for the CGA, PCjr. and Tandy both in RGB and Composite :
Limitations of the Tint Control
NTSC color TVs and monitors have a tint (hue) control dial, buttons or function. The tint control is intended to adjust for phase errors in a transmitted broadcast signal. The tint control adjusts the phase of the TV's reference color burst signal slightly toward the green or red end of the spectrum. The color burst is intended to have a phase of 180 degrees, and by using the tint control, you can adjust the TV's phase by about 40 degrees from the official phase. This was important during the era of broadcast TV before cable became ubiquitous. Here is an NTSC color wheel to give you an idea of where the colors fall by degrees :
Unfortunately, for Tandy and PCjr. display adapters, 40 degrees is not sufficient to turn Tandy or PCjr composite colors into CGA colors. Relative to late CGA, assuming its color burst is near 180 degrees, 640x200 Tandy is at 300 degrees and 640x200 PCjr. is at 120 degrees. In the 640x200 mode, you can get somewhat close to the CGA colors at the extreme end of the tint control (green for PCjr, red for Tandy), but in 320x200 mode, you really won't. In DOSBox, F11 and Alt F11 emulate the function of the tint control.
This blog entry gives a very readable overview of how composite CGA works : http://8088mph.blogspot.com/2015/04/cga-in-1024-colors-new-mode-illustrated.html
![]() |
| Below the Root 320x200 Color Composite Late CGA |
![]() |
| Below the Root 320x200 Color Composite Early CGA |
![]() |
| Below the Root 320x200 Color Composite PCjr. |
Wilderness : A Survival Adventure may show the best composite color results using the PCjr., but the underlying patterns are not changed for the machine. Frogger II is PCjr. aware and shows good composite or RGB colors either with CGA or PCjr. A late version of Pitstop II has direct support for the PCjr.'s 160x200x16 mode, so it will always look better than the CGA with or without color composite graphics. Ditto for Murder on the Zinderneuf, all versions use 160x200x16 on the PCjr. Several other games just use 160x200x16 on the PCjr. because it looks excellent on an RGB or color composite monitor.
BC's Quest for Tires uses 320x200 composite color graphics on the PCjr. but 640x200 composite color graphics on the PC. Microsoft Flight Simulator 2.xx uses 640x200 composite color graphics for the PC and PCjr., but the patterns are different for each. There was a version of Ultima II for the PCjr. that uses appropriate composite color 320x200 graphics. M.U.L.E. also uses 320x200 composite color graphics.
Current SVNs of DOSBox emulate old and new CGA with the cga machine type, 640x200 and 320x200 color composite graphics but does not emulate color composite graphics with the tandy or pcjr machine types.
Other computers may have inaccurate CGA artifact colors. The Columbia Data Products 1600 (one of the very first PC clones) came with a CGA clone card that is almost as off as the Tandy or PCjr. A hue adjustment of 315 degrees will get something like its palette in 640x200 mode. Here are the games that intentionally support composite color on an IBM PCjr. with the type of composite color they use :
| Game Title | Composite Color Type |
| BC's Quest for Tires | 320 |
| Below the Root | 320 |
| M.U.L.E. | 320 |
| Ultima II : Revenge of the Enchantress PCjr. Version | 320 |
| Frogger II: Three Deep | 640 |
| Microsoft Flight Simulator (v2.0) | 640 |
| The Seven Cities of Gold | 640 |
Lode Runner : Support for All Composite Color Types
Lode Runner for the PC always looks best in composite color mode, despite using the 320x200 resolution. Only the in-game border and certain objects on the screen really take advantage of composite color, but the solid objects always look appropriate regardless of monitor.
When first released for the PC, the game only supported the IBM PC and CGA. A second release added PCjr. support by adjusting the patterns for the composite color objects. A final release under the Tandy label retained the PC and PCjr.'s respective patterns but adjusted the patterns again when it detected a Tandy 1000 machine. Here are correct screenshots for the CGA, PCjr. and Tandy both in RGB and Composite :
![]() |
| IBM PC CGA RGB |
![]() |
| IBM PC Old CGA Composite |
![]() |
| IBM PC New CGA Composite |
![]() |
| IBM PCjr RGB |
![]() |
| IBM PCjr Composite |
![]() |
| Tandy 1000 RGB |
![]() |
| Tandy 1000 Composite |
Limitations of the Tint Control
NTSC color TVs and monitors have a tint (hue) control dial, buttons or function. The tint control is intended to adjust for phase errors in a transmitted broadcast signal. The tint control adjusts the phase of the TV's reference color burst signal slightly toward the green or red end of the spectrum. The color burst is intended to have a phase of 180 degrees, and by using the tint control, you can adjust the TV's phase by about 40 degrees from the official phase. This was important during the era of broadcast TV before cable became ubiquitous. Here is an NTSC color wheel to give you an idea of where the colors fall by degrees :
Unfortunately, for Tandy and PCjr. display adapters, 40 degrees is not sufficient to turn Tandy or PCjr composite colors into CGA colors. Relative to late CGA, assuming its color burst is near 180 degrees, 640x200 Tandy is at 300 degrees and 640x200 PCjr. is at 120 degrees. In the 640x200 mode, you can get somewhat close to the CGA colors at the extreme end of the tint control (green for PCjr, red for Tandy), but in 320x200 mode, you really won't. In DOSBox, F11 and Alt F11 emulate the function of the tint control.
This blog entry gives a very readable overview of how composite CGA works : http://8088mph.blogspot.com/2015/04/cga-in-1024-colors-new-mode-illustrated.html
Subscribe to:
Posts (Atom)


































