home *** CD-ROM | disk | FTP | other *** search
- (* ------------------------------------------------- *)
- (* CHACON.PAS *)
- (* Interaktives Ändern der CONFIG.SYS beim Start *)
- (* (c) 1991 Martin Schimmelpfennig & DMV-Verlag *)
- (* ------------------------------------------------- *)
- PROGRAM ChaCon;
-
- USES Crt;
-
- CONST
- z = ['1'..'9'];
-
- VAR
- c : CHAR;
- f : TEXT;
- i, n : BYTE;
- e : STRING;
- s : ARRAY [1..25] OF STRING;
- w : BOOLEAN;
-
- BEGIN
- c := 'S';
- w := TRUE;
- REPEAT
- Assign(f, '\CONFIG.SY' + c);
- Reset(f);
- n := 0;
- WHILE NOT Eof(f) DO BEGIN
- Inc(n);
- ReadLn(f, s[n]);
- END;
- Close(f);
- REPEAT
- ClrScr;
- e[1] := #0;
- FOR i := 1 TO n DO WriteLn(i, ' ', s[i]);
- Write(#10, 'CONFIG ändern ? ');
- IF w THEN
- REPEAT
- Delay(15);
- Inc(i);
- UNTIL KeyPressed OR (i = 255);
- IF i < 255 THEN BEGIN
- ReadLn(e);
- IF e[0] <> #0 THEN w := FALSE;
- IF e[1] IN z THEN BEGIN
- i := Ord(e[1])-48;
- IF e[0] > #1 THEN
- i := i * 10 + Ord(e[2])-48;
- WriteLn('alte Zeile : ', s[i]);
- Write('neue Zeile : ');
- ReadLn(s[i])
- END ELSE
- c := e[1];
- END;
- UNTIL NOT(e[1] IN z);
- UNTIL w OR (e[0] = #0);
- IF w THEN Exit;
- Write(#10, 'speichern und booten ?');
- IF ReadKey IN ['j', 'J', #13] THEN BEGIN
- Assign(f, 'CONFIG.SYS');
- Rewrite(f);
- FOR i := 1 TO n DO WriteLn(f, s[i]);
- Close(f);
- (* Reboot: *)
- INLINE($B8/$34/$12/ (* MOV AX,1234h *)
- $BB/$40/$00/ (* MOV BX,0040h *)
- $8E/$C3/ (* MOV ES,BX *)
- $26/$A3/$72/$00/ (* MOV ES:[0072h],AX *)
- $EA/$00/$00/$FF/$FF (* JMP FFFFh:0000h *)
- );
- END;
- END.
- (* ------------------------------------------------- *)
- (* Ende von CHACON.PAS *)
-
-