1986 · Micro Power

About this page

This minisite was contributed by air, unorig. It’s currently claimed by unorig who is editing it to reach a Gold tier standard.

The copy studied

The copy is a single program file of 29,175 bytes. It unpacks itself and starts the game straight into play, with no title screen, menu, or trainer ($484D). Its memory still holds the original release's loading picture ($0400) and a small loader routine that printed "PLEASE WAIT -- STILL LOADING" ($7F00).

The steward later supplied the original disk.10 Its boot program shows a title screen, plays a title tune, offers to load a saved position, and then loads the game in three parts. Stopped as it hands over to the game at $484D, the disk's memory matches the program file in every byte the listing holds, apart from zero page and a scratch area at $FF70, which hold whatever each loader left there.

The C64 BASIC screen showing LOAD MINES, SEARCHING FOR MINES, LOADING
The file loading.

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.

WhatBytesOf 64 KB
Program58,30989.0 %
Code18,87328.8 %
Graphics13,13320.0 %
Level data11,38517.4 %
Sound4,3876.7 %
Text1,9443.0 %
Tables6,76710.3 %
Variables1,8202.8 %
Screen, bitmap, colour, stack, I/O5,5048.4 %
ROM the game runs under1,3282.0 %
Unused3950.6 %

Status

Tiersilver (claimed)
Coverage100 % of the bytes the game uses have a description
Build analysedsingle packed program file, 29,175 bytes, SHA-256 8d143c7ac59882fe54844aa41d9996679e35bb100932e80f851191a3afb889bb
Copyagent-draft
Toolsemulator: release v3.13.1, v3.13.1-linux-x86_64-gui.zip (vice-mcp), disassembler: regenerator2000 0.9.20, host: Linux 6.18 (Ubuntu 24.04 cloud container, no display), x86_64 Intel Xeon, browser: Chromium via Playwright 1.56.1, headless
Modelclaude-opus-5-5 (Claude Code, lead and seven annotation subagents)
Kit version0.0.44

Contributors

Other places to love this game

Sources

  1. GameBase64, "Game of the Week: Doctor Who and the Mines of Terror", which reproduces Zzap!64's review of the Commodore version from issue 13 with its scores, read 2 October 2026: the story, Splinx, the prices, and the reviewers' words.
  2. The Internet Archive's entry for the Amstrad CPC release, read 2 October 2026: the Rijans, madrags, and guards.
  3. Wikipedia, "Doctor Who and the Mines of Terror", read 2 and 3 October 2026: the aims, the robots that look like Daleks, the release years, the ROM chip, and the Zzap!64 issue date.
  4. Gary Partis, interviewed by Stuart Goodwin for Stairway to Hell, autumn 2007: how the game came about, the ROM, and Micro Power's finances. The interview is about the BBC Micro original.
  5. Wikipedia, "Micro Power", read 2 October 2026: Bob Simpson, Leeds, and the company's Commodore 64 games.
  6. Frank Gasking, "Doctor Who and the Mines of Terror", Games That Weren't, January 2022: the unreleased Spectrum version, Bob Simpson's explanation, and the Commodore Force mix-up.
  7. Tony Smith, "Antique Code Show", The Register, 7 November 2013: the promotion and the cost of development.
  8. Sinclair User 45, December 1985, page 133, as transcribed by the Doctor Who Cuttings Archive, read 3 October 2026: what TIRU stands for and what it does, and the guard robots. The article previews the game before the Commodore version.
  9. Euan (unorig), who stewards this page, from playing the game, 3 October 2026: how to take the PICK AXE from the Rijan miners and get past the madrag to the AIR MASK, and that the figure who comes for the CRYSTAL is the Master.
  10. The original Commodore 64 disk, from the steward's own copy (a disk image titled DWMT DISK MASTER, files DWMT, SCR, THEME, P1, P2, and P3), run in VICE on 3 October 2026: the title screen's credits, the boot program, the title tune, and the comparison with the program file.
  11. A walkthrough posted in thread 25786 of the Stardot forum, which the steward supplied on 3 October 2026. Stardot is a forum for Acorn computers, so the walkthrough is probably of the BBC Micro version; this page uses only what the Commodore code confirms: that Splinx can carry the crystal past the Master, and that the pipes stop moving when the machine is halted.
  12. Ken McMahon, review in Commodore User 29, February 1986, from a scan of the page the steward supplied on 3 October 2026: the package, the price, the scores, and the reviewer's words.
  13. J.G., review in Your Commodore 21, June 1986, from a scan of the page the steward supplied on 3 October 2026: the documentation, the music, the ratings, and the reviewer's words. The steward explained what each of the magazine's four rating icons measures.
  14. The review in Zzap!64 13, May 1986, by the reviewers initialled GP, JR, and GL, from a scan of the page the steward supplied on 3 October 2026: the prices, the scores, and the reviewers' words.
  15. The review in Computer and Video Games 55, May 1986, from a scan of the page the steward supplied on 3 October 2026: the price, the scores, and the reviewer's words.
  16. TARDIS Data Core, "Doctor Who and the Mines of Terror (video game)", which the steward supplied and which was read on 4 October 2026: the first game with the Sixth Doctor, and CYBAL, the language Splinx runs on.

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
Joystick in control port 2: left, right, up, down, fireconfirmed (left, right, fire live)$8F3C
Keys Z left, X right, ; up, / down, RETURN jumptraced$8FD5-$9013
F1 moves the pocket selectorlive$A530
F3 puts an item in a pocket or drops a marker, or takes one outconfirmed (MARKER 4 shown live)$A575, $A60C
F5 picks up the object in front, or uses the held itemtraced$A929, $BACC
F7 with a direction throws the held itemtraced$A7D7
S opens the Splinx Programmerlive$AF58
A scrolling cavern maplive$8C32, map $E000
Ladders to climblive (seen); climbing traced$9D15
Four pockets for itemstraced$3E-$41
Score, six digitslive (000000)$A50D
Figures beside the score are liveslive (five at the start, four after a death)$94AC
Splinx follows the Doctorlive$B3EF
Splinx programmer: modes, ten-step program, commandsconfirmed (cursor live)$AF58-$B16C, $B1A0
Splinx battery drains and is rechargedtraced$B1EA, command 9
Markers 1-4 placed in the mines for Splinxconfirmed$A575, $42-$45
Pick up, use, throw and drop itemstraced$A929, $BACC, $A6CB
Push buttonstraced: the code lock's three buttons$BE29
Robots and monsters that killtraced: controllers (shock), madrag (bite), baby madrag$CE5A, $B96F, $B902
Death by falling too fartraced: a drop of $60 or more$CD62
Death on stalagmiteslive$CA67
Oxygen needed outsidetraced; live: no drain in the start cavern$CA90
Spikesconfirmed as the stalagmites: the game's own message says STALAGMITE, and the only terrain deaths are tiles $74/$51 (every $E8 writer was read); the steward confirmed descriptions' "spikes" mean these
Forced regenerationlive (key R)$9051
Explosionstraced$C09A-$C260
Heatonite mining, TIRU, recovering the planstraced: the end bonus asks whether production was halted and whether the CAPSULE (TIRU plans) was brought back$9102-$920F, $B9B6
The Master takes the TIRU crystal at the end; escape bonus 4096traced: object $0C goes after the CRYSTAL, from the Doctor or a pocket; the end bonus is 1024, doubled for the CRYSTAL and doubled for Splinx, 4096 with both, as the forum said. That $0C is the Master is not shown by the code$B48A, $9163, $928C
Escape by TARDIS or escape pod, Time Lords' ratingtraced$9102
Save to cassette or disctraced; the game ends after saving$94FF
Load saved gamestraced: start-up restores a saved block in $7800; nothing in the program loads it$49C6
Music, five tunes by areaconfirmed (live: music plays)$74EA

