home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / spezial / 14 / tools / diskparm.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1989-03-29  |  3.9 KB  |  110 lines

  1. (* ------------------------------------------------------ *)
  2. (*                  DISKPARM.PAS                          *)
  3. (*        (c) 1989 by Hagen Lehmann & TOOLBOX             *)
  4. (* ------------------------------------------------------ *)
  5. {$R-,S-,I-,D-,F-,V-,B-,N-,L-}            { Geschwindigkeit }
  6. {$M 1024,0,0}
  7.  
  8. USES  Crt;
  9. Const CopyRight = 'PARM, (C) 1989 Hagen Lehmann & TOOLBOX';
  10.       Options   : Array [0..10] Of String[30]
  11.                 = ('Schrittrate           : ',
  12.                    'Nachlaufzeit          : ',
  13.                    'Wartezeit             : ',
  14.                    'Bytes/Sektor          : ',
  15.                    'Sektoren/Spur         : ',
  16.                    'Länge Freiraum        : ',
  17.                    'Disk Transfer Länge   : ',
  18.                    'Freiraum für format   : ',
  19.                    'Füllbyte              : ',
  20.                    'Ruhezeit              : ',
  21.                    'Startzeit             : ');
  22.       Parms     : Array [0..12] Of String[5]
  23.                 = ('?',   'SHOW','/1B/','/2B/', '/MW/',
  24.                    '/BS/','/ST/','/GL/','/DTL/','/GLF/',
  25.                    '/FB/','/HS/','/MS/');
  26.       Return    = ^M^J;
  27. Var   POffs     : Integer ABSOLUTE 0:120;
  28.                             { Offset des INT $1E $1Ex4=120 }
  29.       PSegm     : Integer ABSOLUTE 0:122;
  30.                             { Segment des INT $1E          }
  31.       PDisk,
  32.       Bits,
  33.       Loop,
  34.       Choice    : Integer;
  35.       Parameter : String;
  36.       ErrorCode : Integer;
  37.       ParmOK    : Boolean;
  38.  
  39. Function UpString(Source : String) : String;
  40. Begin
  41.   For Loop := 1 To Length(Source) Do
  42.     Source[Loop] := UpCase(Source[Loop]);
  43.   UpString := Source;
  44. End;
  45.  
  46. BEGIN
  47.   Parameter := ParamStr(1);
  48.  
  49.   If (UpString(Parameter) = Parms[0]) Or
  50.       (Length(Parameter)=0) Then Begin
  51.     ClrScr;
  52.     Writeln('Aufruf : PARM [/]Optionen[/Schalter]');
  53.     Writeln;
  54.     Writeln(' Optionen : ');  Writeln;
  55.     Writeln('  ?     : Hilfe');
  56.     Writeln('  /1B   : Setzt Schrittrate.');
  57.     Writeln('  /2B   : Setzt Nachlaufzeit.');
  58.     Writeln('  /MW   : Setzt Warteperiode.');
  59.     Writeln('  /BS   : Setzt Bytes/Sektor.');
  60.     Writeln('  /ST   : Setzt Sektoren/Spur.');
  61.     Writeln('  /GL   : Setzt Länge Freiraum.');
  62.     Writeln('  /DTL  : Setzt Disk Transfer Länge.');
  63.     Writeln('  /GLF  : Setzt Freiraum für format.');
  64.     Writeln('  /FB   : Setzt Füllbyte.');
  65.     Writeln('  /HS   : Setzt Ruhezeit.');
  66.     Writeln('  /MS   : Setzt Startzeit.');
  67.     Writeln('  Show  : Zeigt alle Schalter.');
  68.   End Else Begin
  69.     Parameter := UpString(Parameter);
  70.     Choice    := 1;
  71.     ParmOK    := False;
  72.     If Parameter = Parms[1] Then Begin
  73.       Writeln(CopyRight, Return);
  74.       Writeln('  List of all settings :', Return);
  75.       For Loop := 0 To 10 Do
  76.         Writeln(Options[Loop], Mem[PSegm:POffs+Loop]:3);
  77.                                        { listet alle Werte }
  78.       Halt;
  79.     End;
  80.                                         { Parameter prüfen }
  81.     Repeat
  82.       Choice := Choice + 1;
  83.       If Pos(Parms[Choice],Parameter)=1 Then ParmOK := True;
  84.     Until ParmOK Or (Choice=12);
  85.     If Not ParmOK Then Choice := 0;
  86.  
  87.     If Choice > 1 Then Begin
  88.       Choice := Choice - 2;
  89.       Writeln(CopyRight, Return);
  90.       Writeln('Old : ',Options[Choice],
  91.                Mem[PSegm:POffs+Choice]);
  92.       Delete(Parameter,Pos(Parms[Choice+2],Parameter),
  93.              Length(Parms[Choice+2]));
  94.       PDisk := Choice;
  95.       Val(Parameter,Bits,ErrorCode);
  96.       If ErrorCode=0 Then
  97.         Mem[PSegm:POffs+PDisk] := Bits;
  98.       Writeln('New : ',Options[Choice],
  99.                Mem[PSegm:POffs+Choice]);
  100.       Halt;
  101.     End;
  102.  
  103.     Sound(800);  Delay(50);  Nosound;
  104.     Writeln(Return,'" ',ParamStr(1),' "');
  105.     Writeln(' Ungültige(r) Parameter: ');
  106.     Writeln(' <PARM ?> für Hilfe');
  107.   End;
  108. END.
  109. (* ------------------------------------------------------ *)
  110. (*                  Ende von DISKPARM.PAS                 *)