With the SIMDIR program you can easily find out: > Which separately compiled modules are required by one or several main programs. > Which program modules require a certain separately compiled procedure or class. To start the program type: .R SIMDIR SIMDIR responds with a "*" , signalling that it is ready for a command. In the simplest case, you can now write: SEARCH /ALL REQUIRED BY main This will list all modules on your PPN which are used by the module main. main is usually a SIMULA main program, but can be a separately compiled module. SEARCH /ALL USING proc This will list all modules on your PPN which use the separately compiled module proc. You can precede the SEARCH command with a DIRECTORY command to tell the system to include other PPN:s in the search. For example, you can write: DIRECTORY [*,*] SEARCH /ALL USING proc This will give a listing of all SIMULA programs on all PPN:s which require your separately compiled procedure proc. As input SIMDIR requires ATR-files from separately compiled classes and procedures and REL-files from main programs. This means that SIMDIR only works when such ATR and REL files are present for the programs to be listed. The syntax of SIMDIR commands follows: ::= SEARCH [[]] ::= USING ! REQUIRED BY ::= [][][][] ::= ::= SELF ! OTHERS ! , ::= ! * ! ::= ! ::= / ::= ALL ! MAIN ! CLASSES ! PROCEDURES ! FPROCEDURES ! SPROCEDURES ! MPROCEDURES ! FAST ! TTY ::= : ::= SEARCH means that all modules matching the pattern will be searched for and listed. SEARCH means that all modules matching the pattern will be searched for and listed together with the modules which have the given relation to the modules. SEARCH means that all modules matching the first pattern and having the given relation to any module matching the second pattern are listed. A module matches a pattern when it matches all components of that pattern. If any component is missing in a pattern, then all modules match that component. The pattern may not be empty, however. There are two special PPN:s that you may use in a pattern: [SELF] is the LOGIN PPN. [OTHERS] stands for all PPN's except [SELF] which have been given in DIRECTORY commands. Explanation of switches: ALL All modules match MAIN Main programs match CLASSES Classes match PROCEDURES Procedures match FPROCEDURES FORTRAN procedures match MPROCEDURES MACRO-10 procedures match SPROCEDURES SIMULA procedures match FAST Do not output PPN TTY Change output device temporarily to TTY. ::= DIRECTORY ::= ! , ::= [] [] ::= /MAIN ! /-MAIN Include the given directories when searching. /MAIN means that all modules are fetched from this directory, /-MAIN that only external classes and procedures are fetched. Default is /-MAIN. ::= LIST Program output is written on the specified file. Default is DSK:SIMDIR.LST ::= CLOSE The current list file is closed. ::= EXIT Close current list file (if any) and return to monitor. ::= HELP [ /TTY ] Output help-text. All "reserved words" (upper case letters above) can be abbreviated arbitrarily. Any conflicts are resolved as follows : /M means /MAIN /F means /FAST When SIMDIR is started a *D[S]/M command is automatically performed. EXAMPLES: List all SIMULA modules on your own PPN .R SIMDIR *S/ALL . . . List those of your own modules which are used by others in the same project. .R SIMDIR *DIR [,*]/M *SEARCH [SELF] REQ BY [OTHERS] . . . [END OF SIMDIR.HLP]