home *** CD-ROM | disk | FTP | other *** search
- (* ------------------------------------------------------ *)
- (* DISKPARM.PAS *)
- (* (c) 1989 by Hagen Lehmann & TOOLBOX *)
- (* ------------------------------------------------------ *)
- {$R-,S-,I-,D-,F-,V-,B-,N-,L-} { Geschwindigkeit }
- {$M 1024,0,0}
-
- USES Crt;
- Const CopyRight = 'PARM, (C) 1989 Hagen Lehmann & TOOLBOX';
- Options : Array [0..10] Of String[30]
- = ('Schrittrate : ',
- 'Nachlaufzeit : ',
- 'Wartezeit : ',
- 'Bytes/Sektor : ',
- 'Sektoren/Spur : ',
- 'Länge Freiraum : ',
- 'Disk Transfer Länge : ',
- 'Freiraum für format : ',
- 'Füllbyte : ',
- 'Ruhezeit : ',
- 'Startzeit : ');
- Parms : Array [0..12] Of String[5]
- = ('?', 'SHOW','/1B/','/2B/', '/MW/',
- '/BS/','/ST/','/GL/','/DTL/','/GLF/',
- '/FB/','/HS/','/MS/');
- Return = ^M^J;
- Var POffs : Integer ABSOLUTE 0:120;
- { Offset des INT $1E $1Ex4=120 }
- PSegm : Integer ABSOLUTE 0:122;
- { Segment des INT $1E }
- PDisk,
- Bits,
- Loop,
- Choice : Integer;
- Parameter : String;
- ErrorCode : Integer;
- ParmOK : Boolean;
-
- Function UpString(Source : String) : String;
- Begin
- For Loop := 1 To Length(Source) Do
- Source[Loop] := UpCase(Source[Loop]);
- UpString := Source;
- End;
-
- BEGIN
- Parameter := ParamStr(1);
-
- If (UpString(Parameter) = Parms[0]) Or
- (Length(Parameter)=0) Then Begin
- ClrScr;
- Writeln('Aufruf : PARM [/]Optionen[/Schalter]');
- Writeln;
- Writeln(' Optionen : '); Writeln;
- Writeln(' ? : Hilfe');
- Writeln(' /1B : Setzt Schrittrate.');
- Writeln(' /2B : Setzt Nachlaufzeit.');
- Writeln(' /MW : Setzt Warteperiode.');
- Writeln(' /BS : Setzt Bytes/Sektor.');
- Writeln(' /ST : Setzt Sektoren/Spur.');
- Writeln(' /GL : Setzt Länge Freiraum.');
- Writeln(' /DTL : Setzt Disk Transfer Länge.');
- Writeln(' /GLF : Setzt Freiraum für format.');
- Writeln(' /FB : Setzt Füllbyte.');
- Writeln(' /HS : Setzt Ruhezeit.');
- Writeln(' /MS : Setzt Startzeit.');
- Writeln(' Show : Zeigt alle Schalter.');
- End Else Begin
- Parameter := UpString(Parameter);
- Choice := 1;
- ParmOK := False;
- If Parameter = Parms[1] Then Begin
- Writeln(CopyRight, Return);
- Writeln(' List of all settings :', Return);
- For Loop := 0 To 10 Do
- Writeln(Options[Loop], Mem[PSegm:POffs+Loop]:3);
- { listet alle Werte }
- Halt;
- End;
- { Parameter prüfen }
- Repeat
- Choice := Choice + 1;
- If Pos(Parms[Choice],Parameter)=1 Then ParmOK := True;
- Until ParmOK Or (Choice=12);
- If Not ParmOK Then Choice := 0;
-
- If Choice > 1 Then Begin
- Choice := Choice - 2;
- Writeln(CopyRight, Return);
- Writeln('Old : ',Options[Choice],
- Mem[PSegm:POffs+Choice]);
- Delete(Parameter,Pos(Parms[Choice+2],Parameter),
- Length(Parms[Choice+2]));
- PDisk := Choice;
- Val(Parameter,Bits,ErrorCode);
- If ErrorCode=0 Then
- Mem[PSegm:POffs+PDisk] := Bits;
- Writeln('New : ',Options[Choice],
- Mem[PSegm:POffs+Choice]);
- Halt;
- End;
-
- Sound(800); Delay(50); Nosound;
- Writeln(Return,'" ',ParamStr(1),' "');
- Writeln(' Ungültige(r) Parameter: ');
- Writeln(' <PARM ?> für Hilfe');
- End;
- END.
- (* ------------------------------------------------------ *)
- (* Ende von DISKPARM.PAS *)