The DSPINSTL command language is highly flexible and accommodates the many different kinds of operations that must be accomplished in the installation and configuration of OS/2 display drivers.
A set of DSPINSTL commands is packaged as a DSP file. Each DSP file must contain a KEY command that tags that DSP file. When a data chain element is interpreted by DSPINSTL, any DSP files in the current source directory that are tagged with that keyword are then interpreted. This is the mechanism that allows automatic execution.
The FILES command tells DSPINSTL which files to copy to the user's hard disk. Date/Time checking or file version checking can be performed as part of FILES command processing to help prevent inappropriate file copies from being done. This capability is an important DSPINSTL safety feature. The FILES command supports the installation of both packed and unpacked files. The use of packed files can greatly reduce the amount of space consumed on the display driver developer's diskettes.
The CONFIG, OS2INI, and WININI commands tell DSPINSTL to update the configuration in different types of system configuration files. There are three separate commands because the different types of OS/2 system configuration files require different styles of editing. The CONFIG command is used to update the CONFIG.SYS file. The OS2INI command is used to edit the various *.INI OS/2 system configuration files (such as OS2.INI or OS2SYS.INI). The WININI command is used to update the different WIN-OS/2 configuration files (such as WIN.INI and SYSTEM.INI). The configuration of OS/2 display drivers is particularly tricky because of the coordinated updates that are needed in different OS/2 configuration files.
The SET_DRIVER and SET_RESOLUTION commands are also configuration editing commands. In these two cases, rather than edit a specific configuration file, an OS/2 Graphics Engine function updates the system configuration. The additional level of data abstraction is necessary to support the architecture of the Graphics Engine, which is yet another complexity that is supported by the DSPINSTL command language.