mirror of
https://github.com/historicalsource/witness
synced 2024-04-30 16:09:40 +03:00
64 lines
1.2 KiB
Plaintext
64 lines
1.2 KiB
Plaintext
|
|
||
|
|
||
|
.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
|