Wednesday, May 28, 2014

Ron Gilbert, Maniac Mansion and Modern Computer Adventure Game

Ron Gilbert may not have a huge number of adventure games (not for children) to his credit, but his influence in adventure gaming far surpasses the number of games on which he was credited as designer.  He has two bona-fide classics to his name, 1987's Maniac Mansion and 1990's The Secret of Monkey Island, and I would also include Monkey Island 2 : LeChuck's Revenge as a classic.  In this post, I want to talk a little bit about why his first game, Maniac Mansion, is a classic, both from a design perspective and and a thematic perspective.

In Sierra's games, Death is your ever present companion.  He lurks on most screens, ready to frustrate the player who forgot to save within the last five minutes.  In Gilbert's Maniac Mansion, death is possible but its more of an accomplishment to kill one of your characters.  How to figure out another way to kill a character is really akin to solving a puzzle.  And the ways in which you can die are reasonable and make sense in the context of the game.  If you let the reactor go uncooled for too long, there will be a meltdown.  If you show Weird Ed his dead hamster (which can only be killed by certain kids), he will kill you.  Since you have three kids, you may still be able to beat the game if one dies.  In both King's Quest V and Leisure Suit Larry, there are screens that if you enter them, you are guaranteed to die due to a monster or there is a monster there every time ready to kill you.

The worst you can typically expect in Maniac Mansion
Another lazy design issue in other adventure games is putting the game in an unwinnable state.  Typically this is because the player forgot to pick up an item or do something at a timed event and now can no longer do it.  This is a poor way to extend the gameplay and increase the challenge because it is so unfair.  It is difficult to get Maniac Mansion in an unwinnable state unless you are truly careless.  Leisure Suit Larry 2 is particularly cruel in this regard, in more than one part of the game if you fail to do everything you need to do before a time limit, you will lose the game.   

A third, truly lazy design choice in adventure games is the use of maze-like environments.  These were amusing when Zork was king, but Sierra was using them to obnoxious effect twice in King's Quest V. Maniac Mansion has no mazes and no generic or featureless screens.  Each screen has at least some visual interest, and most contain either an item or is part of a puzzle.  In the later Monkey Island games, the maze-like environments were just another puzzle to be solved.

I'm not sure how accurate that map is, but that is the rough number of rooms in the game.
Even so, Gilbert encouraged exploration of the mansion at the player's leisure.  Although the game may seem to have a limited time, this is not the case.  No matter how long you take, the meteor will not possess Sandy.  Only during the end game does a timer countdown.  In the ICOM simulations like Shadowgate and The Uninvited, there always was some limiting factor in the game like the number of torches available or that you will be possessed.  

Random monsters are no fun.  Sierra used them not only to kill but also to cause an unwinnable game state.  If the Dwarf steals one of the three treasures in King's Quest, you cannot win the game.  In Maniac Mansion, the "monsters" have fixed schedules and locations, and at worst they inconvenience you.

The scheduling and cutscenes in the game help to show that this game is a living, breathing world.  In most other games of the time, the game simply reacts to what the player does.  Here cutscenes propel the story forward.  The various actors in the Mansion have clearly defined characteristics, Weird Ed is a commando, Nurse Edna is kinky, Green Tentacle is a wanna-be musician, etc.  The large sprites used for the characters help give each kid and character a unique look.  The heads are big enough to allow for the graphics engine to show them talking, which helps with the immersion.

If this was a Sierra game, the Green Tentacle would have killed you here.
Another terrible design issue is the use of obstacles that you have to climb or cross very carefully.  Stairs in the King's Quest series are serious obstacles, especially in II and IV.  The rock path from Mannanan's house in III is particularly evil.  The whale's tongue in IV is no fun, but the Waterfall Cave must have been designed by the development team after an all-night office party.  Not only is there a random monster, who follows you from screen to screen, the cave is dark and the lantern sheds little light.  Finally, there is a pit you have to cross, and you can easily die trying to find the edge.  Nothing like that exists in any LucasArts game.  In fact, Maniac Mansion includes pathfinding and indirect control of the character by cursor, something that would be ubiquitous in the 1990s.

Gilbert believed the text parser interface to be truly archaic for graphic adventure games.  He despised trying to play "try to guess what the designer wants you to type".  While Maniac Mansion was not the first game to use an icon-based interface, it firmly put paid to the notion that adventure games would be too easy without the text parser.  Although the icons are words, not graphics, nonetheless they serve the same function.

