mirror of
https://github.com/historicalsource/checkpoint
synced 2024-04-29 15:39:27 +03:00
66 lines
1.1 KiB
Plaintext
66 lines
1.1 KiB
Plaintext
|
|
|
|
.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
|