1 REM
3 DEFINTA-Z:DEFSNGE
10 REM
20 ON ERROR GOTO 30000
23 GOSUB 1000 
25 RMU=NET
30 TEST=1
40 TEST=2:CLOSE
50 TEST=1
55 REM
90 REM
103 GOSUB 22000
104 GOSUB 40300 
106 GOSUB 40100 
107 COLOR CVET,CB:CLS:PCLS
110 GOSUB 400
115 GOSUB25100:GOSUB25200
120 GOSUB 300 
165 REM
300 REM
302 C=CB:GOSUB 5000
303 GOSUB 65500
304 XS=XT:YS=YT  :XQ=XF:YQ=YF
305 REM
306 REM
307 IF KRD=DA THEN GOSUB 25200 
310 A$=INKEY$:IF A$="" THEN GOTO 310
312 IF A$=DEL$ THEN GOSUB 11000 :GOTO 303
315 IF A$=INS$ THEN GOSUB 950:GOTO 303
320 IF A$=MENU$ THEN GOSUB 600:GOTO 305
330 IF A$=LFT$ THEN GOSUB 700:GOSUB 900:GOTO 305
340 IF A$=RGHT$ THEN GOSUB 750:GOSUB 900:GOTO 305
350 IF A$=UP$ THEN GOSUB 800:GOSUB 900:GOTO 305
360 IF A$=DOWN$ THEN GOSUB 850:GOSUB 900:GOTO 305
370 IF A$=CR$ THEN GOSUB 1300:GOTO 303 
373 IF A$=ESC$ THEN GOSUB 56000:GOSUB 61100:GOTO 303 
374 IF A$=TAB$ THEN GOSUB 40100:GOSUB61100:GOTO303
375 REM
377 IF A$=SPN$ THEN GOSUB 9000:GOSUB 9100:GOTO 303 
378 IF A$=S3$ THEN GOSUB 24500:GOTO 310 
380 GOTO 305
399 RETURN
400 REM
405 D2=2*DMENU
407 XA=XMENU+DMENU:YA=YMENU+DMENU
410 LINE (X1,YMENU)-(X2,Y2),CPR,BF 
415 XP=XA-5:XQ=XP+N2*D2:YP=YA-5:YQ=YP+DMENU+9:LINE(XP,YP)-(XQ,YP+DMENU+9),CB,B
417 FORI=XP+D2TOXP+D2*(N2-1)STEPD2:LINE(I,YP)-(I,YQ),CB:NEXT I
420 LINE(XA,YA)-(XA+DMENU,YA+DMENU),CB
430 XA=XA+D2:LINE(XA,YA)-(XA+DMENU,YA+DMENU),CB,B
440 XA=XA+D2:LINE(XA,YA)-(XA+DMENU,YA+DMENU),CB,BF
450 XA=XA+D2:CIRCLE(XA+9,YA+DMENU/2),DMENU/2,CB,,,E
460 XA=XA+D2
461 GOSUB47100
462 REM
463 REM
464 REM
465 REM
466 XA=XA+D2
467 GOSUB47000
471 REM
472 REM
474 REM
475 PI=3.14
476 XA=XA+D2:LINE(XA,YA)-(XA,YA+DMENU),CB
477 REM
478 PX=XA+D2/2:PY=YA+D2*.2  :LINE(PX,YA)-(XA,PY),CB:LINE(XA,PY)-(PX,YA+DMENU  ),CB
480 LINE(XQ+5,YMENU)-(XQ+5,Y2),CB
481 XH=410
482 YP=(Y2-YMENU)/2+YMENU
483 LINE(XQ+5,YP)-(XH,YP),CB
485 LINE(XW,YMENU)-(XW,Y2),CB
487 XV=315
489 LINE(XV,YMENU)-(XV,YP),CB
491 XJ=342
493 LINE(XJ,YP)-(XJ,Y2),CB
495 LINE(XH,YMENU)-(XH,Y2),CB
499 LINE(X1,YMENU)-(X2,YMENU),CPR
500 LOCATE41,15:PRINT"Режим:";:GOSUB9140
505 LOCATE30,15:PRINT" / -Помощь";
510 LOCATE30,16:PRINT"Счетчик: ";
515 GOSUB9130
520 LOCATE45,16:PRINT"Шаг=";
530 GOSUB9100
549 RETURN
600 REM
605 RG=1
607 GOSUB9140
610 A$=INKEY$:IF A$="" THEN GOTO 610
620 IF A$=LFT$ THEN GOSUB 3000:GOTO 610
630 IF A$=RGHT$ THEN GOSUB 3100:GOTO 610
640 IF A$=MENU$ THEN GOTO 689
650 IFA$=TAB$THENGOSUB40100:GOSUB61100:GOTO610
680 GOTO 610
689 RG=0
690 GOSUB9140
699 RETURN
700 XT=XT-H1:IF XT<X1 THEN XT=XT+DX+1
710 RETURN
750 XT=XT+H1:IF XT>DX THENXT=XT-DX-1 
760 RETURN
800 YT=YT-H2:IF YT<Y1 THEN YT=YT+DY+1 
810 RETURN
850 YT=YT+H2:IF YT>DY THEN YT=YT-DY-1 
860 RETURN
900 REM
901 REM
902 IF BYLSEL=NET THEN PSET(XS,YS),CT 
903 CT=POINT(XT,YT):XS=XT:YS=YT:PSET(XT,YT),C0
905 REM
910 REM
915 REM
916 IFXT=XFANDYT=YF THEN BYLSEL=DA ELSEBYLSEL=NET
917 REM
920 REM
925 REM
930 REM
940 REM
949 RETURN
950 REM
955 IF BYLSEL=DA THEN GOTO 970 
957 REM
958 REM
960 PSET(XQ,YQ),CF:CF=CT:XQ=XF:YQ=YF
962 BYLSEL=DA
965 CT=C0
970 XF=XT:YF=YT
980 RETURN
1000 CR$=CHR$(&O15) 
1001 POKE &O173460,0 
1003 DIM WW%(15) 
1004 GOSUB 65440 
1005 LOCATE,,0
1010 ESC$=CHR$(27)
1015 SPRN$="."
1020 LFT$=CHR$(132)
1030 RGHT$=CHR$(134)
1040 DOWN$=CHR$(130)
1050 UP$=CHR$(136)
1052 S3$=";"
1055 MENU$=":"
1060 REM
1064 DEL$=CHR$(8)
1065 REM
1066 INS$=" "
1067 DEL$=CHR$(8)
1068 TAB$="/"
1069 STP$=CHR$(13)
1070 DA=1:NET=0
1080 SHAG=5
1081 W1=3
1082 W2=2
1083 H1=W1*SHAG
1084 H2=W2*SHAG
1085 KRD=DA 
1086 KX=54 
1087 KY=15 
1090 CVET=5
1100 CB=0
1105 C0=7:
1107 C1=7
1110 X1=0 
1120 X2=511 
1130 Y1=0 
1140 Y2=255   
1143 D1=(X2-X1+1)\64 
1146 D2=(Y2-Y1+1)\16 
1150 XT=150:YT=100 
1160 XF=120:YF=80 
1165 DMENU=15: XMENU=3: YMENU=220
1167 CPR=5 
1170 DX=511:DY=YMENU-1 
1180 CT=0:CF=0
1190 XKURS=XMENU+20:YKURS=YMENU+5:RKURS=2:DKURS=2*DMENU
1200 NOMKOM=1 
1210 N1=1:N2=7 
1220 BYLSEL=NET 
1225 NVNUT=199
1227 NN=3 
1230 DIM VNUT(NVNUT,NN) 
1235 IVNUT=-1 
1240 NSTROK=10 
1250 PRIZ=10 
1255 DIMREGIM$(1)
1256 RG=0
1258 REVIM$(0)="Ред."
1259 REVIM$(1)="Меню"
1260 E=3/2
1270 PAROL$="Внутреннее представление"
1279 KRSR$=">"
1280 CLS:PCLS
1299 RETURN
1300 REM
1302 IFNOMKOM=6THENGOSUB63300:GOTO1390
1304 IFNOMKOM=7THENGOSUB1900
1305 IVNUT=IVNUT+1:IF IVNUT>NVNUT THEN GOSUB 10000:GOTO1399
1307 GOSUB9130
1310 IF NOMKOM=1 THEN GOSUB 1500:GOTO 1390 
1320 IF NOMKOM=2 THEN GOSUB 1550:GOTO 1390 
1330 IF NOMKOM=3 THEN GOSUB 1600:GOTO 1390 
1340 IF NOMKOM=4 THEN GOSUB 1650:GOTO 1390 
1350 IF NOMKOM=5 THEN GOSUB 1700:GOTO 1390 
1390 GOSUB 8000 
1399 RETURN
1500 REM
1505 VNUT(IVNUT,0)=512+XT 
1506 VNUT(IVNUT,1)=CVET*512+XF
1507 VNUT(IVNUT,2)=YT
1508 VNUT(IVNUT,3)=YF
1510 REM
1520 LINE(XT,YT)-(XF,YF),CVET
1540 RETURN
1550 REM
1555 VNUT(IVNUT,0)=2*512+XT 
1556 VNUT(IVNUT,1)=CVET*512+XFXT
1557 VNUT(IVNUT,2)=YT
1558 VNUT(IVNUT,3)=YF
1560 REM
1580 LINE(XT,YT)-(XF,YF),CVET,B
1599 RETURN
1600 REM
1605 VNUT(IVNUT,0)=3*512+XT 
1610 VNUT(IVNUT,1)=CVET*512+XF
1615 VNUT(IVNUT,2)=YT
1620 VNUT(IVNUT,3)=YF
1625 REM
1630 LINE(XT,YT)-(XF,YF),CVET,BF
1640 RETURN
1650 REM
1651 REM
1652 REM
1653 REM
1654 REM
1655 R=INT(.5+SQR((XT-XF)*(XT-XF)+E*E*(YT-YF)*(YT-YF)))
1660 VNUT(IVNUT,0)=4*512+XF 
1665 VNUT(IVNUT,1)=CVET
1670 VNUT(IVNUT,2)=YF
1675 VNUT(IVNUT,3)=R
1680 CIRCLE(XF,YF),R,CVET,,,E
1690 RETURN
1700 REM
1710 VNUT(IVNUT,0)=5*512+XT 
1720 VNUT(IVNUT,1)=CVET*512+CVET
1730 VNUT(IVNUT,2)=YT
1780 REM
1783 PSET(XT,YT),CT:PSET(XF,YF),CF
1785 PAINT(XT,YT),CVET,CVET
1787 REM
1790 RETURN
1900 REM
1905 REM
1910 COLOR 7,0:CLS:PCLS
1920 GOSUB 2000
1925 IFPZ=NETTHENGOSUB61100:GOTO1999
1940 GOTO 65525 
1999 RETURN
2000 REM
2010 PRINT "Хотите закончить?":PRINT "(изображение будет стерто) (Д/Н)"
2015 GOSUB45000
2199 RETURN
3000 REM
3010 IF NOMKOM=N1 THEN GOTO 3099
3020 NOMKOM=NOMKOM-1
3025 C=CPR :GOSUB 5000
3030 C=CB:XKURS=XKURS-DKURS:GOSUB 5000
3099 RETURN
3100 REM
3110 IF NOMKOM=N2 THEN GOTO 3199
3120 NOMKOM=NOMKOM+1
3125 C=CPR :GOSUB 5000
3130 C=CB:XKURS=XKURS+DKURS:GOSUB 5000
3199 RETURN
5000 REM
5020 DV=2:DB=4:A1=XKURS-DV:A2=XKURS+DV
5025 B1=YKURS-DB
5027 B2=YKURS+DB
5030 LINE(A1,YKURS)-(XKURS,B2),C
5035 LINE(XKURS,B2)-(A2,YKURS),C
5040 LINE(A1,YKURS)-(A2,YKURS),C
5045 PAINT(XKURS,YKURS+1),C,C
5050 LINE(XKURS,YKURS)-(XKURS,B1),C
5099 RETURN
8000 REM
8002 A=POINT(XS,YS)
8004 IF A<>C0 THEN CT=A 
8005 A=POINT(XQ,YQ)
8006 REM
8007 IF A<>C1 THEN CF=A 
8010 REM
8012 REM
8014 REM
8016 REM
8018 REM
8020 RETURN
9000 IF SHAG=1 THEN SHAG=5 ELSE SHAG=1 
9005 H1=W1*SHAG
9007 H2=W2*SHAG
9010 RETURN
9100 LOCATE 49,16:PRINT SHAG;
9110 RETURN
9130 LOCATE40,16:PRINTUSING"###";NVNUT-IVNUT  ;:RETURN
9140 LOCATE47,15:PRINTREVIM$(RG);:RETURN
10000 REM
10005 CLS:PCLS:PRINT"Внутреннее представление заполнено.":PRINT "Нажмите <ВК>"
10007 GOSUB45100
10008 IVNUT=IVNUT-1
10010 GOSUB61100
10020 RETURN
11000 REM
11003 IF IVNUT=-1 THEN GOTO11099
11005 IVNUT=IVNUT-1
11007 REM
11008 REM
11009 REM
11010 REM
11015 REM
11016 REM
11017 REM
11018 GOSUB 61100 
11020 REM
11030 REM
11040 REM
11050 REM
11099 RETURN
20000 REM
20010 XT=VNUT(I,0)MOD512
20020 YT=VNUT(I,2)
20030 XF=VNUT(I,1)MOD512
20040 YF=VNUT(I,3)
20050 REM
20099 RETURN
20100 REM
20110 XT=VNUT(I,0)MOD512
20120 YT=VNUT(I,2)
20130 XF=VNUT(I,1)MOD512
20140 YF=VNUT(I,3)
20150 REM
20199 RETURN
20200 REM
20210 XT=VNUT(I,0)MOD512
20220 YT=VNUT(I,2)
20230 XF=VNUT(I,1)MOD512
20240 YF=VNUT(I,3)
20250 REM
20299 RETURN
20300 REM
20310 XF=VNUT(I,0)MOD512
20320 YF=VNUT(I,2)
20330 R=VNUT(I,3)
20350 REM
20399 RETURN
20400 REM
20410 XT=VNUT(I,0)MOD512
20420 YT=VNUT(I,2)
20450 REM
20455 REM
20499 RETURN
20600 GOSUB 20000
20603 REM
20605 LINE(XT,YT)-(XF,YF),CVET
20610 RETURN
20650 GOSUB 20100 
20653 REM
20655 LINE(XT,YT)-(XF,YF),CVET,B
20660 RETURN
20700 GOSUB 20200 
20703 REM
20705 LINE(XT,YT)-(XF,YF),CVET,BF
20710 RETURN
20750 GOSUB 20300
20753 REM
20755 CIRCLE(XF,YF),R,CVET,,,E
20760 RETURN
20800 GOSUB 20400
20803 REM
20805 REM
20807 REM
20808 PAINT(XT,YT),CVET,CVET
20810 RETURN
22000 REM
22001 GOSUB23000
22005 REM
22007 A=10:B= 5:LINE(A,B)-(X2-A,Y2-B),6,B
22008 D1=3:D2=2:LINE(A+D1,B+D2)-(X2-A-D1,Y2-B-D2),6,B
22009 PAINT(A+D1+1,B+D2-1),6,6
22050 GOSUB45100
22099 RETURN
23000 RELOC (120,20)
23001 COLOR,1:CLS:PCLS
23002 G1=6
23005 LINE(10,165)-(250,181),G1,BF 
23007 G2=6
23010 XC=62:CIRCLE(XC,53),24,G2 
23015 PAINT (XC,53),G2,G2
23017 G8=5
23020 LINE(26,53)-(95,18),G8
23025 LINE(26,53)-(46,4),G8
23030 LINE(46,4)-(94,18),G8
23035 PAINT(84,18),G8,G8
23037 G3=4
23040 LINE(40,78)-(82,121),G3,BF 
23045 LINE(40,78)-(104,110),G3
23050 LINE(99,118)-(104,110),G3
23052 LINE(99,118)-(64,104),G3
23055 PAINT(88,110),G3,G3
23060 LINE(80,86)-(100,70),G3
23065 LINE(100,70)-(104,78),G3
23070 LINE(104,78)-(79,96),G3
23075 PAINT(83,88),G3,G3
23077 G4=5
23080 LINE(50,122)-(28,164),G4
23085 LINE(44,164)-(61,127),G4
23090 LINE(58,127)-(70,163),G4
23095 LINE(83,163)-(70,122),G4
23100 LINE(70,122)-(48,122),G4
23105 LINE(27,164)-(43,164),G4
23110 LINE(70,164)-(83,164),G4
23112 PAINT(80,162),G4,G4
23115 G5=5
23120 REM
23121 LINE(115,35)-(250,147),G5,BF
23122 G9=4
23125 LINE(115,35)-(250,58),G9,BF
23126 LINE(115,59)-(249,59),7
23127 G6=6
23128 E1=1.5:R=10
23129 CIRCLE(155,156),R,G6,,,E1
23130 PAINT(155,156),G6,G6
23135 CIRCLE(204,156),R,G6,,,E1
23140 PAINT(204,156),G6,G6
23142 G7=7
23145 LINE(100,110)-(127,100),G7 
23150 RELOC(0,0)
23160 X=33:Y=5:LOCATEX,Y:PRINT "ИПИ АН СССР"
23161 Y=Y+1:LOCATEX+2,Y:PRINT"УЧЕБНЫЙ"
23162 Y=Y+1:LOCATEX-2,Y:PRINT"ДЕМОНСТРАЦИОННЫЙ"
23166 Y=Y+1:LOCATEX,Y:PRINT"ГРАФИЧЕСКИЙ"
23170 Y=Y+1:LOCATEX+2,Y:PRINT"РЕДАКТОР"
23175 Y=Y+1:LOCATEX+1,Y:PRINT"версия 1.2"
23180 LOCATE24,15:PRINT"Нажмите <ВК>";
23198 RELOC(0,0)
23199 RETURN
24500 IF KRD=NET  THEN GOTO 24560
24510 KRD=NET
24520 GOSUB 26300
24530 GOTO 24599
24560 KRD=DA
24570 GOSUB 25100
24575 GOSUB 25200
24599 RETURN
25100 LOCATE KX,KY:PRINT "X=";
25105 LOCATE KX,KY+1:PRINT "Y=";
25109 RETURN
25200 LOCATE KX+3,KY:PRINT USING "###";XT/W1; 
25205 LOCATE KX+3,KY+1:PRINT USING "###";YT/W2;
25209 RETURN
26300 LOCATE KX,KY:PRINT "       ";    
26305 LOCATE KX,KY+1:PRINT "       ";
26309 RETURN
30000 REM
30002 IF TEST=1 THEN GOTO 30010
30003 IF ERR=2 THEN RMU=DA
30004 RESUME 50
30005 REM
30010 CLS:PCLS
30012 GOSUB45200
30015 REM
30017 IF ERR=52 THEN PRINT "НЕВЕРЕН НОМЕР ФАЙЛА":GOTO 30100
30020 IF ERR=53 THEN PRINT "ФАЙЛ НЕ НАЙДЕН":GOTO 30100
30024 IF ERR=54 THEN PRINT "НЕВЕРЕН РЕЖИМ ФАЙЛА":GOTO 30100
30026 IF ERR=55 THEN PRINT "ФАЙЛ УЖЕ ОТКРЫТ":GOTO 30100
30028 IF ERR=57 THEN PRINT "ОШИБКА В/В":GOTO 30100
30030 IF ERR=58 THEN PRINT "ФАЙЛ УЖЕ СУЩЕСТВУЕТ":GOTO 30100
30040 IF ERR=61 THEN PRINT "ДИСК ПОЛНЫЙ":GOTO 30100 
30050 IF ERR=62 THEN PRINT "ВВОД ПОСЛЕ END":GOTO 30100
30060 IF ERR=63 THEN PRINT "НЕВЕРЕН НОМЕР ЗАПИСИ":GOTO 30100
30070 IF ERR=64 THEN PRINT "НЕВЕРНО ИМЯ ФАЙЛА":GOTO 30100
30080 IF ERR=66 THEN PRINT "ПРЯМОЙ ОПЕРАТОР В ФАЙЛЕ":GOTO 30100
30090 IF ERR=67 THEN PRINT "МНОГО ФАЙЛОВ":GOTO 30100
30093 REM
30095 REM
30097 REM
30099 PRINT "Ошибка номер ";ERR;" на строке ";ERL:GOTO 65525
30100 PRINT "Нажмите <ВК>"
30102 GOSUB45100
30106 CLOSE 
30108 RESUME 30109  
30109 GOSUB 61100 :GOTO 30199 
30110 REM
30199 GOTO 303   
40100 REM
40110 COLOR 7,0:CLS:PCLS
40120 PRINT "ВЛЕВО, ВПРАВО, ВНИЗ, ВВЕРХ - перемещение текущего курсора"
40130 PRINT "<ПРОБЕЛ> - установка фиксированного курсора"
40140 PRINT "<ВК> - выполнение текущей команды"
40145 PRINT": - вход в режим выбора из меню /"
40150 PRINT "       возврат в режим редактирования"
40160 PRINT "ВЛЕВО, ВПРАВО - перемещение указателя в меню"
40170 PRINT "DEL - стирание"
40180 PRINT "/ - помощь"
40182 PRINT"; - включение /выключение вывода значений координат":PRINT "       текущего курсора"
40183 PRINT". - изменение шага перемещения текущего курсора (1 <-> 5)"
40185 PRINT"<ПРФ> - запись на диск /чтение с диска"
40189 PRINT
40190 PRINT"   Для продолжения выдачи информации нажмите <ПРОБЕЛ>"
40195 PRINT" ","Иначе нажмите <ВК>"
40200 A$=INKEY$
40203 IFA$=""GOTO40200
40205 IFA$=" "GOTO40220
40210 IFA$=CR$GOTO40299
40215 GOTO40200
40220 CLS:X=1:Y=1:D=5:LOCATEX,Y:PRINT"Меню:
40225 Y=Y+1:LOCATEX+D,Y:PRINT"отрезок";
40230 Y=Y+1:LOCATEX+D,Y:PRINT"прямоугольник";
40235 Y=Y+1:LOCATEX+5,Y:PRINT"закрашенный прямоугольник";
40240 Y=Y+1:LOCATEX+D,Y:PRINT"окружность";
40245 Y=Y+1:LOCATEX+D,Y:PRINT"закраска";
40250 Y=Y+1:LOCATEX+D,Y:PRINT"полное стирание";
40255 Y=Y+1:LOCATEX+D,Y:PRINT"конец работы"
40258 Y=Y+1:LOCATEX,Y:PRINT"Режим:     Ред. - редактирование"
40259 Y=Y+1:LOCATEX+11,Y:PRINT"Меню - выбор из меню"
40260 Y=Y+1:LOCATEX,Y:PRINT"Шаг      - шаг перемещения текущего курсора"
40265 Y=Y+1:LOCATEX,Y:PRINT"X, Y     - координаты текущего курсора"
40270 Y=Y+1:LOCATEX,Y:PRINT"Счетчик  - счетчик оставшихся свободных элементов"
40273 Y=Y+1:LOCATEX+11,Y:PRINT"во внутреннем представлении"
40280 PRINT:PRINT" "," Нажмите <ВК>";
40285 GOSUB45100
40299 RETURN
40300 CLS 
40305 PCLS
40310 XRAM=10
40315 YRAM=3:
40320 FR=44
40330 QR=8
40340 SR$=CHR$(&HBF)
40350 GOSUB 43000 
40360 LOCATE XRAM+5,YRAM+2
40370 PRINT "Запрещается нажимать на клавиши"
40380 LOCATE XRAM+10,YRAM+3
40390 PRINT "СТОП, УПР+C, СЕЛ,"
40392 LOCATEXRAM+3,YRAM+4
40393 PRINT"F1, F2, F3, F4, F5, F6, F7, F8, F9, F10
40395 LOCATE XRAM+12,YRAM+10
40400 PRINT "Нажмите <ВК>"
40405 GOSUB45100
40440 RETURN
43000 REM
43010 LOCATE XRAM,YRAM:PRINT STRING$(FR,SR$):HH=XRAM+FR-1:FOR II=YRAM+1 TO YRAM+QR-2:LOCATE HH,II:PRINT SR$;:NEXT
43020 LOCATE XRAM,YRAM+QR-2:PRINT STRING$(FR,SR$)
43030 FOR II=YRAM+QR-2 TO YRAM+1 STEP-1:LOCATEXRAM,II:          PRINT SR$;:NEXT:RETURN
44000 PRINT "НЕТ ДИСКА" 
44005 GOSUB45200
44010 PRINT ,"Нажмите <ВК>"
44015 GOSUB45100
44030 RETURN
45000 PZ=DA
45005 A$=INKEY$
45010 IFA$=""GOTO45005
45025 IFA$="Д"ORA$="д"ORA$="D"ORA$="d"THENGOTO45045
45035 IFA$="Н"ORA$="н"ORA$="N"ORA$="n"THENPZ=NET:GOTO45045
45040 GOTO45005
45045 RETURN
45100 A$=INKEY$
45105 IFA$=""GOTO45100
45110 IFA$<>CR$THENGOTO45100
45115 RETURN
45200 BEEP:RETURN
47000 YP=YA+10
47005 D=12
47010 LINE(XA,YP)-(XA+D,YP+5),CB,B
47020 PX=10
47025 PY=10
47030 LINE(XA,YP)-(XA+PX,YP-PY),CB
47040 LINE(XA+PX,YP-PY)-(XA+PX+D,YP-PY),CB
47050 LINE(XA+D,YP)-(XA+PX+D,YP-PY),CB
47060 LINE(XA+D,YP+5)-(XA+PX+D,YP+5-PY),CB
47070 LINE(XA+PX+D,YP+5-PY)-(XA+PX+D,YP-PY),CB
47099 RETURN
47100 YP=YA+6
47110 XP=XA
47120 PX=10
47130 PY=4
47140 LINE(XP,YP)-(XP+PX,YP-PY),CB
47150 LINE(XP+PX,YP-PY)-(XP+PX+8,YP-PY+8),CB
47160 LINE(XP+PX+8,YP-PY+8)-(XP+5,YP+6),CB
47170 LINE(XP+5,YP+6)-(XP,YP),CB
47172 CIRCLE(XP+5,YP-1),4,CB,0,3.14
47175 FX=XP+PX+9:FY=YP-PY+8
47180 LINE(FX,FY)-(FX-2,FY+2),CB:CIRCLE(FX,FY+2),3,CB,3.14,6.28,E
47185 LINE(FX+4,FY+2)-(FX,FY),CB
47187 PAINT(FX+1,FY+1),CB,CB
47199 RETURN
54000 REM
54010 CLS
54020 PRINT "Введите имя файла"
54030 FL$=""
54040 JJ=0
54050 XL=1
54060 YL=2
54070 LOCATE XL,YL,1
54080 A$=INKEY$
54090 IF A$="" THEN GOTO 54080
54100 IF A$<>LFT$ THEN GOTO 54110
54105 GOSUB54400
54107 GOTO54070
54110 IF A$=CR$ THEN GOTO 54398
54120 AA=ASC(A$)
54130 REM
54131 IFAA<32 GOTO54080
54140 IF JJ+1>14 GOTO 54398
54150 FL$=FL$+A$
54160 JJ=JJ+1
54170 PRINT A$;
54180 XL=XL+1
54190 GOTO 54070
54398 LOCATE,,0
54399 RETURN
54400 REM
54410 IFJJ=0 THEN GOTO 54499
54415 XL=XL-1
54417 LOCATE XL,YL
54420 PRINT " ";
54440 JJ=JJ-1
54450 FL$=MID$(FL$,1,LEN(FL$)-1)  
54499 RETURN
55000 COLOR 7,0 
55005 GOSUB45200
55010 CLS
55015 PCLS
55016 REM
55017 REM
55020 PRINT "ОШИБКА ПРИ ИНТЕРПРЕТАЦИИ ВНУТРЕННЕГО ПРЕДСТАВЛЕНИЯ"
55021 PRINT"Конец работы"
55022 PRINT"Нажмите <ВК>"
55023 GOSUB45100
55024 GOTO 65525 
55040 REM
55100 CLOSE
55103 GOSUB45200
55105 COLOR7,0
55107 CLS
55110 PCLS
55115 PRINT"ФАЙЛ НЕ В ФОРМАТЕ ВНУТРЕННЕГО ПРЕДСТАВЛЕНИЯ"
55120 PRINT"Нажмите <ВК>"
55125 GOSUB45100
55130 RETURN
56000 REM
56005 COLOR 7,0
56010 CLS
56020 PCLS
56025 IF RMU=DA THEN GOSUB 44000:GOTO 56190
56030 PRINT SPC(15);"Р А Б О Т А  С  Д И С К О М"
56040 PRINT SPC(15);"___________________________"
56050 PRINT
56060 PRINT"  Запись внутреннего представления"
56070 PRINT"  Чтение внутреннего представления"
56080 PRINT"  Получение файла с Бейсик-программой"
56090 PRINT"  ОТМЕНА"
56100 X=1
56110 YV=4
56120 YW=7
56130 GOSUB57100
56140 GOSUB57000
56150 ON NMVZM GOSUB 57900,57950,60000:GOTO 56190
56155 IF NMVZM=4 THEN GOTO 56190
56160 PRINT"Ошибка отладки: NOMVZM<>1..3; NOMVZM=";NOMVZM
56180 STOP
56190 RETURN
57000 REM
57010 NMVZM=1
57020 Y=YV
57030 LOCATEX,Y
57040 PRINT KRSR$
57050 LOCATEX,Y
57060 SIM$=INKEY$
57070 IF SIM$="" THEN GOTO 57060
57075 IF SIM$<>UP$ AND SIM$<>DOWN$ AND SIM$<>CR$ THEN GOTO57060
57080 IF SIM$<>DOWN$ THEN GOTO57088
57081 IFY>=YW THEN GOTO 57060
57082 Y=Y+1
57083 NMVZM=NMVZM+1
57084 PRINT " "
57085 GOTO 57030
57088 IF SIM$<>UP$ THEN GOTO 57099
57089 IFY<=YV THEN GOTO 57060
57090 Y=Y-1
57091 NMVZM=NMVZM-1
57092 PRINT " "
57093 GOTO57030
57099 RETURN
57100 LOCATE3,12:PRINT"Установите ";KRSR$;" на нужную строку с помощью стрелок ВВЕРХ, ВНИЗ"
57110 PRINT SPC(10);"и нажмите <ВК>"
57120 RETURN
57900 GOSUB 54000 
57905 XRAM=9 :YRAM=7:FR=34:QR=6:SR$=CHR$(&HBF):GOSUB 43000:LOCATE XRAM+2,YRAM+2:PRINT "ОСУЩЕСТВЛЯЕТСЯ ЗАПИСЬ НА ДИСК"
57910 OPEN "O",#1,FL$
57912 I1=IVNUT
57914 PRINT#1,PAROL$
57915 PRINT #1,I1
57920 IF IVNUT =-1 THEN GOTO 57946
57925 FOR I=0 TO I1
57930 FOR J=0 TO NN
57935 PRINT #1,VNUT(I,J);
57940 NEXT J
57942 NEXT I
57946 CLOSE
57949 RETURN
57950 GOSUB 54000 
57952 XRAM=9 :YRAM=7:FR=34:QR=6:SR$=CHR$(&HBF):GOSUB 43000:LOCATE XRAM+2,YRAM+2:PRINT "ОСУЩЕСТВЛЯЕТСЯ ЧТЕНИЕ С ДИСКА"
57953 REM
57955 OPEN "I",#1,FL$
57956 LINE INPUT#1,A$
57958 IFA$<>PAROL$THENGOSUB55100:GOTO57999
57960 INPUT #1,II
57961 REM
57965 IF II=-1 THEN GOTO 57999
57970 IF II<-1 THEN GOSUB 55000 
57974 I2=IVNUT+II+1
57975 REM
57980 IF I2>NVNUT THEN I2=NVNUT-IVNUT 
57981 FORI=0TOII
57982 REM
57984 FOR J=0 TO NN
57986 INPUT #1,VNUT(I+IVNUT+1,J) 
57987 REM
57988 NEXTJ
57990 NEXT I
57992 IF IVNUT+II>NVNUT THEN GOSUB 10000 ELSE IVNUT=I2 
57999 CLOSE:RETURN
60000 REM
60005 GOSUB 54000 
60006 XRAM=9 :YRAM=7:FR=34:QR=6:SR$=CHR$(&HBF):GOSUB 43000:LOCATE XRAM+2,YRAM+2:PRINT "ОСУЩЕСТВЛЯЕТСЯ ЗАПИСЬ НА ДИСК"
60020 OPEN "O",#1,FL$
60025 NSTROK=10 
60027 PRINT #1,NSTROK;"COLOR 1,0"
60028 NSTROK=NSTROK+PRIR
60030 PRINT #1,NSTROK;"CLS"
60040 NSTROK=NSTROK+PRIR
60050 PRINT #1,NSTROK;"PCLS"
60060 NSTROK=NSTROK+PRIR
60070 FOR I=0 TO IVNUT
60080 ON VNUT(I,0)\512 GOSUB 64800,64830,64850,64880,64900
60085 REM
60090 NEXT I
60092 NSTROK=NSTROK+PRIR
60093 PRINT #1,NSTROK;"END"
60095 CLOSE
60097 REM
60099 RETURN
61100 REM
61102 REM
61105 COLOR 7,CB 
61110 CLS
61115 PCLS
61120 GOSUB400
61125 GOSUB5000 
61127 IFKRD=DATHENGOSUB25100:GOSUB25200
61130 IF IVNUT=-1 GOTO 61155
61132 AT=XT:BT=YT:AF=XF:BF=YF
61135 FOR I=0 TO IVNUT
61136 JV=VNUT(I,0)\512
61137 IFJV<0ORJV>5THEN GOTO55000
61140 ON JVGOSUB 20600,20650,20700,20750,20800:GOTO61146
61141 REM
61142 REM
61145 REM
61146 REM
61147 REM
61150 NEXT I
61152 XT=AT:YT=BT:XF=AF:YF=BF
61155 CT=POINT(XT,YT):CF=POINT(XF,YF):GOSUB 65500
61157 XS=XT:YS=YT:XQ=XF:YQ=YF 
61160 GOSUB 8000
61161 GOSUB9130
61165 REM
61199 RETURN
63300 REM
63305 GOSUB 63400
63307 IF PZ=NET THEN GOSUB 61100:GOTO 63330 
63310 IVNUT=-1
63320 GOSUB 61100 
63330 RETURN
63400 CLS 
63405 PCLS
63410 PRINT "Хотите стереть все изображение? (Д/Н)"
63420 GOSUB45000
63460 RETURN
64800 REM
64805 GOSUB 20000
64820 PRINT #1,NSTROK;"LINE(";XF;",";YF;")-(";XT;",";YT;"),";1
64825 NSTROK=NSTROK+PRIR
64829 RETURN
64830 REM
64835 GOSUB 20100
64840 PRINT #1,NSTROK;"LINE(";XF;",";YF;")-(";XT;",";YT;"),";1;",B"
64845 NSTROK=NSTROK+PRIR
64849 RETURN
64850 REM
64855 GOSUB 20200
64860 PRINT #1,NSTROK;"LINE(";XF;",";YF;")-(";XT;",";YT;"),";1;",BF"
64865 NSTROK=NSTROK+PRIR
64869 RETURN
64880 REM
64885 GOSUB 20300
64890 PRINT #1,NSTROK;"CIRCLE(";XF;",";YF;"),";R;",";1;",,,";E
64895 NSTROK=NSTROK+PRIR
64899 RETURN
64900 REM
64905 GOSUB 20400
64910 PRINT #1,NSTROK;"PAINT(";XT;",";YT;"),";1;",";1
64915 NSTROK=NSTROK+PRIR
64919 RETURN
65440 FOR I=0 TO 7:WW%(I)=I:NEXT I 
65445 FOR I=8 TO 15:WW%(I)=15:NEXT I:LUT WW%(0):RETURN
65450 WW%(7)=15 :LUT WW%(0):RETURN 
65500 PSET(XT,YT),C0:PSET(XF,YF),C1:RETURN 
65510 BYLSEL=DA:GOSUB 65500:GOSUB 900:GOSUB 950 :RETURN
65525 IFRMU=NETTHENCLOSE
65526 COLOR7,0:CLS:PCLS:GOSUB65440:LOCATE,,1:ONERRORGOTO0:END
0 REM
64835 GOSUB 20100
64840 PRINT #1,NSTROK;"LINE(";XF;",";YF;")-(";XT;",";YT;"),";CVET;",B"
64845 NSTROK=NSTROK