The graphics in the original Maniac Mansion are in a low, 160x200, resolution.  To avoid any need to "guess" what an item is, Maniac Mansion had a "What Is" command that if the pointer hovered over the object, the game would tell you what it is.  In fact, using the What Is command allowed you to identify all the "hot spots" in the room.  Early Sierra games had no generic "look" command, but eventually their AGI games would generally tell you what was important in the room.  The later 16-color SCI games allowed a right click on the mouse to function as a "look at" on the object clicked on. 

Maniac Mansion was one of the first adventure games intended to be replayable.  The different combinations of kids allowed the game to be won in more than one way.  There are also multiple endings, and each combination can access some of the endings.   This helped make up for the relative smallness of the game world.

Choices, choices...
Maniac Mansion is a "funny game".  Funny games are memorable.  Really humorous characters tend to be more memorable over the long run than bland or serious characters.  A goofy 8-bit mansion is more likely to be iconic than a "realistic" 8-bit castle and more memorable.  Games that aren't mean to be taken truly seriously tend to hold up better than a lot the portentous, supposedly-meaninfgul crap of the 1990s and 2000s.  It is also easier to be funny than dramatic on less capable machines.

Gilbert deserves credit for developing Maniac Mansion for the Commodore 64.  The final game shipped on one double sided diskette (340KB) and could be run within the 64KB of RAM of that system.  By contrast, Sierra's AGI games in 1987 took up at least two disks (360KB) and required twice the RAM on an Apple IIe/IIc and four times the RAM on a PC (they didn't run on a Commodore 64).  To be fair, the ports of Maniac Mansion to those systems required the same amount of RAM on the Apple IIe/IIc and PC.  The opening music was unusually good for a US Commodore 64 game, something lost in the Apple & PC versions (except on a Tandy 1000).

Vintage PC Game Music - Supporting as Many Early Music Devices as Possible

Music in PC games existed before the 1990s.  First there was the PC Speaker, then PCjr. and Tandy 3-voice sound, next came expansion boards like the Adlib and Game Blaster and supported MIDI devices like the MT-32, and finally the Sound Blaster.  My goal is to combine as many of these devices as practical in a single system.  Since the PC Speaker is ubiquitous, the choice of systems seems unlimited.

Of the other devices, Tandy 3-voice sound first was supported in games in 1984 (PCjr.), and sound cards and MIDI devices first were supported in late 1988.  However, the need for Tandy 3-voice sound limits the system to a Tandy 1000, since that chip was never implemented in a compatible ISA card.  Additionally, only a Tandy with 8-bit slots and Tandy video should be considered, since modifying either gives real compatibility problems.

As I have previously indicated, the Tandy 1000 TL and the TX are the best candidates here.  The TL/2 and TL/3 are not as good choices because they have one fewer slot than the older machines.  That slot is better used by an ISA or SCSI interface that can interface to a hard drive.

The TL has a PSSJ sound chip which includes 8-bit digitized sound capabilities.  It can support up to a 44KHz sample output rate.  The Sound Blaster 1.0-1.5 only support a 23KHz sample output rate, but the 2.0 supports a 44KHz sample rate.  The PSSJ and the Sound Blasters work similarly and both use IRQ7 (selectable, but early games insist on 7) and DMA1 (cannot be changed or fully disabled) and tend to crash when the other is present.  They will not coexist happily in the same system, and there is nothing that can be done about it.

While the PSSJ may look better than the Sound Blaster for digital playback, there are two additional issues to consider.  First, early games with digitized sound are not going to playback samples at 44KHz because they take up so much disk space.  Even then, samples tend to be short, so any playback differences are not likely to be noticeable. More importantly, games using the Sound Blaster for digital playback will accept gameport input, games using the PSSJ will not during sample playback.  If there is a good deal of sample playback, like in Outrun and Prince of Persia, the joystick will not work at all.

The TX doesn't have the PSSJ, therefore the Sound Blaster is the sound card with the best digitized support from early games.  The Sound Blaster includes the Adlib chip and can easily include the Game Blaster chips for a few dollars.  However, the TX has a built-in gameports that cannot be disabled, so the Sound Blaster's gameport will have to be disabled.

On the TL, separate Adlib and Game Blaster boards will be required.  I am not so comfortable suggesting a Sound Blaster Pro because many games supporting Game Blaster will only write to I/O 220-223, and that is where the OPL2 chips are located on a Sound Blaster Pro.  Similarly, many early Sound Blaster games will only support the Sound Blaster at I/O 220-22F.  While a non-upgraded Sound Blaster will not cause trouble at I/O 220-223, it uses the rest of the I/O ports and the Game Blaster also uses those I/O ports for autodetection.

Additionally, an MPU-401 interface card will be required, few games support the Sound Blaster MIDI interfacer.  There is a driver to allow most Sierra games to work with the Sound Blaster MIDI interface. With the MPU-401, you can connect to the MT-32, the FB-01 and the Casio devices supported in Sierra and Accolade games.

Therefore, on the TL, three cards are devoted to sound, and on the TX there are two.  In my ideal system, one bay should be used for a 5.25" drive, and a second bay for a 3.5" drive.  A TL has an extra bay for a hard drive, and the TX may require a slot-CF adapter, otherwise a bay or a hard card will be required.

Tuesday, May 27, 2014

Practical Issues with the Tandy 1000 SX and TX

I have recently become the owner of a Tandy 1000 TX, and I'd like to share my experiences with using the machine.  Since the system is very similar to a Tandy 1000 SX, much of what I will say will also apply to that system.  Overall, the system is much more straightforward than the Tandy 1000 TL.

Memory Upgrade  (SX and TX differences)

The TX comes with 640KB but can be upgraded to 768KB.  The extra 128KB is dedicated solely to the video chip and allows you to have the full 640KB conventional free for MS-DOS.  There are four DIP-18 sockets on the motherboard, and you must insert a 64Kx4 DRAM chip, 120ns or better into each of them.  Once all four are inserted, you must remove the jumper at E9-E10.

Not all games and software work with this upgrade.  I know of several games that either do not show graphics or are unplayable with the upgrade. Unlike the TL, you do not need to remove the chips.  Just replace the jumper at E9-10 and the upgrade will be disabled.

The SX comes with 384KB and can be upgraded to 640KB.  Eight DIP-16 sockets are on the motherboard and you must insert a 256Kx1 DRAM chip, 150ns or better into each of them.  One all eight are inserted, remove the jumper at E1-E2.  There are no compatibility issues with this upgrade.

If you add an EGA or VGA card, the on-board video and its RAM stealing is disabled and you will also be able to use the full 640KB of conventional memory.  Most games will not recognize an EGA or VGA card in the Tandy 1000s without running a simple program called VGAFIX on startup.

Case Opening (SX and TX differences)

The SX and TX's case is held together by two screws at the front.  The case shell is made of plastic, so be careful of stepping on it or letting it fall when you are working inside it.  Unlike the TL and SL and later machines, the keyboard and joysticks attach to the front of the machine, so you will need to remove them to get at the insides.  When you have removed the front screws, just pull the plastic portion of the case forward.

Unlike the SX, which had a metal bar over the expansion slots to allow a monitor to sit on the case, the TX has a metal shield completely covering the expansion bays.  Two screws attach the shield to the chassis, and once removed, you have to pull the shield up and then to the left.  You may need a small screwdriver to help pry it up.  The shield is bendable, so take care with it.

The SX has a metal bar to support the weight of a monitor, and should have two plastic guards to protect someone from slicing their fingers on the metal edge.  Its expansion slots use slotted hex screws.  The back plastic plate should be removed when installing expansion cards, but one can get at the screws with a small slotted screwdriver.

Tandy mostly used slotted or phillips head hex nut screws inside the SX and TX, and I highly recommend using a 1/4" hex nut driver to remove them.  You won't strip a screw using a hex nut driver.  The drive cage is fixed to the chassis with approximately five screws.  You will need to remove any expansion cards to get at the screws.  The SX has a metal plate parallel to the the expansion slots that should be removed to get at some of the screws holding the drive cage in place.

The TX and TL use the same small Phillips head screws for the expansion cards.  Jameco sells compatible screws, look for Jameco Item # 2185871.  Unlike the SX, you probably will not need to remove the back plastic plate to unscrew the screws.  They also work in the SX.

The drive cage supports only two 5.25" drives.  Some drives do not have the appropriate mounting holes.

CPU Upgrade (TX and SX differences)

The TX, like the TL, has a socketed 80286-8 in an 68-pin PLCC socket.  Unfortunately, the location of the 286 is close to the front edge of the bezel, and a longer accelerator will not fit.  Improve Technologies Make-it-486! will fit, but it has no math coprocessor.

The 80287 math coprocessor should be rated for 8MHz, but a 6MHz will probably be fine.  Games that run on an 8MHz 286 generally do not use one.  No jumpers or dipswitches need be set.

The SX has a socketed 8088-2 in a 40-pin DIN socket.  It can be upgraded with an NEC V-20, μPD70108-8 for a modest speed boost and compatibility with many programs that use 286 instructions.

