100 REM *********************** 110 REM **** IQ-ART v 1.2.***** 120 REM *********************** 130 CLEAR 50,10:POKE 23,100 135 MI=HEX(40) 140 POKE MI,205:POKE MI+1,201:POKE MI+2,248:POKE MI+3,121:POKE MI+4,201 150 DIM X(999),Y(999),G(999),H(999):X(1)=1E4 160 GOSUB 10000:GOSUB 11000:PR=0 170 PRINT&1,1" , , , , "; 180 PRINT&2,1" D-snimani N-nahrat data "; 190 PRINT&3,1" v , v "; 200 PRINT&4,1" P-prihrat data U-ulozit data "; 210 IF I$="T" THEN 4000 220 PRINT&6,1" H-pomoc T-tvorba E-konec "; 230 PRINT&27,1" "; 240 PRINT&28,1" Stiskni D,N,T,U,H,P nebo E! "; 245 CALL HEX(F973) 250 I$=INKEY$ 260 IF I$="D" THEN GOSUB 13000:ED=1:GOTO 1000 270 IF I$="P" THEN GOSUB 3000 280 IF I$="N" THEN C=0:GOSUB14000:GOSUB 3000 290 IF I$="U" THEN GOSUB 15000:GOTO 3500 300 IF I$="H" THEN GOTO 21000 310 IF I$="T" THEN 340 320 IF I$="E" THEN CLS:ERASE:END 330 GOTO 250 340 IF C>1 THEN 4000 350 PRINT&27,1" , v v , "; 360 PRINT&28,1"Nemam z ceho tvorit-chybi obr."; 370 WAIT(60):GOTO 230 1000 REM ### DIGITIZER ### 1010 PRINT&1,1" , , , "; 1020 PRINT&2,1"SNIMANI: "; 1030 PRINT&3,1"v , "; 1040 PRINT&4,1"Sipky:pohyb pisatka CR-konec "; 1050 PRINT&5,1"v , , v "; 1060 PRINT&6,1"SikmaC-zaznam,zvedni,vymaz bod"; 1070 PRINT&27,1" "; 1080 PRINT&28,1"BOD X Y PERO "; 1090 M=0:K=1:C=0:ORG 0,0:POKE 389,20 1092 IF X(C)=1E4THEN ED=1 1095 IF USR(MI)=28AND ED=2THEN MOVA ABS(X(C)),ABS(Y(C)):M=0 1100 X=PEEK(366)+256*PEEK(367) 1110 Y=PEEK(368)+256*PEEK(369) 1120 IF USR(MI)=8AND X-K>=0THEN MOVR -K,0:GOTO 1400 1130 IF USR(MI)=25AND Y+K=<2100THEN MOVR 0,K:GOTO 1400 1140 IF USR(MI)=26AND Y-K>=0THEN MOVR 0,-K:GOTO 1400 1150 IF USR(MI)=32AND X+K=<1500THEN MOVR K,0:GOTO 1400 1160 IF USR(MI)=12AND M=0THEN GOSUB 1500 1170 IF USR(MI)=12AND M=1THEN GOSUB 1600 1180 IF USR(MI)=12AND M=2THEN GOSUB 1700 1190 IF USR(MI)=13THEN GOSUB 1800:ON ED GOTO 160,4000 1200 K=1 1210 PRINT&28,11 X; 1220 PRINT&28,18 Y; 1230 PRINT&28,4 C;" ";:PRINT&28,29P$; 1270 GOTO 1092 1400 K=1.5*K:M=0:GOTO 1210 1500 X(C)=X:Y(C)=Y:G(C)=2100-Y:H(C)=X 1510 IF C<999 THEN C=C+1 1520 IF C=1 THEN DRAW G(C-1),H(C-1):DRAW G(C-1),H(C-1),-1:GOTO 1540 1530 DRAW G(C-1),H(C-1),-1 1540 P$="Bn" 1550 CALL HEX(F973) 1560 M=1:WAIT(10) 1570 IF X>1100 THEN GOSUB 12000 1580 RETURN 1600 IF C<2THEN 1620 1610 DRAW G(C-2),H(C-2) 1620 PEN 1:DRAW G(C-1),H(C-1),-1 1630 PEN 2:DRAW G(C-1),H(C-1),-1 1640 X(C-1)=-X:Y(C-1)=-Y 1650 P$="C" 1660 CALL HEX(F973) 1670 M=2:WAIT(10) 1680 RETURN 1700 IFC>1 THEN C=C-1 1710 PEN 1:DRAW G(C-1),H(C-1),-1 1720 PEN 2:DRAW G(C-1),H(C-1),-1 1730 CALL HEX(F973) 1740 M=0:WAIT(10) 1750 RETURN 1800 X(C)=1E4 1810 DRAW 0,0:P$="C":RETURN 2000 REM ## PRIME KRESLENI ## 2010 IF PR=0THEN GOSUB 13000:ORG 0,0:POKE 389,20:PR=1 2020 MOVA ABS(X(0)),ABS(Y(0)) 2030 FOR J=1 TO C-1 2040 IF X(J)<0THEN MOVA ABS(X(J)),ABS(Y(J)) 2050 IF X(J)>=0THEN VECTA X(J),Y(J) 2060 NEXT J:MOVA 0,0 2070 GOTO 4070 3000 REM ## NAHRAVANI DAT ## 3010 PRINT&1,1" , , , "; 3020 PRINT&2,1" Nahravani souboru z disku "; 3030 PRINT&3,1" , , "; 3040 PRINT&4,1" Nazev,delka "; 3050 PRINT&5,1" "; 3060 PRINT&6,1" Data "; 3065 NA$=IX$+".MGF" 3070 OPEN #1,NA$,0 3080 PRINT&4,14IX$:INPUT #1,B 3090 PRINT&4,25B 3095 C=C+B 3100 FOR M=C-BTO C 3110 PRINT&6,13 3120 INPUT #1,X(M):INPUT #1,Y(M) 3125 GOSUB 19000 3130 NEXT M 3140 CLOSE #1 3150 GOTO 170 3500 REM ## ULOZENI DAT ## 3510 PRINT&1,1" "; 3520 PRINT&2,1" "; 3530 PRINT&3,1" v , "; 3540 PRINT&4,1" Ulozeni souboru na disk "; 3550 PRINT&5,1" "; 3560 PRINT&6,1" "; 3565 NA$=IX$+".MGF" 3580 OPEN #1,NA$,1 3590 PRINT #1,C 3600 FOR M=0TO C 3610 PRINT #1,INT(X(M)):PRINT #1,INT(Y(M)) 3620 NEXT M 3630 CLOSE #1 3640 GOTO 170 4000 REM ### TVORBA ### 4010 PRINT&1,1" v v "; 4020 PRINT&2,1" O-korekce U-ukaz M-vymaz "; 4030 PRINT&3,1" v , v v"; 4040 PRINT&4,1" V-zvetsi S-sit C-otoc P-posun"; 4050 PRINT&5,1" v v "; 4060 PRINT&6,1" H-pomoc I-pryc Z-zpet K-maluj"; 4070 PRINT&27,1" v , , "; 4080 PRINT&28,1" Co chces provest s obrazkem? "; 4090 CALL HEX(F973) 4100 I$=INKEY$ 4110 IF I$="O" THEN GOSUB 13000:ED=2:GOSUB 4800:GOTO 1030 4120 IF I$="K" THEN GOTO 2000 4130 IF I$="U" THEN GOSUB 4700 4140 IF I$="Z" THEN 160 4150 IF I$="M" THEN ERASE 4160 IF I$="P" THEN CALL HEX(F973):GOTO 5000 4170 IF I$="V" THEN CALL HEX(F973):GOTO 6000 4180 IF I$="C" THEN CALL HEX(F973):GOTO 7000 4190 IF I$="I" THEN GOSUB 12000 4200 IF I$="S" THEN GOSUB 12500 4210 IF I$="H" THEN ERASE:GOSUB 22000 4220 GOTO 4100 4600 DRAW XI,YR:DRAW XA,YR,-1 4610 DRAW XR,YI:DRAW XR,YA,-1 4620 RETURN 4700 FOR M=0TO C-1 4710 GOSUB 19020 4720 NEXT M 4730 RETURN 4800 PRINT&1,1" v, "; 4810 PRINT&2,1"KOREKCE: IC-dalsi bod "; 4820 RETURN 5000 REM ### POSUN ### 5010 GOSUB 11500:GOSUB 16000:XQ=XR:YQ=YR 5020 PRINT&27,1" v , "; 5030 PRINT&28,1"Posun obrazek(CEBD,n,,CR-konec)! "; 5040 CALL HEX(F973) 5050 GOSUB 4600:U=USR(32700) 5060 IF U=8AND XI-1.2*LX>=1THEN LX=LX*1.2+1:ZN=-1:GOTO 5120 5070 IF U=20AND XA+1.2*LX<=2099THEN LX=LX*1.2+1:ZN=1:GOTO 5120 5080 IF U=26AND YI-1.2*LY>=1THEN LY=LY*1.2+1:ZN=-1:GOTO 5120 5090 IF U=25AND YA+1.2*LY<=1499THEN LY=LY*1.2+1:ZN=1:GOTO 5120 5100 IF U=13THEN GOSUB 11500:GOSUB 17000:GOSUB 19500:GOTO 4070 5110 LX=0:LY=0 5120 PEN 1:GOSUB 4600:PEN 2 5130 GOSUB 17500 5140 GOTO 5050 6000 REM ### ZVETSENI ### 6010 GOSUB 11500:GOSUB 16000:NX=1:NY=1 6020 PRINT&27,1" v v v "; 6030 PRINT&28,1"Zvetsi/zmensi(CEBD,CR-konec)! "; 6040 CALL HEX(F973) 6050 GOSUB 4600:U=USR(32700) 6060 IF U=8THEN MX=.9:GOTO 6120 6070 IF U=20AND XR+(XA-XR)*1.1<2100AND XR-(XR-XI)*1.1>0THEN MX=1.1:GOTO 6120 6080 IF U=26THEN MY=.9:GOTO 6120 6090 IF U=25AND YR+(YA-YR)*1.1<1500AND YR-(YR-YI)*1.1>0THEN MY=1.1:GOTO 6120 6100 IF U=13THEN GOSUB 11500:GOSUB 18000:GOSUB 19500:GOTO 4070 6110 MX=1:MY=1 6120 PEN 1:GOSUB 4600:PEN 2 6130 NX=NX*MX:NY=NY*MY 6140 XA=XR+MX*(XA-XR):YA=YR+MY*(YA-YR) 6150 XI=XR+MX*(XI-XR):YI=YR+MY*(YI-YR) 6160 GOTO 6050 7000 REM ### OTOCENI ### 7010 GOSUB 11500:GOSUB 16000 7020 PRINT&27,1" v , "; 7030 PRINT&28,1"Otoc-sikmaC,zrcadloCD,CR-konec"; 7040 CALL HEX(F973) 7050 GOSUB 4700:U=USR(32700) 7060 IF U=20THEN PEN 1:GOSUB 4700:PEN 2:GOSUB 18500 7070 IF U=25THEN PEN 1:GOSUB 4700:PEN 2:GOSUB 18600 7080 IF U=12THEN PEN 1:GOSUB 4700:PEN 2:GOSUB 18700 7090 IF U=13THEN GOSUB 11500:GOSUB 19500:GOTO 4070 7100 GOTO 7050 10000 REM ###### RAMECEK ##### 10010 CLS:ERASE 10020 PRINT CHR$(15);"PQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ"; 10025 PRINT CHR$(15);"QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ_"; 10030 FOR I=1 TO 6 10040 PRINT CHR$(15);"TMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM"; 10045 PRINT CHR$(15);"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMT"; 10050 NEXT I 10060 PRINT CHR$(15);"SQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ"; 10065 PRINT CHR$(15);"QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQN"; 10070 FOR I=1 TO 18 10080 PRINT CHR$(15);"TMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM"; 10085 PRINT CHR$(15);"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMT"; 10090 NEXT I 10100 PRINT CHR$(15);"SQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ"; 10105 PRINT CHR$(15);"QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQN"; 10110 FOR I=1 TO 2 10120 PRINT CHR$(15);"TMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM"; 10125 PRINT CHR$(15);"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMT"; 10130 NEXT I 10140 PRINT CHR$(15);"KQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ"; 10145 PRINT CHR$(15);"QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQJ"; 10150 PRINT&1,1 CHR$(14) 10160 RETURN 11000 REM ##### GRAF.IN. ##### 11010 ERASE 0 11020 LIMIT 14,507,44,252 11030 SCALE 0,2100,0,1500 11040 PEN 2:RETURN 11500 REM ## PRODLEVA ## 11510 PRINT&27,1" , , "; 11520 PRINT&28,1" Prosim o chvilku strpeni! "; 11530 RETURN 12000 REM ###### MAZANI ##### 12010 FOR I=1 TO 7 12020 PRINT&I,0 CHR$(15);"TMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM"; 12025 PRINT CHR$(15);"MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMT"; 12030 NEXT I 12040 PRINT&1,1 CHR$(14) 12050 RETURN 12500 REM ### SIT ### 12510 FOR I=200TO 2000STEP 200 12520 DRAW I,0:DRAW I,1500,-1 12530 NEXT I 12540 FOR J=200TO 1400STEP 200 12550 DRAW 0,J:DRAW 2100,J,-1 12560 NEXT J 12570 RETURN 13000 REM ## CEKANI-MINIGRAF ## 13010 PRINT&27,1" v v ,v "; 13020 PRINT&28,1" Priprav zapisovac,zmackni Z! "; 13030 I$=INKEY$ 13040 IF I$<>"Z" THEN 13030 13050 RETURN 14000 REM #### DIR #### 14010 PRINT&1,1" , , , "; 14020 PRINT&2,1" Zadava se nazev souboru "; 14030 PRINT&3,1" o v , "; 14040 PRINT&4,1"(max.8 znaku ukoncenych CR "; 14050 PRINT&5,1" "; 14060 PRINT&6,1" bez koncovky MGF). " 14062 PRINT&8,0 14065 DIR "????????.MGF" 14070 PRINT&28,1" "; 14080 PRINT&27,1" , "; 14090 PRINT&28,1"Zadej nazev";:CALLHEX(F973) 14100 PX=12:PY=28:GOSUB 20000 14110 CALLHEX(F973):GOSUB10000:RETURN 15000 REM ### JMENO ### 15010 PRINT&1,1" , , , "; 15020 PRINT&2,1" Zadava se nazev souboru "; 15030 PRINT&3,1" o v , "; 15040 PRINT&4,1"(max.8 znaku ukoncenych CR). "; 15050 PRINT&5,1" "; 15060 PRINT&6,1" " 15070 PRINT&28,1" "; 15080 PRINT&27,1" , "; 15090 PRINT&28,1"Zadej nazev";:CALLHEX(F973) 15100 PX=12:PY=28:GOSUB 20000 15110 CALLHEX(F973):RETURN 16000 REM ### MIN/MAX ### 16010 XA=G(0):XI=G(0):YA=H(0):YI=H(0) 16020 FOR I=0TO C-1 16030 IF G(I)>XATHEN XA=G(I) 16040 IF H(I)>YATHEN YA=H(I) 16050 IF G(I)2100THEN RETURN 18720 IF YR+(XI-XR)<0OR YR+(XA-XR)>1500THEN RETURN 18730 FOR I=0TO C-1 18740 U=YR+(G(I)-XR) 18750 G(I)=XR+(H(I)-YR) 18760 H(I)=U 18770 NEXT I 18780 XI=XR+(YI-YR):XA=XR+(YA-YR) 18790 YI=YR+(XI-XR):YA=YR+(XA-XR) 18800 RETURN 19000 REM #### KRESLENI #### 19010 G(M)=2100-ABS(Y(M)):H(M)=ABS(X(M)) 19020 IFM=0OR X(M)<0THEN DRAW G(M),H(M):RETURN 19030 IF X(M)=1E4THEN RETURN 19040 DRAW G(M),H(M),-1:RETURN 19500 REM #### PREVOD #### 19510 FOR M=0 TO C-1 19520 IF X(M)>=0 THEN X(M)=H(M) 19530 IF Y(M)>=0 THEN Y(M)=2100-G(M) 19540 IF X(M)<0 THEN X(M)=-H(M) 19550 IF Y(M)<0 THEN Y(M)=-(2100-G(M)) 19560 NEXT M 19570 RETURN 20000 REM #### BEZP.INPUT #### 20020 PRINT&PY,PX 20030 INPUT IX$ 20070 RETURN 21000 REM ### HELP 1 #### 21010 PRINT&8,1 " , , "; 21020 PRINT&9,1 " Chcete-li zavest 'obrazek' "; 21030 PRINT&10,1 " v , , "; 21040 PRINT&11,1 "do pameti,musite je nasnimat "; 21050 PRINT&12,1 " v , "; 21060 PRINT&13,1 "z predlohy-,nebo nahrat-"; 21070 PRINT&14,1 " v , v "; 21080 PRINT&15,1 "resp.prihrat do pameti.Po pro-"; 21090 PRINT&16,1 " , , v , "; 21100 PRINT&17,1 "vedeni danych zmen-,obrazek"; 21110 PRINT&18,1 " v, , "; 21120 PRINT&19,1 "ulozime na mgf pomoci . "; 21130 PRINT&20,1 " v , , "; 21140 PRINT&21,1 "Pri a

