Radio Shack TRS‑80 PC‑2

Description

Brand: Radio Shack
Model: TRS-80 PC-2
Type: BASIC-programmable Pocket Computer
Picture: Radio Shack TRS-80 PC-2
Batteries: AA x 4
Lifetime: Introduced: 1982
Terminated: 1985
Notes: This is TANDY / Radio Shack’s version of the SHARP PC-1500A. It’s not an exact copy of the PC-1500A, the look and keyboard layout are different. In my opinion the PC‑2 is better looking but functionally they are the same.

This Pocket Computer can be used for direct input calculations, BASIC programming and machine language. The machine language part was excellently documented in articles provided by TANDY’s Bruce Elliot and partly in the Technical Reference Manual. Later there was even a complete and documented disassembly of the Pocket Computer’s ROM.

The Pocket Computer has various modes. PRO mode for entering, listing and editing BASIC programs. RESERVE mode (Shift-MODE) to define function keys and RUN mode for direct calculations and other operations.

Direct input lines can be edited by pressing the back arrow to edit them.

Peripherals

There are a number of peripherals for this Pocket Computer. There is a list of them on this Wikipedia page of the SHARP PC-1500(A) (link valid 2024-01-13). The CE-150 four-colour pen plotter with cassette interface is a must. It has a carrousel with four small ballpens for writing text and freely plotting graphs. Noteworthy is also the CE-158 RS232 and parallel communication dock.

Various memory upgrades are available for the memory slot at the back of this Pocket Computer.

Due to the popularity of this Pocket Computer, its excellent and thorough technical documentation and machine programmability many third party peripherals and extensions were developed.

Personal Experience

Introduction: When I was still in high school there was a TANDY shop in a nearby shopping centre. I was a (very) regular customer there. Buying sachets of assorted LEDs, accessories for my (not so legal) radio hobby, and enjoying the TANDY Catalogue. One day I saw the SHARP PC‑1211 there. I was intrigued but when I found out it didn’t support POKE, PEEK and CALL, my interest waned. Then came along the PC‑2 which did, and I had to have one. Took some work convincing my father but finally I could buy the PC‑2 and CE‑150 pen plotter.
Programming: When used the way it was meant to be used this Pocket Computer is powerful enough but machine programming set it free. One of the first programs I wrote for that purpose was a BASIC program to browse through the memory per 16 bytes displaying its ASCII content and with the ability to POKE memory locations easily. I dubbed this program ZAP (DEF‑Z). Using ZAP I tried to understand the PC‑2’s memory mapping and when I found it its BASIC command table. The memory map would be different when a peripheral was attached such as the CE‑150. Its memory block started with the ASCII character "U" which indicated to the calculator there was a BASIC command block located. This meant that one could extend this calculator’s BASIC command set!

It took a big amount of time I was actually meant to do school work but in the end I managed to write my own set of BASIC commands. First in memory block &6800-&6FFF. How I got memory available in that memory area I do not remember. Later I created my own memory extension &8000-&9FFFF using a modified ATARI CMOS module bought at the Dutch SHACC user club, soldering it in place using a memory select chip and many unlabeled wires. I now do not dare open up my PC‑2 anymore in fear of breaking stuff.

In the end I wrote three BASIC command blocks seriously making the Pocket Computer more powerful. This set, called LeoBAS used memory block &8800 till &9FFF in !PV mode so it can not be used unless the PC-2 has been modified to support that memory block.

Something like the TE‑1507 (link valid 2024-01-13) might work but I’m not sure their project is still alive. It might also be possible to modify a regular RAM module to chip-select in this memory block.

My hope is that one day a PC‑2/PC‑1500 emulator might make it possible to use this memory block.
SHACC: SHACC (SHARP HAnd Computer Club) was a Dutch user club dedicated to all of SHARP’s Pocket Computers. It had quite a dedicated user base, club meetings with buns and coffee and loads of Pocket Computers and peripherals, and AREAD, the club’s magazine. The club had activities from 1983 but stopped in 1985 due to waning interest. Some more info on SHACC and downloads of the AREAD magazine can be found here: PC‑1500.info, SHARP clubs : AREAD/SHACC from the Netherlands (link valid 2024-01-13).
LeoBAS: The final version of my own set of BASIC command additions uses memory block &8800-&9FFF bank switched on !PV. For those interested in experimenting the block can be downloaded here:

Download link > LeoBAS.

Free to use, but use at your own risk of course. Needs the newer ROM version on the PC‑2/PC‑1500A.

The original manual I wrote (in Dutch, and please note the postal address at the end of the manual is no longer valid) can be found here:

Download link > LeoBAS Manual 1996.

Please note this manual only covers my first memory block &9800-&9FFF.

Late 2022 I created a revised manual, in English, and covering the complete set of my BASIC command set. It can be found here:

Download link > LeoBAS Manual 2022.
Emulator: Sometime in 1994 wrote an emulator for the PC‑2 on my Mac Plus. Earlier in my life I had an Apple ][ clone without keyboard and used the PC‑2 with a special machine code program as a keyboard for the Apple ][. Hence it was easy to make a dump of the PC‑2’s ROM and my own LeoBAS ROM to a file which I could then transfer to my Mac. It took some fine tuning and I wrote it as a Desk Accessory to make multi-tasking less work. The emulation of the processor was not difficult thanks to all the documentation. I used the 16 bit lower part of pointers to access the emulated memory easily.

PC-2 Emulator

Above is a picture of my emulator running in SheepShaver, a Mac OS 9 emulator, showing the aforementioned ZAP program displaying the memory contents at &9800. Note the non-standard characters part of LeoBAS.

I wanted to publish my emulator at the time but did not dare to, due to the emulator containing the original SHARP ROM code. I didn’t even dare to use brand names, so mine is called the Radio Shock TRaSh‑80.

Compared to PockEmul’s excellent emulator(s) mine was quite rudimentary. No peripherals, no support for bank switching. I am however still quite proud of what I was able to accomplish. After Mac OS 9 died I have not tried to create a modern version of it which is a pity but there are better alternatives.

I’m still hoping PockEmul (link valid 2024-01-13) will at one time make it possible to have a writable and safable memory block &8800-&9FFF (or &8000-&9FFF for easier chip selecting) for the PC‑2 and PC‑1500A. That way I could finally have my own legacy in my back pocket using PockEmul’s iOS App!