Last modified on Sat Nov 27 17:49:09 PST 1999 by mann
Most software from Misosys, Logical Systems, Galactic Software Ltd., Powersoft, and Breeze/QSD is now available for free download by permission of the copyright owner, Roy Soltoff (owner of Misosys). See http://www.research.compaq.com/SRC/personal/Tim_Mann/trs80.html.
Other sites with downloadable software include:
Computer News 80 has some commercial software and hardware products, a library of freeware disks, and a small monthly newsletter that still supports the TRS-80 I/III/4. You can contact them via the Web at http://www.cnpublishing.com/cn80.html, via email at compnews@juno.com, or by phone at 307-265-6483.
M. A. D. Software deals in TRS-80 products. Among other things, they have upgrades to the Model 4P ROMs and the MODELA/III file (Model III ROM image). Check out their Web site at http://madsoft.lonestar.org/, or contact them via email at madcs@madsoft.lonestar.org or via US mail at:
M. A. D. SoftwarePete Bumgardner trades in old TRS-80 hardware and software. See his "TRS-80 Again" Web page at http://www.simology.com/trs80again/ or email him at trsorder@simology.com.
Frank Gottschalk ("The TRS-80 Recycler") deals in used TRS-80 hardware and software. You can contact him at 72623.40@CompuServe.COM.
Archive Software is a small venture run by Cord Coslor. Cord buys and sells used TRS-80 Model I/III/4 software and hardware (among other things). His Web page seems to have vanished, but you can still try contacting him via email at archive@navix.net.
You can still order some software from Tandy Software Replacement and/or Radio Shack Unlimited, formerly Radio Shack National Parts. You can ask at a store or call Radio Shack at 800-843-7422. I'm told that you might have to bug people for a while and maybe ask for a supervisor or someone who's been there longer, before you find someone who believes this is possible and knows how to do it. The purpose of Tandy Software Replacement is to supply replacement disks to people whose originals have been destroyed, so generally they do not provide manuals or packaging, and the prices are very low. They don't actually seem to care whether you originally owned the software. Radio Shack Unlimited also stocks (or can make up) full packages of some software, including manuals.
You might find a little information on the Web, but pickings are slim for hardware information. You can start with the TRS-80 links on my Web page, at http://src-www.pa.dec.com/~mann/trs80.html#links.
You can ask on the newsgroup comp.sys.tandy. This is a good place for TRS-80 software questions too. You might also try searching back postings to the group with Deja News.
Also try the sources given in topic [1] to see if they carry hardware manuals. Tandy Software Replacement or Radio Shack Unlimited are said to be able to photocopy and sell manuals, but I haven't tried this.
Computer News 80 has a mail-in repair service; see topic [1].
Tandy Repair Centers may or may not be able to fix your TRS-80. There is some danger that they won't know how to find the necessary parts and information. They don't see a lot of these machines any more.
People don't really ask me this, but I need to put this information somewhere to refer to from other answers!
Under MS-DOS or MS Windows, I recommend:
Under Unix, I recommend the xtrs Model I/III/4 emulator, version 3.5 or later. This is freeware, available from http://www.research.compaq.com/SRC/personal/Tim_Mann/trs80.html. It should work on any version of Unix with the X Window System, except that its support for physical floppy disk drives works only under Linux.
A .DSK file is an image of a TRS-80 floppy disk in a file. They are used by TRS-80 emulators.
Warning: There are three kinds of .DSK files with different internal formats, one that originated with Jeff Vavasour's Model I emulator (JV1), one that originated with his Model III/4 emulator (JV3), and one that originated with David Keil's emulator (DMK). Each one adds support for more TRS-80 disk formats. Each of Jeff's emulators works only with the kind of .DSK file that was designed for it. Matthew Reed's Model I/III emulator and the xtrs Model I/III/4 emulator work with JV1 and JV3 transparently. David Keil's Model III/4 emulator works with all three kinds.
Technical details of the JV1 and JV3 formats are now available from my Web page, http://www.research.compaq.com/SRC/personal/Tim_Mann/trs80.html. Technical details of the DMK format are available from David Keil's Web page, http://discover-net.net/~dmkeil/trsdoc.htm#Technical-disks.
One way is to transfer data over the TRS-80's serial port or printer port. That's probably the best way if you have a Model I, because a stock Model I can read and write only single density, but many PCs cannot deal with single density (see topic [11]). Jeff Vavasour's Model I emulator includes instructions on how to do this; see topic [3].
A faster and more convenient way, if you can get it to work, is to read the disks in a PC with a 5" floppy drive. Under MS-DOS or MS Windows, try Matthew Reed's freeware READDISK program. See http://www.arrowweb.com/mkr/readdisk_doc.html.
Alternatively, if you have problems with READDISK or you are using Linux, you can copy the disks with an emulator, as follows.
There are at least four possibilities:
(A) One way would be to transfer data from your newer computer to a real TRS-80 through its serial port or printer port. That may be the only way if you have a Model I, because a stock Model I can read and write only single density, but many PCs cannot deal with single density (see topic [11]). However, I don't know of any software for transferring data to the TRS-80 Model I through a serial or parallel port. (Kermit did exist for the Model 4, and you may be able to find XMODEM or the like, but I can't help with them.)
(B) A faster and more convenient way, if you can get it to work, is to write the disks in a PC with a 5" floppy drive. If you have Linux on your PC and your disk is a standard double-density format (40 or 80 tracks, 1 or 2 sides), you can use the programs trsfmt and diskdmp by Tony Duell, available from http://www.research.compaq.com/SRC/personal/Tim_Mann/trs80/trsdsk.tar.gz. See the documentation included in the tar file. If you don't understand what to do with .tar.gz files, see the next method instead.
(C) A more general way to write TRS-80 floppy disks in a PC with a 5" floppy drive is to use an emulator. Suitable emulators are available for both Linux and DOS or Windows. Here is a procedure you can follow.
Most of the TRS-80 emulators have programs for doing this. Read the instructions for your emulator to find out how to use them. Sometimes the program runs on the emulated Z-80 (a /CMD file); other times it runs on the host operating system (an .EXE file).
Under Jeff Vavasour's Model I emulator, the relevant program is VREAD.EXE. Under Jeff's Model III/4 emulator, it is EXPORT/CMD. Under Matthew Reed's emulators, the program is TRSREAD.EXE and is available only with registration. Under xtrs, the program is called EXPORT/CMD (not the same program as Jeff's).
Most of the TRS-80 emulators have programs for doing this. Read the instructions for your emulator to find out how to use them. Sometimes the program runs on the emulated Z-80 (a /CMD file); other times it runs on the host operating system (an .EXE file).
Under Jeff Vavasour's Model I emulator, the relevant program is VWRITE.EXE. Under Jeff's Model III/4 emulator, it is IMPORT/CMD. Under Matthew Reed's Model I/III emulator, the program is TRSWRITE.EXE and is available only with the registered version. Under xtrs, the program is called IMPORT/CMD (not the same program as Jeff's).
Some TRS-80 software you will find on the Web is supplied in .ZIP archive files. You need to unzip these files to unpack their contents. There actually are unzip programs that run on a TRS-80, but they're slow and may not support all the compression types used by modern zip programs. So you'll generally want to unzip these archives on on your PC or Unix box. You can get free unzip programs from http://www.cdrom.com/pub/infozip/.
Within some .ZIP archives is a .DSK file. This is an emulated floppy disk file. See topic [4] and the rest of this FAQ for instructions on how to deal with .DSK files.
Other .ZIP archives contain individual files extracted from TRS-80 disks. You can use these with an emulated (or real) TRS-80 by copying the files onto a .DSK file or a real floppy. See topic [8] for instructions.
Some .ZIP archives of TRS-80 software may contain both a .DSK and the individual files extracted from it. This is perhaps the most convenient form, but obviously takes up twice as much space as either of the others.
The table below is based partly on documentation and partly on actual test. Where a filename matches more than one pattern, use the first one that matches. If a password doesn't work, try others from the table and let me know of the error. If you have password information for other Model I/III/4 operating systems, let me know. The values in the TRSDOS 6 column should also work for versions of LS-DOS prior to 6.3.1.
Files LDOS 5.1 LDOS 5.3.1 TRSDOS 6 LS-DOS 6.3.1 ----- -------- ---------- -------- ------------ basic/* (unused) basic basic basic lbasic/* basic (unused) (unused) (unused) config/sys ccc ccc ccc ccc */sys wolves system lsidos system6 */flt gsltd filter filter filter */dvr gsltd driver driver driver */dct rrw3 driver utility driver or utility */cmd rrw3 utility utility utility */hlp (unused) help (unused) help back door rs0lt0ff rs0lt0ff (nflag$ bit7) (nflag$ bit7)The password listed as "back door" gives you access to all files regardless of what their real passwords are. It's documented! I confirmed by looking at the source code that TRSDOS/LS-DOS 6 has no such password, but I found that later versions of it have another, undocumented back door: if you turn on bit 7 of NFLAG$, all file password checking is disabled. The command MEMORY (A="N", B=128) will do this. This back door can be found in TRSDOS 6.2 and LS-DOS 6.3.1, but not in TRSDOS 6.1.2.
Model I TRSDOS 2.3 also has a back door password; the originally intended password is unknown, but the string "ubett" hashes to the correct value and can be used. VTOS 3.0 also has such a back door; the password "hadu" can be used.
The password "password" is a standard default in the TRS-80 world. If you're insistently prompted for a password in a situation where you don't think a password should be needed, try "password".
Another way to reconstruct TRS-80 passwords is through exhaustive search. This is quite fast because TRS-80 operating systems hash their passwords down to 16-bit values, so you need only find some password that hashes to the same value, not the exact original password. Here is a C program to do that.
/* trspwhash * Usage: trspwhash password // Hash a password * trspwhash -u 0xhash // Unhash a password to letters * trspwhash -n 0xhash // Unhash a password to letters and digits */ #include <stdio.h> unsigned int pwhash(unsigned char pw[8]) { unsigned char *p = &pw[7]; unsigned int count = 8; unsigned int hl, t1, t2; hl = 0xffff; do { t1 = hl & 0x07; t2 = hl & 0xff; hl = (t1 << 13) ^ (t1 << 9) ^ (t1 << 2) ^ (t2 << 8) ^ (t2 << 4) ^ (t2 >> 3) ^ (hl >> 8) ^ (*p-- << 8); } while (--count); return hl; } void usage() { fprintf(stderr, "usage: trspwhash [-u | -n] arg\n"); exit(1); } int main(int argc, char **argv) { unsigned int goal; unsigned char pw[17]; int i; if (argc == 2) { strncpy(pw, argv[1], 8); pw[8] = '\0'; strcat(pw, " "); for (i = 0; i < 8; i++) { if (islower(pw[i])) pw[i] = toupper(pw[i]); } printf("%04x\n", pwhash(pw)); } else if (argc == 3 && strcmp(argv[1], "-u") == 0) { goal = strtoul(argv[2], (void*)0, 0); strcpy(pw, " "); for (;;) { if (pwhash(pw) == goal) printf("%s\n", pw); i = 0; for (;;) { switch (pw[i]) { case ' ': pw[i] = 'A'; break; case 'Z': pw[i] = 'A'; i++; if (i == 8) exit(0); continue; default: pw[i]++; break; } break; } } } else if (argc == 3 && strcmp(argv[1], "-n") == 0) { goal = strtoul(argv[2], (void*)0, 0); strcpy(pw, " "); for (;;) { if (pwhash(pw) == goal) printf("%s\n", pw); i = 0; for (;;) { switch (pw[i]) { case ' ': pw[i] = 'A'; break; case 'Z': pw[i] = '0'; break; case '9': pw[i] = 'A'; i++; if (i == 8) exit(0); continue; default: pw[i]++; break; } break; } } } else { usage(); } return 0; }
The Western Digital 177x/179x floppy disk controllers that were used in TRS-80s have some capabilities that PC disk controllers generally lack. The executive summary is that (1) most standard PC floppy controllers can't handle single density at all, (2) even those that can handle single density generally cannot read the directory track on a Model I TRSDOS disk, and (3) there can also be problems reading double density disks. Here are more details.
Many PCs cannot handle single density (FM) encoding. The original Model I used single density exclusively, and even a Model I with a double density adaptor requires a single density boot sector on system disks. The original IBM PC controller required extra outboard components to support clock/data separation for single density, but IBM left them off to reduce their manufacturing costs. (So I'm told; I wasn't involved with PCs in that era.) This started the tradition of leaving out single density support in PCs. Modern PCs use more highly integrated IO chips that include data separation on the chip, but many still omit single density support. See topic [14] for a rundown on what PC controllers support single density.
The WD1771, used in the TRS-80 Model I, is able to read and write single-density sectors with nonstandard data address marks (DAMs) 0xF9 and 0xFA, as well as the standard ones 0xFB (data) and 0xF8 (deleted data). The WD1791/1793 and later chips, used in the Model III and 4, can read all such sectors, but cannot distinguish between 0xFB and 0xFA, or 0xF9 and 0xF8. Model I's with double density adaptors have *both* controllers, and use the 1771 for single density, so they are fully compatible with stock Model I's. PC disk controllers, even those that do single density, cannot read sectors that use the 0xFA or 0xF9 DAM at all. (I have actually tested this only with 0xFA on a PC87306. I'd welcome corrections if other standard PC controllers can handle these data address marks.)
These differences would be no problem if Model I software did not actually use the nonstandard DAMs, but unfortunately, it does. In particular, Model I TRSDOS 2.x distinguishes between normal data sectors and directory sectors by using 0xFB for the former and 0xFA for the latter. On Model III/4 TRSDOS-like systems, where 0xFA is not supported, the distinction between 0xF8 and 0xFB is used instead. Some later Model I systems (such as LDOS 5.0.2 and later) also switched to 0xF8 on the directory to allow for direct media compatibility with the Model III/4, while others stuck with 0xFA for direct Model I TRSDOS compatibility. Patches for TRSDOS 2.3 were developed that allow it to read and/or write 0xF8 directory sectors, but they were not widely used. (See topic [12].) Special software is supplied with Model III/4 operating systems that allows them to read Model I disks and/or convert them to Model III/4 format. (The REPAIR command on LDOS is an example of the latter.) No such software can work on a PC controller, however, because the 0xFA sectors cannot be read at all.
There are also many gratuitous format differences amongst the various TRSDOS-like TRS-80 operating systems. For most of the systems, a single-density, single-sided, 35-track disk is a common denominator, except for the DAM problem just discussed. Adding more tracks is usually not a problem, though some systems may insist that the directory remain on track 17, while others put the directory location in track 0, sector 0, byte 2. The various systems diverged in the way they generalized the format to work with double density and other larger drives. The main streams were LDOS, NEWDOS, and Model III TRSDOS 1.3. LDOS uses a variable number of sectors per granule (allocation unit) that must evenly divide the number of sectors per track, and uses exactly one cylinder for the dirctory. I believe NEWDOS always uses 5 sectors per allocation unit, but allows varying the packing of granules onto the disk and the number of granules used for the directory. Model III TRSDOS 1.3 made a large number of unnecessary changes to the format; it was clearly inspired by the Model I format, but it is not a compatible extension.
Many PC disk controllers have difficulty reading double density disks formatted by older releases of TRS-80 operating systems, even with the proper software on the PC. Many TRS-80 operating systems formatted the disks with too short a gap between the index hole and the first sector. I'm told that you can sometimes work around this problem by putting a piece of tape over the index hole. The WD1770 controller used in later releases of the TRS-80 Model 4/4P hardware also had problems reading these disks, so later releases of all the Model III and 4 operating systems were corrected to format floppies with the proper gap lengths.
Model I TRSDOS users will find difficulty in reading the distribution disk due to the data address mark used for the directory. Therefore, before making a BACKUP or copying EDAS files from the diskette, you will need to change one byte of the TRSDOS 2.3 disk driver using one of the following three methods. This change will not affect the operation of your TRSDOS.
Method (1) directly modifies the system diskette with a patch. To prepare for this patch, obtain a fresh BACKUP of your TRSDOS 2.3 to use for this operation. Then enter the following BASIC program and RUN it. After you RUN the program, re-BOOT your TRSDOS diskette to correct the byte in memory.
10 OPEN"R",1,"SYS0/SYS.WKIA:0" 20 FIELD 1,171 AS R1$, 1 AS RS$, 84 AS R2$ 30 GET 1,3: LSET RS$="<": PUT 1,3: CLOSE: END
Method (2) uses DEBUG to change the byte in memory. Use this if you do not want to patch your TRSDOS system diskette and are familiar with DEBUG.
Method (3) uses a POKE from BASIC to change the value directly in memory. This procedure is as follows:
There is essentially no difference between single and double density media (if you can actually find any single density media anymore). Double density media has been tested and certified for double density recording, which is slightly more demanding than single density recording; conceivably, a dropout that might not be noticed in single density could be a problem in double density. In practice, though, I suspect that back in the days when manufacturers sold both DD and SD media, the media came off the same production line and the SD media would have met the DD standard nearly all the time.
"Quad density" 5" media is essentially the same too. It's certified for double density recording at 80 tracks per side rather than 40 tracks per side. Ordinary double density media usually works fine at 80 TPS, however. All 3.5" media is certified for 80 TPS.
You will also sometimes see media labelled as one-sided or two-sided. Both types have magnetic material on both sides, but on the disks advertised as one-sided, the second side may not have been tested. It's even possible, though unlikely, that the second side was tested and failed. Also, occasionally you'll find a "flippy" 5" disk. Such a disk can be recorded on both sides by removing it from the drive and flipping it over. It has two separate write-protect notches and two separate index hole cutouts in the jacket. Sometimes users would make their own flippy disks with a hole punch.
"High density" media is very different, and should not be interchanged with single/double/quad density media. It has different magnetic properties. You will usually not even be able to format DD media as HD, and although you can sometimes format HD media as DD and write to it, that's not a good idea. The media will be too strongly magnetized by the DD head and bleed-through can occur, garbling your data either right away or after the disk has sat on the shelf for a while. You can distinguish between 3.5" HD and DD media by looking for a hole in the jacket on the opposite edge from the write-enable hole; HD media has the extra hole, while DD media does not. You can sometimes distinguish between 5" HD and DD media by looking for a hub reinforcing ring; DD media usually has a ring, while HD media does not.
Some folks will tell you that you need an older PC to get single density support. This is wrong. Many PCs being produced today support single density, and many older ones do not. The most practical answer to this question is simply "try it and see" -- it's more accurate and usually easier to try reading and writing FM on your PC to see if it works, rather than opening up the box and peering at the part number on the FDC or SuperIO chip (which might not give you a definite answer anyway). If you want more detailed information, though, read on.
The answer to the question "does controller chip X support single density (FM)?" can be "yes", "no", or "implementation dependent" (that is, "maybe"). With early controllers, the answer was "maybe", because more external components were needed to handle data separation for both FM and MFM than for MFM alone. As mentioned in topic [11], the original IBM PC omitted the external components needed to support FM, and many later compatibles followed suit. Modern controllers typically integrate data separation on the main chip, but some support FM and some do not. It seems that in some cases, a PC may be able to read single density but not write it, or it may be able to read and write but not format; these behaviors may depend on external components, not just the controller chip.
The information below was gleaned from newsgroup and Classic Computer mailing list postings by Amardeep S. Chana, Don Maslin, Pete Cervasio, Allison Parent, and Tony Duell, together with some knowledge of my own. I've liberally borrowed from their words for this answer. Don't take this listing as absolute truth; in particular, some of the posters were not in full agreement on some points! Feel free to send additions or corrections if you have some information.
The above NS and SMC parts are completely stand alone with on board filters, write precomp generators, and data separators. They should work with FM in any board implementation, unless something specific is done to prevent it (not likely). This is per the National and SMSC (new name for SMC semiconductor) data sheets. Amardeep tested the NS PC87306 and SMC FDC37C65 using Jeff Vavasour's Model 4 emulator and Tim Mann's xtrs 2.8 under Linux. They both read and write FM with no problems. It is important to verify the part number on the chip itself. Many of the newer NS parts (see below) will identify themselves to software as PC87306, but do not support single density.
The Intel 82077AA and 82077SL data sheet clearly states these parts support FM. Again, verify the part number on the chip. Newer Super I/O parts like Winbond W83877F or SMC FDC37C665IR may identify themselves to software as 82077's but may have different characteristics.
The NS 8477 data sheet indicates that it does support FM (it is functionally and pin for pin compatible with the Intel 82077). Amardeep says the Goldstar Super I/O was reported to work with FM in a newsgroup posting he read once, but he was never able to confirm it.
The NS PC87332 and NS PC97307 are standalone and by design do not support FM (verified on the National data sheets). However, they may misleadingly identify themselves to software as NS PC87306 parts. The Intel 82078 data sheet clearly states that the parts do not support single density.
Amardeep says that the Winbond chips have never worked in FM on any adapter or motherboard he's ever encountered them on; no idea if it's the chip or the implementation. Pete says that on his ASUS board, the Winbond W83877F actually will read and write FM but will not format FM.
It's possible that some of these chips really belong in the "implementation dependent" category, so even if you know you have one in your machine, you might as well try it and see if FM works for you.
Don says: I have DTK FDC cards with the 8473 and read Osborne 1 disks with them just prior to writing this. Amardeep says: The 1988 data sheet for the NS 8473 states on page 8-32, "While the controller and data separator support both FM and MFM encoding, the filter switch circuitry only supports the IBM standard MFM data rates. To provide both FM and MFM filters external logic may be necessary." Every 8473 board I have tried failed to write FM. However, it may be possible to read FM on some boards if the external filters have a wide enough Q.
Don says: I have the WD 37C65 in the WD FOX card and it will also read/write FM. Amardeep says: The only information I have on the WD FDC37C65 is the Always IN2000 card I have with that chip cannot read or write FM. I suspect it is also dependent on implementation.
I believe the 765 was the chip in the original IBM PC, as discussed above. Amardeep says: Intel 8272 is a NEC 765 clone and therefore dependent on implementation.
Amardeep says that the UMC chips have never worked in FM on any adapter or motherboard he's ever encountered them on; no idea if it's the chip or the implementation. Allison, however, has used UMC SuperIO chips to do FM "with ease" using the internal data separator.
Tony says: The data sheet claims the UMC 8398 will do FM or MFM. In my experience it will correctly handle MFM disks (with both standard and my own software). When you try FM, it almost works. It just mangles the last byte in the sector. This is (apparently) a known problem with this chip. Allison says: The last byte mashed in the UMC is also common to most 765s and is related to DMA read/write timing such that if you delay the DMA request by about 1-3uS (several FDD bit times) in FM mode it should work fine.
Don says: Another chip that you might want to evaluate is the Motorola MCS3201FN. While not terribly common, the two examples that I have been exposed to suggest that it does not support FM.
Amardeep says: I haven't yet investigated the new Intel Super I/O chip which is replacing the 82078.
Add-on floppy controller cards for the PC that are specifically intended for disk duplication or for converting disks from other kinds of machines often use Western Digital 17xx chips or custom hardware that is more versatile than standard PC controllers. For example, the Catweasel controller (see http://members.tripod.com/~apd2/catweasl.htm can be programmed to handle just about any format. I've heard people mention the MicroSolutions CompatiCard, too, but the CP/M FAQ says that it is a discontinued p roduct, so you'd have to find a used one somewhere.
Displaying lowercase letters on a TRS-80 Model I requires both a hardware modification and a software driver. If you aren't sure whether you have the hardware modification, go into Basic and type "POKE 15840,98". If you have lowercase, you will see a lowercase "b" in the middle of the screen; if not, you will see a quotation mark. If you need the hardware modification, the next section describes how to install it; if not, skip down to the section about software drivers.
A stock Model I has only 7-bit wide video memory. This is enough for 6-bit, uppercase-only ASCII and the TRS-80's 6-bit graphics characters, but not for lowercase. In a stock machine, the missing bit6 is synthesized as !bit7 & !bit5. You can add a true 8th bit using the following instructions.
You will need a low-power soldering iron, thin rosin-core solder, thin insulated copper wire (such as wire-wrap wire), one 2102 static memory chip (1K x 1 bit) and preferably a new character generator ROM. The character generator replacement is needed to make the modified machine compatible with the Level II Basic ROM's display driver and to give it true descenders on lowercase letters. If you don't have a new character generator, you will need to install an SPDT switch to turn off the mod when using Level II Basic or other software that doesn't have a lowercase driver, and your lowercase g, j, p, q, and y (and maybe a) will be shifted up a couple of pixels from the baseline.
Turn your TRS-80 keyboard unit face down on a cloth, and remove the six bottom screws, being careful to note which went where. Now turn it face up and lift off the cover. Lift up the keyboard, being careful not to pull the ribbon cable at the left front loose. Remove the plastic spacers between the two boards, and lift out the boards, setting them down with the component side of the logic board up.
Find Z45 in the lower left corner of the board. The new 2102 will be mounted piggyback over this one. Bend pins 11 and 12 of the new 2102 straight out, and set it over Z45. Solder (quickly, with low heat) each pin of the new 2102, except 11 and 12, to the corresponding one on Z45.
Find Z30. From its left side run three traces, a narrow one between two wide ones. Cut through the narrow one with a sharp knife, being sure to break the connection completely without damaging other traces. (This trace connects Z30 pin 13 to Z60 pin 4.)
If you don't have a replacement character generator: Find a mounting place for the SPDT switch where you will be able to get to it after the case is reassembled. Run a wire from pin 11 of the new chip to Z60 pin 5. Run a second wire from Z60 pin 4 to the common terminal of the switch. Run a third wire from another terminal of the switch to Z30 pin 13. Run a fourth wire from the remaining terminal of the switch to the new chip's pin 12. One switch position will now give you uppercase only but will work with Level II Basic; the other will give you lowercase in software that has a lowercase driver and meaningless symbols in software that doesn't.
If you do have a replacement character generator: Run a wire from pin 11 of the new chip to Z60 pin 5. Run a second wire from pin 12 of the new chip to Z60 pin 4. Remove the old character generator ROM chip (Z29) and replace it with the new one. I think Z29 was socketed, but if it isn't, you will have to very carefully desolder it without overheating the PC board and making the traces lift, and preferably without overheating the old chip in case you need to use it again. I suggest installing a socket for the new chip.
Reverse the disassembly procedure to put your machine back together. If you kept the old CG ROM and installed a switch, try both switch positions to see what they do. If anything doesn't work, go back and carefully recheck your wiring.
The display driver in the Model I Level II Basic ROM forces everything to upper case. In fact, it actually writes ASCII codes between 0x00 and 0x1f into the video RAM and expects them to display as uppercase letters. That's why you get meaningless symbols if you don't replace the character generator: the standard character generator has those symbols in positions 0x00 to 0x1f, but you can't see them until you add the 8th bit of video memory.
TRSDOS uses the ROM driver, but alternative operating systems like LDOS and Newdos include a lowercase driver, as do many other programs. Usually these programs will detect and use lowercase automatically if it is present.
It is possible to add a lowercase driver to TRSDOS or even to cassette-based Level II Basic. In the future I'll probably add a listing of such a driver here.
The 4P uses two different methods for generating horizontal sync pulses for the monitor, depending on whether it's in 64 character mode (Model III) or 80-character mode (Model 4). In 64-char mode, horizontal sync is derived from the master clock, which is regulated by a crystal and thus very stable. However, in 80-char mode a Phase-Locked Loop circuit (PLL) is used to generate the signal, and it drifts out of calibration over time. This can result in display wrap-around or a total loss of sync. There is a trimmer capacitor that can be adjusted to fix it.
The biggest problem in making the adjustment is getting to it. The trimmer cap is on the motherboard near the front of the CRT, but just far enough under it that you can't get to it with a pot tweaker. Here's the basic procedure I used. (I'm typing this from memory, so I hope I haven't omitted some gnarly detail.)
If some of the terms below leave you behind or the procedure sounds scary, you should definitely not tackle this yourself -- take it to a friend who's a hardware techie. Warning: whenever you have the case open, be careful what you touch, especially with metal objects. You can get a shock even if power is off, and if power is on, a metal object touching the wrong two contacts could easily short out the power supply and fry it.
1. Remove the case and front bezel. The main case is held on by screws near the front and two large ones under the handle. The front bezel is held on by several screws inside the case.
2. Remove the top of the monitor enclosure.
3. Turn the machine on and boot it into Model III (64-char) mode or just reboot it with no disk and wait for the multi-lingual "insert disk" screen to appear.
4. Adjust the monitor's horizontal sync back and forth until the picture breaks up in both directions, then set the adjustment to the middle of this range. The picture should centered and clean. Replace the top of the enclosure.
The PLL adjustment must be done with power on while observing the screen, since it is very sensitive. This means that the cables all need to be hooked up at the time. To access the trimmer cap you have to shift the motherboard forward enough to move the trimmer beyond the front of the CRT, but still have the critical cables connected. This is impossible with the disk drive cables connected at the rear, but they need to be connected in order to boot the system into 80-column mode! I finally came up with the following plan:
5. Turn the machine off and lay it on its left side. Keep it on its side for this entire procedure.
6. Remove all mounting screws from the motherboard. It should now be loose, but will not move much due to the cable connections.
7. Apply electrical tape to the edge connectors at the rear of the motherboard to prevent shorting these against the frame while moving the motherboard around.
8. Carefully examine the motherboard to be sure nothing else is shorting against the frame and turn the machine on.
9. Insert a TRSDOS-6.x disk and boot the system to place it in 80-column mode. Type the date and then do a DIR to fill the screen edge-to-edge (if the screen's unreadable, you'll have to type blind.)
10. Remove the TRSDOS disk.
You are now going to disconnect the disk drives from the motherboard with power on. This is not generally recommended, except as a last resort. The procedure below minimizes the risk.
11. Carefully unplug the power connectors from both disk drives. This is to prevent damage during the next step. (Warning: There is an unshielded, solid-metal fan in this area cooling the monitor enclosure!)
12. Carefully disconnect the disk drive interface ribbon cable from the motherboard. This will free the back of the board and give you enough play to move it forward.
13. Move the motherboard out and forward, paying close attention to the rear edge connectors. Now you know the reason for the tape. Watch all cables while doing this to make sure you're not over-stretching them.
14. Eventually, you should be able to expose the trimmer cap enough to make the adjustment. You'll need a small pot tweaker and I recommend a non-metallic one. You shouldn't have to adjust it much since, as I said, it's very sensitive. Turn the brightness up so you can see the whole raster pattern and set the trimmer so that the image is stable and centered in the pattern, with no bent or warped edges.
15. Turn the power off and unplug the machine.
16. Remove the tape on the motherboard connectors and reassemble the machine -- you did pay attention to how it came apart, didn't you? Remember to reconnect the disk drive power and data cables.
** End of TRS-80 Model I/III/4 FAQ **