,z mgf musi znit "; 21150 PRINT&22,1 " , , v "; 21160 PRINT&23,1 "pilotni ton asi 10s. Max.pocet"; 21170 PRINT&24,1 " o , v, v "; 21180 PRINT&25,1 "bodu obrazku je mensi nez 1000"; 21190 PRINT&27,1 " , "; 21200 PRINT&28,1 " Stiskni klavesu H! "; 21210 I$=INKEY$ 21220 IF I$<>"H"THEN 21210 21230 GOSUB 23000:GOTO 230 22000 REM ### HELP 2 #### 22010 PRINT&8,1 " v "; 22020 PRINT&9,1 " Po volbe

, a nik-"; 22030 PRINT&10,1 " v v v "; 22040 PRINT&11,1 "dy nemackat sipky bezprostred-"; 22050 PRINT&12,1 " v v , "; 22060 PRINT&13,1 "ne po sobe. Volba kresli "; 22070 PRINT&14,1 " , "; 22080 PRINT&15,1 "na obrazovku, na papir,bez "; 22090 PRINT&16,1 " , v "; 22100 PRINT&17,1 "vymeny listu.,, up- "; 22110 PRINT&18,1 " , , "; 22120 PRINT&19,1 "ravuju obrazovku, da zakl. "; 22130 PRINT&20,1 " , v , , , "; 22140 PRINT&21,1 "vyber. je jako snimanani, "; 22150 PRINT&22,1 " , , v, "; 22160 PRINT&23,1 "navic po IC se objevi dalsi "; 22170 PRINT&24,1 " , "; 22180 PRINT&25,1 "bod obr.,ktery pak korigujem. "; 22190 PRINT&27,1 " , "; 22200 PRINT&28,1 " Stiskni klavesu H! "; 22210 I$=INKEY$ 22220 IF I$<>"H"THEN 22210 22230 GOSUB 23000:GOSUB 11000:GOTO 4070 23000 REM ### SEL.MAZANI ### 23010 FOR I=8TO 25 23020 PRINT&I,1 " "; 23030 NEXT I 23040 RETURN