Orido Fire Fighting Team '19.03.26 on Aichi Nissin City Orido Worte By. Dai Fukuoka

CBI Architecture Decision Basic ArchiveNum.01

CBI Architecture Decision Basic Archive Num.02

Discuttion2018CBI

GDI Architecture Decision Basic Archive 2018

Discuttion2018GDI

Communication Architecture Desicision Basic Archive Num.01

BASIC DISCUSSION ARCHITECTURE : CHARACTER BASE INTERFACE NUM.1 BY.DAI FUKUOKA

BASIC DISCUSSION ARCHITECTURE : GRAPHIC DEVICE INTERFACE 2018 JUN.7 AUTHOR BY.DAI FUKUOKA


現在の閲覧者数:


BASIC DISCUSSION ARCHITECTURE : GRAPHIC DEVICE INTERFACE 2018 JUN.7 AUTHOR BY.DAI FUKUOKA

グラフィックデバイスインターフェイス2018
BASIC アーカイブ ディスカッション

解説
index.html
戻る↑

************************
mouseCakculator

100 REM --------------------
110 REM CopyRight Programming by.Dai Fukuoka 2018-01-07
120 REM Mouse GUI/ PlatForm Service of Dennougumi
130 REM --------------------
140 DIM LOCW(80):DIM LOCH(25):DIM LOCWD(80):DIM LOCHD(25)
150 CONSOLE 0,2,0,1:SCREEN 3,0,0,1:WIDTH 80,20:COLOR 0,7,0,7,2:CLS 3
160 IF POINT(639,479)=POINT(639,399) THEN SHOWVIEW=1 ELSE SHOWVIEW=-1
170 *ASKIT INPUT"マウス起動テストを行いますか(0:Yes,1:No)",MODE
180 IF MODE=0 THEN *MOUSEEVENT ELSE IF MODE=1 THEN *SKIPNOW ELSE *ASKIT
190 *MOUSEEVENT LOCATE 0,1:PRINT A;B;C;D;
200 XLOCATENOW=MOUSE(0):YLOCATENOW=MOUSE(1)
210 ONLEFTMOUSEDOWNX=MOUSE(4,1):ONRIGHTMOUSEDOWNX=MOUSE(4,2)
220 ONLEFTMOUSEUPX=MOUSE(7,1):ONRIGHTMOUSEUPX=MOUSE(7,2)
230 ONLEFTMOUSEDOWNY=MOUSE(5,1):ONRIGHTMOUSEDOWNY=MOUSE(5,2)
240 ONLEFTMOUSEUPY=MOUSE(8,1):ONRIGHTMOUSEUPY=MOUSE(8,2)
250 LEFTPUSHNOW=MOUSE(2,1):RIGHTPUSHNOW=MOUSE(2,2)
260 LEFTCOUNTDOWN=MOUSE(3,1):RIGHTCOUNTDOWN=MOUSE(3,2)
270 LEFTCOUNTUP=MOUSE(6,1):RIGHTCOUNTUP=MOUSE(6,2)
280 DISTANCEX=MOUSE(9):DISTANCEY=MOUSE(10)
285 BKR=RT:BKL=LT:RT=RIGHTCOUNTUP:LT=LEFTCOUNTUP
290 REM IF NFLAG=1 THEN *LOCATIONLOOP
300 GOTO *RETURNNOW
310 *RETURNNOW
320 IF FLAG=0 THEN *STARTUP
330 END
340 *STARTUP
350 *TESTMODE IF MODE=NOT 0 THEN *SKIPNOW
360 A=LEFTPUSHNOW:B=RIGHTPUSHNOW:C=ONLEFTMOUSEDOWNX:D=ONLEFTMOUSEDOWNY
370 LOCATE 0,0:PRINT LEFTPUSHNOW;RIGHTPUSHNOW;ONLEFTMOUSEDOWNX;ONLEFTMOUSEDOWNY
380 *SKIPNOW
390 *STARTSETTINGS NFLAG=1
400 NFLAG=1
410 IF SHOWVIEW=1 THEN HHIGHT=480:HVER=25 ELSE HHIGHT=400:HVER=20
420 *LOCATIONLOOP
430 FOR I=1 TO HVER:LOCHD(I)=(HHIGHT/HVER)*I:LOCH(I)=(HHIGHT/HVER)*(I-1):NEXT
440 FOR I=1 TO 80:LOCWD(I)=8*I:LOCW(I)=8*I-7:NEXT
450 FOR I=1 TO 80
460 IF ONLEFTMOUSEDOWNX>LOCW(I) AND ONLEFTMOUSEDOWNX<LOCWD(I) THEN XRLOC=I
470 NEXT
480 FOR I=1 TO HVER
490 IF ONLEFTMOUSEDOWNY>LOCH(I) AND ONLEFTMOUSEDOWNY<LOCHD(I) THEN YRLOC=I
500 NEXT
510 LOCATE 0,2:PRINT XRLOC;YRLOC;EVNAME$;RT;LT;
520 LOCATE 0,3:PRINT " 1 2 3":LOCATE 0,4:PRINT " 4 5 6"
530 LOCATE 0,5:PRINT " 7 8 9":LOCATE 0,6:PRINT " 0 . x":LOCATE 0,7:PRINT " + - /"
535 IF RIGHTCOUNTUP>BKRT OR LEFTCOUNTUP>BKLT THEN ELSE *MOUSEEVENT
540 IF YRLOC=4 THEN IF XRLOC=1 OR XRLOC=2 THEN EVNAME$="1" ELSE IF XRLOC=3 OR XRLOC=4 THEN EVNAME$="2" ELSE IF XRLOC=5 OR XRLOC=6 THEN EVNAME$="3"
550 IF YRLOC=5 THEN IF XRLOC=1 OR XROLC=2 THEN EVNAME$="4" ELSE IF XRLOC=3 OR XRLOC=4 THEN EVNAME$="5" ELSE IF XRLOC=5 OR XRLOC=6 THEN EVNAME$="6"
560 IF YRLOC=6 THEN IF XRLOC=1 OR XRLOC=2 THEN EVNAME$="7" ELSE IF XRLOC=3 OR XRLOC=4 THEN EVNAME$="8" ELSE IF XRLOC=5 OR XRLOC=6 THEN EVNAME$="9"
570 IF YRLOC=7 THEN IF XRLOC=1 OR XRLOC=2 THEN EVNAME$="0" ELSE IF XRLOC=3 OR XRLOC=4 THEN EVNAME$="." ELSE IF XRLOC=5 OR XRLOC=6 THEN EVNAME$="x"
580 IF YRLOC=8 THEN IF XRLOC=1 OR XRLOC=2 THEN EVNAME$="+" ELSE IF XRLOC=3 OR XRLOC=4 THEN EVNAME$="-" ELSE IF XRLOC=5 OR XRLOC=6 THEN EVNAME$="/"
581 *ADD A$=A$+EVNAME$:EVNAME$="":LOCATE 0,17:PRINT A$
590 GOTO *MOUSEEVENT

マウス電卓の動作テストが出来ます。このソフトは計算と、バックボタンと、クリアボタンと、メモリボタンをまだ備えていませんが、マウスの座標入力による、数式が入力でき、一桁を連続するエラーを修正して、一回の入力に一文字しか追加しないことにしました。まだ改良の余地があり、完成すると、色々なゲームソフトで使えるようになります。

This Mouse Plan is ForWard Compleat of Target Value of Back Button with Clear Button with Memory Button with Total of Value (Auto SUM) Button Equipment of Future.

********************
BOOT MENU

]100 REM --------------------
110 REM CopyRight Programming by.Dai Fukuoka 2018-01-13
120 REM BOOTABLE MENU/ PlatForm Service of Dennougumi
130 REM --------------------
140 CONSOLE 0,2,0,1:SCREEN 3,0,0,1:WIDTH 80,25:COLOR 6,7,0,7,2:CLS 3
150 IF POINT(639,479)=POINT(639,399) THEN SHOWVIEW=1 ELSE SHOWVIEW=-1
160 DIM X1(80):DIM Y1(25):DIM X2(80):DIM Y2(25):LET CT=0
170 DIM TN$(85):DIM OFN$(85)
180 OPEN "mt.txt" AS 1:EF=EOF(1):CLOSE 1
190 IF EF=0 THEN OPEN "mt.txt" FOR INPUT AS #1:FOR I=1 TO 84:INPUT #1,TN$(I),OFN$(I):NEXT
200 CLOSE #1:CLOSE #2
210 FOR XX=8 TO 640 STEP 8:CT=CT+1:X1(CT)=XX:NEXT:LET CT=0
220 IF SHOWVIEW=1 THEN FOR YY=0 TO 479 STEP 480/25:CT=CT+1:Y1(CT)=YY:NEXT
230 IF SHOWVIEW=-1 THEN FOR YY=0 TO 399 STEP 400/25:CT=CT+1:Y1(CT)=YY:NEXT
240 LET CT=0:FOR XX=0 TO 639 STEP 8:CT=CT+1:X2(CT)=XX:NEXT:LET CT=0
250 IF SHOWVIEW=1 THEN FOR YY=19.2# TO 479 STEP 480/25:CT=CT+1:Y2(CT)=YY:NEXT
260 IF SHOWVIEW=-1 THEN FOR YY=16 TO 399 STEP 400/25:CT=CT+1:Y2(CT)=YY:NEXT
270 LINE(X1(2),Y1(2))-(X2(79),Y2(22)),1,BF
280 FOR T=2 TO 22:FOR I=2 TO 59 STEP 19:LINE(X1(I),Y1(T))-(X2(I+20),Y2(T)),0,B
290 NEXT I,T
300 *START
310 LET CT=1:FOR T=1 TO 21:FOR I=1 TO 58 STEP 19:LOCATE I,T:PRINT CT:LOCATE I+3,T:PRINT ":";TN$(CT):CT=CT+1:NEXT I,T
320 COLOR 0,7,0,7,2:LOCATE 0,22:INPUT "SELECT,0/EDIT,1/EXPORT,2/IMPORT,3/NEW,4:",TELL
330 LOCATE 0,22:PRINT SPACE$(70):LOCATE 0,22
340 IF TELL=0 THEN INPUT "Open Number Menu :",TELL2:LOCATE 0,22:PRINT SPACE$(70)
350 IF TELL=1 THEN INPUT "Edit Number Menu :",TELL2:LOCATE 0,22:PRINT SPACE$(70)
360 IF TELL=2 THEN INPUT "Export File Name :",EFN$:LOCATE 0,22:PRINT SPACE$(70)
370 IF TELL=3 THEN INPUT "Import File Name :",IFN$:LOCATE .22#:PRINT SPACE$(70)
380 IF TELL=4 THEN INPUT "Format Menu Yes,1/No,0 :",RENEW:LOCATE 0,22:PRINT SPACE$(70)
390 *RUNNING LOCATE 0,22
400 IF TELL=0 THEN RUN OFN$(TELL2)
410 IF TELL=1 THEN INPUT "Edit Title :",TN$(TELL2):LOCATE 0,22:PRINT SPACE$(70):LOCATE 0,22
420 IF TELL=1 THEN INPUT "Edit File Name :",OFN$(TELL2):LOCATE 0,22:PRINT SPACE$(70):LOCATE 0,22
430 IF TELL=1 THEN INPUT "Pass,0/Save,1",SAVEPASS:LOCATE 0,22:PRINT SPACE$(70)
440 CLOSE #1:CLOSE #2
450 IF TELL=1 AND SAVEPASS=1 THEN CLOSE #1:OPEN "mt.txt" FOR OUTPUT AS #1:FOR I=1 TO 84:WRITE #1,TN$(I),OFN$(I):NEXT I:CLOSE #1:CLS:GOTO *START
460 IF TELL=2 THEN INPUT "Out of Save txt Name :",TELL2$
470 IF TELL=2 THEN CLOSE #1:OPEN TELL2$+".txt" FOR OUTPUT AS #1:FOR I=1 TO 84:WRITE #1,TN$(I),OFN$(I):NEXT I:CLOSE #1:CLS:GOTO *START
480 IF TELL=3 THEN INPUT "Load txt Name :",TELL2$
490 IF TELL=3 THEN CLOSE #2:OPEN TELL2$+".txt" FOR INPUT AS #2:FOR I=1 TO 84:INPUT #2,TN$(I),OFN$(I):NEXT I:CLOSE #2:CLS:GOTO *START
500 IF TELL=4 THEN CLOSE #1:OPEN "mt.txt" FOR OUTPUT AS #1:FOR I=1 TO 84:TN$(I)="NOTITLE":OFN$(I)="menu.bas":WRITE #1,TN$(I),OFN$(I):NEXT I:CLOSE #1:CLS:GOTO *START





********************
MouseGUI


100 REM --------------------
110 REM CopyRight Programing by.Dai Fukuoka 2018-01-07
120 REM Mouse GUI/ PlatForm Service of Dennougumi
130 REM --------------------
140 CONSOLE 0,2,0,1:SCREEN 3,0,0,1:WIDTH 80,25:COLOR 0,7,0,7,2:CLS 3
150 IF POINT(639,479)=POINT(639,399) THEN SHOWVIEW=1 ELSE SHOWVIEW=-1
160 *ASKIT INPUT"マウス起動テストを行いますか(0:Yes,1:No)",MODE
170 IF MODE=0 THEN *MOUSEEVENT ELSE IF MODE=1 THEN *SKIPNOW ELSE *ASKIT
180 *MOUSEEVENT
190 XLOCATENOW=MOUSE(0):YLOCATENOW=MOUSE(1)
200 ONLEFTMOUSEDOWNX=MOUSE(4,1):ONRIGHTMOUSEDOWNX=MOUSE(4,2)
210 ONLEFTMOUSEUPX=MOUSE(7,1):ONRIGHTMOUSEUPX=MOUSE(7,2)
220 ONLEFTMOUSEDOWNY=MOUSE(5,1):ONRIGHTMOUSEDOWNY=MOUSE(5,2)
230 ONLEFTMOUSEUPY=MOUSE(8,1):ONRIGHTMOUSEUPY=MOUSE(8,2)
240 LEFTPUSHNOW=MOUSE(2,1):RIGHTPUSHNOW=MOUSE(2,2)
250 LEFTCOUNTDOWN=MOUSE(3,1):RIGHTCOUNTDOWN=MOUSE(3,2)
260 LEFTCOUNTUP=MOUSE(6,1):RIGHTCOUNTUP=MOUSE(6,2)
270 DISTANCEX=MOUSE(9):DISTANCEY=MOUSE(10)
280 GOTO *RETURNNOW
290 *RETURNNOW
300 IF FLAG=0 THEN *STARTUP
310 END
320 *STARTUP
330 *TESTMODE IF MODE=NOT 0 THEN *SKIPNOW
340 PRINT LEFTPUSHNOW;DISTANCEX;DISTANCEY;ONLEFTMOUSEDOWNX:GOTO *MOUSEEVENT
350 *SKIPNOW


********************
Original Computer Aided Design


