Thursday, October 18, 2012

Running an XT Class Computer in an AT World

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

Keyboards

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

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

VGA

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

IDE & SCSI

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

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

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

High Density Floppy Controller

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

Real Time Clock

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

286 & 386

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

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

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

Expanded & Extended Memory

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

Network Cards

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

Sound Cards

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

Serial Cards

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

No comments: