Showing posts with label Tandy 1000. Show all posts
Showing posts with label Tandy 1000. Show all posts

Thursday, October 23, 2014

4.77MHz 8088, You're Needed!

The floor for all PCs, in terms of speed, is the Intel 8088 CPU running at 4.77MHz, the speed it ran in the IBM PC Model 5150 released in 1981.  However, there are various nuances when it comes to PC speed :

The IBM PCjr. also ran at 4.77MHz, but its access to 128KB of RAM was substantially slower than the PC because the video chip also accessed memory to refresh the memory.  It could decrease performance by 15-20%.  However, if software is ran in memory above 128KB, the performance is slightly better than the IBM PC.  Because the PCjr. was not designed to use more than 128KB, at least in the beginning, most early software did not account for the speed increase.  On the other hand, most PCjr.-specific software was contained on cartridges or self-booting disks and did not need RAM about 128KB.

A DOS rip of a PCjr. booter may run too fast.  Lode Runner is a good example of a game with this problem.  Fortunately it does have a speed adjustment that can reduce the speed to sane levels.  This is, however, a rare feature.

Most 8088s in the PCs and compatibles, including all the IBM PCs, XTs most of the PCjr.s, were socketed.  The NEC V20 was a very popular upgrade and was a simple replacement for the 8088.  It could increase performance by 15-20%, depending on the application.  Later, ISA accelerator cards like the Orchid Tiny Turbo and the Intel Inboard 386PC plugged into an ISA slot and the CPU socket and could speed up the system to be the equivalent of a low end AT or 386 machine.  Some brave users would try to overclock their machines by using crystal-switching devices like PC Sprint, which allowed the processor to use a faster clock crystal while the rest of the system used the standard clock crystal, vital for system timing.  

Later PC compatibles bumped the clock speed (Tandy 1000 SX, EX and HX), used a V20 (Tandy 1400) or the 8086 with a true 16-bit data path to RAM (some Compaq machines, Tandy SL, SL/2 and RL, IBM PS/2 Models 25 and 30) to improve speed without seriously sacrificing compatibility with software that relied on the basic speed.  Usually one speed "bump" would not be sufficiently serious to break software, but gameplay, sound effects and graphical effects could be affected when compared to the base machine.

However, when IBM released the IBM PC AT in 1984, it included a 6MHz 80286, which could run applications three times faster than the original PC or XT.  All the software that had been written before the AT's release had only to cope with one speed, so code that was dependent on processor speed could run far faster than intended.  Even when the AT was released, programmers did not necessarily put speed checks in their code overnight, the AT was an enormously expensive machine and games would be the last kind of software expected to run on it.  Thus for a five year period, 1981-1986, game software was generally designed to run on a 4.77MHz 8088.

In addition to the CPU speed, the speed of the video card sometimes needs to be taken into account.  The IBM Color/Graphics Display Adapter was the first graphics card for the IBM PC and compatibles, and it was widely cloned.  (By contrast, the IBM Monochrome Display and Printer Adapter could only show 80-column text and was not suitable for most games).  The PCjr. was only semi-compatible and the Tandy 1000 was (almost) fully compatible with IBM CGA, but it accessed memory far faster than the IBM card.  Some games rely on the performance of the IBM CGA card to produce special graphical effects.

Eventually, most early games will break sooner or later as the processor speed and generations increase, or the CGA hardware found less and less support with more advanced graphic cards.  Some games, however, like Shamus and Alley Cat, were famously far-sighted and could be run on virtually any system that can run DOS, regardless of processor speed.

IBM PC 4.77MHz

Defender
Defender simply runs too fast when the speed becomes any greater than one bump.  Forget about it running at a playable speed on a 286, even one that has been slowed down to 4MHz as with a Tandy 1000 TX or TL.  A 4MHz 286 is about as an 8MHz V20 or 8086.

Ultima I-IV
All of the first four Ultima ports to the PC vary the length of their sound effects, the speed of attacks and the spawning rate based on the system speed.

Dunzhin: Warrior of RAS
Dunzhin features synthesized speech, and the pitch of the speech is speed sensitive.  "Welcome to Dunzhin!"

IBM PCjr. 4.77MHz

Lode Runner & Championship Lode Runner
These games detect the presence of the PCjr. and adjust their speed.  Running games like these as a DOS conversion will result in the action running very fast.  The speed settings contained in the game may not fully compensate.

IBM PCjr. 4.77MHz and Tandy 1000 4.77MHz

Touchdown Football
This game was released by Imagic first for the PCjr. and somewhat later for the Tandy 1000.  At this point, the Tandy 1000 only ran at 4.77MHz and came with 128KB of RAM onboard.  The PCjr. version could run in a 128KB Tandy 1000, but the digitized speech would play back too quickly because the Tandy does not have same the speed penalty for memory accesses in its 128KB of RAM.  If you were able to accelerate your PCjr., the speech would playback too quickly.  The digitized speech in the Tandy version is affected by any speed bump, such as the 7.16MHz Tandy 1000 SX.  Fortunately, Tandy allowed you to change the speed of the CPU to 4.77MHz either at boot-up or in DOS.

Demon Attack
Also developed by Imagic and ported from the PCjr. cartridge version.  Similar to Touchdown Football, this game is extremely speed sensitive and runs properly only on a 4.77MHz 8088 Tandy 1000/A/HD/EX/HX/SX.

IBM PC 4.77MHz and Tandy 1000 4.77MHz

Super Boulder Dash
As discussed here : http://nerdlypleasures.blogspot.com/2016/08/boulder-dash-pc-speed-and-joysticks.html, the joystick will respond correctly only at this speed.  Fortunately it will still work with a V20 CPU.

IBM CGA Graphical Effects

Frogger
Jungle Hunt
Frogger and Jungle Hunt rely not so much on processor speed as they do on CGA speed to achieve the effect of making a change in the background color (Frogger) or palette (Jungle Hunt), in mid-frame.  Thus, the default graphics in Frogger will show blue water on the top and black pavement on the bottom, and show a white score text (using the intense cyan, magenta and white palette) on the top and green, red and brown in the playfield for Jungle Hunt.  Even at 4.77MHz, I discovered that at least Jungle Hunt will have an issue with initiating the palette switch on the right scanline when I was using an ADP-50L hard drive controller.  Using a different hard drive controller fixed the issue.

Digger
Digger uses a color-cycling effect on its High Score screen that looks properly when run on a 4.77MHz machine with a CGA card.

8088mph
This recent (2015) demo will only run correctly with a 4.77MHz 8088 CPU and an IBM CGA card. It relies both on the speed of the CPU and the video memory speed access of the CGA card, as well as the composite colors generated by the IBM CGA card.   It has different settings for Old and New IBM CGA cards.

Saturday, October 11, 2014

Directional Difficulties - The Early Keyboards and Cursor Keys

When IBM introduced the PC, it came with an 83-key keyboard keyboard that a number row and a numeric keypad.  There were no status LEDs on this keyboard, so the only way you could tell whether the Num Lock key had been pressed was by observing the behavior of the numeric keypad.  If a number was typed, then the Num Lock was on.  The general layout was as follows :


All layouts taken from here : http://www.quadibloc.com/comp/kyb03.htm.  There were also separate + and - keys and a PrtSc * key.  Not every game used the numberpad for directional controls.  

For the IBM PCjr., IBM severely cut down the keyboard size, build quality and number of keys.  There was no numeric keypad.  Instead, the keyboard only had six discrete cursor keys.  Here is the new layout :

The cursor keys pull double and even triple duty, as their function changes  if the Shift or Fn key is held down.  There is no Num Lock key on this keyboard.

The Num Lock key can be "pressed" by hitting Alt, Fn and N.  When the Num Lock function is activated in this manner or the Shift key is pressed, then Up becomes 8, Left becomes 4, Right becomes 6, Down becomes 2, Ins becomes 0 and Del becomes .  If the Fn key is held, then you get Home, Pg Up, Pg Dn and End for Up, Left, Right and Down, respectively.   Press Fn and Shift, and you get 7, 9, 3 and 1.  Numberpad key 5 cannot be directly generated by the PCjr. keyboard.

The next major keyboard innovation came from Tandy.  Tandy 2000 and more importantly 1000 keyboards have separate cursor control keys in the now familiar inverted-T layout.  In addition, there is a numeric keypad, but several functions have been changed.  There are individual keys for Home, Insert and Delete. Here is the layout :


There are more differences between an IBM and a Tandy keyboard as well.  However, the differences do not always make a difference to programs.  There are two general methods with PCs to determine which key was pressed.  The first was to call Int 16h.  The result would give you a translated scan code and an ASCII character.  The second was to read the raw scancode directly from the hardware.  Some programmers used the second method with their own keyboard interrupt handlers.  This tends to be the cause of keyboard incompatibilities.

Because some keys, like the numberpad keys, can give results identical to other keys on the keyboard, even the BIOS allows you to distinguish between the 1 key on the number row and the 1 key on the number paid.  You can tell the difference between the Left and Right Shift keys, even though their function is totally identical.

A Tandy has a Num Lock key and even a status LED, but when the Tandy boots up, the Num Lock defaults to off, just like the PCjr.  An IBM PC defaults the Num Lock function to on.  Many games require you to turn the Num Lock on when running on a Tandy 1000.  This is because the characters given by the Tandy keyboard are often not the same as on an IBM PC keyboard.  However, for numbers they will always be the same.  

The Tandy inverted T cursor keys are another issue.  A well-behaved program doesn't care which key is pressed so long as it reads the scancode it expects.  However, not every DOS game is well-behaved.  In DOS, the separate cursor keys function as they would on an IBM Model M keyboard.  However, some games rely on the numeric keypad to give eight movement directions.  Tandy's inverted-T cursor keys give different raw scancodes and may not always be recognized.  

