Heathkit HERO Jr (RT-1) · Volume 6

Programming — HJPL, BASIC Cartridges, and the Remote

Beyond the one-touch keys

The defining feature of the HERO Jr, set out in Vol. 1 and Vol. 5, is that an owner does not have to program it: the labelled personality keys on the 17-key head keypad — Sing, Play, Poet, Gab, Alarm, Guard, Help, Plan, plus Setup and Enter — each launch a behaviour already living in the robot’s unusually large 32 KB ROM (theoldrobots.com; HERO FAQ, hero.dsavage.net; partofthething.com, “The Hero Jr. personal robot from HeathKit”). Pressing a key selects a program; it does not write one. That is the floor of the machine, the capability every HERO Jr has the moment it is switched on.

This volume covers what sits above that floor — the documented ways an owner who wanted more than the canned behaviours could reach the Motorola 6808 at the heart of the robot (the 8-bit, 1 MHz processor of Vol. 2) and give it new instructions. The secondary record describes three routes deeper than the personality keys:

  1. HJPL — the HERO Jr Programming Language — a simple instruction set keyed in directly on the hex keypad (partofthething.com; HERO Jr Programmer’s Guide).
  2. BASIC, supplied as the RTC-1-8 plug-in cartridge and run over a serial RS-232 link (partofthething.com; HERO Jr BASIC manual, RTC-1-8; theoldrobots.com).
  3. The RF remote control, for untethered manual driving (partofthething.com).
Figure 1 — The HERO Jr control surface: the labelled personality keys (Vol. 5)
that select a built-in behaviour, and the three documented routes deeper — HJPL
keyed on the hex keypad, BASIC from th…
Figure 1 — The HERO Jr control surface: the labelled personality keys (Vol. 5) that select a built-in behaviour, and the three documented routes deeper — HJPL keyed on the hex keypad, BASIC from the RTC-1-8 cartridge over RS-232, and the RF remote — all resolving to instructions for the single 6808 (Vol. 2). Interpretive diagram drawn from documented HERO Jr specifications.

These three routes form a deliberate ladder, the same idea the personality keys embody carried upward: each step trades a little simplicity for a little more control, and an owner climbs only as far as the task requires. None of them is needed to get a talking, roaming robot out of the box — that is what the keys are for — but each is there for the owner who wants to author behaviour rather than choose it.

The HERO 1 contrast — why HERO Jr is the friendlier path

The point of these routes is sharpened by comparison with the HERO 1, the 1982 educational robot covered in its own deep dive (and in _shared/comparison.md). The two machines share the same 6808 processor, but they hand it to the owner very differently.

On the HERO 1, the base programming model is 6808 machine code keyed in by hand as hexadecimal through the head panel (HERO 1 deep dive, Vol. 7; HERO FAQ). The operator works out a program byte by byte — opcode and operand — and deposits those bytes into RAM one at a time, verifying each on the six-digit LED. It is a monitor-style interface in the KIM-1 idiom: complete and powerful, but it demands that the owner learn the 6800-family instruction set before the robot will do anything the built-in ROMs do not already do.

The HERO Jr, built by Heathkit’s consumer division two years later, was aimed at a household rather than a classroom, and its deeper-programming routes reflect that. Instead of bare machine code, the HERO Jr offers HJPL — a keypad instruction set of its own, pitched above raw hex — and cartridge BASIC, a structured language that snaps in rather than requiring the owner to burn or fit a ROM (partofthething.com; theoldrobots.com). Both are consumer-friendly steps that the HERO 1’s base configuration does not provide. The HERO Jr is not a less capable machine so much as a re-aimed one: the same silicon, wrapped so that a non-programmer can still reach it. The exact reach of HJPL versus hand-keyed 6808 code is not something the secondary record quantifies, and is not asserted here; the documented contrast is the idiom — keypad language and snap-in BASIC on the HERO Jr, hand-keyed machine code on the base HERO 1.

Route 1 — HJPL, the HERO Jr Programming Language

What HJPL is

HJPL — the HERO Jr Programming Language — is the robot’s own keypad programming language: a simple instruction set entered directly on the 17-key hexadecimal keypad on the head, without any cartridge, host computer, or serial link attached (partofthething.com; HERO Jr Programmer’s Guide). It is the first rung above the personality keys: where a personality key starts a finished program in ROM, HJPL lets the owner compose a new sequence of instructions and have the robot carry it out.

HJPL is documented in the secondary record as a named, deliberately simple language, not as raw 6808 machine code. That distinction is the whole point of it: the same keypad that selects Guard or Sing becomes, in HJPL mode, the way to type a short program in a vocabulary the robot understands directly, rather than the way to deposit opcode bytes one at a time as on the HERO 1. The partofthething.com retrospective treats HJPL as an accessible keypad language a home owner could reasonably learn — the in-between step between pressing a key and writing BASIC.

