home *** CD-ROM | disk | FTP | other *** search
- (* ----------------------------------------------------------------------- *)
- (* DIRMT.PSP *)
- (* (c) 1987 Michael Ceol & PASCAL INT. *)
- (* System- und Compiler-spezifischer Teil der Directory-Bibliothek fuer *)
- (* ATARI TOS in Pascal ST Plus *)
- (* programmiert und getestet auf einem ST 1040 mit ROM-BS *)
- (* ----------------------------------------------------------------------- *)
- (* neue DTA-Adresse setzen bzw. aktuelle DTA-Adresse holen: *)
- PROCEDURE FSetDTA (DTA: DTA_Ptr); GEMDOS($1A);
- FUNCTION FGetDTA: DTA_Ptr; GEMDOS($2F);
- (* ----------------------------------------------------------------------- *)
- (* ersten Directory-Eintrag bzw. naechsten suchen: *)
- FUNCTION FSFirst (VAR search: Dir_Chr0; attr: INTEGER): INTEGER; GEMDOS($4E);
- FUNCTION FSNext: INTEGER; GEMDOS($4F);
- (* ----------------------------------------------------------------------- *)
- (* zwei Compiler-abhaengige Bit-Funktionen: *)
- (* Die Bits von "value" um "n" Stellen nach rechts shiften (verschieben): *)
- FUNCTION ShiftR (value, n: INTEGER): INTEGER;
- BEGIN ShiftR := SHR(value,n) END;
- (* Die Bits von "val1" und "val2" undieren: *)
- FUNCTION AndInt (val1, val2: INTEGER): INTEGER;
- BEGIN AndInt := val1 & val2 END;
- (* ----------------------------------------------------------------------- *)
- (* nochmal zwei eventuell anzupassende Routinen, die hier aber fuer *)
- (* Turbo Pascal und Pascal ST Plus gleich sind: *)
- (* Integer-Wert zu einer 'n'-stelligen Zeichenkette mit fuehrenden Nullen: *)
- PROCEDURE IntStr (value, n: INTEGER; VAR s: Dir_Str);
- VAR i : INTEGER; Ch: CHAR;
- BEGIN
- s := '';
- FOR i := 1 TO n DO BEGIN
- s := Concat(Chr((value MOD 10)+Ord('0')),s); value := value DIV 10;
- END;
- END;
- (* wg. negativen Integer-Werten bei grossen Dateigroessen selbigen Wert zu *)
- (* einem positiven Real-Wert konvertieren: *)
- FUNCTION IntCard (i: INTEGER): REAL;
- BEGIN IF i < 0 THEN IntCard := 65536.0 + i ELSE IntCard := i; END;
- (* ----------------------------------------------------------------------- *)
- (* DIRMT.PSP *)