Later Keyboards :

The 83-key keyboard layout was followed for the PC AT keyboard with a few differences to key placement and size.  IBM included status LEDs and an 84th key for Sys Req.  The raw scancodes are completely different from an 83-key keyboard, only the BIOS allows for compatibility with PC and XT software.  However, despite the fewer number of keys compared to more modern keyboards, it is still usable in any system with a PS/2 port.  

Finally, IBM released the Model M 101-key keyboard which essentially defined the minimum number of keys and the basic layout that we use today.  Its provided fully separate cursor keys in addition to the numeric keypad.  Most of the time, the cursor keys can be used as directionals, but because they have different raw scancodes than the numeric keypad cursor keys, some games will not recognize them.  The Model M supports three sets of raw scancodes, Set 1 is the PC/XT scancodes and it sends those scancodes when it is plugged into a PC or XT or Tandy 1000 TL/SL/RL or the 8086 based IBM PS/2s (but compatibility with anything other than the PC/XT's 2nd or 3rd BIOS is dicey).  Set 2 is when it is plugged into an IBM PC AT, PC/XT Model 286 and just about every other computer, including modern machines. Set 3 was intended as the native PS/2 scancode set and is similar to Set 2 but was rarely used. 

Sunday, September 28, 2014

The Lost PC Game Versions

Updated 03-28-2021

Originally this blog entry was titled "The Lost PCjr. and Tandy 1000 Game Versions".  However, several years later there are very few games known to have any special support for PCjr./Tandy graphics or sound remaining unavailable.  So I have decided to expand this list with other notable games.  You won't find these games in any DOS or ROM collection, on any abandonware site, from any torrent site, or to buy from any legitimate retro PC game selling site like Good Old Games.  Where I know of corroboration for these games, I will give it.

Agent USA - Tandy
Supports PCjr. graphics and was advertised for sale in Tandy's catalogs, so a Tandy version with support for enhanced graphics may exist.

Congo Bongo - CGA Composite
This game, like Tapper, came as a "flippy" disk.  This is a disk where both sides are independent of each other and can be used in single or double sided drives.  This is rare on the IBM PC, and disks for the IBM PC have two index holes.  Ultima 3 also used a flippy.  One version had graphics suitable for RGBI monitors, the other was meant for composite color monitors.  The composite color version has yet to be preserved and distributed.

Dragon's Keep - PCjr.
Based on installation instructions in the manual for the PCjr. and magazine articles from the time period, this game may have been ported to the PCjr.

EcoQuest 1 - EGA 16-Color
EcoQuest uses the Sierra SCI1 engine, and like other SCI1 games, it had separate 16-color and 256-color versions.  Other SCI1 games like King's Quest V and Conquests of the Longbow have their 16-color versions available, this is the only one which is not available.

Gauntlet II - Tandy DAC
Gauntlet II had a bonus disk, which you had to send away for to Mindscape, that added digitized sound support for owners of a Tandy 1000 with a DAC, such as the TL, SL and their successors.

Mouskattack - PC
A 2019 discovery of this Sierra port from the Apple II and Atari 8-bit computers : https://www.mobygames.com/game/mouskattack/cover-art

Oil's Well - PCjr.- PCjr.
Although there is a hack which gets Oil's Well working on a PCjr./Tandy 1000, the original disk still needs to be redumped because the disk was damaged where the PCjr. code was.  The original game may have PCjr/Tandy sound support.

Superbowl Sunday - Tandy
Supports enhanced PCjr. graphics.  Advertised in Tandy's catalogs, so a version that supports enhanced graphics on a Tandy may exist.

Wizardry II - 5.25" Disk
The Wizardry sequels were released on 5.25" disks and 3.5" disks, but only the latter are available for Wizardry II.  All booters should have 5.25" disks versions available because early computers like the IBM PC, XT and PCjr. did not have 3.5" drives.

Tuesday, September 16, 2014

Tandy 1000s and Interlnk and the Laplink Cable

You may recall that I hypothesized that the Tandy 1000 parallel port was actually useful for more than just printers, http://nerdlypleasures.blogspot.com/2014/03/a-hypothesis-of-tandy-1000-parallel.html, and now I have proof that it is so.  Using the MS-DOS Interlnk program, you can use the Tandy 1000 parallel port to transfer data to and from the Tandy 1000 with a second computer.

First, let us review some of the flaws in the Tandy 1000 parallel port.  First, most of them use a card edge connector instead of the common DB-25 connector.  To use it with anything except some Tandy printers or with a Tandy cable (rare) requires making an adapter.  Second, one of the signals for the Control Port, the Select Input signal, is not present on the connector.  Third, the Select signal on the Status port must be jumpered inside the system.

In most 1000 systems, the Select signal has a 2-pin header.  In the TL/2, RL and maybe the SL/2, you will need to solder in a 2-pin a header or connect the pins through some solder.  For the TL/2, the points are marked E1 and E2, unlike the other systems, this was not generally documented.  In most systems, the jumper is usually in a fairly inaccessible place, like underneath the power supply.  You will need to jumper the Select Printer signal to use Interlnk.  If you have an RLX, RSX or TL/3, then you won't have any of these problems.

Pinouts


Signal Name IBM Printer Port DB-25 Centronics 36-pin Cable Tandy 1000 34-Pin Card Edge Motherboard/Multifunction 26-pin Header
Strobe 1 1 1 1
Data 0 2 2 3 3
Data 1 3 3 5 5
Data 2 4 4 7 7
Data 3 5 5 9 9
Data 4 6 6 11 11
Data 5 7 7 13 13
Data 6 8 8 15 15
Data 7 9 9 17 17
Acknowledge 10 10 19 19
Busy 11 11 21 21
Paper End/Out of Paper 12 12 23 23
Select Printer 13 13 25 25
Auto Linefeed 14 14 27 2
Error/Fault 15 32 28 4
Init/Reset 16 31 30 6
Select Input 17 36
8
Ground 18-25 16, 19-30, 33 2, 4, 6, 8, 10, 12, 16, 18, 20, 24 10, 12, 14, 16, 18, 20, 22, 24
Not Connected
15, 17-18, 34-35 14, 26, 34 (+5v) 26 (key)

Constructing an Adapter

In order to construct an adapter, you need three things, a 34-pin IDC Card Edge Connector, a length of 34-pin ribbon cable (less than one foot) and a DB-25 female connector.  The Card Edge connector can be harvested off floppy drive cables, but you will need to grind out the bit of plastic inside with a small knife or screwdriver because the Tandy printer card edge has no slot for the function of this plastic bit, which is intended to make sure that you don't insert the connector the wrong way.  Pin 1 of the card edge parallel port is always on the side closest to the expansion slots on the Tandy 1000s.  Align it with the red stripe of the ribbon cable.


The DB-25 connector ideally should have the same type of crimp connectors as the Card Edge connector.  With the crimp connectors, you don't have to solder.  An alternative would be a parallel port with a ribbon cable that attaches to a header on the motherboard or a multifunction card like the AST Six Pak Plus.  I have included the pinout for them above.  In fact, if you remove the BERG-style connector, you will have pre-crimped wires that correspond almost exactly to the Tandy pinout.  This is probably the best way to go about it, and you can find keyless IDC 34-pin connectors.


If you go with the crimping DB-25 connector, I would recommend connecting all the Card Edge connector pins to the ribbon cable, then attaching the appropriate wires to the DB-25, which should give you more room to work with.  You only really need to connect a few of the ground wires, but make sure they aren't being cut into by other wires.

Custom Converter Cable
If you go with the ribbon DB-25 connector, I recommend pulling all the not connected pins, 14, 26 and 34, to make your job easier.  For your first cable, you may want to go easy on yourself and only connect the ten pins needed for a Laplink cable, which are 3, 5, 7, 9, 11, 19, 21, 23, 25, 28 and the two ground pins 16 and 18 on the card edge.  I recommend pulling all the other pins in this case.

Custom Converter Cable Closeup

Laplink Cables

While you can use Interlnk with either a serial null-modem or parallel port, the parallel port transfer is much faster and your Tandy's single built-in serial port, if you have one, should be used for a mouse.  This cable is called a Laplink cable, and originally it was most useful for laptops to access larger hard drives on desktops. A proper Laplink cable only connects certain wires, and here is the pinout :

Signal Name Pin Pin Signal Name
Data 0 2 15 Error/Fault
Data 1 3 13 Select
Data 2 4 12 Paper End/Out of Paper
Data 3 5 10 Acknowledge
Data 4 6 11 Busy
Acknowledge 10 5 Data 4
Busy 11 6 Data 3
Paper End/Out of Paper 12 4 Data 2
Select 13 3 Data 1
Error/Fault 15 2 Data 0
Ground 25 25 Ground

Testing the Adapter with a Laplink Cable

A Laplink cable acts like a loopback cable in that it feeds the output of one computer into the inputs of another computer and vice versa.  The Laplink cable sends and receives five bits.  The output port of a computers first parallel port, called LPT1 in DOS, is typically located at I/O address 0x378.  This is an 8-bit port, but in the Laplink cable, only the lower five bits are used.  The input port of LPT1 is located at 0x379, but this port only uses the upper 5-bits of the port.  Thus, the input will be shifted three bits to the left compared to the output.  In addition, the high bit of the input port is inverted.  

Debug has the i and o commands that can be used to output and input bytes from I/O ports.  The output command is o 378 xx and the input command is i 379.  Try outputting a byte from one machine and then read the input from a second machine.  You should use the following commands :

Host              Client
- o 378 10     - i 379
                       00 (IBM) or 07 (Tandy) - All bits cleared to 0

- o 378 0F      - i 379
                       F8 (IBM) or FF (Tandy) - All bits set to 1

Do this in both directions.  If the value you receive on the input does not equal the results above, you have a faulty wire.  Convert the number to binary to see which bit(s) is or are not working.

Only the top five bits of the result are important for Interlnk.  The lower three bits seem to be set to 0s on IBM parallel ports and 1s on Tandy parallel ports.

The DOS Interlnk Device Driver and Program

Interlnk was first introduced in IBM PC-DOS 5.02 and can be found in MS-DOS 6.0 through 6.22.  It can also be found somewhere in a Windows 9x installation.  It consists of two components, INTERLNK.EXE and INTERSVR.EXE.  INTERLNK.EXE functions both as a device driver and external DOS command.   INTERSVR.EXE is run at the command line.

INTERLNK is a program that allows you to access drives remotely, and its really easy to use once you figure out which computer is going to the host and which will be the client.  The host computer is the one being accessed, the client is the one performing the access.  On the host PC, all you need do is run the INTERSVR.EXE program at the command prompt.  Make sure to run it first.  It usually does not need any command line arguments, but you can use the /X=A: /X=B: to exclude the floppy drives.  

On the client PC, you will need to load INTERLNK.EXE in CONFIG.SYS.   To use the parallel port, I would suggest the following line in CONFIG.SYS :
DEVICE=C:\DOS\INTERLNK.EXE /NOPRINTER /LPT1

If you are successful, INTERLNK.EXE will inform you which drives it has discovered and will allow you to access them as if they were physically attached to the client machine.  Typically this will add at least drive D: to the client machine.  

You must all the INTERSVR.EXE program to remain running on the host machine, otherwise the benefits will be lost.

You can type INTERLNK at the command line of the client computer to determine the status of the INTERLNK connection.  

All Tandy 1000s can use MS-DOS 6.22, and the INTERLNK.EXE device driver takes up a very reasonable 7K.  INTERLNK requires a fully working parallel port adapter for the Tandys.  I would suggest using drivparm=/d:1 /f:x in your CONFIG.SYS for MS-DOS to fully recognize 720KB floppy drives, replacing the x with 0, 1 or 2 depending on which drive is a 720KB drive.

With a Tandy 1000 TX, you may be able to obtain a 40KB transfer rate from and to a hard drive.  If you are reading from or writing to floppy disks, expect something in the neighborhood of 5-8K.

Early Tandy 1000s

This guide applies to the Tandy 1000 EX, HX, SX, TX, TL, TL/2, SL, SL/2, RL and RL-HD.  The Tandy 1000/A/HD has an earlier version of the card edge port that puts Autoline Feed on pin 32, which is not relevant for the Interlnk cable but may be for other parallel devices.  They may connect the Select In pin instead of the Select pin.  If that is true, then the port is useless unless you connect the pin from the Parallel Port Array chip to the card edge.  However, the Tandy Technical Information Series Notes and Jumpers indicates that the Tandy 1000A and HD have a jumper to connect the printer select to the parallel port like the later models.

Sunday, September 7, 2014

Non-PC Speaker Digitized Sound Part II : Sample Time

In a prior post, I discussed the ability of sound devices other than the PC Speaker to produce digitized sound.  In this entry, I will share some recordings I have made of these digitized samples.  Most of the samples will be voice, but there are some sound effects and even music.

First off, here is Touchdown Football for the IBM PCjr., with an 8088 CPU @ 4.77MHz and using the TI SN76496 :



Next, here is the same game in its Tandy version, running on a Tandy 1000 RL, which uses an 8086 running at 9.44MHz, using a PSSJ-based TI SN 76496 core :



This code is very speed-sensitive.  Even on an RL in the slow 4.77MHz mode, it still runs too fast.  I believe that the code was only meant for an 8088 running at 4.77MHz, not a V20, and not an 8086 (which is what the RL has).

Here is the same sample, but being run by a Tandy 1000 SX, which uses an 8088 CPU running at 7.16MHz and an NCR 8496 (clone of the TI SIN 76496) :



This time, the sample sounds much more appropriate than the chipmunk like rendering by the faster machine.  However, this game was released when the only Tandy 1000 on the market was the 4.77MHz only 8088 CPU of the original Tandy 1000.  A Tandy 1000 TX running at 4MHz sounds very similar.  Because the SX can also run at 4.77MHz, I have been able to record the sample at that speed, and here it is :



If you compare this sample to the PCjr. sample, it becomes clear that the same voice is being used for both software versions.  Therefore, in order to run this game at its intended speed, an 8088 running at 4.77MHz is necessary.

While Touchdown Football turned out not to be a PCjr. exclusive, the next sample clip is from The World's Greatest Baseball Game.  This game, as far as I know, only officially supported PCjr. for enhanced graphics and sound.  I have included the music and speech that play before you start a game :



The announcer does sound a bit more synthetic than the announcer for Touchdown Football, but the speech is easy enough to comprehend.

The next sample clip is a fairly long one, and it is my recording of the movement sounds and battle sounds from the original, 16-color version of Battle Chess.  In this case, Battle Chess is running on a Tandy 1000 TX, 8MHz 80286, using an NCR 8496 clone of the TI SN 76496 :



Roughly, the clips are in the following order:

Pawn Moves
Knight Moves
Bishop Moves
Knight Takes Bishop
Bishop Takes Pawn
King Takes Bishop
Knight Takes Knight
Queen Takes Pawn
Rook Moves (King and Queen move silently)
Queen Takes Knight
Queen Takes Pawn
Knight Takes Queen
Queen Takes Knight
Rook Takes Queen
Bishop Takes Knight

Battle Chess in its 16-color version only supports PC speaker and Tandy 3-voice sound.  The PC speaker version lacks movement sounds, and the sound quality is pretty awful compared to the Tandy sound.  It was too awful to record, play the game in DOSBox if you want to hear it.  Fortunately, the 256-color version supports a Sound Blaster and plays identically to the 16-color version.  Interplay could have done better, as we will see soon enough.

Before I continue, I would note that I am recording all the Tandy 3-voice and PC Speaker samples through the RCA audio out jack of the Tandy 1000 TX.  This jack provides line level output.  I decided to avoid using my Tandy 1000 TL because a game may inadvertently utilize the Tandy DAC, and that is not the point of these samples.  For the Adlib and Game Blaster and Sound Blaster samples, I recorded them off a Sound Blaster 1.5 with C/MS upgrade.  That card only has an amplified out, so those samples are comparatively louder in these recordings than the Tandy and PC Speaker samples.  I decided not to tamper with them.

The next three games support PC Speaker or Adlib for digitized sound.  Wizardry, Bane of the Cosmic Forge and Super Jeopardy also supports the Covox Sound Master, Voice Master and the Innovation SSI-2001, but I do not have access to any of the Covox boards.  [I will try to put up a recording from the SSi-2001 clone I purchased].  Bill and Ted's Excellent Adventure sounds very impressive with the Adlib.  Additionally, both Wizardry and its sequel, Wizardry Crusaders of the Dark Savant uses the Adlib for digitized sound, even though they are quite aware of a Sound Blaster.  The digitized sound in the Wizardry Bane intro is not very long, so I did not bother to record a PC Speaker reference sample.











Finally, I will demonstrate Activisions "Omnimusic" driver from BattleTech : The Crescent Hawks' Revenge. This driver provides digitized sound through the PC Speaker, the Tandy 3-voice sound chip, the Adlib and Game Blaster chips, the Sound Blaster DSP, the IBM PS/1 Audio/Game Card, the Covox Sound Master and the Innovation SSI-2001.  It is a jack of all trades as far as sound devices of the late 80s and early 90s go.  However, not all things are equal, as you can judge for yourself.











As you can hear, the PC Speaker only does the digitized sound effects, and not very well at that.  The Game Blaster has a high pitched whine in its playback not heard with Tandy or Adlib, but the samples sound pretty decent  The Sound Blaster provides reference quality samples.

There are other PC games that support digitized sound through an Adlib card or clone.  These include Dungeon Master, Another World/Out of this World and Electro Man / ElectroBODY.  All these games support Sound Blaster and that is what anyone with a Sound Blaster should use.

If you want some more samples of what the Tandy chip can do when pushed to incorporate digital samples, then listen to some of these recordings from my friend Cloudschatze's channel :

688 Attack Sub : https://www.youtube.com/watch?v=M2A8GbsKcYQ
One on One : https://www.youtube.com/watch?v=M2A8GbsKcYQ
Kings of the Beach : https://www.youtube.com/watch?v=t2N7VLF0ZQo
Skate or Die : https://www.youtube.com/watch?v=I8_z_CI37JE

Friday, September 5, 2014

Flavors of PC Compatible BASIC and Why You Should Care

Cassette BASIC :

In 1981, when IBM released the IBM PC Model 5150, it included BASIC in ROM.  In the 5150, it was contained on four 8KB chips, in later machines, it was included within the 32KB chips that included the BIOS.  In every IBM PC model it occupies the space from F600:0000 to FDFF:0000.

Cassette BASIC, as its name implies, has commands for saving and loading only to a compact cassette.  In order to save to or load a program from a cassette, the user needed to connect a cassette drive to his IBM PC with a special cable.  On the back of the IBM PC Model 5150, there was a 5-pin DIN next to the keyboard DIN that this cable would plug into.  At the other end of the cable there would be a 3.2mm audio jack for the auxillary or microphone input (to save/record data from a PC), a 3.2mm audio jack for the earphone output (to load/playback data to the PC), and a 2.5mm jack to control the tape recorder remotely. The PC had a relay circuit on the motherboard that would start and stop the motor so that the user would not have to.

IBM did not offer a cable for the 5150, but Tandy/Radio Shack TRS-80 and Color Computer tape recorders came with the correct cable.  Most older tape recorders, including those Radio Shack sold for their non-PC compatibles, had four audio jacks, the EAR, REM, MIC and AUX.  Current recorders ditch the AUX input and only have a MIC input.  REM is the smaller jack that controls the cassette deck.  There was a jumper on the system board to set the appropriate signal strength for a MIC input or an AUX input.

Cassette BASIC comes in three versions, C1.0, C1.1 and C1.2.  C1.0 will only be found in the very first IBM PCs, typically those with a 16-64KB system board and a BIOS version dated 04/24/81 or 10/19/81. C1.1 generally should come with all IBM PC Model 5150s with a 64-256KB system board or those systems with a BIOS version dated 10/27/82 (the last).  However, the BIOS in the IBM PC is contained in one chip, U33, and can be updated in an 16-64KB system board without updating BASIC.

All later IBM PCs, the XT, Portable, AT, XT/286 and Convertible, contain Cassette BASIC C1.1.  The PCjr. (and probably the PC JX) uses Cassette BASIC C1.2 for reasons described below.  All PS/2s released during the 1980s and early 90s, and the early IBM PS/1s, also contain Cassette BASIC C1.1 for compatibility reasons.  No other PC Compatible system, unless an exact clone of one of these systems, included Cassette BASIC.

Unlike the disk-based versions of BASIC, Cassette BASIC does not require PC or MS-DOS to run.  However, because the IBM PC and IBM PCjr. are the only PC-compatible systems known to come with circuitry to drive a cassette recorder, Cassette BASIC can only save or load programs on these two systems. 

Disk BASIC, Advanced BASIC and GW-BASIC :

Disk BASIC and Advanced BASIC were included with PC-DOS v1.0 and every version thereafter, 1.1, 2.0, 2.1, 3.0, 3.1, 3.2, 3.3, 4.0 and 4.01.  They were replaced by QBASIC in PC-DOS 5.0.  The version number for Disk BASIC and Advanced BASIC correspond directly to the version of DOS they came with.  This you will see D1.1 for the version of Disk BASIC accompanying PC-DOS 1.1 and A3.3 for the version of Advanced BASIC that came with PC-DOS 3.3.  Disk BASIC is invoked by executing BASIC.COM in DOS, and Advanced BASIC by BASICA.COM in DOS.

The Disk BASIC-Advanced BASIC split was due to the low amounts of memory that came with early IBM PCs.  You could buy an IBM PC with only 16KB of RAM, but with that amount of RAM, you could only run Cassette BASIC.  Disk BASIC required 32KB of RAM, and Advanced BASIC 48KB of RAM.  Disk BASIC could do everything that Cassette BASIC could do and added support for saving and loading programs to floppy disks and serial port access, keeping track of the date and time and supporting two additional printers.  Advanced BASIC does all Disk BASIC does and more, such as support for more graphics and sound statements and event trapping.

PC BASIC does not support multiple memory segments, it runs everything within one 64KB segment.  Thus, after PCs began shipping with 128KB of RAM or more, there was no further need to use Disk BASIC.  In fact, as of DOS 3.3, BASIC.COM was just a small (1-2K) stub that called BASICA.COM and was only present for compatibility.  DOS 1.0-3.2 had a functional BASIC.COM.  PC BASIC would keep up with DOS features, like the added support for subdirectories in DOS 2.0 and the IOCTL calls in DOS 3.0.

With non-IBM machines, vendors and OEMs released system-specific versions of MS-DOS.  With these operating systems, GW-BASIC was included.  GW-BASIC did not require Cassette BASIC.  In these systems, sometimes there is a large BASIC.EXE and a small BASICA.COM.  BASICA.COM is the stub that executes BASIC.EXE.  Sometimes there is also a BASIC.COM stub.  In certain systems, the file was BASICA.EXE or GWBASIC.EXE.

Tandy's GW-BASIC for the Tandy 1000 series included the commands found in Cartridge BASIC to control its PCjr-derived advanced graphics and sound capabilities.  The AT&T 6300's GW-BASIC included commands for the advanced graphics capabilities of that system, and the Hercules Graphics Card came with a utilities disk with HBASIC, which allowed the use of the 720x348 graphics mode these cards support.  A generic GW-BASIC would not support these special features.  Microsoft began releasing generic, non-OEM specific versions of MS-DOS starting with MS-DOS 3.2.  A generic version of GW-BASIC can be found on them.

IBM also released Compiler BASIC which allowed users to compile their program into object code so it does not require a BASIC interpreter to run the program.  Most companies that released games found it simpler to run their code through an interpreter, because every computer with a disk drive and DOS should have had one during the 1980s.

Cartridge BASIC :

The PCjr. included Cassette BASIC C1.2 in its system ROM.  Due to the differences between the PC and PCjr., the BASIC code cannot be identical.  However, to maintain compatibility with applications written for Cassette BASIC, all the functionality of PC Cassette BASIC is included in PCjr. Cassette BASIC, and nothing more.  IBM released an official cassette cable that plugged into a unique male BERG-style port on the PCjr., but it requires a cassette recorder with an AUX input.

IBM released Cartridge BASIC with the PCjr., and the user had to buy it separately.  It is a 32KB cartridge that plugs into either cartridge slot of the PCjr.  Cartridge BASIC included commands to take advantage of the PCjr. video adapter and sound chip.  Cartridge BASIC has only one version, J1.0.  Disk BASIC and Advanced BASIC, when run on the PCjr., will show the version as J1.0, regardless of DOS version.  Disk BASIC and Advanced BASIC will not run unless Cartridge BASIC is present.

Using Cartridge BASIC in a PCjr. with more than 128KB of RAM imposes special problems.  Cartridge BASIC was not designed for more than 128KB, and programs run it may not run correctly or at all. However, the PCjr. will not recognize extra RAM unless a device driver is loaded in DOS.  If DOS is loaded, either from a disk or a hard drive without a device driver loaded, then Cartridge BASIC should run normally.  You will be limited to the first 128KB of RAM and the poor performance resulting by running BASIC code within it.  The popular device driver JRCONFIG 3.1 included an unsupported /q command line switch where it will lie about the amount of memory available to BASIC, but it will warn you that anything contained in a RAM Disk or Print Spooler created by JRCONFIG will be in danger.

QBASIC :

In PC-DOS 5.0 and MS-DOS 5.0, Disk BASIC and Advanced BASIC were no longer included with the operating system.  Instead, QBASIC version 1.0 was included.  QBASIC was a cut down version of Microsoft QuickBASIC.  QBASIC does not require line numbers and supports a mouse cursor, split windows, drop down menus and multiple colors in its text-based user interface.  The MS-DOS EDIT.EXE program requires QBASIC.EXE, QBASIC.HLP and EDIT.HLP to work.  QBASIC tends to be a poor performer on 8088-based XT-class and low speed 286-based AT-class machines.

I read that the original version of QBASIC in PC-DOS 5.0 still required Cassette BASIC in ROM, but it only used checked to see that it was there before loading QBASIC.  This requirement was removed in the QBASIC that came with PC-DOS 5.02.  QBASIC version 1.1 was included in MS-DOS 6.0 through Windows ME and NT 4.0.

BASIC Games :

The first game ever written for the IBM PC was Donkey.  This simple game was included as the file DONKEY.BAS with several other demonstration programs included on the DOS disks.  In fact, half the files included in PC-DOS 1.0 and 1.1 were BASIC demonstration programs.  It is included with PC-DOS 1.0-3.2.  With DOS 3.3, virtually all the demo programs were eliminated.  

QBASIC in MS-DOS 5.0 and PC-DOS 5.0 came with two games, Gorillas and Nibbles.  Their files are called GORILLA.BAS and NIBBLES.BAS.  Nibbles is a text mode game that uses an 80x25 column mode, but appears as a 80x50 column mode by the use of a half-bar ASCII character (where the top half uses the foreground color and the bottom half uses the background color).  It works with any video adapter. Gorillas uses either the 320x200x4 CGA Mode 04 or the 640x350x16 EGA Mode 0F.  They are intended to be run on a low-end 386 or a high end 286.  Both games would be gone by MS-DOS 6.22 and PC-DOS 6.1

Games Requiring BASIC :

Several games, usually early games, used Cassette/Disk/Advanced BASIC.  Some were copy-protected DOS disks that directly accessed Cassette BASIC.  They must be run on an IBM system.  Nine games commercially released by IBM early in the life of its PC line require Cassette BASIC or Cartridge BASIC.  They are

Adventures in Math
Arithmetic Games Set 1*
Arithmetic Games Set 2*
Bumble Games*
Bumble Plot*
Casino Games
Juggles Butterfly*
Monster Math
Strategy Games

* - Copy Protected (The Learning Company games) or probably Copy Protected (Science Research Associates, Inc.)  IBM never seemed to copy protect the games it developed internally, but did with any game it released that was licensed from or developed by another company.  Any game that is not copy protected, or has been cracked to run on a generic disk should be able to be run with GW-BASIC.  Mobygames lists 75 games that require BASIC, and some are sophisticated commercial releases like Battle of the Bulge, some are old classics like Temple of Apshai and others are small single file games that just need a BASIC interpreter. There are many, many freeware games that run on QBASIC, and while Mobygames may not document every Cassette/Disk/Advanced BASIC game ever made, it does not really list any games that use QBASIC other than Gorillas an Nibbles.  A good place to start to find QBASIC games is here :

http://www.qbasic.com/games/
http://www.petesqbsite.com/index.php


Wednesday, May 28, 2014

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 three games that either do not show graphics or are unplayable (Demon Stalkers, Snow Strike, Duck Tales : Quest for the Gold) 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

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

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.