home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Power Pack
/
Power_Pack_5_1992_Alfons_Mittelmeyer_de.d64
/
telefonkosten
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2023-02-26
|
7KB
|
215 lines
10 rem telefonkosten ==========c64
20 rem (p) power pack
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 =========================