home *** CD-ROM | disk | FTP | other *** search
/ FreeWare Collection 3 / FreeSoftwareCollection3pd199x-jp.img / oh_fm / final / final2 / f2main.bas < prev    next >
BASIC Source File  |  1980-01-02  |  28KB  |  394 lines

  1. 20000 '"F2-MAIN" V 1.0
  2. 20010 DEF FNA(I)=(I MOD 4)-(I>3):DEF FNJ(I,W1,W2,W3,W4)=INT((((CCA(I,0)*.3!+TCA(I,0))*W1+(CCA(I,1)*.3!+TCA(I,1))*W2+(CCA(I,2)*.3!+TCA(I,2))*W3)*(110-TWE(I))*TEX(I)*(1.1!+RND*.2!)/10000)*W4*(.7!+.3!*CAU))
  3. 20020 DEF FNC$(I,J)="("+CHR$(130)+CHR$(95+I)+"-"+CHR$(48+J)+")区画":DEF FND$(I)=CHR$(130)+CHR$(79+I):DEF FNB$(I)="第"+FND$(I):FOR NUM=1 TO 14:GOSUB 23030:NEXT:GOTO 22650
  4. 20030 KS=3
  5. 20040 GOSUB 23350
  6. 20050 GOTO 20160
  7. 20060 GOSUB 22910
  8. 20070 ON KS GOTO 20140,20060,20110,20100,20130,20120,20740,21510
  9. 20080 IF TCO(NUM)=0 OR TCO(NUM)=1 THEN 20070
  10. 20090 LINE(308,(NUM*10-2)*AJ)-(635,(NUM*10+8)*AJ),PSET,7,B:GOTO 20060
  11. 20100 GOSUB 20150:NUM=NUM-1:IF NUM>0 THEN 20080 ELSE NUM=17:GOTO 20750
  12. 20110 GOSUB 20150:NUM=NUM+1:IF NUM<15 THEN 20080 ELSE 20750
  13. 20120 CON=CON+1:IF CON=11 THEN CON=1:GOTO 20160 ELSE 20160
  14. 20130 CON=CON-1:IF CON=0 THEN CON=10:GOTO 20160 ELSE 20160
  15. 20140 IF TCO(NUM)=1 OR KS$>"7" THEN 20060 ELSE D9=(KS$="3" OR KS$="5"):ON VAL(KS$) GOSUB 20480,20490,20500,20580,20590,20720,20730:GOSUB 23350:IF D9 THEN 20160 ELSE 20180
  16. 20150 LINE(308,(NUM*10-2)*AJ)-(635,(NUM*10+8)*AJ),PSET,1,B:RETURN
  17. 20160 '
  18. 20170 ON CON GOSUB 20230,20230,20230,20280,20280,20310,20190,20460,20430,20330
  19. 20180 COLOR 7:GOTO 20080
  20. 20190 D1$="重量偏差":GOSUB 22980:LOCATE 45,16:COLOR 4:PRINT"総重量: ";:COLOR 7:PRINT USING"#####t";SN(0):FOR I=1 TO 2:LOCATE 39,16+I:COLOR 4:IF I=1 THEN PRINT"横"; ELSE PRINT"縦";
  21. 20200 PRINT"二分線方向: ";:COLOR 7:J=4+I:IF SN(J)=0 THEN PRINT"偏差なし":GOTO 20220 ELSE IF SN(J)>0 THEN PRINT BNA$(6-I*2); ELSE PRINT BNA$(I*2-1);
  22. 20210 PRINT USING" #####t ";ABS(SN(J))
  23. 20220 NEXT:RETURN
  24. 20230 D1$="艦内状況":GOSUB 22980:LOCATE 39,16:COLOR 4:PRINT CHR$(130)+CHR$(95+CON);:J=0:FOR I=1 TO 6:IF CON(CON,I)>0 THEN J=1
  25. 20240 NEXT:IF J=0 THEN LOCATE 45,17:COLOR 7:PRINT"被害区画 なし":RETURN
  26. 20250 PRINT"   (被害率 / ";:COLOR 5:PRINT"[t] ";:COLOR 4:PRINT"or ";:COLOR 2:PRINT"[゚C]";:COLOR 4:PRINT")":FOR I=1 TO 6
  27. 20260 LOCATE 31+FNA(I)*9,17-(I>3):J=CON(CON,I):IF J>0 THEN COLOR J-(J=1)*4:D0=CON:D1=I:GOSUB 23480:PRINT USING"###/####";D2;CON1(CON,I); ELSE COLOR 7:PRINT" ----- "
  28. 20270 NEXT:LINE(320,178*AJ)-(527,178*AJ),PSET,1:LINE(386,172*AJ)-(386,184*AJ),PSET,1:LINE(458,172*AJ)-(458,184*AJ),PSET,1:RETURN
  29. 20280 IF CON=5 THEN D1$="補助区画" ELSE D1$="注水区画"
  30. 20290 GOSUB 22980:LOCATE 39,17:I=2:GOSUB 20300:LOCATE 55,17:I=3:GOSUB 20300:LOCATE 47,16:I=4:GOSUB 20300:LOCATE 47,18:I=1:GOSUB 20300:GOTO 20320
  31. 20300 COLOR 4:PRINT BNA$(I);":  ";:COLOR 7:IF CON=4 THEN PRINT USING"####t";ZVWT(I):RETURN ELSE PRINT USING"####t";VWTS(I):RETURN
  32. 20310 D1$="重量分布":GOSUB 22980:FOR I=1 TO 4:LOCATE  VAL(MID$("39554747",I*2-1,2)),VAL(MID$("7768",I,1))+10:COLOR 4:PRINT BNA$(VAL(MID$("2341",I,1)));":";:COLOR 7:PRINT USING" #####t";SN(VAL(MID$("3412",I,1))):NEXT
  33. 20320 LINE(312,168*AJ)-(531,168*AJ),PSET,1:LINE(312,178*AJ)-(531,178*AJ),PSET,1:LINE(422,168*AJ)-(422,178*AJ),PSET,1:RETURN
  34. 20330 D1$="射撃状況":GOSUB 22980
  35. 20340 FOR I=1 TO  3:LOCATE 39,15+I:COLOR 4:PRINT FNB$(I);":";:COLOR 7:FOR L=1 TO 2:IF L=1 THEN K=GD(I):IF K=ZGD(I) AND GA(I)=ZGA(I) THEN PRINT STRING$(10,"-");:GOTO 20420 ELSE 20350 ELSE PRINT" / ";:K=ZGD(I)
  36. 20350 IF I=3 THEN 20380
  37. 20360 IF K=3 THEN IF I=1 THEN PRINT"右前";:GOTO 20400 ELSE PRINT"右後";:GOTO 20400
  38. 20370 PRINT BNA$(CNG1(K^2));:GOTO 20400
  39. 20380 IF K=1 THEN PRINT"左前";:GOTO 20400 ELSE IF K=3 THEN PRINT"左後";:GOTO 20400
  40. 20390 PRINT"左舷";
  41. 20400 IF L=1 THEN K=GA(I) ELSE K=ZGA(I)
  42. 20410 IF K=1 THEN PRINT"高角度"; ELSE IF K=2 THEN PRINT"中角度"; ELSE PRINT"準水平";
  43. 20420 NEXT:NEXT:RETURN
  44. 20430 D1$="航行状況":GOSUB 22980:LOCATE 47,16:COLOR 4:PRINT"(変更後 / 変更前)":LOCATE 39,17:COLOR 4:PRINT"回避方向:  ";:COLOR 7:IF TD=ZTD THEN PRINT"----"; ELSE PRINT DNA$(TD);
  45. 20440 PRINT" / ";DNA$(ZTD):LOCATE 39,18:COLOR 4:PRINT"機関出力:  ";:COLOR 7:IF SP=ZSP THEN PRINT"----"; ELSE PRINT ENA$(SP);
  46. 20450 PRINT" / ";ENA$(ZSP):RETURN
  47. 20460 D1$="被害状況":GOSUB 22980:LOCATE 40,16:COLOR 4:PRINT"艦橋被害":FOR I=1 TO 2:D0=I:D1=2:GOSUB 23480:LOCATE 39,16+I:COLOR 4:PRINT FNB$(I);":";:COLOR 7:PRINT USING"###%";D2:NEXT:LOCATE 52,16:COLOR 4:PRINT"機関被害 (限界)"
  48. 20470 FOR I=1 TO 2:D0=3:D1=I*3:GOSUB 23480:LOCATE 51,16+I:COLOR 4:PRINT BNA$(7-D1);":";:COLOR 7:PRINT USING"###% (";D2;:PRINT ENA$(1-(D2<70)-(D2<30));")":NEXT:RETURN
  49. 20480 TCO(NUM)=8:TPO1(NUM)=0:GOSUB 23020:RETURN
  50. 20490 TPO1(NUM)=0:TCO(NUM)=2:GOSUB 23020:RETURN
  51. 20500 D1$="対空戦闘":GOSUB 22980:GOSUB 23370:PRINT"1:第1機銃群   2:第2機銃群   3:第3高角砲群";SPACE$(26);:COLOR 7
  52. 20510 LOCATE 41,16:PRINT TNA$(NUM);"を 対空戦闘配置に":LOCATE 53,17:PRINT"就けます"
  53. 20520 LOCATE 40,18:PRINT"配置部署を 指定してください"
  54. 20530 GOSUB 22910
  55. 20540 LOCATE 40,18:ON KS GOTO 20570,20560
  56. 20550 GOTO 20530
  57. 20560 RETURN
  58. 20570 IF KS$>"3" THEN 20530 ELSE I=VAL(KS$):TPO1(NUM)=1-(I>2):TPO2(NUM)=CNG2(I):TCO(NUM)=3:GOSUB 23020:RETURN
  59. 20580 TPO1(NUM)=0:TCO(NUM)=4:GOSUB 23020:RETURN
  60. 20590 D1$="復旧作業":GOSUB 22980:GOSUB 23370:PRINT"1:A甲板    2:B甲板    3:C甲板";SPACE$(38);:COLOR 7
  61. 20600 LOCATE 41,16:PRINT TNA$(NUM);"を 復旧作業に":LOCATE 51,17:PRINT"動員します"
  62. 20610 LOCATE 40,18:PRINT"復旧区画を 指定してください"
  63. 20620 LOCATE 40,18:GOSUB 22910:ON KS GOTO 20650,20640
  64. 20630 GOTO 20620
  65. 20640 RETURN
  66. 20650 IF KS$>"3" THEN 20620 ELSE J=VAL(KS$):GOSUB 23370:PRINT"1:第1区   2:第2区   3:第3区   4:第4区   5:第5区   6:第6区";SPACE$(7);:COLOR 7
  67. 20660 LOCATE 40,18:GOSUB 22910:ON KS GOTO 20690,20680
  68. 20670 GOTO 20660
  69. 20680 RETURN
  70. 20690 IF KS$>"6" THEN 20660 ELSE I=VAL(KS$)
  71. 20700 IF CON(J,I)=0 THEN PRINT"復旧の 必要は ありません";SPACE$(3):T=2:GOSUB 23590:RETURN
  72. 20710 TPO1(NUM)=J:TPO2(NUM)=I:TCO(NUM)=5:GOSUB 23020:RETURN
  73. 20720 TPO1(NUM)=0:TCO(NUM)=6:GOSUB 23020:RETURN
  74. 20730 TPO1(NUM)=0:TCO(NUM)=7:GOSUB 23020:RETURN
  75. 20740 SWAP CNA$(NUM),CNA$(0):FOR I=0 TO 2:SWAP CCA(NUM,I),CCA(0,I):NEXT:GOSUB 23100:LOCATE 74,18:COLOR 5:PRINT USING"&    &";CNA$(0):COLOR 7:GOTO 20090
  76. 20750 '
  77. 20760 D1$="艦内管制":GOSUB 22980:FOR I=1 TO 2:LOCATE 43,15+I:PRINT ANA$(I,2);"管轄下":NEXT:LOCATE 43,18:PRINT"ウェイト値変更":D2=458:GOTO 20790
  78. 20770 GOSUB 22910:ON KS GOTO 20770,20770,20800,20810,20820,20770,20770,21510
  79. 20780 IF NUM=14 OR NUM=18 THEN GOSUB 23350:NUM=NUM+(NUM=18)*17:KS=4+(NUM=1):GOTO 20160
  80. 20790 KL=NUM-14:GOSUB 22960:GOTO 20770
  81. 20800 GOSUB 22970:NUM=NUM+1:GOTO 20780
  82. 20810 GOSUB 22970:NUM=NUM-1:GOTO 20780
  83. 20820 ON NUM-14 GOTO 20830,21150,21440
  84. 20830 '
  85. 20840 D1$=ANA$(1,2):GOSUB 22980
  86. 20850 LOCATE 43,16:PRINT"発艦管制":LOCATE 43,17:PRINT"対空火器":LOCATE 43,18:PRINT"配備変更":D2=410:D1=3:KL=F1
  87. 20860 GOSUB 22800
  88. 20870 F1=KL:ON KS GOTO 20880,20760
  89. 20880 ON F1 GOTO 21050,20890,21090
  90. 20890 D1$="対空火器":GOSUB 22980
  91. 20900 LOCATE 43,16:PRINT"第1機銃群":LOCATE 43,17:PRINT"第2機銃群":LOCATE 43,18:PRINT"第3高角砲群":D2=442:D1=3:KL=F2
  92. 20910 GOSUB 22800
  93. 20920 F2=KL:ON KS GOTO 20930,20830
  94. 20930 D1$="射撃方位":GOSUB 22980
  95. 20940 IF F2=3 THEN 20970
  96. 20950 LOCATE 45,16:PRINT"右舷":LOCATE 45,17:PRINT"左舷":LOCATE 43,18:PRINT EDIF$(CNG2(F2))
  97. 20960 GOTO 20980
  98. 20970 FOR I=4 TO 6:LOCATE 43,12+I:PRINT SPACE$(-2*(I=5));EDIF$(I):NEXT
  99. 20980 KL=GD(F2):D2=410:D1=3
  100. 20990 GOSUB 22800
  101. 21000 F4=KL:GD(F2)=F4:ON KS GOTO 21010,20890
  102. 21010 D1$="射撃角度":GOSUB 22980
  103. 21020 KL=GA(F2):LOCATE 43,16:PRINT"高角度射撃":LOCATE 43,17:PRINT"中角度射撃":LOCATE 43,18:PRINT"準水平射撃":D2=426:D1=3
  104. 21030 GOSUB 22800
  105. 21040 F5=KL:GA(F2)=F5:ON KS GOTO 20890,20930
  106. 21050 D1$="発艦管制":GOSUB 22980
  107. 21060 LOCATE 43,16:PRINT"逐次発艦":LOCATE 43,17:PRINT"格納待機":D2=410:KL=HCM:D1=2
  108. 21070 GOSUB 22800
  109. 21080 HCM=KL:GOTO 20830
  110. 21090 D1$="配備変更":GOSUB 22980
  111. 21100 FOR D3=1 TO 3:GOSUB 21140:NEXT:KL=4-CAU:D2=442:D1=3
  112. 21110 GOSUB 22800
  113. 21120 CAU=4-KL:COLOR 5:LOCATE 76,16:IF CAU=ZCAU THEN PRINT"----"; ELSE PRINT FNB$(4-CAU);
  114. 21130 COLOR 7:GOTO 20830
  115. 21140 LOCATE 43,D3+15:PRINT FNB$(D3);"警戒配備":RETURN
  116. 21150 '
  117. 21160 D1$=ANA$(2,2):GOSUB 22980
  118. 21170 LOCATE 43,16:PRINT"艦底機関室":LOCATE 43,17:PRINT"主舵取機室":LOCATE 43,18:PRINT"注排水指揮":KL=F7:D2=426:D1=3
  119. 21180 GOSUB 22800
  120. 21190 F7=KL:ON KS GOTO 21200,20760
  121. 21200 ON F7 GOTO 21210,21250,21290
  122. 21210 D1$="機関出力":GOSUB 22980
  123. 21220 FOR I=1 TO 3:LOCATE 43,15+I:PRINT ENA$(I):NEXT:D2=378:KL=SP:D1=3
  124. 21230 GOSUB 22800
  125. 21240 SP=KL:GOTO  21150
  126. 21250 D1$="舵取機室":GOSUB 22980
  127. 21260 FOR I=1 TO 3:LOCATE 43,15+I:PRINT DNA$(4-I);"回避":NEXT:D2=410:KL=4-TD:D1=3
  128. 21270 GOSUB 22800
  129. 21280 TD=4-KL:GOTO 21160
  130. 21290 D1$=" 注排水 ":GOSUB 22980
  131. 21300 D$="注排水区画(":LOCATE 43,16:PRINT D$;"縦)":LOCATE 43,17:PRINT D$;"横)":D2=466:KL=F8:D1=2
  132. 21310 GOSUB 22800
  133. 21320 F8=KL:ON KS GOTO 21330,21150
  134. 21330 F9=F8-1
  135. 21340 IF F9=1 THEN D$="横" ELSE D$="縦"
  136. 21350 D1$=D$+"二分線":GOSUB 22980
  137. 21360 D1$="注排水区画":D2=458:KL=F12:D1=2:LOCATE 43,16:IF F9=1 THEN PRINT"右舷";D1$:LOCATE 43,17:PRINT"左舷";D1$ ELSE PRINT"艦首";D1$:LOCATE 43,17:PRINT"艦尾";D1$
  138. 21370 GOSUB 22800
  139. 21380 F12=KL:ON KS GOTO 21390,21290
  140. 21390 IF F9=1 THEN F13=5-F12^2 ELSE F13=F12+1
  141. 21400 D1$=BNA$(F13)+"区画":GOSUB 22980
  142. 21410 LOCATE 49,16:PRINT"0t":LOCATE 43,17:PRINT"1500t":LOCATE 43,18:PRINT"3000t":D2=426:KL=VWT(F13)/1500+1:D1=3
  143. 21420 GOSUB 22800
  144. 21430 VWT(F13)=(KL-1)*1500:GOTO 21350
  145. 21440 D1$="システム":GOSUB 22980
  146. 21450 LOCATE 43,16:PRINT"ウェイト …  ";FND$(PT)
  147. 21460 D2=410:KL=1:D1=1
  148. 21470 GOSUB 22800
  149. 21480 ON KS GOTO 21490,20760
  150. 21490 PT=PT-1:IF PT=-1 THEN PT=9
  151. 21500 LOCATE 56,16:PRINT FND$(PT):GOTO 21470
  152. 21510 ZNUM=NUM
  153. 21520 BEEP:IF NUM<15 THEN GOSUB 20150
  154. 21530 GOSUB 23570
  155. 21540 FOR NUM=1 TO 14:IF TCO(NUM)=8 THEN TCO(NUM)=1:TPO1(NUM)=0:TPO2(NUM)=TIMK:GOSUB 23030
  156. 21550 NEXT
  157. 21560 FOR NUM=1 TO 14:IF TCO(NUM)=2 THEN D7=2:GOSUB 23550
  158. 21570 NEXT
  159. 21580 IF CAU=ZCAU THEN 21620
  160. 21590 D1$="配備変更":GOSUB 22980
  161. 21600 LOCATE 41,16:PRINT FNB$(4-CAU);"警戒配備に 移行せよ":LOCATE 40,17:GOSUB 23410:IF D2=-1 THEN PRINT"直ちに 移行します" ELSE CAU=ZCAU
  162. 21610 COLOR 5:LOCATE 68,15:PRINT FNB$(4-CAU):LOCATE 76,16:PRINT"----":COLOR 7:T=4:GOSUB 23590:GOSUB 23570
  163. 21620 FOR I=1 TO 14:IF TCO(I)<>5 THEN 21680
  164. 21630 D7=4:NUM=I:GOSUB 23550:L=TPO1(I):M=TPO2(I):J=CON(L,M):IF J THEN D1$="復旧作業":GOSUB 22980:LOCATE 41,16:PRINT FNC$(L,M);"  ";TNA$(I);A$:K=FNJ(I,.6!,.2!,.5!,3.4!-J):N=CON1(L,M) ELSE 21680
  165. 21640 LOCATE 40,17:IF K<1 THEN PRINT D1$;"として 有効な処置は":LOCATE 41,18:PRINT"とれませんでした":GOTO 21670 ELSE PRINT SNA$(J-1);"作業";:P=N-K:CON1(L,M)=-(P>0)*P:IF P<=0 THEN PRINT"を 完了しました":CON(L,M)=0:D0=L:D1=M:D2=0:GOSUB 23610:GOTO 21670
  166. 21650 PRINT"に依り ":D0=N-CON1(L,M):LOCATE 40,18:GOSUB 23380:IF J=1 THEN PRINT"t 排水"; ELSE PRINT"℃ 減温";
  167. 21660 PRINT"しました"
  168. 21670 GOSUB 23540:T=4:GOSUB 23590:GOSUB 23570
  169. 21680 NEXT:FOR NUM=1 TO 14:IF TCO(NUM)=5 THEN IF CON(TPO1(NUM),TPO2(NUM))=0 THEN TCO(NUM)=2:TPO1(NUM)=0:GOSUB 23030
  170. 21690 NEXT
  171. 21700 FOR I=1 TO 4:J=VAL(MID$("1423",I,1)):IF VWT(J)=ZVWT(J) THEN 21780
  172. 21710 D1$="注水区画":GOSUB 22980
  173. 21720 IF VWT(J)<ZVWT(J) THEN K=0 ELSE K=1
  174. 21730 D$(0)="排水":D$(2)="から":D$(1)="注水":D$(3)="に"
  175. 21740 LOCATE 41,16:PRINT BNA$(J);"注排水区画";:IF VWT(J)=0 THEN PRINT"を 排水"; ELSE PRINT D$(K+2):LOCATE 39,17:D0=ABS(VWT(J)-ZVWT(J)):GOSUB 23380:PRINT"t ";D$(K);
  176. 21750 PRINT"せよ":D0=(VWT(J)=0):LOCATE 41+D0,18+D0:GOSUB 23420:IF D2=0 THEN VWT(J)=ZVWT(J):GOTO 21770
  177. 21760 PRINT D$(K);"します":D0=0:D1=J:D2=-(VWT(J)>0):GOSUB 23610
  178. 21770 T=5:GOSUB 23590:GOSUB 23570
  179. 21780 NEXT
  180. 21790 FOR I=1 TO 4:ZVWT(I)=VWT(I):NEXT
  181. 21800 GOSUB 23630
  182. 21810 GOSUB 23800
  183. 21820 IF SP=ZSP THEN 21860
  184. 21830 D1$="出力変更":GOSUB 22980
  185. 21840 D$="両舷"+ENA$(SP):LOCATE 41,16:PRINT D$:LOCATE 40,17:GOSUB 23420:IF D2=0 THEN SP=ZSP ELSE PRINT D$
  186. 21850 T=4:GOSUB 23590:GOSUB 23570
  187. 21860 GOSUB 23700
  188. 21870 IF TD=ZTD THEN 21890 ELSE D1$="回避方向":GOSUB 22980:LOCATE 41,16:PRINT DNA$(TD);"回避を 実施せよ":LOCATE 40,17:GOSUB 23420:IF D2=0 THEN TD=ZTD ELSE PRINT DNA$(TD);"回避を 行います"
  189. 21880 T=4:GOSUB 23590:GOSUB 23570
  190. 21890 IF HCM=ZHCM THEN 21920 ELSE D1$="発艦管制":GOSUB 22980:D$(1)="逐次発艦":D$(2)="格納待機":LOCATE 41,16:PRINT D1$;"を ";D$(HCM);"に":LOCATE 40,17:PRINT"変更せよ":LOCATE 41,18:GOSUB 23410:IF D2=0 THEN HCM=ZHCM ELSE PRINT D$(HCM);"に 変更します"
  191. 21900 LOCATE 5,1:COLOR 5:PRINT CHR$(52-HCM*10)
  192. 21910 T=4:GOSUB 23590:GOSUB 23570
  193. 21920 FOR NUM=1 TO 14:IF TCO(NUM)=7 THEN D7=4:GOSUB 23550
  194. 21930 NEXT
  195. 21940 I=0:K=0:FOR J=1 TO 14:IF TCO(J)=6 THEN D7=4:NUM=J:GOSUB 23550:I=I+FNJ(J,.2!,0,.8!,.08!):K=1
  196. 21950 NEXT:IF K=0 OR SF(0)=0 THEN 21980 ELSE D1$="整備状況":GOSUB 22980:LOCATE 41,16:IF I<1 THEN PRINT"人手不足の為":LOCATE 40,17:PRINT"整備作業は 実行不能です":GOTO 21970 ELSE PRINT"整備作業に依り":IF I>SF(0) THEN I=SF(0)
  197. 21960 LOCATE 39,17:D0=I:GOSUB 23380:PRINT"機の整備を 完了しました":SF(1)=SF(1)+I:SF(0)=SF(0)-I
  198. 21970 GOSUB 23510:T=3:GOSUB 23590:GOSUB 23570
  199. 21980 K=0:D0=1:D1=4:GOSUB 23480:I=(100-D2)*.4!:D1=6:GOSUB 23480:J=(100-D2)*.4!:IF SF(2)=0 THEN 22040 ELSE D1$="航空管制":GOSUB 22980:K=1:T=3
  200. 21990 LOCATE 41,16:PRINT ANA$(1,6);A$:LOCATE 40,17:IF J=0 THEN PRINT"甲板損傷の為 収容不能です":GOTO 22020 ELSE IF SF(2)>J THEN D0=J:D2=0 ELSE D0=SF(2):D2=1
  201. 22000 J=J-D0:SF(2)=SF(2)-D0:SF(0)=SF(0)+D0:PRINT"上空直衛機隊";:IF D2=1 THEN PRINT" 全"; ELSE GOSUB 23380
  202. 22010 PRINT"機":LOCATE  45,18:PRINT"収容完了":GOSUB 23510
  203. 22020 GOSUB 23590
  204. 22030 IF SF(2)>0 THEN D1$="航空管制":GOSUB 22980:K=1:LOCATE 41,16:PRINT"航空管制室";A$:LOCATE 40,17:PRINT"燃料不足に因り":LOCATE 39,18:D0=SF(2):GOSUB 23380:PRINT"機が 海上に墜落しました":SF(2)=0:GOSUB 23510:T=4:GOSUB 23590
  205. 22040 IF HCM=2 OR SF(1)=0 THEN 22070 ELSE D1$="航空管制":GOSUB 22980:K=1:LOCATE 41,16:PRINT ANA$(1,4);A$:LOCATE 40,17:IF I=0 THEN PRINT"甲板損傷の為 発艦不能です":GOTO 22060 ELSE IF I>SF(1) THEN L=SF(1) ELSE L=I
  206. 22050 PRINT"上空直衛機として":LOCATE 40,18:D0=L:GOSUB 23380:PRINT"機を 発艦させます":SF(2)=L:SF(1)=SF(1)-L:GOSUB 23510
  207. 22060 T=4:GOSUB 23590
  208. 22070 IF K=1 THEN GOSUB 23570
  209. 22080 R=0:FOR S=1 TO 3:IF EKI(S)=0 THEN 22480
  210. 22090 D1$="  会敵  ":GOSUB 22980:R=1:LOCATE 41,16:PRINT"対空監視室";A$:LOCATE 40,17:PRINT"敵";EKIF$(EKI(S));:D0=ENU(S):GOSUB 23380:PRINT"機":LOCATE 41,18:PRINT EDIF$(EDI(S));"より 増速接近中":T=2:GOSUB 23590:GOTO 22110
  211. 22100 T=2:GOSUB 23590:D1$="攻撃回避":GOSUB 22980:LOCATE 41,16:PRINT"中央管制室";A$:LOCATE 40,17:PRINT"敵機に依る攻撃を":LOCATE 47,18:PRINT"回避しました":T=2:GOSUB 23590:GOTO 22480
  212. 22110 FOR K=1 TO 3:L=GD(K)-1:GDI(K)=-(K<3)*(2+L*3+(L=2)*(9-K*2))-(K=3)*(L+4):NEXT
  213. 22120 FOR K=1 TO 3:D(K)=0:NEXT:P=0:FOR J=1 TO 14:IF TCO(J)<>3 THEN 22140 ELSE P=1:FOR L=1 TO 3:IF TPO2(J)=CNG2(L) THEN M=L
  214. 22130 NEXT:D(M)=D(M)+FNJ(J,1,3,2,1.15!):IF D(M)>1150 THEN D(M)=1150
  215. 22140 NEXT
  216. 22150 IF P=0 THEN 22220 ELSE D1$="対空射撃":GOSUB 22980:D$="対空射撃を 開始":LOCATE 41,16:PRINT D$;"せよ":T=1:GOSUB 23590:LOCATE 40,17:PRINT"照準設定 完了":LOCATE 41,18:PRINT D$;"します":T=2:GOSUB 23590
  217. 22160 FOR J=1 TO 3:D0=1-(J>2):D1=CNG2(J):GOSUB 23480:D(J)=(1+RND*.2!)*D(J)*(100-D2)/6500:NEXT
  218. 22170 FOR J=1 TO 3:IF GDI(J)=EDI(S) THEN D(J)=D(J)*1.5!
  219. 22180 D(J)=D(J)*2/(ABS(GA(J)-EKI(S))+3):NEXT
  220. 22190 K=ENU(S):FOR J=1 TO 3:ENU(S)=ENU(S)-D(J):NEXT:GOSUB 23000:LOCATE 41,16:PRINT"対空監視室";A$:LOCATE 40,17:PRINT"対空射撃に 依";
  221. 22200 IF ENU(S)=K THEN PRINT"る":LOCATE 41,18:PRINT"撃墜機 なし" ELSE PRINT"り":LOCATE 41,18:PRINT"敵機";:IF ENU(S)<1 THEN PRINT" 全機撃墜":T=1:GOSUB 23590:GOTO 22100 ELSE D0=K-ENU(S):GOSUB 23380:PRINT"機撃墜"
  222. 22210 T=3:GOSUB 23590:GOSUB 23000
  223. 22220 J=SF(2):IF J=0 THEN 22280 ELSE D1$="上空直衛":GOSUB 22980:K=ENU(S):W2=.4!+.1!*RND
  224. 22230 LOCATE 41,16:PRINT"対空指揮室";A$:LOCATE 40,17:PRINT"直衛機に 迎撃命令を 発令":T=3:GOSUB 23590:W1=ABS(J-K)/22+.3!+RND*.1!:W1=-W1*(W1<1)-(W1>=1):IF J>K THEN Q=K*W1:P=Q*W2 ELSE P=J*(W1+(W1>.9!)*.2!):Q=P*(W2+.5!)
  225. 22240 SF(2)=J-P:ENU(S)=K-Q:GOSUB 23000:LOCATE 41,16:PRINT"対空監視室";A$:LOCATE 40,17:PRINT"敵攻撃";:IF Q=0 THEN PRINT"部隊に 被害なし":GOTO 22260 ELSE PRINT"機";:IF ENU(S)>0 THEN D0=Q:GOSUB 23380 ELSE PRINT" 全";
  226. 22250 PRINT"機 撃墜"
  227. 22260 LOCATE 41,18:PRINT"上空直衛機";:IF SF(2)=0 THEN PRINT"隊 全滅" ELSE IF P=0 THEN PRINT"隊に 被害なし" ELSE D0=P:GOSUB 23380:PRINT"機 被害"
  228. 22270 GOSUB 23510:T=3:GOSUB 23590:IF ENU(S)<1 THEN 22100
  229. 22280 D1$="襲撃行動":GOSUB 22980:LOCATE 41,16:PRINT"対空監視室";A$:LOCATE 40,17:PRINT"敵機 攻撃可能圏内に 侵入":LOCATE 41,18:PRINT"襲撃行動中":T=3:GOSUB 23590
  230. 22290 IF SPDM<RND*20+1 THEN U=0:GOTO 22310 ELSE D1$="回避行動":GOSUB 22980:LOCATE 41,16:PRINT"主舵取機室";A$:LOCATE 40,17:PRINT DNA$(TD);:IF TD=2 THEN PRINT"回避を 行い";:U=0 ELSE PRINT"方向へ 回避し";:U=1
  231. 22300 PRINT"ます":T=2:GOSUB 23590
  232. 22310 I=6*ENU(S)*(1+.3!*RND)/(SPDM+90)-(RND>.65!):Q=1:WHILE I>0:Q=0:I=I-1:IF U THEN J=3.4!+SGN((2-TD)*RND+((EDI(S)<3.5!)+.5!)*RND)*(.5!+2*RND) ELSE J=3.5!+SGN(((EDI(S)<3.5!)+.5!)*RND+SGN(RND-.5!)*.2!*RND)*(.5!+2*RND)
  233. 22320 D1=J:ON EKI(S) GOSUB 22410,22430,22460:D1$="被害報告":GOSUB 22980:LOCATE 41,16:PRINT"中央管制室";A$:LOCATE 40,17:PRINT FNC$(D0,D1);"に ";:PRINT"被";:IF EKI(S)=3 THEN PRINT"雷" ELSE PRINT"弾"
  234. 22330 LOCATE 41,18:IF K=2 AND CON(D0,D1)=0 THEN PRINT"火災発生" ELSE PRINT"現在 ";:IF K=1 THEN PRINT"浸水中" ELSE PRINT"炎上中"
  235. 22340 GOSUB 23480:CON(D0,D1)=K:CON1(D0,D1)=(D2+(ENU(S)\7+1)*3+RND*4)*(528-228*K)/10:D2=CNG2(K):GOSUB 23610:IF CON1(D0,D1)<1 THEN CON1(D0,D1)=1 ELSE IF CON1(D0,D1)>5280-2280*K THEN CON1(D0,D1)=5280-2280*K
  236. 22350 T=3:GOSUB 23590:GOSUB 23000:FOR L=1 TO 14:IF TPO1(L)<>D0 OR TPO2(L)<>D1 THEN 22400 ELSE M=1+ENU(S)/2+RND*5:TEX(L)=TEX(L)-M:LOCATE 41,16
  237. 22360 IF TEX(L)<1 THEN PRINT"中央管制室より 報告":LOCATE 40,17:PRINT TNA$(L);"からの 連絡が":LOCATE 52,18:PRINT"途絶えました":TCO(L)=0:TEX(L)=0:CNA$(L)=B$:TNA$(L)="----":TPO1(L)=0:GOTO 22390
  238. 22370 PRINT TNA$(L);A$:LOCATE 40,17:IF CNA$(L)<>B$ AND RND*80>TEX(L) THEN PRINT"指揮官 ";CNA$(L);" 以下":CCA(L,0)=0:CCA(L,1)=0:CCA(L,2)=0:IF CNA$(L)="Godai" AND KYOKO=1 THEN KYOKO=5+L:CNA$(L)=B$ ELSE CNA$(L)=B$ ELSE PRINT"敵機の攻撃に因り"
  239. 22380 N=D0:P=D1:D0=M:LOCATE 40,18:GOSUB 23380:D0=N:D1=P:PRINT"名が 戦死しました"
  240. 22390 NUM=L:GOSUB 23030:T=4:GOSUB 23590:GOSUB 23000
  241. 22400 NEXT:GOTO 22470
  242. 22410 K=2:D0=1:GOSUB 23480:IF D2>80 THEN D0=2:GOTO 22440
  243. 22420 RETURN
  244. 22430 D0=2+SGN(RND-.5!)*RND*.7!:IF D0=1 THEN K=2 ELSE K=RND+1
  245. 22440 IF CON(D0,D1)=1 THEN K=1
  246. 22450 RETURN
  247. 22460 K=1:D0=3-RND*.7!:RETURN
  248. 22470 WEND:IF Q THEN 22100
  249. 22480 NEXT:IF R THEN GOSUB 23570
  250. 22490 GOSUB 23540
  251. 22500 IF KYOKO<5 THEN 22530 ELSE J=KYOKO-5:IF TCO(J)=0 THEN 22530 ELSE I=PT:PT=6:D1$=STRING$(8,"?"):GOSUB 22980:LOCATE 41,16:PRINT M$(1):LOCATE 40,17:PRINT M$(2):LOCATE 41,18:PRINT M$(3):T=9:GOSUB 23590:GOSUB 23000:LOCATE 41,17:PRINT M$(4):T=6:GOSUB 23590
  252. 22510 GOSUB 23000:LOCATE 40,16:PRINT M$(5):LOCATE 41,17:PRINT M$(6):T=9:GOSUB 23590:GOSUB 23000:LOCATE 41,16:PRINT M$(7):LOCATE 40,17:PRINT M$(0);M$(8):LOCATE 41,18:PRINT M$(9):CCA(J,0)=85:CCA(J,1)=25:CCA(J,2)=79:CNA$(J)=M$(0):NUM=J:GOSUB 23100
  253. 22520 GOSUB 23590:GOSUB 23570:PT=I:KYOKO=-1
  254. 22530 FOR NUM=1 TO 14:IF TCO(NUM)=3 THEN D7=6:GOSUB 23550
  255. 22540 NEXT
  256. 22550 IF RND>.9! THEN AD=-(AD=0)
  257. 22560 FOR I=1 TO 3:EKI(I)=0:NEXT:J=0:FOR I=1 TO 6:IF CON(1,I)=2 THEN J=1
  258. 22570 NEXT:IF RND-(J=0 AND (TIM>19 OR TIM<7))*.4!>.88! THEN 22610
  259. 22580 FOR I=1 TO 3:IF RND+(TIM>11 AND TIM<16)*.1!>.77! THEN 22600
  260. 22590 EKI(I)=1+RND*2:W4=RND:EDI(I)=-(W4>.8!)*(1+RND*5)-(W4<=.8!)*(AD*3+1+RND*2):ENU(I)=20+29*RND
  261. 22600 NEXT
  262. 22610 I=0:D8=0:FOR J=1 TO 14:IF TCO(J)=4 THEN D8=1:D7=4:NUM=J:GOSUB 23550:I=I+FNJ(J,0,1,0,1.2!)
  263. 22620 NEXT:FOR J=1 TO 3:IF EKI(J)=0 OR I<20+RND*50 THEN ZEKI(J)=0:GOTO 22640 ELSE K=EKI(J)+SGN(RND-.5!)*RND*2*(I<RND*140):IF K<1 THEN K=1 ELSE IF K>3 THEN K=3
  264. 22630 ZEKI(J)=K:ZENU(J)=ENU(J)*(1+(I<135)*SGN(RND-.5!)*RND*(.08!+(145-I)/230)):IF ZENU(J)<1 THEN ZENU(J)=1
  265. 22640 NEXT
  266. 22650 TIM=TIM+1:IF TIM=24 THEN TIM=0
  267. 22660 TIMK=TIM+8:IF TIMK>23 THEN TIMK=TIMK-24
  268. 22670 COLOR 5:LOCATE 51,15:PRINT USING"##:00(##:00) ";TIM;TIMK;:IF TIM<7 OR TIM>19 THEN PRINT"夜" ELSE IF TIM<12 THEN PRINT"朝" ELSE IF TIM<16 THEN PRINT"昼" ELSE PRINT"夕"
  269. 22680 COLOR 7:FOR NUM=1 TO 14:IF TCO(NUM)=1 AND TPO2(NUM)=TIM THEN TCO(NUM)=2:TWE(NUM)=0:GOSUB 23030
  270. 22690 NEXT
  271. 22700 ZTD=TD:ZSP=SP:ZCAU=CAU:ZHCM=HCM:NUM=ZNUM
  272. 22710 FOR I=1 TO 3:ZGD(I)=GD(I):ZGA(I)=GA(I):NEXT
  273. 22720 L=0:FOR I=1 TO 3:FOR J=1 TO 6:IF CON(I,J) THEN L=L+1:CON1(I,J)=CON1(I,J)*(1.1!+SPDM/100):K=5280-2280*CON(I,J):IF CON1(I,J)>K THEN CON1(I,J)=K
  274. 22730 NEXT:NEXT:IF L>8 THEN I=2:GOTO 23910
  275. 22740 GOSUB 23630:GOSUB 23800:GOSUB 23700:GOSUB 23540:GOSUB 23310:SN(0)=D5:FOR I=1 TO 2:ON I GOSUB 23290,23270:SN(I*2-1)=D0:ON I GOSUB 23300,23280:SN(I*2)=D0:SN(4+I)=SN(I*2-1)-D0:NEXT:IF SN(0)>14999 THEN I=1:GOTO 23910
  276. 22750 LNG1=LNG1+SPDM:LOCATE 76,17:COLOR 5:PRINT USING"####";LNG1:COLOR 7:IF LNG1>LNG2 THEN I=3:GOTO 23910
  277. 22760 FOR I=16 TO  18:LOCATE 1,I:PRINT STRING$(37,32);:NEXT:COLOR 7
  278. 22770 J=0:FOR I=1 TO 3:L=ZEKI(I):IF L=0 THEN 22780 ELSE J=J+1:K=EDI(I):I$=SPACE$((-(K=2)-(K=5))*2):LOCATE 2,15+J:PRINT FNB$(J);"波  ";I$;EDIF$(K);I$;SPACE$(2*L-1-2*(L=3));EKIF$(L);"  ";RIGHT$(STR$(ZENU(I)),2);"機"
  279. 22780 NEXT:LOCATE 14,17:IF D8=0 THEN PRINT"報告なし" ELSE IF J=0 THEN PRINT"敵影なし"
  280. 22790 RANDOMIZE TIME/3:IF NUM<15 THEN 20030 ELSE 20750
  281. 22800 '
  282. 22810 IF KL>D1 THEN KL=D1
  283. 22820 GOTO 22840
  284. 22830 GOSUB 22910:ON KS GOTO 22830,22830,22850,22870,22890,22900
  285. 22840 GOSUB 22960:GOTO 22830
  286. 22850 IF KL<D1 THEN GOSUB 22970:KL=KL+1
  287. 22860 GOTO 22840
  288. 22870 IF KL>1 THEN GOSUB 22970:KL=KL-1
  289. 22880 GOTO 22840
  290. 22890 KS=1:RETURN
  291. 22900 KS=2:RETURN
  292. 22910 '
  293. 22920 KS$=INKEY$:IF KS$="" THEN 22920 ELSE IF KS$>"0" AND KS$<":" THEN KS=1 ELSE KS=(INSTR(CHR$(13)+CHR$(13)+CHR$(31)+CHR$(144)+CHR$(30)+CHR$(226)+CHR$(28)+CHR$(146)+CHR$(29)+CHR$(147),KS$)+1)\2:IF KS>0 THEN KS=KS+1 ELSE 22940
  294. 22930 RETURN
  295. 22940 KS=INSTR(CHR$(18)+CHR$(11),KS$):IF KS>0 THEN KS=KS+6
  296. 22950 RETURN
  297. 22960 LINE(341,(149+KL*10)*AJ)-(D2,(158+KL*10)*AJ),PSET,7,B:RETURN
  298. 22970 LINE(341,(149+KL*10)*AJ)-(D2,(158+KL*10)*AJ),PSET,0,B:RETURN
  299. 22980 '
  300. 22990 COLOR 6:LOCATE 40,15:PRINT D1$:COLOR 7
  301. 23000 '
  302. 23010 FOR IY=16 TO  18:LOCATE 38,IY:PRINT STRING$(29,32);:NEXT:LINE(304,159*AJ)-(537,189*AJ),PSET,0,BF:RETURN
  303. 23020 GOSUB 20150
  304. 23030 GOSUB 23080:GOSUB 23110:GOSUB 23130:GOSUB 23160:GOSUB 23190:GOSUB 23210:GOSUB 23250:COLOR 7:RETURN
  305. 23040 '
  306. 23050 '
  307. 23060 IF TCO(NUM) THEN IF TCO(NUM)<3 THEN COLOR 5 ELSE COLOR 6 ELSE COLOR 5
  308. 23070 RETURN
  309. 23080 GOSUB 23040:LOCATE 39,NUM
  310. 23090 PRINT TNA$(NUM);" ";:RETURN
  311. 23100 GOSUB 23040:LOCATE 44,NUM
  312. 23110 PRINT USING"&    &";CNA$(NUM):RETURN
  313. 23120 GOSUB 23040
  314. 23130 LOCATE 51,NUM:IF TCO(NUM) THEN PRINT USING"##";TEX(NUM);:PRINT"名 "; ELSE PRINT"---- ";
  315. 23140 RETURN
  316. 23150 GOSUB 23040:LOCATE 56,NUM
  317. 23160 IF TCO(NUM) THEN PRINT USING"###% ";TWE(NUM); ELSE PRINT"---- ";
  318. 23170 RETURN
  319. 23180 GOSUB 23040:LOCATE 61,NUM
  320. 23190 PRINT TCO$(TCO(NUM));" ";:RETURN
  321. 23200 GOSUB 23040:LOCATE 76,NUM
  322. 23210 IF TCO(NUM)=1 THEN PRINT USING"_-##_- ";TPO2(NUM);:RETURN
  323. 23220 IF TPO1(NUM)=0 THEN PRINT"---- "; ELSE IF TCO(NUM)=3 THEN PRINT FNB$(TPO2(NUM)-TPO2(NUM)\3);" "; ELSE PRINT CHR$(130)+CHR$(TPO1(NUM)+95);"-";:PRINT USING"# ";TPO2(NUM);
  324. 23230 RETURN
  325. 23240 GOSUB 23040:LOCATE 71,NUM
  326. 23250 IF TCO(NUM) THEN PRINT USING"##/##/##";TCA(NUM,0);TCA(NUM,1);TCA(NUM,2) ELSE PRINT B$;"--"
  327. 23260 RETURN
  328. 23270 D0=0:D2=1:D3=1:GOSUB 23320:D2=4:D3=4:GOSUB 23320:D1=2:GOSUB 23340:RETURN
  329. 23280 D0=0:D2=3:D3=3:GOSUB 23320:D2=6:D3=6:GOSUB 23320:D1=3:GOSUB 23340:RETURN
  330. 23290 D0=0:D2=1:D3=3:GOSUB 23320:D1=4:GOSUB 23340:RETURN
  331. 23300 D0=0:D2=4:D3=6:GOSUB 23320:D1=1:GOSUB 23340:RETURN
  332. 23310 D5=0:FOR D6=2 TO 3:ON D6-1 GOSUB 23290,23300:D1=D6:GOSUB 23340:D5=D5+D0:NEXT:RETURN
  333. 23320 FOR D1=D2  TO  D3:FOR D4=2 TO 3:IF CON(D4,D1)=1 THEN D0=D0+CON1(D4,D1)
  334. 23330 NEXT:NEXT:RETURN
  335. 23340 D0=D0+ZVWT(D1)+VWTS(D1):RETURN
  336. 23350 '
  337. 23360 GOSUB 23370:PRINT"1:仮眠    2:待機    3:対空    4:監視    5:復旧    6:整備    7:伝令";:COLOR 7:RETURN
  338. 23370 LOCATE 1,19:COLOR 5:PRINT"KEY  ";:RETURN
  339. 23380 '数値PRINT (IN:D0<数値  B:D1,D$)
  340. 23390 FOR D1=1 TO  LEN(STR$(D0)):D$=MID$(STR$(D0),D1,1):IF D$=" " THEN PRINT" "; ELSE PRINT FND$(VAL(D$));
  341. 23400 NEXT:RETURN
  342. 23410 D0=1:GOTO 23430
  343. 23420 D0=2
  344. 23430 D1=2:GOSUB 23480
  345. 23440 FOR D0=1 TO 14:IF TCO(D0)=7 THEN D2=D2-FNJ(D0,1,0,0,.35!)
  346. 23450 NEXT
  347. 23460 D2=(RND*100>=D2):IF D2=0 THEN PRINT SPACE$(12);"復唱ありません" ELSE PRINT"了解 ";
  348. 23470 RETURN
  349. 23480 '
  350. 23490 D2=CON(D0,D1):IF D2 THEN D2=CON1(D0,D1)*10/(528-228*D2)
  351. 23500 RETURN
  352. 23510 '
  353. 23520 COLOR 5:FOR D0=0 TO 2:LOCATE  VAL(MID$("351225",D0*2+1,2)),VAL(MID$("220",D0+1,1)):GOSUB 23530:NEXT:COLOR 7:RETURN
  354. 23530 PRINT USING"##";SF(D0):RETURN
  355. 23540 D0=1:D1=4:GOSUB 23480:D2=(100-D2)*.4!:COLOR 5:LOCATE 17,1:PRINT USING"##";D2:D1=6:GOSUB 23480:D2=(100-D2)*.4!:LOCATE 32,1:PRINT USING"##";D2:COLOR 7:RETURN
  356. 23550 TWE(NUM)=TWE(NUM)+D7*(.5!+CAU*.5!):IF TWE(NUM)>100 THEN TWE(NUM)=100
  357. 23560 GOSUB 23150:COLOR 7:RETURN
  358. 23570 '
  359. 23580 D1$=B$+"--":GOSUB 22980:RETURN
  360. 23590 '
  361. 23600 FOR DW1=0 TO  400*PT*T*WA:NEXT:RETURN
  362. 23610 '
  363. 23620 PAINT(X(D0,D1),Y(D0,D1)),D2,4:RETURN
  364. 23630 FOR I=1 TO 2:J=CNG1(I):ON I GOSUB 23300,23270:L=D0:ON I GOSUB 23290,23280:M=D0:IF L=M THEN 23690 ELSE IF L>M THEN P=I:Q=CNG1(I) ELSE P=CNG1(I):Q=I
  365. 23640 R=ABS(L-M):IF VWTS(P)=0 AND VWTS(Q)=1500 THEN 23690 ELSE D1$="補助区画":GOSUB 22980:LOCATE 41,16:PRINT"注排水指揮室より 連絡"
  366. 23650 IF VWTS(P)>0 THEN IF VWTS(P)>=R THEN D0=R:R=0:VWTS(P)=VWTS(P)-D0 ELSE D0=VWTS(P):R=R-D0:VWTS(P)=0 ELSE 23670
  367. 23660 LOCATE 40,17:PRINT BNA$(P);"補助注排水区画から":LOCATE 40,18:GOSUB 23380:PRINT"t排水します":T=3:GOSUB 23590:IF R>0 THEN GOSUB 23000:LOCATE 41,16:PRINT"注排水指揮室より 再連絡" ELSE 23690
  368. 23670 IF R-(1500-VWTS(Q))>0 THEN D0=1500:VWTS(Q)=D0 ELSE VWTS(Q)=VWTS(Q)+R:D0=R
  369. 23680 LOCATE 40,17:PRINT BNA$(Q);"補助注排水区画に":LOCATE 40,18:GOSUB 23380:PRINT"t注水します":T=3:GOSUB 23590:GOSUB 23570
  370. 23690 NEXT:RETURN
  371. 23700 FOR I=1 TO 2:D0=3:D1=3*I:GOSUB 23480:J=1-(D2<70)-(D2<30)
  372. 23710 IF J>SP THEN J=SP
  373. 23720 IF SPD(I)=J THEN 23750
  374. 23730 D1$=" 機関室 ":GOSUB 22980:LOCATE 41,16:PRINT BNA$((3-I)^2);"機関室";A$:LOCATE 40,17:PRINT ENA$(J+(J=1));"出力に 変更します":SPD(I)=J
  375. 23740 T=3:GOSUB 23590:GOSUB 23570
  376. 23750 NEXT
  377. 23760 GOSUB 23310:I=SPDM:SPDM=(SPD(1)+SPD(2)-2)*(30000-D5)/4000-ABS(ANG(1))-ABS(ANG(2))*3:SPDM=-(SPDM>0)*SPDM:IF I=SPDM THEN RETURN
  378. 23770 D1$="艦体速力":GOSUB 22980:LOCATE 41,16:PRINT"中央管制室";A$:LOCATE 40,17:IF SPDM=0 THEN PRINT"艦が 停止しました":GOTO 23790 ELSE PRINT"艦速が";:D0=SPDM:GOSUB 23380:PRINT"ノットに":LOCATE 41,18:IF I<SPDM THEN PRINT"増加"; ELSE PRINT"低下";
  379. 23780 PRINT"しました"
  380. 23790 LOCATE 31,5:COLOR 5:PRINT USING"##";SPDM:COLOR 7:T=3:GOSUB 23590:GOSUB 23570:RETURN
  381. 23800 M=0:FOR L=1 TO 2:ON L GOSUB 23290,23280:I=D0:ON L GOSUB 23300,23270:J=D0:K=(I-J)/(30*INT(10^L)):IF K=ANG(L) THEN 23870 ELSE M=1:D$(1)="横":D$(2)="縦":D1$="傾斜報告":GOSUB 22980:LOCATE 41,16:PRINT"中央管制室";A$:LOCATE 40,17
  382. 23810 IF ANG(L)<>0 AND SGN(K)*SGN(ANG(L))>-1 THEN PRINT D$(L);"傾斜角";:D0=ABS(K-ANG(L)):GOSUB 23380:PRINT"度 ";:IF ABS(K)>ABS(ANG(L)) THEN PRINT"増加":LOCATE 41,18 ELSE PRINT"復元":LOCATE 41,18
  383. 23820 PRINT"現在 ";:IF K=0 THEN PRINT D$(L);"方向の傾斜なし":GOTO 23840 ELSE IF L=1 THEN D1$=DNA$(SGN(K)+2) ELSE D1$=BNA$(2.5!+.5!*SGN(K))
  384. 23830 PRINT D1$;"へ";:D0=ABS(K):GOSUB 23380:PRINT"度 傾斜"
  385. 23840 LOCATE -1+9*L,5:COLOR 5:IF K=0 THEN PRINT"---- ";STRING$(4-L,"-") ELSE PRINT D1$;" ";RIGHT$(STR$(ABS(K))+"゚",4-L)
  386. 23850 COLOR 7
  387. 23860 T=3:GOSUB 23590
  388. 23870 ANG(L)=K:NEXT:IF ABS(ANG(1))>24 OR ABS(ANG(2))>2 THEN I=2:GOTO 23910 ELSE IF M=1 THEN GOSUB 23570
  389. 23880 RETURN
  390. 23890 IF ERR=6 AND ERL=23310 THEN D5=32767:RESUME NEXT
  391. 23900 D1$=" ERROR  ":GOSUB 22980:BEEP:LOCATE 42,17:COLOR=(4,7):PRINT"ERROR";ERR;"in";ERL:LOCATE 42,0:END
  392. 23910 COMMON I,WA,AJ,TIM,LNG1,KYOKO:CHAIN MERGE "F2ED.BAS",30000,,DELETE-23920
  393. 23920 '
  394.