home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er Special 34
/
64er_Magazin_Sonderheft_34_19xx_Markt__Technik_de_Disk_2_of_2_Side_A.d64
/
noten
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-10-26
|
23KB
|
865 lines
0 poke53248+21,0
1 hf=6:rf=2:qf=7:poke53281,hf:poke53280,rf:poke646,qf:print"[147]";
2 open127,8,127:close127:ifst>=0then10
3 print"[147]laufwerk ein+[cr]"
4 getw$:ifw$<>chr$(13)then4
5 goto2
10 printchr$(9);chr$(142);chr$(8)
15 iff=0thenf=1:load"obj.markass.",8,1
16 dim w$(40),fa$(30),ve(30,2)
17 dim dt$(30),ar(30),no(30)
20 goto10000
30 rem ******************************
40 rem *** unterprogramme ***
50 rem ******************************
60 rem ------------------------------
70 rem --- bildschirm loeschen ---
80 rem ------------------------------
90 print"[147]";
100 print"[213][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][201]";
110 print"[194] >>> markassistant <<< [194]";
120 print"[194] [163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163] [194]";
125 print"[194] (c) 1986 von robert bielig [194]";
130 print"[171][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][179]";
150 fori=1to15
160 print"[194] [194]";
170 nexti
180 print"[171][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][178][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][178][195][195][195][179]";
190 print"[194]geladene daten [194] [194] [194]";
200 print"[171][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][219][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][177][195][195][195][179]";
210 print"[194]diskstatus [194] [194]";
220 print"[202][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][177][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195]";
230 poke2023,75:return
240 rem -----------------------------
250 rem --- sprites on ---
260 rem -----------------------------
270 vi=53248:poke2040,13:pokevi+21,3:pokevi+16,1:pokevi,47:pokevi+1,60
280 poke2041,13:pokevi+2,40:pokevi+3,60:pokevi+39,1:pokevi+40,1:return
290 rem -----------------------------
300 rem --- bildschirm loeschen ---
310 rem -----------------------------
320 sys49155
330 sys49152,18,21:printleft$(ge$+lo$,16)
335 sys49152,36,21:print" [157][157][157]";ge%;
340 sys49152,17,23:printd1;d2$;
350 return
360 rem -----------------------------
370 rem --- diskstatus ---
380 rem -----------------------------
390 gosub920
420 open10,8,15:input#10,d1,d2$,d3,d4:close10
430 sys49152,17,23:printleft$(lo$,22);
435 sys49152,17,23:printd1;d2$;
440 return
450 rem -----------------------------
460 rem --- allroundmenue ---
470 rem -----------------------------
480 gosub320:an=val(m$(y,x,0)):ob=13-an:re=0
490 sys49152,0,ob
500 fora=0toan-1
505 sys49152,(20-len(m$(y,x,a+1))/2),2*a+ob:printm$(y,x,a+1):next
510 sys49152,(20-len(m$(y,x,1))/2),ob:print"";m$(y,x,1);"[146]"
520 y1=1:y2=1
530 getw$
540 ifw$=" "orw$=""theny2=y2+1
550 ifw$="[145]"theny2=y2-1
555 ifw$="[137]"thenre=1:return
560 ifw$=chr$(13)orw$="[133]"thenreturn
570 ify2=y1then530
580 ify2>antheny2=1
590 ify2<1theny2=an
600 sys49152,(20-len(m$(y,x,y1))/2),y1*2+ob-2:printm$(y,x,y1)
610 sys49152,(20-len(m$(y,x,y2))/2),y2*2+ob-2:print""m$(y,x,y2)"[146]"
620 y1=y2:goto530
630 rem -----------------------------
640 rem --- input routine ---
650 rem -----------------------------
660 gosub830
665 f2=0:fori=1toaz
670 ss=1024+40*ze+sp
680 pokess,peek(ss)or128:sys49152,sp,ze
690 getw$(i):ifw$(i)=""then690
700 a=asc(w$(i))
710 ifa=157ora=29ora=145ora=17ora=147ora=19ora=148then690
715 ifa>132anda<141then690
720 ifw$(i)=chr$(20)andi>1thenw$(i)="[157] [157][157]":sp=sp-2:f2=-2:goto750
730 ifw$(i)=chr$(20)then690
740 ifw$(i)=chr$(13)thenprint" ";:goto770
750 printw$(i);:sp=sp+1:i=i+f2:f2=0
760 nexti
770 ee$="":fora=1toi-1:ee$=ee$+w$(a):next
780 ifee$=chr$(13)thenee$=""
790 return
800 rem ----------------------------
810 rem --- eingabekasten ---
820 rem ----------------------------
830 sys49152,sp-1,ze-1
840 a$="":fori=0toaz:a$=a$+"[195]":nexti
850 sys49152,sp-1,ze-1:print"[176]";a$;"[174]"
860 sys49152,sp-1,ze:print"[194]";
865 sys49152,sp+az+1,ze:print"[194]";
870 sys49152,sp-1,ze+1:print"[173]";a$;"[189]"
880 return
890 rem -----------------------------
900 rem --- floppy an ? ---
910 rem -----------------------------
920 f1=0
930 open127,8,127:close127
940 ifst>=0thenreturn
950 iff1=0thenf1=1:sys49152,18,23:print"laufwerk ein + [cr]"
960 iff1=1thenf1=0:sys49152,18,23:print"laufwerk ein + [cr][146]"
970 getw$:ifw$<>chr$(13)then950
975 sys49152,17,23:printleft$(lo$,22)
980 goto920
990 rem ----------------------------
1000 rem --- recordzeiger posit. ---
1010 rem ----------------------------
1020 h=int(rn/256):l=rn-h*256
1030 print#15,"p"+chr$(5)+chr$(l)+chr$(h)+chr$(0)
1040 return
1050 rem ----------------------------
1060 rem --- fach bestimmen+laden ---
1070 rem ----------------------------
1080 f=0:for i=0 to az% step 5
1090 gosub320:za=2
1095 sys49152,3,6:print"0 ...seite weiter"
1097 sys49152,3,8:print"1 ...seite zurueck"
1100 for a=i to i+4
1110 sys49152,2,6+2*za
1115 iffa$(a)=""thenf=1:goto1140
1120 printza;"...";fa$(a):za=za+1
1130 nexta
1135 iffa$(a)=""thenf=1
1140 getw$:ifval(w$)<=(a-i+1)andval(w$)>1then1160
1145 ifval(w$)=1andi>0theni=i-5:f=0:goto1090
1150 ifw$="0"andf=0thennexti
1157 goto1140
1160 fa%=i+val(w$)-2
1170 gosub1460
1300 ify=3then10670
1310 ify=2then10610
1320 rem ----------------------------
1330 rem --- warten auf leer ---
1340 rem ----------------------------
1350 poke1024+22*40+16,113
1360 poke1024+24*40+16,67
1365 l$(1)=" bitte leertaste druecken "
1366 l$(2)=""+l$(1)+"[146]"
1370 fori=1to2
1380 getw$:ifw$=" "thenreturn
1390 sys49152,1,23:printl$(i);
1400 forw=1to250:next
1410 next
1420 goto1370
1430 rem ----------------------------
1440 rem --- fachnoten laden ---
1450 rem ----------------------------
1460 ge%=0:ge$=fa$(fa%)
1470 gosub320:gosub920
1480 a$="noten werden geladen[146]"
1490 sys49152,20-(len(a$)/2),11:printa$
1500 gosub920:open5,8,5,"not."+da$+",l,"+chr$(13)
1510 open15,8,15
1520 rn=(fa%*30)+1:ge%=0:ge$=fa$(fa%)
1521 ifpeek(vi+21)thengosub2250
1530 gosub1020
1540 input#5,a$
1550 ifasc(a$)=255orasc(a$)=222then1590
1560 dt$(ge%+1)=left$(a$,10):ar(ge%+1)=asc(mid$(a$,11,1))
1570 no(ge%+1)=asc(mid$(a$,12,1))
1580 ge%=ge%+1:ifge%<30thengoto1540
1590 g1%=ge%:ifcl=0thenclose5:close15
1595 ifcl=0thengosub390
1597 ifzn=1thenreturn
1600 gosub2310:return
1610 rem ---------------------------
1620 rem --- durchschnitt berech ---
1630 rem ---------------------------
1640 s(1)=0:s(2)=0:s(3)=0
1645 z(1)=0:z(2)=0:z(3)=0
1647 ifge%=0thenmd=0:ed=0:sd=0:dd=0:return
1650 for i=1 to ge%
1660 s(ar(i))=s(ar(i))+no(i)
1670 z(ar(i))=z(ar(i))+1
1680 nexti
1690 md=s(1)/(z(1)-(z(1)=0))
1700 ed=s(2)/(z(2)-(z(2)=0))
1710 sd=s(3)/(z(3)-(z(3)=0))
1720 n=ve(fa%,0)*abs(z(1)>0)+ve(fa%,1)*abs(z(2)>0)+ve(fa%,2)*abs(z(3)>0)
1730 z=ve(fa%,0)*md+ve(fa%,1)*ed+ve(fa%,2)*sd
1740 dd=z/n
1750 return
1760 rem ---------------------------
1770 rem --- zahl format ---
1780 rem ---------------------------
1790 zf=int(zf*100+.5)/100
1800 fo$=str$(zf)
1810 fo$=mid$(fo$,2,5)
1820 e=len(fo$)
1825 ifval(fo$)=0thenfo$="-.--":return
1830 ife=1thenfo$=fo$+".00":return
1840 ife=3thenfo$=fo$+"0":return
1850 return
1860 rem ----------------------------
1870 rem --- ausgabe bestimmen ---
1880 rem ----------------------------
1890 y=4:x=1:gosub480
1900 ifrethenreturn
1910 ify1=1thenreturn
1920 y=4:x=2:gosub480
1930 ifrethen1890
1935 fl=y1-1
1940 return
1950 rem ----------------------------
1960 rem --- drucker warteausg. ---
1970 rem ----------------------------
1980 gosub320:sp=2:ze=11:az=35:gosub830
1990 sys49152,2,11:print" ";f$;" arbeitet [146]"
1991 iff$="drucker"orf$="flo+dru"thengosub2450
1992 return
2000 rem ----------------------------
2010 rem --- strichliste fuer fach---
2020 rem ----------------------------
2030 fora=1to6:z(a)=0:next:return
2040 ifge%=0thenreturn
2045 fora=1toge%:z(no(a))=z(no(a))+1:next
2050 return
2060 rem ----------------------------
2070 rem --- strichliste zahl-graf---
2080 rem ----------------------------
2090 fo$="":a$="[219][219][219][219] ":ifzf/5>=1thenforf=1toint(zf/5):fo$=fo$+a$:next
2100 r=zf-5*int(zf/5)
2105 ifr=0thenreturn
2110 a$="[194]":forf=1tor:fo$=fo$+a$:next
2120 return
2130 rem ----------------------------
2140 rem --- 3d - saeule ---
2150 rem ----------------------------
2160 sys49152,sp,22:printl$;"[206] "
2170 fori=1to(zf*3)-1
2180 sys49152,sp,22-i:printl$;" [165]";
2190 nexti
2200 sys49152,sp,22-i:printo$
2205 sys49152,sp+1,22-i-1:printd$
2210 return
2220 rem ----------------------------
2230 rem --- sprites off+disk ---
2240 rem ----------------------------
2250 pokevi+21,0:sys49152,2,2:print"disk"
2260 sys49152,34,2:print"disk[158]"
2270 return
2280 rem ----------------------------
2290 rem --- sprites on +clear ---
2300 rem ----------------------------
2310 sys49152,2,2:print" "
2320 sys49152,34,2:print" "
2330 pokevi+21,3:return
2340 rem ----------------------------
2350 rem --- ueberschrift drucken ---
2360 rem ----------------------------
2370 open1,4:print#1,chr$(13)chr$(14)
2380 print#1,"[195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195]";
2390 print#1,tab(20-len(f$)/2)f$
2400 print#1,"[198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198]";
2410 print#1:close1:return
2420 rem -----------------------------
2430 rem --- drucker an ? ---
2440 rem -----------------------------
2450 f1=0
2460 open127,4,127:close127
2470 ifst>=0thenreturn
2480 iff1=0thenf1=1:sys49152,18,23:print"drucker ein + [cr]"
2490 iff1=1thenf1=0:sys49152,18,23:print"drucker ein + [cr][146]"
2500 getw$:ifw$<>chr$(13)then2480
2510 sys49152,17,23:printleft$(lo$,22)
2520 goto2450
10000 rem ***************************
10010 rem *** initialisieren ***
10020 rem ***************************
10030 gosub270:gosub90:sys49161
10050 ge$="keine":ge%=0
10060 lo$=chr$(160)
10070 fori=0to5:lo$=lo$+lo$:next
10080 gosub390
10090 gosub320
10100 for au=0 to 8
10110 a$(au,0)=chr$(8):a$(au,1)=chr$(8)
10120 for in=0 to 5
10130 d$=chr$(128+peek(49233+in+au*6))
10140 a$(au,0)=a$(au,0)+d$
10150 a$(au,1)=a$(au,1)+d$+d$
10160 next in
10165 a$(au,0)=a$(au,0)+chr$(15)
10167 a$(au,1)=a$(au,1)+chr$(14)
10170 next au
10180 cr$(0)=chr$(8)+chr$(13)+chr$(15)
10185 cr$(1)=chr$(8)+chr$(13)+chr$(14)
10190 ar$(1)="mue ":ar$(2)="ext ":ar$(3)="scha"
10200 rem ***************************
10210 rem *** menuestrings ***
10220 rem ***************************
10260 :
10270 m$(1,1,0)=str$(2)
10280 m$(1,1,1)="notendatei bearbeiten"
10290 m$(1,1,2)="notendatei auswerten."
10300 :
10310 m$(2,1,0)=str$(5)
10320 m$(2,1,1)="fach bestimmen/laden"
10330 m$(2,1,3)="noten eingeben......"
10340 m$(2,1,4)="noten aendern......."
10350 m$(2,1,2)="noten speichern....."
10355 m$(2,1,5)="auswerten..........."
10360 :
10370 m$(2,2,0)=str$(2)
10380 m$(2,2,1)="spezielles fach"
10390 m$(2,2,2)="alle faecher..."
10400 :
10410 m$(3,1,0)=str$(6)
10420 m$(3,1,1)="fach bestimmen/laden"
10430 m$(3,1,5)="strichliste........."
10440 m$(3,1,2)="saeulenstatistik...."
10450 m$(3,1,3)="durchschnitt........"
10455 m$(3,1,4)="notentabelle........"
10457 m$(3,1,6)="bearbeiten.........."
10460 :
10470 m$(3,2,0)=str$(4)
10480 m$(3,2,3)="strichliste....."
10500 m$(3,2,1)="durchschnitt...."
10510 m$(3,2,2)="notentabelle...."
10520 m$(3,2,4)="zeugnis........."
10521 :
10522 m$(4,1,0)=str$(2)
10523 m$(4,1,1)="ausgabe auf bildschirm"
10524 m$(4,1,2)="ausgabe auf drucker..."
10525 :
10526 m$(4,2,0)=str$(2)
10527 m$(4,2,1)="normalschrift"
10528 m$(4,2,2)="sperrschrift."
10530 :
10531 m$(4,3,0)=str$(2)
10532 m$(4,3,1)="notenstatistik"
10533 m$(4,3,2)="leistungsstat."
10534 :
10535 m$(4,4,0)=str$(3)
10536 m$(4,4,1)="unterscheidung durch farbe"
10537 m$(4,4,2)="unterscheidung durch form."
10538 m$(4,4,3)="keine unterscheidung......"
10539 :
10540 m$(4,5,0)=str$(3)
10541 m$(4,5,1)="falscheingabe"
10542 m$(4,5,2)="neustart....."
10543 m$(4,5,3)="ende........."
10549 rem ***************************
10550 rem *** menuebaum ***
10560 rem ***************************
10570 goto10730
10571 :y=4:x=5:gosub480
10572 ify1=2thenrun
10573 ify1=1then10590
10574 gosub320:gosub2250:print"[147]neustart mit run!":end
10590 :y=1:x=1:gosub480
10595 ifrethen10571
10600 ony1goto10610,10640
10610 :y=2:x=1:gosub480
10620 ifrethen10590
10630 ony1goto1080,11940,11580,12090,10670
10640 :y=2:x=2:gosub480
10650 ifrethen10590
10660 ony1goto10670,10690
10670 :y=3:x=1:gosub480
10675 ifrethen10640
10680 ony1goto1080,13390,12820,13900,12870,10610
10690 :y=3:x=2:gosub480
10700 ifrethen10640
10710 ony1goto12820,13940,12940,13990
10720 end
10730 rem ***************************
10740 rem *** dateiabfrage ***
10750 rem ***************************
10760 gosub320
10770 sp=12:ze=12:az=12
10780 sys49152,09,10:print"dateiname (klasse):"
10790 gosub660
10800 gosub920:da$=ee$:gosub2250
10810 open5,8,5,"dat."+da$+",s,r":close5
10820 gosub390
10830 ifd1=0then11480
10840 ifd1=62then10860
10850 gosub2310:goto10760
10860 gosub320:gosub2310
10870 sys49152,2,7
10880 print"datei mit dem namen ";da$
10890 printtab(2)"besteht nicht!"
10900 sys49152,2,10:print"1....neu anlegen"
10910 sys49152,2,12:print"2....neueingabe"
10920 getw$:ifw$="1"then10960
10930 ifw$<>"2"then10920
10950 goto10760
10960 :
10970 :
10980 data"name des schuelers :","name der schule :"
10990 data"schulort :","schuljahr (jj/jj)"
11000 restore:forza=0to3:gosub320
11010 sys49152,2,6
11020 read a$:printa$
11030 ze=8:sp=3:az=30
11040 ifza=3thenaz=5
11050 gosub660:ei$(za)=ee$
11060 nextza:za=-1
11070 gosub320:za=za+1
11080 sys49152,2,6
11090 print"fachname (cr=ende):"
11100 ze=8:sp=3:az=16
11110 gosub660:ifee$=""thenza=za-1:goto11260
11115 fa$(za)=ee$
11120 gosub320
11130 sys49152,2,6
11140 print"verhaeltnis (mue:ex:scha)"
11150 ze=8:sp=3:az=5
11160 gosub830
11170 sys49152,4,8:print":";
11180 sys49152,6,8:print":";
11190 ze=8:sp=3:az=1
11200 gosub665:ve(za,0)=val(ee$)
11210 ze=8:sp=5:az=1
11220 gosub665:ve(za,1)=val(ee$)
11230 ze=8:sp=7:az=1
11240 gosub665:ve(za,2)=val(ee$)
11250 goto11070
11260 :
11270 :
11280 gosub390:gosub320:gosub2250
11290 sys49152,0,12
11300 a$="daten werden gespeichert[146]"
11310 printtab(20-len(a$)/2)a$
11320 open5,8,5,"dat."+da$+",s,w"
11330 fori=0to3:print#5,ei$(i):next
11335 az%=za:print#5,az%
11340 fori=0toaz%:print#5,fa$(i)
11342 forv=0to2:print#5,ve(i,v):next
11345 nexti
11350 close5
11360 gosub390:gosub320:gosub2250
11370 sys49152,0,12
11380 a$="notendatei wird angelegt[146]"
11390 printtab(20-len(a$)/2)a$
11400 open5,8,5,"not."+da$+",l,"+chr$(13)
11410 open15,8,15
11420 rn=30*(az%+1)+1
11430 gosub1020
11440 print#5,chr$(255)
11450 close5:close15
11460 gosub2310:gosub390:goto10590
11470 :
11480 gosub320:gosub2250
11481 sys49152,0,12
11482 a$="daten werden geladen[146]"
11483 printtab(20-len(a$)/2)a$
11490 open5,8,5,"dat."+da$+",s,r"
11500 fori=0to3:input#5,ei$(i):next
11510 input#5,az%
11520 fori=0toaz%:input#5,fa$(i)
11530 forv=0to2:input#5,ve(i,v):next
11540 next i
11550 close5
11560 gosub390:gosub320:gosub2310
11570 goto10590
11580 rem ***************************
11590 rem *** noten eingeben ***
11600 rem ***************************
11605 ifge$="keine"orge%+1>30then10610
11610 gosub11900
11640 ifge%=0then11710
11650 fora=1toge%
11655 x=1-abs(a>9)
11660 sys49152,3,2*b+7:printa;spc(x);"[157][194]";dt$(a);"[194]";ar$(ar(a));"[194]";no(a)
11665 sys49152,4,2*b+8:print"[195][195][219][195][195][195][195][195][195][195][195][195][195][219][195][195][195][195][219][195][195][195][195]"
11670 ifa/6<>int(a/6)ora=0then11700
11680 print:gosub1350
11690 gosub11900:nexta:goto11710
11700 b=b+1:nexta
11710 a=ge%+1
11720 forge=ato30:yy=2*b+7:ge%=ge
11721 sys49152,3,yy:printge%;spc(1-abs(ge%>9));"[157][194]ende ='f2'";
11722 getw$:ifw$=""then11721
11723 ifw$="[137]"thenge%=ge%-1:goto11880
11724 poke631,asc(w$):poke198,1
11730 sys49152,3,yy:printge%;spc(1-abs(ge%>9));"[157][194]";left$(lo$,20)
11740 az=10:sp=7:ze=yy:gosub665:dt$(ge%)=left$(ee$+lo$,10)
11750 sys49152,17,yy:print"[194]m[146]ue e[146]xt s[146]cha ?";
11760 xx=0:getw$
11761 ifw$="m"thenxx=1
11762 ifw$="e"thenxx=2
11763 ifw$="s"thenxx=3
11764 ifxx=0then11760
11768 ifve(fa%,xx-1)=0then11760
11770 sys49152,17,yy:print"[194]";ar$(xx);"[194]";left$(lo$,15)
11780 ar(ge%)=xx
11790 az=1:sp=23:ze=yy:gosub665:no(ge%)=val(ee$)
11800 ifval(ee$)>6orval(ee$)<1then11790
11840 sys49152,4,yy+1:print"[195][195][219][195][195][195][195][195][195][195][195][195][195][219][195][195][195][195][219][195][195][195][195]"
11850 ifge%/6<>int(ge%/6)then11870
11860 print:gosub1350:gosub11900:nextge:goto11880
11870 b=b+1:nextge
11880 gosub320:sys49152,1,12:print"noten speichern [j[146]/n[146]]"
11890 getw$:ifw$="j"then11940
11895 ifw$<>"n"then11890
11897 goto10610
11900 gosub320:b=0
11910 sys49152,4,5:print"nr[194]datum [194]art [194]note"
11920 sys49152,4,6:print"[195][195][219][195][195][195][195][195][195][195][195][195][195][219][195][195][195][195][219][195][195][195][195]"
11930 return
11940 rem ****************************
11950 rem *** noten speichern ***
11960 rem ****************************
11970 ifge$="keine"then10610
11980 ifge%-g1%=0then10610
11982 gosub320:a$="noten werden gespeichert[146]":gosub920:gosub2250
11990 sys49152,20-(len(a$)/2),11:printa$
12000 open5,8,5,"not."+da$+",l,"+chr$(13)
12010 open15,8,15
12020 rn=(fa%*30)+g1%+1:gosub1020
12030 for a=g1%+1 to ge%
12040 a$=dt$(a)+chr$(ar(a))+chr$(no(a))
12050 print#5,a$
12060 nexta
12070 close5:close15
12080 gosub2310:gosub390:goto10610
12090 rem ****************************
12100 rem *** noten aendern ***
12110 rem ****************************
12120 ifge$="keine"then10610
12130 gosub11900
12140 ifge%=0then10610
12150 fora=1toge%
12160 x=1-abs(a>9)
12170 sys49152,3,2*b+7:printa;spc(x);"[157][194]";dt$(a);"[194]";ar$(ar(a));"[194]";no(a)
12180 sys49152,4,2*b+8:print"[195][195][219][195][195][195][195][195][195][195][195][195][195][219][195][195][195][195][219][195][195][195][195]"
12190 ifa/6=int(a/6)then12210
12200 b=b+1:nexta
12210 sys49152,4,19:print":zahl - w[146]eiter - e[146]nde:"
12230 sa=a:az=2:sp=26:ze=19:gosub665:a=sa:w$=ee$
12240 ifw$="w"anda<ge%thengosub11900:nexta
12250 ifw$="e"then10610
12251 e=val(w$)
12252 if e<1 or e>ge% then12230
12253 if e<=a-6 then 12230
12254 if a=ge%+1 and e>ge% then12230
12270 ifval(w$)=athenyy=17:ae=a:goto12280
12275 yy=2*(val(w$)-6*int(val(w$)/6)-1)+7:ae=val(w$)
12280 sys49152,4,yy:printleft$(lo$,25)
12290 sys49152,3,yy:printae;spc(1-abs(ae>9));"[157][194]";
12300 az=10:sp=7:ze=yy:gosub665:dt$(ae)=left$(ee$+lo$,10)
12310 sys49152,17,yy:print"[194]m[146]ue e[146]xt s[146]cha ?";
12320 xx=0:getw$
12330 ifw$="m"thenxx=1
12340 ifw$="e"thenxx=2
12350 ifw$="s"thenxx=3
12360 ifxx=0then12320
12370 ifve(fa%,xx-1)=0then12320
12380 sys49152,17,yy:print"[194]";ar$(xx);"[194]";left$(lo$,15)
12390 ar(ae)=xx
12400 az=1:sp=23:ze=yy:gosub665:no(ae)=val(ee$)
12410 ifval(ee$)>6orval(ee$)<1then12400
12415 gosub320:sys49152,1,12:print"noten speichern [j[146]/n[146]]"
12416 getw$:ifw$="j"then12420
12417 ifw$<>"n"then12416
12418 goto10610
12420 gosub2250:gosub920:open5,8,5,"not."+da$+",l,"+chr$(13)
12430 open15,8,15
12440 rn=(fa%*30)+ae:gosub1020
12450 a$=dt$(ae)+chr$(ar(ae))+chr$(no(ae))
12460 print#5,a$
12470 close5:close15
12480 gosub2310:goto10610
12490 rem ****************************
12500 rem *** durchschnitt ausg. ***
12510 rem ****************************
12515 gosub1890:gs=0
12516 ifrethenreturn
12518 ifx=2then12640
12519 for wi=0 to du
12530 ifwi=0thenb=0:gosub12625:goto12550
12540 ifwi/6=int(wi/6)thenb=0:gosub1350:gosub12625
12550 sys49152,1,2*b+6:print"[195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][219][195][195][195][195][219][195][195][195][195][219][195][195][195][195][219][195][195][195][195]"
12555 ifalthenfa%=wi:gosub1520
12560 gosub1640:gs=gs+dd
12570 sys49152,1,2*b+7:printfa$(fa%)
12575 sys49152,17,2*b+7:print"[194]";
12580 zf=md:gosub1790:printfo$;"[194]";
12590 zf=ed:gosub1790:printfo$;"[194]";
12600 zf=sd:gosub1790:printfo$;"[194]";
12610 zf=dd:gosub1790:printfo$
12621 b=b+1:nextwi:return
12625 gosub320:sys49152,1,5:print"fachname [194]mue [194]ext [194]scha[194]ges":return
12630 :
12640 :
12650 gosub1980
12655 f$="d u r c h s c h n i t t":gosub2370
12680 open1,4,0
12690 print#1,cr$(fl);"fachname [194]mue [194]ext [194]scha[194][194]ges";cr$(fl);
12700 w$="[195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195]"
12710 fori=0to2:w$=w$+a$(8,fl)+"[195][195][195][195]":next
12712 w$=w$+a$(8,fl)+a$(8,fl)+"[195][195][195][195]"
12715 for wi=0 to du
12717 ifalthenfa%=wi:gosub1520:gosub330
12720 print#1,w$;cr$(fl);:gosub1640:gs=gs+dd
12730 print#1,left$(fa$(fa%)+lo$,16);"[194]";
12740 zf=md:gosub1790:print#1,fo$;"[194]";
12750 zf=ed:gosub1790:print#1,fo$;"[194]";
12760 zf=sd:gosub1790:print#1,fo$;"[194][194]";
12770 zf=dd:gosub1790:print#1,fo$;cr$(fl);
12780 nextwi
12781 ifalthen print#1:print#1,"ges.durchschnitt :";int(gs/(az%+1)*100+.5)/100
12782 print#1:close1:return
12790 rem ***************************
12800 rem *** durchschnitt unters.***
12810 rem ***************************
12820 ifx=1andge$="keine"then10670
12821 ifx=2then12827
12825 ifx=1thenf$="drucker":du=0:al=0:gosub12500:ifre=0thengosub1350
12826 goto10670
12827 gosub920:open5,8,5,"not."+da$+",l,"+chr$(13)
12828 open15,8,15:cl=1
12830 f$="flo+dru":du=az%:al=1:gosub12500
12831 ifrethen12850
12835 ifx=2then12850
12840 sys49152,1,19:print"ges.durchschnitt :";int(gs/(az%+1)*100+.5)/100
12845 gosub1350
12850 cl=0:close5:close15:goto10690
12860 rem ***************************
12870 rem *** strich. anl. einz ***
12880 rem ***************************
12890 ifge$="keine"then10670
12895 gosub1890:ifrethen10670
12900 gosub2030:gosub2040
12905 fa$=fa$(fa%)
12910 ifx=1thengosub13060:goto10670
12920 gosub13180:goto10670
12930 rem ***************************
12940 rem *** strich. anl. allg ***
12950 rem ***************************
12960 gosub1890:ifrethen10690
12965 f$="floppy ":gosub1980
12970 gosub2030
12980 gosub920:open5,8,5,"not."+da$+",l,"+chr$(13)
12990 open15,8,15:cl=1
13010 forq=0toaz%:fa%=q:gosub1520:gosub2040
13015 gosub330:nextq
13020 cl=0:close5:close15
13025 fa$="alle faecher"
13030 ifx=1thengosub13060:goto10690
13040 gosub13180:goto10690
13050 rem ****************************
13060 rem *** strichliste bildsch ***
13070 rem ****************************
13080 gosub320
13090 sys49152,1,5:print" [194] 5[194] 10[194] 15[194] 20[194] 25[194] 30[194] 35[194]"
13100 sys49152,1,6:print"[195][195][219][195][195][195][195][177][195][195][195][195][177][195][195][195][195][177][195][195][195][195][177][195][195][195][195][177][195][195][195][195][177][195][195][195][195][177]"
13110 fori=1to6
13120 sys49152,1,2*i+5:printi;"[157][194]";
13125 ifz(i)>35thenfo$=str$(z(i)):goto13140
13130 zf=z(i):gosub2090
13140 printfo$
13145 sys49152,1,2*i+6:print"[195][195][219][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195]"
13150 nexti
13160 gosub1350:return
13170 rem ****************************
13180 rem *** strichliste drucker ***
13190 rem ****************************
13200 f$="drucker":gosub1980
13205 f$="strichliste fuer "+fa$:gosub2370
13210 ze=(1-fl)*40+40
13220 open1,4,0
13230 a$=" [194]":b$="[195][195][195]"+a$(8,fl):c$="[195][195][195]"+a$(8,fl)
13240 fori=1toint(ze/5)-1
13250 a$=a$+" "+right$(str$(i*5),2)+"[194]"
13260 b$=b$+"[195][195][195][195]"+a$(6,fl):c$=c$+"[195][195][195][195][195]"
13270 nexti:print#1,chr$(15-fl)
13280 print#1,a$;cr$(fl);
13290 print#1,b$;cr$(fl);
13300 for i=1 to 6
13310 print#1,i;"[194]";
13320 ifz(i)>ze-5thenfo$=str$(z(i)):goto13340
13330 zf=z(i):gosub2090
13340 print#1,fo$;cr$(fl);
13350 print#1,c$;cr$(fl);
13360 nexti:print#1:close1
13370 gosub1350:return
13380 rem ***************************
13390 rem *** saeulenstat. ***
13400 rem ***************************
13410 ifge%=0then10670
13420 gosub15900:ifrethen10670
13430 print"[147]";:poke53281,0:poke53280,0:poke646,5:poke53248+21,0
13435 ifx=2thengosub2450
13440 az=19+len(fa$(fa%)):sp=20-((19+len(fa$(fa%)))/2):ze=1:gosub830
13450 sys49152,sp,ze:print"notendiagramm fuer ";fa$(fa%)
13460 fori=1to6
13470 sys49152,0,3*i+2:print7-abs(i-s1);"[157][171]"
13480 sys49152,2,3*i+3:print"[194]"
13490 sys49152,2,3*i+4:print"[194]"
13500 nexti
13510 print"[195][195][219][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195]"
13520 print" [194]";
13521 ei=int(35/ge%)
13522 ifs2=1ors2=3thenl$="":fori=1toei:l$=l$+" ":next:l$=l$+"[146]"
13523 ifs2=2thenl$(1)="":fori=1toei:l$(1)=l$(1)+"[219]":next
13524 ifs2=2thenl$(2)="":fori=1toei:l$(2)=l$(2)+"[172]":next:l$(2)=l$(2)+"[146]"
13525 ifs2=2thenl$(3)="":fori=1toei:l$(3)=l$(3)+"[194]":next:l$(3)=l$(3)+"[146]"
13527 o$="[206]":ifei>1thenfori=1toei-1:o$=o$+" ":next
13528 ifx=1thend$="":fori=1toei:d$=d$+"[175]":next
13529 ifx=2thend$="":fori=1toei:d$=d$+"[164]":next
13530 o$=o$+"[206][165]":sp=3
13531 for au=1 to ge%:print"[156]";
13560 ifs2=1thenifar(au)=1thenprint"[159]";
13570 ifs2=1thenifar(au)=2thenprint"[156]";
13580 ifs2=1thenifar(au)=3thenprint"";
13585 ifs2=2thenl$=l$(ar(au))
13590 zf=abs(s1-no(au)):gosub2160
13591 ifau<>1andei>1andzf<abs(s1-no(au-1))thensys49152,sp+1,21-zf*3:print"[204]"
13592 ifau=1orei<>1or(zf>=abs(s1-no(au-1))orzf<abs(s1-no(au+1+(au=30))))then13600
13593 sys49152,sp+1,21-zf*3:print"[204]"
13600 sp=sp+ei:nextau
13601 ifx=2thenf$="s ae u l e n s t a t i s t i k":gosub2370:sys49158,fl:close1
13602 sys49152,3,24:print"bitte leertaste druecken...";
13605 getw$:ifw$<>" "then13605
13610 poke53281,hf:poke53280,rf:poke646,qf:print"[147]";
13620 gosub270:goto10670
13630 rem ****************************
13640 rem *** notentabelle ***
13650 rem ****************************
13660 y=4:x=2:gosub480
13670 ifrethenreturn
13680 fl=y1-1
13690 gosub1980:gosub920
13695 f$="n o t e n t a b e l l e":gosub2370
13700 ifalthenopen5,8,5,"not."+da$+",l,"+chr$(13)
13710 ifalthenopen15,8,15
13720 open1,4,0:print#1,chr$(15-fl)
13730 print#1,"fachname [194]nr[194]datum [194]art [194]note";cr$(fl);
13740 s$="":s$="[195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195]"+a$(8,fl)+"[195][195]"+a$(8,fl)+"[195][195][195][195][195][195][195][195][195][195]"+a$(8,fl)
13750 s$=s$+"[195][195][195][195]"+a$(8,fl)+"[195][195][195][195]"+cr$(fl)
13751 b$="":b$=left$(lo$,16)+"[194]"+left$(lo$,2)+"[194]"+left$(lo$,10)+"[194]"
13752 b$=b$+left$(lo$,4)+"[194]"+left$(lo$,4)+cr$(fl)
13760 cl=1:for au=af to ed
13765 print#1,s$;
13770 ifalthenfa%=au:gosub1520:gosub330
13780 print#1,left$(fa$(fa%)+lo$,16);right$(b$,len(b$)-16);
13785 ifge%=0thenprint#1,b$;:goto13840
13790 for in=1 to ge%
13800 print#1,b$;
13810 print#1,left$(lo$,16)"[194]";mid$(str$(in)+" ",2,2);"[194]";dt$(in);"[194]";
13820 print#1,ar$(ar(in));"[194]";no(in);cr$(fl);
13830 nextin
13840 nextau
13850 print#1,s$:print#1:close1:close5:close15:cl=0
13860 return
13870 rem **************************
13880 rem *** einz.notentab ***
13890 rem **************************
13900 ifge$="keine"then10670
13910 f$="drucker":af=fa%:ed=fa%:al=0:gosub13640:goto10670
13920 rem **************************
13930 rem *** alle.notentab ***
13940 rem **************************
13950 f$="flo+dru":af=0:ed=az%:al=1:gosub13640
13960 goto10690
13970 rem **************************
13980 rem *** zeugnisausgabe ***
13990 rem **************************
14000 y=4:x=1:gosub480:ify1=1then15470
14001 gosub320:a$="datumseingabe 'tt.mm.jjjj'":sys49152,8,9:printa$
14003 az=10:sp=15:ze=11:gosub660:dt$=ee$
14004 f$="flo+dru":gosub1980:gosub920:goto14010
14005 print#1,"[194]";spc(38);"[194]";cr$(1);:return
14010 open1,4,0:print#1,chr$(14)
14020 print#1,a$(0,1);:fori=0to37:print#1,"[195]";:next:print#1,a$(3,1);cr$(1);
14030 fori=0to2:gosub14005::next
14040 print#1,"[194]";chr$(15);spc(40-len(ei$(1))/2)ei$(1);
14050 print#1,spc(36.5-len(ei$(1))/2);chr$(14);"[194]";cr$(1);
14060 fori=0to2:gosub14005:nexti
14080 print#1,"[194]";chr$(15);" schuljahr 19";ei$(3);
14090 print#1,spc(51-len(da$));"klasse ";da$;chr$(14);"[194]";cr$(1);
14100 fori=0to4:gosub14005:next
14110 print#1,"[194]";spc(5);"z w i s c h e n z e u g n i s";spc(4);"[194]";cr$(1);
14115 gosub14005:gosub14005
14120 print#1,"[194]";spc(18);chr$(15)"fuer";chr$(14);spc(18);"[194]";cr$(1);
14125 gosub14005:gosub14005
14130 l=20-len(ei$(0))/2:print#1,"[194]";spc(l);ei$(0);
14140 print#1,spc(l-1.5);"[194]";cr$(1);
14150 print#1,"[194]";spc(l);:fori=1tolen(ei$(0)):print#1,"[196]";:next
14160 print#1,spc(l-1.5);"[194]";cr$(1);
14170 fori=0to3:gosub14005:next
14180 s$="[194] ":fori=1to29:s$=s$+"[163]":nexti:s$=s$+" [194]"+cr$(1)
14190 fori=0to3:gosub14005:print#1,s$;:next
14200 fori=0to3:gosub14005:next
14210 print#1,"[194]";spc(14);"leistungen";spc(14);"[194]";cr$(1);
14220 print#1,"[194]";spc(14);"[196][196][196][196][196][196][196][196][196][196]";spc(14);"[194]";cr$(1);
14230 gosub14005:gosub14005:gd=0
14231 gosub390:open5,8,5,"not."+da$+",l,"+chr$(13)
14232 open15,8,15:cl=1
14235 p$="................."
14240 for p=0 to az%/2
14250 fa%=p:gosub1520:gosub330:gosub1640:dd=int(dd+.47):gd=gd+dd
14260 print#1,"[194]"+left$(fa$(fa%)+p$,17);right$(str$(dd),1);" ";
14262 fa%=int(az%/2+1)+p
14265 iffa$(fa%)=""thenprint#1,spc(18)"[194]";cr$(1);:goto14290
14270 gosub1520:gosub330:gosub1640:dd=int(dd+.47):gd=gd+dd
14280 print#1,left$(fa$(fa%)+p$,17);right$(str$(dd),1);"[194]";cr$(1);
14290 gosub14005:gosub14005:nextp
14300 cl=0:close5:close15
14310 fori=0to2:gosub14005:nexti
14315 a$="teilnahme am wahlunterricht "
14320 print#1,"[194]";spc(12);chr$(15);a$;chr$(14);spc(12);"[194]";cr$(1);
14330 gosub14005
14340 fori=0to4:gosub14005:print#1,s$;:next
14350 fori=0to5:gosub14005:nexti
14360 print#1,"[194]";ei$(2);", ";dt$;
15370 print#1,spc(37-(1+len(ei$(2))+len(dt$)));"[194]";cr$(1);
15380 fori=0to2:gosub14005:nexti
15400 print#1,a$(2,1);:fori=1to38:print#1,"[195]";:next:print#1,a$(1,1);cr$(1);
15405 print#1
15410 print#1,chr$(15);"gesammtdurchschnitt : ";
15420 zf=gd/(az%+1):gosub1790
15430 print#1,fo$;
15440 print#1:print#1:close1
15450 goto10690
15460 rem ****************************
15470 rem *** zeugnis auf bildschirm *
15480 rem ****************************
15490 pokevi+21,0
15500 print"[147]";:poke53281,0:poke53280,0:poke646,5
15580 sys49152,15,1:print"leistungen"
15590 sys49152,15,2:print"[197][197][197][197][197][197][197][197][197][197]"
15600 print:print:gd=0
15610 gosub920:sys49152,0,4:open5,8,5,"not."+da$+",l,"+chr$(13)
15620 open15,8,15:cl=1:zn=1
15630 for p=0 to az%/2
15640 fa%=p:gosub1520:gosub1640:dd=int(dd+.47):gd=gd+dd
15650 print"";left$(fa$(fa%)+lo$,16);"=";right$(str$(dd),1);"= ";
15660 fa%=int(az%/2+1)+p
15670 iffa$(fa%)=""thenprint:goto15700
15680 gosub1520:gosub1640:dd=int(dd+.47):gd=gd+dd
15690 printleft$(fa$(fa%)+lo$,16);"=";right$(str$(dd),1);"=";
15700 ifaz%<15thenprint
15705 nextp
15710 close5:close15:cl=0:zn=0
15720 print:print"[156]ges.durchschnitt : ";
15730 zf=gd/(az%+1):gosub1790:printfo$
15740 print"[158]";:gosub1365
15760 print"[147]";:poke53281,hf:poke53280,rf:poke646,qf
15770 pokevi+21,3:goto10690
15780 rem *****************************
15890 rem *** flags. f. saeulenstat ***
15900 rem *****************************
15910 y=4:x=3:gosub480
15920 ifrethenreturn
15930 ify1=2thens1=7
15940 ify1=1thens1=0
15950 y=4:x=4:gosub480
15960 ifrethen15910
15970 s2=y1
15980 gosub1890:ifrethen15950
15990 return