planetfall-gold/misc.zabstr
2019-04-18 21:40:40 -04:00

70 lines
2.5 KiB
Plaintext

<DEFMAC RMGL-SIZE ('TBL) <COND (<AND <GASSIGNED? PLUS-MODE> ,PLUS-MODE> <FORM -
<FORM / <FORM PTSIZE .TBL> 2> 1>) (T <FORM - <FORM PTSIZE .TBL> 1>)>>
<GLOBAL P-MULT <> %<> WORD>
<GLOBAL P-NOT-HERE <> %<> WORD>
<SETG C-ENABLED? 0>
<SETG C-ENABLED 1>
<SETG C-DISABLED 0>
<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 RFATAL () '<PROG () <PUSH 2> <RSTACK>>>
<DEFMAC PROB ('BASE?) <FORM NOT <FORM L? .BASE? '<RANDOM 100>>>>
<DEFINE-ROUTINE PICK-ONE>
<DEFMAC ENABLE ('INT) <FORM PUT .INT ,C-ENABLED? 1>>
<DEFMAC DISABLE ('INT) <FORM PUT .INT ,C-ENABLED? 0>>
<DEFMAC OPENABLE? ('OBJ) <FORM OR <FORM FSET? .OBJ ',DOORBIT> <FORM FSET? .OBJ
',CONTBIT>>>
<DEFMAC ABS ('NUM) <FORM COND (<FORM L? .NUM 0> <FORM - 0 .NUM>) (T .NUM)>>
^L
<GLOBAL P-WON <> %<> WORD>
<CONSTANT M-FATAL 2>
<CONSTANT M-HANDLED 1>
<CONSTANT M-NOT-HANDLED <>>
<CONSTANT M-BEG 1>
<CONSTANT M-END 6>
<CONSTANT M-OBJECT <>>
<CONSTANT M-ENTER 2>
<CONSTANT M-LOOK 3>
<CONSTANT M-FLASH 4>
<CONSTANT M-OBJDESC 5>
<GLOBAL WINNER <> %<> WORD>
<GLOBAL HOST:NUMBER 0 %<> WORD>
<GLOBAL WIDTH:NUMBER 0 %<> WORD>
<DEFINE-ROUTINE GO>
<DEFINE-ROUTINE I-RANDOM-INTERRUPTS>
<DEFINE-ROUTINE MAIN-LOOP>
<DEFINE-ROUTINE MAIN-LOOP-1>
<DEFINE-ROUTINE TOO-DARK-FOR-IT?>
<DEFINE-ROUTINE DONT-ALL>
<DEFINE-ROUTINE CLOCKER-VERB?>
<DEFINE-ROUTINE FAKE-ORPHAN>
<DEFINE-ROUTINE PERFORM-PRSA>
<DEFINE-ROUTINE PERFORM>
<DEFINE-ROUTINE D-APPLY>
<DEFINE-ROUTINE META-LOC>
^L
<CONSTANT C-TABLELEN 240>
<GLOBAL C-TABLE <ITABLE NONE 120> %<> WORD>
<GLOBAL C-DEMONS 300 %<> WORD>
<GLOBAL C-INTS 240 %<> WORD>
<GLOBAL C-ELAPSED 7 %<> WORD>
<CONSTANT C-ELAPSED-DEFAULT 7>
<CONSTANT C-INTLEN 6>
<CONSTANT C-ENABLED? 0>
<CONSTANT C-TICK 1>
<CONSTANT C-RTN 2>
<DEFINE-ROUTINE QUEUE>
<DEFINE-ROUTINE INT>
<DEFINE-ROUTINE CLOCKER>
<DEFINE-ROUTINE REFERRING>