home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / INFO / TURBOPAS / TURBOPW.ZIP / TURBOPW.PAS
Encoding:
Pascal/Delphi Source File  |  1985-12-28  |  8.8 KB  |  225 lines

  1. PROGRAM TurboPW;
  2.  
  3. {             T U R B O P W   1 R 0 D
  4.                      BY
  5.                 Marty Kleiman
  6.  
  7.     This program will build the TSS.SYS device driver
  8.   which at system boot will ask the user for a password.
  9.   The system will not allow the user to continue until the
  10.   correct passwod is given.  The following must by included
  11.   in the file CONFIG.SYS:
  12.  
  13.                     DEVICE = ANSI.SYS
  14.                     DEVICE = TSS.SYS
  15.  
  16.     This program may freely be copied, shared and distributed
  17.   but NOT sold for profit.
  18. }
  19.  
  20. {$V-,I-}
  21. VAR
  22.   b  : ARRAY[1..512] OF BYTE;
  23.   f1 : FILE;
  24.   f2 : TEXT;
  25.   i  : INTEGER;
  26.   n  : INTEGER;
  27.   c  : CHAR;
  28.   pw : STRING[16];
  29.   w  : ARRAY[1..17] OF BYTE ABSOLUTE pw;
  30.  
  31. PROCEDURE ReBoot;
  32. VAR i : INTEGER;
  33. BEGIN
  34.   LowVideo;
  35.   TextColor (WHITE);
  36.   GoToXY (1,1);
  37.   ClrScr;
  38.   WriteLn (^G);
  39.   Intr ($19,i);
  40. END;
  41.  
  42. { Main Program }
  43.  
  44. BEGIN
  45.   GoToXY (1,1);
  46.   ClrScr;
  47.   TextColor (CYAN);
  48.   WriteLn ('TURBOPW 1R0D');
  49.   WriteLn ('By');
  50.   WriteLn ('Marty Kleiman');
  51.   WriteLn ('');
  52.   WriteLn ('This program will make your boot disk password protected.');
  53.   WriteLn ('The BOOT will not continue until the user enters the');
  54.   WriteLn ('valid password.');
  55.   WriteLn ('');
  56.   WriteLn ('The program will create 2 files on your BOOT disk');
  57.   WriteLn ('CONFIG.SYS and TSS.SYS which could be transfered to a');
  58.   WriteLn ('hard disk.');
  59.   WriteLn ('');
  60.   Writeln ('The program will ask you for a 1 to 15 char password');
  61.   WriteLn ('which will be the new password for the system.');
  62.   WriteLn ('');
  63.   WriteLn ('At any time use CTRL C to abort.');
  64.   WriteLn ('');
  65.   WriteLn ('Please insert a WRITE enabled copy of your boot disk');
  66.   Write ('in dirve a .  Press any key to continue...');
  67.   Read (KBD,c);
  68.   Assign (f1,'A:ANSI.SYS');
  69.   i := IOResult;
  70.   IF i <> 0 THEN
  71.     BEGIN
  72.      TextColor (WHITE);
  73.      WriteLn ('');
  74.      WriteLn ('Cannot find ANSI.SYS');
  75.      Halt;
  76.    END;
  77.   Reset (f1);
  78.   i := IOResult;
  79.   IF i <> 0 THEN
  80.     BEGIN
  81.       TextColor (WHITE);
  82.       WriteLn ('');
  83.       WriteLn ('Cannot find ANSI.SYS');
  84.       Halt;
  85.     END;
  86.   Assign (f1,'A:TSS.SYS');
  87.   i := IOResult;
  88.   IF i = 0 THEN
  89.     ReWrite (f1);
  90.   i := IOResult;
  91.   IF i <> 0 THEN
  92.     BEGIN
  93.       TextColor (WHITE);
  94.       WriteLn ('');
  95.       WriteLn ('Cannot Create TSS.SYS.');
  96.       Halt;
  97.     END;
  98.   Assign (f2,'A:CONFIG.SYS');
  99.   i := IOResult;
  100.   IF i = 0 THEN
  101.     ReWrite (f2);
  102.   i := IOResult;
  103.   IF i <> 0 THEN
  104.     BEGIN
  105.       TextColor (WHITE);
  106.       WriteLn ('');
  107.       WriteLn ('Cannot Create CONFIG.SYS.');
  108.       Halt;
  109.     END;
  110.   b[1] := $FF; b[2] := $FF; b[3] := $FF; b[4] := $FF; b[5] := $00;
  111.   b[6] := $80; b[7] := $71; b[8] := $00; b[9] := $E8; b[10] := $00; 
  112.   b[11] := $50; b[12] := $57; b[13] := $4F; b[14] := $52; b[15] := $44; 
  113.   b[16] := $10; b[17] := $20; b[18] := $20; b[19] := $20; b[20] := $20; 
  114.   b[21] := $20; b[22] := $20; b[23] := $20; b[24] := $20; b[25] := $20; 
  115.   b[26] := $20; b[27] := $20; b[28] := $20; b[29] := $20; b[30] := $20; 
  116.   b[31] := $20; b[32] := $20; b[33] := $10; b[34] := $00; b[35] := $00; 
  117.   b[36] := $00; b[37] := $00; b[38] := $00; b[39] := $00; b[40] := $00; 
  118.   b[41] := $00; b[42] := $00; b[43] := $00; b[44] := $00; b[45] := $00; 
  119.   b[46] := $00; b[47] := $00; b[48] := $00; b[49] := $00; b[50] := $00; 
  120.   b[51] := $00; b[52] := $00; b[53] := $00; b[54] := $00; b[55] := $00; 
  121.   b[56] := $00; b[57] := $00; b[58] := $00; b[59] := $CF; b[60] := $0D; 
  122.   b[61] := $0A; b[62] := $1B; b[63] := $5B; b[64] := $30; b[65] := $6D; 
  123.   b[66] := $45; b[67] := $6E; b[68] := $74; b[69] := $65; b[70] := $72; 
  124.   b[71] := $20; b[72] := $50; b[73] := $61; b[74] := $73; b[75] := $73; 
  125.   b[76] := $77; b[77] := $6F; b[78] := $72; b[79] := $64; b[80] := $3A; 
  126.   b[81] := $20; b[82] := $1B; b[83] := $5B; b[84] := $38; b[85] := $6D; 
  127.   b[86] := $24; b[87] := $0D; b[88] := $0A; b[89] := $1B; b[90] := $5B; 
  128.   b[91] := $30; b[92] := $6D; b[93] := $50; b[94] := $61; b[95] := $73; 
  129.   b[96] := $73; b[97] := $77; b[98] := $6F; b[99] := $72; b[100] := $64; 
  130.   b[101] := $20; b[102] := $61; b[103] := $63; b[104] := $63; b[105] := $65; 
  131.   b[106] := $70; b[107] := $74; b[108] := $65; b[109] := $64; b[110] := $2E; 
  132.   b[111] := $0D; b[112] := $0A; b[113] := $24; b[114] := $2E; b[115] := $89; 
  133.   b[116] := $1E; b[117] := $36; b[118] := $00; b[119] := $2E; b[120] := $8C; 
  134.   b[121] := $06; b[122] := $38; b[123] := $00; b[124] := $CB; b[125] := $B8; 
  135.   b[126] := $00; b[127] := $00; b[128] := $8E; b[129] := $C0; b[130] := $26; 
  136.   b[131] := $A1; b[132] := $6C; b[133] := $00; b[134] := $A3; b[135] := $32; 
  137.   b[136] := $00; b[137] := $26; b[138] := $A1; b[139] := $6E; b[140] := $00; 
  138.   b[141] := $A3; b[142] := $34; b[143] := $00; b[144] := $26; b[145] := $C7; 
  139.   b[146] := $06; b[147] := $6C; b[148] := $00; b[149] := $3A; b[150] := $00; 
  140.   b[151] := $26; b[152] := $8C; b[153] := $0E; b[154] := $6E; b[155] := $00; 
  141.   b[156] := $C3; b[157] := $B8; b[158] := $00; b[159] := $00; b[160] := $8E; 
  142.   b[161] := $C0; b[162] := $A1; b[163] := $32; b[164] := $00; b[165] := $26; 
  143.   b[166] := $A3; b[167] := $6C; b[168] := $00; b[169] := $A1; b[170] := $34; 
  144.   b[171] := $00; b[172] := $26; b[173] := $A3; b[174] := $6E; b[175] := $00; 
  145.   b[176] := $C3; b[177] := $EB; b[178] := $06; b[179] := $B0; b[180] := $07; 
  146.   b[181] := $B4; b[182] := $0E; b[183] := $CD; b[184] := $10; b[185] := $BA; 
  147.   b[186] := $3B; b[187] := $00; b[188] := $B4; b[189] := $09; b[190] := $CD; 
  148.   b[191] := $21; b[192] := $BA; b[193] := $20; b[194] := $00; b[195] := $B4; 
  149.   b[196] := $0C; b[197] := $B0; b[198] := $0A; b[199] := $CD; b[200] := $21; 
  150.   b[201] := $8C; b[202] := $C8; b[203] := $8E; b[204] := $C0; b[205] := $BE; 
  151.   b[206] := $21; b[207] := $00; b[208] := $BF; b[209] := $0F; b[210] := $00; 
  152.   b[211] := $B5; b[212] := $00; b[213] := $8A; b[214] := $0C; b[215] := $3A; 
  153.   b[216] := $0D; b[217] := $75; b[218] := $D8; b[219] := $47; b[220] := $46; 
  154.   b[221] := $F3; b[222] := $A6; b[223] := $75; b[224] := $D2; b[225] := $BA; 
  155.   b[226] := $56; b[227] := $00; b[228] := $B4; b[229] := $09; b[230] := $CD; 
  156.   b[231] := $21; b[232] := $C3; b[233] := $1E; b[234] := $06; b[235] := $50; 
  157.   b[236] := $53; b[237] := $51; b[238] := $52; b[239] := $57; b[240] := $56; 
  158.   b[241] := $8C; b[242] := $C8; b[243] := $8E; b[244] := $D8; b[245] := $2E; 
  159.   b[246] := $C4; b[247] := $1E; b[248] := $36; b[249] := $00; b[250] := $26; 
  160.   b[251] := $8A; b[252] := $47; b[253] := $02; b[254] := $3C; b[255] := $00; 
  161.   b[256] := $75; b[257] := $03; b[258] := $EB; b[259] := $40; b[260] := $90; 
  162.   b[261] := $26; b[262] := $81; b[263] := $4F; b[264] := $03; b[265] := $03; 
  163.   b[266] := $80; b[267] := $EB; b[268] := $1D; b[269] := $90; b[270] := $26; 
  164.   b[271] := $81; b[272] := $4F; b[273] := $03; b[274] := $00; b[275] := $01; 
  165.   b[276] := $B8; b[277] := $00; b[278] := $00; b[279] := $8E; b[280] := $C0; 
  166.   b[281] := $8C; b[282] := $C8; b[283] := $8E; b[284] := $D8; b[285] := $B8; 
  167.   b[286] := $32; b[287] := $01; b[288] := $26; b[289] := $A3; b[290] := $98; 
  168.   b[291] := $01; b[292] := $8C; b[293] := $C8; b[294] := $26; b[295] := $A3; 
  169.   b[296] := $9A; b[297] := $01; b[298] := $5E; b[299] := $5F; b[300] := $5A; 
  170.   b[301] := $59; b[302] := $5B; b[303] := $58; b[304] := $07; b[305] := $1F; 
  171.   b[306] := $CB; b[307] := $1E; b[308] := $06; b[309] := $50; b[310] := $53; 
  172.   b[311] := $51; b[312] := $52; b[313] := $57; b[314] := $56; b[315] := $8C; 
  173.   b[316] := $C8; b[317] := $8E; b[318] := $D8; b[319] := $E8; b[320] := $6F; 
  174.   b[321] := $FF; b[322] := $EB; b[323] := $E6; b[324] := $06; b[325] := $FA; 
  175.   b[326] := $E8; b[327] := $34; b[328] := $FF; b[329] := $FB; b[330] := $E8; 
  176.   b[331] := $64; b[332] := $FF; b[333] := $FA; b[334] := $E8; b[335] := $4C; 
  177.   b[336] := $FF; b[337] := $FB; b[338] := $07; b[339] := $26; b[340] := $C7; 
  178.   b[341] := $47; b[342] := $0E; b[343] := $43; b[344] := $01; b[345] := $26; 
  179.   b[346] := $8C; b[347] := $4F; b[348] := $10; b[349] := $EB; b[350] := $AF; 
  180.  
  181.   WriteLn ('');
  182.   Write ('Enter Password: ');
  183.   TextColor (BLACK);
  184.   Read (pw);
  185.   n := Ord (pw[0]);
  186.   FOR i := 1 TO n+1 DO
  187.     b[i+15] := w[i];
  188.   Textcolor (CYAN);
  189.   WriteLn (' ');
  190.   WriteLn ('Creating TSS.SYS ....');
  191.   BlockWrite (f1,b,4,i);
  192.   i := IOResult;
  193.   IF i <> 0 THEN
  194.     BEGIN
  195.       TextColor (WHITE);
  196.       WriteLn ('');
  197.       WriteLn ('Error in creating TSS.SYS.');
  198.       Halt;
  199.     END;
  200.   Close (f1);
  201.   WriteLn ('Creating CONFIG.SYS ....');
  202.   WriteLn (f2,'DEVICE = ANSI.SYS');
  203.   i := IOResult;
  204.   IF i <> 0 THEN
  205.     BEGIN
  206.       TextColor (WHITE);
  207.       WriteLn ('');
  208.       WriteLn ('Error in creating CONFIG.SYS.');
  209.       Halt;
  210.     END;
  211.   WriteLn (f2,'DEVICE = TSS.SYS');
  212.   i := IOResult;
  213.   IF i <> 0 THEN
  214.     BEGIN
  215.       TextColor (WHITE);
  216.       WriteLn ('');
  217.       WriteLn ('Error in creating CONFIG.SYS.');
  218.       Halt;
  219.     END;
  220.   Close (f2);
  221.   Write ('Strike any key to reboot ...');
  222.   Read (KBD,c);
  223.   ReBoot;
  224. END.
  225.