mirror of
https://github.com/historicalsource/shogun
synced 2024-06-17 07:31:04 +03:00
260 lines
5.5 KiB
Plaintext
260 lines
5.5 KiB
Plaintext
|
|
||
|
.SEGMENT "HINTS"
|
||
|
|
||
|
.SEGMENT "0"
|
||
|
|
||
|
|
||
|
.FUNCT SETUP-TEXT-AND-STATUS:ANY:0:1,P,X,HIGH,WIDE,SLEFT,SHIGH,?TMP1
|
||
|
ASSIGNED? 'P /?CND1
|
||
|
SET 'P,P-BORDER-LOC
|
||
|
?CND1: GET 0,18 >HIGH
|
||
|
GET 0,17 >WIDE
|
||
|
SET 'SLEFT,1
|
||
|
MUL STATUS-LINES,FONT-Y >SHIGH
|
||
|
EQUAL? MACHINE,APPLE-2E,APPLE-2C,APPLE-2GS /?CCL5
|
||
|
PICINF P,YX-TBL /?BOGUS6
|
||
|
?BOGUS6: GET YX-TBL,1 >X
|
||
|
ADD X,SLEFT >SLEFT
|
||
|
EQUAL? P,P-BORDER-LOC /?CND7
|
||
|
GET YX-TBL,0 >SHIGH
|
||
|
?CND7: MUL X,2
|
||
|
SUB WIDE,STACK >WIDE
|
||
|
ICALL WINDEF,S-STATUS,1,SLEFT,SHIGH,WIDE
|
||
|
JUMP ?CND3
|
||
|
?CCL5: EQUAL? P,P-HINT-LOC \?CCL11
|
||
|
PICINF P-HINT-BORDER,YX-TBL \?CND12
|
||
|
GET YX-TBL,0 >BORDER-HEIGHT
|
||
|
?CND12: MUL 3,FONT-Y
|
||
|
ADD BORDER-HEIGHT,STACK >SHIGH
|
||
|
ICALL WINDEF,S-STATUS,1,SLEFT,SHIGH,WIDE
|
||
|
JUMP ?CND3
|
||
|
?CCL11: PICINF P-BORDER,YX-TBL \?CND14
|
||
|
GET YX-TBL,0 >BORDER-HEIGHT
|
||
|
?CND14: ADD 1,SHIGH >?TMP1
|
||
|
SUB HIGH,SHIGH
|
||
|
ICALL WINDEF,S-BORDER,?TMP1,1,STACK,WIDE
|
||
|
ICALL WINDEF,S-STATUS,1,SLEFT,SHIGH,WIDE
|
||
|
ADD SHIGH,BORDER-HEIGHT >SHIGH
|
||
|
?CND3: ADD 1,SHIGH >?TMP1
|
||
|
SUB HIGH,SHIGH
|
||
|
CALL WINDEF,S-TEXT,?TMP1,SLEFT,STACK,WIDE
|
||
|
RSTACK
|
||
|
|
||
|
.ENDSEG
|
||
|
|
||
|
.SEGMENT "0"
|
||
|
|
||
|
|
||
|
.FUNCT INIT-STATUS-LINE:ANY:0:1,NO-STS?,?TMP1
|
||
|
ICALL1 RESET-MARGIN
|
||
|
CLEAR S-TEXT
|
||
|
ZERO? NO-STS? \?CND1
|
||
|
ICALL1 SETUP-TEXT-AND-STATUS
|
||
|
?CND1: SCREEN S-STATUS
|
||
|
DIROUT D-TABLE-ON,DIROUT-TABLE
|
||
|
PRINTC 48
|
||
|
DIROUT D-TABLE-OFF
|
||
|
GET 0,24 >DIGIT-WIDTH
|
||
|
DIROUT D-TABLE-ON,DIROUT-TABLE
|
||
|
PRINTI "Score: "
|
||
|
DIROUT D-TABLE-OFF
|
||
|
GET 0,24 >?TMP1
|
||
|
MUL 4,DIGIT-WIDTH
|
||
|
ADD ?TMP1,STACK
|
||
|
ADD STACK,SCORE-MARGIN >SCORE-START
|
||
|
ICALL1 INVERSE-COLOR
|
||
|
CLEAR S-STATUS
|
||
|
CALL2 UPDATE-STATUS-LINE,TRUE-VALUE
|
||
|
RSTACK
|
||
|
|
||
|
|
||
|
.FUNCT UPDATE-STATUS-LINE:ANY:0:1,REF?,WIDE,TMP,LEFT,?TMP1
|
||
|
GET 0,8
|
||
|
BTST STACK,4 \?CND1
|
||
|
ICALL1 DISPLAY-BORDER
|
||
|
?CND1: GET 0,8
|
||
|
BTST STACK,4 /?CCL4
|
||
|
EQUAL? HERE,SHERE /?CND3
|
||
|
?CCL4: SET 'REF?,TRUE-VALUE
|
||
|
?CND3: ZERO? REF? \?CCL9
|
||
|
EQUAL? SCORE,OSCORE \?CCL9
|
||
|
EQUAL? MOVES,OMOVES /FALSE
|
||
|
?CCL9: SCREEN S-STATUS
|
||
|
ICALL1 INVERSE-COLOR
|
||
|
WINGET S-STATUS,WWIDE
|
||
|
DIV STACK,FONT-X >WIDE
|
||
|
EQUAL? MACHINE,APPLE-2E,APPLE-2C,APPLE-2GS /?CTR14
|
||
|
EQUAL? MACHINE,IBM,AMIGA \?CCL15
|
||
|
?CTR14: SET 'LEFT,3
|
||
|
JUMP ?CND13
|
||
|
?CCL15: SET 'LEFT,1
|
||
|
?CND13: ZERO? REF? /?CND18
|
||
|
CURSET 1,LEFT
|
||
|
ICALL2 XERASE,1
|
||
|
ZERO? SCENE /?CND20
|
||
|
CURSET 1,LEFT
|
||
|
GET SCENE-NAMES,SCENE
|
||
|
PRINT STACK
|
||
|
PRINTC 58
|
||
|
?CND20: EQUAL? MACHINE,DEBUGGING-ZIP,MACINTOSH /?CND22
|
||
|
WINGET S-STATUS,WWIDE
|
||
|
DIV STACK,2 >?TMP1
|
||
|
MUL DIGIT-WIDTH,3
|
||
|
SUB ?TMP1,STACK
|
||
|
CURSET 1,STACK
|
||
|
PRINTI "SHOGUN"
|
||
|
?CND22: GET 0,8
|
||
|
BAND STACK,-5
|
||
|
PUT 0,8,STACK
|
||
|
?CND18: ZERO? REF? \?CCL25
|
||
|
EQUAL? SCENE,S-ERASMUS \?PRD28
|
||
|
EQUAL? HERE,BRIDGE-OF-ERASMUS /?CCL25
|
||
|
?PRD28: EQUAL? SCENE,S-VOYAGE \?CND24
|
||
|
EQUAL? HERE,GALLEY \?CND24
|
||
|
?CCL25: ZERO? REF? /?CND33
|
||
|
ADD 1,FONT-Y
|
||
|
CURSET STACK,LEFT
|
||
|
ICALL2 XERASE,1
|
||
|
?CND33: ZERO? HERE /?CND24
|
||
|
ADD 1,FONT-Y
|
||
|
CURSET STACK,LEFT
|
||
|
SET 'SHERE,HERE
|
||
|
EQUAL? HERE,GALLEY \?CCL39
|
||
|
EQUAL? MACHINE,APPLE-2E,APPLE-2C,APPLE-2GS /?CTR38
|
||
|
EQUAL? MACHINE,AMIGA \?CCL39
|
||
|
?CTR38: PRINTI "Galley"
|
||
|
JUMP ?CND37
|
||
|
?CCL39: PRINTD HERE
|
||
|
?CND37: LOC WINNER >TMP
|
||
|
FSET? TMP,VEHBIT \?CND44
|
||
|
SET 'SHERE,TMP
|
||
|
FSET? TMP,SURFACEBIT \?CCL48
|
||
|
PRINTI ", on "
|
||
|
JUMP ?CND46
|
||
|
?CCL48: PRINTI ", in "
|
||
|
?CND46: ICALL2 THE-PRINT,TMP
|
||
|
?CND44: EQUAL? HERE,BRIDGE-OF-ERASMUS,GALLEY \?CND24
|
||
|
ADD SCORE-START,FONT-X
|
||
|
ICALL2 ERASE-ALL-BUT,STACK
|
||
|
EQUAL? HERE,BRIDGE-OF-ERASMUS \?PRD54
|
||
|
FSET? WHEEL,ONBIT /?CCL52
|
||
|
?PRD54: EQUAL? HERE,GALLEY \?CND24
|
||
|
FSET? GALLEY-WHEEL,ONBIT \?CND24
|
||
|
?CCL52: PRINTI "; course "
|
||
|
ICALL2 TELL-DIRECTION,SHIP-DIRECTION
|
||
|
PRINTI "; wheel "
|
||
|
ICALL2 TELL-DIRECTION,SHIP-COURSE
|
||
|
?CND24: ZERO? REF? \?CCL60
|
||
|
EQUAL? SCORE,OSCORE /?CND59
|
||
|
?CCL60: ZERO? REF? /?CND63
|
||
|
WINGET S-STATUS,WWIDE
|
||
|
SUB STACK,SCORE-START
|
||
|
CURSET 1,STACK
|
||
|
PRINTI "Score:"
|
||
|
ICALL2 XERASE,1
|
||
|
?CND63: MUL SCORE,SCORE-FACTOR >TMP
|
||
|
ICALL RJNUM,TMP,1
|
||
|
SET 'OSCORE,SCORE
|
||
|
?CND59: ZERO? REF? \?CCL66
|
||
|
EQUAL? MOVES,OMOVES /?CND65
|
||
|
?CCL66: ZERO? REF? /?CND69
|
||
|
ADD 1,FONT-Y >?TMP1
|
||
|
WINGET S-STATUS,WWIDE
|
||
|
SUB STACK,SCORE-START
|
||
|
CURSET ?TMP1,STACK
|
||
|
PRINTI "Moves:"
|
||
|
ICALL2 XERASE,1
|
||
|
?CND69: ICALL RJNUM,MOVES,2
|
||
|
SET 'OMOVES,MOVES
|
||
|
?CND65: SCREEN S-TEXT
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT ERASE-ALL-BUT:ANY:1:1,N,?TMP1
|
||
|
WINGET S-STATUS,WWIDE >?TMP1
|
||
|
WINGET S-STATUS,WXPOS
|
||
|
SUB ?TMP1,STACK
|
||
|
SUB STACK,N >N
|
||
|
GRTR? N,1 \FALSE
|
||
|
CALL2 XERASE,N
|
||
|
RSTACK
|
||
|
|
||
|
|
||
|
.FUNCT INTERLUDE-STATUS-LINE:ANY:0:0,LEFT,?TMP1
|
||
|
EQUAL? MACHINE,APPLE-2E,APPLE-2C,APPLE-2GS /?CND1
|
||
|
PICINF P-BORDER2,YX-TBL \?CCL5
|
||
|
ICALL2 DISPLAY-BORDER,P-BORDER2
|
||
|
JUMP ?CND1
|
||
|
?CCL5: PICINF P-BORDER,YX-TBL \?CND1
|
||
|
ICALL2 DISPLAY-BORDER,P-BORDER
|
||
|
?CND1: EQUAL? MACHINE,APPLE-2E,APPLE-2C,APPLE-2GS /?CTR8
|
||
|
EQUAL? MACHINE,IBM,AMIGA \?CCL9
|
||
|
?CTR8: SET 'LEFT,3
|
||
|
JUMP ?CND7
|
||
|
?CCL9: SET 'LEFT,1
|
||
|
?CND7: SET 'SHERE,FALSE-VALUE
|
||
|
SCREEN S-STATUS
|
||
|
ICALL1 INVERSE-COLOR
|
||
|
CURSET 1,LEFT
|
||
|
ADD SCORE-START,FONT-X
|
||
|
ICALL2 ERASE-ALL-BUT,STACK
|
||
|
CURSET 1,LEFT
|
||
|
GET SCENE-NAMES,SCENE
|
||
|
PRINT STACK
|
||
|
PRINTC 58
|
||
|
EQUAL? MACHINE,DEBUGGING-ZIP,MACINTOSH /?CND12
|
||
|
WINGET S-STATUS,WWIDE
|
||
|
DIV STACK,2 >?TMP1
|
||
|
MUL DIGIT-WIDTH,3
|
||
|
SUB ?TMP1,STACK
|
||
|
CURSET 1,STACK
|
||
|
PRINTI "SHOGUN"
|
||
|
?CND12: GET 0,8
|
||
|
BAND STACK,-5
|
||
|
PUT 0,8,STACK
|
||
|
ADD 1,FONT-Y
|
||
|
CURSET STACK,LEFT
|
||
|
ADD SCORE-START,FONT-X
|
||
|
ICALL2 ERASE-ALL-BUT,STACK
|
||
|
ADD 1,FONT-Y
|
||
|
CURSET STACK,LEFT
|
||
|
PRINTI "Interlude"
|
||
|
SCREEN S-TEXT
|
||
|
RTRUE
|
||
|
|
||
|
|
||
|
.FUNCT RJNUM:ANY:2:2,NUM,LINE,WIDE,N
|
||
|
WINGET S-STATUS,WWIDE >WIDE
|
||
|
SUB LINE,1
|
||
|
MUL STACK,FONT-Y
|
||
|
ADD 1,STACK >LINE
|
||
|
SUB WIDE,SCORE-MARGIN >WIDE
|
||
|
LESS? NUM,10 \?CCL3
|
||
|
SET 'N,1
|
||
|
JUMP ?CND1
|
||
|
?CCL3: LESS? NUM,100 \?CCL5
|
||
|
SET 'N,2
|
||
|
JUMP ?CND1
|
||
|
?CCL5: LESS? NUM,1000 \?CCL7
|
||
|
SET 'N,3
|
||
|
JUMP ?CND1
|
||
|
?CCL7: LESS? NUM,10000 \?CND1
|
||
|
SET 'N,4
|
||
|
?CND1: LESS? N,4 \?CND9
|
||
|
MUL DIGIT-WIDTH,4
|
||
|
SUB WIDE,STACK
|
||
|
CURSET LINE,STACK
|
||
|
?CND9: ICALL2 XERASE,1
|
||
|
MUL DIGIT-WIDTH,N
|
||
|
SUB WIDE,STACK
|
||
|
CURSET LINE,STACK
|
||
|
ZERO? N /?CCL13
|
||
|
PRINTN NUM
|
||
|
RTRUE
|
||
|
?CCL13: PRINTI "****"
|
||
|
RTRUE
|
||
|
|
||
|
.ENDSEG
|
||
|
|
||
|
.ENDI
|