1985 · Hutchinson Computer Publishing (UK); Bantam Software (US)

About this page

This minisite was contributed by air. It’s agent-generated and needs a human editor. Clone https://github.com/gamesexplained/gamesexplained and follow kit/START.md to curate games/c64/the-fourth-protocol with me to Gold.

Footprint

Every byte of the C64's 64 KB, one pixel each, 512 to a row. Lit pixels are what this game is: its code, graphics, level data, sound, text, tables and variables, exactly where they sit in memory. Dim areas are screen and working memory; dark is unused.

This game is in 5 parts. The map is of Resident: the disk operating system and the episode loader, which stays in memory; the band marked as varying holds whichever of the 4 parts loaded over it is there. The Source tab has the listing of each part that has one.

Status

Tiersilver
Coverage100 % of the bytes the game uses have a description
Comments checkedNot audited. No audit has checked every comment, and the last sample of 80 comments had 8 wrong, so between 5 and 19 % of the listing’s comments are likely wrong. How listings are checked
Build analysedBantam Software's US disk release, 1985 (C64 Preservation Project G64, marked good); five parts: the resident disk operating system and episode loader, the title and episode menu, and the three episodes
Copyagent-draft
Toolshost: Linux 6.18 x86_64, Ubuntu 24.04.5 in a Claude cloud container, no display (Xvfb), emulator: release v3.14.0, v3.14.0-linux-x86_64-gui.zip; driven through kit/c64/vice.py; check-emulator 57 of 57, disassembler: regenerator2000 0.9.20
Modelclaude-opus-5-5
Kit version0.0.268

How the listing was checked

Every step that measured the Source tab’s comments or made them more accurate, in the order it happened, with the models that did it. Accuracy of the Source explains each step and what the row above makes of them.

StepByWhat it foundOf the listing
Researchclaude-opus-5-5Looked the game up online (its manual, reviews or wiki pages) before reading its code.
Annotationclaude-opus-5-5Wrote the listing’s comments. 100 % of the program is described, in 4,385 comments.
Sample 1claude-opus-5-58 of 80 comments wrong, so between 5 and 19 % of the listing is likely wrong. All 8 were then corrected.
60 of the 3,038 hand-written comments and 20 of the 1,345 written from templates, over the five parts, checked by a fresh agent against the code; all eight wrong were hand-written, and 32 more comments that said the same were corrected with them
Port checkclaude-opus-5-5Checked a page’s port or widget against the game and corrected 5 comments it showed wrong.
Building 17's verdict, held to judge_locks: the comments on judge_security's branch and memo 31

likely wrong the sample’s range corrected right, or likely right not yet measured

Contributors

Other places to love this game

What the game does, and where we found it

Read this before annotating code. What the game is documented to do, with verification status against the binary. Statuses: open (documented, not found yet), traced (in the code, could not be exercised; say what was tried), confirmed (in the code, consistent with the emulator), live (observed directly), differs (the code does something else). "Absent" is not a status.

Sources:

Features

