KU-BA-Graf
Mit diesem Programm können Sie Jahresbilanzen in Form von »Fieberkurven« und Blockgrafiken zu Papier bringen. Und das mit einer Auflösung, die fast siebenmal so hoch ist wie die des C 64, nämlich 800 mal 552 Punkte.
Das Programm kann unterteilt werden in einen Eingabe- und einen Ausgabedruckbereich. Zum Ausdruck der eingegebenen Werte wird das »Epson-Support«-Programm benötigt, das im Sonderheft 4 (Grafik) veröffentlicht wurde. Für diejenigen, die diese Ausgabe nicht haben, bringen wir noch einmal das MSE-Listing (Listing 1) zum »Epson Support«.
Mit »KU-BA-Graf« (Listing 2) können wahlweise ein, zwei oder drei Jahreswerte mit jeweils bis zu zwölf Unterwerten in Form einer ansteigenden »Fieber«-Kurve und einer Balkengrafik dargestellt werden. Als Maßstab wird eine sogenannte »Soll-Linie« gezogen, die das vorgegebene Monats- beziehungsweise Jahresziel darstellt. Dieses Jahresziel kann für alle drei Kurven unterschiedlich oder gleich sein, so daß ein absoluter und ein relativer Zahlenvergleich möglich ist. Die Jahres- oder Monats-Sollinie ist als dicke Gerade dargestellt.
Die Kurve 1 ist immer die aktuelle Jahreskurve und wird als »dicke« Strichkurve abgebildet. Die zu dieser Kurve gehörenden monatlichen und laufenden Zahlenangaben werden links beziehungsweise rechts neben der Rastergrafik ausgedruckt (siehe hierzu auch Bild 1).