Entering HJPL on the keypad

The physical interface HJPL is typed on is the one detailed in Vol. 5: a 17-key keypad with rubber keys on top of the head, paired with the robot’s nine-LED display (theoldrobots.com; HERO FAQ). Sixteen of those keys carry the hex digits and the labelled personality functions; the keypad doubles as both the behaviour selector and the HJPL entry device, with the Setup and Enter keys handling mode selection and confirmation (theoldrobots.com; HERO FAQ). The LED display, which otherwise flashes in time with the robot’s speech (Vol. 5), serves during programming as the readout for what is being entered.

Figure 2 — The HERO Jr's 17-key rubber keypad and nine-LED display on top of
the head: the same surface that selects a personality behaviour is the device on
which an HJPL program is keyed. The rad…
Figure 2 — The HERO Jr's 17-key rubber keypad and nine-LED display on top of the head: the same surface that selects a personality behaviour is the device on which an HJPL program is keyed. The radio-frequency remote sits in the foreground. Source: "Heathkit HERO Jr" by Marshall Astor, CC BY-SA 2.0, via Wikimedia Commons.

The exact HJPL instruction set — its opcodes, the key sequences that enter each instruction, and the program syntax — is documented in the HERO Jr Programmer’s Guide (freely downloadable from the Internet Archive) and is deferred to it here. This volume does not reproduce or invent HJPL instruction mnemonics; the gated, documented facts are that HJPL exists, that it is a simple instruction set, and that it is keyed on the head keypad. A reader who wants to actually write HJPL consults the Programmer’s Guide for the instruction list.

HJPL and the CPU registers

The partofthething.com (Dilettante) retrospective characterises HJPL as a language that works through the robot’s registers, and puts the count at roughly 99. That figure is attributed to Dilettante and is not asserted here as settled fact: it is one firsthand secondary’s description of how HJPL is organised, not a number cross-verified against the Programmer’s Guide, and the deep dive’s open questions explicitly flag it for verification against the factory documentation before it could be stated as established. The literal hardware register file of a 6808 is nothing like ninety-nine deep, so “~99 registers” is best read as Dilettante’s description of HJPL’s own model of programmer-visible locations — the parameter slots and state the keypad language exposes — rather than as a count of silicon CPU registers. Exactly what those locations are, and how many there really are, is a matter for the Programmer’s Guide; this volume records only that Dilettante puts the figure near 99 and leaves the precise meaning unclaimed.

What can be said without speculation is the shape of the model. As on the HERO 1 (Vol. 7 of that dive), the HERO Jr’s motions, sensors, and speech are reached by the 6808 through memory-mapped I/O (Vol. 2): the processor commands the drive, reads the sonar, or drives the Votrax speech chip not through special instructions but by ordinary loads and stores to specific addresses. HJPL sits on top of that hardware reality as a keypad-level abstraction over it — the owner types HJPL, and the robot monitor in ROM turns each instruction into the underlying register activity. The mapping between the two — which HJPL instruction touches which hardware location — is, again, Programmer’s Guide territory and is not reconstructed here.

Route 2 — BASIC from the RTC-1-8 cartridge over RS-232

The cartridge

The second route up is BASIC, and on the HERO Jr it arrives the consumer way: as a plug-in cartridge, RTC-1-8, one member of the RTC cartridge family detailed in Vol. 7 (theoldrobots.com; partofthething.com). Where the HERO 1’s BASIC was supplied as an ET-18-9 ROM that had to be fitted alongside a memory expansion board (HERO 1 deep dive, Vol. 7), the HERO Jr’s BASIC snaps in — the same snap-in expansion model that defines the rest of the RTC/RTA ecosystem. The cartridge is the physical carrier of the language; the broader cartridge slot and the RTC numbering are the subject of Vol. 7, which this volume cross-references rather than duplicates.

What makes BASIC on the HERO Jr distinct from HJPL is that it is documented as running over a serial RS-232 link (partofthething.com; theoldrobots.com; HERO Jr BASIC manual, RTC-1-8). RS-232 is the standard serial interface of the era, and its presence means BASIC is not purely a stand-alone, keypad-only affair the way HJPL is: the link lets the robot exchange characters with a host computer — one with a real keyboard and screen — so that a BASIC program can be written and edited on the host rather than tapped out on the nine-LED head display. This is the same advantage the HERO 1 gained from its optional RS-232 host link (HERO 1 deep dive, Vol. 7): developing on a full-sized machine and sending the result to the robot is far more comfortable than hand-entering a program on the robot itself.

