Grafikroutinen werden noch gebraucht. Wo sind sie?
Ruft verschiedene Routinen auf:
CALL*9393 Punkt setzen
CALL*9395 Punkt löschen
CALL*9399
CALL*939B
CALL*939D
Zeichensatz UTF-8+Z1013()+CTRL()-ohne Umlaute(äöüß)
10!GRAFIKPROGRAMM:CALL*9399
15 CALL*9399
20 WINDOW 0,31,0,31:CLS:X$=CHR$(203)
30 PRINT STRING$(224,X$)"GRAFIKPROGRAMM";
40 PRINT STRING$(255,X$)STRING$(255,X$);
50 PRINT STRING$(251,X$)"W.Gutzmann"
60 PAUSE 40:CLS
65 WINDOW 0,31,0,31:CLS
70 PRINT "***GRAFIKPROGRAMM***":PRINT:PRINT:PRINT
80 PRINT "AUSWAHL DURCH KENNZIFFER":PRINT:PRINT
90 PRINT "PUNKT SETZEN/LOESCHEN 1":PRINT
100 PRINT "LINIE SETZEN/LOESCHEN 2":PRINT
110 PRINT "KREIS SETZEN/LOESCHEN 3":PRINT
120 PRINT "VIELECK SETZEN/LOESCHEN 4":PRINT
130 PRINT "LOESCHEN BWS UND RAM 5":PRINT
140 PRINT "LOESCHEN GRAFIK-RAM 6":PRINT
150 PRINT "DARSTELLEN GRAFIK-RAM 7":PRINT
160 PRINT "PROGRAMM-ENDE 8":PRINT
170 INPUT "KENNZIFFER=";A:CLS
180 IF A<0 OR A>8 THEN PRINT "FALSCHE EINGABE !":PAUSE 10:CLS:GOTO 65
190 ON A GOTO 500,1000,1600,5000,2500,3000,3500,200
200 END
500 REM PUNKT
510 WINDOW 28,31,0,31:
520 CLS:PRINT "ZURUECK INS MENUE ? (J/N)"
530 E$=INKEY$:IF E$="J" THEN GOTO 65
540 IF E$=""THEN GOTO 530:CLS
550 CLS
560 PRINT "PUNKT SETZEN = 1"
570 PRINT "PUNKT LOESCHEN= 2"
580 INPUT B
590 ON B GOSUB 650,750
600 GOTO 500
650!UP PUNKT SETZEN
660 CLS:PRINT "PUNKT SETZEN"
678 INPUT "ZEILE =";X
680 INPUT "SPALTE =";Y
690 POKE(-27759),X
700 POKE(-27760),Y
710 CALL*9393
720 RETURN
750!UP PUNKT LOESCHEN
760 CLS:PRINT "PUNKT LOESCHEN"
770 INPUT "ZEILE=";X
780 INPUT "SPALTE=";Y
790 POKE(-27759),X
800 POKE(-27760),Y
810 CALL*9395
820 RETURN
1000!LINIE
1010 WINDOW 28,31,0,31:CLS
1020 CLS:PRINT "ZURUECK INS MENUE ? (J/N)"
1030 E$=INKEY$:IF E$="J" THEN GOTO 65
1040 IF E$=""THEN GOTO 1030
1050 CLS
1060 PRINT "LINIE SETZEN = 1"
1070 PRINT "LINIE LOESCHEN = 2"
1080 INPUT A
1090 ON A GOSUB 1200,1400
1100 GOTO 1010
1200!
1210 CLS
1215 INPUT "ANFANGSZEILE =";XA
1220 INPUT "ANFANGSSPALTE=";YA
1225 INPUT "ENDZEILE =";XE
1230 INPUT "ENDSPALTE =";YE
1235 LET X1=XE-XA:LET X2=-XE*YA+XA*YE:LET X3=YE-YA
1240 LET Y1=YE-YA:LET Y2=-XA*YE+XE*YA:LET Y3=XE-XA
1245 IF ABS(XE-XA)>(YE-YA)THEN GOTO 1300
1250 IF YA<YE THEN LET ST=1:ELSE LET ST=-1
1255 FOR JL=YA TO YE STEP ST
1260 LET JH=(JL*X1+X2)/X3
1265 IF JH<0 OR JH>255 OR JL<0 OR JL>255 THEN GOTO 1290
1270 POKE(-27759),JH
1275 POKE(-27760),JL
1280 CALL*9393
1290 NEXT:RETURN
1300 IF XA<XE THEN LET ST=1:ELSE LET ST=-1
1305 FOR JL=XA TO XE STEP ST
1310 LET JH=(JL*Y1+Y2)/Y3
1315 IF JL<0 OR JL>255 OR JH<0 OR JH>255 THEN GOTO 1335
1320 POKE(-27759),JL
1325 POKE(-27760),JH
1330 CALL*9393
1335 NEXT:RETURN
1400!LINIE LOESCHEN
1410 WINDOW 28,31,0,31:CLS
1420 PRINT "LINIE LOESCHEN " "
1425 PRINT "ZURUECK INS MENUE (J/N) ?"
1430 E$=INKEY$:IF E$="J" THEN GOTO 65
1440 IF E$=""THEN GOTO 1430
1450 INPUT "ANFANGSZEILE =";XA
1460 INPUT "ANFANGSSPALTE =";YA
1470 INPUT "ENDZEILE =";XE
1480 INPUT "ENDSPALTE =";YE
1490 LET X1=XE-XA:LET X2=-XE*YA+XA*YE:LET X3=YE-YA
1500 LET Y1=YE-YA:LET Y2=-XA*YE+XE*YA:LET Y3=XE-XA
1510 IF ABS(XE-XA)>(YE-YA)THEN GOTO 4000
1520 IF YA<YE THEN LET ST=1:ELSE LET ST=-1
1530 FOR JL=YA TO YE STEP ST
1540 LET JH=(JL*X1+X2)/X3
1550 IF JH<0 OR JH>255 OR JL<0 OR JL>255 THEN GOTO 1590
1560 POKE(-27759),JH
1570 POKE(-27760),JL
1580 CALL*9395
1590 NEXT:RETURN
1600!KREIS
1610 WINDOW 28,31,0,31:CLS
1620 PRINT "ZURUECK INS MENUE (J/N) ?"
1630 E$=INKEY$:IF E$="J" THEN GOTO 65
1640 IF E$=""THEN GOTO 1630
1641 PRINT "KREIS SETZEN= 1"
1642 PRINT "KREIS LOESCHEN= 2"
1643 INPUT A
1644 ON A GOSUB 1660,1800
1645 GOTO 1600
1650 CLS
1660 INPUT "ZEILE=";ZM
1670 INPUT "SPALTE=";SM
1680 INPUT "RADIUS 1=";R1
1690 INPUT "RADIUS 2=";R2
1700 FOR I=.01 TO 2*PI STEP .01
1710 POKE(-27759),(SM+R1*COS(I))
1720 POKE(-27760),(ZM+R2*SIN(I))
1730 CALL*9393
1740 NEXT:RETURN
1800!KREIS LOESCHEN
1810 WINDOW 28,31,0,31:CLS
1820 PRINT "ZURUECK INS MENUE (J/N) ?"
1830 E$=INKEY$:IF E$="J" THEN GOTO 65
1840 IF E$=""THEN GOTO 1830
1850 PRINT "KREIS LOESCHEN"
1860 INPUT "ZEILE =";ZM
1870 INPUT "SPALTE =";SM
1880 INPUT "RADIUS 1 =";R1
1890 INPUT "RADIUS 2 =";R2
1900 FOR I=.01 TO 2*PI STEP .01
1910 POKE(-27759),(SM+R1*COS(I))
1920 POKE(-27760),(ZM+R2*SIN(I))
1930 CALL*9395
1940 NEXT:RETURN
2500!LOESCHEN BWS UND RAM
2501 WINDOW 28,31,0,31:CLS
2510 PRINT "BWS UND RAM LOESCHEN ?"
2520 INPUT "J/N ?";E$
2530 IF E$="J" THEN GOTO 2550
2540 IF E$<>"J" THEN GOTO 65
2550 CALL*9399
2560 GOTO 2500
3000!LOESCHEN GRAFIK-RAM
3001 WINDOW 28,31,0,31:CLS
3010 PRINT "LOESCHEN GRAFIK-RAM ?"
3020 INPUT "J/N ?";E$
3030 IF E$="J" THEN GOTO 3050
3040 IF E$<>"J" THEN GOTO 65
3050 CALL*939B
3060 GOTO 3000
3500!DARSTELLEN
3560 CALL*939D
3570 E$=INKEY$:IF E$=""THEN GOTO 3570
3575 GOTO 65
4000 IF XA<XE THEN LET ST=1:ELSE LET ST=-1
4010 FOR JL=XA TO XE STEP ST
4020 LET JH=(JL*Y1+Y2)/Y3
4030 IF JL<0 OR JL>255 OR JH<0 OR JH>255 THEN GOTO 4070
4040 POKE(-27759),JL
4050 POKE(-27760),JH
4060 CALL*9395
4070 NEXT:RETURN
4080! THEN LET ST=1:ELSE LET ST=-1
4090! TO XE STEP ST
4100! =(JL*Y1+Y2)/Y3
4110! L<0 OR JL>255 OR JH<0 OR JH>255 THEN GOTO 4150
4120! E(-27759),JL
4130! E(-27760),JH
4140! L*9395
4150!EXT:RETURN
5000!VIELECKE
5010 WINDOW 28,31,0,31:CLS
5020 PRINT "ZURUECK INS MENUE (J/N) ?"
5030 E$=INKEY$:IF E$="J"THEN GOTO 65
5040 IF E$=""GOTO 5030
5050 CLS:PRINT "VIELECKE SETZEN = 1"
5060 PRINT "VIELECKE LOESCHEN = 2"
5070 INPUT A
5080 ON A GOSUB 5100,5500
5090 GOTO 5000
5100 INPUT "ANZAHL DER ECKEN";AN
5110 INPUT "GRUNDRADIUS =";GR
5120 INPUT "LINIENABSTAND =";AB
5130 INPUT "DREHWINKEL X-RICHTUNG =";WX
5140 INPUT "DREHWINKEL Y-RICHTUNG =";WY
5150 FOR R=GR TO 125 STEP AB
5160 LET XA=128+R*COS(WX*PI/180)
5170 LET YA=128+R*SIN(WY*PI/180)
5180 FOR E=1 TO AN
5190 LET XE=128+R*COS(2*E*PI/AN+WX*PI/180)
5200 LET YE=128+R*SIN(2*E*PI/AN+WY*PI/180)
5210 GOSUB 1235
5220 LET XA=XE:LET YA=YE
5230 NEXT:NEXT
5240 RETURN
5500!VIELECKE LOESCHEN
5510 INPUT "ANZAHL DER ECKEN =";AN
5520 INPUT "GRUNDRADIUS =";GR
5530 INPUT "LINIENABSTAND =";AB
5540 INPUT "DREHWINKEL X-RICHTUNG =";WX
5550 INPUT "DREHWINKEL Y-RICHTUNG =";WY
5560 FOR R=GR TO 125 STEP AB
5570 LET XA=128+R*COS(WX*PI/180)
5580 LET YA=128+R*SIN(WY*PI/180)
5590 FOR E=1 TO AN
5600 LET XE=128+R*COS(2*E*PI/AN+WX*PI/180)
5610 LET YE=128+R*SIN(2*E*PI/AN+WY*PI/180)
5620 GOSUB 1490
5630 LET XA=XE:LET YA=YE
5640 NEXT:NEXT
5650 RETURN