100 REM ---------------------
110 REM Computer Aided Design Program by Dai Fukuoka 2016.11.18
120 REM (C)電脳組
130 REM ---------------------
140 CONSOLE 0,25,0,1:SCREEN 3,0,0,1:WIDTH 80,25:COLOR 0,7,0,0,1:CLS 3
150 *TYPESET
160 PALETTE=0
170 DIM TEXTHR(999):DIM TEXTVT(999):DIM TEXTWI(999):DIM TEXTHI(999)
180 DIM SELECTID(9999):DIM ID(9999):DIM VT(999):DIM HR(999):DIM HI(999):DIM WI(999):DIM COSINE(999):DIM MAPPER(64,64,99):DIM STRN$(99,99)
190 GOTO *DRAWSETUP
200 GET@(0,0)-(639,399),"aaa"
210 :::::::::::
220 :::::::::::
230 *MENUS
240 FOR I=5 TO 495 STEP 2:LINE (I,0)-(I,2),0:NEXT
250 FOR I=5 TO 495 STEP 10:LINE (I,0)-(I,5),0:NEXT
260 FOR I=5 TO 495 STEP 2:LINE (I,400)-(I,398),0:NEXT
270 FOR I=5 TO 495 STEP 10:LINE (I,400)-(I,395),0:NEXT
280 FOR I=5 TO 395 STEP 2:LINE (0,I)-(2,I),0:NEXT
290 FOR I=5 TO 395 STEP 10:LINE (0,I)-(5,I),0:NEXT
300 FOR I=5 TO 395 STEP 2:LINE(500,I)-(498,I),0:NEXT
310 FOR I=5 TO 395 STEP 10:LINE (500,I)-(495,I),0:NEXT
320 VIEW(7,7)-(493,393),7,0
330 IF PALETTE=0 THEN *PALETTE1 ELSE IF PALETTE=1 THEN *PALETTE2
340 IF PALETTE=2 THEN *PALETTE3 ELSE IF PALETTE=3 THEN *PALETTE4
350 *PALETTE1
360 LOCATE 63,0:PRINT "Palette: A B C D"
370 LOCATE 63,1:PRINT "Index Object"
380 LOCATE 63,2:PRINT "Wash Dram/Park"
390 LOCATE 63,3:PRINT "Pole/RoomWay/Wall"
400 LOCATE 63,4:PRINT "Kitchin/Leving"
410 LOCATE 63,5:PRINT "Dining/Bed/Bath"
420 LOCATE 63,6:PRINT "Toilet/FireKiller"
430 LOCATE 63,7:PRINT "Table/Desk/Chair"
440 LOCATE 63,8:PRINT "WashBoul/Door"
450 LOCATE 63,9:PRINT "DoubleBed/Stair"
460 LOCATE 63,10:PRINT "Boiler/Room"
470 LOCATE 63,11:PRINT "System Index"
480 LOCATE 63,12:PRINT "Check/Write/Read"
490 LOCATE 63,13:PRINT "Parameter"
500 LOCATE 63,14:PRINT "Horizontal:"
510 LOCATE 63,16:PRINT "Vatical:"
520 LOCATE 63,18:PRINT "Rotetion:"
530 LOCATE 63,20:PRINT "Measure:(X/Y)"
540 LOCATE 63,21:PRINT "(X: 000/Y: 000)"
550 LOCATE 63,22:PRINT "Select ID:"
560 IF TEXT=1 OR DRAW=1 THEN *SKIPTO
570 GOTO *DISPLAYOUT
580 *PALETTE2
590 LOCATE 63,0:PRINT "Palette: A B C D"
600 LOCATE 63,1:PRINT "Path and Curv"
610 LOCATE 63,2:PRINT "Solid/Dot/Curv"
620 LOCATE 63,3:PRINT "Dash/Arc/Circle"
630 LOCATE 63,4:PRINT "Tile/Round/Box"
640 LOCATE 63,5:PRINT "Cross/Rotate"
650 LOCATE 63,6:PRINT "Copy/Paste/Paint"
660 LOCATE 63,7:PRINT "Seppalete/Joint"
670 LOCATE 63,8:PRINT "RoteteID/Chain"
680 LOCATE 63,9:PRINT "Scaling/Vector"
690 LOCATE 63,10:PRINT "Delete ID "
700 LOCATE 63,11:PRINT "System Index"
710 LOCATE 63,12:PRINT "Check/Write/Read"
720 LOCATE 63,13:PRINT "Parameter"
730 LOCATE 63,14:PRINT "Horizontal:"
740 LOCATE 63,16:PRINT "Vatical:"
750 LOCATE 63,18:PRINT "Rotetion:"
760 LOCATE 63,20:PRINT "Measure:(X/Y)"
770 LOCATE 63,21:PRINT "(X: 000/Y: 000)"
780 LOCATE 63,22:PRINT "Select ID"
790 IF TEXT=1 OR DRAW=1 THEN *SKIPTO
800 GOTO *DISPLAYOUT
810 *PALETTE3
820 LOCATE 63,0:PRINT "Palette: A B C D"
830 LOCATE 63,1:PRINT "Index Object "
840 LOCATE 63,2:PRINT "Rack/Closet"
850 LOCATE 63,3:PRINT "Fridge/Warmer"
860 LOCATE 63,4:PRINT "AirCon/Window"
870 LOCATE 63,5:PRINT "WashMachine"
880 LOCATE 63,6:PRINT "Garage/Inverter"
890 LOCATE 63,7:PRINT "StrechGrass"
900 LOCATE 63,8:PRINT "Erevator/Range"
910 LOCATE 63,9:PRINT "Escalator/Hall"
920 LOCATE 63,10:PRINT "Wood/Hach/Pit"
930 LOCATE 63,11:PRINT "System Index"
940 LOCATE 63,12:PRINT "Check/Write/Read"
950 LOCATE 63,13:PRINT "Parameter"
960 LOCATE 63,14:PRINT "Horizontal:"
970 LOCATE 63,16:PRINT "Vatical:"
980 LOCATE 63,18:PRINT "Rotetion:"
990 LOCATE 63,20:PRINT "Measure:(X/Y)"
1000 LOCATE 63,21:PRINT "(X: 000/Y: 000)"
1010 LOCATE 63,22:PRINT "Select ID:"
1020 GOTO *DISPLAYOUT
1030 *PALETTE4
1040 LOCATE 63,0:PRINT "Palette: A B C D"
1050 LOCATE 63,1:PRINT "IndexObject"
1060 LOCATE 63,2:PRINT "Power/Cable"
1070 LOCATE 63,3:PRINT "Pipeline/Duct"
1080 LOCATE 63,4:PRINT "Phone/Antenna"
1090 LOCATE 63,5:PRINT "Light/PostBox"
1100 LOCATE 63,6:PRINT "TeleVision/Gas"
1110 LOCATE 63,7:PRINT "Charge/CarInn"
1120 LOCATE 63,8:PRINT "HouseWare/PC"
1130 LOCATE 63,9:PRINT "PowerBoard/Tile"
1140 LOCATE 63,10:PRINT "Solar/Plant"
1150 LOCATE 63,11:PRINT "System Index"
1160 LOCATE 63,12:PRINT "Check/Write/Read"
1170 LOCATE 63,13:PRINT "Parameter"
1180 LOCATE 63,14:PRINT "Horizontal:"
1190 LOCATE 63,16:PRINT "Vatical:"
1200 LOCATE 63,18:PRINT "Rotetion:"
1210 LOCATE 63,20:PRINT "Measure:(X/Y)"
1220 LOCATE 63,21:PRINT "(X: 000/Y: 000)"
1230 LOCATE 63,22:PRINT "Select ID:"
1240 IF TEXT=1 OR DRAW=1 THEN *SKIPTO
1250 GOTO *DISPLAYOUT
1260 *DISPLAYOUT:IF CF>0 THEN *SKIPTO
1270 FOR I=0 TO 632 STEP 8:TEXTHR(T)=I:T=T+1:NEXT:I=0:T=0
1280 FOR I=8 TO 640 STEP 8:TEXTWI(T)=I:T=T+1:NEXT:I=0:T=0
1290 FOR I=0 TO 384 STEP 16:TEXTVT(T)=I:T=T+1:NEXT:I=0:T=0
1300 FOR I=16 TO 400 STEP 16:TEXTHI(T)=I:T=T+1:NEXT:I=0:T=0
1310 DATA 0,71,0,72,0,73,0,74,0,75,0,76,0,78,0,79:REM palette
1320 DATA 2,63,2,71,2,72,2,76, 3,63,3,66,3,67,3,74,3,75,3,79
1330 DATA 4,63,4,69,4,70,4,77, 5,63,5,68,5,69,5,72,5,73,5,79
1340 DATA 6,63,6,68,6,69,6,79, 7,63,7,67,7,68,7,72,7,73,7,78
1350 DATA 8,63,8,70,8,71,8,75, 9,63,9,71,9,72,9,77
1360 DATA 10,63,10,68,10,69,10,73, 12,63,12,67,12,68,12,74,12,75,12,78
1370 DATA 14,63,14,74, 16,63,16,71, 18,63,18,71, 20,63,20,71, 22,63,23,72
1380 REM FOR D=0 TO 32 STEP 1:READ VT(D),HR(D),HI(D),WI(D):NEXT
1390 DATA 0,71,0,72,0,73,0,74,0,75,0,76,0,78,0,79:REM palette
1400 DATA 1,63,1,75, 2,63,2,67,2,68,2,71,2,72,2,76
1410 DATA 3,63,3,66,3,67,3,71,3,72,3,78 ,4,63,4,66,4,67,4,72,4,73,4,76
1420 DATA 5,63,5,68,5,69,5,75 ,6,63,6,66,6,67,6,72,6,73,6,78
1430 DATA 7,63,7,71,7,72,7,77 ,8,63,8,70,8,71,8,76
1440 DATA 9,63,9,69,9,70,9,76, 10,63,10,71
1450 DATA 12,63,12,67,12,68,12,74,12,75,12,78
1460 DATA 14,63,14,74, 16,63,16,71, 18,63,18,71, 20,63,20,71, 22,63,23,72
1470 REM FOR D=33 TO 66 STEP 1:READ VT(D),HR(D),HI(D),WI(D):NEXT
1480 DATA 0,71,0,72,0,73,0,74,0,75,0,76,0,78,0,79:REM palette
1490 DATA 2,63,2,66,2,67,2,73, 3,63,3,68,3,69,3,75
1500 DATA 4,63,4,68,4,69,4,74
1510 DATA 5,63,5,73 ,6,63,6,68,6,69,6,77
1520 DATA 7,63,7,73 8,63,8,70,8,71,8,76
1530 DATA 9,63,9,71,9,72,9,76, 10,63,10,66, 10,67,10,71 ,10,72,10,75
1540 DATA 12,63,12,67,12,68,12,74,12,75,12,78
1550 DATA 14,63,14,74, 16,63,16,71, 18,63,18,71, 20,63,20,71, 22,63,23,72
1560 REM FOR D=67 TO 95 STEP 1:READ VT(D),HR(D),HI(D),WI(D):NEXT
1570 DATA 0,71,0,72,0,73,0,74,0,75,0,76,0,78,0,79:REM palette
1580 DATA 2,63,2,67, 2,68,2,73, 3,63,3,70, 3,71,3,75
1590 DATA 4,63,4,67, 4,68,4,75
1600 DATA 5,63,5,67, 6,68,6,75
1610 DATA 7,63,7,68, 7,69,7,75, 8,63,8,71, 8,72,8,74
1620 DATA 9,63,9,72, 9,73,9,77, 10,63,10,67, 10,68,10,73
1630 DATA 12,63,12,67, 12,68,12,74 ,12,75,12,78
1640 DATA 14,63,14,74, 16,63,16,71, 18,63,18,71, 20,63,20,71, 22,63,23,72
1650 FOR D=0 TO 123 STEP 1:READ VT(D),HR(D),HI(D),WI(D):NEXT
1660 *SKIPTO
1670 MOUSE(1)ON:MOUSE(2)ON:MOUSE(3)ON
1680 *ROOTINES SELECTED=-1:FOR I=0 TO 9999
1690 X1=MOUSE(4,1):X2=MOUSE(4,2):Y1=MOUSE(5,1):Y2=MOUSE(5,2):LOCATE 0,0:PRINT X1,X2,Y1,Y2:IF X1=>497 THEN *PALETTECASE ELSE *DRAW
1700 NEXT
1710 *PALETTECASE IF PALETTE=0 THEN *ONECLAUS ELSE IF PALETTE=1 THEN *TWOCLAUS
1720 IF PALETTE=2 THEN *THREECLAUS ELSE IF PALETTE=3 THEN *FOURCLAUS
1730 *COMMANDOUT REM PRINT "loop out":IF TEXT=0 AND DRAW=1 THEN *TURN
1740 IF TEXT=1 AND SELECTED=0 THEN IF CHANGEFLAG=1 THEN ELSE CHANGEFLAG=1:CLS:BK=CF:CF=1:PALETTE=0:GOTO *PALETTE1
1750 IF TEXT=1 AND SELECTED=1 THEN IF CHANGEFLAG=2 THEN ELSE CHANGEFLAG=2:CLS:BK=CF:CF=1:PALETTE=1:GOTO *PALETTE2
1760 IF TEXT=1 AND SELECTED=2 THEN IF CHANGEFLAG=3 THEN ELSE CHANGEFLAG=3:CLS:BK=CF:CF=1:PALETTE=2:GOTO *PALETTE3
1770 IF TEXT=1 AND SELECTED=3 THEN IF CHANGEFLAG=4 THEN ELSE CHANGEFLAG=4:CLS:BK=CF:CF=1:PALETTE=3:GOTO *PALETTE4
1780 IF TEXT=1 AND SELECTED=33 THEN IF CHANGEFLAG=1 THEN ELSE CHANGEFLAG=1:CLS:BK=CF:CF=1:PALETTE=0:GOTO *PALETTE1
1790 IF TEXT=1 AND SELECTED=34 THEN IF CHANGEFLAG=2 THEN ELSE CHANGEFLAG=2:CLS:BK=CF:CF=1:PALETTE=1:GOTO *PALETTE2
1800 IF TEXT=1 AND SELECTED=35 THEN IF CHANGEFLAG=3 THEN ELSE CHANGEFLAG=3:CLS:BK=CF:CF=1:PALETTE=2:GOTO *PALETTE3
1810 IF TEXT=1 AND SELECTED=36 THEN IF CHANGEFLAG=4 THEN ELSE CHANGEFLAG=4:CLS:BK=CF:CF=1:PALETTE=3:GOTO *PALETTE4
1820 IF TEXT=1 AND SELECTED=67 THEN IF CHANGEFLAG=1 THEN ELSE CHANGEFLAG=1:CLS:BK=CF:CF=1:PALETTE=0:GOTO *PALETTE1
1830 IF TEXT=1 AND SELECTED=68 THEN IF CHANGEFLAG=2 THEN ELSE CHANGEFLAG=2:CLS:BK=CF:CF=1:PALETTE=1:GOTO *PALETTE2
1840 IF TEXT=1 AND SELECTED=69 THEN IF CHANGEFLAG=3 THEN ELSE CHANGEFLAG=3:CLS:BK=CF:CF=1:PALLTTE=2:GOTO *PALETTE3
1850 IF TEXT=1 AND SELECTED=70 THEN IF CHANGEFLAG=4 THEN ELSE CHANGEFLAG=4:CLS:BK=CF:CF=1:PALLTTE=3:GOTO *PALETTE4
1860 IF TEXT=1 AND SELECTED=96 THEN IF CHANGEFLAG=1 THEN ELSE CHANGEFLAG=1:CLS:BK=CF:CF=1:PALETTE=0:GOTO *PALETTE1
1870 IF TEXT=1 AND SELECTED=97 THEN IF CHANGEFLAG=2 THEN ELSE CHANGEFLAG=2:CLS:BK=CF:CF=1:PALETTE=1:GOTO *PALETTE2
1880 IF TEXT=1 AND SELECTED=98 THEN IF CHANGEFLAG=3 THEN ELSE CHANGEFLAG=3:CLS:BK=CF:CF=1:PALLTTE=2:GOTO *PALETTE3
1890 IF TEXT=1 AND SELECTED=99 THEN IF CHANGEFLAG=4 THEN ELSE CHANGEFLAG=4:CLS:BK=CF:CF=1:PALLTTE=3:GOTO *PALETTE4
1900 *TURN
1910 PRINT SELECTED,T:GOTO *ROOTINES
1920 IF X1=>497 THEN *PALETTECASE ELSE *ROOTINES
1930 *ONECLAUS
1940 IF X1=>497 THEN *ONEPALETTE ELSE *ROOTINES
1950 *ONEPALETTE
1960 T=0:WHILE T<32
1970 IF X1<497 THEN DRAW=1:TEXT=0 ELSE TEXT=1:DRAW=0
1980 IF TEXTVT(VT(T))<Y1 AND TEXTHI(HI(T))>Y1 AND TEXTHR(HR(T))<X1 AND TEXTWI(WI(T))>X1 THEN SELECTED=T
1990 T=T+1:WEND:T=0:X1=0:Y1=0:GOTO *COMMANDOUT
2000 *TWOCLAUS
2010 IF X1<497 THEN DRAW=1:TEXT=0 ELSE TEXT=1:DRAW=0
2020 IF X1=>497 THEN *TWOPALETTE ELSE *ROOTINES
2030 *TWOPALETTE
2040 T=33:WHILE T<68
2050 IF TEXTVT(VT(T))<Y1 AND TEXTHI(HI(T))>Y1 AND TEXTHR(HR(T))<X1 AND TEXTWI(WI(T))>X1 THEN SELECTED=T
2060 T=T+1:WEND:T=0:X1=0:Y1=0:GOTO *COMMANDOUT
2070 *THREECLAUS
2080 IF X1<497 THEN DRAW=1:TEXT=0 ELSE TEXT=1:DRAW=0
2090 IF X1=>497 THEN *THREEPALETTE ELSE *ROOTINES
2100 *THREEPALETTE
2110 T=67:WHILE T<96
2120 IF TEXTVT(VT(T))<Y1 AND TEXTHI(HI(T))>Y1 AND TEXTHR(HR(T))<X1 AND TEXTWI(WI(T))>X1 THEN SELECTED=T
2130 T=T+1:WEND:T=0:X1=0:Y1=0:GOTO *COMMANDOUT
2140 GOTO *ROOTINES:END IF : END
2150 *FOURCLAUS
2160 IF X1<497 THEN DRAW=1:TEXT=0 ELSE TEXT=1:DRAW=0
2170 IF X1=>497 THEN *FOURPALETTE ELSE *ROOTINES
2180 *FOURPALETTE
2190 T=96:WHILE T<124
2200 IF TEXTVT(VT(T))<Y1 AND TEXTHI(HI(T))>Y1 AND TEXTHR(HR(T))<X1 AND TEXTWI(WI(T))>X1 THEN SELECTED=T
2210 T=T+1:WEND:T=0:X1=0:Y1=0:GOTO *COMMANDOUT
2220 GOTO *ROOTINES:END IF : END
2230 *DRAW GOTO *ROOTINES
2240 *DRAWSETUP
2250 COSINE=1 :SI=1:TT=1:FOR SI=150 TO 300 STEP 1 :COSINE=COSINE*1.034:COSINE(TT)=COSINE:LINE(SI,COSINE(TT))-(SI,COSINE(TT-1)),0:TT=TT+1:NEXT:PRINT COSINE
2260 COSINE=1 :SI=1:FOR SI=150 TO 1 STEP -1 :COSINE=COSINE*1.034:COSINE(TT)=COSINE:LINE(SI,COSINE(TT-1))-(SI,COSINE(TT)),0:TT=TT+1:NEXT:PRINT COSINE
2270 COSINE=1 :FOR SI=1 TO 150 STEP 1 :COSINE=COSINE*1.034:COSINE(TT)=COSINE:LINE(SI+150,300-COSINE(TT-1))-(SI+150,300-COSINE(TT)),0:TT=TT+1:NEXT:PRINT COSINE
2280 COSINE=1 :SI=1:FOR SI=150 TO 1 STEP -1 :COSINE=COSINE*1.034:COSINE(TT)=COSINE:LINE(SI,300-COSINE(TT))-(SI,300-COSINE(TT-1)),0:TT=TT+1:NEXT:PRINT COSINE
2290 CLS 2
2300 TT=1:FOR I=15 TO 30:TT=TT+10:LINE(I,COSINE(TT-9)/10)-(I,COSINE(TT)/10),0:NEXT
2310 TT=1:FOR I=15 TO 1 STEP -1:TT=TT+10:LINE(I,COSINE(TT-9)/10)-(I,COSINE(TT)/10),0:NEXT
2320 TT=1:FOR I=1 TO 15 STEP +1:TT=TT+10:LINE(I+15,30-COSINE(TT-9)/10)-(I+15,30-COSINE(TT)/10),0:NEXT
2330 TT=1:FOR I=15 TO 1 STEP -1:TT=TT+10:LINE(I,30-COSINE(TT-9)/10)-(I,30-COSINE(TT)/10),0:NEXT
2340 CLS 2
2350 TT=1:FOR I=15 TO 30:TT=TT+10:LINE(I,COSINE(TT-9)/ 5)-(I,COSINE(TT)/ 5),0:NEXT
2360 TT=1:FOR I=15 TO 1 STEP -1:TT=TT+10:LINE(I,COSINE(TT-9)/ 5)-(I,COSINE(TT)/ 5),0:NEXT
2370 TT=1:FOR I=1 TO 15 STEP +1:TT=TT+10:LINE(I+15,30-COSINE(TT-9)/ 5+30)-(I+15,30-COSINE(TT)/ 5+30),0:S=S-1:NEXT
2380 TT=1:FOR I=15 TO 1 STEP -1:TT=TT+10:LINE(I,30-COSINE(TT-9)/ 5+30)-(I,30-COSINE(TT)/ 5+30),0:NEXT
2390 CLS 3
2400 TT=1:FOR I=1 TO 15:TT=TT+10:LINE(I,COSINE(TT-9)/10)-(I,COSINE(TT)/10),0:NEXT:PSET(15,0),7
2410 TT=1:FOR I=30 TO 15 STEP -1:TT=TT+10:LINE(I,COSINE(TT-9)/10)-(I,COSINE(TT)/10),0:NEXT:PSET(15,0),7
2420 LINE(0,0)-(0,15),0:LINE(30,0)-(30,15),0:LINE(30,15)-(0,15),0
2430 TT=1:FOR I=1 TO 15 STEP +1:TT=TT+10:LINE(I,30-COSINE(TT-9)/10)-(I,30-COSINE(TT)/10),0:NEXT
2440 TT=1:FOR I=15 TO 1 STEP -1:TT=TT+10:LINE(I+15,30-COSINE(TT-9)/10)-(I+15,30-COSINE(TT)/10),0:NEXT
2450 TT=2:FOR I=1 TO 15 STEP +1:TT=TT+10:LINE(I,30-COSINE(TT-9)/10)-(I,30-COSINE(TT)/10),0:NEXT
2460 TT=2:FOR I=15 TO 1 STEP -1:TT=TT+10:LINE(I+15,30-COSINE(TT-9)/10)-(I+15,30-COSINE(TT)/10),0:NEXT
2470 LINE(0,16)-(0,30),0:LINE(30,16)-(30,30),0:LINE(30,15)-(0,15),0
2480 GET@(0,0)-(30,15),DOOR1:GET@(0,15)-(30,30),DOOR2
2490 CLS 2:REM get@(0,0)-(639,399),"aaa.bmp"
2500 TT=1:FOR I=15 TO 30:TT=TT+10:LINE(I,COSINE(TT-9)/10+15)-(I,COSINE(TT)/10+15),0:NEXT
2510 TT=1:FOR I=15 TO 1 STEP -1:TT=TT+10:LINE(I,COSINE(TT-9)/10+15)-(I,COSINE(TT)/10+15),0:NEXT
2520 TT=1:FOR I=1 TO 15 STEP +1:TT=TT+10:LINE(I+15,30-COSINE(TT-9)/10-15)-(I+15,30-COSINE(TT)/10-15),0:NEXT
2530 TT=1:FOR I=15 TO 1 STEP -1:TT=TT+10:LINE(I,30-COSINE(TT-9)/10-15)-(I,30-COSINE(TT)/10-15),0:NEXT:PSET(30,15),7
2540 LINE(15,0)-(15,30),0:LINE(0,0)-(30,0),0:LINE(30,30)-(0,30),0
2550 GET@(0,0)-(15,30),DOOR3:GET@(15,0)-(30,30),DOOR4:CLS 2
2560 LINE(0,0)-(30,60),0,B:LINE(7,3)-(23,12),0,B:LINE(0,15)-(30,57),0,B
2570 GET@(0,0)-(30,60),BED1:CLS 2
2580 LINE(0,0)-(60,30),0,B:LINE(3,7)-(12,23),0,B:LINE(15,0)-(57,30),0,B
2590 GET@(0,0)-(60,30),BED2:CLS 2
2600 LINE(0,0)-(30,60),0,B:LINE(30-7,60-3)-(30-23,60-12),0,B:LINE(0,60-15)-(30,60-57),0,B
2610 GET@(0,0)-(30,60),BED3:CLS 2
2620 LINE(0,0)-(60,30),0,B:LINE(60-3,30-7)-(60-12,30-23),0,B:LINE(60-15,0)-(60-57,30),0,B
2630 GET@(0,0)-(60,30),BED4:CLS 2
2640 TT=1:FOR I=15 TO 30:TT=TT+10:LINE(I,COSINE(TT-9)/10)-(I,COSINE(TT)/10),0:NEXT
2650 TT=1:FOR I=15 TO 1 STEP -1:TT=TT+10:LINE(I,COSINE(TT-9)/10)-(I,COSINE(TT)/10),0:NEXT
2660 TT=1:FOR I=1 TO 15 STEP +1:TT=TT+10:LINE(I+15,30-COSINE(TT-9)/10)-(I+15,30-COSINE(TT)/10),0:NEXT
2670 TT=1:FOR I=15 TO 1 STEP -1:TT=TT+10:LINE(I,30-COSINE(TT-9)/10)-(I,30-COSINE(TT)/10),0:NEXT
2680 LINE(0,15)-(30,15),0:LINE(15,0)-(15,30),0:PSET(30,0),7
2690 GET@(0,0)-(15,15),DOOR5:GET@(0,15)-(15,30),DOOR6:GET@(15,0)-(30,15),DOOR7:GET@(15,15)-(30,30),DOOR8
2700 CLS 2
2710 FOR I=1 TO 65 STEP 5:LINE(I,3)-(I,23),0:NEXT
2720 TANPT1=61:TANPT2=25:LINE(TANPT1,TANPT2)-(70,3),0:LINE(TANPT1,TANPT2)-(80,3),0:LINE(TANPT1,TANPT2)-(90,3),0
2730 TANPT1=61:TANPT2=25:LINE(TANPT1,TANPT2)-(90,15),0:LINE(TANPT1,TANPT2)-(90,33),0
2740 TANPT1=61:TANPT2=25:LINE(TANPT1,TANPT2)-(90,45),0:LINE(TANPT1,TANPT2)-(80,45),0:LINE(TANPT1,TANPT2)-(70,45),0
2750 FOR I=1 TO 65 STEP 5:LINE(I,27)-(I,45),0:NEXT:LINE(0,23)-(65,27),0,B:LINE(65,25)-(65,27),0:LINE(65,25)-(0,25),0
2760 LINE(0,3)-(90,3),0:LINE(90,3)-(90,45),0:LINE(65,25)-(90,25),0:LINE(90,45)-(0,45),0:LINE(0,0)-(93,48),0,B
2770 GET@(0,0)-(93,48),STAIR1
2780 CLS 2
2790 FOR I=23 TO 93 STEP 5:LINE(I,3)-(I,23),0:NEXT
2800 TANPT1=25:TANPT2=25:LINE(TANPT1,TANPT2)-( 3,3),0:LINE(TANPT1,TANPT2)-(13,3),0:LINE(TANPT1,TANPT2)-(3,13),0
2810 TANPT1=25:TANPT2=25:LINE(TANPT1,TANPT2)-(15,25),0:LINE(TANPT1,TANPT2)-(20,33),0
2820 TANPT1=25:TANPT2=25:LINE(TANPT1,TANPT2)-( 3,45),0:LINE(TANPT1,TANPT2)-(13,45),0:LINE(TANPT1,TANPT2)-(3 ,35),0
2830 FOR I=23 TO 93 STEP 5:LINE(I,27)-(I,45),0:NEXT:LINE(25,23)-(93,27),0,B:LINE(15,25)-(3,25),0
2840 LINE(3,25)-(23,25),0:LINE( 3,3)-( 3,45),0:LINE(15,25)-( 3,25),0::LINE(0,0)-(93,48),0,B:LINE(3,3)-(93,45),0,B
2850 GET@(0,0)-(93,48),STAIR2
2860 CLS 2
2870 FOR I=23 TO 93 STEP 5:LINE(3,I)-(23,I),0:NEXT
2880 TANPT1=25:TANPT2=25:LINE(TANPT1,TANPT2)-( 3,3),0:LINE(TANPT1,TANPT2)-(3,13),0:LINE(TANPT1,TANPT2)-(13,3),0
2890 TANPT1=25:TANPT2=25:LINE(TANPT1,TANPT2)-(25,15),0:LINE(TANPT1,TANPT2)-(33,20),0
2900 TANPT1=25:TANPT2=25:LINE(TANPT1,TANPT2)-(45, 3),0:LINE(TANPT1,TANPT2)-(45,13),0:LINE(TANPT1,TANPT2)-(35, 3),0
2910 FOR I=23 TO 93 STEP 5:LINE(27,I)-(45,I),0:NEXT:LINE(23,23)-(27,93),0,B:LINE(25,23)-(25,93),0
2920 LINE(25,3)-(25,23),0:LINE( 3,3)-(45, 3),0:LINE(25,15)-(25, 3),0::LINE(0,0)-(48,93),0,B:LINE(3,3)-(45,93),0,B
2930 GET@(0,0)-(48,93),STAIR3
2940 CLS 2
2950 FOR I=1 TO 65 STEP 5:LINE(3,I)-(23,I),0:NEXT
2960 TANPT1=25:TANPT2=61:LINE(TANPT1,TANPT2)-(3,70),0:LINE(TANPT1,TANPT2)-(3,80),0:LINE(TANPT1,TANPT2)-(3,90),0
2970 TANPT1=25:TANPT2=61:LINE(TANPT1,TANPT2)-(15,90),0:LINE(TANPT1,TANPT2)-(33,90),0
2980 TANPT1=25:TANPT2=61:LINE(TANPT1,TANPT2)-(45,90),0:LINE(TANPT1,TANPT2)-(45,80),0:LINE(TANPT1,TANPT2)-(45,70),0
2990 FOR I=1 TO 65 STEP 5:LINE(27,I)-(45,I),0:NEXT:LINE(23,0)-(27,65),0,B:LINE(25,65)-(27,65),0:LINE(25,65)-(25,0),0
3000 LINE(3,0)-(3,90),0:LINE(3,90)-(45,90),0:LINE(25,65)-(25,90),0:LINE(45,90)-(45,0),0:LINE(0,0)-(48,93),0,B
3010 GET@(0,0)-(48,93),STAIR4
3020 *EV CLS 2
3030 STRN$(1,1)="7777777777777777"
3040 STRN$(2,1)="7000000000000000"
3050 STRN$(3,1)="7077777777777770"
3060 STRN$(4,1)="7077707777707770"
3070 STRN$(5,1)="7077000777000770"
3080 STRN$(6,1)="7077707777707770"
3090 STRN$(7,1)="7070000070000070"
3100 STRN$(8,1)="7070000070000070"
3110 STRN$(9,1)="7070000070000070"
3120 STRN$(10,1)="7077070777070770"
3130 STRN$(11,1)="7077070777070770"
3140 STRN$(12,1)="7077070777070770"
3150 STRN$(13,1)="7000000000000000"
3160 FOR U=1 TO 13:FOR D=1 TO 16:MAPPER(D,U,1)=VAL(MID$(STRN$(U,1),D,1)):PSET(D,U),MAPPER(D,U,1):NEXT D,U
3170 GET(1,1)-(16,13),EV1:CLS 2
3180 STRN$(1,2)="7777777777777777"
3190 STRN$(2,2)="7770777777770777"
3200 STRN$(3,2)="7700077777770777"
3210 STRN$(4,2)="7000007777770777"
3220 STRN$(5,2)="7770777777770777"
3230 STRN$(6,2)="7770777777770777"
3240 STRN$(7,2)="7770777777000007"
3250 STRN$(8,2)="7770777777700077"
3260 STRN$(9,2)="7770777777770777"
3270 STRN$(10,2)="7777777777777777"
3280 STRN$(11,2)="7000000000000007"
3290 STRN$(12,2)="7000000000000007"
3300 STRN$(13,2)="7777777777777777"
3310 FOR U=1 TO 13:FOR D=1 TO 16:MAPPER(D,U,2)=VAL(MID$(STRN$(U,2),D,1)):PSET(D,U),MAPPER(D,U,2):NEXT D,U
3320 GET(1,1)-(16,13),EV2:CLS 2
3330 PUT@(1,1),EV1:PUT@(17,1),EV2:GET@(1,1)-(32,13),EV3
3340 CLS 2:PUT@(1,1),EV1:PUT@(1,14),EV2:GET@(1,1)-(16,26),EV4:CLS 2
3350 STRN$(1,3)="7777777777777777"
3360 STRN$(2,3)="7777770007777777"
3370 STRN$(3,3)="7777700000777777"
3380 STRN$(4,3)="7777770007777777"
3390 STRN$(5,3)="7770000000007777"
3400 STRN$(6,3)="7777000000077777"
3410 STRN$(7,3)="7777000000077777"
3420 STRN$(8,3)="7777700000777777"
3430 STRN$(9,3)="7777700000777777"
3440 STRN$(10,3)="7777770007777777"
3450 STRN$(11,3)="7777770007777777"
3460 STRN$(12,3)="7777777077777777"
3470 STRN$(13,3)="7777777077777777"
3480 FOR U=1 TO 13:FOR D=1 TO 16:MAPPER(D,U,3)=VAL(MID$(STRN$(U,3),D,1)):PSET(D,U),MAPPER(D,U,3):NEXT D,U
3490 GET(1,1)-(16,13),TOILE1:CLS 2
3500 STRN$(1,4)="7777777777777777"
3510 STRN$(2,4)="7777770007777777"
3520 STRN$(3,4)="7777700000777777"
3530 STRN$(4,4)="7777770007777777"
3540 STRN$(5,4)="7777770007777777"
3550 STRN$(6,4)="7777770007777777"
3560 STRN$(7,4)="7777700000777777"
3570 STRN$(8,4)="7777000000077777"
3580 STRN$(9,4)="7777000000077777"
3590 STRN$(10,4)="7770000000007777"
3600 STRN$(11,4)="7777770007777777"
3610 STRN$(12,4)="7777777077777777"
3620 STRN$(13,4)="7777777077777777"
3630 FOR U=1 TO 13:FOR D=1 TO 16:MAPPER(D,U,4)=VAL(MID$(STRN$(U,4),D,1)):PSET(D,U),MAPPER(D,U,4):NEXT D,U
3640 GET(1,1)-(16,13),TOILE2
3650 PUT@(1,1),TOILE1:LINE(17,0)-(17,13),0:PUT@(18,1),TOILE2:GET@(1,1)-(34,13),TOILE3
3660 STRN$(1,5)="7777700000077777"
3670 STRN$(2,5)="7700077777700077"
3680 STRN$(3,5)="7077777777777707"
3690 STRN$(4,5)="0777777777777770"
3700 STRN$(5,5)="0777777777777770"
3710 STRN$(6,5)="0777777777777770"
3720 STRN$(7,5)="0777777777777770"
3730 STRN$(8,5)="0777777777777770"
3740 STRN$(9,5)="0777777777777770"
3750 STRN$(10,5)="7077777777777707"
3760 STRN$(11,5)="7700077777700077"
3770 STRN$(12,5)="7777700000077777"
3780 STRN$(13,5)="7777777777777777"
3790 FOR U=1 TO 13:FOR D=1 TO 16:MAPPER(D,U,5)=VAL(MID$(STRN$(U,5),D,1)):PSET(D,U),MAPPER(D,U,5):NEXT D,U
3800 GET@(1,1)-(8,7),ELPO1:GET@(9,1)-(16,7),ELPO2:GET@(1,8)-(9,13),ELPO3:GET@(9,8)-(16,13),ELPO4:CLS 2
3810 LINE(1,1)-(57,30),0,B:PUT@(5,5),ELPO1:PUT@(44,5),ELPO2:PUT@(5,22),ELPO3:PUT@(44,22),ELPO4:LINE(4,10)-(4,22),0:LINE(9,5)-(44,5),0:LINE(52,12)-(52,21),0:LINE(14,26)-(43,26),0:GET@(0,0)-(57,30),BATH1:CLS 2
3820 LINE(1,1)-(30,57),0,B:PUT@(5,5),ELPO1:PUT@(5,48),ELPO3:PUT@(18,5),ELPO2:PUT@(18,48),ELPO4:LINE(13,5)-(18,5),0:LINE(5,9)-(5,48),0:LINE(12,52)-(21,52),0:LINE(26,11)-(26,48),0:GET@(0,0)-(30,57),BATH2:CLS 2
3830 STRN$(1,6)="7777777777777777"
3840 STRN$(1,6)="7770000777777777"
3850 STRN$(2,6)="7707777077777777"
3860 STRN$(3,6)="7707777077777777"
3870 STRN$(4,6)="7770000770000777"
3880 STRN$(5,6)="7777777707777077"
3890 STRN$(6,6)="7777777707777077"
3900 STRN$(7,6)="7770000770000777"
3910 STRN$(8,6)="7707777077777777"
3920 STRN$(9,6)="7707777077777777"
3930 STRN$(10,6)="7770000777777777"
3940 STRN$(11,6)="7777777777777777"
3950 STRN$(12,6)="7777777777777777"
3960 FOR U=1 TO 12:FOR D=1 TO 16:MAPPER(D,U,6)=VAL(MID$(STRN$(U,6),D,1)):PSET(D,U),MAPPER(D,U,6):NEXT D,U:GET@(1,1)-(16,12),CONRO
3970 STRN$(1,7)="7777777777777777"
3980 STRN$(1,7)="7777777777777777"
3990 STRN$(2,7)="7777707770770777"
4000 STRN$(3,7)="7777077707707777"
4010 STRN$(4,7)="7770777077077777"
4020 STRN$(5,7)="7777077077077777"
4030 STRN$(6,7)="7777707707707777"
4040 STRN$(7,7)="7777770770777777"
4050 STRN$(8,7)="7700707707700777"
4060 STRN$(9,7)="7077077077777077"
4070 STRN$(10,7)="7077777777777077"
4080 STRN$(11,7)="7077777777777077"
4090 STRN$(12,7)="7707777777770777"
4100 STRN$(13,7)="7770000000007777"
4110 FOR U=1 TO 13:FOR D=1 TO 16:MAPPER(D,U,7)=VAL(MID$(STRN$(U,7),D,1)):PSET(D,U),MAPPER(D,U,7):NEXT D,U:GET@(1,1)-(16,13),BIGBATH
4120 STRN$(1,8)="7777707777777777"
4130 STRN$(2,8)="7777707777777077"
4140 STRN$(3,8)="7777000777777077"
4150 STRN$(4,8)="7777000777770007"
4160 STRN$(5,8)="7777000777770077"
4170 STRN$(6,8)="7707777777777077"
4180 STRN$(7,8)="7700000007777077"
4190 STRN$(8,8)="7077777770777077"
4200 STRN$(9,8)="7070000070770007"
4210 STRN$(10,8)="7070777770770007"
4220 STRN$(11,8)="7077000007770007"
4230 STRN$(12,8)="7077777777777077"
4240 STRN$(13,8)="7700000000770007"
4250 FOR U=1 TO 13:FOR D=1 TO 16:MAPPER(D,U,8)=VAL(MID$(STRN$(U,8),D,1)):PSET(D,U),MAPPER(D,U,8):NEXT D,U:GET(1,1)-(16,13),FIREKILLER1
4260 STRN$(1,9)="7777777777777777"
4270 STRN$(2,9)="7777777077777777"
4280 STRN$(3,9)="7777777077777777"
4290 STRN$(4,9)="7777770007777777"
4300 STRN$(5,9)="7777770007777777"
4310 STRN$(6,9)="7777700000777777"
4320 STRN$(7,9)="7777700000777777"
4330 STRN$(8,9)="7777000000077777"
4340 STRN$(9,9)="7777000000077777"
4350 STRN$(10,9)="7777700000777777"
4360 STRN$(11,9)="7777770007777777"
4370 STRN$(12,9)="7777777777777777"
4380 STRN$(13,9)="7777777777777777"
4390 FOR U=1 TO 13:FOR D=1 TO 16:MAPPER(D,U,9)=VAL(MID$(STRN$(U,9),D,1)):PSET(D,U),MAPPER(D,U,9):NEXT D,U:GET(1,1)-(16,13),FIREKILLER2
4400 STRN$(1,9)="7777777777777777"
4410 STRN$(2,9)="7777777777777777"
4420 STRN$(3,9)="7777777777777777"
4430 STRN$(4,9)="7777777777777777"
4440 STRN$(5,9)="7777777777777777"
4450 STRN$(6,9)="7770000077777777"
4460 STRN$(7,9)="7770777077777777"
4470 STRN$(8,9)="7770000077777777"
4480 STRN$(9,9)="7777707777777777"
4490 STRN$(10,9)="7777700000000077"
4500 STRN$(11,9)="7777707777777707"
4510 STRN$(12,9)="7777707777777707"
4520 STRN$(13,9)="7777777777777777"
4530 FOR U=1 TO 13:FOR D=1 TO 16:MAPPER(D,U,9)=VAL(MID$(STRN$(U,9),D,1)):PSET(D,U),MAPPER(D,U,9):NEXT D,U:GET(0,5)-(15,13),WATHER1
4540 STRN$(1,10)="7777777777777777"
4550 STRN$(1,10)="7777777777777777"
4560 STRN$(2,10)="7777777777777777"
4570 STRN$(3,10)="7777777777777777"
4580 STRN$(4,10)="7777777777777777"
4590 STRN$(5,10)="7777777777777777"
4600 STRN$(6,10)="7777777777700077"
4610 STRN$(7,10)="7700007777077707"
4620 STRN$(8,10)="7077770777077770"
4630 STRN$(9,10)="0700000777077707"
4640 STRN$(10,10)="0700007070077077"
4650 STRN$(11,10)="0777707007077077"
4660 STRN$(12,10)="7000000700070777"
4670 STRN$(13,10)="7777770000000777"
4680 FOR U=1 TO 13:FOR D=1 TO 16:MAPPER(D,U,10)=VAL(MID$(STRN$(U,10),D,1)):PSET(D,U),MAPPER(D,U,10):NEXT D,U:GET@(1,1)-(16,13),WATHER2
4690 STRN$(1,11)="7777000000077777"
4700 STRN$(2,11)="7700777077700777"
4710 STRN$(3,11)="7077777077777077"
4720 STRN$(4,11)="0777777077777707"
4730 STRN$(5,11)="0777777077777707"
4740 STRN$(6,11)="0000000000000007"
4750 STRN$(7,11)="0777777077777707"
4760 STRN$(8,11)="0777777077777707"
4770 STRN$(9,11)="7077777077777077"
4780 STRN$(10,11)="7700777077700777"
4790 STRN$(11,11)="7777000000077777"
4800 STRN$(12,11)="7777777777777777"
4810 STRN$(13,11)="7777777777777777"
4820 FOR U=1 TO 13:FOR D=1 TO 16:MAPPER(D,U,11)=VAL(MID$(STRN$(U,11),D,1)):PSET(D,U),MAPPER(D,U,11):NEXT D,U:GET@(1,1)-(8,5),SHOW1:GET@(9,1)-(15,6),SHOW2:GET@(1,6)-(7,11),SHOW3:GET@(8,7)-(15,11),SHOW4
4830 GET@(1,1)-(7,6),SHOW5:GET@(8,1)-(15,5),SHOW6:GET@(1,7)-(8,11),SHOW7:GET@(9,6)-(15,11),SHOW8
4840 PUT@(1,1),SHOW2:PUT@(9,1),SHOW1:PUT@(1,7),SHOW4:PUT@(9,7),SHOW3:GET@(1,1)-(16,6),SHOW1B:GET@(1,7)-(16,14),SHOW2B
4850 PUT@(1,1),SHOW3:PUT@(9,1),SHOW4:PUT@(1,7),SHOW1:PUT@(9,7),SHOW2:GET@(1,1)-(8,12),SHOW3B:GET@(9,1)-(16,12),SHOW4B
4860 CLS 2
4870 STRN$(1,11)="7777777777777777"
4880 STRN$(2,11)="7777777777777777"
4890 STRN$(3,11)="7777777777777777"
4900 STRN$(4,11)="7777770000777777"
4910 STRN$(5,11)="7777707777077777"
4920 STRN$(6,11)="7777707777077777"
4930 STRN$(7,11)="7777770000777777"
4940 STRN$(8,11)="7777777777777777"
4950 STRN$(9,11)="7700007777000077"
4960 STRN$(10,11)="7077770770777707"
4970 STRN$(11,11)="7077770770777707"
4980 STRN$(12,11)="7700007777000077"
4990 STRN$(13,11)="7777777777777777"
5000 CLS 2
5010 LINE(2,2)-(4,1),0:LINE(4,1)-(13,1),0:LINE(13,1)-(16,4),0:LINE(16,4)-(16,10),0:LINE(16,10)-(14,12),0:LINE(14,12)-(4,12),0:LINE(4,12)-(1,10),0:LINE(1,10)-(1,4),0:LINE(1,4)-(4,1),0:GET@(1,1)-(16,13),WASHTABLE1
5020 CLS 2
5030 LINE(4,1)-(1,4),0:LINE(1,4)-(1,13),0:LINE(1,13)-(4,16),0:LINE(4,16)-(10,16),0:LINE(10,16)-(12,13),0:LINE(12,14)-(12,4),0:LINE(12,4)-(10,1),0:LINE(10,1)-(4,1),0:LINE(4,1)-(1,4),0:GET@(1,1)-(13,16),WASHTABLE2
5040 CLS 2
5050 FOR U=1 TO 13:FOR D=1 TO 16:MAPPER(D,U,11)=VAL(MID$(STRN$(U,11),D,1)):PSET(D,U),MAPPER(D,U,11):NEXT D,U:GET@(1,3)-(16,13),CONRO2:LINE(68,22)-(58,18),0,B:CLS 2
5060 PUT@(6,6),CONRO2:LINE(4,4)-(26,20),0,B:LINE(26,4)-(48,20),0,B:LINE(48,4)-(70,20),0,B:LINE(1,1)-(73,23),0,B:PUT@(30,23),SHOW2B:PUT@(53,23),SHOW2B:LINE(5,23)-(15,32),0,B:PUT@(30,7),WASHTABLE1:LINE(67,18)-(55,10),0,B:GET@(1,1)-(73,32),KITCHIN1
5070 CLS 2:PUT@(6,6),CONRO2:LINE(4,4)-(20,26),0,B:LINE(4,26)-(20,48),0,B:LINE(4,48)-(20,70),0,B:LINE(1,1)-(23,73),0,B:PUT@(23,30),SHOW4B:PUT@(23,53),SHOW4B:LINE(23,5)-(32,15),0,B:PUT@(7,30),WASHTABLE2:LINE(18,67)-(10,55),0,B:GET@(1,1)-(73,32),KITCHIN2
5080 CLS 2
5090 FOR U=1 TO 12:D2=0:FOR D=16 TO 1 STEP -1:D2=D2+1:MAPPER(D,U,12)=VAL(MID$(STRN$(U,6),D,1)):PSET(D2,U),MAPPER(D,U,12):NEXT D,U:GET@(1,1)-(16,12),CONRO3
5100 U2=0:FOR U=13 TO 1 STEP -1:U2=U2+1:FOR D=1 TO 16 STEP +1:MAPPER(D,U,13)=VAL(MID$(STRN$(U,11),D,1)):PSET(D,U2),MAPPER(D,U,13):NEXT D,U:GET@(1,1)-(16,12),CONRO4
5110 CLS 2:LINE(15,6)-(22,18),0,B:PUT@(15,52),CONRO4:LINE(13,4)-(28,26),0,B:LINE(13,26)-(28,48),0,B:LINE(13,48)-(28,70),0,B:LINE(9,1 )-(32,73),0,B:PUT@(4,6),SHOW3B:PUT@(4,30),SHOW3B:LINE(1,60)-(9,69),0,B:PUT@(15,30),WASHTABLE1:GET@(1,1)-(73,32),KITCHIN3
5120 CLS 2:PUT@(6,6),CONRO2:LINE(4,4)-(26,20),0,B:LINE(26,4)-(48,20),0,B:LINE(48,4)-(70,20),0,B:LINE(1,1)-(73,23),0,B:PUT@(30,23),SHOW2B:PUT@(53,23),SHOW2B:LINE(5,23)-(15,32),0,B:PUT@(30,7),WASHTABLE1:LINE(67,18)-(55,10),0,B:GET@(1,1)-(73,32),KITCHIN4
5130 CLS 3
5140 STRN$(1,12)="7777777777777777"
5150 STRN$(2,12)="7777777777777777"
5160 STRN$(3,12)="7777777777777777"
5170 STRN$(4,12)="7777770000000077"
5180 STRN$(5,12)="7777007777700077"
5190 STRN$(6,12)="7700777770077077"
5200 STRN$(7,12)="7000000007777077"
5210 STRN$(8,12)="7077777707777077"
5220 STRN$(9,12)="7077777707777077"
5230 STRN$(10,12)="7077777707700777"
5240 STRN$(11,12)="7077777700077777"
5250 STRN$(12,12)="7000000007777777"
5260 STRN$(13,12)="7777777777777777"
5270 CLS 2
5280 FOR U=1 TO 13:FOR D=1 TO 16:MAPPER(D,U,12)=VAL(MID$(STRN$(U,12),D,1)):PSET(D,U),MAPPER(D,U,12):NEXT D,U:GET@(2,4)-(15,12),ICE:CLS 2
5290 LINE(1,1)-(26,26),0,B:LINE(3,3)-(23,23),0,B:PUT@(8,8),ICE:PUT@(5 ,26),DOOR6:GET@(1,1)-(26,42),FRIDGE1
5300 CLS 2:GOTO *MENUS