Beyond the documentation

Open questions

See facts.md, Open questions.

How the analysed state was reached

How to get from the contributor's own copy to the analysed state. Someone else must be able to follow this exactly.

The image

One program file, Doctor_Who_and_the_Mines_of_Terror.prg, 29,175 bytes, SHA-256 8d143c7ac59882fe54844aa41d9996679e35bb100932e80f851191a3afb889bb. It loads at $0801 to $79F6 and starts with a BASIC line SYS 2061. It is a single packed file, so it is not the publisher's release as it came off the disk: someone packed the game into one file. Whether any code beyond the packing was changed (a trainer, a removed protection) is examined in the sweep; no intro, menu or trainer appears on the screen.

From power-on to play

  1. Hard reset (power cycle) the emulator, PAL.
  2. Autostart the program file. VICE types LOAD"MINES",8,1 and RUN.
  3. There is no title screen and no menu. About twenty seconds after the load begins, the depacker hands over to the game at $484D, and a moment later play is on screen: the Doctor and Splinx the cat beside the TARDIS in a cavern, score 000000, six figures beside the score.
  4. Snapshots, in work/ (never committed):
  5. entry.vsf: stopped on the game's first instruction, $484D (a stopping checkpoint on $484D set before the depacker runs).
  6. play-start.vsf: a few seconds into play, no input yet.

The original disk

On 3 October 2026 the steward supplied an image of the original disk (.g64, 286,164 bytes, titled DWMT DISK MASTER). Autostarted, its BASIC boot program DWMT shows the title screen (SCR), asks LOAD A SAVED POSITION (Y/N)?, plays the title tune (THEME) until space is pressed, then loads P2, P3 and P1 and types SYS18509. A stopping checkpoint on $484D set before space is pressed catches the hand-over; there its memory equals the listing everywhere the listing has bytes, except zero page and $FF70-$FFFF. Snapshot work/dw-disk-entry.vsf.

Steady state

The start-up at $484D blanks the screen, stops CIA1 timer A, sets $01 to $35 (RAM at $A000 and $E000, I/O at $D000), and writes its own hardware vectors: IRQ $FFFE = $8010, NMI $FFFA = $800F. During play those vectors read $8010 and $800F and $01 reads $35. The KERNAL's RAM vector $0314 still holds $0888, which the game does not use while the KERNAL is banked out. Program-counter samples during play fall between $8000 and $CDFF.

The start-up copies blocks from $4B00 upwards onto the screen at $0400, so the hand-over image holds data the running game has since overwritten; entry.vsf is the image the listing is built from unless the comparison in the sweep says otherwise.

Emulator

release v3.13.1, v3.13.1-linux-x86_64-gui.zip, on Linux x86_64 in a cloud container with no display. check-emulator: 56 of 57, failed pause-at-instruction; stops are made with pause() from vice.py.

The loader, in a paragraph

The BASIC line jumps to $080D, which masks interrupts, blanks the screen, banks all RAM in, copies the decruncher into the stack page and zero page and runs it from $0100. It builds a 52-entry table of lengths and offsets at $0334-$03CF and unpacks the game backwards through memory; the table layout is the one Exomizer uses, which is a resemblance, not an identification. When it finishes it restores $01 to $37, waits for the raster to pass the bottom of the screen, calls the KERNAL's IOINIT ($FDA3), turns the screen on, enables interrupts and jumps to $484D. The game is one load: nothing is read from disk after this.

The symbol map for this game is symbols.json; the listing behind the Source tab is listing.json. Write-ups, facts, and symbol maps are CC BY-SA 4.0. The game itself is not hosted here.