Tandy Pocket Computer
A Tandy Pocket Computer or TRS-80 Pocket Computer is one of a line of 1980s small pocket computers—calculator-sized programmable computing devices—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 it and didn't use the Z-80 CPU. Computers in the 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 are Sharp devices, 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. The PC-2 had 4 colored ball point pens and could print or plot on plain paper. The others all used thermal paper, the PC-3 and PC-8 using the same printer, the PC-4, PC-5 and PC-6 using the same printer, and the PC-7 having no printer or cassette interface.Models
The Tandy/TRS-80 model names are listed with the corresponding original Sharp/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
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 between lines. PC-1 programs would work unmodified on the PC-3 and on the PC-8 with changes for screen size, and PC-4 programs would run unmodified on the PC-5, PC-6 and PC-7. The PC-2 was a completely 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" 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 :
SIN40
10+2+/7
TAN
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 instead of being stored as whole strings.
An example of the BASIC programming accepted by the PC-x would be:
10 PRINT "Tandy Pocket Computers";
20 GOTO 10
30 END
This would endlessly scroll the message "Tandy Pocket Computers" across the screen repeatedly until the program was stopped.
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. The option 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 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-8 had a couple of commands that were not listed in the manual, but nonetheless were recognized by BASIC and usable.- PEEK and POKE, - the highest memory location is 2047, and it's possible to modify the BASIC program in RAM directly with POKE, as well as access a certain memory location that controls the DEG/RAD/GRAD spots on the LCD. With judicious POKEs into the BASIC program text area you can discover more characters in the PC-8 character set, 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 you have one 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