Monday, May 12, 2014

Game Patches Allowing Games to Run on an IBM PCjr.

Many, many PC games were released during the 1980s that supported the IBM PC, XT, Portable, AT, XT/286, Amstrad PC-1512 & 1640, Tandy 1000, 1200, 3000/4000, Compaq computers etc.  However, many of these games specifically lack PCjr. support.  Some games may work OK with a Tandy mod, but many do not work at all or only support 4-color CGA and PC speaker sound on the PCjr.  Many games were hacked back in the day to work on a PCjr., and these hacks were distributed in PCjr. Newsletters, on BBSes, and through disks.  Recently, I have been sent a CD-ROM with a great deal of PCjr. material on it.  The most interesting portion of the disk contains patches to run certain games on the PCjr. which otherwise do not run.  I have prepared a list of the patches included on the disk for major games with a description of what each does with the game :

Game Title What it Does Notes
688 Attack Sub 16 color video, 3 voice sound, PCjr. Menu Option, PCjr. ID Check
Artifox Copy protection removal
Bard's Tale II : Thief of Fate 16 color video
Battle Chess 16 color video, 3 voice sound Two Patches, one for graphics, one for sound
Battle Tech : The Crescent Hawk's Inception 16 color video, 3 voice sound, PCjr. Menu Option
California Games 16 color video, 3 voice sound
Championship Lode Runner V20 Compatibility
Chuck Yeager's Advanced Flight Simulator Copy protection removal
Designasaurus Compatibility Fixes
F-19 Stealth Fighter 16 color video, 3 voice sound Two Patches, one for 3 voice sound with 4 color video, one for 16 color and 3 voice sound, Tandy 1000 Mod Required for 16 color
Grand Prix Circuit 16 color video, PCjr. Menu Option
Indiana Jones and The Last Crusade: The Graphic Adventure 16 color video
Jack Nicklaus' Greatest 18 Holes of Major Championship Golf 16 color video Multiple Versions
Kings Quest IV : The Perils of Rosella 16 color video, PCjr. ID Check For Versions without PCJR320.DRV
Knight Games 16 color video
Leisure Suit Larry II : Looking for Love in all the Wrong Places 16 color video, PCjr. ID Check For Versions without PCJR320.DRV
Maniac Mansion 16 color video, 3 voice sound
Microsoft Flight Simulator 3.0 16 color video
One on One : Jordan vs. Bird 16 color video, 3 voice sound, PCjr. Menu Option, PCjr. ID Check
Paperboy 16 color video, 3 voice sound
Police Quest II : The Vengeance 16 color video, PCjr. ID Check For Versions without PCJR320.DRV
Shanghai 16 color video
Silpheed 16 color video Manual Install, no Patch Required
SimCity 16 color video, PCjr. Menu Option
Space Rogue 16 color video
Star Rank Boxing II 16 color video, PCjr. ID Check
Starflight 16 color video Different Patches for Old and New Versions
Steel Thunder 16 color video, PCjr. Menu Option, PCjr. ID Check
Strip Poker II 16 color video, PCjr. ID Check
Tales of the Unknown Volume 1 : The Bard's Tale 16 color video
Test Drive II – The Duel 16 color video
Tetris 16 color video
The Games : Summer Edition 16 color video
Ultima IV : Quest of the Avatar 16 color video
Ultima V : Warriors of Destiny 16 color video
Where in the World is Carmen Sandiego MS-DOS 2.1 Patches
Zak McKracken and the Alien Mindbenders 16 color video, 3 voice sound
Zany Golf 3 voice sound

This is probably only a fraction of the games that were ever hacked to run on the PCjr.  If anyone has more patches, I'd love to hear from them.  The patches are available here : http://etc.pixesthesia.com/jrstuff/

Sunday, May 11, 2014

Memory in the Tandy 1000 Series : Why More is Not Always Better

All true Tandy 1000s (true Tandys do not include any RLX or RSX machines) come shipped from the factory with variable amounts of RAM, and all can be upgraded.  Here is the basic chart :

128K - Tandy 1000/A
256K - Tandy 1000HD, 1000EX, 1000SX (also Tandy 1000/A)
384K - Tandy 1000SX, 1000SL (also Tandy 1000/A/HD, 1000EX, 1000HX)
512K - Tandy 1000SL/2, 1000RL/RL-HD (also Tandy 1000/A)
640K - Tandy 1000TX, 1000TL, 1000TL/2, 1000TL/3 (all other upgraded Tandys)
768K - Tandy 1000RL/RL-HD, 1000TX, 1000TL, 1000TL/2, 1000TL/3 (upgraded)

(all systems mentioned in parentheses are systems upgraded with RAM expansion cards, boards or had RAM installed in mainboard sockets after the system came from the factory)

