Tandy Pocket Computer

The Tandy Pocket Computer or TRS-80 Pocket Computer is a line of pocket computers sold by Tandy Corporation under the Tandy or Radio Shack TRS-80 brands.

Although named after the TRS-80 line of computers, they were not compatible with any TRS-80 desktop computer and did not use the Z80 CPU. Models in the Pocket Computer line were actually rebadged Sharp and Casio devices with different model names. They were given designations from PC-1 to PC-8. The PC-1, PC-2, PC-3 and PC-8 were designed by Sharp; while the PC-4, PC-5, PC-6 and PC-7 were designed by Casio.

History, lineage and nomenclature
Although not branded as such, the original TRS-80 Pocket Computer later became known as the PC-1, as subsequent models were labelled PC-2 through PC-8. Some were made by Sharp, and the rest by Casio (PC-4 through PC-7). The PC-2 had four colored ball point pens and could print or plot on plain paper. The other print-capable models all used thermal paper, the PC-3 and PC-8 used one printer, while the PC-4, PC-5 and PC-6 used another. The PC-7 had no printer or cassette interface.

Models
The Tandy/TRS-80 model names are listed with the corresponding original Sharp or Casio model number.
 * TRS-80 Pocket Computer "PC-1" – Sharp PC-1211
 * TRS-80 Pocket Computer PC-2 – Sharp PC-1500
 * Tandy/TRS-80 Pocket Computer PC-3 – Sharp PC-1251
 * TRS-80 Pocket Computer PC-4 – Casio PB-100
 * Tandy Pocket Computer PC-5 – Casio FX-780P
 * Tandy Pocket Computer PC-6 – Casio FX-790P
 * Tandy Pocket Computer PC-7 – Casio FX-5200P
 * Tandy Pocket Computer PC-8 – Sharp PC-1246

Purpose
Pocket computers were an advancement over early programmable calculator designs. In addition to providing users with scientific math functions in a small portable package, the devices also understood a form of the BASIC programming language. They included a QWERTY keyboard, of either rubber capacitive or membrane type, to use for entering the names of scientific functions and programming commands, in addition to a traditional numeric keypad. (The exception was the PC-7, which had a rectangular and alphabetically ordered keyboard, like most scientific calculators.) On some models, the alphanumeric keypad had a different type, form factor, and location than the numeric keypad.

Design
The models provided a short one-line dot-matrix LCD display, to show the current line of input text, or a segment of it containing the cursor. Character widths in these models varied from 12 characters in the PC-4 and PC-7 to 24 characters on most of the rest. The displays also included some way of indicating operational mode, scientific mode, and other states and conditions.

The Casio models included lower-case characters. These were only for use in PRINT statements, as lower-case commands and variables were not accepted as with almost all BASIC programming machines.

In general, the two specific lines were not cross-compatible, but there were compatibilities within lines. PC-1 programs would work unmodified on the PC-3 and on the PC-8 with changes for screen size, and PC-4 (26-3650B) programs would run unmodified on the PC-5, PC-6 and PC-7. The PC-2 was a unique architecture and was the only unit in the line allowing direct memory access with POKE, PEEK and CALL.

Operating modes
Each model had two operating modes: Run and Prog.

Run
In Run mode, the command line could be openly used to execute one-line, non-BASIC operations. This is the normal mode used, from where arbitrary calculations could be entered to receive results. The Run mode also allowed the execution of the BASIC programs stored in the device.

Instead of an "equals" key to initiate calculation evaluation, an "EXE" (execute) key was provided. This caused confusion with those who were used to traditional calculators. The = character was used only for variable assignment, and evaluation tests in programs.

The input of simple calculations would be aggregated on the command line, and no results would be displayed until the EXE key was pressed. In some models, a special ANS variable was provided to reuse the results of the previous calculation; in others, the previous calculation was automatically included if the next calculation began with an operator.

Some valid calculation input examples (PC-8):

SIN40 10+2+(8*1)/7 TAN (LOG (√(4/3)))

Prog
The Prog mode changed the input from a command line to a program editor. In this mode, BASIC programs could be entered one line at a time. Up and down arrow buttons were provided to scroll up and down through the program space. On most models, free calculations could not be entered in the Prog mode. Certain models, especially the Casio-derived ones, called this mode WRiTe mode.

On the Sharp models, there was only one line numbering space. In order for multiple programs to exist on the device, they had to be written in different ranges of line numbers. For example, it was common to insert one program starting with line 100, and another program starting at line 200, etc. Valid line numbers in most models were from 1 to 999. To prevent run-on execution, each program had to finish with the END command, unless run-on execution was desired. On Sharp-derived units, labels could be inserted into the program, usually single characters such that in Run mode, that program could be executed by depressing a special DEF key followed by the key of that character. This was equivalent to an explicit GOTO command to the first line number of that section of program, which was also a valid way to execute programs from Run mode.

In the Casio-derived models, the BASIC space was subdivided into segmented program spaces which could be numbered, cleared and executed manually, or could call each other.

Many of the devices included a special modifier key to expedite the entry of BASIC commands as well as scientific function names. The most common commands would each be associated with a key, and the full command could be entered by depressing the special modifier key, followed by the associated key for the command.

In some models, BASIC and other commands would be converted into one-character tokens (converted to strings upon display) instead of being stored as whole strings.

Memory
The total memory capacity of the devices varied from 1 KB to 12 KB and up as far as 16 KB with the use of an available RAM card (only for some models). The optional RAM cards varied in sizes from 1 KB, 4 KB and 8 KB.

All user storage was taken from the same space, so allocation of arrays using DIM would decrease the available memory for program instructions, and vice versa. However, the storage space for one-character alphabetical variables was pre-allocated, and as a result the A array had special significance in many units. For example, in the PC-8, the A array actually pointed to the locations of the alphabetical variables, so A(2) pointed to the value of B, and so on. As a result, published programs for the device avoided the use of A as either an array or an alphabetical variable. On some models the entire variable space could be manipulated in this fashion.

Other notes
It was not possible to define new mathematical function commands for use in Run mode. However, on many Sharp derived models, a special AREAD command was added to BASIC which would assign the current value on the display line to a given variable, which could then be used in a program. Combined with a defined key, this allowed very quick custom operation.

The program interpreter on the models did not provide human-readable error information. Errors encountered either in program execution or calculation evaluation would be returned as one of 9 error codes, usually indicated by replacing the display with text such as "ERROR 4". On the PC-7 model the list of error codes was printed above the text keypad, and was included on the case of the PC-8, but with other models users not familiar with the meaning of each code would have to refer to the manual. Like other characteristics of this line, the meanings of the error codes were not necessarily equivalent from model to model.

Undocumented commands
The PC-3 and PC-8 had a couple of commands that were not listed in the manual, but nonetheless were recognized by BASIC and usable.


 * CALL {memory location}; PEEK {memory location} and POKE {memory location},{byte value} - the highest memory location is 2047, and it is possible to modify the BASIC program in RAM directly with POKE, as well as access a certain memory location (37, possibly?) that controls the DEG/RAD/GRAD spots on the LCD. With judicious POKEs into the BASIC program text area more characters in the PC-8 character set can be discovered, including a `tilde` which also seems to function as a bizarre command.  Some blank characters when PRINT#'ed will display additional symbols on the printer if one is attached.
 * CK00 - seems to be some type of test mode for the display. Will show a couple of patterns on the LCD and then appear to lock up.
 * CK01 - seems to be some type of test mode related to the optional Printer Interface

Also, SHIFT-6 on the PC-8 will display a Yen symbol.