1 REM Ins{nd av Lennart Einarsson <6554> 1986-08-26 19.32.35 (SEND) 10 REM ======== TELEFON.BAS =========== 20 REM > Telefonregister f|r floppy & < 30 REM > cassettminne. Datafilen kryp-< 40 REM > teras mot ofrivillig l{sning.< 50 REM > Login = MARIA < 60 REM > (C) <6554> L.Einarsson < 70 REM > Krypto L.Lundstr|m <2694> < 80 REM > ABC80 + 32k + 40Tkn < 90 REM ======== TELEFON.BAS =========== 100 X%=100% : DIM F$(X%)=18%,E$(X%)=23%,A$(X%)=23%,P$(X%)=6%,O$(X%)=15%,T$(X%)=17%,R$=25%,B$=25% 110 IF PEEK(590%)<>40 ; INP(3%) 120 ; CHR$(12%,7%)CUR(10%,8%)'Din accsess cod tack '; 130 FOR Y%=1% TO 5% : GET Q$(Y%) : ; '*'; 140 READ A%(Y%) 150 IF ASC(Q$(Y%))<>A%(Y%) 170 ELSE NEXT Y% : GOTO 180 160 DATA 77,65,82,73,65 170 ; CHR$(12%,7%)CUR(10%,8%)'FELAKTIG BEH\RIGHET !!' : CHAIN '' 180 ; CHR$(12%)CUR(10%,5%)'Korrekt inloggning. V[NTA !' : Y%=1% : GOSUB 2300 : GOSUB 1320 190 ; CHR$(12%,7%)TAB(12%)'Adressregister' : ; : ; 200 ; TAB(13%)'1 = INMATA' : ; 210 ; TAB(13%)'2 = L[SA' : ; 220 ; TAB(13%)'3 = SPARA' : ; 230 ; TAB(13%)'4 = H[MTA' : ; 240 ; TAB(13%)'5 = SKRIVA' : ; 250 ; TAB(13%)'6 = [NDRA' : ; 260 ; TAB(13%)'7 = RADERA' : ; 270 ; TAB(13%)'8 = SLUTA'; 280 GET C$ : IF C$='' 280 290 Z%=ASC(C$) : Z%=Z%-48% 300 IF Z%<1% OR Z%>8% GOTO 280 310 ON Z% GOSUB 330,490,1540,1270,740,1760,910,2160 320 GOTO 190 330 IF N%>=X% THEN RETURN 340 N%=N%+1% : ; CHR$(12%) 350 ; TAB(5%)' Inmata namn och adresser ' 360 ; : ; TAB(8%)' Inmata #'N%' av'X%' ' 370 ; CUR(6%,0%)'F|rnamn ' : R%=6% : K1%=8% : L%=18% : GOSUB 2210 : F$(N%)=S$ 380 IF LEN(F$(N%))<=0% THEN N%=N%-1% : GOTO 450 390 ; CUR(8%,0%)'Efternamn ' : R%=8% : K1%=10% : L%=23% : GOSUB 2210 : E$(N%)=S$ 400 ; CUR(10%,0%)'Adress ' : R%=10% : K1%=7% : L%=23% : GOSUB 2210 : A$(N%)=S$ 410 ; CUR(12%,0%)'Postnr ' : R%=12% : K1%=7% : L%=6% : GOSUB 2210 : P$(N%)=S$ 420 ; CUR(14%,0%)'Ort ' : R%=14% : K1%=4% : L%=15% : GOSUB 2210 : O$(N%)=S$ 430 ; CUR(16%,0%)'Tfnnr ' : R%=16% : K1%=6% : L%=17% : GOSUB 2210 : T$(N%)=S$ 440 IF N%>=X% RETURN 450 ; CUR(20%,8%)'Fler inmatningar (N)'; 460 GET C$ 470 IF C$='J' OR C$='j' GOTO 340 480 RETURN 490 IF N%=0% RETURN 500 ; CHR$(12%)TAB(7%)' L{sa namn och adresser ' : ; 510 ; CUR(8%,2%)'Om return nedtrycks skrollas listan' 520 ; CUR(10%,8%)'Vilket namn skall s|kas' 530 ; CUR(12%,8%); : INPUTLINE D$ : GOSUB 2120 540 FOR I%=1% TO N% 550 IF INSTR(1%,F$(I%),D$) OR INSTR(1%,E$(I%),D$) B%=1% : GOSUB 640 560 NEXT I% 570 IF B%=1% GOTO 2170 580 ; CHR$(7%)CUR(8%,0%)SPACE$(39%) 590 ; CUR(8%,7%)'Namnet 'D$ 600 ; CUR(10%,0%)SPACE$(39%)CUR(10%,7%)'finns ej i registret.' 610 ; CUR(12%,4%)'Tryck en tangent f|r huvudmenyn'; 620 GET C$ : IF C$='' THEN 620 630 RETURN 640 ; CHR$(12%)'Post nr'I%' av'N%' m|jliga' : ; : ; 650 ; 'F|rnamn :';F$(I%) : ; 660 ; 'Efternamn :';E$(I%) : ; 670 ; 'Adress :';A$(I%) : ; 680 ; 'Postnr :';P$(I%) : ; 690 ; 'Ort :';O$(I%) : ; 700 ; 'Tfnnr :';T$(I%) : ; 710 ; ;'Tryck en tangent f|r att forts{tta'; 720 GET C$ 730 RETURN 740 IF N%=0% RETURN 750 ; CHR$(12%,7%)CUR(10%,7%)' [r skrivaren klar ? '; 760 GET C$ : IF C$='J' OR C$='j' 770 ELSE 190 770 ; CHR$(12%)CUR(10%,3%)' Listan kommer nu p} skrivaren ' 780 OPEN 'PR:' ASFILE 1% 790 FOR I%=1% TO N% 800 ; #1,TAB(8%)'F|rnamn :'F$(I%)TAB(45%)'F|rnamn :'F$(I%+1%) 810 ; #1,TAB(8%)'Efternamn :'E$(I%)TAB(45%)'Efternamn :'E$(I%+1%) 820 ; #1,TAB(8%)'Adress :'A$(I%)TAB(45%)'Adress :'A$(I%+1%) 830 ; #1,TAB(8%)'Postnr :'P$(I%)TAB(45%)'Postnr :'P$(I%+1%) 840 ; #1,TAB(8%)'Ort :'O$(I%)TAB(45%)'Ort :'O$(I%+1%) 850 ; #1,TAB(8%)'Tfnnr :'T$(I%)TAB(45%)'Tfnnr :'T$(I%+1%) 860 IF I%=17% OR I%=35% OR I%=53% OR I%=71% OR I%=89% ; #1CHR$(11%) 870 FOR T=0 TO 3500 : NEXT T : REM  Tas bort om skrivaren klarar X-ON  880 I%=I%+1% : ; #1 : NEXT I% : ; #1%CHR$(12%) 890 CLOSE 1% 900 RETURN 910 IF N%=0% RETURN 920 ; CHR$(12%)TAB(10%)' Radera hel post ' : ; : ; 930 ; CUR(8%,2%)'Om return nedtrycks skrollas listan' 940 ; CUR(10%,8%)'Vilket namn skall s|kas' 950 ; CUR(12%,8%); : INPUTLINE D$ : GOSUB 2120 960 FOR I%=1 TO N% 970 IF INSTR(1%,F$(I%),D$) OR INSTR(1%,E$(I%),D$) B%=1% : GOSUB 1050 980 NEXT I% 990 IF B%=1% GOTO 2170 1000 ; CHR$(7)CUR(14,5)'Post med namnet 'D$ 1010 ; CUR(16,5)'finns ej i registret.' 1020 ; CUR(18,3)'Tryck en tangent f|r huvudmenyn'; 1030 GET C$ 1040 RETURN 1050 ; CHR$(12) 1060 ; 'Post nr #'I%' av'N% : ; : ; 1070 ; 'F|rnamn :';F$(I%) : ; 1080 ; 'Efternamn :';E$(I%) : ; 1090 ; 'Adress :';A$(I%) : ; 1100 ; 'Postnr :';P$(I%) : ; 1110 ; 'Ort :';O$(I%) : ; 1120 ; 'Tfnnr :';T$(I%) : ; 1130 ; : ; TAB(14)'Radera (N)'; 1140 GET C$ 1150 IF C$='J' OR C$='j' GOSUB 1180 : N%=N%-1 : I%=I%-1 1160 IF I%>=N% GOTO 190 1170 RETURN 1180 ; CHR$(7%) : FOR K%=I% TO N% 1190 F$(K%)=F$(K%+1%) 1200 E$(K%)=E$(K%+1%) 1210 A$(K%)=A$(K%+1%) 1220 P$(K%)=P$(K%+1%) 1230 O$(K%)=O$(K%+1%) 1240 T$(K%)=T$(K%+1%) 1250 NEXT K% 1260 RETURN 1270 ; CHR$(12)TAB(10)' LADDA IN FILER ' : ; 1280 ; : ; : ; TAB(11)'H{mta filer (N) ?'; 1290 GET C$ : Y%=1% : GOSUB 2300 1300 IF C$='J' OR C$='j' THEN 1320 1310 RETURN 1320 ONERRORGOTO 1510 1330 OPEN 'DR1:ADRESSER.SEQ' ASFILE 1% 1340 INPUT #1,N% 1350 FOR I%=1 TO N% 1360 INPUTLINE #1,D$ 1370 GOSUB 2120 : B$=D$ : GOSUB 2310 : F$(I%)=R$ 1380 INPUTLINE #1,D$ 1390 GOSUB 2120 : B$=D$ : GOSUB 2310 : E$(I%)=R$ 1400 INPUTLINE #1,D$ 1410 GOSUB 2120 : B$=D$ : GOSUB 2310 : A$(I%)=R$ 1420 INPUTLINE #1,D$ 1430 GOSUB 2120 : B$=D$ : GOSUB 2310 : P$(I%)=R$ 1440 INPUTLINE #1,D$ 1450 GOSUB 2120 : B$=D$ : GOSUB 2310 : O$(I%)=R$ 1460 INPUTLINE #1,D$ 1470 GOSUB 2120 : B$=D$ : GOSUB 2310 : T$(I%)=R$ 1480 NEXT I% 1490 CLOSE 1% 1500 RETURN 1510 ONERRORGOTO 2100 1520 OPEN 'CAS:ADRESSER.SEQ' ASFILE 1 1530 GOTO 1340 1540 IF N%=0 RETURN 1550 ; CHR$(12)TAB(11)' SPARA FILER ' : ; 1560 ; : ; : ; TAB(10)'Spara filer (N) ?'; 1570 GET C$ : Y%=-1% : GOSUB 2300 1580 IF C$='J' OR C$='j' 1600 1590 RETURN 1600 ONERRORGOTO 1730 1610 PREPARE 'DR1:ADRESSER.SEQ' ASFILE 1 1620 ; #1,N% 1630 FOR I%=1 TO N% 1640 B$=F$(I%) : GOSUB 2310 : ; #1,R$ 1650 B$=E$(I%) : GOSUB 2310 : ; #1,R$ 1660 B$=A$(I%) : GOSUB 2310 : ; #1,R$ 1670 B$=P$(I%) : GOSUB 2310 : ; #1,R$ 1680 B$=O$(I%) : GOSUB 2310 : ; #1,R$ 1690 B$=T$(I%) : GOSUB 2310 : ; #1,R$ 1700 NEXT I% 1710 CLOSE 1% 1720 RETURN 1730 ONERRORGOTO 2100 1740 PREPARE 'CAS:ADRESSER.SEQ' ASFILE 1% 1750 GOTO 1620 1760 IF N%=0% RETURN 1770 ; CHR$(12%)TAB(11%)' [ndra i post ' : ; : ; 1780 ; CUR(8%,2%)'Om return nedtrycks skrollas listan' 1790 ; CUR(10%,8%)'Vilket namn skall s|kas' 1800 ; CUR(12%,8%); : INPUTLINE D$ : GOSUB 2120 1810 FOR I%=1% TO N% 1820 IF INSTR(1%,F$(I%),D$) OR INSTR(1%,E$(I%),D$) B%=1% : GOSUB 1910 1830 NEXT I% 1840 IF B%=1% GOTO 2170 1850 ; CHR$(12%,7%) 1860 ; CUR(8%,4%)'Namnet 'D$ 1870 ; CUR(10%,4%)'finns ej i registret.' 1880 ; CUR(12%,4%)'Tryck en tangent f|r huvudmenyn'; 1890 GET C$ : IF C$='' 1890 1900 RETURN 1910 ; CHR$(12%) : ; : ; 1920 ; 'Pos 1.F|rnamn :'F$(I%) : ; 1930 ; 'Pos 2.Eft.namn:'E$(I%) : ; 1940 ; 'Pos 3.Adress :'A$(I%) : ; 1950 ; 'Pos 4.Postnr :'P$(I%) : ; 1960 ; 'Pos 5.Ort :'O$(I%) : ; 1970 ; 'Pos 6.Tfnnr :'T$(I%) 1980 ; CUR(20%,9%)'Vad skall {ndras'; : GET Z$ 1990 C%=ASC(Z$) : C%=C%-48% 2000 IF C%<1% OR C%>6% RETURN 2010 ; CUR(20%,9%)SPACE$(25) 2020 ON C% GOSUB 2040,2050,2060,2070,2080,2090 2030 IF B%=1% GOTO 1830 ELSE RETURN 2040 R%=3% : K1%=15% : L%=18% : GOSUB 2210 : F$(I%)=S$ : I%=I%-1% : RETURN 2050 R%=5% : K1%=15% : L%=23% : GOSUB 2210 : E$(I%)=S$ : I%=I%-1% : RETURN 2060 R%=7% : K1%=15% : L%=23% : GOSUB 2210 : A$(I%)=S$ : I%=I%-1% : RETURN 2070 R%=9% : K1%=15% : L%=6% : GOSUB 2210 : P$(I%)=S$ : I%=I%-1% : RETURN 2080 R%=11% : K1%=15% : L%=15% : GOSUB 2210 : O$(I%)=S$ : I%=I%-1% : RETURN 2090 R%=13% : K1%=15% : L%=17% : GOSUB 2210 : T$(I%)=S$ : I%=I%-1% : RETURN 2100 L%=ERRCODE : ; CHR$(12%,7%)CUR(10%,12%)'E R R O R->'L% : CLOSE 1% 2110 FOR T=0 TO 4000 : NEXT T : GOTO 190 2120 D$=LEFT$(D$,LEN(D$)-2%) : RETURN 2130 DEFFNB%(J%,Y%)=J%-(Y%*Z0%) 2140 DEFFNC%=ASC(MID$(B$,J%,1%)) 2150 DEFFNA%(Z%)=Z%+((Z%>126)-(Z%<32))*X1% 2160 ; CHR$(12%,7%)CUR(10%,9%)'PROGRAMMET AVSLUTAS' : CHAIN '' 2170 ; CHR$(12%,7%)CUR(8%,0%)'Det finns inga fler registrerade med' 2180 ; : ; 'namnet 'D$ 2190 ; : ; 'Tryck en tangent f|r huvudmenyn'; 2200 GET C$ : B%=0% : GOTO 190 2210 ; CUR(R%,K1%); : S$='' 2220 GET G$ : IF G$=CHR$(13%) GOTO 2280 2230 IF LEN(S$)0% S$=LEFT$(S$,LEN(S$)-1%) : ; CUR(R%,K1%+LEN(S$))' ' : GOTO 2270 ELSE GOTO 2210 2260 IF LEN(S$)