1 REM Ins{nd av Kristoffer Eriksson <5357> 1988-06-25 03.59.36 (KERMIT) 20 ! Skapa register 30 ! PSSCRES. Av Kristoffer Eriksson <5357>, Mars 1985. Se PSSEKR.INF. 40 ! 50 ! 60 EXTEND 70 INTEGER 80 Dv$="" 90 LET Chain$="PSSINIT" 100 ; CHR$(12) "Skapa register" 110 ; STRING$(80,ASCII("=")) : ; 120 ! 130 ! *** TIDER (4) 140 ! F{ltnamn Typ Startpos, L{ngd som index, Verklig l{ngd i posten 150 ! --------------------------------------------------------------------- 160 ! Lisamfyllnad B 1 - 3 170 ! INDEX B 4 19 - 180 ! KONTO B 4 - 8 190 ! TABTYP B 5 - 1 200 ! OK A 13 - 1 210 ! DATUM B 14 - 3 220 ! ORDINGSNR B 17 - 1 230 ! TEXT A 18 - 38 240 ! Summa: 55 bytes 250 ! 260 ! Typer 0=Bin{rt, 1=ASCII, 2=Integer, 3=Float Single, 4=Float Double, 5=BCD 270 ! 280 ! 290 IF FNPrep("TIDER","Tid-registret") THEN 570 300 ! --- 310 ! 320 ! 330 PUT #2 CHR$(1) ! Isamfilversion 340 PUT #2 CHR$(255)+"TIDER DAT"+CHR$(3) 350 PUT #2 CVT%$(2) ! Antal index + 1 360 PUT #2 STRING$(9,0) 370 PUT #2 CVT%$(55) ! Postl{ngd 380 ! --- 390 ! 400 ! 410 PUT #2 "INDEX "+CHR$(3) 420 PUT #2 CVT%$(1) ! Indexnr 430 PUT #2 CHR$(1) ! Duplicerade nycklar till}tna 440 PUT #2 CVT%$(4) ! Startpos i post 450 PUT #2 CHR$(19) ! L{ngd p} index 460 PUT #2 CHR$(0) ! Typ=Bin{rt 470 PUT #2 CHR$(0,0,0,0) 480 ! --- 490 ! 500 ! 510 PUT #2 STRING$(2530+253-MOD(POSIT(2),253),0) 520 CLOSE 530 Z=FNChmod(255,"TIDER.ISM",0) ! --slslsl 540 Z=FNChmod(255,"TIDER.DAT",0) ! --slslsl 550 ; "Registret {r nu skapat." 560 ! 570 ! 580 ! 590 ! *** TELEREG (2) 600 ! F{ltnamn Typ Startpos, L{ngd som index, Verklig l{ngd i posten 610 ! --------------------------------------------------------------------- 620 ! Lisamfyllnad B 1 - 3 630 ! INDEX A 4 35 - 640 ! KONTO A 4 - 8 650 ! TEXT A 12 - 27 660 ! TELENR A 39 - 11 670 ! Summa: 49 bytes 680 ! 690 ! Typer 0=Bin{rt, 1=ASCII, 2=Integer, 3=Float Single, 4=Float Double, 5=BCD 700 ! 710 IF FNPrep("TELEREG","Telefon-registret") THEN 1010 720 ! --- 730 ! 740 ! 750 PUT #2 CHR$(1) ! Isamfilversion 760 PUT #2 CHR$(255)+"TELEREG DAT"+CHR$(3) 770 PUT #2 CVT%$(2) ! Antal index + 1 780 PUT #2 STRING$(9,0) 790 PUT #2 CVT%$(49) ! Postl{ngd 800 ! --- 810 ! 820 ! 830 PUT #2 "INDEX "+CHR$(3) 840 PUT #2 CVT%$(1) ! Indexnr 850 PUT #2 CHR$(1) ! Duplicerade nycklar till}tna 860 PUT #2 CVT%$(4) ! Startpos i post 870 PUT #2 CHR$(35) ! L{ngd p} index 880 PUT #2 CHR$(1) ! Typ=ASCII 890 PUT #2 CHR$(0,0,0,0) 900 ! --- 910 ! 920 ! 930 PUT #2 STRING$(2530+253-MOD(POSIT(2),253),0) 940 CLOSE 950 Z=FNChmod(255,"TELEREG.ISM",0) ! --slslsl 960 Z=FNChmod(255,"TELEREG.DAT",0) ! --slslsl 970 ; "Registret {r nu skapat." 980 ! 990 ! 1000 ! *** KOMIH]G (5) 1010 ! F{ltnamn Typ Startpos, L{ngd som index, Verklig l{ngd i posten 1020 ! --------------------------------------------------------------------- 1030 ! Lisamfyllnad B 1 - 3 1040 ! INDEX A 4 18 - 1050 ! KONTO A 4 - 8 1060 ! TABTYP B 12 - 1 1070 ! OK B 13 - 1 1080 ! TEXT A 14 - 38 1090 ! Summa: 51 bytes 1100 ! 1110 ! Typer 0=Bin{rt, 1=ASCII, 2=Integer, 3=Float Single, 4=Float Double, 5=BCD 1120 ! 1130 IF FNPrep("KOMIH]G","Komih}g-registret") THEN 1420 1140 ! --- 1150 ! 1160 ! 1170 PUT #2 CHR$(1) ! Isamfilversion 1180 PUT #2 CHR$(255)+"KOMIH]G DAT"+CHR$(3) 1190 PUT #2 CVT%$(2) ! Antal index + 1 1200 PUT #2 STRING$(9,0) 1210 PUT #2 CVT%$(51) ! Postl{ngd 1220 ! --- 1230 ! 1240 ! 1250 PUT #2 "INDEX "+CHR$(3) 1260 PUT #2 CVT%$(1) ! Indexnr 1270 PUT #2 CHR$(1) ! Duplicerade nycklar till}tna 1280 PUT #2 CVT%$(4) ! Startpos i post 1290 PUT #2 CHR$(18) ! L{ngd p} index 1300 PUT #2 CHR$(1) ! Typ=ASCII 1310 PUT #2 CHR$(0,0,0,0) 1320 ! --- 1330 ! 1340 ! 1350 PUT #2 STRING$(2530+253-MOD(POSIT(2),253),0) 1360 CLOSE 1370 Z=FNChmod(255,"KOMIH]G.ISM",0) ! --slslsl 1380 Z=FNChmod(255,"KOMIH]G.DAT",0) ! --slslsl 1390 ; "Registret {r nu skapat." 1400 ! 1410 ! 1420 ! *** KONTON (1) 1430 ! F{ltnamn Typ Startpos, L{ngd som index, Verklig l{ngd i posten 1440 ! --------------------------------------------------------------------- 1450 ! Lisamfyllnad B 1 - 3 1460 ! KONTO A 4 8 8 1470 ! GRUPP A 12 8 8 1480 ! PRIV B 20 - 1 1490 ! Summa: 20 bytes 1500 ! 1510 ! Typer 0=Bin{rt, 1=ASCII, 2=Integer, 3=Float Single, 4=Float Double, 5=BCD 1520 ! 1530 IF FNPrep("KONTON","Konto-registret") THEN 1920 1540 ! --- 1550 ! 1560 ! 1570 PUT #2 CHR$(1) ! Isamfilversion 1580 PUT #2 CHR$(255)+"KONTON DAT"+CHR$(3) 1590 PUT #2 CVT%$(3) ! Antal index + 1 1600 PUT #2 STRING$(9,0) 1610 PUT #2 CVT%$(20) ! Postl{ngd 1620 ! --- 1630 ! 1640 ! 1650 PUT #2 "KONTO "+CHR$(3) 1660 PUT #2 CVT%$(1) ! Indexnr 1670 PUT #2 CHR$(0) ! Duplicerade nycklar ej till}tna 1680 PUT #2 CVT%$(4) ! Startpos i post 1690 PUT #2 CHR$(8) ! L{ngd p} index 1700 PUT #2 CHR$(1) ! Typ=ASCII 1710 PUT #2 CHR$(0,0,0,0) 1720 ! --- 1730 ! 1740 ! 1750 PUT #2 "GRUPP "+CHR$(3) 1760 PUT #2 CVT%$(2) ! Indexnr 1770 PUT #2 CHR$(1) ! Duplicerade nycklar till}tna 1780 PUT #2 CVT%$(12) ! Startpos i post 1790 PUT #2 CHR$(8) ! L{ngd p} index 1800 PUT #2 CHR$(1) ! Typ=ASCII 1810 PUT #2 CHR$(0,0,0,0) 1820 ! --- 1830 ! 1840 ! 1850 PUT #2 STRING$(2530+253-MOD(POSIT(2),253),0) 1860 CLOSE 1870 Z=FNChmod(255,"KONTON.ISM",0) ! --slslsl (40=--sl-l-l) 1880 Z=FNChmod(255,"KONTON.DAT",0) ! --slslsl (40=--sl-l-l) 1890 ; "Registret {r nu skapat." 1900 ! 1910 ! 1920 ; : ; "Klart." 1930 I=0 : WHILE I<700 AND SYS(5)<128 1940 I=I+1 1950 WEND 1960 IF SYS(5)>127 THEN GET I$ 1970 ! 1980 GOTO 2080 ! ON ERROR GOTO 2000 : XSTM201 #99 I$ 1990 ! GOTO 2020 2000 ! IF ERRCODE=200 THEN 2080 ! Enheten (ISAM) ej ansluten 2010 ! 2020 ! ON ERROR GOTO 1110 : CHAIN "RAM:"+Chain$ 2030 ON ERROR GOTO 2040 : CHAIN Chain$ 2040 ; RED NWBG YEL CHR$(7) "> Hittar inte programmet '" Chain$ "' <" BLBG 2050 IF ERRCODE<>21 THEN ; "( Felkod" ERRCODE ")" 2060 ; "Tryck p} CE..."; 2070 I$="" : WHILE I$<>CHR$(24) : GET I$ : WEND 2080 ON ERROR GOTO 2090 : CHAIN "XS0" 2090 END 2100 ! 2110 ! 2120 ! 2130 DEF FNFel(N,Typ) LOCAL Gt$=1 2140 ; CHR$(7) RED NWBG YEL "> "; 2150 IF Typ=1 THEN ; FNBasicfel$(N); : GOTO 2180 2170 ON N GOSUB 2210 2180 ; " <" BLBG 2190 GET Gt$ 2200 RETURN N OR SWAP%(Typ) 2210 ; ; : RETURN 2220 FNEND 2230 ! 2240 DEF FNBasicfel$(X) 2250 IF X=21 THEN RETURN "Filen finns ej" 2260 IF X=22 THEN RETURN "Biblioteket finns ej" 2270 IF X=48 THEN RETURN "Fel i biblioteket" 2280 IF X=35 THEN RETURN "Kontrollsummafel vid l{sning" 2290 IF X=36 THEN RETURN "Kontrollsummafel vid skrivning." 2300 IF X=39 THEN RETURN "Filen skrivskyddad" 2310 IF X=40 THEN RETURN "Filen l{sskyddad" 2320 IF X=41 THEN RETURN "Skivan {r full" 2330 IF X=42 THEN RETURN "Enheten ej klar" 2340 IF X=43 THEN RETURN "Skivan skrivskyddad" 2350 IF X=46 THEN RETURN "Biblioteket ej inst{llt" 2360 IF X=52 THEN RETURN "G}r inte p} denna enhet" 2370 IF X=51 THEN RETURN "Enheten upptagen" 2380 RETURN "Felkod "+NUM$(X) 2390 FNEND 2400 ! 2510 DEF FNChmod(Dv,Fil$,Stat) LOCAL K$=22,K,F$=12,T,S 2520 RETURN 0 2660 FNEND 2740 ! 2750 DEF FNPrep(F$,T$) LOCAL I$=160 2760 ; T$ 2770 ON ERROR GOTO 2890 2780 OPEN Dv$+F$+".ISM" AS FILE 1 : OPEN Dv$+F$+".DAT" AS FILE 2 2790 CLOSE 2800 ; CHR$(7); 2810 ; "Registret finns redan! "; 2820 ; "Ska det verkligen " CHR$(138) FLSH "raderas" STDY CHR$(139); 2830 ON ERROR GOTO 2810 : INPUT " J/N ? ";I$ : ON ERROR GOTO 2840 IF I$="" THEN 2810 2850 I$=CHR$(ASCII(I$) AND 95) 2860 IF I$="N" THEN ; "Registret {r kvar." : RETURN -1 2870 IF I$<>"J" THEN 2800 2880 ! 2890 ON ERROR GOTO 2990 2900 ; "Registret skapas ..." CHR$(13); 2910 PREPARE Dv$+F$+".DAT" AS FILE 1 : CLOSE 1 2920 PREPARE Dv$+F$+".ISM" AS FILE 2 2930 RETURN 0 2940 ! 2950 IF ERRCODE=21 THEN 2890 2960 Z=FNFel(ERRCODE,1) 2970 GOTO 2820 2980 ! 2990 Z=FNFel(ERRCODE,1) : RETURN -1 3000 FNEND