.FUNCT QUEUE,RTN,TICK,CINT CALL2 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 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 QUEUED?,RTN,C CALL2 INT,RTN >C GET C,C-ENABLED? ZERO? STACK /FALSE GET C,C-TICK >C ZERO? C /FALSE RETURN C .FUNCT CLOCKER,C,E,TICK,FLG=0,VAL ZERO? CLOCK-WAIT /?CND1 SET 'CLOCK-WAIT,FALSE-VALUE RFALSE ?CND1: INC 'PRESENT-TIME IGRTR? 'MOVES,59 \?CND5 SET 'MOVES,0 IGRTR? 'SCORE,23 \?CND5 SET 'SCORE,0 ?CND5: PUSH C-INTS ADD C-TABLE,STACK >C ADD C-TABLE,C-TABLELEN >E ?PRG16: EQUAL? C,E \?ELS20 RETURN FLG ?ELS20: GET C,C-ENABLED? ZERO? STACK /?CND18 GET C,C-TICK >TICK ZERO? TICK \?ELS25 JUMP ?CND18 ?ELS25: SUB TICK,1 PUT C,C-TICK,STACK GRTR? TICK,1 /?CND23 GET C,C-RTN CALL STACK >VAL ZERO? VAL /?CND23 ZERO? FLG /?THN36 EQUAL? VAL,M-FATAL \?CND18 ?THN36: SET 'FLG,VAL ?CND23: ?CND18: ADD C,C-INTLEN >C JUMP ?PRG16 .ENDI