Tandy Pocket Computer

From Wikipedia, the free encyclopedia
Jump to: navigation, search

A Tandy Pocket Computer is one of a line of 1980s small pocket computers—calculator-sized programmable computing devices—sold primarily under the Tandy or Radio Shack brands, but 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[citation needed].

A Tandy PC-8, somewhat worn from use.


A Tandy PC-6 with 8kb memory expansion card installed and a compatible cassette interface.

Purpose[edit]

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[edit]

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 (26-3650B) 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[edit]

Each model had two operating modes: Run and Prog.

Run[edit]

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[edit]

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.

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[edit]

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

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[edit]

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[edit]

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

  • PEEK {memory location} and POKE {memory location},{byte value} - the highest memory location is 2048, and it's 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 (not sure of exact start location but it's 2048 minus the capacity of the BASIC memory which is found out by FRE or reading the manual) 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

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

See also[edit]

External links[edit]