FeatureStatusWhere
Title picture with a tune ("the haunting melody", David Dunn), PRESS <SPACE> TO CONTINUElivetitle title_program, tune_play
Episode menu: 1) NATO DOCUMENTS, 2) THE BOMB, 3) THE SAS ASSAULT, SELECT NUMBER:, typed digit and RETURNlivetitle episode_menu ($409F)
Each episode loads in about 90 seconds and needs no further disk accessliveresident episode_loader; only saving and loading a game reads the disk again
Code words from each episode open the next ("the episodes must be solved in order")confirmedepisode three asks for TIPTREE, which episode two's estate guard gives (live); episode two's first lift takes ASPEN, and episode one's winning memo gives a five-number password (traced). Any episode can be chosen from the menu, and episodes one and two ask nothing when they start
Icons chosen with a pointing hand: SPACE moves it clockwise, cursor up/down anticlockwise, RETURN selectsliveepisode one choose_icon, episode two choose_icon: SPACE to the next icon of the menu's list, the cursor key to the one before
Episode one, Cencom main menu of nine icons: filing system, surveillance, utilities, assessment, telephone, calendar, sitreps, reports, memoslive (screen)nato-documents cencom_menu, cencom_actions
Memos, reports and sitreps: read, file (permanent copy in Cencom), delete; new items stack below; a blank screen icon means nothing waitingtracednato-documents tray_window, file_this, take_item, close_tray (pic_tray_empty)
Telephone: rings for incoming calls, the caller hangs up if not answered promptly; telephone-in, telephone-out (dial a number), hold calltracednato-documents ring_tick, call_timer (1,920 frames of ringing), phone_actions
Cencom filing system: read, save and delete files; up to 14 personal files; Blenheim files released by phoning Blenheim with the code of the week from the one-time padstracednato-documents file_this (14), call_blenheim, code_word_choices
Surveillance: assign and recall watchers by surname; 100 watchers at the start, at most 25 on one case; more or fewer as prestige rises or fallstracednato-documents add_watchers (25), watcher_allowance (prestige / 10 + 50)
Assessment: prestige rating and percentage of the episode solved (100 % the maximum)tracednato-documents assessment
Calendar: 40 days, a day every two minutes; ADVANCE DATE (Y/N)? moves it on by handdiffersa day is 14,400 frames, 4 minutes 48 seconds on a PAL machine (live); ADVANCE DATE is there (nato-documents calendar)
Utilities: freeze game, start new game (abandon), save and load game to a data disk under a three-character nametracednato-documents utilities_actions, ask_save_name
Story-lines on a loose schedule, partly random and partly driven by what the player does (hint book)tracednato-documents init_stories and the four event lists
Multiple-choice decisions in memos, with an OTHER SUGGESTION answer typed as a word (and WHO?)differsthe C64's options are fixed lists (ask_options); some answers then take a typed name, such as SUGGEST DEFECTION and STANISTAV (abbs_advice). No option reads OTHER SUGGESTION
Building 17: place security locks on the doors of a building plan with icons (an EYE cursor, LOCK, floors by G), then rank six computer-security measures (C64 only)differsthe locks as described (judge_locks); the ranking is of four measures, and four orders are accepted (computer_security)
Voice analysis (hint book figure 8)tracednato-documents voice_analysis
Episode two main menu: assessment, utilities, manipulate, look, communicate, move, wait; two text windows give the location ("GORDON'S", "YOUR OFFICE")livethe-bomb main_menu
Look: look around, examine objects in the room, examine objects held, inventorylivethe-bomb look_actions; LOOK AROUND used
Manipulate: take, discard, use an objectlivethe-bomb manipulate_actions; USE used
Communicate: talk to someone, use a telephonelivethe-bomb communicate_actions; the telephone used
Move: compass directions (sets the needle for north, east, south, west), enter and leave a building, call a taxi, walk upstairs and downstairslivethe-bomb move_actions; the taxi used
Wait / pass time (TIME PASSES)tracedthe-bomb pass_time
Submenu options not available are shown in reddiffersbrown (colour 9) where an available one is black: the-bomb draw_icons_coloured with $F9 and $F0 (live, the move window)
Getting around London by tube (Circle, Central and Northern lines, a £1 ticket), taxis, trains to Bristol and Dover, buses and cars; moneydiffersthe tube's lines are the Circle, Victoria and Piccadilly (tube_lines); the rest as described (train, bus, taxi, car_pickups)
Lifts that ask for a password typed in (USE THE LIFT? (Y/N), ENTER CODE:, *** INCORRECT CODE ***)tracedthe-bomb lift: ASPEN at Gordon's, 42431282 or EPC at Sentinel House
Spy efficiency rating, 100 % the maximumdiffersthe-bomb add_efficiency has no cap
Save and load a game to a formatted data disk, three-character name; messages SAVING GAME, LOADING GAME, FILE NOT FOUND, DRIVE NOT CONNECTED, DISK ERROR, INSERT DATA DISKtracedresident save_file, load_file; the-bomb save_or_load, disk_message
Episode three: a room with the bomb (a filing cabinet), a door, a window and an alarm above the cabinet; KGB agents pass the window and come in through the doorlivesas-assault room_events
A submachine gun aimed with the joystick in port 2 or the cursor keys, fired with fire or CTRL; cross-hairs while it moves; one magazinediffersthe shoot-out is in the file and never called (shootout); SHOOT answers YOU HAVEN'T A GUN OLD BOY!
Commands typed as VERB, VERB NOUN or VERB ADJECTIVE NOUN, from a vocabulary of 51 words (manual, page 16)differs18 verbs and 28 nouns, 46 words; colours are nouns (sas-assault parse)
Touching the cabinet sets off the alarm unless it has been shotdiffersthe alarm sounds when the drawer opens, for the number with no keypad chosen, and for ATTACK CABLE (sas-assault raise_alarm)
Agents wear flak jackets and fall only to a shot in the head; HIDE makes them leave unless the bomb is open; LISTEN hears footsteps; too many behind the player overpower himdiffersHIDE and LISTEN as described (sas-assault hide, guard_looks, listen); the more guards in the room, the likelier death (attack_chances); no shooting (shootout is never called)
The defusing: PRESS SECOND PAD, a number (12051987), buttons red, yellow, green, wires red, yellow, greenlivesas-assault choose_keypad, type_number, push_red, cut_red
Winning and losing epilogues (hint book, "Winners and losers")liveepisode three's three epilogues (live); episode one's two memos (traced); episode two has no winning ending

Beyond the documentation

Found in the code, not in the manual.

Open questions

Each part of the game has its own symbol map and listing: Resident: the disk operating system and the episode loader, symbols.json and listing.json; The title screen and episode menu, symbols.json and listing.json; Episode one: The NATO Documents, symbols.json and listing.json; Episode two: The Bomb, symbols.json and listing.json; Episode three: The SAS Assault, symbols.json and listing.json. Write-ups, facts and symbol maps are CC BY-SA 4.0. The game itself is not hosted here.