Laden des Programms
LOAD " EPSON SUPPORT ",8,1
NEW
SYS 49152
LOAD "KU-BA-GRAF",8
RUN
Als erstes erscheint der Name des Programms.
Eingabebeschreibung
Frage: Anzahl der Kurven (1-3)?
Geben Sie bitte ein, ob Sie eine, zwei oder drei Kurven (sprich Jahre) miteinander vergleichen wollen.
Angaben für Kurve 1 (beziehungsweise 2 oder 3).
Frage: Sind Daten auf Disk gespeich. (j/n) ? j
Bestätigen Sie durch <RETURN>, falls »j«, dann müssen die Daten auf der Diskette vorher gespeichert worden sein. Sie werden dann nach dem Namen der sequentiellen Datei gefragt. Die Daten werden jetzt geladen.
Frage (wird nur bei Kurve 1 gestellt):
Ausdruck integer oder kaufmännisch (i/k) ?
Die Beantwortung dieser Frage beeinflußt den Zahlenausdruck für die aktuelle Jahreskurve.
i = (integer) Zahlenbereich von 0 bis 99999999
k = (kaufmännisch) Zahlenbereich von 0,01 bis 99999,99
Es werden die im Speicher befindlichen Werte für das Jahressoll und die Monate Januar bis Dezember ausgedruckt und müssen entweder durch RETURN bestätigt oder durch Überschreiben verändert werden.
Frage: Ausdruck bis Monat (1-12): ?
Hier können Sie für jede der drei Kurven bestimmen, welche Monate der entsprechenden Kurve ausgedruckt und welche unterdrückt werden sollen.
Frage: Daten auf Disk speichern ? (j/n) ? j
Durch RETURN bestätigen Sie das »j«, und die Werte werden gespeichert. Haben Sie die Frage nach dem Dateinamen vorher noch nicht beantworten müssen, so wird diese Frage jetzt gestellt. Für feststehende nicht zu korrigierende Daten kann hier auch ein <n> eingegeben werden; eine Speicherung erfolgt also nicht.
Es erfolgt ein Sprung in den Groß/Grafik-Modus, mit der
Frage: UEBERSCHRIFT (MAX. 17 ZEICHEN):
Sollten Sie eine längere als 17 Zeichen umfassende Überschrift wählen, so wird die Frage wiederholt.
Der Drucker arbeitet mit dem in Ausgabe 7/84 und im Grafik-Sonderheft 4/85 beschriebenen »Centronics-Schnittstellen-Kabel« zusammen. Der »Auto-Line-Feed« am Drucker muß ausgeschaltet sein (bei bestimmten Druckern nur im ausgeschalteten Zustand möglich!). Sollte das Programm mal mit RUN/STOP – RESTORE abgebrochen worden sein, so muß das »Epson-Support«-Programm mit SYS 49152 neu gestartet werden.
(Erhard Witte/ah)PROGRAMM : EPSON SUPPORT C000 C54E ----------------------------------- C000 : A9 1D A0 C0 8D 08 03 8C B6 C008 : 09 03 A9 FE A0 1F 85 33 5C C010 : 84 34 85 37 84 38 A9 A4 F1 C018 : A0 C4 4C 1E AB 20 73 00 7B C020 : C9 26 F0 06 20 79 00 4C 60 C028 : E7 A7 A2 FF A0 00 8C 62 8C C030 : 03 E8 C8 BD D7 C4 F0 17 27 C038 : D1 7A F0 F5 E8 BD D7 C4 A6 C040 : D0 FA EE 62 03 A0 00 BD 46 C048 : D8 C4 D0 E5 4C 08 AF 88 48 C050 : 18 98 65 7A 85 7A 90 02 CF C058 : E6 7B A9 A7 48 A9 E9 48 65 C060 : AD 62 03 0A AA BD 31 C5 29 C068 : 48 BD 30 C5 48 4C 73 00 08 C070 : A9 00 A0 20 85 FB 84 FC 8A C078 : 78 A9 34 85 01 A0 00 98 C9 C080 : 91 FB C8 D0 FB E6 FC A6 93 C088 : FC E0 C0 D0 F3 A2 C8 86 C3 C090 : FC 91 FB C8 D0 FB E6 FC EF C098 : D0 F7 A9 37 85 01 58 60 38 C0A0 : A9 00 8D 62 03 20 4E C3 EB C0A8 : 8D 3C 03 8C 3D 03 20 4B A9 C0B0 : C3 C0 02 90 05 C9 28 90 C6 C0B8 : 01 60 8D 3E 03 8C 3F 03 AC C0C0 : A0 03 18 4E 3F 03 6E 3E F4 C0C8 : 03 88 D0 F6 18 AD 3E 03 10 C0D0 : 69 20 85 FC AD 3E 03 85 2E C0D8 : FB 0A 65 FC 85 FC A9 00 B8 C0E0 : 06 FB 2A 06 FB 2A 06 FB 50 C0E8 : 2A 06 FB 2A 06 FB 2A 65 0D C0F0 : FC 85 FC A5 14 29 07 AA 9F C0F8 : BD 88 C4 8D 63 03 AD 3C 5A C100 : 03 AC 3D 03 C0 03 90 05 7A C108 : C9 20 90 01 60 65 FB 85 52 C110 : FB 98 65 FC C9 C0 90 02 39 C118 : 69 07 85 FC 78 A9 34 85 B6 C120 : 01 A0 00 2C 62 03 10 1C AE C128 : 50 10 AD 63 03 A2 00 31 00 C130 : FB F0 01 CA 8E 62 03 4C DE C138 : 59 C1 AD 63 03 51 FB 91 17 C140 : FB 4C 59 C1 50 0C AD 63 D3 C148 : 03 49 FF 31 FB 91 FB 4C EB C150 : 59 C1 AD 63 03 11 FB 91 2D C158 : FB A9 37 85 01 58 60 78 EC C160 : A9 FF 8D 03 DD AD 02 DD DC C168 : 09 04 8D 02 DD AD 00 DD 1E C170 : 09 04 8D 00 DD A9 10 8D 65 C178 : 0D DD AD 0D DD 58 A2 05 B6 C180 : BD 90 C4 20 F1 C1 CA 10 33 C188 : F7 A9 00 A0 20 85 FB 84 8F C190 : FC A9 00 85 FD A2 00 BD 82 C198 : 96 C4 20 F1 C1 E8 E0 0E DA C1A0 : D0 F5 A2 00 20 C7 C1 E8 2D C1A8 : D0 FA 20 C7 C1 E8 D0 FA 93 C1B0 : 20 C7 C1 E8 D0 FA 20 C7 36 C1B8 : C1 E8 E0 20 D0 F8 E6 FD 96 C1C0 : A5 FD C9 45 D0 CF 60 78 7D C1C8 : A9 34 85 01 18 A5 FB 69 7E C1D0 : 00 85 FE A5 FC 69 08 85 4D C1D8 : FF A0 00 A5 FC C9 C0 B0 5F C1E0 : 03 B1 FB 2C B1 FE E6 FB E7 C1E8 : D0 02 E6 FC A0 37 84 01 EA C1F0 : 58 8D 01 DD AD 00 DD 29 AF C1F8 : FB 8D 00 DD 09 04 8D 00 5D C200 : DD AD 0D DD 29 10 F0 F9 7E C208 : 18 60 A9 00 8D 62 03 A9 06 C210 : 00 8D 6B 03 20 4E C3 8D B1 C218 : 50 03 8C 51 03 20 4B C3 1D C220 : 8D 52 03 8C 53 03 20 4B 8D C228 : C3 8D 54 03 8C 55 03 20 E7 C230 : 4B C3 8D 56 03 8C 57 03 83 C238 : A2 01 A0 00 38 AD 54 03 CB C240 : ED 50 03 8D 5C 03 AD 55 07 C248 : 03 ED 51 03 8D 5D 03 10 E7 C250 : 18 CA CA 88 49 FF 8D 5D 16 C258 : 03 AD 5C 03 49 FF 8D 5C 2D C260 : 03 EE 5C 03 D0 03 EE 5D ED C268 : 03 8E 58 03 8C 59 03 A2 0E C270 : 01 A0 00 38 AD 56 03 ED 3E C278 : 52 03 8D 5E 03 AD 57 03 7C C280 : ED 53 03 8D 5F 03 10 18 08 C288 : CA CA 88 49 FF 8D 5F 03 F2 C290 : AD 5E 03 49 FF 8D 5E 03 42 C298 : EE 5E 03 D0 03 EE 5F 03 BB C2A0 : 8E 5A 03 8C 5B 03 A0 00 FE C2A8 : AD 5C 03 0D 5D 03 D0 01 19 C2B0 : 88 8C 60 03 8C 61 03 AD 32 C2B8 : 50 03 AC 51 03 8D 3C 03 73 C2C0 : 8C 3D 03 AD 52 03 AC 53 F8 C2C8 : 03 85 14 84 15 20 5F C4 7D C2D0 : 20 B1 C0 AD 50 03 CD 54 AC C2D8 : 03 D0 19 AD 51 03 CD 55 4E C2E0 : 03 D0 11 AD 52 03 CD 56 66 C2E8 : 03 D0 09 AD 53 03 CD 57 7F C2F0 : 03 D0 01 60 2C 61 03 10 A2 C2F8 : 29 18 AD 52 03 6D 5A 03 EE C300 : 8D 52 03 AD 53 03 6D 5B E7 C308 : 03 8D 53 03 18 AD 60 03 7E C310 : 6D 5C 03 8D 60 03 AD 61 B5 C318 : 03 6D 5D 03 8D 61 03 4C 12 C320 : B7 C2 18 AD 50 03 6D 58 78 C328 : 03 8D 50 03 AD 51 03 6D B3 C330 : 59 03 8D 51 03 38 AD 60 02 C338 : 03 ED 5E 03 8D 60 03 AD 6D C340 : 61 03 ED 5F 03 8D 61 03 B2 C348 : 4C B7 C2 20 FD AE 20 8A 0F C350 : AD 20 F7 B7 A5 14 A4 15 BA C358 : 60 A9 40 4C A2 C0 A9 80 FE C360 : 4C A2 C0 A9 40 4C 0C C2 7F C368 : A9 80 4C 0C C2 A0 A7 A9 09 C370 : E4 8D 08 03 8C 09 03 38 0B C378 : 20 99 FF 86 37 84 38 4C 47 C380 : 9A E3 A9 80 2C A9 40 2C F0 C388 : A9 00 8D 62 03 20 4E C3 D3 C390 : 8D 50 03 8C 51 03 20 4B DC C398 : C3 8D 52 03 8C 53 03 20 C7 C3A0 : 40 C4 D0 01 60 8D 6A 03 B9 C3A8 : 8C 69 03 AC 69 03 B1 64 7D C3B0 : C9 20 90 0B C9 40 90 09 02 C3B8 : C9 60 B0 03 29 1F 2C A9 CD C3C0 : 20 85 02 A9 1A 06 02 2A 87 C3C8 : 06 02 2A 06 02 2A 85 03 A8 C3D0 : 78 A9 31 85 01 A0 07 B1 AE C3D8 : 02 99 00 02 88 10 F8 A9 27 C3E0 : 37 85 01 58 A9 00 8D 67 C5 C3E8 : 03 A9 07 8D 68 03 AE 68 5E C3F0 : 03 BD 00 02 AE 67 03 3D BF C3F8 : 88 C4 F0 1E AD 50 03 AC A5 C400 : 51 03 8D 3C 03 8C 3D 03 4D C408 : AC 53 03 AD 68 03 18 6D AE C410 : 52 03 85 14 90 01 C8 20 3C C418 : B1 C0 CE 68 03 10 CF EE B8 C420 : 50 03 D0 03 EE 51 03 EE EA C428 : 67 03 AE 67 03 E0 08 D0 A2 C430 : B8 EE 69 03 AD 69 03 CD E8 C438 : 6A 03 D0 01 60 4C AB C3 17 C440 : 20 FD AE 20 9E AD 20 A3 2E C448 : B6 A0 00 B1 64 85 63 C8 16 C450 : B1 64 AA C8 B1 64 85 65 16 C458 : 86 64 A0 00 A5 63 60 2C 88 C460 : 6B 03 30 01 60 A2 F0 8E 75 C468 : 62 03 20 B1 C0 AD 52 03 53 C470 : AC 53 03 85 14 2C 62 03 6A C478 : 10 03 68 68 60 A2 00 8E 69 C480 : 62 03 60 A9 FF 4C 11 C2 DD C488 : 80 40 20 10 08 04 02 01 DD C490 : 0D 08 41 1B 38 1B 0A 0D F4 C498 : 20 20 20 20 20 20 20 1B 8E C4A0 : 2A 01 20 03 45 50 53 4F 76 C4A8 : 4E 2D 53 55 50 50 4F 52 76 C4B0 : 54 20 20 56 31 2E 37 20 89 C4B8 : 20 2A 2A 2A 0D 20 20 31 72 C4C0 : 39 38 35 20 56 4F 4E 20 C0 C4C8 : 41 4C 45 58 20 44 45 4C 5E C4D0 : 20 50 49 4E 4F 0D 00 43 18 C4D8 : 4C 45 41 52 00 44 4F 54 6A C4E0 : 00 52 45 53 45 54 44 4F 6C C4E8 : 54 00 49 4E 56 44 4F 54 C6 C4F0 : 00 4C 49 4E 45 00 52 45 5B C4F8 : 53 45 54 4C 49 4E 45 00 A9 C500 : 49 4E 56 4C 49 4E 45 00 AC C508 : 99 00 45 58 49 54 00 54 DE C510 : 45 58 54 00 49 4E 56 54 A0 C518 : 45 58 54 00 52 45 53 45 C6 C520 : 54 54 45 58 54 00 53 43 14 C528 : 41 4E 4C 49 4E 45 00 00 DC C530 : 6F C0 9F C0 58 C3 5D C3 A0 C538 : 09 C2 62 C3 67 C3 5E C1 45 C540 : 6C C3 87 C3 81 C3 84 C3 B8 C548 : 82 C4 00 00 C9 00 73
10 poke53272,23:poke53280,7:poke53281,7
20 print"{clr}{down}{down}{blk}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}{CBM-P}";
25 print"{rvon}****************************************";
30 print"*** Kurven- u. Balkengraphik ***";
35 print"****************************************{rvof}";
40 print"{down}{down} (c) E. Witte 1985"
50 print"{down}{down}{down} Unterprogramm fuer"
60 print"{down} Epson-Support"
70 print"{down} (c) 64'er"
80 print"{down}{down}{down} {rvon} * TASTE * {rvof}"
90 getx$:ifx$=""then90
100 input"{clr}{down}Wieviel Kurven (1 - 3) :";k
110 dima(12,k-1):forx=1tok:gosub120:next:goto290
120 print"{clr} Angaben fuer Kurve";x
130 input"{down}Sind Daten auf Disk gespeich.(j/n) j{left}{left}{left}";x$:ifx$<>"j"then160
140 print"{down}Name der Datei (max. 15 Zeichen):":inputy$(x)
150 open2,8,2,y$(x)+",s,r":fory=0to12:input#2,a(y,x-1):next:close2
160 ifx=1theninput"{down}{down}Ausdruck integer od. kaufm. (i/k) :";a$
170 print"{clr} Angaben fuer Kurve";x
180 print"{down}{down}Jahressoll:";a(0,x-1):print"Januar :";a(1,x-1):print"Februar :"a(2,x-1)
190 print"Maerz :";a(3,x-1):print"April :";a(4,x-1):print"Mai :"a(5,x-1)
200 print"Juni :";a(6,x-1):print"Juli :";a(7,x-1):print"August :"a(8,x-1)
210 print"September :";a(9,x-1):print"Oktober :";a(10,x-1):print"November :"a(11,x-1)
220 print"Dezember :";a(12,x-1):print"{down}{down}Ausdruck bis Monat (1-12):"
230 print"{down}{down}Daten auf Disk speichern ? (j/n)"
240 print"{home}{down}{down}":fory=0to12:input"{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}";a(y,x-1):next
250 input"{down}{down}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}";m(x)
260 input"{down}{down}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}j{left}{left}{left}";y$:ify$<>"j"then280
270 ifx$<>"j"thenprint"{down}Name der Datei (max. 15 Zeichen):":inputy$(x)
275 open2,8,2,"@:"+y$(x)+",s,w":fory=0to12:print#2,a(y,x-1):next:close2
280 y$="":return
290 poke53272,21:print"{clr}{down}{down}{down}ueberschrift (max. 17 zeichen):":inputy$:iflen(y$)>17then290
295 y=int((17-len(y$))/2):x$=" ":y$=left$(x$,y)+y$+left$(x$,y)
300 rem raster-graphik
320 &clear:&line0,0,799,0:&line799,0,799,531:&line799,531,0,531:&line0,531,0,0
330 &line1,1,798,1:&line798,1,798,530:&line798,530,1,530:&line1,530,1,1
340 forx=99to699step10:fory=40to480step10:&dotx,y:print".";:next:next
350 forx=104to694step10:fory=60to480step30:&dotx,y:print".";:next:next
360 forx=99to699step50:fory=45to485step10:&dotx,y:print".";:next:next
370 &line99,480,699,150:&line319,30,455,30
380 x=145:y=490:&textx,y,"j":&textx,y+10,"a":&textx,y+20,"n"
390 x=x+50:&textx,y,"f":&textx,y+10,"e":&textx,y+20,"b"
400 x=x+50:&textx,y,"m":&textx,y+10,"r":&textx,y+20,"z"
410 x=x+50:&textx,y,"a":&textx,y+10,"p":&textx,y+20,"r"
420 x=x+50:&textx,y,"m":&textx,y+10,"a":&textx,y+20,"i"
430 x=x+50:&textx,y,"j":&textx,y+10,"u":&textx,y+20,"n"
440 x=x+50:&textx,y,"j":&textx,y+10,"u":&textx,y+20,"l"
450 x=x+50:&textx,y,"a":&textx,y+10,"u":&textx,y+20,"g"
460 x=x+50:&textx,y,"s":&textx,y+10,"e":&textx,y+20,"p"
470 x=x+50:&textx,y,"o":&textx,y+10,"k":&textx,y+20,"t"
480 x=x+50:&textx,y,"n":&textx,y+10,"o":&textx,y+20,"v"
490 x=x+50:&textx,y,"d":&textx,y+10,"e":&textx,y+20,"z"
500 &invtext40,30,"mtl.":&invtext729,30,"lfd.":&invtext319,20,y$
510 rem einzelpunkt-graphik
520 forv=1tok:x=99:y=480
530 forz=1tom(v):x1=x+50:y1=y-int(330*a(z,v-1)/a(0,v-1)):ify1<0theny1=0
535 ifv>1thengosub700:goto545
540 q=q+a(z,v-1):&linex,y,x1,y1:gosub560
545 x=x+50:y=y1:next:next
550 &print:gosub750:print"{clr}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down} e n d e":end
560 rem *** werte-druck ***
565 i=1:ifa$="k"theni=100
570 x$=" ":z$=right$(x$,9-len(str$(q*i)))+str$(q*i):v$=".":v1$=v$
580 q$=right$(x$,9-len(str$(a(z,v-1)*i)))+str$(a(z,v-1)*i):ifa$="k"then630
585 ifq<1000ora(z,v-1)<1000thenv1$=" "
590 v$=".":ifleft$(z$,3)=" "thenv$=" "
600 z$=left$(z$,3)+v$+mid$(z$,4,3)+v1$+right$(z$,3):&text699,y1-4,z$
610 v$=".":ifleft$(q$,3)=" "thenv$=" "
620 q$=left$(q$,3)+v$+mid$(q$,4,3)+v1$+right$(q$,3):&text0,y1-4,q$:return
630 v$=".":ifleft$(z$,4)=" "thenv$=" "
640 z$=left$(z$,4)+v$+mid$(z$,5,3)+","+right$(z$,2):&text699,y1-4,z$
650 v$=".":ifleft$(q$,4)=" "thenv$=" "
660 q$=left$(q$,4)+v$+mid$(q$,5,3)+","+right$(q$,2):&text0,y1-4,q$:return
700 rem *** punkt-kurve ***
710 b=y-y1:fora1=0to50:b1=int(b/50*a1+.5):b2=int(b/50*(a1+v)+.5)
720 ifv>2then740
730 &dotx+a1,y-b1:print"*";:a1=a1+1:next: return
740 &linex+a1,y-b1,x+a1+v,y-b2:a1=a1+v+5:print"*";:next:return
750 rem *** balkengraphik ***
760 &clear:&line0,0,799,0:&line799,0,799,180:&line799,180,0,180:&line0,180,0,0
770 &line1,1,798,1:&line798,1,798,179:&line798,179,1,179:&line1,179,1,1
780 forx=99to699step10:fory=20to160step10:&dotx,y:print".";:next:next
790 forx=99to699step50:fory=25to155step10:&dotx,y:print".";:next:next
800 &line79,90,719,90:&text30,86,"soll":&text749,86,"soll"
810 x=120:y=165:&textx,y,"j":x=x+50:&textx,y,"f":x=x+50:&textx,y,"m"
820 x=x+50:&textx,y,"a":x=x+50:&textx,y,"m":x=x+50:&textx,y,"j"
830 x=x+50:&textx,y,"j":x=x+50:&textx,y,"a":x=x+50:&textx,y,"s"
840 x=x+50:&textx,y,"o":x=x+50:&textx,y,"n":x=x+50:&textx,y,"d"
850 i=30/k:forv=1tok:x=109:ifv>1thenx=x+i:ifv>2thenx=x+i
860 forz=1tom(v):y=160:x1=x+i:y1=y-int(840*a(z,v-1)/a(0,v-1)):ify1<0theny1=0
870 forq=y1toystepv:&linex,q,x1,q:next:x=x+50:next:next:&print:return
10 POKE 53272,23:POKE 53280,7:POKE 53281,7 20 PRINT"{CLR,2DOWN,BLACK}PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP"; 25 PRINT"{RVSON}****************************************"; 30 PRINT"***{5SPACE}KURVEN- U. BALKENGRAPHIK{5SPACE}***"; 35 PRINT"****************************************{RVOFF}"; 40 PRINT"{2DOWN,11SPACE}(C){2SPACE}E. WITTE 1985" 50 PRINT"{3DOWN,11SPACE}UNTERPROGRAMM FUER" 60 PRINT"{DOWN,13SPACE}EPSON-SUPPORT" 70 PRINT"{DOWN,14SPACE}(C){2SPACE}64'ER" 80 PRINT"{3DOWN,14SPACE,RVSON,SPACE}* TASTE *{SPACE,RVOFF}" 90 GET X$:IF X$="" THEN90 100 INPUT"{CLR,DOWN}WIEVIEL KURVEN (1 - 3) :";K 110 DIM A(12,K-1):FOR X=1 TOK:GOSUB 120:NEXT :GOTO 290 120 PRINT"{CLR,9SPACE}ANGABEN FUER KURVE";X 130 INPUT"{DOWN}SIND DATEN AUF DISK GESPEICH.(J/N){SPACE,2SPACE}J{3LEFT}";X$:IF X$<>"J" THEN160 140 PRINT"{DOWN}NAME DER DATEI (MAX. 15 ZEICHEN):":INPUTY$(X) 150 OPEN 2,8,2,Y$(X)+",S,R":FOR Y=0 TO12:INPUT#2,A(Y,X-1):NEXT :CLOSE 2 160 IF X=1 THENINPUT"{2DOWN}AUSDRUCK INTEGER OD. KAUFM. (I/K) :";A$ 170 PRINT"{CLR,9SPACE}ANGABEN FUER KURVE";X 180 PRINT"{2DOWN}JAHRESSOLL:";A(0,X-1):PRINT"JANUAR{4SPACE}:";A(1,X-1):PRINT"FEBRUAR{3SPACE}:"A(2,X-1) 190 PRINT"MAERZ{5SPACE}:";A(3,X-1):PRINT"APRIL{5SPACE}:";A(4,X-1):PRINT"MAI{7SPACE}:"A(5,X-1) 200 PRINT"JUNI{6SPACE}:";A(6,X-1):PRINT"JULI{6SPACE}:";A(7,X-1):PRINT"AUGUST{4SPACE}:"A(8,X-1) 210 PRINT"SEPTEMBER :";A(9,X-1):PRINT"OKTOBER{3SPACE}:";A(10,X-1):PRINT"NOVEMBER{2SPACE}:"A(11,X-1) 220 PRINT"DEZEMBER{2SPACE}:";A(12,X-1):PRINT"{2DOWN}AUSDRUCK BIS MONAT (1-12):" 230 PRINT"{2DOWN}DATEN AUF DISK SPEICHERN ? (J/N)" 240 PRINT"{HOME,2DOWN}":FOR Y=0 TO12:INPUT"{10RIGHT}";A(Y,X-1):NEXT 250 INPUT"{2DOWN,27RIGHT}";M(X) 260 INPUT"{2DOWN,34RIGHT}J{3LEFT}";Y$:IF Y$<>"J" THEN280 270 IF X$<>"J" THENPRINT"{DOWN}NAME DER DATEI (MAX. 15 ZEICHEN):":INPUTY$(X) 275 OPEN 2,8,2,"@:"+Y$(X)+",S,W":FOR Y=0 TO12:PRINT#2,A(Y,X-1):NEXT :CLOSE 2 280 Y$="":RETURN 290 POKE 53272,21:PRINT"{CLR,3DOWN}UEBERSCHRIFT{3SPACE}(MAX. 17 ZEICHEN):":INPUTY$:IF LEN (Y$)>17 THEN290 295 Y=INT ((17-LEN (Y$))/2):X$="{9SPACE}":Y$=LEFT$ (X$,Y)+Y$+LEFT$ (X$,Y) 300 REM RASTER-GRAPHIK 320 &CLEAR:&LINE0,0,799,0:&LINE799,0,799,531:&LINE799,531,0,531:&LINE0,531,0,0 330 &LINE1,1,798,1:&LINE798,1,798,530:&LINE798,530,1,530:&LINE1,530,1,1 340 FOR X=99 TO699STEP 10:FOR Y=40 TO480STEP 10:&DOTX,Y:PRINT".";:NEXT :NEXT 350 FOR X=104 TO694STEP 10:FOR Y=60 TO480STEP 30:&DOTX,Y:PRINT".";:NEXT :NEXT 360 FOR X=99 TO699STEP 50:FOR Y=45 TO485STEP 10:&DOTX,Y:PRINT".";:NEXT :NEXT 370 &LINE99,480,699,150:&LINE319,30,455,30 380 X=145:Y=490:&TEXTX,Y,"J":&TEXTX,Y+10,"A":&TEXTX,Y+20,"N" 390 X=X+50:&TEXTX,Y,"F":&TEXTX,Y+10,"E":&TEXTX,Y+20,"B" 400 X=X+50:&TEXTX,Y,"M":&TEXTX,Y+10,"R":&TEXTX,Y+20,"Z" 410 X=X+50:&TEXTX,Y,"A":&TEXTX,Y+10,"P":&TEXTX,Y+20,"R" 420 X=X+50:&TEXTX,Y,"M":&TEXTX,Y+10,"A":&TEXTX,Y+20,"I" 430 X=X+50:&TEXTX,Y,"J":&TEXTX,Y+10,"U":&TEXTX,Y+20,"N" 440 X=X+50:&TEXTX,Y,"J":&TEXTX,Y+10,"U":&TEXTX,Y+20,"L" 450 X=X+50:&TEXTX,Y,"A":&TEXTX,Y+10,"U":&TEXTX,Y+20,"G" 460 X=X+50:&TEXTX,Y,"S":&TEXTX,Y+10,"E":&TEXTX,Y+20,"P" 470 X=X+50:&TEXTX,Y,"O":&TEXTX,Y+10,"K":&TEXTX,Y+20,"T" 480 X=X+50:&TEXTX,Y,"N":&TEXTX,Y+10,"O":&TEXTX,Y+20,"V" 490 X=X+50:&TEXTX,Y,"D":&TEXTX,Y+10,"E":&TEXTX,Y+20,"Z" 500 &INVTEXT40,30,"MTL.":&INVTEXT729,30,"LFD.":&INVTEXT319,20,Y$ 510 REM EINZELPUNKT-GRAPHIK 520 FOR V=1 TOK:X=99:Y=480 530 FOR Z=1 TOM(V):X1=X+50:Y1=Y-INT (330*A(Z,V-1)/A(0,V-1)):IF Y1<0 THENY1=0 535 IF V>1 THENGOSUB 700:GOTO 545 540 Q=Q+A(Z,V-1):&LINEX,Y,X1,Y1:GOSUB 560 545 X=X+50:Y=Y1:NEXT :NEXT 550 &PRINT:GOSUB 750:PRINT"{CLR,10DOWN,13SPACE}E N D E":END 560 REM *** WERTE-DRUCK *** 565 I=1:IF A$="K" THENI=100 570 X$="{8SPACE}":Z$=RIGHT$ (X$,9-LEN (STR$ (Q*I)))+STR$ (Q*I):V$=".":V1$=V$ 580 Q$=RIGHT$ (X$,9-LEN (STR$ (A(Z,V-1)*I)))+STR$ (A(Z,V-1)*I):IF A$="K" THEN630 585 IF Q<1000OR A(Z,V-1)<1000 THENV1$=" " 590 V$=".":IF LEFT$ (Z$,3)="{3SPACE}" THENV$=" " 600 Z$=LEFT$ (Z$,3)+V$+MID$ (Z$,4,3)+V1$+RIGHT$ (Z$,3):&TEXT699,Y1-4,Z$ 610 V$=".":IF LEFT$ (Q$,3)="{3SPACE}" THENV$=" " 620 Q$=LEFT$ (Q$,3)+V$+MID$ (Q$,4,3)+V1$+RIGHT$ (Q$,3):&TEXT0,Y1-4,Q$:RETURN 630 V$=".":IF LEFT$ (Z$,4)="{4SPACE}" THENV$=" " 640 Z$=LEFT$ (Z$,4)+V$+MID$ (Z$,5,3)+","+RIGHT$ (Z$,2):&TEXT699,Y1-4,Z$ 650 V$=".":IF LEFT$ (Q$,4)="{4SPACE}" THENV$=" " 660 Q$=LEFT$ (Q$,4)+V$+MID$ (Q$,5,3)+","+RIGHT$ (Q$,2):&TEXT0,Y1-4,Q$:RETURN 700 REM *** PUNKT-KURVE *** 710 B=Y-Y1:FOR A1=0 TO50:B1=INT (B/50*A1+.5):B2=INT (B/50*(A1+V)+.5) 720 IF V>2 THEN740 730 &DOTX+A1,Y-B1:PRINT"*";:A1=A1+1:NEXT : RETURN 740 &LINEX+A1,Y-B1,X+A1+V,Y-B2:A1=A1+V+5:PRINT"*";:NEXT :RETURN 750 REM *** BALKENGRAPHIK *** 760 &CLEAR:&LINE0,0,799,0:&LINE799,0,799,180:&LINE799,180,0,180:&LINE0,180,0,0 770 &LINE1,1,798,1:&LINE798,1,798,179:&LINE798,179,1,179:&LINE1,179,1,1 780 FOR X=99 TO699STEP 10:FOR Y=20 TO160STEP 10:&DOTX,Y:PRINT".";:NEXT :NEXT 790 FOR X=99 TO699STEP 50:FOR Y=25 TO155STEP 10:&DOTX,Y:PRINT".";:NEXT :NEXT 800 &LINE79,90,719,90:&TEXT30,86,"SOLL":&TEXT749,86,"SOLL" 810 X=120:Y=165:&TEXTX,Y,"J":X=X+50:&TEXTX,Y,"F":X=X+50:&TEXTX,Y,"M" 820 X=X+50:&TEXTX,Y,"A":X=X+50:&TEXTX,Y,"M":X=X+50:&TEXTX,Y,"J" 830 X=X+50:&TEXTX,Y,"J":X=X+50:&TEXTX,Y,"A":X=X+50:&TEXTX,Y,"S" 840 X=X+50:&TEXTX,Y,"O":X=X+50:&TEXTX,Y,"N":X=X+50:&TEXTX,Y,"D" 850 I=30/K:FOR V=1 TOK:X=109:IF V>1 THENX=X+I:IF V>2 THENX=X+I 860 FOR Z=1 TOM(V):Y=160:X1=X+I:Y1=Y-INT (840*A(Z,V-1)/A(0,V-1)):IF Y1<0 THENY1=0 870 FOR Q=Y1 TOYSTEP V:&LINEX,Q,X1,Q:NEXT :X=X+50:NEXT :NEXT :&PRINT:RETURN