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 =========================