This is non-commercial site, its content is based on Atari 8-bit home computer contents and references.
If you feel your rights are violated by showing/using any part of contents of your product represented on this page,
please contact me immediatelly so I can remove it!
|
-
Entry name:CAD - Jet
-
Category:Graphics
-
Publisher/Developer:ABBUC e.V., Flop 6









Listing 1
1 REM 3-D-GRAPHIK 2 REM WM WONDERMIKE SOFTWARE! 3 REM EXCLUSIVE FOR ATARI BIT BYTER 5 REM PRELOZENO PRO FLOP 7 REM ************************ 8 REM * PRIPRAVA * 9 REM ************************ 10 GRAPHICS 18:SETCOLOR 4,0,6 15 POSITION 3,2:? #6;"c a d j e t" 20 POSITION 4,5:? #6;"" 30 POSITION 3,6:? #6;"_____________" 40 POSITION 1,9:? #6;"" 100 DIM X(80),Y(80),Z(80),U(80),V(80),I(200) 110 DEG:F=1:PERS=1:DARST=1860:ABST=400 120 A=COS(30):B=SIN(30) 130 C=COS(15):D=SIN(15) 140 XB=319:YB=191:XO=159:UO=159:VO=79 197 REM ********************** 198 REM * CTENI DAT * 199 REM ********************** 200 RESTORE 7000:READ N,M 210 RESTORE 6000:REM ZNAKOVE PRIKAZY 220 FOR J=1 TO M 230 READ ZB 240 I(J)=ZB 250 NEXT J:GOTO 260 255 IF TF=0 THEN GOSUB 1945 256 ? "":?:? " ** Zpatky do pocatecniho stavu **" 260 RESTORE 5000:REM rozek 270 FOR I=1 TO N 280 READ X,Y,Z 290 X(I)=X:Y(I)=Y:Z(I)=Z 300 NEXT I 390 GOSUB DARST:REM PERSPEKTIVA 397 REM ********************** 398 REM * MENUE * 399 REM ********************** 400 GOSUB 1945 405 ? "":? "pred prava ad ikmo "; 410 IF DARST=1710 THEN ? ","; 420 IF DARST=1760 THEN ? ","; 430 IF DARST=1810 THEN ? ","; 440 IF DARST=1860 THEN ? ","; 450 IF PERS=1 THEN ? "-zap" 460 IF PERS=0 THEN ? "-vyp" 470 ? " arva zap/vyp erspektiva zap/vyp" 480 ? "-toceni-tazeni-zrcad.-posuv"; 490 GOSUB 600:REM Klavesnice 500 IF R=ASC("V") THEN GOSUB 1700 510 IF R=ASC("Z") THEN GOSUB 1750 520 IF R=ASC("N") THEN GOSUB 1800 530 IF R=ASC("S") THEN GOSUB 1850 540 IF R=ASC("1") THEN GOSUB 1400 550 IF R=ASC("2") THEN GOSUB 1100 555 IF R=ASC("3") THEN GOSUB 1300 560 IF R=ASC("4") THEN GOSUB 900 570 IF R=ASC("B") THEN GOSUB 800 575 IF R=ASC("P") THEN GOSUB 770 580 IF R=ASC("T") THEN GOSUB 1930 585 IF R=125 THEN GOTO 255 590 GOTO 400 597 REM ********************** 598 REM * KLAVESNICE * 599 REM ********************** 600 TRAP 650:POKE 694,0:POKE 702,64 610 POKE 764,255 620 OPEN #1,4,0,"K:":GET #1,R 630 IF PEEK(753)=3 THEN 630 640 TRAP 50000:POKE 764,255 650 CLOSE #1:RETURN 697 REM ********************** 698 REM * TRANSFORMACE * 699 REM ********************** 700 FOR I=1 TO N 710 X=X(I):Y=Y(I):Z=Z(I) 720 X(I)=PX*X+PY*Y+PZ*Z+PT 730 Y(I)=QX*X+QY*Y+QZ*Z+QT 740 Z(I)=RX*X+RY*Y+RZ*Z+RT 750 NEXT I 760 RETURN 764 REM ********************** 765 REM * PERSPEKTIVA ZAP/VYP* 766 REM ********************** 770 IF TF=0 THEN GOSUB 1945 775 ? "":? "**** Prave prepnuto ****" 780 IF PERS=0 THEN PERS=1:GOSUB DARST:RETURN 790 PERS=0:GOSUB DARST:RETURN 794 REM ********************** 795 REM * BARVA ZAP/VYP * 796 REM ********************** 800 IF TF=0 THEN GOSUB 1945 805 ? "":? " **** Prave prepnuto ****" 810 IF F=1 THEN F=2:GOTO 820 815 F=1 820 XB=INT(319/F):UO=INT(XO/F) 825 GOSUB DARST:RETURN 844 REM ********************* 845 REM * NASTAVENI PARAM. * 846 REM ********************* 850 PX=1:PY=0:PZ=0:PT=0 860 QX=0:QY=1:QZ=0:QT=0 870 RX=0:RY=0:RZ=1:RT=0 880 RETURN 897 REM ********************** 898 REM * TRANSLACE * 899 REM ********************** 900 GOSUB 850:IF TF=0 THEN GOSUB 1945 910 ? "":? "Posunuti: (ESC -->Menu)" 920 ?:? " In -,-,-Smer posunuti?"; 930 GOSUB 600 940 IF R=ASC("X") THEN T=1:GOTO 980 950 IF R=ASC("Y") THEN T=2:GOTO 980 960 IF R=ASC("Z") THEN T=3:GOTO 980 965 IF R=27 THEN RETURN 970 ? "";:GOTO 930 980 TRAP 1030 985 ? "":? "Posunuti ve smeru ";CHR$(R); 990 ?:? "Jak daleko ";:INPUT STR 995 IF STR=0 THEN RETURN 1000 TRAP 50000 1010 ? "":?:? " ******* hned to bude ! ******" 1020 ON T GOTO 1050,1060,1070 1030 ? "":GOTO 980 1050 PT=STR:GOTO 1080 1060 QT=STR:GOTO 1080 1070 RT=STR 1080 GOSUB 700:GOSUB DARST:RETURN 1097 REM ********************* 1098 REM * PROTAZENI * 1099 REM ********************* 1100 GOSUB 850:IF TF=0 THEN GOSUB 1945 1105 ? "":? "Protazeni: (ESC -->Menu)":? 1110 ? " Zmena velikosti nebo " 1115 ? " protazeni ve smeru ,- nebo ?"; 1120 GOSUB 600:REM klavesnice 1130 IF R=ASC("G") THEN T=1:GOTO 1175 1140 IF R=ASC("X") THEN T=2:GOTO 1180 1150 IF R=ASC("Y") THEN T=3:GOTO 1180 1155 IF R=ASC("Z") THEN T=4:GOTO 1180 1160 IF R=27 THEN RETURN 1170 ? "";:GOTO 1120 1175 ? "":? "Zvetseni / zmenseni:":?:GOTO 1190 1180 ? "":? "Protazeni ve smeru";CHR$(R);":":? 1190 TRAP 1230:? "V jakem pomeru";:INPUT FAK 1195 IF FAK=1 THEN RETURN 1200 TRAP 50000 1210 ? "":?:? " ********* makam ! ********" 1220 ON T GOTO 1240,1250,1260,1270 1230 ? "":GOTO 1130 1240 PX=FAK:QY=PX:RZ=PX:GOTO 1280 1250 PX=FAK:GOTO 1280 1260 QY=FAK:GOTO 1280 1270 RZ=FAK 1280 GOSUB 700:GOSUB DARST:RETURN 1297 REM ********************* 1298 REM * ZRCADLENI * 1299 REM ********************* 1300 GOSUB 850:IF TF=0 THEN GOSUB 1945 1305 ? "":? "Zrcadleni : (ESC -->Menu":? 1310 ? " redni/zadni eva/prava" 1315 ? " orni/dolni sechny smery"; 1320 GOSUB 600 1330 IF R=ASC("P") THEN PX=-1:GOTO 1390 1340 IF R=ASC("L") THEN QY=-1:GOTO 1390 1350 IF R=ASC("H") THEN RZ=-1:GOTO 1390 1360 IF R=ASC("V") THEN GOTO 1380 1365 IF R=27 THEN RETURN 1370 ? "";:GOTO 1320 1380 PX=-1:QY=-1:RZ=-1 1390 ? "":? "***** Okamzicek, prosim ...! *****" 1395 GOSUB 700:GOSUB DARST:RETURN 1397 REM ********************* 1398 REM * OTACENI * 1399 REM ********************* 1400 GOSUB 850:IF TF=0 THEN GOSUB 1945 1410 ? "":? "Otoceni: (ESC --> Menu)" 1415 ?:? "Ve ktere ose? (,,)"; 1420 GOSUB 600 1430 IF R=ASC("X") THEN T=1:GOTO 1470 1440 IF R=ASC("Y") THEN T=2:GOTO 1470 1450 IF R=ASC("Z") THEN T=3:GOTO 1470 1455 IF R=27 THEN RETURN 1460 ? "";:GOTO 1420 1470 TRAP 1520 1480 ? "":? "Otoceni v ose ";CHR$(R);":" 1490 ?:? "O jaky uhel";:INPUT ALPHA 1495 IF ALPHA=0 THEN RETURN 1500 ? "":? " **** Prosim, poseckejte ****" 1510 ON T GOTO 1530,1550,1570 1520 ? "":GOTO 1470 1530 PX=1:QY=COS(ALPHA):QZ=SIN(ALPHA) 1540 RY=-QZ:RZ=QY:GOTO 1590 1550 QY=1:PX=COS(ALPHA):RX=SIN(ALPHA) 1560 PZ=-RX:RZ=PX:GOTO 1590 1570 RZ=1:PX=COS(ALPHA):PY=SIN(ALPHA) 1580 QX=-PY:QY=PX 1590 TRAP 50000:GOSUB 700:GOSUB DARST:RETURN 1697 REM ********************* 1698 REM * ZEPREDU * 1699 REM ********************* 1700 IF DARST=1710 THEN RETURN 1704 IF TF=0 THEN GOSUB 1945 1705 ? "":? " **** Male strpeni prosim! ****" 1710 P=1 1715 FOR I=1 TO N 1720 IF PERS=1 THEN P=ABST/(ABST-X(I)) 1730 U(I)=UO+P*Y(I)/F:V(I)=VO-P*Z(I) 1740 NEXT I:DARST=1710:GOTO 2000 1747 REM ********************* 1748 REM * Ze strany * 1749 REM ********************* 1750 IF DARST=1760 THEN RETURN 1754 IF TF=0 THEN GOSUB 1945 1755 ? "":? " ****** Provedu ! ******" 1760 P=1 1765 FOR I=1 TO N 1770 IF PERS=1 THEN P=ABST/(ABST-Y(I)) 1780 U(I)=UO-P*X(I)/F:V(I)=VO-P*Z(I) 1790 NEXT I:DARST=1760:GOTO 2000 1797 REM ********************* 1798 REM * Shora * 1799 REM ********************* 1800 IF DARST=1810 THEN RETURN 1804 IF TF=0 THEN GOSUB 1945 1805 ? "":? " **** Okamzik ! ****" 1810 P=1 1815 FOR I=1 TO N 1820 IF PERS=1 THEN P=ABST/(ABST-Z(I)) 1830 U(I)=UO+P*Y(I)/F:V(I)=VO+P*X(I) 1840 NEXT I:DARST=1810:GOTO 2000 1847 REM ********************* 1848 REM * SKLON * 1849 REM ********************* 1850 IF DARST=1860 THEN RETURN 1854 IF TF=0 THEN GOSUB 1945 1855 ? "":? " **** vterinku ...! ****" 1860 P=1 1865 FOR I=1 TO N 1870 IF PERS=1 THEN P=ABST/(ABST-C*(A*X(I)+B*Y(I))-D*Z(I)) 1880 DX=ABST-C*(A*X(I)+B*Y(I))-D*Z(I) 1890 U(I)=UO+P*(A*Y(I)-B*X(I))/F 1900 V(I)=VO-P*(C*Z(I)-D*(A*X(I)+B*Y(I))) 1920 NEXT I:DARST=1860:GOTO 2000 1927 REM ********************* 1928 REM *TEXT.OKENKO ZAP/VYP* 1929 REM ********************* 1930 IF TF=1 THEN TF=0:GR=7*F+49:GOSUB 1950 1940 GOTO 490 1944 REM TEXTOVE OKNO ZAPNUTO 1945 TF=1:GR=7*F+33 1949 REM Obrazovka pripravena 1950 GRAPHICS GR 1960 IF F=1 THEN SETCOLOR 1,0,0:SETCOLOR 2,0,10:SETCOLOR 4,0,6 1970 POKE 752,1:POKE 756,204 1980 RETURN 1997 REM ********************* 1998 REM * KRESLENI * 1999 REM ********************* 2000 GR=7*F+17:GOSUB 1950:COLOR 1 2020 FOR J=1 TO M 2030 I=I(J) 2040 IF I>0 THEN 2050 2042 IF I<0 AND F=2 THEN COLOR -I 2044 FALL=0:NEXT J 2050 IF U(I)<0 OR U(I)>XB OR V(I)<0 OR V(I)>YB THEN FALL=FALL+3 2060 ON FALL GOTO 2100,2200,2300,2400,2500 2069 REM ******* FALL 0 ******* 2070 PLOT U(I),V(I):FALL=1:GOTO 2550 2099 REM ******* FALL 1 ******* 2100 DRAWTO U(I),V(I):GOTO 2550 2199 REM ******* FALL 2 ******* 2200 LI=I(J-1) 2210 UA=U(LI):VA=V(LI):UB=U(I):VB=V(I) 2220 GOSUB 2600 2230 PLOT URA,VRA:DRAWTO UB,VB 2240 FALL=1:GOTO 2550 2299 REM ******* FALL 3 ******* 2300 FALL=2:GOTO 2550 2399 REM ******* FALL 4 ******* 2400 LI=I(J-1) 2410 UA=U(I):VA=V(I):UB=U(LI):VB=V(LI) 2420 GOSUB 2600 2430 DRAWTO URA,VRA 2440 FALL=2:GOTO 2550 2499 REM ******* FALL 5 ******* 2500 LI=I(J-1) 2510 UA=U(LI):VA=V(LI):UB=U(I):VB=V(I) 2520 DURCH=0:GOSUB 2600 2530 IF DURCH=1 THEN PLOT URA,VRA:DRAWTO URB,VRB 2540 FALL=2 2550 NEXT J:RETURN 2596 REM ********************* 2597 REM *VYPOCET KRAJNICH B.* 2598 REM ********************* 2600 IF UA<0 AND UB<0 THEN RETURN 2610 IF UA>XB AND UB>XB THEN RETURN 2620 IF VA<0 AND VB<0 THEN RETURN 2630 IF VA>YB AND VB>YB THEN RETURN 2640 IF ABS(UB-UA)<1 THEN 2800 2645 IF ABS(VB-VA)<1 THEN 2820 2650 K=(VB-VA)/(UB-UA):DE=VB-K*UB 2660 IF DE>=0 AND DE<=YB THEN GOSUB 2840:DURCH=1 2670 V=K*XB+DE 2680 IF V>=0 AND V<=YB THEN GOSUB 2880:DURCH=1 2690 U=-DE/K 2700 IF U>=0 AND U<=XB THEN GOSUB 2920:DURCH=1 2710 U=(YB-DE)/K 2720 IF U>=0 AND U<=XB THEN GOSUB 2960:DURCH=1 2730 RETURN 2800 DURCH=1:URA=UA:URB=UB 2805 IF VA<0 THEN VRA=0:VRB=YB:RETURN 2810 VRA=YB:VRB=0:RETURN 2820 DURCH=1:VRA=VA:VRB=VB 2825 IF UA<0 THEN URA=0:URB=XB:RETURN 2830 URA=XB:URB=0:RETURN 2840 IF UA<0 THEN URA=0:VRA=DE:RETURN 2850 URB=0:VRB=DE:RETURN 2880 IF UA<XB THEN URB=XB:VRB=V:RETURN 2890 URA=XB:VRA=V:RETURN 2920 IF VA<0 THEN URA=U:VRA=0:RETURN 2930 URB=U:VRB=0:RETURN 2960 IF VA<YB THEN URB=U:VRB=YB:RETURN 2970 URA=U:VRA=YB:RETURN 4996 REM ********************* 4997 REM * SOURADNICE * 4998 REM ********************* 4999 REM ROHBAU 5000 DATA -33,-33,0,-48,-6,0 5010 DATA -48,18,0,-96,84,0 5020 DATA -96,102,0,-33,126,0 5030 DATA 0,96,15,0,0,15 5040 DATA -15,20,7.5,-15,-39,7.5 5050 DATA 0,-45,15,-7.5,-12,9 5060 DATA -7.5,-45,9,-15,111,7.5 5070 DATA -27,132,39,-27,108,39 5080 DATA -19.2,78,18,-15,33,7.5 5090 DATA -33,-33,0,-24,-45,0 5100 DATA 0,-156,0,24,-45,0 5110 DATA 33,-33,0,7.5,-45,9 5120 DATA 7.5,-12,9,15,20,7.5 5130 DATA 15,-39,7.5,33,-33,0 5140 DATA 33,126,0,15,111,7.5 5150 DATA 27,132,39,27,108,39 5160 DATA 19.2,78,18,15,33,7.5 5170 DATA 96,102,0,96,84,0 5180 DATA 48,18,0,48,-6,0 5190 DATA 21,-57,1.5,3,-57,12 5200 DATA 3,-114,3.6,-3,-57,12 5210 DATA -21,-57,1.5,-3,-114,3.6 5997 REM ********************* 5998 REM * ZNAKOVE PRIKAZY * 5999 REM ********************* 6000 DATA -2,7,6,29,7,0,29,35,36,37,38,28,29,0,6,5,4,3,2,1,6,-1,7,8,9,10,1,0,8,26,27,28,-3,30,31,32,33,34,30 6002 DATA 0,14,15,16,17,18,14,0,10,13,12,9,0,12,8,0,13,11,8,25,26,-3,11,24,25,-3,27,24,23,22,24,0,13,19,20,13 6003 DATA -2,11,21,22,0,20,21,-3,42,43,44,42,-3,39,40,41,39 6996 REM ********************* 6997 REM * POCET ZNAKOVYCH * 6998 REM * POVELU * 6999 REM ********************* 7000 DATA 61,92
References
Listing downloads
Copyright holder