home *** CD-ROM | disk | FTP | other *** search
- 1 rem ***** harbour *****
- 5 dv=peek(186):ifdv<8thendv=8
- 40 sys57812"f.harbour",dv,0:poke780,0:poke781,0:poke782,8:sys65493
- 45 sys57812"toolbox117 c000",dv,0:poke780,0:poke781,0:poke782,192:sys65493
- 50 sys57812"getword 1000",dv,0:poke780,0:poke781,0:poke782,16:sys65493
- 60 clr:dv=peek(186):ifdv<8thendv=8
- 100 rem **** set variables *****
- 105 ad=49152:ag=4096:s=54272:poke53272,19:printchr$(14):printchr$(8)
- 110 a$="":at=0:b$="":bh$="":bd=0:bk=0:bl=0:c$="":cd%=0
- 115 ch=0:cs=0:ct=0:d=0:df$="":dl$="":dr=0:ds=0:el%=0:ev%=0
- 120 f%=0:fl%=250:fu%=0:ft%=250:gl%=0:gt=0:gw=1:hf=0:k=0
- 130 ms$="":nm$="":pc%=0
- 135 q=0:q$=chr$(34):qf=0:rn%=0:se%=0:ra%=0
- 140 sd%=0:sn%=0:p%=0:sz=0:ts%=0:tv%=0:us%=0:vt=250:vt%=0
- 145 v=0:w$="":x=0:y=0:z=0:zs=0:x$=""
- 150 dima$(24),gl$(99),l1%(48),l2%(48),md$(2,20),sd$(5),sp$(5),zl(5)
- 155 dimst%(48),ub%(48),el$(11),hl$(5),fl$(5)
- 160 fl$(1)=".ex":fl$(2)=".fc":fl$(3)=".ag":hl$(1)="[197]xpert":hl$(2)="[211]enior"
- 165 hl$(3)="[202]unior":hl$(4)="[203][195][194]":hl$(5)="[214][195]":fl$(4)=".kcb":fl$(5)=".vc"
- 170 sh$(1)="[217]our have been rewarded as a [203][195][194]."
- 175 sh$(2)="[217]ou have been awarded a [214][195]."
- 800 rem ***** startup *****
- 805 df$="ac.game":dr=dv:gosub5115:ifpr<>3then1005
- 810 open3,dv,3,"l:"+df$:input#3,nm$,x$,a$:ra%=val(a$):close3:gosub5740
- 815 print"":gosub7705:ifqf<>1thenx$="1"
- 820 ifx$="2"thenls%=ra%:gf=1:goto8505
- 1000 rem ***** administration *****
- 1005 print"[147]":bd=1:bk=1:ch=0:gosub5005:gf=0
- 1010 ms$="[156]*** [200][197][193][196][209][213][193][210][212][197][210][211] [207][208][212][201][207][206][211] ***[144]":v=2:gosub5210
- 1015 a$(4)="[193]. [210]egistration.":a$(9)="[198]. [210]eview [194]ridge [208]lot."
- 1020 a$(5)="[194]. [211]tart [206]ew [195]onvoy.":a$(6)="[195]. [195]ontinue [195]onvoy."
- 1025 a$(7)="[196]. [210]eview [200]all [207]f [198]ame.":a$(12)="[216]. [197]xit ([204]oadstar/[194][193][211][201][195])"
- 1030 a$(8)="[197]. [210]eview [200][207][212] [203]eys.":a$(10)="[199]. [210]eview [211]ailing [201]nstructions."
- 1035 a$(11)="[200]. [210]eview [193]ttack [201]nstructions."
- 1040 h=2:tl=4:bl=12:gosub5065:gosub5085:sysad+54,0,39,1,13,8
- 1045 ifnm$<>""thena=2:goto1555
- 1050 gosub5034:ms$="[211]elect [193] to [200], [216], or ^.":gosub5205:gosub6165
- 1055 zs=1:ch$="abcdghe^xf":sysad+48,ch$
- 1060 gosub5034:iff%=10thengosub1205:goto1050
- 1062 iff%=9thengosub5220:onqfgoto1050,5505
- 1065 iff%=8thengosub6105:goto1050
- 1070 iff%=7thenzs=2:gosub6105:zs=1:goto1050
- 1072 iff%=5orf%=6thena=f%-4:gosub6905:goto1050
- 1075 iff%>1andnm$=""thengosub5240:goto1050
- 1080 r=0:onf%goto1505,1085,1090,1095
- 1085 gosub5485:gosub1155:gosub7805:onqfgoto5515,1050
- 1090 gosub1155:gosub7705:onqfgoto5515,1050
- 1095 gosub1155:ms$="[204]oad [199][193][205][197] file? (y/n)":cs=2:q=0:gosub5300:ifqf=2then1115
- 1100 gosub7705:ifqf<>2andts%<>0then1115
- 1105 ifqf=2then1050
- 1110 ms$="[199]ame [201]ncomplete. [193]ny key.":cs=4:q=0:gosub5300:goto1050
- 1115 goto8505
- 1150 rem ***** select rating *****
- 1155 gosub5034:a$(16)="[215]hat is your rating:-"
- 1160 a$(17)="[193]. [197]xperienced [195]onvoy commander."
- 1165 a$(18)="[194]. [197]xperienced [195]apt. [198]irst [195]onvoy."
- 1170 a$(19)="[195]. [202]ust out of [206]aval [193]cademy."
- 1175 h=1:tl=16:bl=19:gosub5065:gosub5085:sysad+48,"abc"
- 1180 ra%=f%:tl=15:gosub5035:return
- 1200 rem ***** bridge screen *****
- 1205 ss=6:ss$="s":gosub5405:print"[147]":poke53280,0
- 1210 sysad+3,0,39,1,1,160,0
- 1215 sysad+3,0,39,20,20,160,0
- 1220 a$(2)=". [199][210][201][196] [205][193][208] [211][212][193][212][213][211]"
- 1225 a$(3)=". ======== ======"
- 1230 a$(4)=". [193][194][195][196][197][198][199][200][201][202]"
- 1235 a$(5)=". 1\\\\\\\\\\"
- 1240 a$(6)=". 2\\\\\\\\\\ [212]ransports ="
- 1245 a$(7)=". 3\\\\\\\\\\ [197]scorts ="
- 1250 a$(8)=". 4\\\\\\\\\\ [195]ourse ="
- 1255 a$(9)=". 5\\\\\\\\\\ [211]peed ="
- 1260 a$(10)=". 6\\\\\\\\\\ [211]low ships ="
- 1265 a$(11)=". 7\\\\\\\\\\ [213]boat kills ="
- 1270 a$(12)=". 8\\\\\\\\\\"
- 1275 a$(13)=". 9\\\\\\\\\\"
- 1280 a$(14)=".10\\\\\\\\\\"
- 1285 ms$="[204]ocation ([211]ector,[199]rid) and [198]uel data.":gosub5208
- 1290 h=1:forv=2to14:ms$=a$(v):gosub5070:next
- 1295 v=18:ms$="[198]8 = [200][209] problem report.":gosub5210
- 1300 v=21:ms$="[212]his area is command and info area.":gosub5210
- 1305 v=22:ms$="[201]nfo = storms, uboats, sinkings, etc.":gosub5210
- 1310 v=23:ms$="[193]ny key returns to menu":cs=4:gosub5300
- 1315 print"[147]":ss=6:ss$="r":gosub5405:return
- 1500 rem ***** registration *****
- 1505 gosub5610:a=1:gosub5031:ms$="[200]ave we met before?(y/n)":cs=1:v=15
- 1510 gosub5305:ifqf=2thena=2:goto1530
- 1515 ms$="[200]ello, and welcome to convoy [200].[209].":v=15:gosub5210
- 1520 ms$="[208]lease register for duty.":v=16:gosub5210
- 1530 ms$="([204]imit = 10 characters)":v=19:gosub5210
- 1535 v=18:gosub5045:ms$="[217]our name please:":h=1:gosub5070:gosub5610
- 1540 h=20:gosub5015:ll=10:gosub5705:tl=15:bl=16:gosub5035
- 1545 nm$=w$:ifnm$=""thengosub6985:goto1535
- 1550 a$(1)="[193] pleasure to meet you "+nm$+"."
- 1555 a$(2)="[215]elcome back "+nm$+"."
- 1560 tl=18:bl=19:gosub5035:ms$=a$(a):v=15:gosub5210
- 1565 goto1050
- 5000 rem ***** colour setup *****
- 5005 poke53280,bd:poke53281,bk:poke646,ch:return
- 5010 rem ***** cursor locate *****
- 5015 poke211,h:poke214,v:sys58732
- 5020 return
- 5025 rem ***** delete line(s) *****
- 5030 tl=13:bl=19:goto5035 :rem * hi score
- 5031 tl=14:bl=24:goto5035 :rem * administration
- 5034 tl=21:bl=24:goto5035 :rem * window4
- 5035 forv=tltobl:gosub5045:next:return
- 5040 v=0:goto5045 :rem * line0
- 5042 v=22:goto5045 :rem * line22
- 5043 v=23:goto5045 :rem * line23
- 5044 v=24:goto5045 :rem * line24
- 5045 poke781,v:sys59903
- 5046 return
- 5060 rem ***** print data/at *****
- 5065 forv=tltobl:ms$=a$(v):gosub5070:next:return
- 5070 sysad+15,h,v,ms$
- 5075 return
- 5080 rem ***** delete data *****
- 5085 forx=tltobl:a$(x)="":next:return
- 5100 rem ***** check disk *****
- 5105 d=1:goto5120 :rem - load
- 5110 d=2:goto5120 :rem - save
- 5115 d=3 :rem - check
- 5120 gosub5258:open15,dr,15,"r:"+df$+"="+df$:input#15,er,a$,a,a:close15
- 5130 gosub5043:ifer=62thenondgoto5145,5145,5170
- 5135 ifer=63thenondgoto5175,5150,5175
- 5140 ifd=3then5180
- 5145 ms$="":gosub5300:onqfgoto5120,5180,5180
- 5150 ms$="":gosub5300:onqfgoto5160,5180,5180
- 5160 gosub5735:onqfgoto5135,5180
- 5165 pr=1:return
- 5170 pr=2:return
- 5175 pr=3:return
- 5180 pr=4:return
- 5200 rem ***** centre print *****
- 5205 v=23:goto5210
- 5206 v=22:goto5210
- 5207 v=24:goto5210
- 5208 v=0
- 5210 gosub5045
- 5211 gosub5370:return
- 5215 ms$="[205]enu? (y/n)":cs=1:q=0:goto5300
- 5220 sz=zs:ms$="[193]re you sure you want to quit?(y/n)":cs=1:q=0:goto5300
- 5222 sz=zs:ms$="[196]ata unavailable. [193]ny key.":cs=4:q=0:goto5300
- 5225 sz=zs:ms$="[193]ny key when ready.":cs=4:q=0:goto5300
- 5230 return
- 5235 ms$="[195]hange disk now. [193]ny key.":cs=4:q=0:goto5300
- 5240 sz=zs:ms$="[198]unction/file not available. [193]ny key.":cs=4:zs=4:q=8:goto5300
- 5250 sz=zs:ms$="[195]ontinue?(y/n)":cs=2:q=0:goto5300
- 5255 sz=zs:ms$="[193]re you [210][197][193][204][204][217] sure?(y/n)":cs=2:q=0:goto5300
- 5258 ms$="[195][193][213][212][201][207][206] - drive activity":q=0:goto5205
- 5260 sz=zs:q=0:ifer=26thenms$="[215]rite protect on! [210]emoved?(y/n)":cs=2:goto5370
- 5280 ifer=62thenms$="[198]ile not found. [206]ew disk?(y/n)":cs=5:goto5370
- 5285 ifer=63thenms$="[198]ile exists. [210]eplace?(y/n)":cs=2:goto5370
- 5290 ifer=74thenms$="[196]rive unready. [195]orrected?(y/n)":cs=2:goto5370
- 5295 ms$="[205]ajor drive/disk error. [193]ny key.":cs=4:qf=3:goto5370
- 5300 gosub5043:zz=v:b$=ms$:goto5306
- 5305 zz=v:b$=ms$:gosub5045
- 5306 ifq=8thengosub5044:gosub6165
- 5307 v=zz:ms$=b$:gosub5365
- 5310 poke198,0:wait198,15:geta$
- 5315 sysad+24,a$
- 5320 gosub5044:ifa$="^"andq=8thengosub6105:goto5306
- 5321 q=0:ifa$="^"thengosub6985:goto5306
- 5323 zs=sz:ifcs=6anda$<>" "thengosub6985:goto5306
- 5325 ifcs=4orcs=6thena$="":v=zz:goto5045
- 5330 ifcs=3thenv=zz:goto5045
- 5335 qf=1:ifa$<>"y"anda$<>"n"thengosub6985:goto5306
- 5350 ifcs=2anda$="n"thenqf=2
- 5355 ifcs=1anda$="y"thenqf=2
- 5360 a$="":v=zz:goto5045
- 5365 ifms$=""then5260
- 5370 sysad+18,v,ms$
- 5375 return
- 5400 rem ***** screen stash *****
- 5405 onssgoto5410,5415,5420,5425,5430,5435,5440
- 5410 sp=160:goto5450 :rem - help/harbour
- 5415 sp=168:goto5450 :rem - hotkeys
- 5420 sp=174:goto5450 :rem - help/bridge
- 5425 sp=16:goto5450 :rem - help load
- 5430 sp=208:goto5450 :rem - temp 1
- 5435 sp=216:goto5450 :rem - temp 2
- 5440 sp=224:goto5450 :rem - temp 3
- 5445 sp=232 :rem - temp 4
- 5450 m=6:ifss$="r"thenm=9
- 5455 sysad+m,sp
- 5465 return
- 5480 rem ***** reset game *****
- 5485 ds%=0:el%=11:ev%=5:fc%=0:fu%=100:gl%=0:sd%=0:se%=100:sp%=0:tv%=50
- 5487 gc%=0:ts%=0:uc%=0
- 5490 us%=0:forx=0to48:l1%(x)=0:l2%(x)=0:st%(x)=0:ub%(x)=0:next:return
- 5500 rem ***** module load *****
- 5503 ifdr=25thenpoke186,dv:q=64:goto5530
- 5505 open2,dr,2:close2:ifst<-120thendr=dr+1:goto5503
- 5510 qf=1:df$="hello connect":gosub5115:ifpr=3then5530
- 5512 dr=dr+1:goto5503
- 5515 x$=""
- 5520 qf=1:df$="bridge":dr=dv:gosub5115:ifpr<>3thenq=64:goto5505
- 5525 dl$=df$:goto5565
- 5530 print"[147]":bd=0:bk=0:ch=1:gosub5005:ifq=64then5546
- 5535 ms$="[197]ntering "+df$:gosub5205:poke646,0
- 5540 print"[144]load"q$df$q$","dv
- 5545 print"run":ifdf$<>"hello connect"then5548
- 5546 poke44,8:poke2048,0:poke53272,23:printchr$(9)
- 5547 ifq=64thenprint"[147]":poke646,1:new
- 5548 print"":poke631,13:poke632,13:poke633,13:poke198,3:end
- 5565 df%=1:df$="ac.game":dr=dv:gosub5115:ifpr=1orpr=4then5595
- 5570 ifpr=3thengosub5740:ifqf>1then5595
- 5575 gosub5258:open3,dv,3,"l:"+df$+",s,w":print#3,nm$:print#3,x$
- 5580 print#3,str$(ra%):close3:df$=dl$:gosub5043:goto5530
- 5595 ms$="[198]ile (ac.game)/disk problem. [193]ny.":cs=4:gosub5300:goto1050
- 5600 rem ***** bload *****
- 5605 df$="h.convoy"+str$(zs):gw=0:goto5635
- 5610 ifgw=1thenreturn
- 5615 df$="getword 1000"
- 5635 gosub5258:sysad+51,df$,dv,4096
- 5640 ifdf$="getword 1000"thengw=1
- 5645 gosub5043:return
- 5700 rem ***** data entry *****
- 5705 ch=0
- 5706 sysag,ch,5,ll :rem - alpha
- 5710 return
- 5715 ch=0
- 5716 sysag+3,ch,7,ll :rem - numeric
- 5720 return
- 5730 rem ***** scratch file *****
- 5735 qf=1:ifq=1thenq=0:goto5740
- 5736 ms$="[193]re you sure you want to delete?(y/n)":cs=2:gosub5300:ifqf=2thenreturn
- 5740 qf=1:gosub5258:open15,dv,15,"s:"+df$:input#15,er,a$,a,a:close15:gosub5043
- 5745 ifer=62orer<20thenreturn
- 5750 qf=3:return
- 6000 rem ***** timer *****
- 6005 x=100:goto6085
- 6010 x=200:goto6085
- 6015 x=300:goto6085
- 6020 x=400:goto6085
- 6025 x=500:goto6085
- 6030 x=1000:goto6085
- 6035 x=1500:goto6085
- 6040 x=2000:goto6085
- 6045 x=2500:goto6085
- 6050 x=3000:goto6085
- 6055 x=3500:goto6085
- 6060 x=4000:goto6085
- 6065 x=4500:goto6085
- 6070 x=5000:goto6085
- 6075 x=7500:goto6085
- 6080 x=10000
- 6085 ti$="000000"
- 6090 ifti<xthen6090
- 6095 return
- 6100 rem ***** help screen s/r *****
- 6105 ss=7:ss$="s":gosub5405:print"[147]":bd=0:bk=1:ch=0:gosub5005
- 6106 ifzs>3thenz=zs-3:goto6118
- 6110 ifzl(zs)=1thenss=zs:ss$="r":gosub5405:goto6120
- 6115 gosub5605:ss=4:ss$="r":gosub5405:zl(zs)=1:ss=zs:ss$="s":gosub5405:goto6120
- 6118 onzgosub6130
- 6120 gosub5225:print"[147]":ss=7:ss$="r":gosub5405:return
- 6130 ms$="[198]unction cannot be used until you":v=10:gosub5210
- 6131 ms$="have registered --- [207][210] ---":v=11:gosub5210
- 6132 ms$="file not available --- [207][210] --- not":v=12:gosub5210
- 6133 ms$="available with this option.":v=13:gosub5210:goto6120
- 6160 rem ***** info line data *****
- 6165 ms$="^ = [200]elp.":goto5207
- 6170 ms$="_ = [193]bort.":goto5207
- 6175 ms$="_ = [193]bort. ^ = [200]elp.":goto5207
- 6180 ms$="[208][201][206]:[210][197][212][213][210][206] = [196]efault. (.) = [197]ntry.":goto5207
- 6185 ms$="[210][197][212][213][210][206] = [193]bort. [208][197][210][201][207][196] (.) = [200]elp.":goto5207
- 6190 ms$="30 = [193]bort. 1 = [200]elp.":v=18:goto5210
- 6900 rem ***** instruction reader *****
- 6905 df$="t.convoy sailing":dh$="[211][193][201][204][201][206][199] [201][206][211][212][210][213][195][212][201][207][206][211]"
- 6906 ifa=2thendf$="t.convoy attack":dh$="[193][212][212][193][195][203] [201][206][211][212][210][213][195][212][201][207][206][211]"
- 6907 dr=dv:gosub5115:ifpr<>3then5240
- 6910 ss=5:ss$="s":gosub5405:print"[147]":bd=1:bk=1:ch=0:gosub5005:gosub6930
- 6915 sysad+27,df$,dv,40960,0,8,dh$
- 6920 forx=1to3:zl(x)=0:next:print"[147]":ss=5:ss$="r":gosub5405:return
- 6925 rem ***** printer check *****
- 6930 qf=1:open4,4,7:close4:poke186,dv:ifst<>-128thenreturn
- 6935 qf=2
- 6940 ms$="[208]rinter [206][207][212] on. [195]orrected?(y/n)":cs=1:gosub5300:ifqf=2then6930
- 6945 return
- 6970 h=1:forv=2to14:ms$=md$(1,v-2):gosub5070:next
- 6980 rem ***** rebuke *****
- 6985 gosub5034:ms$="[217]ou are bad "+nm$+",":v=21:gosub5210
- 6990 ms$="follow instructions.":v=22:gosub5210
- 6991 ms$="[193]ny key continues.":gosub5205
- 6992 a$="":geta$:ifa$=""then6992
- 6995 goto5034
- 7700 rem ***** load game *****
- 7705 qf=1:df$="cg."+nm$+fl$(ra%):dr=dv:gosub5115:ifpr=2then7770
- 7710 ifpr<>3then7775
- 7715 gc%=0:gosub5258:open15,dv,15:open3,dv,3,"l:"+df$+",s,r"
- 7720 input#3,a$,b$,c$,d$,e$,f$,g$,h$,i$,j$,k$,l$,m$,n$:ev%=val(a$):gl%=val(b$)
- 7722 se%=val(c$):sd%=val(d$):sp%=val(e$):us%=val(f$):tv%=val(g$)
- 7725 gc%=val(h$):ds%=val(i$):fu%=val(j$):el%=val(k$):fc%=val(l$):ts%=val(m$)
- 7730 uc%=val(n$):forx=0to48:input#3,a$,b$,c$,d$:l1%(x)=val(a$):l2%(x)=val(b$)
- 7735 st%(x)=val(c$):ub%(x)=val(d$):next
- 7745 input#15,er,a$,a,a:close3:close15:gosub5043:ifer<20orer=63then7760
- 7750 ms$="[204]oad error. [210]etry?(y/n)":cs=2:q=0:gosub5300:onqfgoto7705,7775
- 7760 ifgc%=0thenreturn
- 7765 qf=2:ms$="[199]ame already credited. [193]ny key.":cs=4:q=0:goto5300
- 7770 qf=2:ms$="[206]o such convoy listed. [193]ny key.":cs=4:q=0:goto5300
- 7775 qf=2:ms$="[196]rive/[196]isk error. [193]ny key.":cs=4:q=0:goto5300
- 7800 rem ***** save game *****
- 7805 df$="cg."+nm$+fl$(ra%):dr=dv:gosub5115:a=pr-1:onagoto7815,7870,7860
- 7810 gosub5735:onqfgoto7815,7865,7860
- 7815 qf=1:gosub5258:open15,dv,15:open3,dv,3,"l:"+df$+",s,w"
- 7820 print#3,str$(ev%):print#3,str$(gl%):print#3,str$(se%):print#3,str$(sd%)
- 7825 print#3,str$(sp%):print#3,str$(us%):print#3,str$(tv%):print#3,str$(gc%)
- 7830 print#3,str$(ds%):print#3,str$(fu%):print#3,str$(el%):print#3,str$(fc%)
- 7835 print#3,str$(ts%):print#3,str$(uc%):forx=0to48:print#3,str$(l1%(x))
- 7836 print#3,str$(l2%(x)):print#3,str$(st%(x)):print#3,str$(ub%(x)):next
- 7850 input#15,er,a$,a,a:close3:close15:gosub5043:ifer<20orer=63then7865
- 7855 ms$="[211]ave error. [210]etry?(y/n)":cs=2:gosub5300:onqfgoto7805,7865
- 7860 ms$="[196]rive error. [210]etry?(y/n)":cs=2:gosub5300:ifqf=1then7805
- 7865 return
- 7870 ifgc%=1thengosub5740:goto7815
- 7871 ms$="[195]onvoy already at sea. [196]elete?(y/n)":cs=2:q=0:gosub5300
- 7875 ifqf=1then7810
- 7880 return
- 8200 rem ***** hi-score load *****
- 8205 gosub8435:ifpr<>3then8220
- 8210 qf=1:gosub5258:open15,dv,15:open3,dv,3,"l:"+df$+",s,r"
- 8215 forx=0to9:input#3,hn$(x),hq$(x):next
- 8216 close3:close15:goto5043
- 8220 ifpr=2thengosub8405:goto8255
- 8225 qf=2:return
- 8230 rem ***** hi-score save *****
- 8235 gosub8435
- 8240 onprgoto8250,8245,8250,8270
- 8245 gosub8405:goto8255
- 8250 gosub5258:open15,dv,15,"s:"+df$:close15:gosub5043:ifqf=2then8270
- 8255 qf=1:gosub5258:open15,dv,15:open3,dv,3,"l:"+df$+",s,w"
- 8260 forx=0to9:print#3,hn$(x):print#3,hq$(x):next
- 8265 close3:close15:goto5043
- 8270 ms$="":gosub5300:ifqf=1thendr=dv:gosub5115:goto8240
- 8275 return
- 8300 rem ***** high score check *****
- 8305 gosub5030:cf=0:ifah=3oras=0then8330
- 8310 w=-1:forx=9to0step-1:ifas>val(hq$(x))thenw=x:cf=1
- 8315 next:ifw<0then8330
- 8320 forx=9towstep-1:hq$(x+1)=hq$(x):hn$(x+1)=hn$(x):next
- 8325 hq$(w)=str$(as):hn$(w)=""
- 8330 gosub5030:ms$=hf$+" [195]hampions:-":h=1:v=13:gosub5070
- 8335 forx=4to0step-1:v=18-x
- 8340 h=1:ms$=hn$(4-x):gosub5070:h=12:ms$=hq$(4-x):gosub5070
- 8345 h=20:ms$=hn$(9-x):gosub5070:h=32:ms$=hq$(9-x):gosub5070:next
- 8350 ifah=3oras=0orw<0thenreturn
- 8355 ms$="[195]ongratulations! [197]nter your name!":gosub5205
- 8360 v=14+w:ifv>18thenv=14+(w-5)
- 8365 h=20:ifw<5thenh=1
- 8370 gosub5015:ll=10:gosub5705:ifw$=""then8370
- 8375 hn$(w)=w$:gosub8250:gosub5043:gc%=1:goto7805
- 8400 rem ***** hi-score clear *****
- 8405 forx=0to9:hn$(x)="..........":hq$(x)=" 00000":next:return
- 8430 rem ***** hi-score select records/file check *****
- 8435 ifah=3orts%=0orgc%=1then8440
- 8436 ifuc%>1thenls%=4
- 8437 ifuc%>29thenls%=5
- 8438 z$(1)="1. [212]ry for the "+hl$(ls%)+" [200]onours [204]ist.":goto8445
- 8440 z$(1)="1. [206]/[193]"
- 8445 z$(2)="2. [210]eview "+hl$(ls%)+" [200]onours [204]ist."
- 8450 z$(3)="3. [195]lear "+hl$(ls%)+" [200]onours [204]ist."
- 8455 z$(4)="4. [210]eview other listings.":z$(5)="5. [210]eturn to [200]eadquarters."
- 8460 df$="hs.convoy"+fl$(ls%):dr=dv:gosub5115:return
- 8500 rem ***** hall of fame *****
- 8505 ah=1:gosub8405:gosub8205:ifqf=2then1050
- 8510 ss=6:ss$="s":gosub5405:print"[147]":bd=8:bk=1:ch=0:gosub5005
- 8515 sysad+3,0,39,12,12,170,0
- 8516 sysad+3,0,39,20,20,170,0
- 8520 ms$="[195][207][206][214][207][217] [200][193][204][204] [207][198] [198][193][205][197][144]":v=0:gosub5210
- 8525 ms$="[199]ood day "+nm$+".":v=2:gosub5210:b$=""
- 8526 ifts%=0orgc%=1orah=3then8535
- 8528 gosub8605:v=3:ms$=pd$:gosub5210:v=4:ms$=el$(el%):gosub5210
- 8529 ifhr>3thenms$=sh$(hr-3):v=5:gosub5210
- 8530 ts$=str$(ts%):b$="[217]ou have scored"+ts$+". "
- 8535 ms$=b$+"[196]o you wish to:-":v=6:gosub5210
- 8540 h=6:forv=7to11:gosub5045:ms$=z$(v-6):gosub5070:next
- 8545 ms$="[211]elect 1 to 5.":cs=3:gosub5300:f%=val(a$):iff%<1orf%>5then8545
- 8550 gosub5030:onf%goto8555,8565,8570,8655,8595
- 8556 ifts%=0orgc%=1orah=3thengosub6985:goto8545
- 8560 as=ts%:gosub8305:goto8545
- 8565 as=0:gosub8305:goto8545
- 8570 as=0:gosub8305
- 8575 ms$="[195]lear list and disk file? (y/n)":cs=2:gosub5300
- 8580 ifqf=2then8545
- 8585 gosub5255:ifqf=2then8545
- 8590 gosub5030:gosub8405:gosub8250:goto8545
- 8595 ifgf=1then1005
- 8596 print"[147]":ss=6:ss$="r":gosub5405:goto1050
- 8600 rem ***** set admiralty judgement *****
- 8605 el$(1)="[193]dmiral of the [198]leet.":el$(2)="[193]dmiral.":el$(3)="[214]ice [193]dmiral."
- 8610 el$(4)="[210]ear [193]dmiral.":el$(5)="[195]ommodore.":el$(6)="[193]cting [195]ommodore."
- 8615 el$(7)="[195]aptain.":el$(8)="[204]ieutenant.":el$(9)="[208]etty [207]fficer"
- 8620 el$(10)="[211]wabby (ordinary seaman).":el$(11)="land based latrine duty."
- 8625 pd$="[217]ou have been promoted to":ifel%=6thenpd$="[217]ou retain your rank as"
- 8630 ifel%>6thenpd$="[217]ou have been demoted to"
- 8635 return
- 8650 rem ***** select listing *****
- 8655 gosub5034:gosub5030:h=1:ms$="[211]elect listing to check:-":v=14:gosub5070
- 8660 ms$="1. [197]xperienced [195]onvoy commander.":v=15:gosub5070
- 8665 ms$="2. [197]xperienced [195]apt. [198]irst [195]onvoy.":v=16:gosub5070
- 8670 ms$="3. [202]ust out of [206]aval [193]cademy.":v=17:gosub5070
- 8675 ms$="4. [203]night [207]rder of the [194]ath.":v=18:gosub5070
- 8680 ms$="5. [214]ictoria [195]ross.":v=19:gosub5070
- 8685 a$="":geta$:ifval(a$)<1orval(a$)>5then8675
- 8690 ls%=val(a$):ah=3:gosub8205:gosub5030:b$="":goto8535
- 10000 dv=peek(186):open15,dv,15,"s:harbour":close15
- 10005 save"harbour",dv:end
- 20000 a%=rnd(0)*12+1:printa%
-