1800 IF MOUSE (2,0)=-1 THEN MOUSE (2) OFF:GOSUB 2350
1810 IF MOUSE (2,1)=-1 THEN GOSUB 2640
1820 IF (MOUSE (2,0)=-1) AND (MOUSE (2,1)=-1) THEN FOR I=1 TO 5:MOUSE (I) OFF:NEXT:LOCATE 23,22:INPUT"終了してもよろしいですか?(Y/N)";A$:IF A$="Y" OR A$="y" THEN MOUSE 5:END ELSE LOCATE 23,22:PRINT" ":GOTO 1740
1822 MOUSE (2) ON
1830 GOTO 1800
1840 '
1850 '-----カーソル座標位置
1860 '
1870 PX=MOUSE (0)
1880 PY=MOUSE (1)
1890 RETURN
1900 '
1910 '-----ポイントセット サブルーチン
1920 '
1922 IF KAFLG=1 THEN KAFLG=0:GOTO 30000
1924 IF (COFLG=1) AND (SCOPY=0) THEN GOTO 31000
1926 IF (COFLG=1) AND (SCOPY>0) THEN GOTO 32000
1930 WPX=PX\5
1940 WPY=PY\5
1950 IF (PX MOD 5)=0 THEN WPX=WPX-1
1960 IF (PY MOD 5)=0 THEN WPY=WPY-1
1970 PPX=WPX*5+1:IF PPX=>81 THEN PPX=PPX+1
1980 PPY=WPY*5+1:IF PPY=>81 THEN PPY=PPY+1
1990 IF PPX>157 THEN PPX=157
2000 IF PPY>157 THEN PPY=157
2010 IF PPX<1 THEN PPX=1
2020 IF PPY<1 THEN PPY=1
2030 SX=201+WPX:IF SX=>217 THEN SX=SX+1
2040 IF SX<201 THEN SX=201
2050 IF SX>233 THEN SX=233
2060 SY=1+WPY:IF SY=>17 THEN SY=SY+1
2070 IF SY<1 THEN SY=1
2080 IF SY>33 THEN SY=33
2090 LINE (PPX,PPY)-(PPX+4,PPY+4),PSET,[SG*8,SR*8,SB*8],BF
2100 PSET(SX,SY),[SG*8,SR*8,SB*8]
2110 RETURN
2120 '
2130 '-----ポイントリセット サブルーチン
2140 '
2150 WPX=PX\5
2160 WPY=PY\5
2170 IF (PX MOD 5)=0 THEN WPX=WPX-1
2180 IF (PY MOD 5)=0 THEN WPY=WPY-1
2190 PPX=WPX*5+1:IF PPX=>81 THEN PPX=PPX+1
2200 PPY=WPY*5+1:IF PPY=>81 THEN PPY=PPY+1
2210 IF PPX>157 THEN PPX=157
2220 IF PPY>157 THEN PPY=157
2230 IF PPX<1 THEN PPX=1
2240 IF PPY<1 THEN PPY=1
2250 SX=201+WPX:IF SX=>217 THEN SX=SX+1
2260 IF SX<201 THEN SX=201
2270 IF SX>233 THEN SX=233
2280 SY=1+WPY:IF SY=>17 THEN SY=SY+1
2290 IF SY<1 THEN SY=1
2300 IF SY>33 THEN SY=33
2310 LINE (PPX,PPY)-(PPX+4,PPY+4),PSET,[RG*8,RR*8,RB*8],BF
2320 PSET(SX,SY),[RG*8,RR*8,RB*8]
2330 RETURN
2340 '
2350 '-----左クリック場所判定ルーチン
2360 '
2370 IF (PX=81 AND PY>161) THEN RETURN
2380 IF (PX>161 AND PY=81) THEN RETURN
2390 IF (PX<162 AND PY<162) AND (PX>0 AND PY>0) THEN GOSUB 1910:GOTO 2610
2400 IF (PX>310 AND PY>0) AND (PX<319 AND PY<9) THEN GOSUB 2840:GOTO 2610
2410 IF (PX>26 AND PY>201) AND (PX<32 AND PY<207) THEN PG=PG-1:GOSUB 3180:GOTO 2580
2420 IF (PX>67 AND PY>201) AND (PX<73 AND PY<207) THEN PG=PG+1:GOSUB 3180:GOTO 2580
2430 IF (PX>26 AND PY>211) AND (PX<32 AND PY<217) THEN PR=PR-1:GOSUB 3280:GOTO 2580
2440 IF (PX>67 AND PY>211) AND (PX<73 AND PY<217) THEN PR=PR+1:GOSUB 3280:GOTO 2580
2450 IF (PX>26 AND PY>221) AND (PX<32 AND PY<227) THEN PB=PB-1:GOSUB 3380:GOTO 2580
2460 IF (PX>67 AND PY>221) AND (PX<73 AND PY<227) THEN PB=PB+1:GOSUB 3380:GOTO 2580
2470 IF (PX>45 AND PY>185) AND (PX<55 AND PY<195) THEN GOSUB 2960:GOTO 2580
2480 IF (PX>0 AND PY>170) AND (PX<9 AND PY<178) THEN PF=0:GOSUB 3650:GOTO 2580
2490 IF (PX>10 AND PY>170) AND (PX<19 AND PY<178) THEN PF=1:GOSUB 3650:GOTO 2580
2500 IF (PX>20 AND PY>170) AND (PX<29 AND PY<178) THEN PF=2:GOSUB 3650:GOTO 2580
2510 IF (PX>30 AND PY>170) AND (PX<39 AND PY<178) THEN PF=3:GOSUB 3650:GOTO 2580
2520 IF (PX>40 AND PY>170) AND (PX<49 AND PY<178) THEN PF=4:GOSUB 3650:GOTO 2580
2530 IF (PX>50 AND PY>170) AND (PX<59 AND PY<178) THEN PF=5:GOSUB 3650:GOTO 2580
2540 IF (PX>60 AND PY>170) AND (PX<69 AND PY<178) THEN PF=6:GOSUB 3650:GOTO 2580
2550 IF (PX>70 AND PY>170) AND (PX<79 AND PY<178) THEN PF=7:GOSUB 3650:GOTO 2580
2560 IF (PX>80 AND PY>170) AND (PX<89 AND PY<178) THEN PF=8:GOSUB 3650:GOTO 2580
2570 IF (PX>90 AND PY>170) AND (PX<99 AND PY<178) THEN PF=9:GOSUB 3650:GOTO 2580
2580 IF (PX>110 AND PY>169) AND (PX<120 AND PY<179) THEN SPO2=1 ELSE SPO2=0
2590 IF (PX>310 AND PY>30) AND (PX<319 AND PY<39) THEN GOSUB 3870:GOTO 2610
2600 IF (PX>310 AND PY>45) AND (PX<319 AND PY<54) THEN GOSUB 4080:GOTO 2610
2602 IF (PX>310 AND PY>60) AND (PX<319 AND PY<69) THEN KAFLG=1 ELSE KAFLG=0:'GOTO 2610
2604 IF (PX>310 AND PY>75) AND (PX<319 AND PY<84) THEN COFLG=1 ELSE COFLG=0:'GOTO 2610
2610 IF SPO2=1 THEN PAINT(119,170),2,7 ELSE PAINT(119,170),0,7
2612 IF KAFLG=1 THEN LINE(310,60)-(319,69),PSET,6,BF ELSE LINE(310,60)-(319,69),PSET,1,BF
2614 IF (COFLG=1) AND (SCOPY=0) THEN LINE(310,75)-(319,84),PSET,6,BF ELSE IF (COFLG=1) AND (SCOPY>0) THEN LINE(310,75)-(319,84),PSET,7,BF ELSE LINE(310,75)-(319,84),PSET,4,BF
2620 RETURN
2630 '
2640 '-----右クリック場所判定ルーチン
2650 '
2660 IF (PX=81 AND PY>161) THEN RETURN
2670 IF (PX>161 AND PY=81) THEN RETURN
2680 IF (PX<161 AND PY<161) AND (PX>0 AND PY>0) THEN GOSUB 2130:GOTO 2810
2690 IF (PX>45 AND PY>185) AND (PX<55 AND PY<195) THEN GOSUB 3020:GOTO 2810
2700 IF (PX>0 AND PY>170) AND (PX<9 AND PY<178) THEN PF=0:GOSUB 3720:GOTO 2810
2710 IF (PX>10 AND PY>170) AND (PX<19 AND PY<178) THEN PF=1:GOSUB 3720:GOTO 2810
2720 IF (PX>20 AND PY>170) AND (PX<29 AND PY<178) THEN PF=2:GOSUB 3720:GOTO 2810
2730 IF (PX>30 AND PY>170) AND (PX<39 AND PY<178) THEN PF=3:GOSUB 3720:GOTO 2810
2740 IF (PX>40 AND PY>170) AND (PX<49 AND PY<178) THEN PF=4:GOSUB 3720:GOTO 2810
2750 IF (PX>50 AND PY>170) AND (PX<59 AND PY<178) THEN PF=5:GOSUB 3720:GOTO 2810
2760 IF (PX>60 AND PY>170) AND (PX<69 AND PY<178) THEN PF=6:GOSUB 3720:GOTO 2810
2770 IF (PX>70 AND PY>170) AND (PX<79 AND PY<178) THEN PF=7:GOSUB 3720:GOTO 2810
2780 IF (PX>80 AND PY>170) AND (PX<89 AND PY<178) THEN PF=8:GOSUB 3720:GOTO 2810
2790 IF (PX>90 AND PY>170) AND (PX<99 AND PY<178) THEN PF=9:GOSUB 3720:GOTO 2810
2800 IF (PX>310 AND PY>30) AND (PX<319 AND PY<39) THEN GOSUB 4330:GOTO 2810
2810 PAINT(119,170),0,7:SPO2=0
2812 IF KAFLG=1 THEN LINE(310,60)-(319,69),PSET,6,BF ELSE LINE(310,60)-(319,69),PSET,1,BF
5180 IF COU>15 THEN X1=1:X2=82:Y1=Y1+5:Y2=Y2+5:COU=0
5190 RETURN
5200 '
5210 '------ファイルエラールーチン
5220 '
5230 IF ERR=63 THEN COLOR 2:LOCATE 23,22:PRINT"指定のファイルがありません。もう一度指定してください。":COLOR 7:RESUME 4110
5240 IF ERR=64 THEN COLOR 2:LOCATE 23,22:INPUT"ファイル名が重複します。書換えますか(Y/N)",P$:COLOR 7:IF P$="Y" OR P$="y" THEN RESUME 5270 ELSE CLOSE:IF ERL=3930 THEN RESUME 3900 ELSE IF ERL=4410 THEN RESUME 4370
5250 PRINT "エラーです。行番号";ERL;"エラー番号";ERR:END
5260 '
5270 '-----KILLルーチン
5280 '
5290 CLOSE
5300 KILL FL$
5310 IF ERL=3930 THEN 3910
5320 IF ERL=4410 THEN 4390
10000 '******************** 左上回転
10005 WX=0
10010 FOR KC2=0 TO 15
10020 FOR KC1=15 TO 0 STEP -1
10030 NX=16*KC1+KC2
10040 CSP%(NX)=SPP1%(WX)
10050 WX=WX+1
10060 NEXT
10070 NEXT
10080 FOR KC=0 TO 255
10090 SPP1%(KC)=CSP%(KC)
10100 NEXT
10110 GOSUB 20000
10112 GOSUB 35000
10120 RETURN
10200 '******************** 右上回転
10205 WX=0
10210 FOR KC2=0 TO 15
10220 FOR KC1=15 TO 0 STEP -1
10230 NX=16*KC1+KC2
10240 CSP%(NX)=SPP2%(WX)
10250 WX=WX+1
10260 NEXT
10270 NEXT
10280 FOR KC=0 TO 255
10290 SPP2%(KC)=CSP%(KC)
10300 NEXT
10310 GOSUB 20050
10312 GOSUB 35200
10320 RETURN
10400 '******************** 左下回転
10405 WX=0
10410 FOR KC2=0 TO 15
10420 FOR KC1=15 TO 0 STEP -1
10430 NX=16*KC1+KC2
10440 CSP%(NX)=SPP3%(WX)
10450 WX=WX+1
10460 NEXT
10470 NEXT
10480 FOR KC=0 TO 255
10490 SPP3%(KC)=CSP%(KC)
10500 NEXT
10510 GOSUB 20100
10512 GOSUB 35400
10520 RETURN
10600 '******************** 右下回転
10605 WX=0
10610 FOR KC2=0 TO 15
10620 FOR KC1=15 TO 0 STEP -1
10630 NX=16*KC1+KC2
10640 CSP%(NX)=SPP4%(WX)
10650 WX=WX+1
10660 NEXT
10670 NEXT
10680 FOR KC=0 TO 255
10690 SPP4%(KC)=CSP%(KC)
10700 NEXT
10710 GOSUB 20150
10712 GOSUB 35600
10720 RETURN
20000 '********** 左上PUT
20010 PUT@A (201,1)-(216,16),SPP1%
20020 RETURN
20050 '********** 右上PUT
20060 PUT@A (218,1)-(233,16),SPP2%
20070 RETURN
20100 '********** 左下PUT
20110 PUT@A (201,18)-(216,33),SPP3%
20120 RETURN
20150 '********** 右下PUT
20160 PUT@A (218,18)-(233,33),SPP4%
20170 RETURN
30000 '********** 回転位置
30005 GOSUB 3790
30010 KAPX=PX \ 80
30020 KAPY=PY \ 80
30030 IF (KAPX=0 AND KAPY=0) THEN GOSUB 10000
30040 IF (KAPX=1 AND KAPY=0) THEN GOSUB 10200
30050 IF (KAPX=0 AND KAPY=1) THEN GOSUB 10400
30060 IF (KAPX=1 AND KAPY=1) THEN GOSUB 10600
30070 RETURN
31000 '********** コピー元
31005 GOSUB 3790
31010 COPSX=PX \ 80
31020 COPSY=PY \ 80
31030 IF (COPSX=0 AND COPSY=0) THEN SCOPY=1:GOTO 31080
31040 IF (COPSX=1 AND COPSY=0) THEN SCOPY=2:GOTO 31080
31050 IF (COPSX=0 AND COPSY=1) THEN SCOPY=3:GOTO 31080
31060 IF (COPSX=1 AND COPSY=1) THEN SCOPY=4:GOTO 31080
31070 SCOPY=0
31080 LINE(310,75)-(319,84),PSET,7,BF
31090 FOR T=1 TO 3000:NEXT
31100 RETURN
32000 '********** コピー先
32005 GOSUB 3790
32010 COPDX=PX \ 80
32020 COPDY=PY \ 80
32030 IF (COPDX=0 AND COPDY=0) THEN DCOPY=1:GOTO 32070
32040 IF (COPDX=1 AND COPDY=0) THEN DCOPY=2:GOTO 32070
32050 IF (COPDX=0 AND COPDY=1) THEN DCOPY=3:GOTO 32070
32060 IF (COPDX=1 AND COPDY=1) THEN DCOPY=4:GOTO 32070