1983 · 4Mation Educational Resources
Every byte of the BBC Micro's 32 KB of RAM and the 16 KB bank paged in above it, one pixel each, 384 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 2 parts, and the map is of one of them: Part 1.
| Tier | silver |
|---|---|
| Coverage | 100 % of the bytes the game uses have a description |
| Comments checked | Audited & high error rate. Every comment was audited once, but the last sample of 60 comments had 4 wrong, more than one in 30, so between 3 and 16 % of the listing’s comments are likely wrong. How listings are checked |
| Build analysed | TOSEC disc, Granny's Garden (1983)(4Mation)[GRAN1].ssd (SHA-256 71511f3f...0d60f0), a DFS disc of two BBC BASIC II programs, GRAN1 and GRAN2, both saved from &0E00; analysed at PAGE &0E00, where each part's own relocation (lines 3280 and 2590) puts it |
| Copy | agent-draft |
| Tools | emulator: jsbeeb 2.4.0 (npm), in the kit's server (kit/bbc/jsbeeb_server.mjs), BBC B with 8271 and DFS 1.20; check-emulator 33 passed, 0 failed, on 14 October 2026, disassembler: regenerator2000 0.9.20, one session for each part, the program typed as BBC BASIC (kit/bbc/basic.py), host: Linux 6.18 x86_64, a hosted cloud session with no display, python: 3.13.16, node: 22.22.0 |
| Model | claude-opus-5-5[1m] |
| Kit version | 0.0.160 |
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.
| Step | By | What it found | Of the listing |
|---|---|---|---|
| Research | claude-opus-5-5[1m] | Looked the game up online (its manual, reviews or wiki pages) before reading its code. | |
| Annotation | claude-opus-5-5[1m] | Wrote the listing’s comments. 100 % of the program is described, in 189 comments. | |
| Sample 1 | claude-opus-5-5[1m] | 10 of 60 comments wrong, so between 9 and 28 % of the listing is likely wrong. All 10 were then corrected. 60 of 189 comments, both parts; ten wrong in a detail, all corrected with the comments that said the same | |
| Audit 1 | claude-opus-5-5[1m] | Checked all 189 comments and corrected 42. two fresh checkers, one part each, one after the other: 16 of Part 1's 98 comments and 25 of Part 2's 91 wrong in a detail; all corrected, with one more Part 1 comment that said the same | |
| Sample 2 | claude-opus-5-5[1m] | 4 of 60 comments wrong, so between 3 and 16 % of the listing is likely wrong. All 4 were then corrected. 60 of 189 comments, both parts, after the audit; all four wrong were comments the audit had rewritten |
likely wrong the sample’s range corrected right, or likely right not yet measured
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:
reference/bbcmicro-co-uk-screenshot.jpg.orientation.md), saved in reference/ as p1-* and p2-*.| Feature | Status | Where |
|---|---|---|
| A 32K adventure for young children, Model B only (Acorn User; the archive: Model A no) | confirmed | each part fills &0E00 to about &6800 with the Mode 7 screen at &7C00; a Model A has 16K |
| Transported from Granny's garden to the Kingdom of the Mountains, where a wicked witch has locked up the King and Queen and hidden their six children (Acorn User) | live | Part 1 lines 560 and 800-850, p1-05, p1-06 |
| Two parts (Acorn User) | live | two programs, GRAN1 and GRAN2; Part 1 ends "The rest of the adventure is on the next program" (line 2640) |
| Four locations with puzzles: the children rescued one place at a time (Acorn User) | live | the woodcutter's house and the Giant's garden (Part 1), the City of the Dragons and the Land of Mystery (Part 2) |
| A talking toadstool, a magic raven, a spider, dragons and other characters (Acorn User) | live | PROCtd, PROCrav1 and PROCrav2, PROCspi, PROCdrag; p1-16, p1-07, p1-23, p2-07 |
| Passwords to go on from part to part (Acorn User) | live | snow (Esther), sky (Tom), river (Clare and Anna); Part 1 lines 2390-2400, Part 2 lines 740-750 |
| Mode 7 with teletext graphics, moving pictures and sound (Acorn User) | live | every picture is teletext graphics in PRINT strings; the trees, the raven, the toadstool, the witch, the keeper, the dragons and the eyes move; the music, PROCsnd1, plays under each part's title |
| One-word answers (Acorn User) | confirmed | PROCi takes only letters, DELETE and RETURN, so no answer can hold a space; Part 1 line 1020, Part 2 line 460 |
| Misspelt answers accepted without comment (Acorn User) | confirmed | answers are matched by INSTR on two to four letters inside the word: "itch" for kitchen, "ack", "upb", "rs", "pl", "ic", "or", "ot", "ak", "as", "il", "pom", "horn", "no", "ky", "iv", "ed", "reen" |
| Rubbish sometimes accepted as an answer (Acorn User) | confirmed | a yes or no is the answer's first letter; several questions take anything but "Y" as no and go on (Part 1 lines 600, 620, 680, 700); Stars reaches the stairs |
| The teacher's booklet, with ideas for discussion (Acorn User) | live | the booklet (Sources); its questions for the class are answered from the code on the Discoveries tab |
T at Ready to start? sets the magic tree to a1 (the booklet, Program procedure) | live | line 230 sets t%, line 290 puts the tree at L=4, M=12; it lasts until the part is run again |
OFF at Ready to start? turns the sound off (the booklet, Program procedure) | live | line 220 sets on% FALSE for an answer ending in f, which Off is; the field holds three letters |
| GRANNY1, GRANNY2: in the second, T has no effect (the booklet) | confirmed | Part 2 lines 210-220 have no t% |
| A password from the second program typed into the first asks for an adult (the booklet) | live | Part 1 line 3190, for sky and river |
| The cottage: four places to visit, and "things can change" (the booklet) | live | the kitchen, the backroom, the cupboard and the stairs; the green broomstick from the second visit to the cupboard (cup%) |
| The Giant's garden: five difficulties, five creatures, each helping once, which the children are not told (the booklet) | live | one creature for each stage; a bee or a butterfly hurt in the wood keeps its own reply (Part 1 lines 2690, 2750), the butterfly after the pond says it has helped once (line 2700) |
| The City of the Dragons: four baby dragons, each with a favourite food (the booklet) | live | the loves and hates of Part 2's line 1270 and its sentence table |
| The Land of Mystery: a map of five places, and two children (the booklet) | live | PROCmap, Jessica and Daniel |
Key S to start again at the end of each section (the booklet) | live | PROCkey |
| Text in double height, letters only, one word, the same capitals whatever CAPS LOCK says, no auto-repeat (the booklet, User-friendliness) | confirmed | PROCh; PROCi; *FX11,0 at line 150 of both parts |
| On disc, SHIFT-BREAK loads and runs it; on tape an initial program runs the main one (the booklet, Loading instructions) | differs | this disc has no !BOOT and no first program (orientation.md, The image) |
| The theme: Neil whistled "Queen of the Fairies" down the telephone (the booklet, Author's note) | confirmed | PROCsnd1's DATA (Part 1 lines 3230-3240) is the first strain of the set dance "The King of the Fairies", moved to G, played twice with its two endings |
| No joystick (the archive) | confirmed | no ADVAL in either program |
| No saving (the archive) | confirmed | no file access after the load; the passwords take its place |
| The theme tune (Gazzard) | live | PROCsnd1: 52 notes on three channels, under each part's title and at the end; recorded from the sound chip (facts.md, Sound) |
| Puzzles with trees and dragons (Gazzard) | live | PROCtr (Part 1), the four baby dragons (Part 2 lines 1110-1230) |
Found in the code, then played.
RND(3)*9+4 and the row as RND(2)*6: columns b, c and d and rows 1 and 2. Column a and row 3 never hold it. liveYf starts with no tune under the title and none of the witch's sounds; Part 2's ending still plays the theme (line 2580). Yesf cannot be given: the field there takes four letters, and the key after the fourth, RETURN included, is taken as DELETE, so three survive (PROCi, line 1030). liveNo room, which ON ERROR cannot catch. Its own relocation to &0E00 is cut off by line 100 being a REM (orientation.md). liveorientation.md). After a guess at the trees rejected for its form it is 19 hallways, and once the lake has told its name 25 journeys. liveONERRORRUN:*K.10OLD|MRUN|M, makes everything after ON ERROR the error handler, which RUNs before it reaches *KEY. The soft-key buffer at &0B00 is empty in play. livetry reaches 3, and the tree puzzle has left try at 1, so only one wrong throw is forgiven. livefed% is never set TRUE, so a second visit with no cake is sent away. confirmedp1-beewood)p2-name)fed%) can never be earned; leave at Are you ready to explore? and he asks for a cake there is no getting (Part 2 lines 1780, 2500-2510). live (p2-explore-no)Shall I eat you?, then Y, makes PROCgiant return into itself and run on past the next DEF into Creepy Forest's lines, with the hill's picture still on screen (Part 2 lines 2090-2110). live (p2-giant)orientation.md, The image), but no disc of 4Mation's has been compared.reference/p2-05) is a candidate, unchecked.The annotations for this game are not published. Write-ups, facts and symbol maps are CC BY-SA 4.0. The game itself is not hosted here.