Third edition, by Graham Nelson. 4th September 1996
(A full textual version of the manual is available for download, thanks to Stephen van Egmond. See also the original TeX version of the manual.)
jump; saving the program state
privateproperties and encapsulation
Include; conditional compilation:
Message; linking in the library; writing new modules to link in.
Initialiseroutine; some properties of mushrooms;
afterrules; the stone steps; self-destructing rules.
inp2); the ## notation; the standard actions, in Groups 1 to 3; creating new actions, the
Blorpleexample; fake actions like
ThrownAt; how actions are processed, over Before, During and After stages.
d_to, etc.; when you
cant_go; scenery objects;
defaultrules; rooms have
aftertoo; a mist object, present in many rooms, using
found_in; the five senses and reaction rules; direction objects in the
openable; locks and keys:
Receiveto trap use of a container: a horrifying chasm; the
transparentobjects have visible sub-objects; a television set with buttons.
when_closed; a stone door for Ruins; a two-way door, the Advent grate; why
door_diris needed and how to trap every attempt to go through.
when_off; the Gotham City searchlight; a sodium lamp;
enterableobjects: a slab altar; vehicles: KAR 1; special rule about the
Goaction when inside something
PushDiraction: a huge pumice-stone ball; pushing up and down.
Consultaction, look up;
consult_words: a dictionary of glyphs, Tyndale's Bible; making read and examine different.
animateobjects and the
liferule; a mummified priest, Blofeld, a coiled snake; some people are
transparent; orders: actions for other people;
talkableobjects; parsing conversation: Zen and Charlotte; untypeable verbs; fake fake actions; several voice-activated machines; applications of scope: telepathy and phone calls.
when there is light;
HasLightSource; going from darkness to darkness and the
DarkToDarkentry point; modifying the darkness object.
daemonproperty; starting and stopping them; background daemons; timers (fuses);
each_turnevents for places and nearby objects; the time of day; changing it with
SetTime; on the status line; midnight, sunrise, sunset; the exact sequence of events at end-of-turn.
Initialiseshould do; the
location; initial restoration; teleportation and the
PlayerToroutine; what happens when the room changes:
initialfor a room,
visited; giving the player his own
ChangePlayerto transform him into any object; multi-character games; life and
DeathMessageroutine; resurrection and the
MAX_CARRIED; the automatic rucksack
SACK_OBJECT; amusing rewards for the victorious; two scoring systems:
PrintTaskName; rankings and
PrintRank; automatic score notification and
notify_mode; objects and places verbs, removable with
LibraryMessagessystem for changing messages like Dropped.; changing the prompt; the last resort, using
Replacedirectives; even on 'hardware' functions like
print (The) obj,
... (the) objand so on; indefinite and definite
short_nameof an object;
inventstrings and routines; exactly how inventory lines are printed; a matchbook;
describeroutines; exactly how rooms are described;
WriteListFrom; its style bitmap; examples: tall and wide inventories; grouping similar items together in lists: foodstuffs, Scrabble pieces and denominations of coin.
nameis used; a fried green tomato turning red; the parser breaks text into a stream of words;
NextWord; reading words as numbers or from their raw text; a
parse_nameroutine is much more flexible than
ParseNounentry point; distinguishing adjectives from nouns.
pluralproperty for printing out plurals; definition of indistinguishable; writing
parse_nameroutines to allow plurals to be understood; class of crowns.
BeforeParsingentry point; the actor and verb word; synonyms for verbs; definitions of grammar, line and token;
Verbdirective: a simplified take grammar;
metaverbs; grammar creates actions; creating an xyzzy verb; how to
Extendgrammar for an existing verb: pushing numbered buttons; priority:
last; splitting synonymous verbs apart with
held; implicit taking; tokens allowing multiple objects like all; filtering out nouns by attribute: use verb; and by general routine: free verb; parsing numbers: type verb,
ParseNumber; general parsing routines; reading from the parser's raw text
parsetable; exercises, including French, telephone and floating-point numbers, times of day, adding a
thirdparameter to a grammar line.
scope=...tokens with programmable scope;
PlaceInScope; changing the global definition of
scope_reason; looping over and testing scope; making the rules more sensitive to darkness; a long room divided by a glass wall; the
add_to_scopeproperty for component parts of containers.
ParserError; ambiguity-resolution and influencing it with
ChooseObjects; making eat prefer
edibleobjects; redefining all.
Abbreviateto save run-time memory.
YesOrNo; the status line; character graphics, escape characters; proportional- and fixed-pitch fonts,
font; epigrams in boxes and
box; menus of text options,
menu_item; an example menu; submenus are allowed; changing the text
styleto bold-face, underlining, reverse video.
@; reliability of interpreters; table of opcodes worth knowing about; upper and lower windows: splitting, setting the window, moving the cursor, clearing the screen, word-breaking; the colour scheme; a bell sound; keyboard reading in real-time; function and cursor keys; tokenising with dictionaries; encoding dictionary entries; input/output streams; the stack frame: throw and catch; examples: a title page, drawing status lines, formatting and centering text.