home *** CD-ROM | disk | FTP | other *** search
/ 64'er / 64ER_CD.iso / s85xx / s8507b.d64 / manager-kurve (.txt) < prev    next >
Commodore BASIC  |  1995-03-30  |  6KB  |  212 lines

  1. 10 REM *********************
  2. 20 REM *** MANAGER - KURVE *
  3. 30 REM ***       VON       *
  4. 40 REM ***  FRANZ  STROBL  *
  5. 50 REM ***  STARENWEG  12  *
  6. 60 REM *** D-8050 FREISING *
  7. 70 REM *********************
  8. 80 REM ***
  9. 90 REM *** INITIALISIERUNG
  10. 100 REM ***
  11. 110 OPEN1,6,1:OPEN2,6,2:OPEN4,6:OPEN3,6,3:OPEN44,6,4:OPEN5,6,5:OPEN7,6,7
  12. 120 PRINT#44,1:PRINT#4:PRINT#4:PRINT#4:PRINT#3,1
  13. 130 DIMT$(100)
  14. 140 F$(0)="SCHWARZ":F$(1)="BLAU":F$(2)="GRUEN":F$(3)="ROT"
  15. 150 I$(0)="NEIN":I$(1)="JA":F=0:L=0:G=0:E=0:W=0:M=0:D=.5
  16. 160 REM ***
  17. 170 REM *** MENUE
  18. 180 REM ***
  19. 190 REM MENUE-ANZEIGE
  20. 200 PRINT"[147]LINIENDIAGRAMM"
  21. 210 PRINT"NEUES DIAGRAMM (D)       ",I$(D*2)
  22. 220 PRINT"NEUE LINIE (L)           ",I$(L*2)
  23. 230 PRINT"LINIE WEITERZEICHNEN (W) ",I$(W*2)
  24. 240 PRINT"ENDE (E)                 ",I$(E*2)
  25. 250 PRINT"FARBE (F)                ",F$(F*4)
  26. 260 PRINT"MARKIERUNG (M)           ",I$(M*2)
  27. 270 PRINT"GESTRICHELTE LINIE (G)   ",I$(G*2)
  28. 280 PRINT"RETURN FUEHRT DIE ANWEISUNG AUS"
  29. 290 REM MENUE-EINGABE
  30. 300 GETA$:IFA$=""THEN300
  31. 310 IFA$="F"THENF=F+.25:F=F-INT(F):GOTO200
  32. 320 IFA$="W"THENW=W+.5:W=W-INT(W):E=0:L=0:D=0:GOTO200
  33. 330 IFA$="L"THENL=L+.5:L=L-INT(L):E=0:D=0:W=0:GOTO200
  34. 340 IFA$="M"THENM=M+.5:M=M-INT(M):E=0:GOTO200
  35. 350 IFA$="E"THENE=E+.5:E=E-INT(E):L=0:D=0:W=0:M=0:G=0:GOTO200
  36. 360 IFA$="D"THEND=D+.5:D=D-INT(D):L=0:E=0:W=0:GOTO200
  37. 370 IFA$="G"THENG=G+.5:E=0:D=0:G=G-INT(G):GOTO200
  38. 380 IFASC(A$)=13THEN410
  39. 390 GOTO300
  40. 400 REM MENUE-AUSFUEHRUNG
  41. 410 IFE=.5THENGOSUB1960:CLOSE1:CLOSE2:CLOSE4:CLOSE44:CLOSE5:GOTO2110
  42. 420 PRINT#2,F*4
  43. 430 PRINT#5,G*8
  44. 440 IFW=.5THENW=0:IFC$="J"ANDD1=1THEN1490
  45. 450 IFL=.5ANDD1=1THEN1460
  46. 460 IFD=.5THENGOSUB1960:GOTO520
  47. 470 GOTO300
  48. 480 REM ***
  49. 490 REM *** NEUES DIAGRAMM
  50. 500 REM ***
  51. 510 REM INITIALISIERUNG
  52. 520 PRINT#1,"M",0,-200:PRINT#4:F1=F:D1=1:N1=0:N3=0:PRINT#2,F*4
  53. 530 FORB=0TO100:T$(B)="                                       ":NEXTB
  54. 540 REM EINGABE Y-SKALA UND AUSWERTUNG
  55. 550 PRINT"[147]SKALA:":PRINT"HOEHE (Y):"
  56. 560 INPUT"ANFANG";YA
  57. 570 INPUT"ENDE";YE
  58. 580 IFYA>=YETHEN560
  59. 590 DY=YE-YA
  60. 600 Z=0
  61. 610 FORB=YATOYESTEPDY/4
  62. 620 IFB=0THENN1=1
  63. 630 Y$(Z)=STR$(B):Z=Z+1
  64. 640 NEXTB
  65. 650 REM EINTRAGUNG SKALENWERTE Y IN BESCHRIFTUNGSVARIABLE T$(X)
  66. 660 Z=0
  67. 670 FORTS=1TO33STEP8
  68. 680 L1=LEN(Y$(Z))
  69. 690 FORTZ=22TO21-L1STEP-1
  70. 700 T$(TZ)=LEFT$(T$(TZ),TS)+MID$(Y$(Z),TZ-20+L1,1)+RIGHT$(T$(TZ),38-TS)
  71. 710 NEXTTZ
  72. 720 Z=Z+1
  73. 730 NEXTTS
  74. 740 REM EINGABE X-SKALA UND AUSWERTUNG
  75. 750 PRINT"LAENGE (X):"
  76. 760 PRINT"-SKALA IST IN X-RICHTUNG DOPPELT SO LANG WIE IN Y-RICHTUNG"
  77. 770 INPUT"ANFANG";XA
  78. 780 INPUT"ENDE";XE
  79. 790 IFXA>=XETHEN770
  80. 800 DX=XE-XA
  81. 810 PRINT.5*DX/DY"-FACH UEBERHOEHT"
  82. 820 PRINT"RETURN = FUEHRT DIE ANWEISUNG AUS"
  83. 830 PRINT"M      = ZURUECK INS MENUE"
  84. 840 PRINT"N      = KORREKTUR DER DATEN"
  85. 850 GETA$:IFA$=""THEN850
  86. 860 IFA$="N"THEN520
  87. 870 IFA$="M"THEND1=0:GOTO200
  88. 880 IFASC(A$)<>13THEN850
  89. 890 Z=0
  90. 900 FORB=XATOXESTEPDX/4
  91. 910 IFB=0THENN3=1
  92. 920 X$(Z)=STR$(B):Z=Z+1
  93. 930 NEXTB
  94. 940 REM EINTRAGUNG SKALENWERTE X IN BESCHRIFTUNGSVARIABLE T$(X)
  95. 950 Z=0
  96. 960 FORTZ=21TO61STEP10
  97. 970 FORB=0TOLEN(X$(Z))
  98. 980 T$(TZ+B)=MID$(X$(Z),1+B,1)+RIGHT$(T$(TZ+B),38)
  99. 990 NEXTB
  100. 1000 Z=Z+1
  101. 1010 NEXTTZ
  102. 1020 REM EINGABE UEBERSCHRIFT UND AUSWERTUNG
  103. 1030 T1$="":INPUT"UEBERSCHRIFT";T1$
  104. 1040 L1=LEN(T1$):IFL1=0THEN1110
  105. 1050 IFL1>40THENPRINT"TEXT ZU LANG":GOTO1030
  106. 1060 REM EINTRAGUNG UEBERSCHRIFT IN BESCHRIFTUNGSVARIABLE T$(X)
  107. 1070 FORB=38TO37+L1
  108. 1080 T$(B)=LEFT$(T$(B),38)+MID$(T1$,B-37,1)
  109. 1090 NEXTB
  110. 1100 REM PLOTTERINITIALISIERUNG ZUM ZEICHNEN DES DIAGRAMMS
  111. 1110 PRINT#1,"M",0,-200
  112. 1120 PRINT#4,CHR$(13)
  113. 1130 PRINT#1,"M",18,0:PRINT#1,"I"
  114. 1140 REM Y-ACHSE
  115. 1150 PRINT#1,"J",400,0
  116. 1160 FORB=400TO0STEP-100
  117. 1170 PRINT#1,"R",B,5
  118. 1180 PRINT#1,"J",B,-5
  119. 1190 NEXTB
  120. 1200 REM X-ACHSE
  121. 1210 FORB=0TO-800STEP-200
  122. 1220 PRINT#1,"R",-5,B
  123. 1230 PRINT#1,"J",5,B
  124. 1240 NEXTB
  125. 1250 PRINT#1,"R",0,-800
  126. 1260 PRINT#1,"J",0,0
  127. 1270 REM ACHSE X=0 (MIT BESCHRIFTUNG), FALLS NOTWENDIG
  128. 1280 IFXA>=0ORXE<=0THEN1350
  129. 1290 FX=800*XA/DX:PRINT#1,"R",-5,FX
  130. 1300 PRINT#1,"J",400,FX
  131. 1310 IFN3=1THEN1350
  132. 1320 N2=INT(22-FX/20):IFLEFT$(T$(N2),1)<>" "THEN1350
  133. 1330 T$(N2)="0"+RIGHT$(T$(N2),38)
  134. 1340 REM ACHSE Y=0 (MIT BESCHRIFTUNG), FALLS NOTWENDIG
  135. 1350 IFYA>=0ORYE<=0THEN1410
  136. 1360 FY=-400*YA/DY:PRINT#1,"R",FY,5
  137. 1370 PRINT#1,"J",FY,-800
  138. 1380 IFN1=1THEN1410
  139. 1390 N2=INT(1+FY/12):IFMID$(T$(20),N2,1)<>" "THEN1410
  140. 1400 T$(20)=LEFT$(T$(20),N2)+"0"+RIGHT$(T$(20),38-N2)
  141. 1410 L=.5:D=0:GOTO200
  142. 1420 REM ***
  143. 1430 REM *** LINIE ZEICHNEN
  144. 1440 REM ***
  145. 1450 REM ZEICHENTYP "R" ODER "J"
  146. 1460 IFL=.5THENC$="R":GOTO1490
  147. 1470 C$="J"
  148. 1480 REM KOORDINATEN- UND TEXTEINGABE MIT AUSWERTUNG
  149. 1490 INPUT"[147]LAENGENWERT (X)";X
  150. 1500 INPUT"HOEHENWERT (Y)";Y
  151. 1510 IFX<=XEANDX>=XAANDY<=YEANDY>=YATHEN1560
  152. 1520 PRINT"PUNKT LIEGT NICHT INNERHALB DES DIA-"
  153. 1530 PRINT"GRAMMS. SOLL TROTZDEM DIE LINIE GE-"
  154. 1540 PRINT"ZEICHNET WERDEN, DRUECKEN SIE RETURN"
  155. 1550 T1$="":GOTO1580
  156. 1560 T1$="":INPUT"TEXT";T1$
  157. 1570 IFLEN(T1$)>20THENPRINT"TEXT ZU LANG":T1$="":GOTO1560
  158. 1580 PRINT"RETURN = FUEHRT DIE ANWEISUNG AUS"
  159. 1590 PRINT"SH/RET = AUSFUEHRUNG, DANACH INS MENUE"
  160. 1600 PRINT"M      = ZURUECK INS MENUE"
  161. 1610 PRINT"N      = KORREKTUR DER DATEN"
  162. 1620 GETA$:IFA$=""THEN1620
  163. 1630 IFA$="N"THEN1490
  164. 1640 IFA$="M"THENW=0.5:L=0:GOTO200
  165. 1650 IFASC(A$)<>13ANDASC(A$)<>141THEN1620
  166. 1660 REM PLOTTERKOORDINATEN UND AUSFUEHRUNG
  167. 1670 FX=-800*(X-XA)/DX
  168. 1680 FY=400*(Y-YA)/DY
  169. 1690 PRINT#1,C$,FY,FX
  170. 1700 REM MARKIERUNGSKREUZ
  171. 1710 IFM=0THEN1760
  172. 1720 PRINT#5,0:PRINT#1,"R",FY+3,FX
  173. 1730 PRINT#1,"J",FY-3,FX:PRINT#1,"R",FY,FX+3
  174. 1740 PRINT#1,"J",FY,FX-3:PRINT#1,"R",FY,FX
  175. 1750 PRINT#5,G*8
  176. 1760 IFT1$=""THEN1910
  177. 1770 REM EINTRAGUNG TEXT IN FREIEN PLATZ DER BESCHRIFTUNGSVARIABLE T$(X)
  178. 1780 TS=INT(2+FY/12)
  179. 1790 TZ=INT(21-FX/20)
  180. 1800 V=0
  181. 1810 FORB=TZTOTZ-1+LEN(T1$)
  182. 1820 IFMID$(T$(TZ),TS,1)<>" "THENB=TZ-1+LEN(T1$):V=V+1:NEXTB:GOTO1840
  183. 1830 NEXTB:V=0
  184. 1840 IFV=1THENTS=TS+1:GOTO1810
  185. 1850 IFV=2THENTS=TS-2:GOTO1810
  186. 1860 IFV=3THENTS=TS+3:GOTO1810
  187. 1870 IFV=4THENPRINT"TEXT NICHT MOEGLICH":FORB=0TO300:NEXTB:GOTO1910
  188. 1880 FORB=TZTOTZ-1+LEN(T1$)
  189. 1890 T$(B)=LEFT$(T$(B),TS-1)+MID$(T1$,B+1-TZ,1)+RIGHT$(T$(B),39-TS)
  190. 1900 NEXTB
  191. 1910 IFASC(A$)=141THENW=.5:L=0:GOTO200
  192. 1920 GOTO1470
  193. 1930 REM ***
  194. 1940 REM *** DIAGRAMM AM ENDE DURCH BESCHRIFTUNG VERVOLLSTAENDIGEN
  195. 1950 REM ***
  196. 1960 IFD1=0THENRETURN
  197. 1970 PRINT#2,F1*4:PRINT#5,0
  198. 1980 PRINT#1,"M",0,410
  199. 1990 FORT=1TO80
  200. 2000 IFT$(T)="                                       "THENPRINT#4:NEXTT:RETURN
  201. 2010 IFRIGHT$(T$(T),38)="                                      "THEN2060
  202. 2020 IFRIGHT$(T$(T),29)="                             "THEN2070
  203. 2030 IFRIGHT$(T$(T),19)="                   "THEN2080
  204. 2040 IFRIGHT$(T$(T),10)="          "THEN2090
  205. 2050 PRINT#4,T$(T):NEXTT:RETURN
  206. 2060 PRINT#4,LEFT$(T$(T),1):NEXTT:RETURN
  207. 2070 PRINT#4,LEFT$(T$(T),10):NEXTT:RETURN
  208. 2080 PRINT#4,LEFT$(T$(T),20):NEXTT:RETURN
  209. 2090 PRINT#4,LEFT$(T$(T),29):NEXTT
  210. 2100 RETURN
  211. 2110 PRINT#7:CLOSE7:END
  212.