"PARSER for WISHBRINGER: (C)1985 Infocom, Inc. All rights reserved." > > > "INBUF - Input buffer for READ" > "Parse-cont variable" > > > > > "Orphan flag" > > > > > "Parser variables and temporaries" ; ; ; "Byte offset to # of entries in LEXV" "Word offset to start of LEXV entries" "Number of words per LEXV entry" "Offset to parts of speech byte" "Offset to first part of speech" "First part of speech bit mask in PSOFF byte" > > > > ; > > ;> > ; ;> > > > ;> ;> > > > " Grovel down the input finding the verb, prepositions, and noun clauses. If the input is or , fall out immediately setting PRSA to ,V?WALK and PRSO to . Otherwise, perform all required orphaning, syntax checking, and noun clause lookup." ) (BOTTOM <>) LEN (DIR <>) (NW 0) (LW 0) NUM SCNT (CNT -1) OWINNER (OF-FLAG <>)) > ,P-ITBLLEN> ) (T )>> > > > > ;> >> > >)> > > >) ( > )> ; > )>) (T > > > > )> > ) (T )> )> "> )> > ,W?QUOTE> ; "Quote 1st token?" > ;"If so, ignore it." >)> > ;"Is THEN first input word?" > ;"If so, ignore it." >)> > ;"Is GO first input word?" >> ;" followed by verb?"> > ;"If so, ignore it." >)> )> > > ;"3/25/83: Next statement added." > 0> > ) (>> ) (> ;>> > ) ( ;"Last NOT added 7/3"> )> > ) ( >) (T )>)> >> ) (> ,ACT?WALK> > >> ,W?THEN ,W?PERIOD ,W?QUOTE> > ; > > >>> ,W?THEN>)> > > )>) (> ; >> ; )> 2>>>> >>) (> > >> ; "1 IN RETROFIX #34" > ,W?OF> > > >> )> ) (> > ,W?THEN ,W?PERIOD>>> )>) ( ) (T > > > > )>)>) ;( ) ;( > ) ( ; "RETROFIX #34" > ,W?PERIOD ,W?THEN>> ) (T >)>) () ( > ) (T )>) (T )> >> > )> > > ) (T )> ; 0> )> > T)>> > "Check whether word pointed at by PTR is the correct part of speech. The second argument is the part of speech (,PS?). The 3rd argument (,P1?), if given, causes the value for that part of speech to be returned." > .BIT> ) (T > > >)> )>)>> "Scan through a noun phrase, leaving a pointer to its starting location:" ) (FIRST?? T) NW (LW 0)) 2>> > > .VAL> .WRD> >) (T >)> > )> > >> ,W?THE ,W?A ,W?AN> 4>>)> > 0> >> )> >> ) (> ;>> ) (T >>)> ; ,ACT?MAKE ,ACT?TAKE>> )> > ) ( ) ( ; > > >)>) ( >> > >> >) ;"3/16/83: This clause used to be later." ( 0> ;"10/26/84: next stmt changed" >> > ,W?THEN> >) ( >> T) ( > >) ( > >> 2>>> ) (T >)>) ;"Next clause replaced by following one to enable OLD WOMAN, HELLO" ;( 0>>> >>) ( >) ( 0>> > ,W?THEN> >) ( T) (T )>) (T )> > >>> ,PROTAGONIST ,NOT-HERE-OBJECT> > ) ( > ) ( > ) ( ) ( ) ( ) ( > ) (T )> > > > ) (> >) (T > )> > > > ) (T )>> ) (I <>) "AUX" (V <>) OA OO OI) > ) (> > >> ) (> >> ) (T )> )> ; )> )> )>) (T ) (T )> )>)> ; )> )> )>) (T ) (T )> )>)> ; )> )> )>) (T ) (T )> )>)> ; )>) ;"() ( ) ( )"> ; )>) ;"() ( ) ( )">)> > > > > >)>)> ,M-WINNER>>)> ,P?ACTION> ,M-BEG>>)> >>)> >> > )> .I > > ,P?CONTFCN>> >)>)> .I> >>)> .O > > ,P?CONTFCN>> >)>)> .O >> >> )>)> >>)> ; > > ,P?ACTION> ,M-END>>)>)> .V> ) ( ) ( ) ( > ; ; ; ) ( >> ) (T )> ) ( ) ( > ) ( ) (T )> ) (T )>> ) ( ) (T )> > >> ) ( ) ( ) (,ECLIPSE? ) (T )> ) (T )>> ) ( > ) ( > ) (T )>> > ".)" CR> ) (T )>> > > ) (T )>> > > >>> ) (DOLLAR <>)) > 2>> > 3>> ;> > 0> ) (T > > ) ( ) ( ) (> >> ) (T <- .CHR %>>>)> >)>> ) (.TIM >)" ( ) ;"( T) ( ) ( T) (T >)"> >>)> > ,W?MONEY ; ;) (T > ,W?INTNUM ; ;)>> > > "New ORPHAN-MERGE for TRAP Retrofix 6/21/84" ) WRD) > 0>> ,PS?ADJECTIVE ,P1?ADJECTIVE> ) ( > > > )> >>> >>> ) ( ) ( 1> > > > > > >)> )>) (T > ;>)> >) (T )>) ( 1> > > > > > >)>)> > > ) (T )>) (,P-ACLAUSE > > > ) (T > > >)> > > ) (T > )>) ( ,PS?ADJECTIVE> ;"same as WT?" >> ) ; ( ) ( ,PS?OBJECT> ) (T )> )> > > )>>)>)> > > > ; 0>> > > ,P-ITBLLEN> ) (T >)>> T> "New ACLAUSE-WIN for TRAP retrofix 6/21/84" > > > 0>> > > > > 0>> > > > "Print undefined word in input. PTR points to the unknown word in P-LEXV" )> ) (ELSE > >)>>> >> > > >> 2> 3>> > > ")" CR>> " Perform syntax matching operations, using P-ITBL as the source of the verb and adjectives for this input. Returns false if no syntax matches, and does it's own orphaning. If return is true, the syntax is saved in P-SYNTAX." ) (DRIVE2 <>) PREP VERB) > )> >> > > ,P-SONUMS>> T) ;"Added 4/27/83" (> >> >>> ) ( > > ) ( > )>)> ) (T )>) (T >)>> >>> ) ( >>> ) ( ) (T "ere") (T "at")> " do you want to ">) (T "ere") (T "at")> " you want ">
)> )> ) (T )>> ) (T > )> )>> > ;"? ,P-OTBL?" ) (> >) (T > )>> )> > > > ) (T >)>> )> > )> > ) (.D2 > )>> .THE?>> ) WRD (FIRST?? T) (PN <>)) ) (T >) (T )> > >> >> >>> )> ) ( ) ( ) (T .CP> )> ) ( > ) ( ;"VISIBLE check above" ;> ) ( ;> ) ( ;> ) (T >)> >)>)> >>> >> > 32>> 1> <+ 1>>> > )> > ) ( ) (T )> 0>> > )> 0>> > ;"Will it ever work? --SWG" )> )>> > "pointers used by CLAUSE-COPY (source/destination beginning/end pointers)" ) "AUX" BEG END) >> >> ,P-LEXELEN> 2>>> ,P-LEXELEN> 2>>> ) (T >> )> >)> >>> 2>> .WRD> > 2>> ) ( .PREP> >>)>>> >> )> > 1> > >
)> .OBJ)>) (T )>> > 0>> > ,P-PRSO> > > >>)> > 0>> > ,P-PRSI> > >> 1> >) (T >)>)>)> > > ) (> ,P-BUTS>) (T .OBJ> >)> >> .NTBL> > > > > > > > > > > > > ) LEN WV WRD NW (WAS-ALL? <>)) ;"Next SETG 6/21/84 for WHICH retrofix" > )> > >> )> ) (T > >)>) ( > > ) ( ) ( >)>) (T > > >)>) ( >> ;"Next SETG 6/21/84 for WHICH retrofix" > > T) () () ( )>) (> > ) ( )>)> > > )>>> ) (OLEN 0) OBJ ADJ X) > )> ,P-ADJ> >) (> > )>)> > > )> )> > > )> )> )> ) (T )> )> .TLEN>> ;)> ) ( >> > >>
T> "?)" CR>)> ) ( >>> .LEN>> ) (T )> >> .TBL>>> )> > > ;> ) (> ) ( ,P-NC1) (T ,P-NC2)>> <>> ) (.VRB )> > > )>) ( .GCHECK> ; "RETROFIX #33" > > > > ) (T )>)> > > ) ( ;)> )> >> .X>
)> > > >> )) )> ;> ) (T )>> > ; > ; "Needed only for ZIL" ; "This MOBY-FIND works in ZIP only!" > >> >)> )>> > >)> .LEN> ; "This MOBY-FIND works in both ZIL and ZIP." ; >> ;"ZIP case" > >> >)> )>> > >)> .LEN) (T ;"ZIL case" > ) (T >)>> > 0> )> > 0> )> > 1> >)> > .LEN)>> ) ( >) (T >)> > >
> )> ) ( )> > 1> )>>> > > 1>> ;)> > )> )> )>>)> > 4> 1>> ;)> >> 1>>> 5>> > > ) ( )>>)> .LEN> > )>)>)>> > ) (T ) ( ) (T )>)>> > > > )> > ; > ; ; "ADDED 3/26/85" ,P-MOBY-FLAG ; "Needed only for ZIL" >>> ; >> ,P-SRCALL) ; ( ,P-SRCALL) (T ,P-SRCTOP)>>)> >) (T )>>)>> ) (>> 2> 1>>>>> ) (>> 1>>>>> ) (> >> )> > > .OBJ> >> > >>> > >> > 0> )> >> > ) (T )>) ( > ) (T )>) ( > ) (T )>) ( > ) (T )>)> > >> ) (> >) ( > T>> >) (T )> > ; ; > ) ( ) (T
)> ) ( >
)> )>)>>) (T)>> ) TMP) 1> ,SMANY>>> ) ( 1> ,SMANY>>> )> ; )> ; > ) ( >) (T >)> ) (T )>> )> > ) (ELSE >)> > ) (T )>) ( )>>> ; )> > ) (> ) (T )>) (T )>>> > ) (T )>) ( )>>> > )) > ) (,ECLIPSE? )> > ) (T > > )>)> 0> )>)> .LIT> ; >>> ) "AUX" L CNT RND MSG RFROB) > > > > >> > ) (T >>)> > > > )> .MSG> > ) ; ( > ) (
) (T )>
) (T )>> )) ) (T )> > > ) (T )>> ) ( > ) (T )>> > ) (T )>> > > ) ( > ) (T )>> ) (PLACE <>)) ) (> ) (T )> ) (T )>> ) (T )> ) ( ) (T )> ) (T )>> > ) (T > ) ( >> ) (T >)>> )>> 2>>> -3>>> > ) (T )>> >
> > > ) (T )>> )) > ) ( ) (T >)> >>> > > )>) (T )>)>) (T )>)> ) (> )> ".">)> > > ;)> ;)> ) (T )> ) ;( ) ( ) (T ,NOT-HERE-OBJECT)>> ; ) (T )> > )> > )) )> )>) (.PRSO? <>>) (T <>>)>> ) (TWO? <>)) > > ; > )> ) (T )>> > >) (T > >) (T ) (T )>)>
" ">)> )> )> ,BROOM-SIT?> )> > ) (T >)> ) (T > )> )>>)> > > > ) (T )>>> ) (IT? <>)) )> ; "Hide invisible objects" > )> > > )> ) (T )>> ; "Apply all FDESCs and eliminate those objects" > > > >> )> ) (T )>> ; "Apply all DESCFCNs and hide those objects" > > > > )> ) (T )>> ; "Print whatever's left in a nice sentence" > > > ) (T )>) (T ) (T )>)>
)> >> ) (T )> )> > ) (T >)> ) (T > )> )>>)> > )) > > > >> )> >) (T )>> > > 1>>)>> )) ) (.THE ) ( ) (T )>> ) ( ) ( ) (> ) ( ) ( ) (T >)>> > )) ) (T
)> > > > > ) ( ) ( ) (T ) (T )>)>> )) )> ) (T )>> )) ,SUCCESS?> ) (T )> )>> "*** COMMON INTERRUPTS ***" ) ( )>) ( >> )>> > )>> ) (T > )>)>> > ) ( > )>> ) ( > > )> ) ( > ) (T )> )>> > > ; )> > )>> > )) )> > )>) (T )> >)>)> )>> ) ( ; "1st touch?" ) ( ) (T )> )> > )>) (> ; "Not being held" )> ) (T )>> > > >> > > )>) ( ) ( )>> ; "*** ATARI: MAKE THIS TABLE PURE FOR NON-ATARI ZIPS" > ; "LENGTH OF BOOT-PATH" ; "MAXIMUM DIRECTION INDEX" ; "The following is a table of tables, one for each boot room. Entries are in N-S-E-W-U-D-OUT order. All entries zero-aligned. A room name in a slot indicates that you can see boots in that direction when the boots are in the room corresponding to that table. For example, if the boots are at South Of Bridge (Boot Room #2) and you are at Rotary North, you can hear boots to the north. So the NORTH (#0) entry for Boot Room #2 contains Rotary North (your location). Got it?" ; "*** ATARI: IMPURE TABLE (SEE PURE BELOW)" ; <> ROCKY-PATH <> <> <> <>> ; "1" SOUTH-OF-BRIDGE FESTERON-POINT <> <> <>> ; "2"
<> <>> ; "3"
<> SOUTH-OF-BRIDGE <> LOOKOUT-HILL <>> ; "4"
<> <> <> RIVER-OUTLET <> UNDER-HILL> ; "5"
<> SOUTH-OF-BRIDGE <> LOOKOUT-HILL <>> ; "6"
ROTARY-WEST <> <> <>> ; "7"
<> EDGE-OF-LAKE PARK <> <> INSIDE-POLICE-STATION> ; "8"
<> <> <> CIRCULATION-DESK> ; "9"
<> PARK PLEASURE-WHARF <> <> LOBBY> ; "10"
ROTARY-EAST WHARF <> <> <>> ; "11"
<> PLEASURE-WHARF <> <> <> <>> ; "12"
ROTARY-EAST WHARF <> <> <>> ; "13"
<> PARK PLEASURE-WHARF <> <> LOBBY> ; "14"
<> <>> ; "15"
<> EDGE-OF-LAKE PARK <> <> INSIDE-POLICE-STATION> ; "16"
<> <> <> INSIDE-CHURCH> ; "17"
<> <>> ; "18"
SOUTH-OF-BRIDGE FESTERON-POINT <> <> <>>>> ; "*** ATARI: PURE VERSION FOR NON-ATARI ZIPS" <> ROCKY-PATH <> <> <> <>> ; "1" SOUTH-OF-BRIDGE FESTERON-POINT <> <> <>> ; "2" <> <>> ; "3" <> SOUTH-OF-BRIDGE <> LOOKOUT-HILL <>> ; "4" <> <> <> RIVER-OUTLET <> UNDER-HILL> ; "5" <> SOUTH-OF-BRIDGE <> LOOKOUT-HILL <>> ; "6" ROTARY-WEST <> <> <>> ; "7" <> EDGE-OF-LAKE PARK <> <> INSIDE-POLICE-STATION> ; "8" <> <> <> CIRCULATION-DESK> ; "9" <> PARK PLEASURE-WHARF <> <> LOBBY> ; "10" ROTARY-EAST WHARF <> <> <>> ; "11" <> PLEASURE-WHARF <> <> <> <>> ; "12" ROTARY-EAST WHARF <> <> <>> ; "13" <> PARK PLEASURE-WHARF <> <> LOBBY> ; "14" <> <>> ; "15" <> EDGE-OF-LAKE PARK <> <> INSIDE-POLICE-STATION> ; "16" <> <> <> INSIDE-CHURCH> ; "17" <> <>> ; "18" SOUTH-OF-BRIDGE FESTERON-POINT <> <> <>>>> >> >> >> > ; "6" )> ; "Abort if dark" ; "Move the boots only if the player has NOT moved" ; "Calc next boot location and move the boots" > > )> > )> > ) ; "Update LAST-HERE if player moved" (T > )> ; "Check for boot collision" > )> ; "Generic boot approach" > )> ; "Filter response according to JAIL-VISITS" ) ( ) (T ; "Last visit" )> ; "Generic carry-away" ; "Handle 1st and 2nd JAIL-VISITS" ; "1st visit" ) ; "2nd visit" (T )> ; "1st and 2nd visit" ) ; "Handle last visit" (T )> )> ; "If no collision, scan for nearby boots" > )> > ; "The following clause fixes the rotary problem" > ) ( > )>)> "."> >> )> )> >>> ; "# turns for first jail visit" ) ( > ) ( ) ( ) ( ) ( ) ( ) ( > )>)>> > )>>