home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er
/
64ER_CD.iso
/
s85xx
/
s8507b.d64
/
manager-kurve
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
1995-03-30
|
6KB
|
212 lines
10 REM *********************
20 REM *** MANAGER - KURVE *
30 REM *** VON *
40 REM *** FRANZ STROBL *
50 REM *** STARENWEG 12 *
60 REM *** D-8050 FREISING *
70 REM *********************
80 REM ***
90 REM *** INITIALISIERUNG
100 REM ***
110 OPEN1,6,1:OPEN2,6,2:OPEN4,6:OPEN3,6,3:OPEN44,6,4:OPEN5,6,5:OPEN7,6,7
120 PRINT#44,1:PRINT#4:PRINT#4:PRINT#4:PRINT#3,1
130 DIMT$(100)
140 F$(0)="SCHWARZ":F$(1)="BLAU":F$(2)="GRUEN":F$(3)="ROT"
150 I$(0)="NEIN":I$(1)="JA":F=0:L=0:G=0:E=0:W=0:M=0:D=.5
160 REM ***
170 REM *** MENUE
180 REM ***
190 REM MENUE-ANZEIGE
200 PRINT"[147]LINIENDIAGRAMM"
210 PRINT"NEUES DIAGRAMM (D) ",I$(D*2)
220 PRINT"NEUE LINIE (L) ",I$(L*2)
230 PRINT"LINIE WEITERZEICHNEN (W) ",I$(W*2)
240 PRINT"ENDE (E) ",I$(E*2)
250 PRINT"FARBE (F) ",F$(F*4)
260 PRINT"MARKIERUNG (M) ",I$(M*2)
270 PRINT"GESTRICHELTE LINIE (G) ",I$(G*2)
280 PRINT"RETURN FUEHRT DIE ANWEISUNG AUS"
290 REM MENUE-EINGABE
300 GETA$:IFA$=""THEN300
310 IFA$="F"THENF=F+.25:F=F-INT(F):GOTO200
320 IFA$="W"THENW=W+.5:W=W-INT(W):E=0:L=0:D=0:GOTO200
330 IFA$="L"THENL=L+.5:L=L-INT(L):E=0:D=0:W=0:GOTO200
340 IFA$="M"THENM=M+.5:M=M-INT(M):E=0:GOTO200
350 IFA$="E"THENE=E+.5:E=E-INT(E):L=0:D=0:W=0:M=0:G=0:GOTO200
360 IFA$="D"THEND=D+.5:D=D-INT(D):L=0:E=0:W=0:GOTO200
370 IFA$="G"THENG=G+.5:E=0:D=0:G=G-INT(G):GOTO200
380 IFASC(A$)=13THEN410
390 GOTO300
400 REM MENUE-AUSFUEHRUNG
410 IFE=.5THENGOSUB1960:CLOSE1:CLOSE2:CLOSE4:CLOSE44:CLOSE5:GOTO2110
420 PRINT#2,F*4
430 PRINT#5,G*8
440 IFW=.5THENW=0:IFC$="J"ANDD1=1THEN1490
450 IFL=.5ANDD1=1THEN1460
460 IFD=.5THENGOSUB1960:GOTO520
470 GOTO300
480 REM ***
490 REM *** NEUES DIAGRAMM
500 REM ***
510 REM INITIALISIERUNG
520 PRINT#1,"M",0,-200:PRINT#4:F1=F:D1=1:N1=0:N3=0:PRINT#2,F*4
530 FORB=0TO100:T$(B)=" ":NEXTB
540 REM EINGABE Y-SKALA UND AUSWERTUNG
550 PRINT"[147]SKALA:":PRINT"HOEHE (Y):"
560 INPUT"ANFANG";YA
570 INPUT"ENDE";YE
580 IFYA>=YETHEN560
590 DY=YE-YA
600 Z=0
610 FORB=YATOYESTEPDY/4
620 IFB=0THENN1=1
630 Y$(Z)=STR$(B):Z=Z+1
640 NEXTB
650 REM EINTRAGUNG SKALENWERTE Y IN BESCHRIFTUNGSVARIABLE T$(X)
660 Z=0
670 FORTS=1TO33STEP8
680 L1=LEN(Y$(Z))
690 FORTZ=22TO21-L1STEP-1
700 T$(TZ)=LEFT$(T$(TZ),TS)+MID$(Y$(Z),TZ-20+L1,1)+RIGHT$(T$(TZ),38-TS)
710 NEXTTZ
720 Z=Z+1
730 NEXTTS
740 REM EINGABE X-SKALA UND AUSWERTUNG
750 PRINT"LAENGE (X):"
760 PRINT"-SKALA IST IN X-RICHTUNG DOPPELT SO LANG WIE IN Y-RICHTUNG"
770 INPUT"ANFANG";XA
780 INPUT"ENDE";XE
790 IFXA>=XETHEN770
800 DX=XE-XA
810 PRINT.5*DX/DY"-FACH UEBERHOEHT"
820 PRINT"RETURN = FUEHRT DIE ANWEISUNG AUS"
830 PRINT"M = ZURUECK INS MENUE"
840 PRINT"N = KORREKTUR DER DATEN"
850 GETA$:IFA$=""THEN850
860 IFA$="N"THEN520
870 IFA$="M"THEND1=0:GOTO200
880 IFASC(A$)<>13THEN850
890 Z=0
900 FORB=XATOXESTEPDX/4
910 IFB=0THENN3=1
920 X$(Z)=STR$(B):Z=Z+1
930 NEXTB
940 REM EINTRAGUNG SKALENWERTE X IN BESCHRIFTUNGSVARIABLE T$(X)
950 Z=0
960 FORTZ=21TO61STEP10
970 FORB=0TOLEN(X$(Z))
980 T$(TZ+B)=MID$(X$(Z),1+B,1)+RIGHT$(T$(TZ+B),38)
990 NEXTB
1000 Z=Z+1
1010 NEXTTZ
1020 REM EINGABE UEBERSCHRIFT UND AUSWERTUNG
1030 T1$="":INPUT"UEBERSCHRIFT";T1$
1040 L1=LEN(T1$):IFL1=0THEN1110
1050 IFL1>40THENPRINT"TEXT ZU LANG":GOTO1030
1060 REM EINTRAGUNG UEBERSCHRIFT IN BESCHRIFTUNGSVARIABLE T$(X)
1070 FORB=38TO37+L1
1080 T$(B)=LEFT$(T$(B),38)+MID$(T1$,B-37,1)
1090 NEXTB
1100 REM PLOTTERINITIALISIERUNG ZUM ZEICHNEN DES DIAGRAMMS
1110 PRINT#1,"M",0,-200
1120 PRINT#4,CHR$(13)
1130 PRINT#1,"M",18,0:PRINT#1,"I"
1140 REM Y-ACHSE
1150 PRINT#1,"J",400,0
1160 FORB=400TO0STEP-100
1170 PRINT#1,"R",B,5
1180 PRINT#1,"J",B,-5
1190 NEXTB
1200 REM X-ACHSE
1210 FORB=0TO-800STEP-200
1220 PRINT#1,"R",-5,B
1230 PRINT#1,"J",5,B
1240 NEXTB
1250 PRINT#1,"R",0,-800
1260 PRINT#1,"J",0,0
1270 REM ACHSE X=0 (MIT BESCHRIFTUNG), FALLS NOTWENDIG
1280 IFXA>=0ORXE<=0THEN1350
1290 FX=800*XA/DX:PRINT#1,"R",-5,FX
1300 PRINT#1,"J",400,FX
1310 IFN3=1THEN1350
1320 N2=INT(22-FX/20):IFLEFT$(T$(N2),1)<>" "THEN1350
1330 T$(N2)="0"+RIGHT$(T$(N2),38)
1340 REM ACHSE Y=0 (MIT BESCHRIFTUNG), FALLS NOTWENDIG
1350 IFYA>=0ORYE<=0THEN1410
1360 FY=-400*YA/DY:PRINT#1,"R",FY,5
1370 PRINT#1,"J",FY,-800
1380 IFN1=1THEN1410
1390 N2=INT(1+FY/12):IFMID$(T$(20),N2,1)<>" "THEN1410
1400 T$(20)=LEFT$(T$(20),N2)+"0"+RIGHT$(T$(20),38-N2)
1410 L=.5:D=0:GOTO200
1420 REM ***
1430 REM *** LINIE ZEICHNEN
1440 REM ***
1450 REM ZEICHENTYP "R" ODER "J"
1460 IFL=.5THENC$="R":GOTO1490
1470 C$="J"
1480 REM KOORDINATEN- UND TEXTEINGABE MIT AUSWERTUNG
1490 INPUT"[147]LAENGENWERT (X)";X
1500 INPUT"HOEHENWERT (Y)";Y
1510 IFX<=XEANDX>=XAANDY<=YEANDY>=YATHEN1560
1520 PRINT"PUNKT LIEGT NICHT INNERHALB DES DIA-"
1530 PRINT"GRAMMS. SOLL TROTZDEM DIE LINIE GE-"
1540 PRINT"ZEICHNET WERDEN, DRUECKEN SIE RETURN"
1550 T1$="":GOTO1580
1560 T1$="":INPUT"TEXT";T1$
1570 IFLEN(T1$)>20THENPRINT"TEXT ZU LANG":T1$="":GOTO1560
1580 PRINT"RETURN = FUEHRT DIE ANWEISUNG AUS"
1590 PRINT"SH/RET = AUSFUEHRUNG, DANACH INS MENUE"
1600 PRINT"M = ZURUECK INS MENUE"
1610 PRINT"N = KORREKTUR DER DATEN"
1620 GETA$:IFA$=""THEN1620
1630 IFA$="N"THEN1490
1640 IFA$="M"THENW=0.5:L=0:GOTO200
1650 IFASC(A$)<>13ANDASC(A$)<>141THEN1620
1660 REM PLOTTERKOORDINATEN UND AUSFUEHRUNG
1670 FX=-800*(X-XA)/DX
1680 FY=400*(Y-YA)/DY
1690 PRINT#1,C$,FY,FX
1700 REM MARKIERUNGSKREUZ
1710 IFM=0THEN1760
1720 PRINT#5,0:PRINT#1,"R",FY+3,FX
1730 PRINT#1,"J",FY-3,FX:PRINT#1,"R",FY,FX+3
1740 PRINT#1,"J",FY,FX-3:PRINT#1,"R",FY,FX
1750 PRINT#5,G*8
1760 IFT1$=""THEN1910
1770 REM EINTRAGUNG TEXT IN FREIEN PLATZ DER BESCHRIFTUNGSVARIABLE T$(X)
1780 TS=INT(2+FY/12)
1790 TZ=INT(21-FX/20)
1800 V=0
1810 FORB=TZTOTZ-1+LEN(T1$)
1820 IFMID$(T$(TZ),TS,1)<>" "THENB=TZ-1+LEN(T1$):V=V+1:NEXTB:GOTO1840
1830 NEXTB:V=0
1840 IFV=1THENTS=TS+1:GOTO1810
1850 IFV=2THENTS=TS-2:GOTO1810
1860 IFV=3THENTS=TS+3:GOTO1810
1870 IFV=4THENPRINT"TEXT NICHT MOEGLICH":FORB=0TO300:NEXTB:GOTO1910
1880 FORB=TZTOTZ-1+LEN(T1$)
1890 T$(B)=LEFT$(T$(B),TS-1)+MID$(T1$,B+1-TZ,1)+RIGHT$(T$(B),39-TS)
1900 NEXTB
1910 IFASC(A$)=141THENW=.5:L=0:GOTO200
1920 GOTO1470
1930 REM ***
1940 REM *** DIAGRAMM AM ENDE DURCH BESCHRIFTUNG VERVOLLSTAENDIGEN
1950 REM ***
1960 IFD1=0THENRETURN
1970 PRINT#2,F1*4:PRINT#5,0
1980 PRINT#1,"M",0,410
1990 FORT=1TO80
2000 IFT$(T)=" "THENPRINT#4:NEXTT:RETURN
2010 IFRIGHT$(T$(T),38)=" "THEN2060
2020 IFRIGHT$(T$(T),29)=" "THEN2070
2030 IFRIGHT$(T$(T),19)=" "THEN2080
2040 IFRIGHT$(T$(T),10)=" "THEN2090
2050 PRINT#4,T$(T):NEXTT:RETURN
2060 PRINT#4,LEFT$(T$(T),1):NEXTT:RETURN
2070 PRINT#4,LEFT$(T$(T),10):NEXTT:RETURN
2080 PRINT#4,LEFT$(T$(T),20):NEXTT:RETURN
2090 PRINT#4,LEFT$(T$(T),29):NEXTT
2100 RETURN
2110 PRINT#7:CLOSE7:END