96 REM 97 REM 98 REM 99 REM 100 REM ******************************* 101 REM * BYECHAIN.BAC * 102 REM * VER 1.0 / 1982-11-08 * 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 ; CHR$(12%); 109 ; TAB(14%)'BYE CHAIN' 110 ; TAB(13%)CHR$(23%)'#########' 111 ; 112 ; 'Detta program g|r det m|jligt att g|ra AUTOSTART utan att beh|va spendera ett obest{mt antal hundralappar'; 113 ; ' p} ett nytt DOS-ROM.' 114 ; 115 ; 'Det enda Medelsvensson beh|ver g|ra, {r att skriva BYE p} konsolen och vips (n}ja, n{stan ...) exekveras'; 116 ; ' det programsom vederb|rande programmerare best{mmernedan.' 117 ; CUR(16%,0%)'CMDINT.SYS i DR_:' 118 ; CUR(18%,0%)'Filnamnet :' 119 ; CUR(20%,0%)'Ledtext ?' 120 ; CUR(16%,15%); 121 GET X$ 122 ON INSTR(1%,'01'+CHR$(13%),X$)+1% GOTO 121,126,126,123 123 ; '*' 124 D0$='' 125 GOTO 128 126 ; X$ 127 D0$='Dr'+X$+':' 128 ONERRORGOTO 134 129 OPEN D0$+'Cmdint.sys' ASFILE 1% 130 CLOSE 1% 131 D0$='Dr'+NUM$(PEEK(64769%))+':' 132 KILL D0$+'Cmdint.sys' 133 GOTO 135 134 IF ERRCODE<>21% ; CHR$(12%)'Felet'ERRCODE' uppstod.' : END 135 L%=16% 136 ; CUR(18%,18%); 137 GOSUB 210 138 F$=X$ 139 ; CUR(20%,15%); 140 GOSUB 201 141 T$='' 142 IF NOT F% 166 143 ; CUR(16%,0%)SPACE$(240%)CUR(16%,0%); 144 ; 'T|m sk{rmen f|re utskrift ?' 145 ; : ; 'Cursorpositionering ?' 146 ; : ; 'Ledtexten :' 147 ; CUR(16%,28%); 148 GOSUB 201 149 T$=CHR$(7%) 150 IF F% T$=T$+CHR$(12%) 151 ; CUR(18%,22%); 152 GOSUB 201 153 IF NOT F% 163 154 ; CHR$(13%)SPACE$(30%)CHR$(13%); 155 ; 'Rad: Kolumn:' 156 L%=2% : T$=T$+CHR$(27%,61%) 157 FOR B%=0% TO 1% 158 ONERRORGOTO 158 159 ; CUR(18%,5%+B%*12%); 160 GOSUB 210 161 T$=T$+CHR$(VAL(X$)+32%) 162 NEXT B% 163 ; CUR(22%,0%); : L%=40% 164 GOSUB 210 165 T$=T$+X$ 166 REM Skriv ut CMDINT.SYS 167 ONERRORGOTO 194 168 PREPARE D0$+'Cmdint.sys' ASFILE 1% 169 Z%=CALL(28666%,1%) 170 Q0$=T$+SPACE$(46%-LEN(T$))+F$+SPACE$(16%-LEN(F$))+CHR$(13%) 171 RESTORE 172 FOR X%=0% TO 30% 173 IF X%=17% Q0$=Q0$+CHR$(LEN(T$)) : READ X$ : GOTO 176 174 READ Y% 175 Q0$=Q0$+CHR$(Y%) 176 NEXT X% 177 C%=0% 178 FOR X%=1% TO LEN(Q0$) 179 C%=C%+ASC(RIGHT$(Q0$,X%)) 180 NEXT X% 181 FOR X%=1% TO 7% 182 READ Y% 183 Q0$=CHR$(Y%)+Q0$ 184 NEXT X% 185 Q0$=Q0$+CHR$(C%) 186 FOR X%=1% TO 7% 187 READ Y% 188 Q0$=Q0$+CHR$(Y%) 189 NEXT X% 190 Q0$=Q0$+STRING$(144%,255%) 191 Z%=CALL(28670%,0%) 192 CLOSE 1% 193 END 194 REM Errror! 195 IF PEEK(64789%)<>128% 199 196 ; CUR(23%,0%)'St{ng luckan:'; 197 GET X$ 198 GOTO 166 199 ; CHR$(12%)'Felet'ERRCODE' uppstod.' : END 200 STOP 201 REM Ja/Nej 202 GET X$ 203 ON INSTR(1%,' jJnN',X$)/2%+1% GOTO 202,204,207 204 ; 'Ja'; 205 F%=65535% 206 RETURN 207 ; 'Nej'; 208 F%=0% 209 RETURN 210 REM *** Limited Input *** 211 R%=PEEK(65011%) 212 K%=PEEK(65012%) 213 R1%=R% : K1%=K% 214 IF L%>959%-K% L%=959%-K% 215 X$='' 216 P%=0% 217 X%=LEN(X$) 218 ; CUR(R1%,K1%); 219 GET Y$ 220 Y%=ASC(Y$) 221 \$=CHR$(Y%+64%) 222 IF X%=L% IF INSTR(1%,'BMIHA][',\$)=0% ; CHR$(7%); : GOTO 217 223 ON INSTR(1%,'MHIADBWQ][',\$)+1% GOTO 224,233,235,238,242,248,252,226,256,257,260 224 IF Y$<' ' OR Y$>'' 217 225 GOSUB 264 : X%=R1% 226 ; Y$; 227 GOSUB 264 228 IF R1%=X% AND K1%=0% R%=R%-1% 229 GOSUB 263 230 X$=LEFT$(X$,P%)+Y$+RIGHT$(X$,P%+1%) 231 P%=P%+1% 232 GOTO 217 233 IF X%<>0% RETURN ELSE 217 234 REM 235 GOSUB 267 236 GOTO 217 237 REM 238 IF P%=X% 217 239 P%=P%+1% 240 IF K1%=39% K1%=0% : R1%=R1%+1% ELSE K1%=K1%+1% 241 GOTO 217 242 IF P%=0% 217 243 X$=LEFT$(X$,P%-1%)+RIGHT$(X$,P%+1%) 244 GOSUB 264 : ; CUR(R%,K%)X$' '; 245 GOSUB 267 246 IF X%=P% P%=P%-1% : GOSUB 267 247 GOTO 217 248 IF LEN(Z$)=0% 217 249 Y$=LEFT$(Z$,1%) 250 Z$=RIGHT$(Z$,2%) 251 GOTO 224 252 X$=RIGHT$(X$,P%+1%) 253 ; CUR(R%,K%)X$SPACE$(X%-LEN(X$)); 254 R1%=R% : K1%=K% : P%=0% 255 GOTO 217 256 Y$=CHR$(3%) : GOTO 226 257 IF P%<40% 217 258 R1%=R1%-1% : P%=P%-40% 259 GOTO 217 260 IF X%-P%<40% 217 261 P%=P%+40% : R1%=R1%+1% 262 GOTO 217 263 ; RIGHT$(X$,P%+1%); : RETURN 264 R1%=PEEK(65011%) 265 K1%=PEEK(65012%) 266 RETURN 267 IF P% IF K1% K1%=K1%-1% ELSE K1%=39% : R1%=R1%-1% ELSE RETURN 268 P%=P%-1% 269 RETURN 270 DATA 62,118,50,51,253,62,255,50,129,253,33,179,110,34,10,254,1,X,0,33,0,192,205,11,0,33,46,192,195,76,13 271 DATA 255,0,63,192,0,94,0 272 DATA 0,0,0,192,63,63,192 273 REM Det tv} sista talen p} raden 270 {r startadressen f|r RUN. [ndra den om du har annan checksum- 274 REM ma {n 11273!