Now you might think that more RAM is always better, but consider a few of these games :

King's Quest, Touchdown Football - The PCjr. Only Booters -versions of these games assume that the video memory is at the top or within the first 128KB of RAM, as it would be on a PCjr.  This assumption is also true for the Tandy 1000/A, but vanishes when you upgrade the RAM with an expansion card.  The Tandy 1000 HD comes with one of these cards pre-installed but can be removed to bring the system back down to 128KB.  The hard drive controller card that comes with the system also uses DMA, so it may have to be removed.  The Tandy versions of these games work fine so long as the RAM is 640KB or Less

Demon Attack - The Tandy version of this game, which unlike the PCjr. version came on disk, will work with RAM up to 640KB, but will fail to work if 768KB is in the system.  This was well before any idea was given to 768KB.  Touchdown Football also has the same issue, it will not work correctly if 768KB is installed.  Ultima V will fail to run with 768KB.

Demon's Forge - The Mastertonic 1987 PC port of this game supports 16-color Tandy graphics only if there is no DMA chip in the system.  Otherwise it supports 4-color CGA graphics.  The Tandy 1000/A, EX and HX all do not come with DMA, but to upgrade the RAM, you must use a board with a DMA chip included.  I believe this may be a hold over from its port to the PCjr.

Demon Stalkers, Duck Tales : Quest for the Gold, Fire King, Harley-Davidson: The Road to Sturgis, The Three Stooges, The Simpsons : Arcade and Snow Strike - These late 1980s games will show no graphics, garbled graphics or fail to work if the RAM has been upgraded beyond 640KB.  Apparently these games were not programmed with the idea that you could expand a Tandy beyond 640KB, despite the TX already being released by this time.  To play these games, you need to remove the RAM upgrades in a system with 768KB.  Most require 512KB or 640KB, so apparently only two possibilities were envisioned for these games.  Alternatively, you can use their CGA command line arguments (C or CGA usually) to play the games with CGA graphics and Tandy sound.

Saturday, May 3, 2014

Practical Issues with using the Tandy 1000 TL

This week I have reacquired from a friend a Tandy 1000 TL he once sent me.  I would like to describe my experiences with it, getting programs to work with it, etc.

Floppy Drives :

Tandy really wanted you to use the drives they sold, so they supplied these awkward cables that tended to fit only their drives.  If you have the original Tandy cable, you will not that it does not connect to the floppy header on the system motherboard in the way you would expect.  Instead, it uses the berg connector nearest the the card edge for the 5.25" drive.  That connector plugs into the motherboard, and from that plug the wire comes out at both ends.  The short end has the card edge connector, and the long end has two berg connectors for the 3.5" drives.  The cable may not work with all 5.25" drives.

The next thing to note is that Tandy supplied power to the 3.5" drives through the drive cables.  If you are using a 3.5" drive that does not use the Tandy-power-in-drive method, then you need to cut small holes in pins 3, 5, 7, 9, 11, 29, 31, 33.  Tandy already did this for that end of the cable with a card edge on it, since all 5.25" IBM PC compatible drives use the 4-pin Molex connector.

Additionally, Tandy's cables do not use a twist to determine drive A, B and C.  Instead you must manipulate DS0-DS3 on the drive.  If you use a standard "universal floppy drive" cable, you must untwist the twist. 720KB drives usually have jumpers or switches, as did 360KB and 1.2MB drives.  Modern 1.44MB drives are always set to DS1, so by default they are Drive B:.  The setup program may be able to change that to Drive A:, but you won't be able to use two of these drives unless you figure out how to set one of them to DS0.

Finally, if you use a custom cable, be prepared to insert it "backwards,"  The bit of plastic on one of the ends of the berg connector on modern universal cables is on the wrong side from the Tandy's perspective.  File, cut or dremel it down.

The built-in 720K floppy drive should be a Sony MP-F11W or MP-F17W.  It has a switch on the side to select DS0-3.  It is more or less identical to the earlier Sony 3.5" drives Tandy used except it has a small blue eject button instead of a large "lip" button.

3.5" drives automatically terminate depending on what drive they are, but 5.25" drives have a terminator pack or jumper to set the termination.  Regardless of position on the cable, whichever drive is drive A: must be terminated, and drives B: and C: cannot.  If your 360KB drive is drive B:, remove the terminator.

Hard Drives : Tandy 1000 TL have no hard drive interface, you will need to find one that works in the Tandy.  XT-IDE devices should work fine.  There is a vintage device called the Silicon Valley ADP-50L that uses a faster method for data transfer, memory mapping, than the I/O driven method of the XT-IDE interface.  On the other hand, while the XT-IDE can handle drives up to the DOS Final FAT 16 limits (8GB, 2GB partitions), the ADP card is limited to the Int 13h barrier of 504MB.  There is also the XTA interface that was used with old hard drives, but they only get to 40MB.

