Sharp PC1360 |
Dokumentation ansehen
Programmspeicher-Image laden
| 10 | "C" CLS :CLEAR :DEGREE :POKE 64288,0:CLOSE :WAIT 0:F3=1 |
| 20 | PRINT "Computer Aided Design":PRINT "mit SHARP PC-1360":PRINT "und SHARP CE-140P" |
| 30 | WAIT :PRINT "Copyright by M.Janssen":WAIT 0:CLS |
| 40 | DIM T$(0)*80 |
| 50 | INPUT "Bild speichern ? <N/J> ";M$:IF M$="J" LET F1=1 |
| 60 | CLS :IF F1 GOSUB 4880 |
| 70 | IF F1 OPEN "X:"+N$+".CAD" FOR OUTPUT AS #2 |
| 80 | IF F1 PRINT "Speicherung:":PRINT "1 = automatisch":F9=1:PRINT "0 = einzelne Abfrage":INPUT F9 |
| 90 | CLS :WAIT :PRINT "CE-140P o.k. ? <ENTER>":WAIT 0:CLS |
| 100 | LPRINT CHR$ 27+"@":LF 1 |
| 110 | INPUT "Bildtitel: ";T$(0) |
| 120 | POKE 12348,16 |
| 130 | CLS :IF LEN T$(0)>38 GOTO 110 |
| 140 | IF T$(0)<>"" LPRINT " ";T$(0) |
| 150 | S=1:PRINT "Eingabemasstab:":PRINT "1mm = Einheit(en)":CURSOR 6,1:INPUT S |
| 155 | CLS :IF S<=0 OR S>5 BEEP 2:GOTO 150 |
| 160 | S=5/S |
| 170 | PRINT "Bildgroesse:":PRINT "Breite (X): Einh.":PRINT "Laenge (Y): Einh." |
| 180 | U=450:V=300 |
| 190 | CURSOR 12,1:INPUT U:U=U*S |
| 200 | CURSOR 12,2:INPUT V:V=V*S |
| 210 | CLS :IF U>450 OR V>999 BEEP 2:GOTO 170 |
| 220 | GRAPH :GLCURSOR (12,-V):SORGN |
| 230 | IF F1 PRINT #2,U,V |
| 240 | "H" CLS :WAIT 0:PRINT "Ihre Auswahl ?":PRINT "(H = Hilfe) |
| 250 | M=ASC INKEY$ :IF M=0 GOTO 250 |
| 260 | IF F3 BEEP 1,8,200 |
| 270 | CLS :IF M<65 BEEP 2:GOTO 240 |
| 280 | ON M-64 GOSUB 340 ,350 ,370 ,390 ,700 ,1120 ,1150 ,1470 ,1660 ,1680 ,1730 ,1800 ,1840 |
| 290 | ON M-77 GOSUB 1980 ,2030 ,2240 ,2590 ,2490 ,2560 ,2260 ,2630 ,3360 ,3560 ,3770 |
| 300 | ON M-88 GOSUB 240 ,240 |
| 310 | IF F1 AND F7 AND F9 GOSUB 4900 :GOTO 240 |
| 320 | IF F1 AND F7 GOSUB 5200 |
| 330 | GOTO 240 |
| 340 | PRINT "Bild zeigen":F7=0:GLCURSOR (X,-200):RETURN |
| 350 | F7=0:IF F3 PAUSE "Beeper aus":F3=0:RETURN |
| 360 | BEEP 1,8,200:PAUSE "Beeper ein":F3=1:RETURN |
| 370 | F7=0:IF F8 PAUSE "Eingabe mit Tastatur":F8=0:RETURN |
| 380 | IF F8=0 PAUSE "Eingabe mit Cursortasten":F8=1:RETURN |
| 390 | PRINT "Bild von Diskette":GOSUB 4880 |
| 400 | OPEN "X:"+N$+".CAD" FOR INPUT AS #3:INPUT #3,XD,YD |
| 410 | P=C1:Q=C2:C1=0:C2=0 |
| 420 | F0=0:PRINT "0 = Originalfarben":PRINT "1 = einfarbig":INPUT F0 |
| 430 | CLS :IF F0 GOSUB 1120 |
| 440 | C7=1:INPUT "Vergroesserung: ";C7 |
| 450 | GOSUB 4420 :XR=XA:YR=YA |
| 460 | XT=XD*C7+XR:YT=YD*C7+YR |
| 470 | GOSUB 4600 |
| 480 | IF F7=0 OR EOF (3) CLOSE #3:M=68:C1=P:C2=Q:X=XR/S:Y=YR/S:CLEAR XR,YR,F7,F4:RETURN |
| 490 | INPUT #3,M |
| 500 | ON M-68 GOSUB 560 ,570 ,10 ,10 ,590 ,600 ,610 ,620 ,560 ,10 ,560 ,10 ,10 ,10 ,650 ,630 |
| 510 | ON M-84 GOSUB 560 ,660 ,680 ,670 ,10 ,10 |
| 520 | IF F0=0 LET C1=C0 |
| 530 | IF F1 AND F9 GOSUB 4900 :GOTO 480 |
| 540 | IF F1 GOSUB 5200 |
| 550 | GOTO 480 |
| 560 | INPUT #3,XM,YM,R,A,B,E,T,F6,C0:GOSUB 5140 :GOSUB 3860 :RETURN |
| 570 | INPUT #3,C0:IF F0RETURN |
| 580 | C1=C0:GOSUB 3870 :RETURN |
| 590 | INPUT #3,C2:RETURN |
| 600 | INPUT #3,X1,Y1,X2,Y2,C0,C2:GOSUB 5180 :GOSUB 3880 :RETURN |
| 610 | INPUT #3,X1,Y1,X2,Y2,X3,Y3,X4,Y4,C0,C2:GOSUB 5160 :GOSUB 3890 :RETURN |
| 620 | INPUT #3,X1,Y1,X2,Y2,C0,C2:GOSUB 5180 :GOSUB 3900 :RETURN |
| 630 | INPUT #3,X1,Y1,C0,C4,C5,C6,T$(0):GOSUB 5190 :C5=C5*C7:C6=C6*C7:IF C5<1LET C5=1 |
| 640 | GOSUB 3910 :RETURN |
| 650 | INPUT #3,C3,C0:GOSUB 3930 :RETURN |
| 660 | INPUT #3,XM,YM,G,H,Z,C0,C2:GOSUB 5150 :G=G*C7:H=H*C7:GOSUB 3940 :F7=1:RETURN |
| 670 | INPUT #3,X1,Y1,X2,Y2,T,K,C0,C2:GOSUB 5180 :T=T*C7:GOSUB 4020 :F7=1:RETURN |
| 680 | ERASE C:DIM C(1,40):INPUT #3,I,C(*),C0,C2:FOR J=1 TO I |
| 690 | LLINE (C(0,J-1)*C7+XR,C(1,J-1)*C7+YR)-(C(0,J)*C7+XR,C(1,J)*C7+YR),C2,C1:NEXT J:RETURN |
| 700 | A=0:B=360:F6=0 |
| 710 | W=1:PRINT "Ellipse:","1 = M,a,b":PRINT "","2 = M,P1,P2":PRINT "","3 = F1,F2,Px |
| 720 | PRINT "","4 = S1,S2 ":CURSOR 0,3:INPUT W |
| 730 | CLS :IF W<>INT W OR W<1 OR W>4 BEEP 2:GOTO 710 |
| 740 | ON W GOSUB 810 ,950 ,860 ,1070 |
| 750 | XT=XM+G:YT=YM:GOSUB 4600 :IF F7=0 RETURN |
| 760 | XT=XM-G:GOSUB 4600 :IF F7=0 RETURN |
| 770 | XT=XM:YT=YM+H:GOSUB 4600 :IF F7=0 RETURN |
| 780 | YT=YM-H:GOSUB 4600 :IF F7=0 RETURN |
| 790 | T=1:E=H/G:R=G:GOSUB 3860 :X=XM/S:Y=YM/S |
| 800 | RETURN |
| 810 | GOSUB 4340 |
| 820 | PRINT "X-Abschnitt:":INPUT "a = ";G |
| 830 | PRINT "Y-Abschnitt:":INPUT "b = ";H |
| 840 | IF G<=0 OR H<=0 BEEP 2:CLS :GOTO 820 |
| 850 | G=G*S:H=H*S:RETURN |
| 860 | PRINT "Brennpunkte:":GOSUB 4110 :GOSUB 4180 |
| 870 | PRINT "Punkt der Ellipsenlinie:":GOSUB 4260 |
| 880 | XM=(X1+X2)/2:YM=(Y1+Y2)/2 |
| 890 | IF Y1=Y2 GOTO 920 |
| 900 | IF X1=X2 GOSUB 920 :P=G:G=H:H=P:RETURN |
| 910 | BEEP 2:PAUSE "Achsensymmetrie!":CLS :GOTO 860 |
| 920 | G=(SQR((X3-X1)^2+(Y3-Y1)^2)+SQR((X3-X2)^2+(Y3-Y2)^2))/2 |
| 930 | H=SQR(G^2-(X1-XM)^2-(Y1-YM)^2) |
| 940 | RETURN |
| 950 | GOSUB 4340 |
| 960 | PRINT "Punkte der Ellipsenlinie":GOSUB 4110 :GOSUB 4180 |
| 970 | IF ABS (Y2-YM)=ABS (Y1-YM) OR ABS (X2-XM)=ABS (X1-XM) BEEP 2:GOTO 960 |
| 980 | IF Y2=Y1 GOTO 1030 |
| 990 | G=SQR(((X1-XM)^2*(Y2-YM)^2-(X2-XM)^2*(Y1-YM)^2)/((Y2-YM)^2-(Y1-YM)^2)) |
| 1000 | IF Y1=YM LET H=ABS (G*(Y2-YM))/SQR(G^2-(X2-XM)^2):RETURN |
| 1010 | H=ABS (G*(Y1-YM))/SQR(G^2-(X1-XM)^2) |
| 1020 | RETURN |
| 1030 | H=SQR(((X2-XM)^2*(Y1-YM)^2-(X1-XM)^2*(Y2-YM)^2)/((X2-XM)^2-(X1-XM)^2)) |
| 1040 | IF X1=XM LET G=ABS (H*(X2-XM))/SQR(H^2-(Y2-YM)^2):RETURN |
| 1050 | G=ABS (H*(X1-XM))/SQR(H^2-(Y1-YM)^2) |
| 1060 | RETURN |
| 1070 | PRINT "oberer/unterer Scheitel:":GOSUB 4110 :PRINT "linker/rechter Scheitel:":GOSUB 4180 |
| 1080 | IF Y1=Y2 OR X1=X2 CLS :BEEP 2:GOTO 1070 |
| 1090 | XM=X1:YM=Y2 |
| 1100 | G=ABS (X2-XM):H=ABS (Y1-YM) |
| 1110 | RETURN |
| 1120 | F7=1:PRINT "0=Schwarz","4=Gruen":PRINT "1=Lila","5=Blau":PRINT "2=Rot","6=Gelb" |
| 1130 | PRINT "3=Rosa","7=ohne":CURSOR 22,3:INPUT C1 |
| 1140 | GOSUB 3870 :CLS :RETURN |
| 1150 | F7=0:CLS :PRINT "Zeichen-","R (ahmen)":PRINT "hilfen :","G (itter)":PRINT "","S (kala)" |
| 1160 | W$="R":INPUT W$ |
| 1170 | CLS :IF W$="R" LLINE (U,V)-(0,0),C2,C1,B:POKE &FB20,0:RETURN |
| 1180 | IF W$="G" GOSUB 1210 :RETURN |
| 1190 | IF W$="S" GOSUB 1340 :RETURN |
| 1200 | BEEP 2:GOTO 1150 |
| 1210 | F2=0:PRINT "Unterteilung: Einh.":CURSOR 14,0:G=U/5/S:INPUT G |
| 1220 | G=G*S:IF G<5 OR G>U/2 OR G>V/2 BEEP 2:CLS :GOTO 1210 |
| 1230 | FOR I=G TO U-1 STEP G |
| 1240 | IF F2=0 LLINE (I,0)-(I,V),C2,C1 |
| 1250 | IF F2 LLINE (I,V)-(I,0),C2,C1 |
| 1260 | F2=NOT F2+2 |
| 1270 | NEXT I |
| 1280 | FOR I=G TO V-1 STEP G |
| 1290 | IF F2=0 LLINE (U,I)-(0,I),C2,C1 |
| 1300 | IF F2 LLINE (0,I)-(U,I),C2,C1 |
| 1310 | F2=NOT F2+2 |
| 1320 | NEXT I |
| 1330 | RETURN |
| 1340 | K=0:PRINT "Unterteilung:":PRINT "Striche: alle Einh." |
| 1350 | PRINT "Zahlen : alle Striche":CURSOR 14,1:G=50/S:INPUT G |
| 1360 | H=2:CURSOR 14,2:INPUT H |
| 1370 | G=G*S |
| 1380 | IF G<5 OR H=0 OR G>U BEEP 2:CLS :GOTO 1340 |
| 1390 | FOR I=0 TO U-G STEP G |
| 1400 | LLINE (I,-20-10*(K/H=INT (K/H)))-(I,-15)-(I+G,-15),0,C1 |
| 1410 | K=K+1:NEXT I |
| 1420 | LLINE (K*G,-20-10*(K/H=INT (K/H)))-(K*G,-15)-(U,-15),0,C1 |
| 1430 | FOR I=0 TO K STEP H |
| 1440 | Z$=STR$ (I*G/S):GLCURSOR (I*G-LEN Z$*6+2,-50):LPRINT "P";Z$ |
| 1450 | NEXT I |
| 1460 | RETURN |
| 1470 | I=1:F7=0:GOSUB 1540 |
| 1480 | W=ASC INKEY$ :IF W=0 GOTO 1480 |
| 1490 | IF W=13 RETURN |
| 1500 | IF W=4 LET I=I-1:IF I=0LET I=1:GOTO 1480 |
| 1510 | IF W=5 LET I=I+1:IF I=7LET I=6:GOTO 1480 |
| 1520 | CLS :ON I GOSUB 1540 ,1560 ,1580 ,1600 ,1620 ,1640 |
| 1530 | GOTO 1480 |
| 1540 | PRINT "A = Bild zeigen":PRINT "B = Beeper an/aus":PRINT "C = Cursor manuell" |
| 1550 | PRINT "D = Bild von Diskette":RETURN |
| 1560 | PRINT "E = Ellipse (achsensym.)":PRINT "F = Farbe aendern" |
| 1570 | PRINT "G = Gitter/Skala/Rahmen":PRINT "H = Hilfe":RETURN |
| 1580 | PRINT "I = Liniencode aendern":PRINT "J = Gerade" |
| 1590 | PRINT "K = Parallelogramm":PRINT "L = Rechteck":RETURN |
| 1600 | PRINT "M = Polygon":PRINT "N = Ende" |
| 1610 | PRINT "O = Kreis":PRINT "P = Polare Eingabe":RETURN |
| 1620 | PRINT "Q = Speicherverfahren":PRINT "R = Relative Eingabe":PRINT "S = Schraffur" |
| 1630 | PRINT "T = Text":RETURN |
| 1640 | PRINT "U = Bogen,Sektor":PRINT "V = Ellipse (beliebig)" |
| 1650 | PRINT "W = Zeichnen mit Cursor":PRINT "X = Bruchlinie":RETURN |
| 1660 | F7=1:INPUT "Liniencode (0-15): ";C2 |
| 1670 | RETURN |
| 1680 | PRINT "Gerade zeichnen:":PRINT "von "; |
| 1690 | GOSUB 4110 :PRINT "nach "; |
| 1700 | GOSUB 4180 |
| 1710 | GOSUB 3880 :X=X2/S:Y=Y2/S |
| 1720 | F7=1:RETURN |
| 1730 | PRINT "Parallelogramm:" |
| 1740 | PRINT "Diagonale 1 :":GOSUB 4110 :GOSUB 4180 |
| 1750 | PRINT "Diagonale 2 :":GOSUB 4260 |
| 1760 | IF (Y3-Y1)*(X2-X1)=(Y2-Y1)*(X3-X1) LET M=74:GOSUB 5040 :GOSUB 3880 :RETURN |
| 1770 | X4=X1+X2-X3:Y4=Y1+Y2-Y3 |
| 1780 | XT=X4:YT=Y4:GOSUB 4600 :IF F7=0 RETURN |
| 1790 | GOSUB 3890 :X=X4/S:Y=Y4/S:RETURN |
| 1800 | PRINT "Rechteck","Diagonale: " |
| 1810 | GOSUB 4110 :GOSUB 4180 |
| 1820 | X=X2/S:Y=Y2/S:GOSUB 3900 |
| 1830 | RETURN |
| 1840 | W=1:PRINT "Polygon:","1 = M,n,r,<a":PRINT "","2 = M,n,Peck":CURSOR 0,3:INPUT W |
| 1850 | CLS :IF W<>INT W OR W<=0 OR W>2 BEEP 2:GOTO 1840 |
| 1860 | W=W-1:GOSUB 1880 |
| 1870 | E=1:B=A+360:T=360/N:GOTO 2080 |
| 1880 | N=6:GOSUB 4340 :INPUT "Anzahl Ecken: ";N |
| 1890 | CLS :IF N<2 BEEP 2:GOTO 1880 |
| 1900 | IF W GOTO 1960 |
| 1910 | INPUT "Radius: r = ";R |
| 1920 | R=R*S:A=0 |
| 1930 | INPUT "Anfangswinkel: ";A |
| 1940 | CLS :IF ABS A>360 BEEP 2:GOTO 1930 |
| 1950 | RETURN |
| 1960 | CLS :PRINT "Eckpunkt:":GOSUB 4110 :XA=X1:YA=Y1:GOSUB 4480 |
| 1970 | GOSUB 4410 :RETURN |
| 1980 | GOSUB 340 :W$="N":PRINT "Zeichnung o.k.? <N/J>" |
| 1990 | INPUT W$:IF W$<>"J"RETURN |
| 2000 | IF W$<>"J" RETURN |
| 2010 | CLOSE :GLCURSOR (0,-200):LPRINT CHR$ 27+"@":CLS :PAUSE "Programmende":CLS |
| 2020 | END |
| 2030 | F6=0:A=-90:B=270:E=1:T=1:W=1:PRINT "Kreis:","1 = M,r" |
| 2040 | PRINT "","2 = M,P1":PRINT "","3 = P1,P2,P3":CURSOR 0,3:INPUT W |
| 2050 | IF W<>INT W OR W<1 OR W>3 BEEP 2:CLS :GOTO 2030 |
| 2060 | CLS :ON W GOSUB 2140 ,2180 ,2210 |
| 2070 | IF W=3 AND O=0 RETURN |
| 2080 | XT=XM-R:YT=YM:GOSUB 4600 :IF F7=0 RETURN |
| 2090 | XT=XM+R:GOSUB 4600 :IF F7=0 RETURN |
| 2100 | XT=XM:YT=YM+R:GOSUB 4600 :IF F7=0 RETURN |
| 2110 | YT=YM-R:GOSUB 4600 :IF F7=0 RETURN |
| 2120 | GOSUB 3860 :X=XM/S:Y=YM/S |
| 2130 | RETURN |
| 2140 | GOSUB 4340 |
| 2150 | INPUT "r = ";R |
| 2160 | CLS :IF R=0 OR R>U/2 OR R>V/2 BEEP 2:GOTO 2150 |
| 2170 | R=R*S:RETURN |
| 2180 | GOSUB 4340 :PRINT "Punkt der Kreislinie:":GOSUB 4110 |
| 2190 | GOSUB 4410 |
| 2200 | RETURN |
| 2210 | PRINT "Punkte der Kreislinie:":GOSUB 4110 :GOSUB 4180 :GOSUB 4260 |
| 2220 | GOSUB 4800 |
| 2230 | RETURN |
| 2240 | PRINT "Koordinateneingabe":IF F5=0 PAUSE "polar":F5=1:RETURN |
| 2250 | IF F5 PAUSE "rechtwinklig":F5=0:RETURN |
| 2260 | PRINT "Texteingabe:":GOSUB 4420 :X1=XA:Y1=YA |
| 2270 | C4=0:PRINT "0 = Richtung >":PRINT "1 = Richtung v":PRINT "2 = Richtung < |
| 2280 | INPUT "3 = Richtung ^";C4 |
| 2290 | CLS :IF C4<0 OR C4>3 BEEP 2:GOTO 2270 |
| 2300 | C5=1:INPUT "Groessenfaktor: ";C5 |
| 2310 | CLS :C5=C5*2:IF C5<>INT C5 OR C5>63 OR C5<=0 BEEP 2:GOTO 2300 |
| 2320 | PRINT "Zeichenabstand:" |
| 2330 | W=0:PRINT "0 = Eing. in mm":PRINT "1 = Eing. als Faktor":INPUT W |
| 2340 | CLS :IF W GOTO 2370 |
| 2350 | C6=C5*6/S:PRINT " mm":CURSOR 0,0:INPUT C6 |
| 2360 | C6=C6*S:GOTO 2390 |
| 2370 | C6=1:PRINT " * Normalabstand":CURSOR 0,0:INPUT C6 |
| 2380 | C6=C5*6*C6 |
| 2390 | IF C6<=0 OR C6>999 BEEP 2:CLS :GOTO 2320 |
| 2400 | CLS :PRINT "Text (max. 80 Zeichen):":INPUT T$(0) |
| 2410 | J=LEN T$(0):POKE 12348,16 |
| 2420 | ON C4+1 GOSUB 2450 ,2460 ,2470 ,2480 |
| 2430 | IF F7=0 RETURN |
| 2440 | GOSUB 3910 :RETURN |
| 2450 | XT=XA+J*C6:YT=YA+C5*6:X=XT/S:Y=YA/S:GOSUB 4600 :RETURN |
| 2460 | YT=YA-J*C6:XT=XA+C5*6:X=XA/S:Y=YT/S:GOSUB 4600 :RETURN |
| 2470 | XT=XA-J*C6:YT=YA-C5*6:X=XT/S:Y=YA/S:GOSUB 4600 :RETURN |
| 2480 | YT=YA+J*C6:XT=XA-C5*6:X=XA/S:Y=YT/S:GOSUB 4600 :RETURN |
| 2490 | PRINT "Relative Koord.eing.:":IF F4 PAUSE "abgeschaltet":XR=0:YR=0:F4=0:RETURN |
| 2500 | XR=X:YR=Y:PRINT "Bezugspunkt:":IF F5 GOSUB 4620 :XR=XP:YR=YP:GOTO 2530 |
| 2510 | IF F8 GOSUB 4650 :XR=XC:YR=YC:GOTO 2540 |
| 2520 | INPUT "Xo = ";XR,"Yo = ";YR |
| 2530 | XR=XR*S:YR=YR*S |
| 2540 | F7=0:F4=1:X=XR/S:Y=YR/S |
| 2550 | RETURN |
| 2560 | PRINT "Schraffur fuer Rechteck und Kreis(-sektor)":C3=0:INPUT "(1-10) ";C3 |
| 2570 | CLS :IF C3<0 OR C3>10 BEEP 2:GOTO 2560 |
| 2580 | GOSUB 3930 :F7=1:RETURN |
| 2590 | F7=0:IF F1=0 BEEP 2:RETURN |
| 2600 | IF F9 PAUSE "Speichern mit Abfrage":F9=0:RETURN |
| 2610 | PAUSE "automatische Speicherung":F9=1:RETURN |
| 2630 | W=1:PRINT "","1 = Bogen":PRINT "","2 = Sektor":PRINT "","3 = Kreis":INPUT W |
| 2640 | CLS :IF W<0 OR W>3 OR W<>INT W BEEP 2:GOTO 2630 |
| 2650 | IF W=3 GOTO 2030 |
| 2660 | F6=W-1 |
| 2670 | IF F6=0 PRINT "Bogen:":CURSOR 12,0 |
| 2680 | IF F6 PRINT "Sektor:":CURSOR 12,0 |
| 2690 | W=1:PRINT "1 = ellipt.":PRINT "","2 = kreisf.":CURSOR 0,3:INPUT W |
| 2700 | IF W<>1 AND W<>2 BEEP 2:GOTO 2670 |
| 2710 | CLS :ON W GOTO 3050 ,2720 |
| 2720 | K1$=" ":PRINT "kreisfoermiger "; |
| 2730 | IF F6 PRINT "Sektor:" |
| 2740 | IF F6=0 PRINT "Bogen:" |
| 2750 | PRINT K1$;"1 = M,r,<a,<e":PRINT K1$;"2 = M,Pa,<ae":PRINT K1$;"3 = Pa,Pe,Px" |
| 2760 | W=1:CURSOR 0,3:INPUT W |
| 2770 | CLS :IF W<1 OR W>3 OR W<>INT W BEEP 2:GOTO 2720 |
| 2780 | E=1:T=1:ON W GOSUB 2870 ,2960 ,3010 :IF W=3 AND O=0 RETURN |
| 2790 | IF F6 LET XT=XM:YT=YM:GOSUB 4600 :IF F7=0 RETURN |
| 2800 | XT=XM+R*COS A:YT=YM+R*SIN A:GOSUB 4600 :IF F7=0 RETURN |
| 2810 | XT=XM+R*COS B:YT=YM+R*SIN B:GOSUB 4600 :IF F7=0 RETURN |
| 2820 | IF A<0 AND B>0 LET XT=XM+R:YT=YM:GOSUB 4600 :IF F7=0 RETURN |
| 2830 | IF A<90 AND B>90 LET XT=XM:YT=YM+R:GOSUB 4600 :IF F7=0 RETURN |
| 2840 | IF A<180 AND B>180 LET XT=XM-R:YT=YM:GOSUB 4600 :IF F7=0 RETURN |
| 2850 | IF A<270 AND B>270 LET XT=XM:YT=YM-R:GOSUB 4600 :IF F7=0 RETURN |
| 2860 | GOTO 3230 |
| 2870 | INPUT "r = ";R |
| 2880 | R=R*S |
| 2890 | IF R<=0 BEEP 2:CLS :GOTO 2870 |
| 2900 | GOSUB 4340 |
| 2910 | A=0:B=90:INPUT "Anfangswinkel: ";A |
| 2920 | CLS :IF ABS A>360 BEEP 2:GOTO 2910 |
| 2930 | INPUT "Endwinkel: ";B |
| 2940 | CLS :IF ABS B>360 BEEP 2:GOTO 2930 |
| 2950 | RETURN |
| 2960 | GOSUB 4340 :GOSUB 4420 |
| 2970 | Z=90:INPUT "Oeffnungswinkel: ";Z |
| 2980 | CLS :IF ABS Z>360 GOTO 2970 |
| 2990 | X1=XA:Y1=YA:GOSUB 4410 |
| 3000 | B=A+Z:RETURN |
| 3010 | GOSUB 4420 :GOSUB 4510 :PRINT "Punkt der Kreislinie:":GOSUB 4110 |
| 3020 | X2=XA:Y2=YA:X3=XE:Y3=YE:GOSUB 4800 |
| 3030 | GOSUB 4480 :GOSUB 4570 |
| 3040 | RETURN |
| 3050 | K1$=" ":PRINT "elliptischer "; |
| 3060 | IF F6 PRINT "Sektor:" |
| 3070 | IF F6=0 PRINT "Bogen:" |
| 3080 | W=1:PRINT K1$;"1 = M,a,b,<a,<e":PRINT K1$;"2 = M,Pa,Pe":PRINT K1$;"3 = F1,F2,Pa,<ae" |
| 3090 | CURSOR 0,3:INPUT W |
| 3100 | CLS :IF W<>INT W OR W<0 OR W>3 BEEP 2::GOTO 3050 |
| 3110 | T=1:ON W GOSUB 3240 ,3250 ,3280 :E=H/G:R=G |
| 3120 | IF A/90=INT (A/90) GOTO 3140 |
| 3130 | A=ATN (TAN A/E)+180*(ABS A>90) |
| 3140 | IF B/90=INT (B/90) GOTO 3160 |
| 3150 | B=ATN (TAN B/E)+180*(ABS B>90) |
| 3160 | IF F6 LET XT=XM:YT=YM:GOSUB 4600 :IF F7=0 RETURN |
| 3170 | XT=XM+G*COS A:YT=YM+H*SIN A:GOSUB 4600 :IF F7=0 RETURN |
| 3180 | XT=XM+G*COS B:YT=YM+H*SIN B:GOSUB 4600 :IF F7=0 RETURN |
| 3190 | IF A<0 AND B>0 LET XT=XM+G:YT=YM:GOSUB 4600 :IF F7=0 RETURN |
| 3200 | IF A<90 AND B>90 LET XT=XM:YT=YM+H:GOSUB 4600 :IF F7=0 RETURN |
| 3210 | IF A<180 AND B>180 LET XT=XM-G:YT=YM:GOSUB 4600 :IF F7=0 RETURN |
| 3220 | IF A<270 AND B>270 LET XT=XM:YT=YM-H:GOSUB 4600 :IF F7=0 RETURN |
| 3230 | X=XM/S:Y=YM/S:GOSUB 3860 :RETURN |
| 3240 | GOSUB 2900 :GOSUB 820 :RETURN |
| 3250 | GOSUB 4340 :GOSUB 4420 :GOSUB 4510 |
| 3260 | X1=XA:Y1=YA:X2=XE:Y2=YE |
| 3270 | GOSUB 980 :RETURN |
| 3280 | PRINT "Brennpunkte:":GOSUB 4110 :GOSUB 4180 |
| 3290 | IF X1<>X2 AND Y1<>Y2 BEEP 2:PAUSE "Achsensymmetrie !":CLS :GOTO 3280 |
| 3300 | GOSUB 4420 :X3=XA:Y3=YA |
| 3310 | Z=90:INPUT "Oeffnungswinkel: ";Z |
| 3320 | CLS :IF ABS Z>360 GOTO 3310 |
| 3330 | B=A+Z |
| 3340 | GOTO 880 |
| 3360 | W=1:PRINT "gedrehte","1 = M,a,b,<":PRINT "Ellipse :","2 = M,S1,S2" |
| 3370 | PRINT "","3 = F1,F2,Px":CURSOR 0,3:INPUT W |
| 3380 | CLS :IF W<>INT W OR W<0 OR W>3 BEEP 2:GOTO 3360 |
| 3390 | ON W GOSUB 3420 ,3440 ,3490 |
| 3400 | GOSUB 3940 :F7=1 |
| 3410 | RETURN |
| 3420 | Z=45:GOSUB 810 :CLS :INPUT "Drehwinkel: phi = ";Z |
| 3430 | RETURN |
| 3440 | GOSUB 1070 :GOSUB 4340 |
| 3450 | G=SQR((X2-XM)^2+(Y2-YM)^2):GOSUB 4410 :H=R |
| 3460 | IF X2=XM LET Z=90*SGN (Y2-YM):GOTO 3480 |
| 3470 | Z=ATN ((Y2-YM)/(X2-XM)) |
| 3480 | RETURN |
| 3490 | PRINT "Brennpunkte:":GOSUB 4110 :GOSUB 4180 |
| 3500 | PRINT "Punkt der Ellipsenlinie:":GOSUB 4260 |
| 3510 | XM=(X1+X2)/2:YM=(Y1+Y2)/2 |
| 3520 | GOSUB 920 |
| 3530 | IF X2=X1 LET Z=90*SGN (Y2-Y1):GOTO 3550 |
| 3540 | Z=ATN ((Y2-Y1)/(X2-X1)) |
| 3550 | RETURN |
| 3560 | PRINT "Zeichnen mit Cursor:":I=0:ERASE C:DIM C(1,40) |
| 3570 | T=10/S:INPUT "Schrittweite : ";T |
| 3580 | T=T*S:K=30:INPUT "Winkelschritt: ";K |
| 3590 | CLS :GOSUB 4420 :INPUT "Anfangswinkel: ";W0 |
| 3600 | CLS :XT=XA:YT=YA:GLCURSOR (XA,YA):USING "####":C(0,0)=XA:C(1,0)=YA |
| 3610 | CURSOR 0,0:PRINT "X =";MDF (XT/S);" Y =";MDF (YT/S):PRINT "Richtung Grad":CURSOR 8,1 |
| 3620 | PRINT MDF W0 |
| 3630 | W=ASC INKEY$ :IF W=0 GOTO 3630 |
| 3640 | IF I=0 AND W=4 LET I=1 |
| 3650 | IF W=4 GOTO 3710 |
| 3660 | IF W=14 LET W0=W0-K:I=I+1:GOTO 3700 |
| 3670 | IF W=15 LET W0=W0+K:I=I+1:GOTO 3700 |
| 3680 | IF W=13 CLS :X=XT/S:Y=YT/S:F7=1:RETURN |
| 3690 | GOTO 3630 |
| 3700 | IF ABS W0>360 LET W0=W0-360*SGN W0 |
| 3710 | XT=XT+T*COS W0:YT=YT+T*SIN W0:GOSUB 4600 |
| 3720 | IF F7=0 AND I=1 RETURN |
| 3730 | IF F7=0 CLS :X=(XT-T*COS W0)/S:Y=(YT-T*SIN W0)/S:F7=1:I=I-1:RETURN |
| 3740 | LLINE -(XT,YT),C2,C1:C(0,I)=XT:C(1,I)=YT |
| 3750 | IF I=40 LET X=XT/S:Y=YT/S:RETURN |
| 3760 | GOTO 3610 |
| 3770 | PRINT "Bruchlinie:":PRINT "von "; |
| 3780 | GOSUB 4110 :PRINT "nach "; |
| 3790 | GOSUB 4180 |
| 3800 | T=5/S:INPUT "Schrittweite: ";T |
| 3810 | T=T*S |
| 3820 | K=90:INPUT "Streuwinkel : ";K |
| 3830 | CLS :K=ABS K:IF K>100 BEEP 2:GOTO 3820 |
| 3840 | GOSUB 4020 :F7=1:X=X2/S:Y=Y2/S |
| 3850 | RETURN |
| 3860 | CIRCLE (XM,YM),R,C1,A,B,E,T,F6:RETURN |
| 3870 | COLOR C1,7:RETURN |
| 3880 | LLINE (X1,Y1)-(X2,Y2),C2,C1:RETURN |
| 3890 | LLINE (X4,Y4)-(X1,Y1)-(X3,Y3)-(X2,Y2)-(X4,Y4),C2,C1:RETURN |
| 3900 | LLINE (X1,Y1)-(X2,Y2),C2,C1,B:BEEP 1,1,1:RETURN |
| 3910 | GLCURSOR (X1,Y1):CROTATE C4:CSIZE C5:LPRINT CHR$ 27+"c"+STR$ C6 |
| 3920 | LPRINT "P";T$(0):RETURN |
| 3930 | PAINT C3,C1:RETURN |
| 3940 | XT=G*COS Z+XM:YT=G*SIN Z+YM:GOSUB 4600 :IF F7=0 COLOR 7,7 |
| 3950 | GLCURSOR (XT,YT) |
| 3960 | FOR I=0 TO 360 STEP 10 |
| 3970 | XT=XM+G*COS I*COS Z-H*SIN I*SIN Z:YT=YM+H*SIN I*COS Z+G*COS I*SIN Z:GOSUB 4600 |
| 3980 | IF F7 LLINE -(XT,YT),C2:COLOR C1,7 |
| 3990 | IF F7=0 CLS :COLOR 7,7 |
| 4000 | NEXT I |
| 4010 | COLOR C1,7:RETURN |
| 4020 | XT=X1:YT=Y1:GLCURSOR (XT,YT):RANDOM |
| 4030 | R0=SQR((XT-X2)^2+(YT-Y2)^2) |
| 4040 | IF R0<=T LLINE -(X2,Y2),C2,C1:RETURN |
| 4050 | IF XT=X2 LET W0=90*SGN (Y2<YT):GOTO 4070 |
| 4060 | W0=ATN ((Y2-YT)/(X2-XT))+180*(X2<XT) |
| 4070 | W0=W0+(RND (K*2+1)-K-1):XT=XT+T*COS W0:YT=YT+T*SIN W0 |
| 4080 | GOSUB 4600 :CLS |
| 4090 | IF F7 LLINE -(XT,YT),C2,C1 |
| 4100 | GOTO 4030 |
| 4110 | X1=X-XR/S:Y1=Y-YR/S:PRINT "Punkt 1 :" |
| 4120 | IF F5 GOSUB 4620 :X1=XP:Y1=YP:GOTO 4150 |
| 4130 | IF F8 GOSUB 4650 :X1=XC:Y1=YC:GOTO 4170 |
| 4140 | INPUT "X1 = ";X1,"Y1 = ";Y1 |
| 4150 | X1=XR+X1*S:Y1=YR+Y1*S |
| 4160 | CLS :XT=X1:YT=Y1:GOSUB 4600 :IF F7=0GOTO 4110 |
| 4170 | RETURN |
| 4180 | X2=X-XR/S:Y2=Y-YR/S:PRINT "Punkt 2 :" |
| 4190 | IF F5 GOSUB 4620 :X2=XP:Y2=YP:GOTO 4220 |
| 4200 | IF F8 GOSUB 4650 :X2=XC:Y2=YC:GOTO 4250 |
| 4210 | INPUT "X2 = ";X2,"Y2 = ";Y2 |
| 4220 | X2=XR+X2*S:Y2=YR+Y2*S |
| 4230 | CLS :XT=X2:YT=Y2:GOSUB 4600 :IF F7=0GOTO 4180 |
| 4240 | IF X2=X1 AND Y2=Y1 BEEP 2:GOTO 4180 |
| 4250 | RETURN |
| 4260 | X3=X-XR/S:Y3=Y-YR/S:PRINT "Punkt 3 : |
| 4270 | IF F5 GOSUB 4620 :X3=XP:Y3=YP:GOTO 4300 |
| 4280 | IF F8 GOSUB 4650 :X3=XC:Y3=YC:GOTO 4330 |
| 4290 | INPUT "X3 = ";X3,"Y3 = ";Y3 |
| 4300 | X3=X3*S+XR:Y3=Y3*S+YR |
| 4310 | CLS :XT=X3:YT=Y3:GOSUB 4600 :IF F7=0GOTO 4260 |
| 4320 | IF X3=X2AND Y3=Y2OR (X3=X1AND Y3=Y1)BEEP 2:GOTO 4260 |
| 4330 | RETURN |
| 4340 | PRINT "Mittelpunkt: |
| 4350 | IF F5 GOSUB 4620 :XM=XP:YM=YP:GOTO 4380 |
| 4360 | IF F8 GOSUB 4650 :XM=XC:YM=YC:GOTO 4400 |
| 4370 | XM=X-XR/S:YM=Y-YR/S:INPUT "Xm = ";XM,"Ym = ";YM |
| 4380 | XM=XM*S+XR:YM=YM*S+YR |
| 4390 | IF F6=0 OR F6=2 LET XT=XM:YT=YM:GOSUB 4600 :IF F7=0 CLS :GOTO 4340 |
| 4400 | CLS :RETURN |
| 4410 | R=SQR((X1-XM)^2+(Y1-YM)^2):RETURN |
| 4420 | XA=X-XR/S:YA=Y-YR/S:PRINT "Anfangspunkt: |
| 4430 | IF F5 GOSUB 4620 :XA=XP:YA=YP:GOTO 4460 |
| 4440 | IF F8 GOSUB 4650 :XA=XC:YA=YC:GOTO 4480 |
| 4450 | INPUT "Xa = ";XA,"Ya = ";YA |
| 4460 | XA=XA*S+XR:YA=YA*S+YR |
| 4470 | XT=XA:YT=YA:GOSUB 4600 :IF F7=0CLS :GOTO 4420 |
| 4480 | IF XA=XM LET A=90*SGN (YA-YM):GOTO 4500 |
| 4490 | A=ATN ((YA-YM)/(XA-XM))+180*(XA<XM) |
| 4500 | CLS :RETURN |
| 4510 | XE=X-XR/S:YE=Y-YR/S:PRINT "Endpunkt: |
| 4520 | IF F5 GOSUB 4620 :XE=XP:YE=YP:GOTO 4550 |
| 4530 | IF F8 GOSUB 4650 :XE=XC:YE=YC:GOTO 4570 |
| 4540 | INPUT "Xe = ";XE,"Ye = ";YE |
| 4550 | XE=XE*S+XR:YE=YE*S+YR |
| 4560 | XT=XE:YT=YE:GOSUB 4600 :IF F7=0 CLS :GOTO 4510 |
| 4570 | IF XE=XM LET B=90*SGN (YE-YM):GOTO 4585 |
| 4580 | B=ATN ((YE-YM)/(XE-XM))+180*(XE<XM) |
| 4585 | IF A>B LET B=B+360 |
| 4590 | CLS :RETURN |
| 4600 | IF XT<0 OR XT>U OR YT<0 OR YT>V PAUSE "Bildrand ueberschritten!":F7=0:RETURN |
| 4610 | F7=1:RETURN |
| 4620 | R0=R/S:INPUT "Betrag: ";R0,"Winkel: ";W0 |
| 4630 | XP=R0*COS W0:YP=R0*SIN W0 |
| 4640 | RETURN |
| 4650 | GPRINT :XC=X*S:YC=Y*S |
| 4660 | CURSOR 0,3:GLCURSOR (XC,YC) |
| 4670 | PRINT "X = ","Y = ":CURSOR 4,3:PRINT LEFT$ (STR$ (XC/S),5):CURSOR 16,3:PRINT LEFT$(STR$ (YC/S),5) |
| 4680 | W=ASC INKEY$ :IF W=0 GOTO 4680 |
| 4690 | IF W=14 LET XC=XC+(10-9*(PEEK 12348=144))*S:GOTO 4730 |
| 4700 | IF W=15 LET XC=XC-(10-9*(PEEK 12348=144))*S:GOTO 4730 |
| 4710 | IF W=4 LET YC=YC+(10-9*(PEEK 12348=144))*S:GOTO 4750 |
| 4720 | IF W=5 LET YC=YC-(10-9*(PEEK 12348=144))*S:GOTO 4750 |
| 4730 | IF XC>U BEEP 2:XC=U:GOTO 4660 |
| 4740 | IF XC<0 BEEP 2:XC=0:GOTO 4660 |
| 4750 | IF YC>V BEEP 2:YC=V:GOTO 4660 |
| 4760 | IF YC<0 BEEP 2:YC=0:GOTO 4660 |
| 4770 | IF W=13 POKE 12348,16:X=XC/S:Y=YC/S:CLS :RETURN |
| 4780 | IF W=22 POKE 12348,(144-128*(PEEK 12348=144)) |
| 4790 | GOTO 4660 |
| 4800 | O=(Y3-Y1)*(X2-X1)-(Y2-Y1)*(X3-X1) |
| 4810 | IF O=0 LET M=37:GOSUB 5040 :GOSUB 3880 :RETURN |
| 4820 | K=X3^2-X1^2+Y3^2-Y1^2:J=X2^2-X1^2+Y2^2-Y1^2 |
| 4830 | YM=(K*(X2-X1)-J*(X3-X1))/2/O |
| 4840 | IF X1=X2 LET XM=(K-2*YM*(Y3-Y1))/2/(X3-X1):GOTO 4860 |
| 4850 | XM=(J-2*YM*(Y2-Y1))/2/(X2-X1) |
| 4860 | GOSUB 4410 |
| 4870 | RETURN |
| 4880 | WAIT :PRINT "CE-140F o.k. ? <ENTER>":WAIT 0:CLS |
| 4890 | PRINT "Filename:":INPUT N$:CLS :RETURN |
| 4900 | ON M-68 GOTO 4940 ,4950 ,4930 ,4930 ,4960 ,4970 ,4980 ,4970 ,4940 ,4930 ,4940 |
| 4910 | ON M-79 GOTO 4930 ,4930 ,4930 ,5000 ,4990 ,4940 ,5010 ,5030 ,5020 ,4930 ,4930 |
| 4920 | ON M-89 GOTO 4930 |
| 4930 | RETURN |
| 4940 | PRINT #2,M,XM,YM,R,A,B,E,T,F6,C1:RETURN |
| 4950 | PRINT #2,M,C1:RETURN |
| 4960 | PRINT #2,M,C2:RETURN |
| 4970 | PRINT #2,M,X1,Y1,X2,Y2,C1,C2:RETURN |
| 4980 | PRINT #2,M,X1,Y1,X2,Y2,X3,Y3,X4,Y4,C1,C2:RETURN |
| 4990 | PRINT #2,M,X1,Y1,C1,C4,C5,C6,T$(0):RETURN |
| 5000 | PRINT #2,M,C3,C1:RETURN |
| 5010 | PRINT #2,M,XM,YM,G,H,Z,C1,C2:RETURN |
| 5020 | PRINT #2,M,X1,Y1,X2,Y2,T,K,C1,C2:RETURN |
| 5030 | PRINT #2,M,I,C(*),C1,C2:RETURN |
| 5040 | P=X1:IF X2<P LET P=X2 |
| 5050 | IF X3<P LET P=X3 |
| 5060 | Q=Y1:IF Y2<Q LET Q=Y2 |
| 5070 | IF Y3<Q LET Q=Y3 |
| 5080 | X=X1:IF X2>X LET X=X2 |
| 5090 | IF X3>X LET X=X3 |
| 5100 | Y=Y1:IF Y2>Y LET Y=Y2 |
| 5110 | IF Y3>Y LET Y=Y3 |
| 5120 | X1=P:Y1=Q:X2=X:Y2=Y:X=X/S:Y=Y/S |
| 5130 | RETURN |
| 5140 | R=R*C7 |
| 5150 | XM=XM*C7+XR:YM=YM*C7+YR:RETURN |
| 5160 | X4=X4*C7+XR:Y4=Y4*C7+YR |
| 5170 | X3=X3*C7+XR:Y3=Y3*C7+YR |
| 5180 | X2=X2*C7+XR:Y2=Y2*C7+YR |
| 5190 | X1=X1*C7+XR:Y1=Y1*C7+YR:RETURN |
| 5200 | CLS :IF M=69 OR (M>73 AND M<78) OR M=79 OR (M>82 AND M<89) GOSUB 340 :F7=1 |
| 5210 | W$="J":INPUT "Speichern ? (J/N) ";W$ |
| 5220 | IF W$="J" GOSUB 4900 |
| 5230 | RETURN |
Dokumentation ansehen
Programmspeicher-Image laden
|
|
![]()
Falls diese Seite ohne Navigationsleiste angezeigt wird, aktivieren Sie Javascript oder klicken Sie hier!