Prev: E9B6 Up: Map Next: EA8D
EA60: Jump Table
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.
Idx Word Summary
01-06 NORTH..DOWN Exit; redraw
07 INVENTORY List carried
08 LOOK Redraw room
09 HELP Can't help
0A SAVE Tape SAVE
0B LOAD Tape LOAD
0C QUIT Quit
0D SCORE Completion %
0E WAIT "I wait."
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.
Idx Word Summary
01 GET Take item
02 TAKE Same as GET
03 DROP Drop item
04 EXAMINE Examine; may reveal
05 SEARCH Find concealed items
08/09 ENTER/GO Shared at 1910
19 LOOK Look at noun/dir
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:
Idx Word Lands
06/07 ATTACK/KILL 1701 (no 1600-1700)
0A SAY 2001
0B CLIMB 2105
0C TIE 2205
0D THROW 2310
0E WEAR 2410
0F REMOVE 2510
10 UNLOCK 2610
11 OPEN 2715
12 CLOSE 2810
13 READ 2905
14 LOCK 3010
15 SWIM 3110
16 GIVE 3205
17/18 PULL/MOVE 3410 (no 3300-3409)
1A PUSH 3605
1B EAT 3700
1C LIGHT 3820
1D EXTINGUISH 3920
1E TURN 4010
1F HIT 4105
20 PUT 4205
21 DIG 4305
22 DIP 4405
23 RUB 4510
24 LISTEN 4605
25 SHOOT 4705
26 CAST 4810
27 LEAVE 4910
28 ROW 5005
29 INSERT 5110
2A UNTIE 5210
2B BREAK 5300→4100 (HIT)
2C SWING 5410→3130 (SWIM)
2D BAIL 5500
2E USE 5600
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