Alternatively, you can use an 8-bit SCSI card.  The Trantor T-128 and Rancho Technologies RT1000B will boot in a Tandy 1000 TL.  The more common, yet somewhat slower Trantor T-130B will not boot a device in the TL, but will work if initialized with a floppy drive.  With an external SCSI adapter, you can add floppy drives, hard drives or CD-ROM drives without taking up the precious room in the machine.

Built in Video and Video Cards :

The Tandy 1000 TL's built-in video is a jack-of-all-trades.  It is nearly 100% CGA compatible, supports Tandy 16-color graphics and can also emulate a Hercules card quite well.  It also supports EGA and VGA cards.  You could insert a CGA video card in it, but unless you are looking for composite color output, the built-in video is superior.  Any video card inserted into an expansion slot will "disable" the built-in video.

The video inside the TL and later machines is called Tandy Video II because it supports a special 640x200x16 mode.  Relatively few games support it, but a recent patch provides support for all Sierra 256-color SCI1 and 1.1 games.

With VGA cards, you should run a simple program called VGAFIXC.COM to modify some bytes in the BIOS data area that programs frequently look to to detect VGA.  If you can find a VGA card that can work in an 8-bit slot, there is an excellent utility called VSWITCH that allows you to switch between the built in video adapter (CGA, Tandy, Hercules) and a VGA expansion card.  I use a Cirrus Logic CL-5401 basic 16-bit VGA card I pulled from a Packard Bell.  It works just fine, no jumpers, dipswitches or drivers needed.  With a VGA card, a Tandy system becomes a real jack-of-all-trades when it comes to PC video.

Some games are aware of a Tandy and often do not detect a non-Tandy video adapter, so you may need to force some to work despite their protests if you can with command line arguments or in their setup programs.

You can switch from color (Tandy/CGA) to monochrome (Hercules) by pressing Ctrl + Alt + Shift + V at bootup.

The built in video uses IRQ5 for indicating when the adapter is in a vertical retrace, allowing for rapid screen updates.  It is set by a jumper on E1-E2.  If E2-E3 is set instead, IRQ5 will be available to the expansion slots.  Whether the video uses IRQ2 when IRQ5 is disconnected is debatable.  IRQ5 is typically used by non-Tandy aware hard drive controllers.

Keyboard :

The Tandy 1000 TL only works with keyboard supporting the XT keyboard protocol.  It came with the Tandy Enhanced Keyboard, a standard 101-key autoswitching XT/AT protocol keyboard that works in just about any PC.  It will work in the IBM PC, XT, AT and any PC with a 5-pin DIN or 6-pin PS/2 mini-DIN that supports an XT or an AT protocol keyboard.  It will work in a modern motherboard with a PS/2 port or PS/2 to USB converter.

The TL will also work with an IBM 83-key Model F PC/AT keyboard.  According to the Technical reference, it (and the Tandy 1000 SL) should also work with a 90-key Tandy 1000 keyboard, but it requires an adapter because the Tandy 1000 keyboard uses an 8-pin DIN and the Tandy 1000 TL keyboard port is a 7-pin DIN.  I tried making an adapter, but no key presses were registered.  The TL/2, SL/2 and later machines do not have a 7-pin port, so this functionality cannot be used, even if it exists, in these machines.

Case :

The case for the later Tandys are all really easy to remove.  Just unscrew one screw on each side and pull the sides out a bit, then up, then forward.  Unlike the earlier Tandys, you don't need to disconnect the keyboard or the joystick ports, which have been relocated to the back of the machine.

Inside the machine is easier to work in than the older models.  There is no internal shielding to remove to get at the innards.  The TL uses a sheet metal cover, unlike the TX and earlier models which used plastic.  The screws for the expansion slots are small phillips head screws, and the plastic on the back has indentations to allow for easy screwdriver access.  The left 3.5" drive bay can be removed by unscrewing two screws on the front metal chassis and pushing the bay back until the clips clear.  The 5.25" bay requires drive rails.  I am not sure whether modern drive rails will work.

The front bezel may have the left 3.5" drive cutout covered with a plastic panel.  Once the panel is removed, you can install another floppy drive that conforms to the shape of the cutout.  If it does not, or you wish to use some drive with a faceplate, you will need a dremel.

Serial :

There is one 9-pin serial port on the back, and it uses a 8250B UART.  It is set to COM1.  However, the serial hardware has been incorporated into the PSSJ chip, so it may not be as robust as a card with a discrete chip.

Game Ports :

