The files included make up two modules to be used with SDL. If you have MAKE, the included MAKEFILE can be used to compile and link all of the modules (the UNSDL program, the CC module and the DUMP module) by just saying MAKE. You may compile individually by saying MAKE UNSDL, MAKE CC or MAKE DUMP if you prefer. If you don't have make, you can use @COMPILE to compile everything. To actually use these modules, you need to define SDL$SHARE to point to the directory in which the executable reside, i.e. $ DEFINE SDL$SHARE SYS$DISK:[] ! current directory You also need to extract the modules from SYS$SHARE:STARLETSD. For example, if you wanted $JPIDEF you would extract STARDEFFL out of the library, i.e. $ LIBRARY/EXTRACT=STARDEFFL/OUT=STARDEFFL.SDI/TEXT SYS$SHARE:STARDEFFL All of the modules normally found in the STARLET macro library are chunked together in sections, alphabetically by module name. The above is the section going from F to L, hence the name. You will then need to define the UNSDL command after modifying UNSDL.CLD, i.e. SET COMMAND UNSDL UNSDL simply sets up some symbols and then executes the proper SDL/NOPARSE/LANGUAGE=... command. The symbols are then read by the language module (the DUMP module ignores them currently) and modifies its actions accordingly. See UNSDL.CLD for a description of the command qualifiers and what they affect. Note that not all are necessarily implemented. The CC module allows you to specify other options if you use UNSDL. To specify these options, you must use a command of the form UNSDL/LANGUAGE=CC="options", where 'options' is a comma separated list. The following are the valid options: INDENT=value number of spaces to indent for structures/unions MASK=[HEX | DECIMAL] us HEX or DECIMAL masks for #define CASE=[ORIGINAL | MIXED | UPPER | LOWER] select the case to use, ORIGINAL specifies that the original case is to be used, MIXED specifies that #defines will be done in uppercase, and structure/union/variable declarations will be done in lower case. UPPER specifies that everything will be uppercased, and LOWER specifies that everything will be lowercased. Note that this does not modify text in comments.. [NO]PROTOTYPES specifies that function prototypes are to be used. Note that this feature is a use at your own risk adventure. I've noticed several functions which were declared wrong in the original SDL files.. (i.e. lib$getjpi, lib$getdvi, lib$getsyi) [NO]COMMENTS specifies wether to include comments or not. Can reduce the size significantly if you use NOCOMMENTS MODULES=(module-list) Allows you to extract a single module (or list of modules). The module name(s) can be wildcarded. [NO]SEPARATE Specifies that separate output files are to be created for each module. The files will be named according to the module name.