General Information
The Telxon PTC-701 (Portable Terminal Computer) is a handheld data collection terminal manufactured by Telxon Corporation in the mid-1980s. It is based on the RCA CDP1802 COSMAC microprocessor and uses a custom AMI 9217MLB gate array for all peripheral I/O. The unit is battery-powered (two AA cells) and communicates with a back-office host computer via a bit-banged RS-232 serial link through an edge-connector cradle.
PTC-701 units were custom-coded for specific customers. The ROMs emulated in Emma 02 contain McDonald’s restaurant inventory management software (version 3.0, “DONALDS R 3.0”). The terminal was used by crew members to walk through the restaurant entering inventory counts, then dock it in a cradle connected to a store computer to upload data and download item master files.
The firmware architecture is unusual: the system ROM contains a stack-based bytecode interpreter, and the application ROM contains no native CDP1802 code at all - it is entirely bytecoded data executed by the interpreter engine. For details on the bytecode language, see the PTC R1.7 Pseudo Code or PTC R2.0 Pseudo Code sections.
Technical specifications
CPU: RCA CDP1802ACE
Clock: 2.4576 MHz
Memory:
16K System ROM + 32K App ROM (bank-switched)
8K RAM + 64K expansion (daughter card)
Display: HD44780 2×16 character LCD
Keyboard: 35 keys (matrix scanned by AMI gate array)
I/O: AMI 9217MLB gate array (memory-mapped)
Serial: Bit-banged RS-232 via Q/EF4, 1200 baud
RTC: MM58174AN
Power: 2× AA batteries
Firmware architecture
The system ROM contains a stack-based bytecode interpreter (copied to RAM during execution). The interpreter fetches single-byte opcodes from the app ROM via register RC and dispatches them through a 128-entry handler table at 0x0100–0x01FF. High opcodes (bit 7 set) encode a SYS call to any even address in the system ROM.
A third level of interpretation exists: the record interpreter (SYS 124E in the R1.7 / McDonald’s firmware) processes structured data records from the app ROM, calling sub-handlers for each record byte. This layered architecture allows the entire McDonald’s inventory application to run as interpreted data with no native 1802 code in the app ROM.
Serial communication
The serial port is bit-banged via the Q line (TX) and EF4 (RX), with EF2 used for DSR/CTS handshake. The 2.4576 MHz crystal provides exact baud rate division: 1024 cycles/bit at 300 baud, 256 at 1200, 128 at 2400, 64 at 4800, and 32 at 9600 baud. The likely operating rate is 1200 baud, standard for 1985 POS terminals.
Daughter card
A separate expansion card plugs into the cradle/docking station. It contains the HD44780A00 LCD controller, a 74HC138 3-to-8 decoder for RAM chip select, and the expansion RAM: two SRM20256LM 32K SRAMs plus one MB8464A 8K SRAM, totalling 72K (64K populated for McDonald’s configuration).
SYS-MODE
On cold boot, the McDonald’s firmware enters SYS-MODE, displaying a 42 > prompt. On warm boot, an “INV PWR LOSS” message is shown first (indicating a power loss occurred while inventory data was in RAM); pressing any key then enters SYS-MODE. Holding the RIGHT arrow + LEFT arrow keys during startup forces a cold boot, skipping the power-loss notification.
The McDonald’s ROM always enters SYS-MODE on startup - exiting to normal inventory mode requires a host connection via the NM function. Number keys select functions:
| 2 | AD | Memory view/edit. Enter a 4-digit hex address to browse and modify RAM contents. |
| 3 | AD+EX | Address execute. Enter a 4-digit hex address, then execute the bytecode handler at that location. |
| 6 | TP | Terminal parameters. Enter a 2-digit parameter number to view configuration. Parameters 58 and 59 show the app and system ROM identifiers; other parameters require host-downloaded data. |
| 7 | BR | Baud rate setting. Accepts values 0, 1, or 2 (off, 1200, 2400 baud). Values 3 and above are rejected. |
| 8 | NM | Terminal name/ID. Enter an 8-digit terminal ID and 7-character password, then connects to the store computer via serial link. This is the normal exit from SYS-MODE: the host downloads inventory master data and configuration, after which the terminal transitions to normal inventory operation. |
Other information
- Telxon PTC-701 setup procedure: Big Hairy Dog - Telxon PTC-701 Setup
Technical documents
- ptc701.asm - Complete CDP1802 disassembly of the 16K R1.7 / McDonald’s System ROM
- PTC-701 Startup Boot Trace - Annotated cold boot trace (R1.7 / McDonald’s) from reset through native 1802 initialisation and bytecode interpreter startup to the keyboard idle loop
Main emulator features
- HD44780 2×16 character LCD emulation
- Memory-mapped I/O via AMI 9217MLB gate array
- Bank-switched app ROM with 256-byte granularity (EMS with
granularityattribute) - Bank-switched expansion RAM (4-slot page mapper)
- 35-key matrix keyboard with autonomous scan emulation
- MM58174AN real-time clock
- PTC bytecode pseudo-code debugger
- Interrupt-driven keyboard wake from IDL