100 REM ******************************* 101 REM * DIDSORT .BAC * 102 REM * VER 1.0 / 1982-03-02 * 103 REM * Gjort av Nils H{ggblom * 104 REM * Mod. av Nils H{ggblom * 105 REM * Ins{nt av Nils H{ggblom * 106 REM ******************************* 107 REM 108 DEFFNF(X%)=((A%(X%)/D% AND 255%)+0)/(B%(X%)/D% AND 255%) 109 N0%=100% : N1%=25% : REM Max. poster,f{ltl{ngd 110 DIM A$(N0%)=N1%*2%,A%(N0%),B%(N0%),A$=1%,B$=120%,X$=120%,Y$=1%,C$=8% 111 F%=PEEK(65420%)-7% 112 A%(0%)=11% : A%(1%)=16% : A%(2%)=22% 113 ; CHR$(12%), : IF F% IF F%=1% ; 'Slumpsortera fil' ELSE ; 'Felfrekvenssortera fil' ELSE ; 'Sortera fil' 114 ; ,CHR$(8%,151%)STRING$(A%(F%),35%) 115 GOTO 165 116 OUT 6%,128% : CHAIN 'Didactos' 117 REM Begr{nsad inmatning 118 X$='' 119 X%=LEN(X$) : GET Y$ : Y%=ASC(Y$) 120 IF Y%=13% IF X%<>0% IF L%=8% 132 ELSE RETURN ELSE IF L%=8% 126 ELSE 119 121 IF X%=L% AND Y%<>8% 119 122 IF Y%=8% IF X% X$=LEFT$(X$,X%-1%) : ; CHR$(8%,32%,8%); 123 IF Y%<32% OR Y%>127% 119 124 ; Y$; : X$=X$+Y$ 125 GOTO 119 126 FOR X%=65408% TO 65415% 127 Y%=PEEK(X%) : IF Y%=13% 131 128 IF Y%>47% AND Y%<58% 130 ELSE Y%=Y% AND 95% 129 IF Y%<65% OR Y%>93% 119 130 X$=X$+CHR$(Y%) : NEXT X% 131 ; X$; : RETURN 132 IF X$='$' RETURN ELSE FOR X%=1% TO LEN(X$) 133 POKE X%+65407%,ASC(RIGHT$(X$,X%)) 134 NEXT X% : POKE X%+65407%,13% : RETURN 135 REM Existerar fil X$? 136 X%=0% 137 ONERRORGOTO 141 138 OPEN X$+'.did' ASFILE 1% 139 X%=1% 140 D0$='Dr'+NUM$(PEEK(64769%))+':' 141 IF Z%=X% IF X% ; CUR(22%,0%)'Filen 'X$' finns.' ELSE ; CUR(22%,0%)'Filen 'X$' finns inte.' ELSE 143 142 ; ':'; : GET Y$ 143 ; CUR(22%,0%)SPACE$(79%); : RETURN 144 REM Skriv fil 145 KILL D0$+C$+'.did' 146 PREPARE D0$+C$+'.did' ASFILE 1% 147 ; #1%B$ 148 FOR X%=0% TO M% 149 ; #1%A$(X%)CHR$(13%)A%(X%)CHR$(13%)B%(X%) 150 NEXT X% 151 CLOSE 1% 152 GOTO 116 153 REM L{s fil 154 OPEN D0$+X$+'.did' ASFILE 1% 155 C$=X$ 156 INPUTLINE #1%,B$ 157 B$=LEFT$(B$,LEN(B$)-2%) 158 ONERRORGOTO 163 159 INPUTLINE #1%,X$ 160 A$(M%)=LEFT$(X$,LEN(X$)-2%) 161 INPUT #1%,A%(M%),B%(M%) 162 M%=M%+1% : GOTO 159 163 ; CUR(8%,0%)'Rubrikinstruktioner:' : ; : ; B$ 164 M%=M%-1% : GOTO 170 165 Z%=0% : ; CUR(4%,0%)SPACE$(40%)CUR(4%,0%)'Filnamn : $'STRING$(9%,8%); : L%=8% : GOSUB 117 166 IF X$='$' 116 167 GOSUB 135 168 IF Z%=X% 165 169 GOTO 153 170 REM Sortera fil 171 IF F%=1% RANDOMIZE : GOTO 181 172 ; CUR(15%,0%)'Sortering utg}ende fr}n f{lt '; : GET X$ : IF X$<>'1' AND X$<>'2' 172 173 ; X$ : IF F%=2% IF X$='1' D%=1% ELSE D%=256% ELSE 175 174 GOTO 181 175 IF X$='1' E%=0% ELSE E%=25% 176 ; CUR(17%,0%)'Fr.o.m. tecken '; 177 L%=2% : GOSUB 117 : ; ' ' 178 ONERRORGOTO 176 179 X%=VAL(X$) : IF X%<1% OR X%>N1% 176 180 E%=E%+X% 181 FOR I%=0% TO M%-1% 182 FOR J%=I%+1% TO M% 183 ON F%+1% GOTO 184,185,186 184 IF RIGHT$(A$(I%),E%)FNF(J%) 190 187 X$=A$(I%) : A$(I%)=A$(J%) : A$(J%)=X$ 188 X%=A%(I%) : A%(I%)=A%(J%) : A%(J%)=X% 189 X%=B%(I%) : B%(I%)=B%(J%) : B%(J%)=X% 190 NEXT J% 191 NEXT I% 192 OUT 6%,7% 193 ONERRORGOTO 0 : GOTO 144 194 IF (B%(J%)/D% AND 255%) 187 ELSE 190