There are two 6-pin DIN game ports on the back of the machine next to the keyboard sockets.  Unlike the game ports of the TX and earlier models, you can disable the built-in game ports of the TL and later machines in software.  The game ports in the TX and earlier machines have to be disabled by cutting a pin or two on one of the ICs on the system board.

Parallel Port :

The Tandy parallel port has been covered in more detail in another post.  In the TL, there is a setup setting for output enable.  This should corresponds to bit 5 at port 37A, allowing for bidirectional mode.  However, as the Tandy parallel port in any model with a PSSJ chip (except the TL/3 and RLX) is missing one of the printer select lines, it may not work with any device requiring bidirectional parallel port mode.  The other printer select line has a jumper, E4-E5, to connect it from the card edge to the PSSJ.

Conventional Memory Upgrade :

The TL can be upgraded from 640K to 768K by inserting four 64Kx4 (120ns or better) chips into the four unpopulated memory sockets on the motherboard.  This extra RAM will allow you to enjoy a full 640KB of conventional memory without the onboard video taking a portion of it.  However, this extra 128K cannot be used for any other purpose, it is solely dedicated to the on-board video.

Expanded Memory :

Only a few Expanded Memory boards will work in the TL, and this is mostly due to the fact that there is only room for 10" cards.  Most Expanded Memory boards run the full 13".

Real Time Clock :

The TL uses a Dallas 1215E RTC which is powered by a coin-style battery, a CR2032.  The built in DOS-in-ROM will handle keeping the system date and time up to date, a separate driver is not needed.

CPU Upgrades :

A math coprocessor socket is available in the TL.  The 80286 CPU is socketed in a 68-pin PLCC socket under the left 3.5" bay.  It should only be removed with a PLCC extractor and after the bay above has been removed.  There are 386 and 486 upgrades which can plug into these boards and offer up to 2x the performance of the original 8MHz 80286.  The built-in video performance will not improve.  I have one called the IO Data PK-X486/87SL, which is a Japanese product intended for an NEC-9801 machine.

While the accelerator is usually a good thing, I have encountered two problems with the one I am using.  First, the floppy drives simply will not respond, no matter how the machine is slowed down.  Second, the audio recording function is speed-sensitive in the TL, so audio will record too quickly using Deskmate.  The TL/2 should fix this problem with a double-buffered chip.  I understand that Improve Technologies Make-it-486 will also work in the TL.

Built in Sound and Sound Cards :

The TL comes with the Tandy PSSJ sound chip.  It provides for Tandy 3-voice sound and digital audio input and output through the internal speaker.  The speaker has a volume control, an earphone out and a line/mic in.  Do not connect a Line Input without first setting the jumper to E7-E8.

The digital audio output function sits on DMA1 and doesn't like other sound cards, like a Sound Blaster, to use DMA1.  It also uses IRQ7.  A Mediavision Thunderboard allows you to disable the DAC, at which point is functions like an Adlib with a gameport (and without MIDI interface).  Additionally, a Pro Audio Spectrum 16 and a MedixTrix AudioTrix Pro require software initialization before functioning, so they will work with the PSSJ.

Sound Blaster Pros and early Sound Blaster 16s only work with the PSSJ when set to DMA3.  Earlier Sound Blasters are hard wired to DMA1.  The DMACTRL jumper on some Sound Blaster 2.0s and Pro 1.0s will not solve the problem, nor will removing the jumper from DRQ1, since DACK1 is still wired.  The second greneration Sound Blaster 16s, which use diagnose.exe or sbconfig.exe to set their IRQ and DMAs should work.  For a solution for the ISA PnP Sound Blaster 16s, look here : http://www.vintage-computer.com/vcforum/showthread.php?38484-ISA-XT-Sound-card-list.

The DAC in the SL and TL were rather speed sensitive.  Essentially an audio sample played back in one machine would be too fast or slow in the other machine unless the program adjusted itself for the system speed.  This is not an issue in the TL/2 or SL/2 or later computers because the DACs on these computers are double buffered.

DOS-in-ROM :

The TL comes with the basic core of Tandy DOS 3.3 in ROM.  This is very helpful when you are trying to run DOS programs off floppy disks, you don't need a disk with COMMAND.COM in the drive.  If you have no hard drive installed, then the DOS-in-ROM becomes drive C: if you have 1-2 floppy drives, and drive D: if you have three.  If you have a hard drive installed, it will be drive C: or D: and the ROM drive will be drive D: or E:.  Here are the contents of the ROM drive :

 Volume in drive D has no label
 Directory of  D:\

