.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