The precise wiring of the link — connector, baud rate, the exact handshake — is documented in the HERO Jr BASIC manual and the Programmer’s Guide and is not reproduced or invented here; the gated fact is that HERO Jr BASIC is delivered on the RTC-1-8 cartridge and operates over an RS-232 serial connection.

What BASIC adds

BASIC raises the programming layer from HJPL’s keypad instructions to a structured, English-like language — variables, loops, and named commands — and is the most capable of the three routes for authoring original behaviour. With the RTC-1-8 cartridge fitted and a host on the serial line, the same robot that ships as a one-touch appliance becomes a BASIC-programmable platform, which is the configuration an owner used to write behaviours well beyond what the personality keys or HJPL could express.

As with HJPL, the exact BASIC dialect — its keywords, its robot-specific commands for driving, sensing, and speaking, and its syntax — is documented in the HERO Jr BASIC (RTC-1-8) manual and is deferred to it. No BASIC keyword or robot-command syntax is invented in this volume. The documented claims are the delivery (RTC-1-8 cartridge), the transport (RS-232), and the role (a structured high-level language above HJPL); the language reference itself lives in the BASIC manual a programmer consults.

Route 3 — the RF remote control

The third route is not a programming language at all but a means of manual control: a radio-frequency remote that lets an owner drive the HERO Jr by hand from across a room, without a cable (partofthething.com). The remote is visible in the foreground of the Marshall Astor photograph used as Figure 2.

Functionally the RF remote is the HERO Jr’s untethered manual-control route — the analogue of the HERO 1’s RF remote transmitter (HERO 1 deep dive, Vol. 7). It does not change what the 6808 can ultimately be told to do; like every other route in this volume, a remote command is decoded by the robot and resolves to the same kind of motion or action the keypad and the programming layers command. What it adds is immediacy and reach: an owner can pilot the robot directly for a demonstration, to position it, or simply for play, without keying a program or selecting a personality. The exact channel, frequency, and the remote’s button complement are not part of this deep dive’s gated fact base and are left to the factory documentation; the documented fact is that a radio-frequency remote control is part of the HERO Jr’s control complement.

A ladder of access

The three routes, taken with the personality keys beneath them, form a single graded ladder of access to the one 6808 — the consumer answer to the HERO 1’s “learn machine code first” demand:

Table 1 — "learn machine code first" demand

RungRouteWhat the owner doesWhere the detail lives
FloorPersonality keys (Vol. 5)Press one key; a ROM program runstheoldrobots; HERO FAQ
1HJPLKey a simple instruction sequence on the keypadProgrammer’s Guide
2RTC-1-8 BASIC over RS-232Write a structured program, often on a hostBASIC (RTC-1-8) manual
RF remoteDrive the robot by hand, untetheredFactory documentation

The progression is the heart of the HERO Jr’s design philosophy. At the floor, the robot is an appliance: choose a behaviour, no code. One rung up, HJPL lets the owner compose behaviour in a simple keypad language. A rung above that, cartridge BASIC opens a full structured language with the comfort of host-side development. And alongside the whole stack, the RF remote keeps a direct manual hand on the machine. Each rung is optional, and each is reachable without first mastering the one above it — the inversion of the HERO 1, where the powerful bare-metal interface is the starting point rather than the deepest one (HERO 1 deep dive, Vol. 7; partofthething.com).

Two cautions hold across all of it. First, the exact languages are deferred to the factory manuals — the Programmer’s Guide for HJPL, the RTC-1-8 BASIC manual for BASIC — and no opcode, keyword, or syntax is invented here. Second, the ~99-register figure for HJPL is Dilettante’s, attributed and not settled; it describes one firsthand observer’s model of the language and awaits confirmation against the Programmer’s Guide.

Where this fits in the series

This volume covered the routes deeper than the one-touch keys; the surrounding volumes hold the context each route depends on. The 6808, the 2 KB-to-24 KB RAM, the 32 KB ROM, and the memory-mapped I/O that HJPL and BASIC ultimately drive are the subject of Vol. 2. The personality keys these routes sit above, and the Votrax speech and nine-LED display that a program can command and read, are in Vol. 5. The RTC-1-8 cartridge that carries BASIC is one entry in the RTC / RTA cartridge-and-accessory ecosystem catalogued in Vol. 7, which also covers the snap-in expansion model that distinguishes the HERO Jr’s BASIC from the HERO 1’s fitted ROM. Vol. 8 returns to the control hardware — including the RS-232 link — from the restorer’s and modern-interfacing side, and Vol. 9 gathers the programming routes, like every other documented fact, into the cheatsheet.