AUTOEXEC BAT       20   6-15-88   1:00p
AUTOMEM  COM     1962   6-15-88   1:00p
COMMAND  COM    25612   6-15-88   1:00p
DESK     COM       77   6-15-88   1:00p
DISKCOPY COM     6264   6-15-88   1:00p
DRVR8530 MOD     6652   6-15-88   1:00p
FORMAT   COM    11681   6-15-88   1:00p
NETBIOS  MOD     8092   6-15-88   1:00p
NETLOAD  COM      485   6-15-88   1:00p
RESTART  COM      209   6-15-88   1:00p
       10 File(s)         0 bytes free

IBMIO.SYS and IBMDOS.SYS or IO.SYS and MSDOS.SYS should also be present, but hidden.

The TL came with Tandy MS-DOS 3.3 on one 720KB disk.  The disk contains all DOS programs on one disk and is fully bootable.  Important programs on the disk are SETUPTL.COM, which allows you to enter the setup menu, BASIC.EXE and BASICA.COM, which grant you access to GW-BASIC, and MODE.COM, which allows you to control Tandy specific features like Mode Slow (for 4MHz operation).  Unfortunately, the MODE.COM included in the Tandy TL disks has a bug where the MODE 200 command does not work in the 80-column text mode.  Take the MODE.COM from the RL system disks and restore that feature.

If you upgrade to MS-DOS 5.0 or better, you will lose the ROM drive.  In this case, you will need a standalone version of Deskmate.  Standalone Deskmate doesn't come with the music or sound programs, so you may need to rescue them from the TL Deskmate disks.   Additionally, you should use drivparm in your config.sys for every floppy drive. drivparm=/d:0 /f:2 for a 720KB 3.5" drive and drivparm=/d:1 /f:0 for a 360KB 5.25" drive.

Deskmate :

The TL came with Deskmate 3.0, partially in ROM and the rest on two 720KB disks.  The main executable is DESK.COM on the ROM drive and it will allow you to enter the basic graphical shell.  To use programs, you need to install them off the floppies, or change the directory to where the programs are located on your hard drive.  The ROM Deskmate may be necessary to access the music and sound programs, which use the PSSJ sound chip.  The Deskmate draw program will use the 640x200x16 mode.  If you have a VGA card installed, you will need a VGA Deskmate driver.  Deskmate 3 works well with serial mice supporting the Microsoft serial mouse protocol.

Setup Utility :

The basic setup utility is displayed by using SETUPTL.COM.  SETUPTL /A brings up the advanced menus, and SETUPTL /F restores the settings to the factory defaults.  

The basic setup functions are identified in the TL Practical Guide.  If you have a hard drive, there is little need to change the usual settings.  You will probably want to set the Initial Start-up Program to MSDOS instead of DESKMATE.  It may not seem intuitive, but if you have a hard drive with MS-DOS 3.3 on it, the setting for Primary Statup Device should remain ROM.  You should also definitely Check for Autoexec.bat and Config.sys on Drive C:  If you have upgraded your DOS to version 4.00 or later, then you must select DISK as the primary startup device.  

As far as the advanced menu goes, you won't find much of interest here.  The first screen is Diskette, and the TL should automatically detect the number and types of floppy drives you have.  Running the basic utility usually works to automatically recognize a new drive.  If it doesn't, you can try setting them here.  The second screen is System Startup, and everything here can be found on the basic menu except for Video Memory.  The maximum amount of video memory is only an issue when you don't have the 768K upgrade.  The default value is 64K, which is sufficient for the 640x200x16c graphics mode.  The maximum is 128K, and if you have the upgrade you can set it to that amount because that memory can't be used for anything else.  

The third screen is BIOS Machine State.  There are off/on selections for Hard Disk, Parallel, Video, Diskette, Serial Chip Selects and Parallel Output Enable.  All default to on.  The Hard Disk Chip Select is useless as there is no hard drive interface in the TL, perhaps it was meant for the TL/2.  The Diskette Chip select apparently does not work, you will need a program called nofloppy.com, available here, http://www.oldskool.org/guides/tvdog/1000TL.html to disable the built-in floppy controller.  Since the on-board video is disabled when a VGA or EGA card is installed, the video chip select is more harmful than helpful.  Parallel Output Enable apparently does not make the built-in parallel port bidirectional, at least to devices that weren't sold by Tandy.

Later on that page, there are Wait State cycle options for Internal Memory, External Memory (Expanded Memory), CPU I/O Cycle, DMA Cycle, 16-bit Video.  The defaults, 0, 3, 3, 1,1 are safe values and probably should not be changed.  Last is the OSCIN frequency, which defaults to 24MHz but can be set to 28.636360MHz. I think the OSCIN frequency has something to do with the PSSJ chip.