The SX will support a special accelerator board called the 286 Express Card.  This card takes up an expansion slot, requires the removal of the 8088 and inserting a ribbon cable with a DIP-pin connector into the CPU socket.  The 8088 goes onto the daughtercard with the ribbon cable.  This upgrade allows and defaults to the use of the 8088 and acts like it is not there unless activated via its DOS driver.  It has 8KB of cache, which can be disabled for compatibility.

The 8087 math coprocessor should be rated for 8MHz operation, but 5MHz will probably be fine (its runs at 7.16MHz/4.77MHz).  Remove the jumper at E3-E4 if you install one.

Floppy Drives (SX and TX differences)

The ideal 5.25" 360KB double density floppy drive for the Tandy 1000 SX or TX is the Teac FD-55BR. This is a beige/off-white version of the FD-55BV, which is also a good choice.  Teac made a 1.2MB 5.25" high density drive called the FD-55GFR, and it looks identical to the lower density drive.  Make sure you get a double density drive, high density drives do not work with the SX or TX's built-in floppy controller.  The SX and TX have very short floppy cables and the card edge placement on the Teac drives (and they are good drives) work beautifully with the stock cable.  The molex power connector is also close to the left edge of the drive, and the one connector from the power supply is extremely short.

The proper drive to use with a TX  is a Sony MP-F63-01D 720KB double density 720KB floppy drive.  This drive is a 3.5" drive enclosed in a 5.25" bay adapter.  The bay adapter provides the front faceplate for the drive.  The drive uses a large "lip" as the ejector button.  It is identical to the drive in the HX, but that has a different faceplate and designation.   Tandy provided a 3.5" upgrade for the SX that uses the same drive but has an adapter board that converts the power-in-drive connector on the drive to a card edge and molex connector.

The TX and HX are the first systems that incorporate Tandy's power-in-drive cable, so you need to use your own cable with holes punctured through pins 3, 5, 7, 9, 11, 29, 31, 33 if powering a 3.5" drive that uses a mini-molex power connector.  You also need to untwist the twist in the floppy cable.  Tandy drives get selected by dipswitches and the F3 key in the SX and TX.

The TX cable has one pin connector and one card edge connector.  The SX has two card edge connectors. The SX does not use power in drive cables and has two molex power connectors.

Hard Drives (SX and TX)

The SX and TX requires a hard drive interface.  An MFM controller like the WD1002A-WX1 is small enough to fit in the Tandy and can select IRQ2, but you may need to obliterate a trace that hardwires IRQ5.  However, the SX and TX can disable the video's use of IRQ5.  The hard cards sold during or near the TX's time were were the 20MB 25-1029(A-B) and 25-1032(A-E) and the 40MB 25-4059(A-B).  They use MFM or XTA-IDE drives.  They can save a slot, but are bulky, noisy and can prevent long cards from being installed in nearby slots.

The best contemporary IDE interface was the ADP-50L, which allows the use of any 16-bit IDE drive up to 504MB.  With a compact flash adapter, you can save a drive bay by using a slot bracket.  Modern solutions include XT-IDE, some of which combine a CF card interface, saving you a slot.  Unfortunately, while you can buy the board and parts cheaply enough, you will have to solder the CF connector and other surface-mounted components yourself.

Serial Port (TX only) / Light Pen Port (SX only)

The TX replaced the useless light pen port on the SX with a serial port.  This is a standard XT-8250 port, so do not expect speeds about 9,600 baud.  It defaults to COM1 and can be set to COM2 by removing the jumper at E3-4 or disabled by removing the jumper at E1-2.

The SX uses a DE-9 Male no-screw connector for a light pen, which would suggest that Atari 8-bit or Commodore 64 light pens would work.  The pinouts for those light pens do not correspond to the pinout for the Tandy 1000.  Tandy did offer light pens for the 1000 series, but they must be beyond hard to find today.

Jumpers (SX and TX)

JP1 sets the system to use an MDA or Hercules compatible card.  I am not sure whether it totally disables the onboard video, or just initializes the monochrome monitor for text like on an IBM PC.  If its the latter, programs can still use the built-in video when they require it.  It is NOT the same as pressing F1 on startup, that just sets the Tandy video to use composite-monochrome friendly colors.

JP2-5 disables the use of IRQ5, 6 & 7 for the system board devices, freeing them up for the expansions slots.  The system board uses IRQ5 for the video interrupt, which was rarely used with Tandy graphics.  IRQ6 is used for the floppy controller.  Even if you disable the built-in floppy controller's IRQ6, you will need a secondary floppy controller that can use an alternative floppy controller address.  Ditto for a printer port on an expansion slot for IRQ7.  Leaving IRQ7 enabled is typically harmless.  Sound Blasters don't need it disabled.

