home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 1 / FREEWARE.BIN / basic / isoge / maped.bas < prev    next >
BASIC Source File  |  1989-10-17  |  16KB  |  447 lines

  1. 1000 '********************************************************************
  2. 1010 '*                                                                  *
  3. 1020 '*      “ISOGE”用  MAP  EDITOR                      *
  4. 1030 '*                                                                  *
  5. 1040 '*                             Programed by 鶴田ピンチ              *
  6. 1050 '*                                                                  *
  7. 1060 '********************************************************************
  8. 1070 '
  9. 1080 '********** 初期設定1
  10. 1090 DIM M(20,5,5),STD(20),GOD(20),STX(20),STY(20),GOX(20),GOY(20),P(4,5)
  11. 1100 DIM PL1%(255),PL2%(255),PL3%(255),PL4%(255),PL5%(255),PL6%(255),PL7%(255),PL8%(255),PL9%(255),PL10%(255),PL11%(255),PL12%(255),PL13%(255),PL14%(255),PL15%(255),PL16%(255),PL17%(255)
  12. 1110 DIM BPL%(255),DUMMY%(256):MEN=0
  13. 1115 ON ERROR GOTO *エラー
  14. 1120 D=1
  15. 1130 FOR D1=0 TO 4
  16. 1140      FOR D2=0 TO 3
  17. 1150          P(D2,D1)=D
  18. 1160          IF D=18 THEN P(D2,D1)=0
  19. 1170          D=D+1
  20. 1180      NEXT
  21. 1190 NEXT
  22. 1200 '******************** 画面表示
  23. 1210 SCREEN @1
  24. 1220 CLS
  25. 1230 '****************************** マップ領域
  26. 1240 LINE(0,0)-(119,119),PSET,2,B
  27. 1250 LINE(17,17)-(102,102),PSET,7,B
  28. 1260 FOR X=34 TO 34+16*4 STEP 17
  29. 1270    LINE(X,17)-(X,102),PSET,7
  30. 1280 NEXT
  31. 1290 FOR Y=34 TO 34+16*4 STEP 17
  32. 1300    LINE(17,Y)-(102,Y),PSET,7
  33. 1310 NEXT
  34. 1320 '****************************** パターン領域
  35. 1330 LINE(200,0)-(265,81),PSET,7,B
  36. 1340 '****************************** スタート用クリック部
  37. 1350 LINE(200,100)-(217,117),PSET,1,BF
  38. 1360 SYMBOL(201,102),"ST",1,1,7
  39. 1370 '****************************** ゴール用クリック部
  40. 1380 LINE(200,120)-(217,137),PSET,4,BF
  41. 1390 SYMBOL(201,122),"GO",1,1,7
  42. 1400 '****************************** 面セレクト用クリック部
  43. 1410 LINE(200,150)-(251,167),PSET,7,B
  44. 1420 LINE(217,150)-(217,167),PSET,7
  45. 1430 LINE(234,150)-(234,167),PSET,7
  46. 1440 SYMBOL(201,152),"-",1,1,7
  47. 1450 SYMBOL(235,152),"+",1,1,7
  48. 1460 SYMBOL(218,152),"1 ",1,1,7
  49. 1470 '****************************** セーブ部
  50. 1480 LINE(230,100)-(247,117),PSET,2,BF
  51. 1490 SYMBOL(231,102),"SA",1,1,7
  52. 1500 '****************************** ロード部
  53. 1510 LINE(230,120)-(247,137),PSET,5,BF
  54. 1520 SYMBOL(231,122),"LO",1,1,7
  55. 1530 '****************************** マウスパターン表示部
  56. 1540 LINE(150,0)-(167,17),PSET,7,B
  57. 1550 '****************************** 終了部
  58. 1560 LINE(280,0)-(305,17),PSET,3,BF
  59. 1570 SYMBOL(281,2),"END",1,1,0
  60. 1580 '
  61. 1590 '
  62. 1600 '
  63. 1610 '
  64. 1620 '
  65. 1630 '******************** パターンリード
  66. 1640 LOCATE 0,22:PRINT "パターンリード中";
  67. 1650 OPEN "I",#1,"PLATE11.PTN"
  68. 1660 FOR D=0 TO 255
  69. 1670     INPUT #1,PL1%(D),PL2%(D),PL3%(D),PL4%(D)
  70. 1680     IF PL1%(D)=-32768 THEN PL1%(D)=0
  71. 1690     IF PL2%(D)=-32768 THEN PL2%(D)=0
  72. 1700     IF PL3%(D)=-32768 THEN PL3%(D)=0
  73. 1710     IF PL4%(D)=-32768 THEN PL4%(D)=0
  74. 1720 NEXT
  75. 1730 CLOSE
  76. 1740 PRINT "・";
  77. 1750 OPEN "I",#1,"PLATE22.PTN"
  78. 1760 FOR D=0 TO 255
  79. 1770     INPUT #1,PL5%(D),PL6%(D),PL7%(D),PL8%(D)
  80. 1780     IF PL5%(D)=-32768 THEN PL5%(D)=0
  81. 1790     IF PL6%(D)=-32768 THEN PL6%(D)=0
  82. 1800     IF PL7%(D)=-32768 THEN PL7%(D)=0
  83. 1810     IF PL8%(D)=-32768 THEN PL8%(D)=0
  84. 1820 NEXT
  85. 1830 CLOSE
  86. 1840 PRINT "・";
  87. 1850 OPEN "I",#1,"PLATE33.PTN"
  88. 1860 FOR D=0 TO 255
  89. 1870     INPUT #1,PL9%(D),PL10%(D),PL11%(D),PL12%(D)
  90. 1880     IF PL9%(D)=-32768 THEN PL9%(D)=0
  91. 1890     IF PL10%(D)=-32768 THEN PL10%(D)=0
  92. 1900     IF PL11%(D)=-32768 THEN PL11%(D)=0
  93. 1910     IF PL12%(D)=-32768 THEN PL12%(D)=0
  94. 1920 NEXT
  95. 1930 CLOSE
  96. 1940 PRINT "・";
  97. 1950 OPEN "I",#1,"PLATE44.PTN"
  98. 1960 FOR D=0 TO 255
  99. 1970     INPUT #1,PL13%(D),PL14%(D),PL15%(D),PL16%(D)
  100. 1980     IF PL13%(D)=-32768 THEN PL13%(D)=0
  101. 1990     IF PL14%(D)=-32768 THEN PL14%(D)=0'
  102. 2000     IF PL15%(D)=-32768 THEN PL15%(D)=0
  103. 2010     IF PL16%(D)=-32768 THEN PL16%(D)=0
  104. 2020 NEXT
  105. 2030 CLOSE
  106. 2040 PRINT "・"
  107. 2050 OPEN "I",#1,"PLATE55.PTN"
  108. 2060 FOR D=0 TO 255
  109. 2070     INPUT #1,PL17%(D),BPL%(D),DUMMY%(D),DUMMY%(D)
  110. 2080     IF PL17%(D)=-32768 THEN PL17%(D)=0
  111. 2090 NEXT
  112. 2100 CLOSE
  113. 2110 LOCATE 0,22:PRINT"                                         "
  114. 2120 '
  115. 2130 '
  116. 2140 '
  117. 2150 '
  118. 2160 '
  119. 2170 '
  120. 2180 '******************** プレート表示
  121. 2190 PUT@ A(201,1)-(216,16),PL1%
  122. 2200 PUT@ A(217,1)-(232,16),PL2%
  123. 2210 PUT@ A(233,1)-(248,16),PL3%
  124. 2220 PUT@ A(249,1)-(264,16),PL4%
  125. 2230 PUT@ A(201,17)-(216,32),PL5%
  126. 2240 PUT@ A(217,17)-(232,32),PL6%
  127. 2250 PUT@ A(233,17)-(248,32),PL7%
  128. 2260 PUT@ A(249,17)-(264,32),PL8%
  129. 2270 PUT@ A(201,33)-(216,48),PL9%
  130. 2280 PUT@ A(217,33)-(232,48),PL10%
  131. 2290 PUT@ A(233,33)-(248,48),PL11%
  132. 2300 PUT@ A(249,33)-(264,48),PL12%
  133. 2310 PUT@ A(201,49)-(216,64),PL13%
  134. 2320 PUT@ A(217,49)-(232,64),PL14%
  135. 2330 PUT@ A(233,49)-(248,64),PL15%
  136. 2340 PUT@ A(249,49)-(264,64),PL16%
  137. 2350 PUT@ A(201,65)-(216,80),PL17%
  138. 2360 PUT@ A(217,65)-(232,80),BPL%
  139. 2370 '
  140. 2380 '******************** マウス設定
  141. 2390 MOUSE 0
  142. 2400 ON MOUSE (4) GOSUB *右クリック
  143. 2410 ON MOUSE (2) GOSUB *左クリック
  144. 2420 MOUSE (4) ON
  145. 2430 MOUSE (2) ON
  146. 2440 MOUSE 1,0,0,1
  147. 2450 '
  148. 2460 '
  149. 2470 '
  150. 2480 *メイン
  151. 2490   GOTO *メイン
  152. 2500 '
  153. 2510 '
  154. 2520 *右クリック
  155. 2530   MOUSEX=MOUSE (0)
  156. 2540   MOUSEY=MOUSE (1)
  157. 2550   IF ((MOUSEX>230 AND MOUSEY>100) AND (MOUSEX<247 AND MOUSEY<117)) THEN GOSUB *変換
  158. 2560   RETURN
  159. 2570 '
  160. 2580 *左クリック
  161. 2590   MOUSEX=MOUSE (0)
  162. 2600   MOUSEY=MOUSE (1)
  163. 2610   IF ((MOUSEX>17 AND MOUSEY>17) AND (MOUSEX<102 AND MOUSEY<102)) THEN GOSUB *マップ:GOTO *ダミー
  164. 2620   IF (((MOUSEX>0 AND MOUSEY>0) AND (MOUSEX<119 AND MOUSEY<119)) XOR ((MOUSEX>17 AND MOUSEY>17) AND (MOUSEX<102 AND MOUSEY<102))) THEN GOSUB *マップ2:GOTO *ダミー
  165. 2630   IF ((MOUSEX>200 AND MOUSEY>0) AND (MOUSEX<265 AND MOUSEY<81)) THEN GOSUB *パターン:GOTO *ダミー
  166. 2640   IF ((MOUSEX>200 AND MOUSEY>100) AND (MOUSEX<217 AND MOUSEY<117)) THEN GOSUB *スタート:RETURN
  167. 2650   IF ((MOUSEX>200 AND MOUSEY>120) AND (MOUSEX<217 AND MOUSEY<137)) THEN GOSUB *ゴール:RETURN
  168. 2660   IF ((MOUSEX>200 AND MOUSEY>150) AND (MOUSEX<217 AND MOUSEY<167)) THEN GOSUB *マイナス:GOTO *ダミー
  169. 2670   IF ((MOUSEX>234 AND MOUSEY>150) AND (MOUSEX<251 AND MOUSEY<167)) THEN GOSUB *プラス:GOTO *ダミー
  170. 2680   IF ((MOUSEX>230 AND MOUSEY>100) AND (MOUSEX<247 AND MOUSEY<117)) THEN GOSUB *セーブ:GOTO *ダミー
  171. 2690   IF ((MOUSEX>230 AND MOUSEY>120) AND (MOUSEX<247 AND MOUSEY<137)) THEN GOSUB *ロード:GOTO *ダミー
  172. 2695   IF ((MOUSEX>280 AND MOUSEY>0) AND (MOUSEX<305 AND MOUSEY<17)) THEN GOSUB *終了:GOTO *ダミー
  173. 2700 *ダミー
  174. 2710   SYMBOL(201,102),"ST",1,1,7
  175. 2720   SYMBOL(201,122),"GO",1,1,7
  176. 2730   RETURN
  177. 2740 '
  178. 2750 '
  179. 2760 '
  180. 2770 '
  181. 2780 '
  182. 2790 *マップ
  183. 2800   MOX=(MOUSEX-17) \ 17
  184. 2810   MOY=(MOUSEY-17) \ 17
  185. 2820   M(MEN,MOX,MOY)=MOUSED
  186. 2830   MOXX=MOX*17+17:MOYY=MOY*17+17
  187. 2840   IF MOUSED=0 THEN *B
  188. 2850   ON MOUSED GOTO *P1,*P2,*P3,*P4,*P5,*P6,*P7,*P8,*P9,*P10,*P11,*P12,*P13,*P14,*P15,*P16,*P17
  189. 2860 *B: PUT@ A(MOXX+1,MOYY+1)-(MOXX+15+1,MOYY+15+1),BPL%:GOTO *ダミー2
  190. 2870 *P1: PUT@ A(MOXX+1,MOYY+1)-(MOXX+15+1,MOYY+15+1),PL1%:GOTO *ダミー2
  191. 2880 *P2: PUT@ A(MOXX+1,MOYY+1)-(MOXX+15+1,MOYY+15+1),PL2%:GOTO *ダミー2
  192. 2890 *P3: PUT@ A(MOXX+1,MOYY+1)-(MOXX+15+1,MOYY+15+1),PL3%:GOTO *ダミー2
  193. 2900 *P4: PUT@ A(MOXX+1,MOYY+1)-(MOXX+15+1,MOYY+15+1),PL4%:GOTO *ダミー2
  194. 2910 *P5: PUT@ A(MOXX+1,MOYY+1)-(MOXX+15+1,MOYY+15+1),PL5%:GOTO *ダミー2
  195. 2920 *P6: PUT@ A(MOXX+1,MOYY+1)-(MOXX+15+1,MOYY+15+1),PL6%:GOTO *ダミー2
  196. 2930 *P7: PUT@ A(MOXX+1,MOYY+1)-(MOXX+15+1,MOYY+15+1),PL7%:GOTO *ダミー2
  197. 2940 *P8: PUT@ A(MOXX+1,MOYY+1)-(MOXX+15+1,MOYY+15+1),PL8%:GOTO *ダミー2
  198. 2950 *P9: PUT@ A(MOXX+1,MOYY+1)-(MOXX+15+1,MOYY+15+1),PL9%:GOTO *ダミー2
  199. 2960 *P10: PUT@ A(MOXX+1,MOYY+1)-(MOXX+15+1,MOYY+15+1),PL10%:GOTO *ダミー2
  200. 2970 *P11: PUT@ A(MOXX+1,MOYY+1)-(MOXX+15+1,MOYY+15+1),PL11%:GOTO *ダミー2
  201. 2980 *P12: PUT@ A(MOXX+1,MOYY+1)-(MOXX+15+1,MOYY+15+1),PL12%:GOTO *ダミー2
  202. 2990 *P13: PUT@ A(MOXX+1,MOYY+1)-(MOXX+15+1,MOYY+15+1),PL13%:GOTO *ダミー2
  203. 3000 *P14: PUT@ A(MOXX+1,MOYY+1)-(MOXX+15+1,MOYY+15+1),PL14%:GOTO *ダミー2
  204. 3010 *P15: PUT@ A(MOXX+1,MOYY+1)-(MOXX+15+1,MOYY+15+1),PL15%:GOTO *ダミー2
  205. 3020 *P16: PUT@ A(MOXX+1,MOYY+1)-(MOXX+15+1,MOYY+15+1),PL16%:GOTO *ダミー2
  206. 3030 *P17: PUT@ A(MOXX+1,MOYY+1)-(MOXX+15+1,MOYY+15+1),PL17%:GOTO *ダミー2
  207. 3040 *ダミー2
  208. 3050   STST=0:GOST=0
  209. 3060   RETURN
  210. 3070 '
  211. 3080 *マップ2
  212. 3090   IF STST=0 AND GOST=0 THEN RETURN
  213. 3100   MOX=(MOUSEX \ 17)-1
  214. 3110   MOY=(MOUSEY \ 17)-1
  215. 3120   IF (MOX=-1 AND MOY=-1) OR (MOX=-1 AND MOY=5) OR (MOX=5 AND MOY=-1) OR (MOX=5 AND MOY=5) THEN RETURN
  216. 3130   MOXX=(MOX+1)*17:MOYY=(MOY+1)*17
  217. 3140   IF STST=1 THEN IF MOUSED=1 THEN STD(MEN)=MOUSED:ELSE GOTO *ダミー3:ELSE GOTO *次1
  218. 3150   IF MOY<>-1 THEN RETURN
  219. 3160   IF (MOX=GOX(MEN)) AND (MOY=GOY(MEN)) THEN GOSUB *メッセージ1:RETURN
  220. 3170   STX(MEN)=MOX
  221. 3180   STY(MEN)=-1
  222. 3190   'PRINT STX(MEN);STY(MEN)
  223. 3200   ON STD(MEN) GOSUB *P1
  224. 3210   IF (SCMOXX=MOXX) AND (SCMOYY=MOYY) THEN *ダミー3:ELSE LINE(SCMOXX+1,SCMOYY+1)-(SCMOXX+15+1,SCMOYY+15+1),PSET,0,BF
  225. 3220   SCMOXX=MOXX:SCMOYY=MOYY
  226. 3230   GOTO *ダミー3
  227. 3240 *次1
  228. 3250   IF GOST=1 THEN IF (MOUSED=1 OR MOUSED=2) THEN GOD(MEN)=MOUSED:ELSE GOTO *ダミー3:ELSE GOTO *ダミー3
  229. 3260   IF (MOX=STX(MEN)) AND (MOY=STY(MEN)) THEN GOSUB *メッセージ1:RETURN
  230. 3270   GOX(MEN)=MOX
  231. 3280   GOY(MEN)=MOY
  232. 3290   'PRINT GOX(MEN);GOY(MEN)
  233. 3300   ON GOD(MEN) GOSUB *P1,*P2
  234. 3310   IF (GCMOXX=MOXX) AND (GCMOYY=MOYY) THEN *ダミー3:ELSE LINE(GCMOXX+1,GCMOYY+1)-(GCMOXX+15+1,GCMOYY+15+1),PSET,0,BF
  235. 3320   GCMOXX=MOXX:GCMOYY=MOYY
  236. 3330 *ダミー3: RETURN
  237. 3340 '
  238. 3350 *パターン
  239. 3360   IF MOUSEX=201 THEN MOUSEX=202
  240. 3370   IF MOUSEX=201 THEN MOUSEX=202
  241. 3380   MOX=(MOUSEX-201) \ 16
  242. 3390   MOY=MOUSEY \ 16
  243. 3400   IF (MOX=2 AND MOY=4) OR (MOX=3 AND MOY=4) THEN RETURN
  244. 3410   MOUSED=P(MOX,MOY)
  245. 3412   MOXX=150:MOYY=0
  246. 3416   IF MOUSED=0 THEN GOSUB *B
  247. 3418   ON MOUSED GOSUB *P1,*P2,*P3,*P4,*P5,*P6,*P7,*P8,*P9,*P10,*P11,*P12,*P13,*P14,*P15,*P16,*P17
  248. 3420   RETURN
  249. 3430 '
  250. 3440 *スタート
  251. 3450   IF GOST=1 THEN GOST=0:SYMBOL(201,122),"GO",1,1,7
  252. 3460   STST=1
  253. 3470   SYMBOL(201,102),"ST",1,1,2
  254. 3480   RETURN
  255. 3490 '
  256. 3500 '
  257. 3510 '
  258. 3520 '
  259. 3530 '
  260. 3540 *ゴール
  261. 3550   IF STST=1 THEN STST=0:SYMBOL(201,102),"ST",1,1,7
  262. 3560   GOST=1
  263. 3570   SYMBOL(201,122),"GO",1,1,2
  264. 3580   RETURN
  265. 3590 '
  266. 3600 '
  267. 3610 '
  268. 3620 '
  269. 3630 '
  270. 3640 *マイナス
  271. 3650   IF MEN=<0 THEN MEN=0:RETURN
  272. 3660   MEN=MEN-1
  273. 3670   PR$=STR$(MEN+1)
  274. 3680   LINE(218,151)-(233,166),PSET,0,BF
  275. 3690   SYMBOL(210,152),PR$,1,1,7
  276. 3700   GOSUB *リプレース
  277. 3710   RETURN
  278. 3720 '
  279. 3730 *プラス
  280. 3740   IF MEN=>19 THEN MEN=19:RETURN
  281. 3750   MEN=MEN+1
  282. 3760   PR$=STR$(MEN+1)
  283. 3770   LINE(218,151)-(233,166),PSET,0,BF
  284. 3780   SYMBOL(210,152),PR$,1,1,7
  285. 3790   GOSUB *リプレース
  286. 3800   RETURN
  287. 3810 '
  288. 3820 *リプレース
  289. 3830   FOR X=0 TO 4
  290. 3840       FOR Y=0 TO 4
  291. 3850           MOXX=X*17+17:MOYY=Y*17+17
  292. 3860           IF M(MEN,X,Y)=0 THEN GOSUB *B:GOTO *ダミー4
  293. 3870           ON M(MEN,X,Y) GOSUB *P1,*P2,*P3,*P4,*P5,*P6,*P7,*P8,*P9,*P10,*P11,*P12,*P13,*P14,*P15,*P16,*P17
  294. 3880 *ダミー4
  295. 3890       NEXT
  296. 3900   NEXT
  297. 3910   LINE(SCMOXX+1,SCMOYY+1)-(SCMOXX+15+1,SCMOYY+15+1),PSET,0,BF
  298. 3920   LINE(GCMOXX+1,GCMOYY+1)-(GCMOXX+15+1,GCMOYY+15+1),PSET,0,BF
  299. 3930   IF STD(MEN)<>1 THEN *飛ばし1
  300. 3940   MOXX=(STX(MEN)+1)*17
  301. 3950   MOYY=0
  302. 3960   ON STD(MEN) GOSUB *P1
  303. 3970   SCMOXX=MOXX:SCMOYY=MOYY
  304. 3980 *飛ばし1
  305. 3990   IF (GOD(MEN)<1 OR GOD(MEN)>2)THEN *飛ばし2
  306. 4000   MOXX=(GOX(MEN)+1)*17
  307. 4010   MOYY=(GOY(MEN)+1)*17
  308. 4020   ON GOD(MEN) GOSUB *P1,*P2
  309. 4030   GCMOXX=MOXX:GCMOYY=MOYY
  310. 4040 *飛ばし2
  311. 4050   RETURN
  312. 4060 '
  313. 4070 '
  314. 4080 '
  315. 4090 '
  316. 4100 '
  317. 4110 '
  318. 4120 '
  319. 4130 '
  320. 4140 *メッセージ1
  321. 4150   LOCATE 5,23
  322. 4160   COLOR 2
  323. 4170   PRINT"スタート又はゴールと重なるので置けません。"
  324. 4180   FOR T=0 TO 3000:NEXT
  325. 4190   COLOR 7
  326. 4200   LOCATE 5,23
  327. 4210   PRINT"                                           "
  328. 4220   RETURN
  329. 4230 '
  330. 4240 '
  331. 4250 '
  332. 4260 '
  333. 4270 '
  334. 4280 '
  335. 4290 '
  336. 4300 '
  337. 4310 '
  338. 4320 '
  339. 4330 '
  340. 4340 *セーブ
  341. 4350   LOCATE 5,23:INPUT "セーブファイルネーム";FL$
  342. 4360   IF FL$="\" THEN LOCATE 5,23:PRINT "                                            ":RETURN
  343. 4365  *SA
  344. 4370   LOCATE 5,23:PRINT "セーブ中                                     "
  345. 4380  *SB: OPEN "O",#1,FL$
  346. 4390   FOR D1=0 TO 19
  347. 4400       FOR D2=0 TO 4
  348. 4410           FOR D3=0 TO 4
  349. 4420               PRINT #1,M(D1,D2,D3);
  350. 4430           NEXT
  351. 4440       NEXT
  352. 4450       PRINT #1,STX(D1);STY(D1);GOX(D1);GOY(D1);
  353. 4460   NEXT
  354. 4470   CLOSE
  355. 4480   LOCATE 5,23:PRINT "セーブ終了                                   "
  356. 4490   FOR T=1 TO 3000:NEXT
  357. 4500   LOCATE 5,23:PRINT "                                             "
  358. 4510   RETURN
  359. 4520 '
  360. 4530 '
  361. 4540 '
  362. 4550 '
  363. 4560 '
  364. 4570 '
  365. 4580 *ロード
  366. 4590   LOCATE 5,23:INPUT "ロードファイルネーム";FL$
  367. 4600   IF FL$="\" THEN LOCATE 5,23:PRINT "                                            ":RETURN
  368. 4605  *LA
  369. 4610   LOCATE 5,23:PRINT "ロード中                                     "
  370. 4620  *LB: OPEN "I",#1,FL$
  371. 4630   FOR D1=0 TO 19
  372. 4640       FOR D2=0 TO 4
  373. 4650           FOR D3=0 TO 4
  374. 4660               INPUT #1,M(D1,D2,D3)
  375. 4670           NEXT
  376. 4680       NEXT
  377. 4690       INPUT #1,STX(D1),STY(D1),GOX(D1),GOY(D1)
  378. 4700   NEXT
  379. 4710   CLOSE
  380. 4720   LOCATE 5,23:PRINT "ロード終了                                   "
  381. 4730   FOR T=1 TO 3000:NEXT
  382. 4740   LOCATE 5,23:PRINT "                                             "
  383. 4750   FOR D=0 TO 19
  384. 4760       IF (STY(D)=-1) THEN STD(D)=1 ELSE STD=0
  385. 4770       IF (GOX(D)=-1) OR (GOX(D)=5) THEN GOD(D)=2:ELSE IF (GOY(D)=-1) OR (GOY(D)=5) THEN GOD(D)=1:ELSE GOD(D)=0
  386. 4775   NEXT
  387. 4780   GOSUB *リプレース
  388. 4790   RETURN
  389. 4800 *変換
  390. 4810   LOCATE 5,23:INPUT "変換ファイルネーム";FL$
  391. 4820   IF FL$="\" THEN LOCATE 5,23:PRINT "                                            ":RETURN
  392. 4830  *変換A
  393. 4840   LOCATE 5,23:PRINT "変換中                                     "
  394. 4850  *変換B: OPEN "O",#1,FL$
  395. 4860   GYOU=10000
  396. 4870   FOR D1=0 TO 19
  397. 4880       PRINT #1,GYOU;"'***** マップデータ"
  398. 4890       GYOU=GYOU+10
  399. 4892       PRINT #1,GYOU;"DATA";
  400. 4900       FOR D2=0 TO 4
  401. 4910           FOR D3=0 TO 4
  402. 4915               IF (D2=4) AND (D3=4) THEN KAN$="" ELSE KAN$=","
  403. 4920               PRINT #1,M(D1,D2,D3);KAN$;
  404. 4930           NEXT
  405. 4940       NEXT
  406. 4941       PRINT #1,CHR$(13)
  407. 4942       GYOU=GYOU+10
  408. 4944       PRINT #1,GYOU;"DATA";
  409. 4950       PRINT #1,STX(D1);",";STY(D1);",";GOX(D1);",";GOY(D1);
  410. 4952       PRINT #1,CHR$(13)
  411. 4954       GYOU=GYOU+10
  412. 4960   NEXT
  413. 4970   CLOSE
  414. 4980   LOCATE 5,23:PRINT "変換終了                                   "
  415. 4990   FOR T=1 TO 3000:NEXT
  416. 5000   LOCATE 5,23:PRINT "                                             "
  417. 5010   RETURN
  418. 5020 '
  419. 5030 '
  420. 5040 '
  421. 5050 '
  422. 5060 '
  423. 5070 '
  424. 5080 '
  425. 5090 '
  426. 5100 *終了
  427. 5110   LOCATE 5,23
  428. 5120   INPUT "終了しますか";I$
  429. 5130   IF I$="Y" OR I$="y" THEN MOUSE 5:END
  430. 5140   LOCATE 5,23
  431. 5150   PRINT "                                                  "
  432. 5160   RETURN
  433. 5170 '
  434. 5180 '
  435. 5190 '
  436. 5200 '
  437. 10000 *エラー
  438. 10010   IF ERR=63 THEN COLOR 2:LOCATE 5,23:PRINT"指定のファイルがありません。もう一度指定してください。":COLOR 7:RESUME *ロード
  439. 10020   IF ERR=64 THEN COLOR 2:LOCATE 5,23:INPUT"ファイル名が重複します。書換えますか(Y/N)",P$:COLOR 7:IF P$="Y" OR P$="y" THEN RESUME *キル ELSE CLOSE:IF ERL=4310 THEN RESUME *セーブ ELSE IF ERL=4510 THEN RESUME *ロード
  440. 10030   PRINT "エラーです。行番号";ERL;"エラー番号";ERR:END
  441. 10040 *キル
  442. 10050   CLOSE
  443. 10060   KILL FL$
  444. 10070   IF ERL=4380 THEN *SA
  445. 10080   IF ERL=4620 THEN *LA
  446. 10090   IF ERL=4850 THEN *変換A
  447.