"BIBLE -- print catalog of object, rooms, and verbs" ) (O ,OUTCHAN)) #DECL ((F) STRING (C) (O) CHANNEL) > ) .C> .C> .C> >> "DONE"> ) (SHORT? <>) (PVAL? <>)) #DECL ((RMTUP) TUPLE (RMS) (OUTCHAN) CHANNEL (CNT) FIX (TEST? SHORT?) ) ) (ELSE T> > T> > )>)> > ROOM>> >>>> ) ( )>> .RMTUP>>) (> FORM ATOM FIX>> )>)> (X) ANY) ) ( > <>) ( >) (>)>) ()> >>> .RMTUP>> > "> )> ) (ELSE )>)>> ) ( ,RDESC2>)>> .CNT> "CATALOG -- print catalog of all objects" ) (SHORT? <>) (PVAL? <>)) #DECL ((OBJTUP) TUPLE (OBJS) UVECTOR (OUTCHAN) CHANNEL (CNT) FIX (TEST? SHORT?) ) >) (ELSE T> > T> > )>)> > FORM ATOM FIX>> >) (> >>>> ) (ELSE )>> .OBJTUP>>) (ELSE >)>)> (X) ANY) ) ( > <>) ( >) (>)>) ()> >>> .OBJTUP>> > "> )> ) (ELSE )>)>> .OBJS) ()>> .CNT> >)) #DECL ((N X) FIX (OUTCHAN) CHANNEL) ) (ELSE )>> (AL) FIX) ) ( ) ( ) ( ) ( " \""> >) (ELSE .A>> >>) (>)> <+ 6 <14 .OUTCHAN>>>>> )>> )> T> \ )) #DECL ((A) (R) ROOM (RMS) UVECTOR (OUTCHAN) CHANNEL (HERO) ADV (LAMP) OBJECT) >> > > > )> > > .RMS>>> )> ) ()> NOFFSET> >>) (>)> )>>> (DESCS) > "BIT-INFO -- print info about a room's bits" ) (OUTCHAN .OUTCHAN)) #DECL ((R) ROOM (BB) (OUTCHAN) CHANNEL) >> > )> ) (ELSE )> )>> ,BITTYS ,DESCS> >> >> DIRECTION> "Out" DIRECTION> "Northeast" DIRECTION> "Northwest" DIRECTION> "Southeast" DIRECTION> "Southwest" DIRECTION> "North" DIRECTION> "South" DIRECTION> "East" DIRECTION> "West" DIRECTION> "Up" DIRECTION> "Down" DIRECTION> "Launch" DIRECTION> "Cross" DIRECTION> "Climb" DIRECTION> "Exit" DIRECTION> "Enter" DIRECTION> "Land"]>)> > ) ) ) ( > ) ( .RMS>> ) ( .RMS> .RMS>>> )>> .EXITS>> ) (DL ,DIRS) D R (OUTCHAN .OUTCHAN) X) #DECL ((L) (DL) VECTOR (OUTCHAN) CHANNEL (D) STRING (ROOM) ROOM (X) (R) ANY) ) ( DIRECTION>> ) (<==? <1 .L> DIRECTION>> ) (ELSE )>) ( .DL>> >) (ELSE >)> > ROOM> ) ( > > ) ( .ROOM> ) (<==? .ROOM> )>> > ) ( >> ) ()>) (ELSE )> >>> "ROOM-NAME -- print name of a room in less than 40 characters" ) "AUX" (D ) (OUTCHAN .OUTCHAN)) #DECL ((R) ROOM (D) STRING (BIG) (OUTCHAN) CHANNEL) ) (ELSE > ) (ELSE )> >> )>> \ ) "AUX" (OUTCHAN .OUTCHAN)) #DECL ((O) OBJECT (A?) (OUTCHAN) CHANNEL) >) (T > >)> >> > "OINFO -- print info for a given object" ) "AUX" O BB (OUTCHAN .OUTCHAN) OSYN) #DECL ((SOBJ) (O) OBJECT (OUTCHAN) CHANNEL (OSYN) UVECTOR (BB REC?) ) >) ()> >> >) (ELSE )>> > > )> >> >> )> >> > > )> >> > )> ) (ELSE >>> > )> >> > )>)> >> )> ) > > ) (ELSE )>) (.FIRST? ) (ELSE )> >) ( ) (ELSE )> > ) (ELSE ) (ELSE )> )>> >> >>> >> > >> > )>) (>> > )> )> 0> ,BIGFIX> ) (>)> )> >>> ) (ELSE )> )> 0> > >> > ) (ELSE )> > > )>)> 0> > >> > ) (ELSE )> > > )>)> FIX>>> > ) (ELSE )> )>> ,OBITTYS ,ODESCS> )> > )> > >)> "DONE"> (ODESCS) > \ "GET-ACTIONS -- print action-info for all verbs" ) "AUX" V1) #DECL ((V) >) >> >>> ) M) #DECL ((X) PSTRING (A) ACTION (M) ) >> > 1 (.X !<1 .M>)>) ( >)>> .V> )) #DECL ((VV) VECTOR (ITM) ANY) >>)>> >> ) (.X)>> .V1>> .V1 3 2> ) NM (1ST? T)) #DECL ((VV) VECTOR (ITM) ANY (NM) PSTRING (1ST?) ) > LIST> PSTRING>>>> > > >)>> .ITM> >) ( )>> .V1> > )) #DECL ((LST) (ACT) ACTION (ASTR) STRING) >>>)> .ASTR> >)>> .LST>) (> FIX>)>> > >> 32> CHARACTER>>)> ) (>)>> .STR1 .STR2>> "GET-ACTION -- print info for a single verb" ) (ELSE )> > > >> > > "PARG -- print info for one argument of a verb" ) (W ) (OUTCHAN .OUTCHAN)) #DECL ((VARG) VARG (B W) FIX (OUTCHAN) CHANNEL) <0? .W>>) (ELSE >>)> > >> >)>> "PVBIT -- print info for object spec for a verb argument" ) (<0? .B> ) (ELSE )>> "PVWORD -- print verb info for a verb argument" )) #DECL ((W) FIX (OUTCHAN) CHANNEL (TC) FIX (COM) ) ) (<0? .W> ) (ELSE > FIX> 4>> >) (<1? .TC> ) (<==? .TC 2> ) (<==? .TC 3> )> )>> > "PBITS -- print bits that are on in a flagword" ) "AUX" (N 1) (C 1) (OUTCHAN .OUTCHAN) S) #DECL ((B C N) FIX (BNAMES) (COM?) (OUTCHAN) CHANNEL (S) STRING) FIX>>> >>> > )>)> ) (ELSE > >)>>> "PLC -- print a string in lower case" )) #DECL ((C) CHARACTER (A) FIX) > >> >)> >> .STR> .STR> \ "GET-VERBS -- print various verb garbage -- probably doesn't work?" ) "AUX" (WORDS ,WORDS-POBL) V (OUTCHAN .OUTCHAN)) #DECL ((V) (TOPL) (OUTCHAN) CHANNEL) > )) #DECL ((X) PSTRING (A) ANY) <==? .X <1 .A>>>> > .X> ) () (OUTCHAN .OUTCHAN)) #DECL ((V) UVECTOR (LSTNAME) (OUTCHAN) CHANNEL) > )) #DECL ((X) PSTRING (Y) UVECTOR) > > .X> ) () (>)>)> )>> .V> 2>> \ "ORDER -- sorter for uvectors of atoms" POBLIST> (S S1 S2) UVECTOR (SP1 SP2) STRING (V1 V2) PSTRING (O1) < [REST LIST]> (L) ) ) (T > >)> ) (> > )>>>>) ()> > .S) (ELSE >> ) (> )>)> > > > )> >>)>> "OORDER -- order a list by an offset in each element" ]> (V1 V2) (OFFS) FIX (SP1 SP2) STRING) > .S) (ELSE >> ) (> )>)> > > > > )> >>)>> ) (L2 )) #DECL ((S1 S2) STRING (L1 L2) FIX) >> <>) ( >> T) (ELSE >) (C2 >) (L1 ) (L2 )) #DECL ((S1 S2) STRING (C1 C2 L1 L2) FIX) > >> >)> > >> >)> >> >) ( >> )>) ( ) ( >)>> .S1 .S2>)>>