1 REM *******************************
2 REM * DIDEDIT .BAC *
3 REM * VER 1.1 / 1982-03-02 *
4 REM * Gjort av Nils H{ggblom *
5 REM * Mod. av Nils H{ggblom *
6 REM * Ins{nt av Nils H{ggblom *
7 REM *******************************
8 REM
9 N0%=100% : N1%=25% : REM Max. poster,f{ltl{ngd
10 DIM A$(N0%)=N1%*2%,A%(N0%),B%(N0%),A$=1%,B$=120%,X$=120%,Y$=1%,C$=8%,D0$=6%
11 IF PEEK(65420%)=0% 124
12 ON PEEK(65420%) GOTO 15,103
13 DEFFNP%(X)=X*100%+.5
14 ; CUR(0%,0%); : CHAIN 'Didactos'
15 REM Skapa fil
16 IF CALL(65424%,0%)>19% D0$='Dr 0:' ELSE IF CALL(65424%,1%)>19% D0$='Dr 1:'
17 ; CHR$(12%),'Skapa fil'
18 ; ,CHR$(8%,151%)'#########'
19 FOR X%=0% TO N0% : A$(X%)='' : A%(X%)=0% : B%(X%)=0% : NEXT X% : B$=''
20 ; CUR(11%,37%)'$'
21 ; CUR(7%,0%)'Mata in rubrikinstruktioner f|r filen:' : ; : INPUTLINE X$ : X$=LEFT$(X$,LEN(X$)-2%)
22 IF LEN(X$)>=117% X$=LEFT$(X$,117%)
23 IF X$<>'' B$=X$ : F%=1%
24 L%=N1%
25 ; CUR(3%,0%)'Mata in listan som skall f|rh|ras.'CUR(19%,0%)'Bl{ddra:(<),(RETURN) Stryk:(#)'
26 ; 'R{tta :(<-),(->),(CTRL)+(X) Slut :($)';
27 IF N%>N0%-1% N%=N%-1%
28 ; CUR(7%,0%)SPACE$(400%)CUR(16%,0%)'Post'N%+1%TAB(15%)'Inmatade :'M%
29 GOSUB 117
30 IF M%=N% AND V%=0% A$(N%)=SPACE$(N1%*2%)
31 FOR Z%=1% TO 2% : ; CUR(4%+3%*Z%,0%)'F{lt'Z%': 'SPACE$(N1%)'$'STRING$(N1%+1%,8%);
32 IF LEN(A$(N%))=N1%*2% ; MID$(A$(N%),Z%*N1%-N1%+1%,N1%)
33 NEXT Z%
34 FOR Z%=1% TO 2%
35 Z$=MID$(A$(N%),Z%*N1%-N1%+1%,N1%)
36 X%=CALL(65470%)
37 ; CUR(4%+3%*Z%,8%); : GOSUB 48
38 IF X$='<' IF N% N%=N%-1% : GOTO 27 ELSE 35
39 IF X$=CHR$(13%) IF N%N0% N%=N%-1% : V%=0%
46 N%=N%+1% : IF N%>M% M%=M%+1% : V%=0%
47 GOTO 27
48 REM Begr{nsad inmatning
49 X$=''
50 X%=LEN(X$) : GET Y$ : Y%=ASC(Y$)
51 IF Y%=13% OR Y%=60% Z$=''
52 IF (Y$='<' OR Y$=CHR$(13%)) AND L%<>8% AND X%=0% X$=Y$ : RETURN
53 IF Y%=13% IF X%<>0% IF L%=8% 66 ELSE ; SPACE$(N1%-X%); : RETURN ELSE IF L%=8% 61 ELSE 50
54 IF X%=L% AND Y%<>8% AND Y%<>24% 50
55 IF Y%=8% IF X% X$=LEFT$(X$,X%-1%) : ; CHR$(8%,32%,8%);
56 IF Y%=9% AND L%=N1% AND LEN(Z$) Y$=LEFT$(Z$,1%) : Z$=RIGHT$(Z$,2%) : GOTO 59
57 IF Y%=24% X$='' : ; SPACE$(L%-X%)STRING$(L%,8%)SPACE$(X%)STRING$(X%,8%); : GOTO 50
58 IF Y%<32% OR Y%>127% 50
59 ; Y$; : X$=X$+Y$
60 GOTO 50
61 FOR X%=65408% TO 65415%
62 Y%=PEEK(X%) : IF Y%=13% 65 ELSE IF Y%>47% AND Y%<58% 64 ELSE Y%=Y% AND 95%
63 IF Y%<65% OR Y%>93% 50
64 X$=X$+CHR$(Y%) : NEXT X%
65 ; X$; : RETURN
66 IF X$='$' RETURN ELSE FOR X%=1% TO LEN(X$)
67 POKE X%+65407%,ASC(RIGHT$(X$,X%))
68 NEXT X% : POKE X%+65407%,13% : RETURN
69 REM Radera post
70 FOR X%=N% TO M%-1%
71 A$(X%)=A$(X%+1%)
72 A%(X%)=A%(X%+1%)
73 B%(X%)=B%(X%+1%)
74 NEXT X% : A%(X%)=0% : B%(X%)=0%
75 M%=M%-1% : RETURN
76 REM Existerar fil x$?
77 X%=0%
78 ONERRORGOTO 81
79 OPEN X$+'.did' ASFILE 1%
80 X%=1% : D0$='DR'+NUM$(PEEK(64769%))+':'
81 IF Z%=X% IF X% ; CUR(22%,0%)'Filen 'X$' finns.' ELSE ; CUR(22%,0%)'Filen 'X$' finns inte.' ELSE 83
82 ; ':'; : GET Y$
83 ; CUR(22%,0%)SPACE$(79%); : RETURN
84 REM Skriv fil
85 IF M%=0% OR F%=0% 14
86 Z%=1%
87 IF PEEK(65420%)=2% KILL D0$+C$+'.did' : X$=C$ : GOTO 93
88 ; CUR(7%,0%)SPACE$(520%)CUR(20%,0%)'Slut: ($)'SPACE$(35%)CUR(9%,0%)'Filnamn : $'STRING$(9%,8%);
89 L%=8% : GOSUB 48
90 IF X$='$' 14
91 GOSUB 76
92 IF Z%=X% 88 ELSE IF PEEK(65420%)=0% 106 ELSE ON PEEK(65420%) GOTO 93,106
93 ONERRORGOTO 96
94 PREPARE D0$+X$+'.did' ASFILE 1%
95 GOTO 97
96 ; CUR(22%,0%)'Ogiltiga tecken i filnamnet!'CHR$(7%); : GOTO 88
97 ; #1%B$
98 FOR X%=0% TO M%-1%
99 ; #1%A$(X%)CHR$(13%)A%(X%)CHR$(13%)B%(X%)
100 NEXT X%
101 CLOSE 1%
102 GOTO 14
103 REM Editera fil
104 ; CHR$(12%),'Editera fil' : ; ,CHR$(8%,151%)'###########'
105 Z%=0% : GOTO 88
106 OPEN D0$+X$+'.did' ASFILE 1%
107 C$=X$
108 INPUTLINE #1%,B$
109 B$=LEFT$(B$,LEN(B$)-2%)
110 ONERRORGOTO 115
111 INPUTLINE #1%,X$
112 A$(M%)=LEFT$(X$,LEN(X$)-2%)
113 INPUT #1%,A%(M%),B%(M%)
114 M%=M%+1% : GOTO 111
115 IF PEEK(65420%) ; CUR(9%,0%)B$SPACE$(118%-LEN(B$))
116 IF PEEK(65420%) 20 ELSE 127
117 REM ;Felfrekvens
118 ; CUR(14%,0%)'Fel : 1->2 :';
119 IF B%(N%) ; FNP%(1*A%(N%)/B%(N%))'%'; ELSE ; ' **';
120 X%=B%(N%)/256% : Y%=A%(N%)/256%
121 ; TAB(25%)'2->1 :';
122 IF X% ; FNP%(1*Y%/X%)'%' ELSE ; ' **'
123 RETURN
124 REM T|m felfrekvens
125 ; CHR$(12%),'T|m felfrekvens' : ; ,CHR$(8%,151%)'###############'
126 Z%=0% : GOTO 88
127 FOR X%=0% TO M%
128 A%(X%)=0% : B%(X%)=0%
129 NEXT X%
130 F%=1% : POKE 65420%,2% : GOTO 84
131 REM Skivorna fulla