Keyboard (SX and TX)

The SX and TX is designed to use a 1000 keyboard.  Some games (Snow Strike) and programs, like Tandy 1000 Deskmate, require it.  The default text mode is an 80x25 column by line mode with 225 lines, pressing F2 at startup will give you a 40x20 column by line mode with 200 lines, suitable for a composite video monitor.  You can also do this by using the Tandy DOS 3.2 or 3.3 command MODE TV If you use the command MODE 200 command will give you 80x25 column by line mode with 200 lines (assuming you are in an 80-column mode).

F3 sets the speed to 4MHz (TX) or 4.77MHz (SX), which can also be done with MODE SLOW.  If you want to play a game like Lode Runner on the TX, you will need the slower speed.  F4 swaps the boot drive, which is quite useful with a 5.25" and a 3.5" drive.

I am not the biggest fan of the 1000's keyboard.  The key action is mushy and the Shift keys are too small.  The Hold key is a particular nuisance, especially as it is right next to the Enter key.  Essentially it is the "freeze" key, if you press it (intentionally or otherwise), your program may pause and it may seem like the computer has frozen up and crash.  Press it again and the program should resume.  Shift + Print acts acts to Print the screen (I believe its Ctrl Print on a IBM PC).  There is no Scroll Lock key, you need to use Alt + Break.

Some programs will only use the dedicated cursor keys for movement, others will use both the cursor keys and the numeric keypad, and others will only use the numeric keypad.  On the IBM PC 83-key Keyboard, there is no dedicated cursor keys, and games do not have this problem.  However, unlike that keyboard, there are status LEDs for Num Lock and Caps Lock.