The next two screens have to deal with network adapters, and unless you have the specific Tandy adapters the ROM expects, then these screens are useless.  The penultimate screen is International and lets you select the language, country code, keyboard type and code page.  If you live in the US, there is no need to change any of these settings.  The final screen is Usable Programs, and let you specify whether each program on the ROM disk can be used.

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 :


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.

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.  


Commodore 64 - No NTSC Love

Despite the Commodore 64 being the best selling computer model of all-time and being manufactured by a US company, all the major vintage enthusiasm for the machine seems to be centered on its presence in the UK and Europe.  In NTSC countries like the United States and Canada, there is arguably much more of a vintage interest in the Apple and Atari 8-bit computers.

In Europe, software for the Commodore 64 came primarily on cassette tape.  The Commodore 1530 C2N Datasette was competitively priced, the Commodore 1541 Floppy Disk Drive was not for what was came to be seen primarily as a games/hobbyist machine.  Virtually all European software came on tape, while only the pricey US imports like Ultima and Wizardry came on disk.  Cartridges, which were not dominant in the US after 1984, were seldom seen in Europe.

The tape medium imposed sharp limits on the varieties of games that could be played on a C64.  A full load of the 64KB of RAM took several minutes from tape, and once loaded, that was it for the game.  Since precise loading of data from one side of a tape was not very friendly to the player, one side of the tape equaled one load of a game.  Platformers, shumps, soccer (association football) and fighting games were very popular genres.  Turn-based strategy games, lengthy text-based adventures and RPGs were not popular on tape. Imagine having to fast forward a tape until the counter reached 200, 300 or 500 to load a town or a map. Wasn't going to happen.

The real problem is that most U.S. developers came late to the Commodore 64, having cut their teeth on Apple or Atari computers.  To most developers, the C64 was just one more machine that would need a port of a popular game.  Eventually U.S. developers did develop some games natively for the C64.  Maxis' Raid on Bungeling Bay and SimCity was developed for the C64, as was Microprose's Gunship and Sid Meier's Pirates!.  Activision contributed Little Computer People. Lucasfilm offered Labryinth, Maniac Mansion and Zak McKracken and the Alien Mindbenders, and from Electronic Arts there was Skate or Die! and Interplay contributed Neuromancer.  SSI developed its famous AD&D Gold Box engine for the C64 including Pool of Radiance and Curse of the Azure Bonds.  Epyx was prolific when it came to C64 development with Impossible Mission and other classics, but unfortunately that company foundered on what would become the Atari Lynx.  By the end of the 80s, all these US developers had shifted their focus to the generic IBM PC Compatible platform.

Many US-originated games are popular with Commodore 64 enthusiasts, even in Europe.  LucasArts' classics top many lists, and you can usually find an Ultima, M.U.L.E., Wasteland and others.  On more than one list of the top C64 games, roughly half come from US companies.  However, I have heard more than one commentator say that the NTSC C64 is crap and that you should get a PAL one instead.  Most US games will work (18% more slowly) in a PAL machine, while most of the good PAL games rely on timing that will break in an NTSC machine.

Many European C64 games were not as widely ported.  Some went to the Amiga, and some Amiga games like Turrican received very high quality ports to the C64.  While many games were ported to the ZX Spectrum, no one was going to favorably compare a ZX version to the C64 version, except perhaps in price.  Many companies decided develop their advanced efforts on the Commodore Amiga (the 500 was priced well in Europe) or the Atari ST instead of the boring PC clones.  Other than Cinemaware, US developers did not really embrace the Amiga, and the Atari ST and Apple IIgs saw even fewer natively developed game titles.

One great advantage of the Commodore 64 is that virtually all the classic US PC games of the early and mid-1980s, and even many late 1980s games, found native releases or ports to the system.  Some of the later Infocom games require a Commodore 128 to play (A Mind Forever Voyaging, Beyond Zork, Trinity) and some can take advantage of the 128's features (Ultima V, Hitckhiker's Guide to the Galaxy).  Developer interest virtually disappeared in the Atari 8-bit line after 1985 outside of Atari, and the Commodore offered far superior graphics and sound to the Apple II line.  By 1988, PCs had come down sufficiently in price that game developers could target them.  Decent graphics (EGA) and sound (Adlib) made the PC less of a chore to develop for than in the days of CGA and the PC Speaker.  However, the advent of affordable hard drives, and the enormous increase in functionality they provided, really helped establish the PC as a programmer's best friend.

The use of cassette tape had its advantages as well as its drawbacks.  Since the tape usually took some minutes to load, the programmers could send a static picture first and a musical tune to entertain the player while the game loaded.  The disk was faster but servicing it seemed to require the computer's total attention, so this sort of thing was not common for disk games.  Another advantage of the cassette game was that they were easier to copy and rip than disk games.  Cassettes were cheaper than disk, and the games were generally much, much smaller.  It's quite easy to distribute most of them as a simple Commodore executable file these days if you just want to play the game.   It is not so easy to do that with, say, Ultima V, which came on four double-sided floppy disks.

If the C64 has an Achilles Heel, it is undoubtedly the speed of the disk drive.  The standard speed was only 300 bytes per second.  An IBM PC Floppy drive was faster by almost two orders of magnitude, and even the slower Apple II and Atari 8-bit disk drives were faster.  Some have been converted from their slow floppy format to more mass-storage friendly solutions, but there is a great deal of work to be done in this area.  But perhaps it is this reason, most of all, which tends to put off US gamers from the C64.

Saturday, April 26, 2014

Capturing CGA, Tandy/PCjr. and EGA Video

It is not easy to capture true 16-color PC video.

One way to capture it is with a CGA card that has a composite video output.  The IBM PCjr. and Tandy 1000/A/HD/EX/HX/SX/TX also have composite video outputs, as does the IBM PC Convertible with the CGA adapter slice.  Some other laptops like the Tandy 1400LT also have CGA output.  Most EGA cards may have dual RCA jacks, but they are only connected to the EGA expansion feature port.  They are typically useless.

Composite video is necessary when trying to capture CGA artifact color.  Additionally, for capturing 40 column text it is usually adequate.  It is also good at capturing 160x200 graphics, since there is minimal artifacting going on in that mode.  Note that brown is dark yellow with a composite color connection. However, if you are trying to capture "pure" RGB 320x200x4 or 640x200x1, or 320x200x16 or 640x200x4, it is not suitable.  Composite video does not have the bandwidth to show pure colors in these modes.

CGA and its derivatives use digital TTL RGB.  The standard is also known as RGBI, with I standing for intensity.  One pin is devoted to the R, G, B and I signals.  When there is +5v on the line, that color will be displayed.  When there is Ground on the line, that color will not be displayed.  With the Red, Green and Blue signals, this gives you eight combinations, Red, Green, Blue, Cyan, Magenta, Yellow and Black and White.  The Intensity signal varies the strength of the colors, giving you a total of 16 colors.  CGA uses a 15kHz scan line frequency.

Other personal computers of the 1980s that supported RGB output, including the Commodore Amiga, Atari ST and Apple IIgs, support analog RGB output.  Consoles like the Sega Master System, Sega Genesis, Super Nintendo, Atari Jaguar, NEC Turbo Grafx 16, Playstation and an RGB modded NES or N64 also support 15kHz analog RGB.  Almost all arcade machines from the 1980s and into the late 1990s also support it.  With analog RGB output, the strength of each signal is based on the amplitude of a 0.7v Peak to Peak sine wave.  These systems typically use a15kHz scan line frequency.

The only other non-PC compatible device that supports CGA TTL RGBI is the Commodore 128.  Moreover, the C128 only supports this in its native video mode.  When emulating a C64, it uses a palette closer to the C64s.

All capture and conversion devices that advertise "CGA" like the GBS-8220 are using "CGA" only in the sense that they support a 15kHz horizontal scan line rate.  They expect an analog RGB signal.  CGA uses an RGBI signal.  If you connect the pins directly, you will only get 8 colors because it has no idea what to do with the I signal.  A simple passive adapter, like the one shown here, will give you 16 colors : https://sites.google.com/site/h2obsession/CBM/C128/rgbi-to-vga  However, color 6 will be dark yellow when it should be brown.  To get it to show brown, you need an active converter, such as the one here : http://he-insanity.blogspot.com/  That adapter will combine the separate CGA horizontal and vertical synchronization signals, which most 15kHz RGB outputs use.
  You can also purchase a similar kit here : http://www.microbeetechnology.com.au/vga_video_converter.htm but you will have to solder the board.  This has been verified to give a proper brown color.  There is another kit available here : http://gglabs.us/node/1619 which also shows proof of good colors.  There is another kit that is available from b i t - c 1 2 8 . c o m, but it does not give a proper brown.

After you have turned the digital RGB to analog, you will need to use a scan-line doubler to convert it to VGA and a capture card, for which there are many capture devices, or obtain an expensive PCI-E capture card that can handle 15kHz RGB analog video.  I have heard mixed reviews about the quality of the GBS-8220, which upscales 15kHz RGB signals into 31kHz VGA signals and is very common and not too expensive.  One suggestion is to use an XRGB-mini, the Framemeister.  The Framemeister will upscale analog RGB video into 720p, which can be captured by an HDMI capture card.