*********************
PSET EDITOR


10 REM *****************************************
20 REM * Programed by Dai Fukuoka 2011.01.7 *
30 REM * copyright 2011.01.7-1.30 *
40 REM * DotPresetEditor2011β *
50 REM *****************************************7430-7680 8330
51 *START
60 WIDTH 80,25:CONSOLE 0,25,0,1:SCREEN 3,0,0,1:COLOR 0,7,0,7,2:CLS 2
70 YY$=LEFT$(DATE$,2):MM$=RIGHT$(DATE$,5):MM$=LEFT$(MM$,2):DD$=RIGHT$(DATE$,2)
80 MOUSE(2)ON:MOUSE(3)ON
90 REM ON ERROR GOTO *ERRCD
100 LET FLAGS$="LINE":LET LMP=7:LET RMP=0:CX=1:CY=1
110 LET FLX=0:LET FLY=0:LET FLS=2::D=0:C=0:CP=7:LET LAY=0
120 LET RST=0:IVC=99:DIM IVX(99):DIM IVY(99):LET LAY=0:LET BG=0:LET BC=0
130 DIM UDX(99):DIM UDY(99):DIM UDF$(99):DIM UNDO(64,64,99)
140 DIM LAYER(65,65,7):DIM DITH(64,64,4):DIM W(64,64):DIM T(64,64):
150 DIM UDXL(99):DIM UDYL(99):DIM MOVABLEMAP(8,8,5)
160 DIM Y(64,64):DIM LAYER$(65,65,7):LET LAYER$="":DIM DATAFLOOR$(64,7)
170 DIM MASK(64,64):DIM IVPENTRM(99):REM DIM IVPENX(4096,99):DIM IVPENY(4096,99)
180 DIM IVXL(64,99):DIM IVYL(64,99):DIM IVFLAGS$(99)
190 DIM RAMSAVE(64,64,7):DIM IVENTMOTION(256,8,64):DIM IMF$(256,64)
200 DIM DARKSOLID(64,64):DIM HEVYPALE(64,64):DIM HEVYHARF(64,64):DIM HARF(64,64):
210 DIM LIGHT(64,64):DIM LIGHTPALE(64,64):DIM LIGHTSOLID(64,64):DIM CP(128,128,8)
220 DIM DM$(8,8):DIM DM(64,64,8):DIM DM2(64,64,8):DIM CHECKBOX(64,64):DIM MLCLOUMN(80,25,2):DIM MLC(80):DIM MLF(25):DIM MLCP(80):DIM MLFP(25)
230 IF MOVABLEMAP(SELECTBLOCX,SELECTBLOCY,1)=8 THEN GOSUB *BLUPMASK
240 IF MOVABLEMAP(SELECTBLOCX,SELECTBLOCY,2)=4 THEN GOSUB *BLLFMASK
250 IF MOVABLEMAP(SECECTBLOCX,SELECTBLOCY,3)=6 THEN GOSUB *BLRIMASK
260 IF POINT(639,399)=POINT(639,479) THEN SHOWVIEW=1 ELSE SHOWVIEW=-1
270 *NEARDISTANCE LET X=0:LET Y=0
280 IF SHOWVIEW=-1 THEN FOR I=0 TO 79:MLC(I)=X :X=X+ 8 :NEXT
290 IF SHOWVIEW=-1 THEN FOR I=0 TO 24:MLF(I) = Y:Y=Y+16 :NEXT
300 IF SHOWVIEW= 1 THEN FOR I=0 TO 24:MLF(I) = Y:Y=Y+19.2#:NEXT
310 *LONGDISTANCE LET X=0:LET Y=0
320 IF SHOWVIEW=-1 THEN FOR I=0 TO 79:X=X+ 8 :MLCP(I) =X-1:NEXT
330 IF SHOWVIEW=-1 THEN FOR I=0 TO 24:Y=Y+16 :MLFP(I) =Y-1:NEXT
340 IF SHOWVIEW= 1 THEN FOR I=0 TO 24:Y=Y+19.2#:MLFP(I) =Y-1:NEXT
350 ::
360 DIM BLPASS(8,8):DIM BLSTART(8,8)
370 LET DFL=1
380 REM GOSUB *DITHERMAPPING:GOSUB *DITHERFILTERLING:GOSUB *PREDISPLAYPASS
390 *RUNNINGPROGRAM
400 REM GOSUB *DITHERFILTERLING
410 LINE(0,0)-(640,480),15,BF:LINE(20,20)-(468,468),0,BF
420 FOR I=20 TO 468 STEP 7:LINE (I,20)-(I,468),12:NEXT I
430 FOR T=20 TO 468 STEP 7:LINE (20,T)-(468,T),12:NEXT T
440 LINE (488,18)-(616,468),7,BF:COLOR 0:LOCATE 61,2:PRINT"COLOR PALLETE"
450 I=0:FOR C=61 TO 76:LINE (MLC(C),MLF(2))-(MLCP(C),MLFP(2)),I,BF:I=I+1:NEXT C:GOSUB *REFRESHTXT:GOTO *SETTING
460 *REFRESHTXT
470 COLOR 0:LOCATE 61,2:PRINT"COLOR PALLETE"
480 LOCATE 61,5:PRINT"COLOR LEVEL 0":LOCATE 61,6:PRINT"000 RGB"
490 LOCATE 61,7:PRINT"0123456789ABCDEF"
500 LOCATE 61,8:PRINT"DITHER 0-7< 01 >":LOCATE 61,10:PRINT"TOOL BOX"
510 LOCATE 61,11:PRINT"LINE / CARV":LOCATE 61,12:PRINT"PAINT / DOT"
520 LOCATE 61,13:PRINT"LAYER 012345 M/C":LOCATE 61,14:PRINT"PEN C / B 3 5":LOCATE 61,15:PRINT"SPOIT / GLID"
530 LOCATE 61,16:PRINT"UNDO 00 / RESET"
540 LOCATE 61,18:PRINT"FILE COMMAND":LOCATE 61,19:PRINT"RAM SAVE LOAD":LOCATE 61,20:PRINT"DISK SAVE LOAD"
550 LOCATE 61,21:PRINT":MYPIC"+YY$+MM$+DD$+".ASC":LOCATE 61,22:PRINT"STATUS"
560 LOCATE 61,23:PRINT"MATRIX X:64 Y:64":LOCATE 61,24:PRINT"/ LINE"
570 RETURN:::::
580 *SETTING
590 FOR X=0 TO 1:FOR I=1 TO 64:FOR T=1 TO 64:LET LAYER(I,T,X)=0:NEXT T:NEXT I:NEXT X
600 P=1:LBX=4:LBY=13:GOSUB *CP
610 P=2:LBX=11:LBY=13:GOSUB *CP
620 P=3:LBX=7:LBY=7:GOSUB *CP
630 P=5:LBX=0:LBY=5:GOSUB *CP
640 P=4:LBX=5:LBY=5:GOSUB *CP
650 P=0:LBX=0:LBY=2:GOSUB *CP
660 P=6:LBX=7:LBY=2:GOSUB *CP
670 GOTO *ASKIP
680 *LOBX
690 I=61:WHILE I<76:I=I+1:IF I<>LBX THEN WEND ELSE *LOBXA
700 *LOBXA:LINE(MLC(LBX),MLF(LBY))-(MLCP(LBX),MLFP(LBY)),P,B:RETURN
710 *CP:I=61:WHILE I<76:I=I+1:IF NOT I=LBX THEN ELSE GOSUB *CPB:GOTO *LOBF
711 WEND
720 *CPB:LINE(MLC(LBX+61),MLF(LBY))-(MLCP(LBX+61),MLFP(LBY)),P,B:RETURN
730 *LOBF I=61:WHILE I<76:I=I+1:IF NOT I=LBX THEN ELSE GOSUB *LOBFA:RETURN
731 WEND
740 *LOBFA
750 *ASKIP CX=1:CY=1:X=1:Y=1:LB=0:RB=0
760 LET A=0
770 *GOMOUSE CXB=CX:CYB=CY:XB=X:YB=Y
780 *CLICKMOUSE
790 X=MOUSE(0):Y=MOUSE(1)
800 IF CX<>MOUSE(4,1) OR CY<>MOUSE(5,1) THEN IF CX<>0 AND CY<>0 THEN CX=MOUSE(4,1):CY=MOUSE(5,1)
810 RCX=MOUSE(4,2):RCY=MOUSE(5,2):IF RCX<>O OR RCY<>0 THEN RB=1
820 GOTO *MOUSEIF:
830 *GTM GOTO *GOMOUSE
840 *MOUSEIF IF CXB<>CX OR CYB<>CY OR XB<>X OR YB<>Y THEN *MENUS ELSE *GTM
850 GOTO *MENUS
860 END
870 *MENUS IF CX<469 OR X<469 THEN *AREASC ELSE IF CX>469 OR X>469 THEN *TOOLS
880 END
890 *AREASC
900 GOTO *FIELDCNT
910 COLOR 7
920 *FLAGC
930 IF FLAGS$="DOT" THEN *FDOT ELSE IF FLAGS$="LINE" THEN *FLINE ELSE IF FLAGS$="CARV" THEN *FCARV
940 IF FLAGS$="PAINT" THEN *FPAINT ELSE IF FLAGS$="PEN" THEN *FPEN ELSE *AREASC
950 END
960 *FIELDCNT: COLOR 7:XX=1:YY=1
970 IF RST<>0 THEN *SKRSFC ELSE RST=1
980 LET MCXX=0:MCYY=0:MCXB=0:MCYB=0:MCX=0:MCY=0:MCXR=0:MCYR=0:MSX=0:MSY=0:FMX=0:FMY=0:
990 LET MCNX=0:MCNY=0:MCLX=0:MCLY=0:MCLBX=0:MCLBY=0:
1000 LET CLY=0:CLX=0:MSX=0:MSY=0:MCCL=0:MCCR=0:MDAD=0:MDADR=0:XXL=0:YYL=0:
1010 *SKRSFC
1020 MSXB=MSX:MSYB=MSY:MCXB=MCX:MCYB=MCY:MCXRB=MCXR:MCYRB=MCYR
1030 IF IVE=1 AND IVC=1 THEN IVC=99
1040 IF MCX=0 OR MCY=0 THEN MCX=MSX:MCY=MSY
1050 MSX=MOUSE(0):MSY=MOUSE(1):MCCL=MOUSE(3,1):MCCR=MOUSE(3,2):MDAD=MOUSE(2,1):MDADR=MOUSE(2,2)
1060 IF MSX=0 OR MSY=0 THEN MSX=MOUSE(0):MSY=MOUSE(1)
1070 *COUNTERA
1080 IF IVC>1 AND UDX(IVC)=UDX(IVC-1) AND UDY(IVC)=UDY(IVC-1) AND NOT UDX(IVC)=0 AND FLAGS$="LINE" THEN *DOUBLEPROCESS
1090 IF IVC>1 AND UDX(IVC)=UDX(IVC-1) AND UDY(IVC)=UDY(IVC-1) AND NOT UDX(IVC)=0 AND FLAGS$="CARV" THEN *DOUBLEPROCESS
1100 IF IVC>1 AND IVX(IVC)+4>IVX(IVC-1) AND IVX(IVC)-4<IVX(IVC-1) AND IVY(IVC)+4>IVY(IVC-1) AND IVY(IVC)-4<IVY(IVC-1) AND NOT IVX(IVC)=0 AND FLAGS$="LINE" THEN *DOUBLEPROCESS
1110 IF IVC>1 AND IVX(IVC)+4>IVX(IVC-1) AND IVX(IVC)-4<IVX(IVC-1) AND IVY(IVC)+4>IVY(IVC-1) AND IVY(IVC)-4<IVY(IVC-1) AND NOT IVX(IVC)=0 AND FLAGS$="CARV" THEN *DOUBLEPROCESS
1120 LOCATE 0,0:PRINT " "
1130 *DSKIP
1140 CLX=0:CLY=0:RB=0:T=0:WHILE T<1
1150 IF MCCL<>MOUSE(3,1) THEN CPASS=1:MCCL=MOUSE(3,1)
1160 IF MCCR<>MOUSE(3,2) THEN RB=1:CPASS=2:MCCR=MOUSE(3,2)
1170 IF CPASS=1 THEN CPASS=0:T=1:CLX=MOUSE(4,1):CLY=MOUSE(5,1)
1180 IF CPASS=2 THEN CPASS=0:T=1:MCYR=MOUSE(5,2):MCXR=MOUSE(4,2)
1190 WEND::MSX=MOUSE(0):MSY=MOUSE(1):LOCATE 20,10:PRINT"CLICK"
1200 IF CLX<20 OR CLY<20 OR CLY>468 THEN *COUNTERA
1210 IF RB=1 THEN IF MCXR<20 OR MCYR<20 OR MCXR>468 OR MCYR>468 THEN *COUNTERA
1220 IVC=IVC+1:IF IVC=100 THEN IVC=1
1230 IF CLX>468 THEN IVX(IVC)=CLX:IVY(IVC)=CLY:GOTO *TOOLS
1240 IF CLX=0 OR CLY=0 THEN IF RB=0 THEN *COUNTERA
1250 IF CLX=MCX AND CLY=MCY AND FLAGS$="LINE" THEN IF DOUBLE=0 THEN *DOUBLEPROCESS
1260 IF CLX=MCX AND CLY=MCY AND FLAGS$="CARV" THEN IF DOUBLE=0 THEN *DOUBLEPROCESS
1270 IF CLX+5>MCX AND CLX-5<MCX AND CLY+5>MCY AND CLY-5<MCY AND FLAGS$="LINE" THEN IF DOUBLE=0 THEN *DOUBLEPROCESS
1280 IF CLX+5>MCX AND CLX-5<MCX AND CLY+5>MCY AND CLY-5<MCY AND FLAGS$="CARV" THEN IF DOUBLE=0 THEN *DOUBLEPROCESS
1290 IF MCX<>CLX OR MCY<>CLY AND CLX<>0 AND CLY<>0 THEN MCX=CLX:MCY=CLY:LOCATE 20,10:PRINT"CLICKB"
1300 IF MSX=0 OR MSY=0 THEN MSX=MOUSE(0):MSY=MOUSE(1)
1310 IF MCX=0 OR MCY=0 THEN MCX=MOUSE(4,1):MCY=MOUSE(5,1)
1320 MCX=CLX:MCY=CLY
1330 *LBBLC
1340 IF IVC=100 THEN IVC=1
1350 DOUBLE=0
1360 IF MCX>468 AND MCX<20 OR MCY>468 OR MCY<20 THEN *AREASC
1370 IF MCX=MCXM AND MCY=MCYM THEN *RBBLC
1380 MCXX=MCX:IVX(IVC)=MCX:MCYY=MCY:IVY(IVC)=MCY
1390 REM IF IVX(IVC-1)=MCX OR IVY(IVC-1)=MCY THEN DOUBLE=1
1400 FOR I=1 TO 64:FOR T=1 TO 64:
1410 IF T*7+20<MSX AND T*7+27>MSX THEN FMX=T
1420 NEXT T:IF I*7+20<MSY AND I*7+27>MSY THEN FMY=I:
1430 NEXT I:LB=0
1440 FOR I=1 TO 64:FOR T=1 TO 64:
1450 IF T*7+20<MCX AND T*7+27>MCX THEN UDX(IVC)=T
1460 NEXT T:IF I*7+20<MCY AND I*7+27>MCY THEN UDY(IVC)=I
1470 NEXT I:LB=0:
1480 LOCATE 20,20:PRINT DOUBLE
1490 *ZEROSKIP
1500 IF IVX(IVC)=0 THEN IVX(IVC)=MSX
1510 IF IVY(IVC)=0 THEN IVY(IVC)=MSY
1520 IF UDX(IVC)=0 AND IVX(IVC)<>0 THEN *MEPROCESS
1530 IF UDY(IVC)=0 AND IVY(IVC)<>0 THEN *MEPROCESS
1540 GOTO *RBBLC
1550 *MEPROCESS
1560 MCXX=MSX:IVX(IVC)=MSX:MCYY=MSY:IVY(IVC)=MSY
1570 FOR I=1 TO 64:FOR T=1 TO 64:
1580 IF T*7+20<MSX AND T*7+27>MSX THEN UDX(IVC)=T:
1590 NEXT T:IF I*7+20<MSY AND I*7+27>MSY THEN UDY(IVC)=I:
1600 NEXT I:LB=0
1610 IF UDX(IVC)=0 AND UDY(IVC)=0 THEN MSX=MOUSE(0):MSY=MOUSE(1):GOTO *MEPROCESS
1620 IF UDX(IVC)=0 THEN MSX=MOUSE(0):GOTO *MEPROCESS
1630 IF UDY(IVC)=0 THEN MSY=MOUSE(1):GOTO *MEPROCESS
1640 *RBBLC REM
1650 IF MCXR=MCXRM AND MCYR=MCYRM THEN *EMC
1660 FOR I=1 TO 64:T=1:WHILE T<65
1670 IF T*7+20<MCXR AND T*7+27>MCXR AND MCX<>0 THEN FRMX=T:
1680 IF I*7+20<MCYR AND I*7+27>MCYR AND MCX<>0 THEN FRMY=I:
1690 IF T*7+20<MCXR AND T*7+27>MCXR AND MCX<>0 THEN MCXR=T*7+20:MCXRM=T
1700 IF I*7+20<MCYR AND I*7+27>MCYR AND MCX<>0 THEN MCYR=I*7+20:MCYRM=I
1710 T=T+1:WEND:NEXT I:LOCATE 0,3:PRINT "RB" RB=0:GOTO *EMC
1720 *EMC
1730 IF MCX>468 AND MCX<20 OR MCY>468 OR MCY<20 THEN *AREASC
1740 IF IVC>1 AND UDX(IVC)<>UDX(IVC-1) THEN XXL=UDX(IVC)-UDX(IVC-1)
1750 IF IVC>1 AND UDY(IVC)<>UDY(IVC-1) THEN YYL=UDY(IVC)-UDY(IVC-1)
1760 IF IVC=100 THEN IVC=1
1770 IF IVC=1 AND UDX(1)<>UDX(99) THEN XXL=UDX(1)-UDX(99)
1780 IF IVC=1 AND UDY(1)<>UDX(99) THEN YYL=UDY(1)-UDY(99)
1790 IF IVC>1 AND XXL=UDX(IVC) THEN XXL=UDX(IVC)-UDX(IVC-1)
1800 IF IVC>1 AND YYL=UDY(IVC) THEN YYL=UDY(IVC)-UDY(IVC-1)
1810 IF IVN<>IVC THEN LOCATE 1,4:PRINT IVX(IVC);T;XXL;UDX(IVC);,IVC;"X "
1820 IF IVN<>IVC THEN LOCATE 1,5:PRINT IVY(IVC);I;YYL;UDY(IVC);"Y "
1830 UDXL(IVC)=XXL:UDYL(IVC)=YYL
1840 IXX=IVX(IVC):IYY=IVY(IVC):IVN=IVC
1850 IF SWICH=0 THEN SWICH=1:GOTO *AREASC
1860 IF DC=1 THEN *AREASC
1870 GOTO *FLAGC
1880 END
1890 *DOUBLEPROCESS
1900 LOCATE 0,0:PRINT "DOUBLE"
1910 IF FLAGS$="LINE" OR FLAGS$="CARV" THEN ELSE MCX=CLX:MCY=CLY:GOTO *LBBLC
1920 MCCL=MOUSE(3,1)
1930 DOUBLE=1:MCX=CLX:MCY=CLY:LOCATE 0,22:PRINT"dp"
1940 IF CLX>468 THEN IF IVC>1 THEN IVC=IVC-1:GOTO *TOOLS ELSE IF IVC=99 THEN IVC=1:GOTO *TOOLS
1950 T=0:WHILE T<1
1960 IF MCCL<>MOUSE(3,1) THEN CPASS=1:MCCL=MOUSE(3,1)
1970 IF MCCR<>MOUSE(3,2) THEN RB=1:CPASS=2:MCCR=MOUSE(3,2)
1980 IF CPASS=1 THEN CPASS=0:T=1:MDCX=MOUSE(4,1):MDCY=MOUSE(5,1)
1990 IF CPASS=2 THEN CPASS=0:T=1:MCYR=MOUSE(5,2):MCXR=MOUSE(4,2)
2000 WEND::MSX=MOUSE(0):MSY=MOUSE(1):LOCATE 10,10:PRINT"mdc1"
2010 IF MDCX>468 THEN IF IVC>1 THEN IVC=IVC-1:GOTO *TOOLS ELSE IF IVC=99 THEN IVC=1:GOTO *TOOLS
2020 IF MDCX<20 OR MDCY<20 OR MDCX>468 OR MDCY>468 THEN *COUNTERA
2030 IF RB=1 THEN IF MCXR<20 OR MCYR<20 OR MCXR>468 OR MCYR>468 THEN *COUNTERA
2040 MSX=MOUSE(0):MSY=MOUSE(1)
2050 IVC=IVC+1:IF IVC=100 THEN IVC=1
2060 IVX(IVC)=MDCX:IVY(IVC)=MDCY
2070 IF MDCX=0 AND MDCY=0 THEN *DOUBLEPROCESS
2080 IF IVX(IVC)<>MDCX AND IVY(IVC)<>MDCY THEN *DOUBLEPROCESS
2090 FOR I=1 TO 64:FOR T=1 TO 64:
2100 IF T*7+20<MDCX AND T*7+27>MDCX THEN UDX(IVC)=T
2110 NEXT T:IF I*7+20<MDCY AND I*7+27>MDCY THEN UDY(IVC)=I
2120 NEXT I:LB=0:
2130 MCX=MDCX:MCY=MDCY
2140 IF UDX(IVC)=0 OR UDY(IVC)=0 THEN GOSUB *SUBPROCESSDC
2150 *DPROCESSB
2160 MCCL=MOUSE(3,1)
2170 T=0:WHILE T<1
2180 IF MCCL<>MOUSE(3,1) THEN CPASS=1:MCCL=MOUSE(3,1)
2190 IF MCCR<>MOUSE(3,2) THEN RB=1:CPASS=2:MCCR=MOUSE(3,2)
2200 IF CPASS=1 THEN CPASS=0:T=1:MDCX=MOUSE(4,1):MDCY=MOUSE(5,1)
2210 IF CPASS=2 THEN CPASS=0:T=1:MCYR=MOUSE(5,2):MCXR=MOUSE(4,2)
2220 WEND::MSX=MOUSE(0):MSY=MOUSE(1):LOCATE 10,10:PRINT"mdc2"
2230 IF CLX>468 THEN *TOOLS
2240 IF MDCX<20 OR MDCY<20 OR MDCX>468 OR MDCY>468 THEN *COUNTERA
2250 IVC=IVC+1:IF IVC=100 THEN IVC=1
2260 IF RB=1 THEN IF MCXR<20 OR MCYR<20 OR MCXR>468 OR MCYR>468 THEN *COUNTERA
2270 IVX(IVC)=MDCX:IVY(IVC)=MDCY
2280 IF MDCX=0 AND MDCY=0 THEN *DPROCESSB
2290 IF IVX(IVC)<>MDCX AND IVY(IVC)<>MDCY THEN *DPROCESSB
2300 FOR I=1 TO 64:FOR T=1 TO 64:
2310 IF T*7+20<MDCX AND T*7+27>MDCX THEN UDX(IVC)=T
2320 NEXT T:IF I*7+20<MDCY AND I*7+27>MDCY THEN UDY(IVC)=I
2330 NEXT I:LB=0:
2340 MCX=MDCX:MCY=MDCY
2350 MSX=MOUSE(0):MSY=MOUSE(1)
2360 IF UDX(IVC)=0 OR UDY(IVC)=0 THEN GOSUB *SUBPROCESSDC
2370 IF IVN<>IVC THEN LOCATE 1,4:PRINT IVX(IVC);T;XXL;UDX(IVC);,IVC;"X "
2380 IF IVN<>IVC THEN LOCATE 1,5:PRINT IVY(IVC);I;YYL;UDY(IVC);"Y "
2390 *DPROCESSC
2400 MCCL=MOUSE(3,1)
2410 T=0:WHILE T<1
2420 IF MCCL<>MOUSE(3,1) THEN CPASS=1:MCCL=MOUSE(3,1)
2430 IF MCCR<>MOUSE(3,2) THEN RB=1:CPASS=2:MCCR=MOUSE(3,2)
2440 IF CPASS=1 THEN CPASS=0:T=1:MCX=MOUSE(4,1):MCY=MOUSE(5,1)
2450 IF CPASS=2 THEN CPASS=0:T=1:MCYR=MOUSE(5,2):MCXR=MOUSE(4,2)
2460 WEND::MSX=MOUSE(0):MSY=MOUSE(1):LOCATE 10,10:PRINT"mdc3"
2470 IF CLX>468 THEN *TOOLS
2480 IF MCX<20 OR MCY<20 OR MCX>468 OR MCY>468 THEN *COUNTERA
2490 IF RB=1 THEN IF MCXR<20 OR MCYR<20 OR MCXR>468 OR MCYR>468 THEN *COUNTERA
2500 MSX=MOUSE(0):MSY=MOUSE(1)
2510 IVC=IVC+1:IF IVC=100 THEN IVC=1
2520 IF MCX=0 OR MCY=0 THEN *DPROCESSC
2530 IVX(IVC)=MCX:IVY(IVC)=MCY
2540 FOR I=1 TO 64:FOR T=1 TO 64:
2550 IF (T*7)+20<MCX AND (T*7)+27>MCX THEN UDX(IVC)=T
2560 NEXT T:IF (I*7)+20<MCY AND (I*7)+27>MCY THEN UDY(IVC)=I
2570 NEXT I:LB=0:
2580 IF UDX(IVC)=0 OR UDY(IVC)=0 THEN GOSUB *SUBPROCESSDC
2590 *EMDC
2600 IF IVC>1 AND UDX(IVC)<>UDX(IVC-1) THEN XXL=UDX(IVC)-UDX(IVC-1)
2610 IF IVC>1 AND UDY(IVC)<>UDY(IVC-1) THEN YYL=UDY(IVC)-UDY(IVC-1)
2620 IF IVC=100 THEN IVC=1:RFOF=1
2630 IF IVC=1 AND UDX(1)<>UDX(99) THEN XXL=UDX(1)-UDX(99)
2640 IF IVC=1 AND UDY(1)<>UDX(99) THEN YYL=UDY(1)-UDY(99)
2650 IF IVC>1 AND XXL=UDX(IVC) THEN XXL=UDX(IVC)-UDX(IVC-1)
2660 IF IVC>1 AND YYL=UDY(IVC) THEN YYL=UDY(IVC)-UDY(IVC-1)
2670 IF IVN<>IVC THEN LOCATE 1,8:PRINT IVX(IVC);T;XXL;UDX(IVC);,IVC;"X "
2680 IF IVN<>IVC THEN LOCATE 1,9:PRINT IVY(IVC);I;YYL;UDY(IVC);"Y "
2690 UDXL(IVC)=XXL:UDYL(IVC)=YYL
2700 PRINT"AAAAAAAAAAAAAAA":DOUBLE=0:IF RFOF=1 AND IVC=1 THEN *REFRESHOF ELSE GOTO *FLAGC
2710 END
2720 *SUBPROCESSDC
2730 FOR I=1 TO 64:FOR T=1 TO 64:
2740 IF T*7+20<MSX AND T*7+27>MSX THEN UDX(IVC)=T:
2750 NEXT T:IF I*7+20<MSY AND I*7+27>MSY THEN UDY(IVC)=I:
2760 NEXT I:LB=0
2770 IF UDX(IVC)=0 AND UDY(IVC)=0 THEN MSX=MOUSE(0):MSY=MOUSE(1):GOTO *SUBPROCESSDC
2780 IF UDX(IVC)=0 THEN MSX=MOUSE(0):GOTO *SUBPROCESSDC
2790 IF UDY(IVC)=0 THEN MSY=MOUSE(1):GOTO *SUBPROCESSDC
2800 RETURN
2810 *REFRESHOF
2820 IF RFOF=1 THEN RFOF=0
2830 FOR I=2 TO 99:MIV=MIV+1:IF MIV=256 THEN MIV=0:MIVCNT=MIVCNT+1:IF MIVCNT=64 THEN MIVCNT=0:MIV=0
2840 IVENTMOTION(MIV,1,CNTMIV)=UDX(I):UDX(I)=0:IVENTMOTION(MIV,2,CNTMIV)=UDY(I):UDY(I)=0:
2850 IVENTMOTION(MIV,3,CNTMIV)=UDXL(I):UDXL(I)=0:IVENTMOTION(MIV,4,CNTMIV)=UDYL(I):UDYL(I)=0:
2860 IVENTMOTION(MIV,5,CNTMIV)=IVX(I):IVX(I)=0:IVENTMOTION(MIV,6,CNTMIV)=IVY(I):IVY(I)=0:
2870 IMF$(MIV,CNTMIV)=IVFLAGS$(I):NEXT
2880 GOTO *FLAGC
2890 END
2900 *DITHERMAPPING
2910 REM darksolid / Hevypale / Hevyharf / harf / light / lightpale / lightsolid
2920 DATA "11111111","11111111","11111111","01010101","00000000","00000000","00000000","10000001"
2930 DATA "11111111","10111011","10101010","10101010","10101010","00100010","00000000","01000010"
2940 DATA "11111111","11111111","11111111","01010101","00000000","00000000","00000000","00100100"
2950 DATA "11111111","11101110","10101010","10101010","10101010","10001000","00000000","00011000"
2960 DATA "11111111","11111111","11111111","01010101","00000000","00000000","00000000","00011000"
2970 DATA "11111111","10111011","10101010","10101010","10101010","00100010","00000000","00100100"
2980 DATA "11111111","11111111","11111111","01010101","00000000","00000000","00000000","01000010"
2990 DATA "11111111","11101110","10101010","10101010","10101010","10001000","00000000","10000001"
3000 FOR T=1 TO 8:FOR I=1 TO 8:READ DM$(T,I):NEXT I:NEXT T
3010 FOR R=1 TO 8:FOR T=1 TO 8:RN=0:FOR I=1 TO 8:RN=RN+1:DMS=VAL(RIGHT$(LEFT$(DM$(T,R),RN),1))
3020 DMS$=LEFT$(DM$(T,R),9-I):DMS$=RIGHT$(DMS$,1):DMS=VAL(DMS$)
3030 DM(I,T,R)=DMS:NEXT I:NEXT T:NEXT R
3040 TT=0:FOR T=1 TO 64:II=0:TT=TT+1:FOR I=1 TO 8:II=II+1:REM PRINT DM(II,TT,1);"+++";:
3050 IF TT>8 THEN TT=1
3060 DLG=DM(II,TT,1)
3070 DARKSOLID(I,T)=DLG:DARKSOLID(8+I,T)=DLG:DARKSOLID(16+II,T)=DLG
3080 DARKSOLID(24+II,T)=DLG:DARKSOLID(32+II,T)=DLG:DARKSOLID(40+II,T)=DLG
3090 DARKSOLID(48+II,T)=DLG:DARKSOLID(56+II,T)=DLG
3100 DLG=DM(II,TT,2)
3110 HEVYPALE(I,T)=DLG:HEVYPALE(8+II,T)=DLG:HEVYPALE(16+II,T)=DLG
3120 HEVYPALE(24+II,T)=DLG:HEVYPALE(32+II,T)=DLG:HEVYPALE(40+II,T)=DLG
3130 HEVYPALE(48+II,T)=DLG:HEVYPALE(56+II,T)=DLG
3140 DLG=DM(II,TT,3)
3150 HEVYHARF(I,T)=DLG:HEVYHARF(8+II,T)=DLG:HEVYHARF(16+II,T)=DLG
3160 HEVYHARF(24+II,T)=DLG:HEVYHARF(32+II,T)=DLG:HEVYHARF(40+II,T)=DLG
3170 HEVYHARF(48+II,T)=DLG:HEVYHARF(56+II,T)=DLG
3180 DLG=DM(II,TT,4)
3190 HARF(I,T)=DLG:HARF(8+II,T)=DLG:HARF(16+II,T)=DLG
3200 HARF(24+II,T)=DLG:HARF(32+II,T)=DLG:HARF(40+II,T)=DLG
3210 HARF(48+I,T)=DLG:HARF(56+II,T)=DLG
3220 DLG=DM(II,TT,5)
3230 LIGHT(I,T)=DLG:LIGHT(8+II,T)=DLG:LIGHT(16+II,T)=DLG
3240 LIGHT(24+II,T)=DLG:LIGHT(32+II,T)=DLG:LIGHT(40+II,T)=DLG
3250 LIGHT(48+II,T)=DLG:LIGHT(56+II,T)=DLG
3260 DLG=DM(II,TT,6)
3270 LIGHTPALE(I,T)=DLG:LIGHTPALE(8+II,T)=DLG:LIGHTPALE(16+II,T)=DLG
3280 LIGHTPALE(24+II,T)=DLG:LIGHTPALE(32+II,T)=DLG:LIGHTPALE(40+II,T)=DLG
3290 LIGHTPALE(48+II,T)=DLG:LIGHTPALE(56+II,T)=DLG
3300 DLG=DM(II,TT,7)
3310 LIGHTSOLID(I,T)=DLG:LIGHTSOLID(8+II,T)=DLG:LIGHTSOLID(16+II,T)=DLG
3320 LIGHTSOLID(24+II,T)=DLG:LIGHTSOLID(32+II,T)=DLG:LIGHTSOLID(40+II,T)=DLG
3330 LIGHTSOLID(48+II,T)=DLG:LIGHTSOLID(56+II,T)=DLG
3340 DLG=DM(II,TT,8)
3350 CHECKBOX(I,T)=DLG:CHECKBOX(8+II,T)=DLG:CHECKBOX(16+II,T)=DLG
3360 CHECKBOX(24+II,T)=DLG:CHECKBOX(32+II,T)=DLG:CHECKBOX(40+II,T)=DLG
3370 CHECKBOX(48+II,T)=DLG:CHECKBOX(56+II,T)=DLG
3380 NEXT I:NEXT T
3390 :::::::::::::::::::::: REM DM2 PROCESS
3400 FOR T=1 TO 64:FOR I=1 TO 64:DM2(I,T,1)=DARKSOLID(I,T):NEXT I:NEXT T
3410 FOR T=1 TO 64:FOR I=1 TO 64:DM2(I,T,2)=HEVYPALE(I,T):NEXT I:NEXT T
3420 FOR T=1 TO 64:FOR I=1 TO 64:DM2(I,T,3)=HEVYHARF(I,T):NEXT I:NEXT T
3430 FOR T=1 TO 64:FOR I=1 TO 64:DM2(I,T,4)=HARF(I,T):NEXT I:NEXT T
3440 FOR T=1 TO 64:FOR I=1 TO 64:DM2(I,T,5)=LIGHT(I,T):NEXT I:NEXT T
3450 FOR T=1 TO 64:FOR I=1 TO 64:DM2(I,T,6)=LIGHTPALE(I,T):NEXT I:NEXT T
3460 FOR T=1 TO 64:FOR I=1 TO 64:DM2(I,T,7)=LIGHTSOLID(I,T):NEXT I:NEXT T
3470 FOR T=1 TO 64:FOR I=1 TO 64:DM2(I,T,8)=CHECKBOX(I,T):NEXT I:NEXT T
3480 RETURN
3490 *PREDISPLAYPASS
3500 GOTO *ROOTGO
3510 FOR R=1 TO 8:FOR T=1 TO 64:FOR I=1 TO 64:PRINT DM2(I,T,R);:NEXT:NEXT:PRINT:BEEP:BEEP:BEEP:NEXT
3520 FOR R=1 TO 8:FOR T=1 TO 64:FOR I=1 TO 64:PRINT CP(I,T,R);:NEXT:NEXT:PRINT:BEEP:BEEP:BEEP:NEXT:END
3530 *ROOTGO
3540 GOTO *RUNNINGPROGRAM
3550 ::
3560 *DITHERFILTERLING
3570 FOR T=1 TO 64:FOR I=1 TO 64:
3580 IF DARKSOLID(I,T)<>0 THEN CP(I,T,1)=CP
3590 IF DARKSOLID(I,T) =0 THEN CP(I,T,1)=BC
3600 NEXT I:NEXT T
3610 FOR T=1 TO 64:FOR I=1 TO 64:
3620 IF HEVYPALE(I,T)<>0 THEN CP(I,T,2)=CP
3630 IF HEVYPALE(I,T) =0 THEN CP(I,T,2)=BC
3640 NEXT I:NEXT T:
3650 FOR T=1 TO 64:FOR I=1 TO 64:
3660 IF HEVYHARF(I,T)<>0 THEN CP(I,T,3)=CP
3670 IF HEVYHARF(I,T) =0 THEN CP(I,T,3)=BC
3680 NEXT I:NEXT T:
3690 FOR T=1 TO 64:FOR I=1 TO 64:
3700 IF HARF(I,T)<>0 THEN CP(I,T,4)=CP
3710 IF HARF(I,T) =0 THEN CP(I,T,4)=BC
3720 NEXT I:NEXT T
3730 FOR T=1 TO 64:FOR I=1 TO 64:
3740 IF LIGHT(I,T)<>0 THEN CP(I,T,5)=CP
3750 IF LIGHT(I,T) =0 THEN CP(I,T,5)=BC
3760 NEXT I:NEXT T
3770 FOR T=1 TO 64:FOR I=1 TO 64:
3780 IF LIGHTPALE(I,T)<>0 THEN CP(I,T,6)=CP
3790 IF LIGHTPALE(I,T) =0 THEN CP(I,T,6)=BC
3800 NEXT I:NEXT T
3810 FOR T=1 TO 64:FOR I=1 TO 64:
3820 IF LIGHTSOLID(I,T)<>0 THEN CP(I,T,7)=CP
3830 IF LIGHTSOLID(I,T) =0 THEN CP(I,T,7)=BC
3840 NEXT I:NEXT T
3850 FOR T=1 TO 64:FOR I=1 TO 64:
3860 IF CHECKBOX(I,T)<>0 THEN CP(I,T,8)=CP
3870 IF CHECKBOX(I,T) =0 THEN CP(I,T,8)=BC
3880 NEXT I:NEXT T
3890 RETURN
3900 *SEQUENTIAL
3910 YY$=LEFT$(DATE$,2):MM$=RIGHT$(DATE$,5):MM$=LEFT$(MM$,2):DD$=RIGHT$(DATE$,2)
3920 REM ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
3930 OPEN "MYPIC"+YY$+MM$+DD$+".ASC" FOR OUTPUT AS #1
3940 FOR DLAY=0 TO 7:
3950 FOR T=1 TO 64:FOR I=1 TO 64
3960 LAYER$(I,T,DLAY)=HEX$(LAYER(I,T,DLAY)):REM PRINT LAYER$(I,T,Dlay);LAYER(I,T,lay);
3970 NEXT:PRINT:NEXT::
3980 FOR T=1 TO 64:FOR I=1 TO 64:LAYER$=LAYER$+LAYER$(I,T,DLAY):NEXT:DATAFLOOR$(T,DLAY)=LAYER$:LAYER$="":NEXT
3990 REM FOR I=1 TO 64:PRINT DATAFLOOR$(I,DLAY):NEXT
4000 NEXT
4010 FOR DLAY=0 TO 5:T=65:FOR I=1 TO 64:T=T-1:
4020 WRITE #1,DATAFLOOR$(I,DLAY),HEX$(T)+CHR$(44):NEXT:NEXT:CLOSE #1
4030 OPEN "LOGPIC.ASC" FOR OUTPUT AS #2
4040 FOR DLAY=0 TO 5:T=65:FOR I=1 TO 64:T=T-1:
4050 WRITE #2,DATAFLOOR$(I,DLAY),HEX$(T)+CHR$(44):NEXT:NEXT:WRITE #2,YY$+MM$+DD$+" DAYS END OF FILE"," ":CLOSE #2
4060 LOCATE 61,21:PRINT":MYPIC"+YY$+MM$+DD$+".ASC":LOCATE 61,22:PRINT"STATUS"
4070 LOCATE 61,23:PRINT"MATRIX X:64 Y:64":LOCATE 61,24:PRINT"/ LINE"
4080 COLOR@(0,0)-(79,24),0 :::
4090 CLS:GOSUB *REFRESHTXT:GOTO *FIELDCNT
4100 REM ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
4110 *SEQUENTIALLOAD
4120 YY$=LEFT$(DATE$,2):MM$=RIGHT$(DATE$,5):MM$=LEFT$(MM$,2):DD$=RIGHT$(DATE$,2)
4130 OPEN "MYPIC"+YY$+MM$+DD$+".ASC" FOR INPUT AS #3
4140 FOR T=1 TO 64:INPUT #3,DATAFLOOR$(T,0),CR$:NEXT
4150 FOR T=1 TO 64:FOR I=1 TO 64:LAYER(I,T,0)=VAL("&h"+RIGHT$(LEFT$(DATAFLOOR$(T,DLAY),I),1)):NEXT:NEXT
4160 CLOSE #3:
4170 REM FOR T=1 TO 64:FOR I=1 TO 64:PRINT LAYER(I,T,0);:NEXT:PRINT:NEXT:
4180 CLS:GOSUB *REFRESHTXT:GOTO *FIELDCNT
4190 ::
4200 ::
4210 *FDOT LOCATE 0,8:PRINT MSX;MSY,FMX;FMY,CP(I,T,DFL)
4220 J=0:WHILE J<1:MSX=MOUSE(0):MSY=MOUSE(1)
4230 IF MOUSE(2,1)=0 THEN J=1
4240 *DOTHIT
4250 FOR I=1 TO 64:FOR T=1 TO 64:
4260 IF (T*7)+20<MSX AND (T*7)+27>MSX THEN DOTX=T:
4270 NEXT T:IF (I*7)+20<MSY AND (I*7)+27>MSY THEN DOTY=I:
4280 NEXT I:LB=0
4290 FOR I=1 TO 64:FOR T=1 TO 64:
4300 IF (T*7)+20<MSX AND (T*7)+27>MSX THEN DOTXB=T:
4310 NEXT T:IF (I*7)+20<MSY AND (I*7)+27>MSY THEN DOTYB=I:
4320 NEXT I:LB=0
4330 IF DOTX<>DOTXB OR DOTY<>DOTYB THEN *DOTHIT
4340 IF DOTX>0 AND DOTY>0 AND DOTX<65 AND DOTY<65 THEN LINE(DOTX*7+20,DOTY*7+20)-(DOTX*7+27,DOTY*7+27),CP(DOTX,DOTY,DFL),BF:LAYER(DOTX,DOTY,LAY)=CP(DOTX,DOTY,DFL)
4350 WEND:
4360 GOTO *FIELDCNT
4370 END
4380 *FLINE CLK=0
4390 IF SWICH=0 THEN SWICH=1:GOTO *AREASC
4400 IF DC=1 THEN *AREASC
4410 REM IF DOUBLE=1 THEN DOUBLE=0:GOTO *AREASC
4420 IF UDX(IVC-1)=0 OR UDY(IVC-1)=0 THEN SWICH=1:GOTO *AREASC
4430 IF UDX(IVC)=UDX(IVC-1) AND UDY(IVC)=UDY(IVC-1) THEN *AREASC
4440 IF MCX=MOUSE(4,1) THEN ELSE *FIELDCNT
4450 IF XXL=1 OR UDX(IVC)=UDX(IVC-1) THEN *LINEHANDUD
4460 IF YYL=1 OR UDY(IVC)=UDY(IVC-1) THEN *LINEHANDRL
4470 IF XXL<0 AND YYL>0 THEN *LINEHANDRD
4480 IF XXL>0 AND YYL>0 THEN *LINEHANDLD
4490 IF XXL<0 AND YYL<0 THEN *LINEHANDRU
4500 IF XXL>0 AND YYL<0 THEN *LINEHANDLU
4510 *LINEHANDUD
4520 IF UDY(IVC)>UDY(IVC-1) THEN LHYY=UDY(IVC-1):LHYYL=YYL
4530 IF UDY(IVC)<UDY(IVC-1) THEN LHYY=UDY(IVC) :LHYYL=-YYL
4540 FOR I=LHYY TO LHYY+LHYYL STEP 1:
4550 LAYER(UDX(IVC),I,LAY)=CP(UDX(IVC),I,DFL):LINE(UDX(IVC)*7+20,I*7+20)-(UDX(IVC)*7+27,I*7+27),CP(UDX(IVC),I,DFL),BF
4560 NEXT:PRINT "ud";YYL;LHYY,"
4570 GOTO *AREASC
4580 *LINEHANDRL
4590 IF UDX(IVC)>UDX(IVC-1) THEN LHXX=UDX(IVC-1):LHXXL=XXL
4600 IF UDX(IVC)<UDX(IVC-1) THEN LHXX=UDX(IVC):LHXXL=-XXL
4610 FOR T=LHXX TO LHXX+LHXXL STEP 1:
4620 LAYER(T,UDY(IVC),5)=CP(T,UDY(IVC),DFL):LINE(T*7+20,UDY(IVC)*7+20)-(T*7+27,UDY(IVC)*7+27),CP(T,UDY(IVC),DFL),BF
4630 NEXT:PRINT "RL";XXL;LHXX,"
4640 GOTO *AREASC
4650 *LINEHANDRD
4660 XYL=XXL/YYL:STP=0:ISTP=0:BKSTP=0:
4670 FOR I=UDY(IVC-1) TO UDY(IVC) STEP 1:BKSTP=ISTP:STP=STP+XYL:ISTP=INT(STP)
4680 FOR T=UDX(IVC-1)+ISTP TO UDX(IVC-1)+BKSTP STEP 1:
4690 IF T>=UDX(IVC) AND T=<UDX(IVC-1) THEN LAYER(T,I,LAY)=CP(T,I,DFL):LINE(T*7+20,I*7+20)-(T*7+27,I*7+27),CP(T,I,DFL),BF
4700 NEXT:
4710 NEXT:PRINT "aa";XYL;STP;ISTP;BKSTP;YYL;T;I;" "
4720 GOTO *AREASC
4730 *LINEHANDLD
4740 XYL=XXL/YYL:STP=0:ISTP=0:BKSTP=0:
4750 FOR I=UDY(IVC-1) TO UDY(IVC) STEP 1:BKSTP=ISTP:STP=STP+XYL:ISTP=INT(STP)
4760 FOR T=UDX(IVC-1)+BKSTP TO UDX(IVC-1)+ISTP STEP 1:
4770 IF T>=UDX(IVC-1) AND T=<UDX(IVC) THEN LAYER(T,I,LAY)=CP(T,I,DFL):LINE(T*7+20,I*7+20)-(T*7+27,I*7+27),CP(T,I,DFL),BF
4780 NEXT:
4790 NEXT:PRINT "bb";XYL;STP;ISTP;BKSTP;T;I;"
4800 GOTO *AREASC
4810 *LINEHANDRU
4820 XYL=-XXL/-YYL:STP=0:ISTP=0:BKSTP=0:LOCATE 0,10:PRINT XYL;XXL;YYL," "
4830 FOR I=UDY(IVC) TO UDY(IVC-1) STEP 1:BKSTP=ISTP:STP=STP+XYL:ISTP=INT(STP)
4840 FOR T=UDX(IVC)+BKSTP TO UDX(IVC)+ISTP STEP 1:
4850 IF T>=UDX(IVC) AND T=<UDX(IVC-1) THEN LAYER(T,I,LAY)=CP(T,I,DFL):LINE(T*7+20,I*7+20)-(T*7+27,I*7+27),CP(T,I,DFL),BF
4860 NEXT:
4870 NEXT:PRINT "bb";XYL;STP;ISTP;BKSTP;T;I;"
4880 GOTO *AREASC
4890 *LINEHANDLU
4900 XYL=XXL/-YYL:STP=0:ISTP=0:BKSTP=0:
4910 FOR I=UDY(IVC) TO UDY(IVC-1) STEP 1:BKSTP=ISTP:STP=STP-XYL:ISTP=INT(STP):
4920 FOR T=UDX(IVC)+ISTP TO UDX(IVC)+BKSTP STEP 1:
4930 IF T>=UDX(IVC-1) AND T=<UDX(IVC) THEN LAYER(T,I,LAY)=CP(T,I,DFL):LINE(T*7+20,I*7+20)-(T*7+27,I*7+27),CP(T,I,DFL),BF
4940 NEXT:
4950 NEXT:PRINT "bb";XYL;STP;ISTP;BKSTP;T;I;"
4960 GOTO *AREASC
4970 *LINEUNDO
4980 REM FOR I=1 TO 64:FOR T=1 TO 64:
4990 END
5000 END
5010 END
5020 END
5030 END
5040 END
5050 END
5060 *TOOLS
5070 IF IVX(IVC)<488 THEN *FIELDCNT
5080 IF IVY(IVC)>39 AND IVY(IVC)<57 THEN *COLORPALLETE
5090 IF IVY(IVC)>58 AND IVY(IVC)<114 THEN *COLORCHANGE
5100 IF IVY(IVC)>115 AND IVY(IVC)<171 THEN *COLORLEVEL
5110 IF IVY(IVC)>172 AND IVY(IVC)<190 THEN *DITHER
5120 IF IVY(IVC)>191 AND IVY(IVC)<209 THEN *LINECARV
5130 IF IVY(IVC)>210 AND IVY(IVC)<228 THEN *PAINTPSET
5140 IF IVY(IVC)>229 AND IVY(IVC)<247 THEN *LAYERCHANGE
5150 IF IVY(IVC)>248 AND IVY(IVC)<285 THEN *PENCHANGE
5160 IF IVY(IVC)>286 AND IVY(IVC)<304 THEN *SPOITGLID
5170 IF IVY(IVC)>305 AND IVY(IVC)<323 THEN *UNDORESET
5180 IF IVY(IVC)>362 AND IVY(IVC)<380 THEN IF IVX(IVC)<MLC(77) AND IVX(IVC)>MLC(71) THEN *SEQUENTIALLOAD ELSE IF IVX(IVC)<MLC(71) THEN *SEQUENTIAL
5190 IF IVY(IVC)>362 AND IVY(IVC)<380 THEN IF IVX(IVC)<MLC(77) AND IVX(IVC)>MLC(71) THEN *SEQUENTIALLOAD ELSE IF IVX(IVC)<MLC(71) THEN *SEQUENTIAL
5200 IF IVY(IVC)>381 AND IVY(IVC)<399 THEN *FILENAME
5210 IVC=IVC-1
5220 GOTO *FIELDCNT
5230 END
5240 *COLORPALLETE
5250 FLAGCP=0
5260 FOR C=0 TO 15
5270 IF IVX(IVC)>MLC(C+61) AND IVX(IVC)<MLC(C+61) THEN FLAGCP=1:CP=C
5280 NEXT
5290 GOSUB *DITHERFILTERLING
5300 IF FLAGCP=1 THEN IF MOSE(2,2)<>0 THEN BC=CP:FLAGCP=0
5310 IF BCP=CP THEN *FIELDCNT
5320 I=0:FOR C=61 TO 76:LINE (MLC(C),MLF(2))-(MLCP(C),MLFP(2)),I,BF:I=I+1:NEXT C
5330 I=0:FOR C=61 TO 79
5340 IF CP=I THEN LINE (C,37)-(C+8,56),7,B
5350 I=I+1:NEXT
5360 GOTO *FIELDCNT
5370 END
5380 *LINECARV
5390 IF IVX(IVC)>488 AND IVX(IVC)<520 THEN FLAGS$="LINE"
5400 IF IVX(IVC)>552 AND IVX(IVC)<584 THEN FLAGS$="CARV"
5410 IF IVC>1 THEN IVC=IVC-1 ELSE IF IVC=1 THEN IVC=99
5420 COLOR 0:LOCATE 61,23:PRINT"/ ";FLAGS$;" ":LOCATE 73,23:PRINT" "
5430 GOTO *FIELDCNT
5440 END
5450 *PAINTPSET
5460 IF IVX(IVC)>488 AND IVX(IVC)<528 THEN FLAGS$="PAINT"
5470 IF IVX(IVC)>552 AND IVX(IVC)<576 THEN FLAGS$="DOT"
5480 IF IVC>1 THEN IVC=IVC-1 ELSE IF IVC=1 THEN IVC=99
5490 COLOR 0:LOCATE 61,23:PRINT"/ ";FLAGS$;" ":LOCATE 73,23:PRINT" "
5500 GOTO *FIELDCNT
5510 END
5520 *PENCHANGE
5530 IF IVX(IVC)>520 AND IVX(IVC)<528 THEN FLAGS$="PEN":PENTYPE$="circle"
5540 IF IVX(IVC)>552 AND IVX(IVC)<560 THEN FLAGS$="PEN":PENTYPE$="box "
5550 IF IVX(IVC)>576 AND IVX(IVC)<584 THEN FLAGS$="PEN":PENS=3
5560 IF IVX(IVC)>592 AND IVX(IVC)<600 THEN FLAGS$="PEN":PENS=5
5570 IF IVC>1 THEN IVC=IVC-1 ELSE IF IVC=1 THEN IVC=99
5580 COLOR 0:LOCATE 61,23:PRINT"/ ";FLAGS$;PENS;PENTYPE$;
5590 GOTO *FIELDCNT
5600 END
5610 END
5620 END
5630 END
5640 END
5650 *FPEN
5660 IF MSX>468 THEN *TOOLS
5670 IF MSX<20 OR MSX<20 OR MSX>468 OR MSX>468 THEN *COUNTERA
5680 J=0:NULL=MOUSE(2,1):IF NULL=0 THEN *AREASC
5690 IF PENTYPE$="circle" AND PENS=5 THEN *CPENFIVE
5700 IF PENTYPE$="circle" AND PENS=3 THEN *CPENTHREE
5710 IF PENTYPE$="box " AND PENS=5 THEN *BPENL
5720 IF PENTYPE$="box " AND PENS=3 THEN *BPENS
5730 IF PENTYPE$="" OR PENS=0 THEN PENS=5:PENTYPE$="circle":GOTO *FPEN
5740 GOTO *AREASC
5750 END
5760 *CPENFIVE LOCATE 0,8:PRINT MSX;MSY,FMX;FMY
5770 GOSUB *DITHERFILTERLING:FOR T=1 TO 64:LOCATE 0,20:PRINT CP(T,1,LAY);CP(T,2,LAY);CP(T,3,LAY);CP(T,4,LAY);CP(T,5,LAY);CP(T,6,LAY);
5780 PRINT CP(T,7,LAY);CP(T,8,LAY);CP(T,9,LAY);CP(T,10,LAY);CP(T,11,LAY);CP(T,12,LAY);CP(T,13,LAY);
5790 PRINT CP(T,14,LAY);CP(T,15,LAY);CP(T,16,LAY);CP(T,17,LAY);CP(T,18,LAY);CP(T,19,LAY);CP(T,20,LAY);
5800 PRINT CP(T,21,LAY);CP(T,22,LAY);CP(T,23,LAY);CP(T,24,LAY);CP(T,25,LAY);CP(T,26,LAY);CP(T,27,LAY);
5810 PRINT CP(T,28,LAY);CP(T,29,LAY);CP(T,30,LAY);CP(T,31,LAY);CP(T,32,LAY);CP(T,33,LAY);CP(T,34,LAY);
5820 PRINT CP(T,35,LAY);CP(T,36,LAY);CP(T,37,LAY);CP(T,38,LAY);CP(T,39,LAY);CP(T,40,LAY);CP(T,41,LAY);
5830 PRINT CP(T,42,LAY);CP(T,42,LAY);CP(T,43,LAY);CP(T,44,LAY);CP(T,45,LAY);CP(T,46,LAY);CP(T,47,LAY);
5840 PRINT CP(T,48,LAY);CP(T,49,LAY);CP(T,50,LAY);CP(T,51,LAY);CP(T,52,LAY);CP(T,53,LAY);CP(T,54,LAY);
5850 PRINT CP(T,55,LAY);CP(T,56,LAY);CP(T,57,LAY);CP(T,58,LAY);CP(T,59,LAY);CP(T,60,LAY);CP(T,61,LAY);CP(T,62,LAY);CP(T,63,LAY);CP(T,64,LAY);
5860 NEXT
5870 J=0:WHILE J<1:MSX=MOUSE(0):MSY=MOUSE(1):DFL=1
5880 IF MOUSE(2,1)=0 THEN J=1
5890 FOR I=1 TO 64:FOR T=1 TO 64:
5900 IF T*7+20<MSX AND T*7+27>MSX THEN PENX=T:
5910 NEXT T:IF I*7+20<MSY AND I*7+27>MSY THEN PENY=I:
5920 NEXT I:LB=0
5930 IF PENX>0 AND PENY>0 AND PENX<65 AND PENY<65 THEN LINE(PENX*7+20,PENY*7+20)-(PENX*7+27,PENY*7+27),CP(PENX,PENY,DFL),BF:LAYER(PENX,PENY,LAY)=CP(PENX,PENY,DFL)
5940 IF PENX>1 AND PENY>2 THEN LINE(PENX*7-7+20,PENY*7-14+20)-(PENX*7-7+27,PENY*7-14+27),CP(PENX-1,PENY-2,DFL),BF:LAYER(PENX-1,PENY-2,LAY)=CP(PENX-1,PENY-2,DFL)
5950 IF PENX>2 AND PENY>1 THEN LINE(PENX*7-14+20,PENY*7-7+20)-(PENX*7-14+27,PENY*7-7+27),CP(PENX-2,PENY-1,DFL),BF:LAYER(PENX-2,PENY-1,LAY)=CP(PENX-2,PENY-1,DFL)
5960 IF PENX>2 AND PENY>0 THEN LINE(PENX*7-14+20,PENY*7+0+20)-(PENX*7-14+27,PENY*7+0+27),CP(PENX-2,PENY ,DFL),BF:LAYER(PENX-2,PENY ,LAY)=CP(PENX-2,PENX ,DFL)
5970 IF PENX>2 AND PENY<64 THEN LINE(PENX*7-14+20,PENY*7+7+20)-(PENX*7-14+27,PENY*7+7+27),CP(PENX-2,PENY+1,DFL),BF:LAYER(PENX-2,PENY+1,LAY)=CP(PENX-2,PENY+1,DFL)
5980 IF PENX>1 AND PENY<63 THEN LINE(PENX*7-7+20,PENY*7+14+20)-(PENX*7-7+27,PENY*7+14+27),CP(PENX-1,PENY+2,DFL),BF:LAYER(PENX-1,PENY+2,LAY)=CP(PENX-1,PENY+2,DFL)
5990 IF PENX>1 AND PENY>1 THEN LINE(PENX*7-7+20,PENY*7-7+20)-(PENX*7-7+27,PENY*7-7+27),CP(PENX-1,PENY-1,DFL),BF:LAYER(PENX-1,PENY-1,LAY)=CP(PENX-1,PENY-1,DFL)
6000 IF PENX>1 AND PENY>0 THEN LINE(PENX*7-7+20,PENY*7+0+20)-(PENX*7-7+27,PENY*7+0+27),CP(PENX-1,PENY ,DFL),BF:LAYER(PENX-1,PENY ,LAY)=CP(PENX-1,PENX ,DFL)
6010 IF PENX>1 AND PENY<64 THEN LINE(PENX*7-7+20,PENY*7+7+20)-(PENX*7-7+27,PENY*7+7+27),CP(PENX-1,PENY+1,DFL),BF:LAYER(PENX-1,PENY+1,LAY)=CP(PENX-1,PENY+1,DFL)
6020 IF PENX>0 AND PENY>2 THEN LINE(PENX*7-0+20,PENY*7-14+20)-(PENX*7-0+27,PENY*7-14+27),CP(PENX ,PENY-2,DFL),BF:LAYER(PENX ,PENY-2,LAY)=CP(PENX ,PENY-2,DFL)
6030 IF PENX>0 AND PENY>1 THEN LINE(PENX*7-0+20,PENY*7-7+20)-(PENX*7-0+27,PENY*7-7+27),CP(PENX ,PENY-1,DFL),BF:LAYER(PENX ,PENY-1,LAY)=CP(PENX ,PENY-1,DFL)
6040 IF PENX>0 AND PENY<64 THEN LINE(PENX*7-0+20,PENY*7+7+20)-(PENX*7-0+27,PENY*7+7+27),CP(PENX ,PENY+1,DFL),BF:LAYER(PENX ,PENY+1,LAY)=CP(PENX ,PENY+1,DFL)
6050 IF PENX>0 AND PENY<63 THEN LINE(PENX*7-0+20,PENY*7+14+20)-(PENX*7-0+27,PENY*7+14+27),CP(PENX ,PENY+2,DFL),BF:LAYER(PENX ,PENY+2,LAY)=CP(PENX ,PENY+2,DFL)
6060 IF PENX<64 AND PENY>2 THEN LINE(PENX*7+7+20,PENY*7-14+20)-(PENX*7+7+27,PENY*7-14+27),CP(PENX+1,PENY-2,DFL),BF:LAYER(PENX+1,PENY-2,LAY)=CP(PENX+1,PENY-2,DFL)
6070 IF PENX<63 AND PENY>1 THEN LINE(PENX*7+14+20,PENY*7-7+20)-(PENX*7+14+27,PENY*7-7+27),CP(PENX+2,PENY-1,DFL),BF:LAYER(PENX+2,PENY-1,LAY)=CP(PENX+2,PENY-1,DFL)
6080 IF PENX<63 AND PENY>0 THEN LINE(PENX*7+14+20,PENY*7+0+20)-(PENX*7+14+27,PENY*7+0+27),CP(PENX+2,PENY ,DFL),BF:LAYER(PENX+2,PENY ,LAY)=CP(PENX+2,PENY ,DFL)
6090 IF PENX<63 AND PENY<64 THEN LINE(PENX*7+14+20,PENY*7+7+20)-(PENX*7+14+27,PENY*7+7+27),CP(PENX+2,PENY+1,DFL),BF:LAYER(PENX+2,PENY+1,LAY)=CP(PENX+2,PENY+1,DFL)
6100 IF PENX<64 AND PENY<63 THEN LINE(PENX*7+7+20,PENY*7+14+20)-(PENX*7+7+27,PENY*7+14+27),CP(PENX+1,PENY+2,DFL),BF:LAYER(PENX+1,PENY+2,LAY)=CP(PENX+1,PENY+2,DFL)
6110 IF PENX<64 AND PENY>1 THEN LINE(PENX*7+7+20,PENY*7-7+20)-(PENX*7+7+27,PENY*7-7+27),CP(PENX+1,PENY-1,DFL),BF:LAYER(PENX+1,PENY-1,LAY)=CP(PENX+1,PENY-1,DFL)
6120 IF PENX<64 AND PENY>0 THEN LINE(PENX*7+7+20,PENY*7+0+20)-(PENX*7+7+27,PENY*7+0+27),CP(PENX+1,PENY ,DFL),BF:LAYER(PENX+1,PENY ,LAY)=CP(PENX+1,PENY ,DFL)
6130 IF PENX<64 AND PENY<64 THEN LINE(PENX*7+7+20,PENY*7+7+20)-(PENX*7+7+27,PENY*7+7+27),CP(PENX+1,PENY+1,DFL),BF:LAYER(PENX+1,PENY+1,LAY)=CP(PENX+1,PENY+1,DFL)
6140 REM LOCATE 0,22:PRINT LAY;" ";CP(PENX,PENY,LAY);CP(PENX-1,PENY-2,LAY);CP(PENX-2,PENY+1,LAY);CP(PENX-2,PENY ,LAY);CP(PENX-2,PENY+1,LAY);CP(PENX-2,PENY+1,LAY);CP(PENX-1,PENY-1,LAY);
6150 REM LOCATE 0,23:PRINT CP(PENX-1,PENY ,LAY);CP(PENX-1,PENY+1,LAY);CP(PENX ,PENY-2,LAY);CP(PENX ,PENY-1,LAY);CP(PENX ,PENY+1,LAY);CP(PENX ,PENY+2,LAY);CP(PENX+1,PENY-2,LAY);
6160 REM LOCATE 0,24:PRINT CP(PENX+2,PENY-1,LAY);CP(PENX+2,PENY ,LAY);CP(PENX+2,PENY+1,LAY);CP(PENX+1,PENY+2,LAY);CP(PENX+1,PENY ,LAY);CP(PENX+1,PENY+1,LAY);
6170 WEND
6180 GOTO *AREASC
6190 END
6200 *CPENTHREE
6210 LOCATE 0,8:PRINT MSX;MSY,FMX;FMY,CP(I,T,LAY)
6220 J=0:WHILE J<1:MSX=MOUSE(0):MSY=MOUSE(1)
6230 IF MOUSE(2,1)=0 THEN J=1
6240 FOR I=1 TO 64:FOR T=1 TO 64:
6250 IF T*7+20<MSX AND T*7+27>MSX THEN PENX=T:
6260 NEXT T:IF I*7+20<MSY AND I*7+27>MSY THEN PENY=I:
6270 NEXT I:LB=0
6280 IF PENX>0 AND PENY>0 AND PENX<65 AND PENY<65 THEN LINE(PENX*7+20,PENY*7+20)-(PENX*7+27,PENY*7+27),CP(PENX,PENY,DFL),BF:LAYER(PENX,PENY,LAY)=CP(PENX,PENY,DFL)
6290 IF PENX>1 AND PENY>0 THEN LINE(PENX*7-7+20,PENY*7+0+20)-(PENX*7-7+27,PENY*7+0+27),CP(PENX-1,PENY ,DFL ),BF :LAYER(PENX-1,PENY ,LAY)=CP(PENX-1,PENY,DFL)
6300 IF PENX<64 AND PENY>0 THEN LINE(PENX*7+7+20,PENY*7+0+20)-(PENX*7+7+27,PENY*7+0+27),CP(PENX+1,PENY ,DFL ),BF :LAYER(PENX+1,PENY ,LAY)=CP(PENX+1,PENY,DFL)
6310 IF PENX>0 AND PENY<64 THEN LINE(PENX*7-0+20,PENY*7+7+20)-(PENX*7-0+27,PENY*7+7+27),CP(PENX ,PENY+1,DFL ),BF :LAYER(PENX ,PENY+1,LAY)=CP(PENX,PENY+1,DFL)
6320 IF PENX>0 AND PENY>1 THEN LINE(PENX*7-0+20,PENY*7-7+20)-(PENX*7-0+27,PENY*7-7+27),CP(PENX ,PENY-1,DFL ),BF :LAYER(PENX ,PENY-1,LAY)=CP(PENX,PENY-1,DFL)
6330 WEND
6340 GOTO *AREASC
6350 END
6360 *BPENL LOCATE 0,8:PRINT MSX;MSY,FMX;FMY,CP(I,T,DFL)
6370 J=0:J=0:WHILE J<1:MSX=MOUSE(0):MSY=MOUSE(1)
6380 IF MOUSE(2,1)=0 THEN J=1
6390 FOR I=1 TO 64:FOR T=1 TO 64:
6400 IF T*7+20<MSX AND T*7+27>MSX THEN PENX=T:
6410 NEXT T:IF I*7+20<MSY AND I*7+27>MSY THEN PENY=I:
6420 NEXT I:LB=0
6430 IF PENX>0 AND PENY>0 AND PENX<65 AND PENY<65 THEN LINE(PENX*7+20,PENY*7+20)-(PENX*7+27,PENY*7+27),CP(PENX,PENY,DFL),BF:LAYER(PENX,PENY,LAY)=CP(PENX,PENY,DFL)
6440 IF PENX>1 AND PENY>2 THEN LINE(PENX*7-7 +20,PENY*7-14+20)-(PENX*7 -7+27,PENY*7-14+27),CP(PENX+1,PENY-2,DFL),BF:LAYER(PENX+1,PENY-2,LAY)=CP(PENX+1,PENY-2,DFL)
6450 IF PENX>2 AND PENY>1 THEN LINE(PENX*7-14+20,PENY*7-7+20)-(PENX*7-14+27,PENY*7-7+27),CP(PENX-2,PENY-1,DFL),BF:LAYER(PENX-2,PENY-1,LAY)=CP(PENX-2,PENY-1,DFL)
6460 IF PENX>2 AND PENY>0 THEN LINE(PENX*7-14+20,PENY*7+0+20)-(PENX*7-14+27,PENY*7+0+27),CP(PENX-2,PENY ,DFL),BF:LAYER(PENX-2,PENY ,LAY)=CP(PENX-2,PENY ,DFL)
6470 IF PENX>2 AND PENY<64 THEN LINE(PENX*7-14+20,PENY*7+7+20)-(PENX*7-14+27,PENY*7+7+27),CP(PENX-2,PENY+1,DFL),BF:LAYER(PENX-2,PENY+1,LAY)=CP(PENX-2,PENY+1,DFL)
6480 IF PENX>1 AND PENY<63 THEN LINE(PENX*7-7+20,PENY*7+14+20)-(PENX*7-7+27,PENY*7+14+27),CP(PENX-1,PENY+2,DFL),BF:LAYER(PENX-1,PENY+2,LAY)=CP(PENX-1,PENY+2,DFL)
6490 IF PENX>1 AND PENY>1 THEN LINE(PENX*7-7+20,PENY*7-7+20)-(PENX*7-7+27,PENY*7-7+27),CP(PENX-1,PENY-1,DFL),BF:LAYER(PENX-1,PENY-1,LAY)=CP(PENX-1,PENY-1,DFL)
6500 IF PENX>1 AND PENY>0 THEN LINE(PENX*7-7+20,PENY*7+0+20)-(PENX*7-7+27,PENY*7+0+27),CP(PENX-1,PENY ,DFL),BF:LAYER(PENX-1,PENY ,LAY)=CP(PENX-1,PENY ,DFL)
6510 IF PENX>1 AND PENY<64 THEN LINE(PENX*7-7+20,PENY*7+7+20)-(PENX*7-7+27,PENY*7+7+27),CP(PENX ,PENY+1,DFL),BF:LAYER(PENX ,PENY+1,LAY)=CP(PENX ,PENY-2,DFL)
6520 IF PENX>0 AND PENY>2 THEN LINE(PENX*7-0+20,PENY*7-14+20)-(PENX*7-0+27,PENY*7-14+27),CP(PENX ,PENY-2,DFL),BF:LAYER(PENX ,PENY-2,LAY)=CP(PENX ,PENY-1,DFL)
6530 IF PENX>0 AND PENY>1 THEN LINE(PENX*7-0+20,PENY*7-7+20)-(PENX*7-0+27,PENY*7-7+27),CP(PENX ,PENY-1,DFL),BF:LAYER(PENX ,PENY-1,LAY)=CP(PENX ,PENY-1,DFL)
6540 IF PENX>0 AND PENY<64 THEN LINE(PENX*7-0+20,PENY*7+7+20)-(PENX*7-0+27,PENY*7+7+27),CP(PENX ,PENY+1,DFL),BF:LAYER(PENX ,PENY+1,LAY)=CP(PENX ,PENY+1,DFL)
6550 IF PENX>0 AND PENY<63 THEN LINE(PENX*7-0+20,PENY*7+14+20)-(PENX*7-0+27,PENY*7+14+27),CP(PENX ,PENY+2,DFL),BF:LAYER(PENX ,PENY+2,LAY)=CP(PENX ,PENY+2,DFL)
6560 IF PENX<64 AND PENY>2 THEN LINE(PENX*7+7+20,PENY*7-14+20)-(PENX*7+7+27,PENY*7-14+27),CP(PENX+1,PENY-2,DFL),BF:LAYER(PENX+1,PENY-2,LAY)=CP(PENX+1,PENY-2,DFL)
6570 IF PENX<63 AND PENY>1 THEN LINE(PENX*7+14+20,PENY*7-7+20)-(PENX*7+14+27,PENY*7-7+27),CP(PENX+2,PENY-1,DFL),BF:LAYER(PENX+2,PENY-1,LAY)=CP(PENX+2,PENY-1,DFL)
6580 IF PENX<63 AND PENY>0 THEN LINE(PENX*7+14+20,PENY*7+0+20)-(PENX*7+14+27,PENY*7+0+27),CP(PENX+2,PENY ,DFL),BF:LAYER(PENX+2,PENY ,LAY)=CP(PENX+2,PENY ,DFL)
6590 IF PENX<63 AND PENY<64 THEN LINE(PENX*7+14+20,PENY*7+7+20)-(PENX*7+14+27,PENY*7+7+27),CP(PENX+2,PENY+1,DFL),BF:LAYER(PENX+2,PENY+1,LAY)=CP(PENX+2,PENY+1,DFL)
6600 IF PENX<64 AND PENY<63 THEN LINE(PENX*7+7+20,PENY*7+14+20)-(PENX*7+7+27,PENY*7+14+27),CP(PENX+1,PENY+2,DFL),BF:LAYER(PENX+1,PENY+2,LAY)=CP(PENX+1,PENY+2,DFL)
6610 IF PENX<64 AND PENY>1 THEN LINE(PENX*7+7+20,PENY*7-7+20)-(PENX*7+7+27,PENY*7-7+27),CP(PENX+1,PENY-1,DFL),BF:LAYER(PENX+1,PENY-1,LAY)=CP(PENX+1,PENY-1,DFL)
6620 IF PENX<64 AND PENY>0 THEN LINE(PENX*7+7+20,PENY*7+0+20)-(PENX*7+7+27,PENY*7+0+27),CP(PENX+1,PENY ,DFL),BF:LAYER(PENX+1,PENY ,LAY)=CP(PENX+1,PENY ,DFL)
6630 IF PENX<64 AND PENY<64 THEN LINE(PENX*7+7+20,PENY*7+7+20)-(PENX*7+7+27,PENY*7+7+27),CP(PENX+1,PENY+1,DFL),BF:LAYER(PENX+1,PENY+1,LAY)=CP(PENX+1,PENY+1,DFL)
6640 IF PENX>2 AND PENY<63 THEN LINE(PENX*7-14+20,PENY*7+14+20)-(PENX*7-14+27,PENY*7+14+27),CP(PENX-2,PENY+2,DFL),BF:LAYER(PENX-2,PENY+2,LAY)=CP(PENX-2,PENY+2,DFL)
6650 IF PENX<63 AND PENY<63 THEN LINE(PENX*7+14+20,PENY*7+14+20)-(PENX*7+14+27,PENY*7+14+27),CP(PENX+2,PENY+2,DFL),BF:LAYER(PENX+2,PENY+2,LAY)=CP(PENX+2,PENY+2,DFL)
6660 IF PENX<63 AND PENY>2 THEN LINE(PENX*7+14+20,PENY*7-14+20)-(PENX*7+14+27,PENY*7-14+27),CP(PENX+2,PENY-2,DFL),BF:LAYER(PENX+2,PENY-2,LAY)=CP(PENX+2,PENY-2,DFL)
6670 IF PENX>2 AND PENY>2 THEN LINE(PENX*7-14+20,PENY*7-14+20)-(PENX*7-14+27,PENY*7-14+27),CP(PENX-2,PENY-2,DFL),BF:LAYER(PENX-2,PENY-2,LAY)=CP(PENX-2,PENY-2,DFL)
6680 WEND
6690 GOTO *AREASC
6700 END
6710 *BPENS
6720 LOCATE 0,8:PRINT MSX;MSY,FMX;FMY,CP(I,T,FL)
6730 J=0:WHILE J<1:MSX=MOUSE(0):MSY=MOUSE(1)
6740 IF MOUSE(2,1)=0 THEN J=1
6750 FOR I=1 TO 64:FOR T=1 TO 64:
6760 IF T*7+20<MSX AND T*7+27>MSX THEN PENX=T:
6770 NEXT T:IF I*7+20<MSY AND I*7+27>MSY THEN PENY=I:
6780 NEXT I:LB=0
6790 IF PENX>0 AND PENY>0 AND PENX<65 AND PENY<65 THEN LINE(PENX*7+20,PENY*7+20)-(PENX*7+27,PENY*7+27),CP(PENX,PENY,DFL),BF:LAYER(PENX,PENY,DFL)=CP(PENX,PENY,DFL)
6800 IF PENX>1 AND PENY>0 THEN LINE(PENX*7+7+20,PENY*7+0+20)-(PENX*7+7+27,PENY*7+0+27),CP(PENX+1,PENY ,DFL),BF :LAYER(PENX+1,PENY ,LAY)=CP(PENX-1,PENY ,DFL )
6810 IF PENX<64 AND PENY>0 THEN LINE(PENX*7-7+20,PENY*7+0+20)-(PENX*7-7+27,PENY*7+0+27),CP(PENX-1,PENY ,DFL),BF :LAYER(PENX-1,PENY ,LAY)=CP(PENX-1,PENY ,DFL )
6820 IF PENX>0 AND PENY<64 THEN LINE(PENX*7-0+20,PENY*7-7+20)-(PENX*7-0+27,PENY*7-7+27),CP(PENX ,PENY-1,DFL),BF :LAYER(PENX ,PENY-1,LAY)=CP(PENX ,PENY-1,DFL )
6830 IF PENX>0 AND PENY>1 THEN LINE(PENX*7-0+20,PENY*7+7+20)-(PENX*7-0+27,PENY*7+7+27),CP(PENX ,PENY+1,DFL),BF :LAYER(PENX ,PENY+1,LAY)=CP(PENX ,PENY+1,DFL )
6840 IF PENX>1 AND PENY>1 THEN LINE(PENX*7-7+20,PENY*7-7+20)-(PENX*7-7+27,PENY*7-7+27),CP(PENX-1,PENY-1,DFL),BF :LAYER(PENX-1,PENY-1,LAY)=CP(PENX-1,PENY-1,DFL )
6850 IF PENX<64 AND PENY>1 THEN LINE(PENX*7+7+20,PENY*7-7+20)-(PENX*7+7+27,PENY*7-7+27),CP(PENX+1,PENY-1,DFL),BF :LAYER(PENX-1,PENY+1,LAY)=CP(PENX-1,PENY+1,DFL )
6860 IF PENX>1 AND PENY<64 THEN LINE(PENX*7-7+20,PENY*7+7+20)-(PENX*7-7+27,PENY*7+7+27),CP(PENX-1,PENY+1,DFL),BF :LAYER(PENX-1,PENY+1,LAY)=CP(PENX-1,PENY+1,DFL )
6870 IF PENX<64 AND PENY<64 THEN LINE(PENX*7+7+20,PENY*7+7+20)-(PENX*7+7+27,PENY*7+7+27),CP(PENX+1,PRNY+1,DFL),BF :LAYER(PENX+1,PENY+1,LAY)=CP(PENX+1,PENY+1,DFL )
6880 WEND
6890 GOTO *AREASC
6900 END
6910 END
6920 END
6930 *FPAINT
6940 *PIXMASKSC
6950 MASKCNT=0:MASKCLE=2:MSX=MOUSE(0):MSY=MOUSE(1):IY=0:TX=0
6960 FOR I=1 TO 64:IY=INT(I/8):FOR T=1 TO 64:TX=INT(T/8)
6970 IF T*7+20<MSX AND T*7+27>MSX THEN MASKX=T:BLOCX=TX:
6980 NEXT T:IF I*7+20<MSY AND I*7+27>MSY THEN MASKY=I:BLOCY=IY:
6990 NEXT I:LB=0
7000 IF MASKX=0 OR MASKY=0 THEN *PIXMASKSC
7010 POINTX=MASKX-(BLOCX*8):POINTY=MASKY-(BLOCY*8)
7020 IF MASKX/2=INT(MASKX/2) THEN KIGUX$="GUSU" ELSE KIGUX$="KISU"
7030 IF MASKY/2=INT(MASKY/2) THEN KIGUY$="GUSU" ELSE KIGUY$="KISU"
7040 STEPX=BLOCX*8:STEPY=BLOCY*8:SX=BLOCX*4:SY=BLOCY*4:MP=LAYER(MASKX,MASKY,LAY)
7050 LOCATE 0,1:PRINT POINTX;POINTY;MASKX;MASKY;BLOCX;BLOCY;TX;IY
7060 PRINT "X:";KIGUX$;"/Y:";KIGUY$;STEPX;STEPY;
7070 IF KIGUX$="KISU" THEN *LUMASK
7080 IF KIGUX$="GUSU" THEN *RUMASK
7090 IF KIGUY$="KISU" THEN *LDMASK
7100 IF KIGUY$="GUSU" THEN *RDMASK
7110 END
7120 *LUMASK PTX=POINTX:PTY=POINTY
7130 MASK(MASKX,MASKY)=1
7140 IF PTX>0 AND PTX<3 AND PTY=1 THEN PT=1 ELSE IF PTX=1 AND PTY=2 THEN PT=1
7150 IF PTY<5 AND PTY>2 AND PTX=1 THEN PT=2 ELSE IF PTY<4 AND PTY>1 AND PTX=2 THEN PT=2
7160 IF PTY<3 AND PTY>0 AND PTX=3 THEN PT=2 ELSE IF PTY=1 AND PTX=4 THEN PT=2
7170 IF PTX=1 AND PTY>4 AND PTY<7 THEN PT=3 ELSE IF PTX=2 AND PTY>3 AND PTY<6 THEN PT=3
7180 IF PTX=3 AND PTY>2 AND PTY<5 THEN PT=3 ELSE IF PTX=4 AND PTY>1 AND PTY<4 THEN PT=3
7190 IF PTX=5 AND PTY>0 AND PTY<3 THEN PT=3 ELSE IF PTX=6 AND PTY=1 THEN PT=3
7200 IF PTX=1 AND PTY>6 AND PTY<9 THEN PT=4 ELSE IF PTX=2 AND PTY>5 AND PTY<8 THEN PT=4
7210 IF PTX=3 AND PTY>4 AND PTY<7 THEN PT=4 ELSE IF PTX=4 AND PTY>3 AND PTY<6 THEN PT=4
7220 IF PTX=4 AND PTY>2 AND PTY<5 THEN PT=4 ELSE IF PTX=5 AND PTY>1 AND PTY<4 THEN PT=4
7230 IF PTX=6 AND PTY>0 AND PTY<3 THEN PT=4 ELSE IF PTX=7 AND PTY>0 AND PTY<2 THEN PT=4
7240 IF PTX>1 AND PTX<3 AND PTY=8 THEN PT=5 ELSE IF PTY=7 AND PTX>2 AND PTX<5 THEN PT=5
7250 IF PTY=6 AND PTX>3 AND PTX<6 THEN PT=5 ELSE IF PTY=5 AND PTX>4 AND PTX<7 THEN PT=5
7260 IF PTY=4 AND PTX>5 AND PTX<8 THEN PT=5 ELSE IF PTX=8 AND PTY>4 AND PTY<9 THEN PT=5
7270 IF PTY=8 AND PTX>3 AND PTX<6 THEN PT=6 ELSE IF PTY=7 AND PTX>4 AND PTX<7 THEN PT=6
7280 IF PTY=6 AND PTX>5 AND PTX<8 THEN PT=6 ELSE IF PTY=5 AND PTX>6 AND PTX<9 THEN PT=6
7290 IF PTY=5 AND PTX=8 THEN PT=6 ELSE IF PTY=8 AND PTX>6 AND PTX<9 THEN PT=7
7300 IF PTY=7 AND PTX=8 THEN PT=7
7310 IF PT=1 THEN GOSUB *LUMA ELSE IF PT=2 THEN *LUMB ELSE IF PT=3 THEN *LUMC
7320 IF PT=4 THEN *LUMD ELSE IF PT=5 THEN *LUME ELSE IF PT=6 THEN *LUMF
7330 IF PT=7 THEN *LUMG
7340 END
7350 *LUMA MS=0
7360 IF POINTX=1 AND POINTY=1 THEN MASK(1,1)=1:MS=1
7370 IF MS=1 THEN IF LAYER(1,2,LAY)=MP THEN MASK(1,2)=1
7380 IF MS=1 THEN IF LAYER(2,1,LAY)=MP THEN MASK(2,1)=1
7390 IF POINTX=2 AND POINTY=1 THEN MASK(2,1)=1:MS=2
7400 IF MS=2 THEN IF LAYER(1,1,LAY)=MP THEN MASK(1,1)=1:PMS=2
7410 IF MS=2 AND PMS=2 THEN IF LAYER(1,2,LAY)=MP THEN MASK(1,2)=1
7420 IF POINTX=1 AND POINTY=2 THEN MASK(1,2)=1:MS=3
7430 IF MS=3 THEN IF LAYER(1,1,LAY)=MP THEN MASK(1,1)=1:PMS=3
7440 IF MS=3 AND PMS=3 THEN IF LAYER(2,1,LAY)=MP THEN MASK(2,1)=1
7450 PTSD=2:GOTO *SCDLUMA
7460 *SCDLUMA
7470 IF PT=1 AND PTSD=2 THEN *MASKLOOP
7480 END
7490 END
7500 END
7510 END
7520 END
7530 END
7540 *MASKLOOP
7550 REM TSY=2:ISX=2:TP=-1:IP=1:IS=1:GOSUB *BLOCINMASK:TSY=4:ISX=4:TP=-1:IP=1:IS=1:GOSUB *BLOCINMASK
7560 REM TSY=6:ISX=6:TP=-1:IP=1:IS=1:GOSUB *BLOCINMASK:TSY=8:ISX=8:TP=-1:IP=1:IS=1:GOSUB *BLOCINMASK
7570 REM TSY=9:ISX=8:TP=-1:IP=1:IS=2:GOSUB *BLOCINMASK:TSY=9:ISX=8:TP=-1:IP=1:IS=4:GOSUB *BLOCINMASK
7580 REM TSY=9:ISX=8:TP=-1:IP=1:IS=6:GOSUB *BLOCINMASK:
7590 ::
7600 REM TSY=2:ISX=2:TP=-1:IP=1:IS=1:GOSUB *BLOCINMASK:TSY=4:ISX=4:TP=-1:IP=1:IS=1:GOSUB *BLOCINMASK
7610 REM TSY=6:ISX=6:TP=-1:IP=1:IS=1:GOSUB *BLOCINMASK:TSY=8:ISX=8:TP=-1:IP=1:IS=1:GOSUB *BLOCINMASK
7620 REM TSY=9:ISX=8:TP=-1:IP=1:IS=2:GOSUB *BLOCINMASK:TSY=9:ISX=8:TP=-1:IP=1:IS=4:GOSUB *BLOCINMASK
7630 REM TSY=9:ISX=8:TP=-1:IP=1:IS=6:GOSUB *BLOCINMASK:
7640 ::
7650 REM TSY=2:ISX=2:TP=-1:IP=1:IS=1:GOSUB *BLOCINMASK:TSY=4:ISX=4:TP=-1:IP=1:IS=1:GOSUB *BLOCINMASK
7660 REM TSY=6:ISX=6:TP=-1:IP=1:IS=1:GOSUB *BLOCINMASK:TSY=8:ISX=8:TP=-1:IP=1:IS=1:GOSUB *BLOCINMASK
7670 REM TSY=9:ISX=8:TP=-1:IP=1:IS=2:GOSUB *BLOCINMASK:TSY=9:ISX=8:TP=-1:IP=1:IS=4:GOSUB *BLOCINMASK
7680 REM TSY=9:ISX=8:TP=-1:IP=1:IS=6:GOSUB *BLOCINMASK:
7690 ::
7700 REM TSY=2:ISX=2:TP=-1:IP=1:IS=1:GOSUB *BLOCINMASK:TSY=4:ISX=4:TP=-1:IP=1:IS=1:GOSUB *BLOCINMASK
7710 REM TSY=6:ISX=6:TP=-1:IP=1:IS=1:GOSUB *BLOCINMASK:TSY=8:ISX=8:TP=-1:IP=1:IS=1:GOSUB *BLOCINMASK
7720 REM TSY=9:ISX=8:TP=-1:IP=1:IS=2:GOSUB *BLOCINMASK:TSY=9:ISX=8:TP=-1:IP=1:IS=4:GOSUB *BLOCINMASK
7730 REM TSY=9:ISX=8:TP=-1:IP=1:IS=6:GOSUB *BLOCINMASK:
7740 ::
7750 END
7760 END
7770 END
7780 *BLOCINMASK
7790 ' CNTB=CNT:TT=TSY+SY+BPY:T=TSY:I=IS:FOR II=IS+SX+BPX TO ISX+SX+BPX STEP IP
7800 IF T>2 AND T<9 AND I>0 AND I<9 AND LAYER(II,TT-1,LAY)=MP AND MASK(II ,TT-2)=1 THEN IF MASK(II,TT-1)=0 THEN MASK(II,TT-1)=1:CNT=CNT+1
7810 IF T>1 AND T<9 AND I>0 AND I<9 AND LAYER(II,TT ,LAY)=MP AND MASK(II ,TT-1)=1 THEN IF MASK(II,TT )=0 THEN MASK(II,TT)=1 :CNT=CNT+1
7820 IF I>1 AND T<9 AND I>1 AND I<9 AND LAYER(II,TT-1,LAY)=MP AND MASK(II-1,TT-1)=1 THEN IF MASK(II,TT-1)=0 THEN MASK(II,TT-1)=1:CNT=CNT+1
7830 IF I>0 AND T<9 AND I>1 AND I<9 AND LAYER(II,TT ,LAY)=MP AND MASK(II-1,TT )=1 THEN IF MASK(II,TT )=0 THEN MASK(II,TT)=1 :CNT=CNT+1
7840 IF T>1 AND T<9 AND I>1 AND I<8 AND LAYER(II,TT-1,LAY)=MP AND MASK(IPENX+1,TT-1)=1 THEN IF MASK(II,TT-1)=0 THEN MASK(II,TT-1)=1:CNT=CNT+1
7850 IF T>0 AND T<9 AND I>0 AND I<8 AND LAYER(II,TT ,LAY)=MP AND MASK(II+1,TT )=1 THEN IF MASK(II,TT )=0 THEN MASK(II,TT)=1 :CNT=CNT+1
7860 IF T>1 AND T<9 AND I>0 AND I<9 AND LAYER(II,TT-1,LAY)=MP AND MASK(II ,TT )=1 THEN IF MASK(II,TT-1)=0 THEN MASK(II,TT-1)=1:CNT=CNT+1
7870 IF T>0 AND T<8 AND I>0 AND I<9 AND LAYER(II,TT ,LAY)=MP AND MASK(IT ,TT+1)=1 THEN IF MASK(II,TT )=0 THEN MASK(II,TT)=1 :CNT=CNT+1
7880 T=T+TP:I=I+IP:NEXT
7890 IF CNT<>CNTB THEN *BLOCINMASK
7900 T=8:I=0:PASS=0:WHILE PASS<1:I=I+1:IF MASK(I+SX,T+SY)=1 AND BLOCY<8 THEN BLPASS(BLOCX,BLOCY+1)=1:PASS=1:BLSTART(BLOCX,BLOCY+1)=I
7910 WEND
7920 T=1:I=0:PASS=0:WHILE PASS<1:I=I+1:IF MASK(I+SX,T+SY)=1 AND BLOCY>1 THEN BLPASS(BLOCX,BLOCY-1)=1:PASS=1:BLSTART(BLOCX,BLOCY-1)=I
7930 WEND
7940 T=8:I=0:PASS=0:WHILE PASS<1:I=I+1:IF MASK(T+SX,I+SY)=1 AND BLOCX<8 THEN BLPASS(BLOCX+1,BLOCY)=1:PASS=1:BLSTART(BLOCX+1,BLOCY)=I
7950 WEND
7960 T=8:I=0:PASS=0:WHILE PASS<1:I=I+1:IF MASK(T+SX,I+SY)=1 AND BLOCX>1 THEN BLPASS(BLOCX-1,BLOCY)=1:PASS=1:BLSTART(BLOCX-1,BLOCY)=I
7970 WEND
7980 RETURN
7990 ::
8000 *BLOCINMASKMR
8010 ' CNTB=CNT:TT=TSY+SY+BPY:T=TSY:I=IS:FOR II=-(IS+SX+BPX) TO -(ISX+SX+BPX) STEP -IP
8020 IF T>2 AND T<9 AND I>0 AND I<9 AND LAYER(II,TT-1,LAY)=MP AND MASK(II ,TT-2)=1 THEN IF MASK(II,TT-1)=0 THEN MASK(II,TT-1)=1:CNT=CNT+1
8030 IF T>1 AND T<9 AND I>0 AND I<9 AND LAYER(II,TT ,LAY)=MP AND MASK(II ,TT-1)=1 THEN IF MASK(II,TT )=0 THEN MASK(II,TT)=1 :CNT=CNT+1
8040 IF I>1 AND T<9 AND I>1 AND I<9 AND LAYER(II,TT-1,LAY)=MP AND MASK(II-1,TT-1)=1 THEN IF MASK(II,TT-1)=0 THEN MASK(II,TT-1)=1:CNT=CNT+1
8050 IF I>0 AND T<9 AND I>1 AND I<9 AND LAYER(II,TT ,LAY)=MP AND MASK(II-1,TT )=1 THEN IF MASK(II,TT )=0 THEN MASK(II,TT)=1 :CNT=CNT+1
8060 IF T>1 AND T<9 AND I>1 AND I<8 AND LAYER(II,TT-1,LAY)=MP AND MASK(II+1,TT-1)=1 THEN IF MASK(II,TT-1)=0 THEN MASK(II,TT-1)=1:CNT=CNT+1
8070 IF T>0 AND T<9 AND I>0 AND I<8 AND LAYER(II,TT ,LAY)=MP AND MASK(II+1,TT )=1 THEN IF MASK(II,TT )=0 THEN MASK(II,TT)=1 :CNT=CNT+1
8080 IF T>1 AND T<9 AND I>0 AND I<9 AND LAYER(II,TT-1,LAY)=MP AND MASK(II ,TT )=1 THEN IF MASK(II,TT-1)=0 THEN MASK(II,TT-1)=1:CNT=CNT+1
8090 IF T>0 AND T<8 AND I>0 AND I<9 AND LAYER(II,TT ,LAY)=MP AND MASK(IT ,TT+1)=1 THEN IF MASK(II,TT )=0 THEN MASK(II,TT)=1 :CNT=CNT+1
8100 T=T+TP:I=I-IP:NEXT
8110 IF CNT<>CNTB THEN *BLOCINMASK
8120 REM T=8:I=0:PASS=0:WHILE PASS<1:I=I+1:IF MASK(I+SX,T+SY)=1 AND BLOCY<8 THEN BLPASS(BLOCX,BLOCY+1)=1:PASS=1:BLSTART(BLOCX,BLOCY+1)=I
8130 REM WEND
8140 REM T=1:I=0:PASS=0:WHILE PASS<1:I=I+1:IF MASK(I+SX,T+SY)=1 AND BLOCY>1 THEN BLPASS(BLOCX,BLOCY-1)=1:PASS=1:BLSTART(BLOCX,BLOCY-1)=I
8150 REM WEND
8160 REM T=8:I=0:PASS=0:WHILE PASS<1:I=I+1:IF MASK(T+SX,I+SY)=1 AND BLOCX<8 THEN BLPASS(BLOCX+1,BLOCY)=1:PASS=1:BLSTART(BLOCX+1,BLOCY)=I
8170 REM WEND
8180 REM T=8:I=0:PASS=0:WHILE PASS<1:I=I+1:IF MASK(T+SX,I+SY)=1 AND BLOCX>1 THEN BLPASS(BLOCX-1,BLOCY)=1:PASS=1:BLSTART(BLOCX-1,BLOCY)=I
8190 REM WEND
8200 RETURN
8210 ::
8220 *BLOCINMASKDS
8230 ' CNTB=CNT:TT=-(TSY+SY+BPY):T=-(TSY):I=IS:FOR II=IS+SX+BPX TO ISX+SX+BPX STEP IP
8240 IF T>2 AND T<9 AND I>0 AND I<9 AND LAYER(II,TT-1,LAY)=MP AND MASK(II ,TT-2)=1 THEN IF MASK(II,TT-1)=0 THEN MASK(II,TT-1)=1:CNT=CNT+1
8250 IF T>1 AND T<9 AND I>0 AND I<9 AND LAYER(II,TT ,LAY)=MP AND MASK(II ,TT-1)=1 THEN IF MASK(II,TT )=0 THEN MASK(II,TT)=1 :CNT=CNT+1
8260 IF I>1 AND T<9 AND I>1 AND I<9 AND LAYER(II,TT-1,LAY)=MP AND MASK(II-1,TT-1)=1 THEN IF MASK(II,TT-1)=0 THEN MASK(II,TT-1)=1:CNT=CNT+1
8270 IF I>0 AND T<9 AND I>1 AND I<9 AND LAYER(II,TT ,LAY)=MP AND MASK(II-1,TT )=1 THEN IF MASK(II,TT )=0 THEN MASK(II,TT)=1 :CNT=CNT+1
8280 IF T>1 AND T<9 AND I>1 AND I<8 AND LAYER(II,TT-1,LAY)=MP AND MASK(II+1,TT-1)=1 THEN IF MASK(II,TT-1)=0 THEN MASK(II,TT-1)=1:CNT=CNT+1
8290 IF T>0 AND T<9 AND I>0 AND I<8 AND LAYER(II,TT ,LAY)=MP AND MASK(II+1,TT )=1 THEN IF MASK(II,TT )=0 THEN MASK(II,TT)=1 :CNT=CNT+1
8300 IF T>1 AND T<9 AND I>0 AND I<9 AND LAYER(II,TT-1,LAY)=MP AND MASK(II ,TT )=1 THEN IF MASK(II,TT-1)=0 THEN MASK(II,TT-1)=1:CNT=CNT+1
8310 IF T>0 AND T<8 AND I>0 AND I<9 AND LAYER(II,TT ,LAY)=MP AND MASK(IT ,TT+1)=1 THEN IF MASK(II,TT )=0 THEN MASK(II,TT)=1 :CNT=CNT+1
8320 T=T-TP:I=I+IP:NEXT
8330 IF CNT<>CNTB THEN *BLOCINMASK
8340 T=8:I=0:PASS=0:WHILE PASS<1:I=I+1:IF MASK(I+SX,T+SY)=1 AND BLOCY<8 THEN BLPASS(BLOCX,BLOCY+1)=1:PASS=1:BLSTART(BLOCX,BLOCY+1)=I
8350 WEND
8360 T=1:I=0:PASS=0:WHILE PASS<1:I=I+1:IF MASK(I+SX,T+SY)=1 AND BLOCY>1 THEN BLPASS(BLOCX,BLOCY-1)=1:PASS=1:BLSTART(BLOCX,BLOCY-1)=I
8370 WEND
8380 T=8:I=0:PASS=0:WHILE PASS<1:I=I+1:IF MASK(T+SX,I+SY)=1 AND BLOCX<8 THEN BLPASS(BLOCX+1,BLOCY)=1:PASS=1:BLSTART(BLOCX+1,BLOCY)=I
8390 WEND
8400 T=8:I=0:PASS=0:WHILE PASS<1:I=I+1:IF MASK(T+SX,I+SY)=1 AND BLOCX>1 THEN BLPASS(BLOCX-1,BLOCY)=1:PASS=1:BLSTART(BLOCX-1,BLOCY)=I
8410 WEND
8420 RETURN
8430 ::
8440 *BLOCINMASKDSMR
8450 REM CNTB=CNT:TT=-(TSY+SY+BPY):T=-(TSY):I=IS:FOR II=-(IS+SX+BPX) TO -(ISX+SX+BPX) STEP -IP
8460 IF T>2 AND T<9 AND I>0 AND I<9 AND LAYER(II,TT-1,LAY)=MP AND MASK(II ,TT-2)=1 THEN IF MASK(II,TT-1)=0 THEN MASK(II,TT-1)=1:CNT=CNT+1
8470 IF T>1 AND T<9 AND I>0 AND I<9 AND LAYER(II,TT ,LAY)=MP AND MASK(II ,TT-1)=1 THEN IF MASK(II,TT )=0 THEN MASK(II,TT)=1 :CNT=CNT+1
8480 IF I>1 AND T<9 AND I>1 AND I<9 AND LAYER(II,TT-1,LAY)=MP AND MASK(II-1,TT-1)=1 THEN IF MASK(II,TT-1)=0 THEN MASK(II,TT-1)=1:CNT=CNT+1
8490 IF I>0 AND T<9 AND I>1 AND I<9 AND LAYER(II,TT ,LAY)=MP AND MASK(II-1,TT )=1 THEN IF MASK(II,TT )=0 THEN MASK(II,TT)=1 :CNT=CNT+1
8500 IF T>1 AND T<9 AND I>1 AND I<8 AND LAYER(II,TT-1,LAY)=MP AND MASK(II+1,TT-1)=1 THEN IF MASK(II,TT-1)=0 THEN MASK(II,TT-1)=1:CNT=CNT+1
8510 IF T>0 AND T<9 AND I>0 AND I<8 AND LAYER(II,TT ,LAY)=MP AND MASK(II+1,TT )=1 THEN IF MASK(II,TT )=0 THEN MASK(II,TT)=1 :CNT=CNT+1
8520 IF T>1 AND T<9 AND I>0 AND I<9 AND LAYER(II,TT-1,LAY)=MP AND MASK(II ,TT )=1 THEN IF MASK(II,TT-1)=0 THEN MASK(II,TT-1)=1:CNT=CNT+1
8530 IF T>0 AND T<8 AND I>0 AND I<9 AND LAYER(II,TT ,LAY)=MP AND MASK(IT ,TT+1)=1 THEN IF MASK(II,TT )=0 THEN MASK(II,TT)=1 :CNT=CNT+1
8540 T=T-TP:I=I-IP:NEXT
8550 IF CNT<>CNTB THEN *BLOCINMASK
8560 T=8:I=0:PASS=0:WHILE PASS<1:I=I+1:IF MASK(I+SX,T+SY)=1 AND BLOCY<8 THEN BLPASS(BLOCX,BLOCY+1)=1:PASS=1:BLSTART(BLOCX,BLOCY+1)=I
8570 WEND
8580 T=1:I=0:PASS=0:WHILE PASS<1:I=I+1:IF MASK(I+SX,T+SY)=1 AND BLOCY>1 THEN BLPASS(BLOCX,BLOCY-1)=1:PASS=1:BLSTART(BLOCX,BLOCY-1)=I
8590 WEND
8600 T=8:I=0:PASS=0:WHILE PASS<1:I=I+1:IF MASK(T+SX,I+SY)=1 AND BLOCX<8 THEN BLPASS(BLOCX+1,BLOCY)=1:PASS=1:BLSTART(BLOCX+1,BLOCY)=I
8610 WEND
8620 T=8:I=0:PASS=0:WHILE PASS<1:I=I+1:IF MASK(T+SX,I+SY)=1 AND BLOCX>1 THEN BLPASS(BLOCX-1,BLOCY)=1:PASS=1:BLSTART(BLOCX-1,BLOCY)=I
8630 WEND
8640 RETURN
8650 ::
8660 *BLOCBORDER
8670 IF MOVABLEMAP(SELECTBLOCX,SELECTBLOCY,1)=8 THEN GOSUB *BLUPMASK
8680 IF MOVABLEMAP(SELECTBLOCX,SELECTBLOCY,2)=4 THEN GOSUB *BLLFMASK
8690 IF MOVABLEMAP(SECECTBLOCX,SELECTBLOCY,3)=6 THEN GOSUB *BLRIMASK

inserted by FC2 system