The ~ and ` and the | and \ are split up on the Tandy 1000 keyboard, making for an adjustment when coming from a PC keyboard.  The \ key is used frequently in DOS, and the | is also used.  (TYPE README.TXT |MORE) More annoyingly, there is no separate *, so typing something like *.* in DOS is a hassle.

Any Northgate Omnikey Keyboard with dipswitches should be able to work with an SX or TX.  They are very expensive, and required a special cable.  I believe the cable just passively mapped the common pins (DATA, CLK, +5v and GND) from the IBM standard to the Tandy standard.  The Northgates can provide full 101 Key capabilities.

Sound Output (SX and TX differences)

The SX and TX both have volume controls for the internal speaker.  The SX's volume control is inside the case and requires opening the case to get at it.  The TX's is in the front of the case and can be accessed with ease.  Both have RCA video and audio jacks, but the TX also has a headphone jack.  Due to the audio routing design of the TX, all audio will always output to the RCA jack.  If something is plugged into the headphone, the internal speaker is disabled.  The volume control will still work for the headphones, but has no effect on the RCA output.

On the TX, there is no need for a program like TDYSPKR to set the internal and external audio options. On the SX, you will need that program to hear 3-voice sound out of the RCA jack for games that do not set the multiplexer (LucasArts' SCUMM games) or to shut off the internal speaker.

Sunday, May 18, 2014

Apple //c vs. IBM PCjr. - Clash of the Computer Titans, 1984

Two compact machines, with limited or very limited expansion were released by two titans of the Industry in 1984.  The IBM PCjr. and the Apple //c were both heralded with great fanfare and greeted with great initial enthusiasm.  However, the PCjr. failed within a year and the Apple //c was generally seen as a poor man's Apple IIe.

Input

The Apple //c has a built-in keyboard, but it contained all the keys of the Apple IIe, plus an 80/40 column switch.  The PCjr. supported a wireless keyboard with 21 fewer keys than an IBM PC keyboard.  There were substantial compatibility problems with the PCjr. keyboard interface when programs were intended to run on a PC.  There were some minor compatibility issues with programs expecting the older keyboard.  The PCjr. keyboard uses rubber domes, while the //c uses scissor-keyswitches like a laptop.  While expensive, it is possible to replace the PCjr. keyboard with a nicer keyboard with more keys.

The PCjr. supported two joysticks with two axes and two buttons each.  The Apple //c only had one joystick port, which supported one joystick with two axes and two buttons.  The joystick port was also used for the mouse.  A PCjr. required a serial mouse or a bus mouse.  The PCjr. also supported a light pen.

Advantage : Apple //c (out of the box)

Storage

The PCjr. was only designed for one floppy drive, but that drive was a doubled sided drive supporting 360KB disks.  A second drive required an expensive expansion.  The Apple //c used the standard Apple II single sided disk drive supporting 143KB per side.  However, there was a port in the back of the machine for a second drive, no extras required.  The PCjr. Diskette Controller and BIOS relieved much of the burden from the programmer and CPU of reading and writing to the disk.  The Apple //c's drive controller (for 5.25" drives) is an integrated version of the TTL-logic based Disk II controller, so pretty much all reading and writing is done via software.  Even without factoring in the disk flipping, the PCjr.'s diskette drive was easier to use.

The Apple //c, with a ROM upgrade, could also support a UniDisk 3.5" drive for 800KB 3.5" disks.  The UniDisk was an intelligent drive to compensate for the slow CPU of the Apple IIe/IIc and is a pricey upgrade these days.  The IBM PCjr can use a 720KB drive or most common 1.44MB drives (with 720KB read/write capabilities) if you use DOS 3.2 or better.

The PCjr. supported a cassette interface for saving and loading programs from BASIC.  Even though all previous Apple II models supported the cassette interface for saving and loading in BASIC, the Apple //c dropped the cassette jacks.  The cassette interface was intended for the basic model PCjr., which didn't come with a disk drive and only 64KB of RAM, and most people bought the enhanced model.

Neither system was intended for a hard disk, and both machines required special drives and interfaces, which were extremely pricey.  Today there is jrIDE for the PCjr. and SmartPortVHD for the //c.  Both are hobbyist projects and tend to be available only at certain times and command relatively high prices.  The jrIDE is connected by the PCjr. sidecar bus while the SmartPort has to go through the much slower floppy interface (its like a big UniDisk drive).

The PCjr. also had a pair of cartridge ports for loading games and instant loading of programs.  There were eight games released and about as many application programs.  Lotus 1-2-3 required both cartridge ports.

Advantage : PCjr.

Memory & CPU

The PCjr. was sold in 64KB and 128KB models, and that was it for memory expansion.  Most people bought the 128KB model, since the 64KB didn't come with a hard drive.  Before the end of its life, it could be expanded to 640KB and 736KB with some work.

The original Apple //c had 128KB and was not intended to be expandable.  Apple released the Memory Expansion Apple //c in 1986 with a memory expansion slot.  The maximum RAM supported was 1MB. Nonetheless, even the pre-Memory Expansion Apple //c can be upgraded to 1MB of RAM, thanks to products from Applied Engineering.  That AE upgrade could also support a Z80 CPU for CP/M compatibility.  Few games ever supported more than 128KB on the //c, but there are many games that require 256KB or more to run on the PCjr.

The PCjr. used an 8088 CPU running at 4.77MHz.  The Apple //c used a 65C02 CPU running at 1.02MHz. The comparison is not quite apples to apples.  The 65C02 can execute many instructions in fewer clock cycles than the comparative 8088 instruction.  The 8088 had many more instructions and registers and could utilize up to 1MB through memory segmentation.  The 8088 uses 16-bit registers or can split them into 8-bit registers, only the external data bus is 8-bit.  The 65C02 only has 8-bit registers, but its access to the first 256 bytes of RAM is almost as fast as access to registers.  The 65C02 could only address 64KB of RAM and Apple //c implemented a complex bankswitching scheme inherited from its predecessors.  A complex game like Microsoft Flight Simulator would show marked improvements on the 8088.

The PCjr. could be upgraded to an NEC V20 for a modest speed boost, and a board could allow the CPU to be run at a 7.3MHz clock rate.  The Apple //c could have its CPU replaced with a 4MHz or 8MHz Zip Chip, turning it into something very much like an Apple //c+

Advantage : PCjr. (stock)

Output

The Apple //c supported all the graphics modes of the 128KB Apple IIe with a revision B motherboard.  This includes 40 column by 24 line text, 80 column by 24 line text, 40x48 low-resolution graphics, 280x192 high resolution graphics and 560x192 double high resolution graphics.  The low and high resolution graphics modes could also support four lines of text.  All Apple IIs, except for the IIgs, produce color by NTSC color composite artifacts.  For text they look best on small monochrome monitors.

There was a DA-15 pin external video connector on the //c, this was used mainly for the LCD attachment.

The IBM PCjr. supported the graphics modes of the IBM CGA card and more.  The PCjr. was only BIOS-level compatible with CGA, unlike the Apple //c, which was hardware compatible with the graphic modes of the earlier machines.  The PCjr. supported 40 column by 25 line text, 80 column by 25 line text, 320x200 4 color graphics, 640x200 2 color graphics, 160x200 16 color graphics, 320x200 4 color graphics and 640x200 4 color graphics.  The PCjr. supported RGBI monitors for sharp images and composite video for color composite artifact color.  It also had a port for an RF modulator.

The Apple //c had a built in speaker, but it was still the same software driven 1-bit device inside all Apple IIs.  There was a volume and headphone jack.  The Apple //c did not have standard expansion slots, so it could not support sound and music boards like the Mockingboard in the ordinary game-compatible way.  The Mockingboard D was made for the //c, but it used the serial port, not the internal bus.

The PCjr. could act like the PC speaker with its timer driven sound, but also had a 3-voice Texas Instruments sound chip.  This chip could produce square waves or noise, but did not use the internal piezo tweeter.  There also was a Speech Attachment available to record and playback digitized sounds and speech.  There was something similar for the Apple //c, the Echo IIC.

Advantage : PCjr.

Communications

The PCjr. had one serial port built in and also could support an internal modem.  The Apple //c had two serial ports.  One was intended for a modem, the other for a serial printer.

The PCjr.'s built-in serial port was capable of 4,800 baud and the official modem was a 300 baud model.  There was a third-party modem built for the slot that supported 1200 baud.  The Apple //c's Super Serial Card-derived serial ports could support a 19,200 baud rate.

The PCjr. had an add-on parallel port that was very a common purchase.  Parallel printers are much faster than serial printers and nowadays are more common.  Moreover, there are PC compatible Parallel Port Ethernet adapters that can enable very fast (comparatively speaking) transfers to the PCjr.

Advantage : PCjr.

Software

The Apple //c was designed to be as compatible with software as possible, as it is essentially a condensed version of the Apple IIe.  Virtually all Apple II disk software is compatible with it.  Very minor incompatibilities exist due to the updated keyboard, the 65C02 not supporting the illegal opcodes of the 6502, DOS 3.2 disks and untransfered cassette programs.  The PCjr. could not make the same boast, as its IBM PC compatibility was hit or miss.  Its issues with PC compatibility are legion and well known.

Advantage and Conclusion : While the PCjr. beat the Apple //c hands-down in almost every comparison, the Apple //c just has a far more expansive library than the PCjr.  That library, which came on 5.25" floppies, is far better preserved and accessible than the software released for the IBM PC and PCjr. of the 1980s.

The Saga of 16 Colors

IBM's original color graphics solution for CGA could display 16 colors.  However, it could not display them all at the same time, except in the text modes.  Otherwise it could display graphics (all points addressable) in limited 320x200 4 color and 640x200 2 color modes. Certain games like Round 42 use the 80 column text mode, tweaked to display an effective 160x100 graphics resolution.  On a real CGA, the 80-column mode would show CGA snow or the graphics would be very slow.

The 1983 PCjr. was IBM's first consumer device that could display all 16 colors on screen at the same time in graphics modes.  Despite the system being much more difficult to upgrade and slower than an IBM PC when equipped with 128KB or less of RAM, its 320x200 16 color and even its 160x200 16 color graphics were far superior to CGA.

The 1984 EGA was IBM's third graphics adapter to see widespread support in games, although the high price of EGA kept it out of reach for most consumers for approximately two years.  It too supported a 320x200 16 color mode and could display 160x200 16 color graphics easily through pixel doubling.

In late 1984, Tandy used a tweaked and modified version of the PCjr.'s graphics adapter in its 1000 series.  The Tandy 1000 supported the same graphics modes as the PCjr.  Games were much more likely to support PCjr. and then Tandy graphics over than EGA in 1985 and 1986.  Even so, there were quite a few budget games and lazy ports even in 1987 and 1988 that supported CGA only, especially in Europe where PCs were expensive and the PCjr and Tandy did not have much of a retail presence (if any).  The Amstrad PC-1512 was one of the best selling PC compatibles of the time, and it supported little beyond basic CGA.  The only advantage it had over regular CGA was a 640x200x16 mode that only a very few games supported.

Games generally would indicate on the box if they supported the PCjr. or the Tandy 1000 series or EGA.  Assuming a game supported all three, like Space Quest III : The Pirates of Pestulon, you could connect the PC with EGA, PCjr. or Tandy 1000 to the same monitor and see identical or nearly identical (Maniac Mansion) graphics.  All these monitors used a digital TTL signal to which was sent a 4-bit RGBI signal.  Thus they could display only 16 colors, and by 1983 IBM had standardized those colors with its 5153 Color Graphics Display.  Outside the digital input, the 5153 was little different than the other RGB monitors non-IBM PCs used, as it used a 15.75KHz horizontal line scan rate and 60Hz frame rate.  TVs also used this scan rate.

EGA could also support 16 colors from a palette of 64 colors, but only using its 350-line modes.  The maximum resolution supported, 640x350 in 16/64 colors, required 128KB of RAM, which was more than the stock IBM EGA card had (64KB).  Relatively few games used this mode, SimCity being the most famous example.  It also required a 5154 Enhanced Color Display or similar monitor, so it was not widely used for games.  The 5154 supported a higher 21.8KHz horizontal line scan rate and 6-bit RrGgBb digital signalling.  The 5154 was backwards compatible with the 5153, with changes on the polarity of the pins telling the monitor whether it would display 200 line or 350 line modes.

EGA also supported a 640x200 16 color graphics mode that saw some use, typically in ports of Japanese PC games like Thexder, Zeliard and Romance of the Three Kingdoms.  Later Tandy systems have an updated graphics adapter that added support for 640x200 16 color graphics, but the mode was very seldom used for games and all games that support it also support EGA.  Additionally, the very popular in Europe Amstrad PC-1512 also supported a similar 640x200 16 color graphics, but only a few games used it.  The Hercules Graphics InColor Card supported a 720x350 16 color graphics mode on an EGA monitor, only a few games used it.

16 color graphics were typically the best quality graphics PC games supported in the 1980s.  256-color VGA graphics did not really become a must-have feature for games until 1990.  Even though EGA was eclipsed by the MCGA and VGA adapters, 16-color games advertised support for these adapters but only displayed their graphics in 16-colors.  However, a few games took advantage of the MCGA and VGA's comparatively vast (256K) palette to display other colors than the canonical 16 colors of CGA.  Moebius : The Orb of Celestial Harmony is a good example.  Thexder is another.

VGA monitors (including MCGA), have a horizontal scan rate double that of a CGA monitor.  To compensate, IBM had these adapters draw each of the 200 scanlines twice.  This gives 320x200 graphics, regardless of color depth, a noticeable "double scanned" look on VGA, with a scanline bisecting each pixel on the line horizontally, regardless of color depth.

16 color graphics typically looked identical whether displayed on a Tandy 1000, an EGA or VGA card or an MCGA card.  EGA was almost always implemented as an expansion card, and VGA could be found integrated into IBM PS/2 systems or cloned on an ISA card.  MCGA never came on a card, like the Tandy 1000 Graphics Adapters and the PCjr. Graphics Adapter.

EGA has the great advantage of being available for any system with an ISA slot.  MCGA and VGA have an even greater advantage by having an output compatible with most modern monitors.  Early Tandy 1000s and the PCjr. also are modern monitor friendly though their composite video output.  While the 16 color output looks good with 160x200 graphics, it looks poor with 320x200 graphics.

VGA is a superset of EGA, and at the 16 color level the cards usually work so similarly that games use the same or almost the same graphics driver.  However, EGA and MCGA function very differently at the hardware level, and a game must support both to provide 16 colors.  MCGA is mostly CGA compatible, and there were games or versions of games that supported only 4 colors with MCGA.  MCGA does not have a true 320x200 16 color mode, so it uses a 320x200 256 color mode, which is slower than EGA.

While Tandy graphics and the PCjr. work very similarly,  there are just enough differences with the adapters and the systems that a game that works on a PCjr. in 16 colors will not work on a Tandy, and vice versa, unless the game was programmed for both or hacked for one or the other.  Tandy graphics work very differently from EGA, so games supporting EGA graphics only tend not to work on a Tandy.  This includes virtually every EGA shareware game of the early 90s (Commander Keen, Duke Nukem, Dangerous Dave).  The Tandy systems, starting with the SX, can be upgraded with an EGA or VGA card, but the software that allows you to switch back to Tandy graphics only works with VGA.

While Tandy graphics (which use a 16-bit data path) are generally faster than EGA graphics (generally put on an 8-bit card) at similar CPU speeds, systems with Tandy graphics max out at a 10MHz 286, while EGA graphics can accompany systems with much faster CPUs.  The IBM systems are stuck with the 8088 PCjr. and the 8086 PS/2 MCGA  Models 25 and 30

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. King's Quest will not show any graphics in a Tandy 1000 with more than 128KiB of RAM.

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 also have to be removed. You can remove the DMA controller chip in the Tandy 1000 SX but this will limit you to 128KiB. 

It is not advisable to run the PCjr. booter versions of King's Quest and Touchdown Football in a 128KiB Tandy 1000. 

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.  One-on-One and 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. The official Memory Expansion Plus upgrade board came with a DMA controller but modern upgrade boards do not, so they will not have that limitation. 

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.