![]() |
Routines |
| Prev: E9B6 | Up: Map | Next: EA8D |
|
Vector table of
JP instructions. BASIC USR n lands on address n and bounces into the named routine:
Action dispatch (BASIC). After SubmitInputLine returns from Enter, line 130
GO SUB 1000. Line 1010 calls USR JumpTable_SearchVerbs (SearchVocabulary_Verbs); on a hit, line 1020 advances the token, reads an optional noun via USR JumpTable_SearchNouns, then GO TO n*100+1000 for verb index n. Separately, line 310 calls USR JumpTable_SearchCommands (SearchVocabulary_Commands) for Table_Commands: indices 01-06 move; 07+ go to line 400.
Core command handlers (BASIC, via SearchVocabulary_Commands). LOOK at line 441 goes to 350 to redraw the room; lines 450-499 ("I see") are a shared subroutine reached from there and elsewhere.
Core verb handlers (BASIC, via SearchVocabulary_Verbs then
n*100+1000). Noun index from SearchVocabulary_Nouns is BASIC x where used. ENTER (GO TO 1800) and GO (GO TO 1900) share one handler at line 1910, since there are no lines from 1800 to 1909.
Remaining verbs in Table_Verbs (indices 06-2E except the core rows above). Line 1020 still uses
GO TO n*100+1000; when that line is missing, BASIC continues at the next existing line.
Combat and speech. ATTACK and KILL share one fight routine: with a carried weapon they injure or slay a creature in the room. SAY talks to creatures (and can trigger give/take replies). HIT smashes a magical ward or, with the staff, turns a foe to dust; BREAK is the same fight path. SHOOT fires the bow.
Movement and the boat. CLIMB covers the rope, a tree and the boat mast. SWIM crosses the river; SWING on a hanging rope joins that same crossing. PULL and MOVE share one routine for hauling the boat into the sea, tugging the tied rope, or opening a sliding panel. PUSH works the lever. LEAVE, ROW and BAIL handle getting out of nested places and travelling or emptying the boat (ROW needs the oars; BAIL needs a helmet).
Inventory and wearables. THROW drops a carried object into the scenery (river, tree, far bank). WEAR and REMOVE put on or take off clothing and gems. GIVE hands an object to a creature. EAT consumes food and can restore hits. PUT stashes things in containers, the furnace crucible, the black sack or a chest. INSERT seats the pin that locks the sword arm.
Doors, chests and light. UNLOCK, OPEN, CLOSE and LOCK all resolve the target door or chest through the shared helper at line 2650, then change its open/locked state (keys must fit). LIGHT and EXTINGUISH manage the torch. TURN works the furnace or the dial.
Magic and discovery. READ shows book and scroll texts. CAST spends a scroll plus its ingredient (fire protection, cure disease, heal). RUB the lamp for the Jinni. DIG may unearth a buried find; DIP melts metal in the furnace; LISTEN can reveal the death- beetle hint. TIE and UNTIE fasten or free the rope on a stalagmite (UNTIE also frees Timandra). USE only asks for a more specific verb.
Landing notes where the nominal
n*100+1000 line is missing or shared:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| JumpTable | EA60 | JP SearchVocabulary_Prepositions | Jump to SearchVocabulary_Prepositions. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| JumpTable_SearchVerbs | EA63 | JP SearchVocabulary_Verbs | Jump to SearchVocabulary_Verbs. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| JumpTable_InputLine | EA66 | JP InputLine | Jump to InputLine. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| JumpTable_SearchNouns | EA69 | JP SearchVocabulary_Nouns | Jump to SearchVocabulary_Nouns. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| JumpTable_AdvanceInputPointer | EA6C | JP AdvanceInputPointer | Jump to AdvanceInputPointer. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| JumpTable_SearchCommands | EA6F | JP SearchVocabulary_Commands | Jump to SearchVocabulary_Commands. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| JumpTable_TokenHelper | EA72 | JP MatchTokenInBasicList | Jump to MatchTokenInBasicList. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| JumpTable_BasicHelper | EA75 | JP BasicHelper | Jump to BasicHelper. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| JumpTable_SeedPrimaryBuffer | EA78 | JP SeedPrimaryWorkBuffer | Jump to SeedPrimaryWorkBuffer. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| JumpTable_StepWorkBuffer | EA7B | JP StepWorkBuffer | Jump to StepWorkBuffer. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| JumpTable_SeedSecondaryBuffer | EA7E | JP SeedSecondaryWorkBuffer | Jump to SeedSecondaryWorkBuffer. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| JumpTable_ScanInputSpaces | EA81 | JP ScanInputSpaces | Jump to ScanInputSpaces. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| JumpTable_CopyWorkBuffer | EA84 | JP CopyWorkBuffer | Jump to CopyWorkBuffer. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| JumpTable_LocationGraphicSetup | EA87 | JP LocationGraphicSetup | Jump to LocationGraphicSetup. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| JumpTable_ScrollAdjust | EA8A | JP ScrollAdjust | Jump to ScrollAdjust. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Prev: E9B6 | Up: Map | Next: EA8D |