99 lines
3.8 KiB
Plaintext
99 lines
3.8 KiB
Plaintext
|
|
<TELL-TOKENS (CRLF CR) <CRLF> (NUM N) * <PRINTN .X> (CHAR CHR C) * <PRINTC .X>
|
|
S *:STRING <PRINT .X> D * <DPRINT .X> CD ,PRSO <CDPRINT-PRSO> CD ,PRSI <
|
|
CDPRINT-PRSI> CD * <CDPRINT .X> THE ,PRSO <THE-PRINT-PRSO> THE ,PRSI <
|
|
THE-PRINT-PRSI> THE * <THE-PRINT .X> CTHE ,PRSO <CTHE-PRINT-PRSO> CTHE ,PRSI <
|
|
CTHE-PRINT-PRSI> CTHE * <CTHE-PRINT .X> (A AN) ,PRSO <PRINTA-PRSO> (A AN) ,PRSI
|
|
<PRINTA-PRSI> (A AN) * <PRINTA .X> A * <APRINT .X> T ,PRSO <TPRINT-PRSO> T ,
|
|
PRSI <TPRINT-PRSI> T * <TPRINT .X> AR * <ARPRINT .X> TR * <TRPRINT .X>>
|
|
<DEFINE-ROUTINE TELL-OPEN-CLOSED>
|
|
<DEFINE-ROUTINE OPEN-CLOSED>
|
|
<DEFINE-ROUTINE IS-ARE>
|
|
<DEFINE-ROUTINE CTHE-PRINT-PRSO>
|
|
<DEFINE-ROUTINE CTHE-PRINT>
|
|
<DEFINE-ROUTINE THE-PRINT-PRSO>
|
|
<DEFINE-ROUTINE THE-PRINT-PRSI>
|
|
<DEFINE-ROUTINE THE-PRINT>
|
|
<DEFINE-ROUTINE PRINTA-PRSO>
|
|
<DEFINE-ROUTINE PRINTA-PRSI>
|
|
<DEFINE-ROUTINE PRINTA>
|
|
<DEFINE-ROUTINE DPRINT>
|
|
<DEFINE-ROUTINE IPRINT>
|
|
<DEFINE-ROUTINE NSPRINT>
|
|
<DEFINE-ROUTINE APRINT>
|
|
<DEFINE-ROUTINE TPRINT>
|
|
<DEFINE-ROUTINE TPRINT-PRSO>
|
|
<DEFINE-ROUTINE TPRINT-PRSI>
|
|
<DEFINE-ROUTINE ARPRINT>
|
|
<DEFINE-ROUTINE TRPRINT>
|
|
<DEFMAC VERB? ("ARGS" ATMS) <MULTIFROB PRSA .ATMS>>
|
|
<DEFMAC PRSO? ("ARGS" ATMS) <MULTIFROB PRSO .ATMS>>
|
|
<DEFMAC PRSI? ("ARGS" ATMS) <MULTIFROB PRSI .ATMS>>
|
|
<DEFMAC ROOM? ("ARGS" ATMS) <MULTIFROB HERE .ATMS>>
|
|
<DEFINE MULTIFROB (X ATMS "AUX" (OO (OR)) (O .OO) (L ()) ATM) <REPEAT () <COND
|
|
(<EMPTY? .ATMS> <RETURN <COND (<LENGTH? .OO 1> <ERROR .X>) (<LENGTH? .OO 2> <
|
|
NTH .OO 2>) (ELSE <CHTYPE .OO FORM>)>>)> <REPEAT () <COND (<EMPTY? .ATMS> <
|
|
RETURN>)> <SET ATM <NTH .ATMS 1>> <SET L (<COND (<TYPE? .ATM ATOM> <CHTYPE <
|
|
COND (<==? .X PRSA> <PARSE <STRING "V?" <SPNAME .ATM>>>) (ELSE .ATM)> GVAL>) (
|
|
ELSE .ATM)> !.L)> <SET ATMS <REST .ATMS>> <COND (<==? <LENGTH .L> 3> <RETURN>)>
|
|
> <SET O <REST <PUTREST .O (<FORM EQUAL? <CHTYPE .X GVAL> !.L>)>>> <SET L ()>>>
|
|
|
|
<DEFMAC BSET ('OBJ "ARGS" BITS) <MULTIBITS FSET .OBJ .BITS>>
|
|
<DEFMAC BCLEAR ('OBJ "ARGS" BITS) <MULTIBITS FCLEAR .OBJ .BITS>>
|
|
<DEFMAC BSET? ('OBJ "ARGS" BITS) <MULTIBITS FSET? .OBJ .BITS>>
|
|
<DEFINE MULTIBITS (X OBJ ATMS "AUX" (O ()) ATM) <REPEAT () <COND (<EMPTY? .ATMS
|
|
> <RETURN <COND (<LENGTH? .O 1> <NTH .O 1>) (<EQUAL? .X FSET?> <FORM OR !.O>) (
|
|
ELSE <FORM PROG () !.O>)>>)> <SET ATM <NTH .ATMS 1>> <SET ATMS <REST .ATMS>> <
|
|
SET O (<FORM .X .OBJ <COND (<TYPE? .ATM FORM> .ATM) (ELSE <FORM GVAL .ATM>)>>
|
|
!.O)>>>
|
|
<DEFMAC RFATAL () '<PROG () <PUSH 8> <RSTACK>>>
|
|
<DEFMAC PROB ('BASE?) <FORM NOT <FORM L? .BASE? '<RANDOM 100>>>>
|
|
<DEFINE-ROUTINE PICK-ONE>
|
|
<DEFINE PSEUDO ("TUPLE" V) <MAPF ,PLTABLE <FUNCTION (OBJ) <COND (<N==? <LENGTH
|
|
.OBJ> 3> <ERROR BAD-THING .OBJ>)> <MAPRET <COND (<NTH .OBJ 2> <VOC <SPNAME <NTH
|
|
.OBJ 2>> NOUN>)> <COND (<NTH .OBJ 1> <VOC <SPNAME <NTH .OBJ 1>> ADJECTIVE>)> <3
|
|
.OBJ>>> .V>>
|
|
<CONSTANT M-BEG 1>
|
|
<CONSTANT M-ENTER 2>
|
|
<CONSTANT M-LOOK 3>
|
|
<CONSTANT M-FLASH 4>
|
|
<CONSTANT M-OBJDESC 5>
|
|
<CONSTANT M-END 6>
|
|
<CONSTANT M-SMELL 7>
|
|
<CONSTANT M-FATAL 8>
|
|
<CONSTANT M-OBJDESC? 9>
|
|
<CONSTANT M-ENTER-DESC 10>
|
|
<ZSTART GO>
|
|
<GLOBAL SCENARIO 0>
|
|
<CONSTANT S-BYSTANDER 1>
|
|
<CONSTANT S-GOOD 2>
|
|
<CONSTANT S-BAD 3>
|
|
<GLOBAL SCENARIO-TBL <PLTABLE BYSTANDER-SCENARIO-F GOOD-SCENARIO-F
|
|
BAD-SCENARIO-F>>
|
|
<CONSTANT MINUS-ONE -1>
|
|
<GLOBAL MAX-WEIGHT 40>
|
|
<DEFINE-ROUTINE GO>
|
|
<DEFINE-ROUTINE MAIN-LOOP>
|
|
<DEFINE-ROUTINE MAIN-LOOP-1>
|
|
<GLOBAL AWAITING-FAKE-ORPHAN <>>
|
|
<DEFINE-ROUTINE DONT-ALL>
|
|
<DEFINE-ROUTINE CLOCKER-VERB?>
|
|
<GLOBAL P-WON <>>
|
|
<GLOBAL P-MULT <>>
|
|
<GLOBAL P-NOT-HERE 0>
|
|
<DEFINE-ROUTINE FAKE-ORPHAN>
|
|
<DEFINE-ROUTINE PERFORM-PRSA>
|
|
<DEFINE-ROUTINE PERFORM>
|
|
<DEFINE-ROUTINE D-APPLY>
|
|
<GLOBAL CLOCK-WAIT <>>
|
|
<CONSTANT C-TABLELEN 60>
|
|
<CONSTANT C-INTLEN 4>
|
|
<CONSTANT C-RTN 0>
|
|
<CONSTANT C-TICK 1>
|
|
<GLOBAL CLOCK-MOVE 12>
|
|
<CONSTANT CLOCK-DEFAULT 12>
|
|
<DEFINE-ROUTINE NOISY-VERB?>
|
|
<DEFINE-ROUTINE QUIET-VERB?>
|
|
<DEFINE-ROUTINE CLOCKER>
|
|
<DEFINE-ROUTINE ABS>
|
|
<DEFINE-ROUTINE TOO-LATE> |