home *** CD-ROM | disk | FTP | other *** search
- 10 rem telefonkosten ==========c64
- 20 rem (p) commodore-welt-team
- 30 rem ===========================
- 40 rem (c) by schmid-fabian v3.5
- 50 rem heidelberg
- 60 rem
- 70 rem (v) a.m. v2.0
- 80 rem
- 90 rem ===========================
- 91 at=49152:wo=49172:gosub92:goto100
- 92 if peek(49154)=174thenreturn
- 93 sys57812"sysmc",8,0:poke780,0
- 94 poke781,254:poke782,191
- 95 sys65493:return
- 100 gosub1460:rem anleitung
- 110 gosub410:rem daten
- 120 printsc$:sysat,8,6:printfe$;:printsl$"[212]elefonkosten"
- 130 printc4$"[206]ummer suchen"b5$"(1)"
- 140 printc4$"[206]ummer eingeben"b3$"(2)"
- 150 printc4$"[206]ummer aendern"b4$"(3)"
- 160 printc4$"[205]onatsabrechnung"b2$"(4)"
- 170 printc4$"[208]rogramm beenden"b2$"(5)"
- 180 gosub1643:on val(a$) goto 200,340,360,1220,190:goto120
- 190 printsc$:end
- 200 gosub900:ifi=nnthenprint"[206]icht vorhanden":gosub1641:goto120
- 210 ifasc(right$(te$(i),2))=47then z$=right$(te$(i),1):goto230
- 220 input "[218]one (n123)";z$
- 230 syswo,z$,zo$,ww:tr=ta(ww):iftr=0then220
- 240 printc2$cl$:sysat,0,6:print"[194]itte [212]aste druecken"b4$c4$:print:gosub1641:t0=ti
- 250 printhe$"[213]hrzeit: "rv$left$(ti$,2)":"mid$(ti$,3,2)":"right$(ti$,2)ro$;
- 260 syswo,z$,zo$,ww:tr=ta(ww+b%):if(ti$<"080000")or(ti$>"180000")thenb%=4
- 270 se=(ti-t0)/60:e%=se/tr+1
- 280 mi%=se/60:
- 281 printright$(" "+str$(mi%),3)".";
- 282 mm=int(se-mi%*60):mm$=str$(mm)
- 283 printright$("00"+right$(mm$,len(mm$)-1),2);
- 284 print" min "
- 290 print"[197]inheiten",e%:print"[212]arif",tr;c1$b2$"s/[197]inheit"
- 300 print"[203]osten"b3$,e%*dm" [196][205] "
- 310 getq$:ifq$=""then250""
- 320 sysat,0,6:print"[199]ebuehren abspeichern ? (j)":gosub1641:ifq$="j"thengosub1000
- 330 goto120
- 340 gosub730:printcl$"[206]ummern abspeichern ?":gosub1641:ifq$="j"thengosub830
- 350 goto120
- 360 gosub900:gosub740:printcl$"[206]ummern abspeichern ?":gosub1641:ifq$="j"thengosub830
- 370 goto120
- 380 rem --------------------------
- 390 rem daten
- 400 rem --------------------------
- 410 sl$=chr$(014):c4$=chr$(017)
- 420 he$=chr$(019):fl$=chr$(130)
- 430 c2$=chr$(145):cl$=chr$(147)
- 440 c1$=chr$(157):cr$=chr$(013)
- 450 rv$=chr$(018):ro$=chr$(146)
- 460 b$=" ":b2$=b$+b$:b3$=b2$+b$
- 470 b4$=b3$+b$:b5$=b4$+b$
- 480 b$=b5$+b5$:cc$="[157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157]"
- 490 nn=100:dim i,na$(nn),ad$(nn),te$(nn),dt%(500),eh%(500),nm$(500)
- 500 sc$=chr$(19)+chr$(19)+chr$(147):printsc$:sysat,8,6:printfe$;
- 510 pr$=ti$:print"[213]hrzeit ";:gosub1410:inputq$:iflen(q$)<>6then510
- 511 ti$=q$
- 520 input"[196]atum ([212]ag,[205]onat)";dt,mn
- 530 if dt>31 or mn>12 then 520
- 540 pr$="j":print"normaler [215]erktag";:gosub1410:inputq$:ifq$="j"thenb%=0:goto550
- 541 b%=4
- 550 open8,8,8,"nummern,s,r":i=1
- 560 input#8,tn$:if st>0 then 580
- 570 input#8,na$(i),ad$(i),te$(i):ifst=0theni=i+1:goto570
- 580 close8:printds$:fort=1to200:next
- 590 rem --------------------------
- 600 rem daten
- 610 rem --------------------------
- 620 zo$="n123":rem bereichs-kennung
- 630 rem normal:billigtarif
- 640 ta(1)=480 :ta(5)=720:rem nahbereich
- 650 ta(2)=45 :ta(6)=67.5:rem zone 1
- 660 ta(3)=20 :ta(7)=38.571:rem zone 2
- 670 ta(4)=12 :ta(8)=38.571:rem zone 3
- 680 dm=0.23 :rem gebuehren/einheit
- 690 return
- 700 rem --------------------------
- 710 rem nummern eingeben
- 720 rem --------------------------
- 730 i=0
- 731 i=i+1:ifna$(i)<>""then731
- 740 printhe$he$cl$c4$c4$c4$fe$i:ifi=nnthen120
- 750 pr$=na$(i):print"[206]ame";:gosub1410:inputna$(i)
- 760 pr$=ad$(i):print"[193]dresse";:gosub1410:inputad$(i)
- 770 pr$=te$(i):print"[212]elefon/[212]arif";:gosub1410:inputte$(i)
- 780 print"weiter ?":gosub1641:ifq$="j" theni=i+1:goto740
- 790 return
- 800 rem --------------------------
- 810 rem nummern abspeichern
- 820 rem --------------------------
- 830 open8,8,15,"s:nummern.bak":close8
- 831 open8,8,15,"r:nummern.bak=nummern":close8
- 840 e=0
- 841 e=e+1:ifna$(e)<>""then841
- 850 open8,8,8,"nummern,s,w":print#8,"t"
- 860 fori=1toe-1:print#8,na$(i)cr$ad$(i)cr$te$(i):next:close8:goto120
- 870 rem --------------------------
- 880 rem name suchen und anzeigen
- 890 rem --------------------------
- 900 printc4$c4$:input"[206]ame";ns$:i=0:ifns$="*"then ns$=" "
- 910 ifns$<>"@"then920
- 911 i=0:input"name,nummer";na$(0),te$(0):printsc$:sysat,5,5:printfe$;:return
- 920 mm$=left$(ns$,1):ll=len(ns$)
- 921 i=i+1:ww$=na$(i):ifna$(i)=""theni=nn:return
- 922 syswo,ns$,ww$,ww:ifww=0andi<>nnthen921
- 923 ifmid$(na$(i),ww,ll)=ns$then929
- 924 ww$=left$(ww$,ww-1)
- 927 ifww<>1then922
- 928 goto921
- 929 if i=nn then return
- 930 printchr$(147);:sysat,5,5:printfe$;:print"i="i
- 931 printc4$na$(i):printad$(i):printc4$te$(i)c4$
- 940 print"[207][203]?":gosub1641:ifq$="n"then920
- 941 return
- 950 rem --------------------------
- 960 rem gebuehren abspeichern
- 970 rem --------------------------
- 980 printchr$(147);:input"[196]atum ([212]ag,[205]onat)";dt,mn
- 990 if dt>31 or mn>12 then 980
- 1000 restore:forq=1tomn:read mn$:next:printcl$"[196]atum:"dtc1$"."mn$
- 1010 printcl$na$(i):print"[196]atum :"dt"."mn$:print"[197]inheiten"e%:print"[207][203] ?"
- 1020 gosub1641:ifq$<>"j"then980
- 1030 data jan,feb,mar,apr,mai,jun,jul,aug,sep,okt,nov,dez
- 1040 k=0:p$="tel."+mn$:open8,8,8,p$+",s,r":close8
- 1050 ifds>0thenprint"[198]loppyfehler":printds$:gosub1641:goto1040
- 1060 open8,8,8,p$+",s,r":k=1:es=0
- 1070 input#8,a$:printhe$he$cl$:if st>0 thenk=0:goto1100
- 1080 input#8,nm$(k),dt%(k),eh%(k)
- 1090 es=es+eh%(k):ifst=0thenk=k+1:goto 1080
- 1100 close8:printds$:fort=1to200:next:rem if er>0 thenprinthe$he$err$(er):stop
- 1110 print"[197]intraege im [205]onat "+mn$+":"k+1
- 1120 es=es+e%:print"[197]inheiten gesamt"b3$es"="es*dm"[196][205]"
- 1130 rem open1,8,15,"s:"+p$:close1
- 1140 open1,8,15,"s:"+p$+".bak":print#1,"r:"+p$+".bak"+"="+p$:close1
- 1150 open8,8,8,p$+",s,w":print#8,mn$
- 1160 if k>0 then forq=1tok:print#8,nm$(q):print#8,dt%(q):print#8,eh%(q):nextq
- 1170 print#8,na$(i):print#8,dt:print#8,e%
- 1180 close8:return
- 1190 rem -------------------------
- 1200 rem zwischenbilanz
- 1210 rem -------------------------
- 1220 print:input "[205]onat (jan-dez)";mn$
- 1230 p$="tel."+mn$:open8,8,8,p$+",s,r":close8
- 1231 open15,8,15:input#15,ds:close15
- 1240 ifds>0thenprint"[198]loppyfehler":printds$:gosub1641:goto1220
- 1250 pr$="j":print"[196]ruckerausgabe";:gosub1410:inputq$:dr%=0:if q$="j" then dr%=1
- 1260 open8,8,8,p$+",s,r":k=1:es=0
- 1270 input#8,a$:printhe$he$cl$:ifdr%thenopen4,4,7
- 1280 input#8,nm$(k),dt%(k),eh%(k):sd=st
- 1290 printk;left$(nm$(k),16),dt%(k);eh%(k)
- 1291 ifdr%then1300
- 1292 a$="":geta$:ifa$=""then1300
- 1293 gosub1643
- 1300 if dr% then print#4,k;left$(nm$(k)+bl$+bl$,20),left$(str$(dt%(k))+b5$,5),eh%(k)
- 1310 es=es+eh%(k):k=k+1:ifsd=0then1280
- 1320 close8
- 1330 print:print"[197]intraege im [205]onat "+mn$+":"k-1
- 1340 if dr% then print#4:print#4,"[197]intraege im [205]onat "+mn$+":"k-1
- 1350 print"[197]inheiten gesamt"b3$es"="es*dm"[196][205]"
- 1360 if dr% then print#4,"[197]inheiten gesamt"b3$es"="es*dm"[196][205]":close4
- 1370 gosub1643:goto120
- 1380 rem -------------------------
- 1390 rem input vorgabe
- 1400 rem -------------------------
- 1410 print" "pr$left$(cc$,len(pr$)+2);:return
- 1420 print(NULL)(er),ds$:stop:(NULL)next
- 1430 rem -------------------------
- 1440 rem anleitung
- 1450 rem -------------------------
- 1460 printchr$(147);:printchr$(14)"[193]nleitung? (j)":gosub1641:ifq$<>"j"thenreturn
- 1470 print:print"[205]it diesem [208]rogramm kann man":print
- 1480 print"a) seine [212]elefonnummern speichern
- 1490 [153]b3$"incl. (NULL)amen und atndressen
- 1500 print"b) die [206]ummer, die zum eingegebenen
- 1510 [153]b3$"(NULL)amen gehoert, suchen (* fuer alle)
- 1520 printb3$"([212]aste wenn [214]erbindung hergestellt)
- 1530 [153]"c) vals wird angezeigt:
- 1540 printb3$"[213]hrzeit, [197]inheiten, [203]osten
- 1550 [153]"d) (NULL)ame, str$atum und valinheiten werden
- 1560 printb3$"abgespeichert und koennen am [197]nde
- 1570 [153]b3$"des (NULL)onats mit (NULL)(NULL)(NULL)atn(NULL)(NULL)atnpeek(NULL)vallenleft$(NULL)(NULL)(NULL)chr$"
- 1580 [153]b3$"fuer das ascinanzamt
- 1590 printb3$"(oder innerfamiliaer)
- 1600 [153]b3$"abgerechnet werden.
- 1610 print:print:print"[196]as [208]rogramm ist [205]enuegesteuert. [197]s muss";
- 1620 print"immer mit 'j' oder 'n' geantwortet
- 1630 [153]"werden.
- 1640 gosub1641:return
- 1641 getq$:ifq$=""then1641
- 1642 return
- 1643 geta$:ifa$=""then1643
- 1644 return
- 1650 rem -------------------------
- 1660 rem liste der unterprogramme
- 1670 rem -------------------------
- 1680 goto120:rem menue
- 1690 goto490:rem daten einlesen
- 1700 goto730:rem nummern eingeben
- 1710 goto830:rem nummern abspeichern
- 1720 goto900:rem name suchen und anzeigen
- 1730 goto980:rem gebuehren abspeichern
- 1740 goto1410:rem input vorgabe
- 1750 rem =========================
- 1760 rem 12277 bytes memory
- 1770 rem 06281 bytes program
- 1780 rem 00294 bytes variables
- 1790 rem 04520 bytes arrays
- 1800 rem 00460 bytes strings
- 1810 rem 00722 bytes free (0)
- 1820 rem =========================
-