I would go for the latter, like this one : http://www.solarisjapan.com/sc-512n1-l-dvi-component-hd-and-dvi-capture-board/?setCurrencyId=1  Even though it is ridiculously expensive ($330!), it can handle just about anything, including VGA, HDMI and the like.  The StarTech PEXHDCAP is another PCI-E device that is very versatile and costs less than half as much : http://www.amazon.com/StarTech-com-Express-Video-Capture-1080p/dp/B007U5MGBE

The elgato game capture HD will capture 240p signals, which is essentially 15kHz scan rate video.  However, it only has composite, component and S-Video analog inputs.  You would need an RGB to Component converter for this device.  In essence you would need two converters.

If you want to capture 640x200x16 Tandy or EGA video, you will also need to use this method.  350-line EGA uses an unusual 21.8kHz horizontal refresh rate and 6-bit TTL RGB for a maximum selection of 64 colors.  VGA emulates 350-line EGA more-or-less perfectly and without double scanning.  It is just better to capture it directly from a VGA card.

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

Sunday, April 20, 2014

Scoring Vintage ISA Sound Cards' Gaming Suitability

I have tried to make an objective rating system to judge the gaming suitability of a particular vintage sound card.  I have avoided including more subjective qualities like measurement of audio output quality.  My basic standard for rating each element of a sound card is as follows :

0 - Not present or not widely supported
1 - Useful but often troublesome or problematic
2 - Mainline support
3 - Superior Features
4 - The Best of the Best

1. Gameport
0.00 - None
0.50 - Crippled (2axis/2buttons only) or Non-standard : Covox Sound Master
1.00 - Standard : Sound Blaster 1.0-Pro 2.0
1.50 - Speed Sensitive : Sound Blaster 16-AWE64
2.00 - Speed Adjustable : Gravis Ultrasound

2. MIDI Hardware Interface
0.00 - None
0.50 - Not Widely Supported : IBM Music Feature, Pro Audio Spectrum, Gravis Ultrasound, Adlib Gold
1.00 - Sound Blaster MIDI
1.50 - Widespread UART MPU-401 Hanging Note Bug : Sound Blaster DSP 4.11-4.13
1.75 - Minimal UART MPU-401 Hanging Note Bug : Sound Blaster DSP 4.11-4.13 & CT-1747
2.00 - UART MPU-401, Sound Blaster DSP <= 4.05 or DSP = 4.16
2.50 - MPU-401 Hardware Emulation
3.00 - Roland MPU-401 or 100% Fully Compatible

3. Music Synthesizer
0.00 - None (Digital Only)
0.50 - Not Widely Supported : Innovation SSI-2001, Covox Sound Master, IBM Music Feature, IBM PS/1 Audio/Game Card
1.00 - Game Blaster
1.50 - Gravis Ultrasound, Creative CQM : Later Sound Blaster 16 & AWE32s, most 32s, all AWE64s
2.00 - OPL2 : Adlib, Sound Blaster 1.0-2.0, Thunderboard, Covox Sound Master II
2.25 - Dual OPL2 : Sound Blaster Pro 1.0, Pro Audio Spectrum; OPL3 : Sound Blaster Pro 2.0, 16, AWE32, 32; Pro Audio Spectrum Plus/16, Adlib Gold
2.50 - AWE32/64 EMU-8000, Waveblaster 1/2, OPL4
3.00 - Ensoniq Soundscape, Yamaha DB50XG, SW60XG, Roland SCB-7
4.00 - Roland LAPC-I, SCC-1 or SCB-55

4. Digital Audio Output
0.00 - None (Music Only)
0.50 - Not Widely Supported : IBM PS/2 Speech Adapter or Compatible, Covox Sound Master/Plus, Covox Voice Master
1.00 - Covox Speech Thing or Disney Sound Source, Roland RAP-10, Covox Sound Master II
1.50 - Adlib Gold, Pro Audio Spectrum
2.00 - Sound Blaster DSP 1.xx, Microsoft Windows Sound System, Gravis Ultrasound
2.25 - Sound Blaster DSP 2.00
2.50 - Sound Blaster DSP >= 2.01, Thunderboard
2.75 - Pro Audio Spectrum Plus/16
3.50 - Sound Blaster Pro, Sound Blaster 16 <= DSP 4.05
3.75 - Sound Blaster 16 >= DSP 4.05, Sound Blaster AWE32
4.00 - Sound Blaster AWE64 Gold (SPDIF)

Thus if you add up the total scores, you can get a good idea of the overall suitability of an ISA sound card for DOS gaming. A Sound Blaster 1.0 or Gravis Ultrasound gets a 6, Roland LAPC-I or SCC-1 would rank a 7, a Sound Blaster AWE64 Gold a 10. A Sound Blaster AWE32 with SCC-1 would probably rate the highest at 11. Note that only the highest score for each individual category is counted. A basic AWE32 gets a 2.5 in the synthesizer category, not a 4.5.