zorkzero/misc.zabstr
historicalsource 8b3579aab4 Release 296
2019-04-16 09:52:54 -04:00

65 lines
2.6 KiB
Plaintext

<BEGIN-SEGMENT 0>
<INCLUDE "PDEFS">
<TELL-TOKENS (CRLF CR) <CRLF> D * <DPRINT .X> A * <APRINT .X> T ,PRSO <
TPRINT-PRSO> T ,PRSI <TPRINT-PRSI> T * <TPRINT .X> AR * <ARPRINT .X> TR * <
TRPRINT .X> N * <PRINTN .X> C * <PRINTC .X> T-IS-ARE * <IS-ARE-PRINT .X>>
<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 PROB ('BASE?) <FORM NOT <FORM L? .BASE? '<RANDOM 100>>>>
<DEFINE-ROUTINE PICK-ONE>
<DEFINE-ROUTINE DPRINT>
<DEFINE-ROUTINE APRINT>
<DEFINE-ROUTINE TPRINT>
<DEFINE-ROUTINE TPRINT-PRSO>
<DEFINE-ROUTINE TPRINT-PRSI>
<DEFINE-ROUTINE ARPRINT>
<DEFINE-ROUTINE TRPRINT>
<DEFINE-ROUTINE IS-ARE-PRINT>
<REPLACE-DEFINITION VERB-ALL-TEST <ROUTINE VERB-ALL-TEST>>
<REPLACE-DEFINITION GAME-VERB? <ROUTINE GAME-VERB?>>
<DEFINE-ROUTINE THIS-IS-IT>
<DEFINE-ROUTINE DONT-IT>
<GLOBAL P-NUMBER 0>
<DEFINE-ROUTINE PERFORM-PRSA>
<REPLACE-DEFINITION CAPITAL-NOUN? <ROUTINE CAPITAL-NOUN?>>
<REPLACE-DEFINITION LIT? <ROUTINE LIT?>>
<CONSTANT C-TABLE <ITABLE NONE 30>>
<GLOBAL CLOCK-WAIT <>>
<GLOBAL C-INTS 60>
<GLOBAL C-MAXINTS 60>
<GLOBAL CLOCK-HAND <>>
<CONSTANT C-TABLELEN 60>
<CONSTANT C-INTLEN 4>
<CONSTANT C-RTN 0>
<CONSTANT C-TICK 1>
<DEFINE-ROUTINE DEQUEUE>
<DEFINE-ROUTINE QUEUED?>
<DEFINE-ROUTINE RUNNING?>
<DEFINE-ROUTINE QUEUE>
<DEFINE-ROUTINE CLOCKER>
<GLOBAL FONT-X 7>
<GLOBAL FONT-Y 10>
<CONSTANT PICINF-TBL <TABLE 0 0>>
<DEFINE-ROUTINE C-PIXELS>
<DEFINE-ROUTINE L-PIXELS>
<DEFINE-ROUTINE CCURSET>
<END-SEGMENT>