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!