{ Example program which calls some AmigaDOS routines to give a   }
{ directory listing. See the examples appendix for command lines }

PROGRAM examine( output, input );

INCLUDE 'libraries/dos.h';
INCLUDE 'libraries/dosextens.h';

VAR
 dirname : STRING[30];
 lock    : FileLockPtrType;
 info    : FileInfoBlockPtrType;

INCLUDE 'libraries/dos';

PROCEDURE outputinfo( info : FileInfoBlockPtrType );
VAR
 i : INTEGER;
BEGIN
 WITH info^ DO
 BEGIN
  WRITE( fib_FileName );
  FOR i := LENGTH( fib_FileName ) TO 25
  DO WRITE( ' ' );
  WRITE( fib_Size : 7, ' bytes ' );
  WRITELN( fib_NumBlocks : 5, ' blocks' );
 END
END;

BEGIN
 NEW( lock );
 NEW( info );

 GETTAIL( dirname );

 lock := Lock( dirname, ACCESS_READ );
 IF lock = NIL
 THEN HALT( 10 );

 IF Examine( lock, info ) = 0
 THEN HALT( 10 );

 WRITELN( 'Directory "', info^.fib_FileName, '"' );

 WHILE ExNext( lock, info ) <> 0
 DO outputinfo( info );

 UnLock( lock )
END.
