.FUNCT QUEUE,RTN,TICK,CINT CALL INT,RTN >CINT PUT CINT,C-TICK,TICK RETURN CINT .FUNCT INT,RTN,DEMON=0,E,C,INT ADD C-TABLE,C-TABLELEN >E ADD C-TABLE,C-INTS >C ?PRG1: EQUAL? C,E \?ELS5 SUB C-INTS,C-INTLEN >C-INTS ZERO? DEMON /?ELS7 SUB C-DEMONS,C-INTLEN >C-DEMONS ?ELS7: ADD C-TABLE,C-INTS >INT PUT INT,C-RTN,RTN RETURN INT ?ELS5: GET C,C-RTN EQUAL? STACK,RTN \?CND3 RETURN C ?CND3: ADD C,C-INTLEN >C JUMP ?PRG1 .FUNCT CLOCKER,C,E,TICK,FLG=0,VAL ZERO? CLOCK-WAIT /?CND1 SET 'CLOCK-WAIT,FALSE-VALUE RFALSE ?CND1: INC 'PRESENT-TIME GRTR? PRESENT-TIME,1199 \?CND5 CALL TIMES-UP ?CND5: IGRTR? 'MOVES,59 \?CND8 SET 'MOVES,0 IGRTR? 'SCORE,23 \?CND8 SET 'SCORE,0 ?CND8: ZERO? P-WON /?ELS18 PUSH C-INTS JUMP ?CND14 ?ELS18: PUSH C-DEMONS ?CND14: ADD C-TABLE,STACK >C ADD C-TABLE,C-TABLELEN >E ?PRG22: EQUAL? C,E \?ELS26 RETURN FLG ?ELS26: GET C,C-ENABLED? ZERO? STACK /?CND24 GET C,C-TICK >TICK ZERO? TICK \?ELS31 JUMP ?CND24 ?ELS31: SUB TICK,1 PUT C,C-TICK,STACK GRTR? TICK,1 /?CND29 GET C,C-RTN CALL STACK >VAL ZERO? VAL /?CND29 ZERO? FLG /?THN42 EQUAL? VAL,M-FATAL \?CND24 ?THN42: SET 'FLG,VAL ?CND29: ?CND24: ADD C,C-INTLEN >C JUMP ?PRG22 .ENDI