Modules are a concept introduced with HDDRIVER 11. They resemble programs for the AUTO folder but when booting are launched before HDDRIVER. This facilitates special applications, which are not possible with programs for the AUTO folder, because these are launched too late in the boot process.
In order to give HDDRIVER access to additional hardware interfaces (e.g. USB) the respective SCSI Drivers have to be launched before HDDRIVER. Only then during the boot process HDDRIVER has access to the hardware supported by these drivers. Here modules come into play: They are executed before HDDRIVER.SYS is launched.
A module does not necessarily have to be a SCSI Driver. A keyboard or mouse driver for USB devices is another example. In this case you can select the boot drive by pressing a key on the USB keyboard, which would not work when launching the USB drivers from the AUTO folder.
Modules resemble programs for the AUTO folder. They can be implemented in a way that they can also be launched as regular programs. Modules are placed in the root directory of the boot partition and are named HDDRMODn.SYS, with n being a digit from 0-9. The digits determine the execution order. After launching the last module HDDRIVER.SYS is executed. Modules cannot access hard disk partitions because HDDRIVER has not yet been loaded at the time of module execution.
Whether modules are executed when booting, and whether like HDDRIVER they run in ST-RAM or TT-RAM, is configured with HDDRUTIL under "Preferences". Do not forget to re-install HDDRIVER after changing the respective settings.
Detailed information on HDDRIVER modules (particularly for developers) and sample code is available on GitHub.
This is a sample module which after displaying a message simply waits for a key to be pressed before the boot process proceeds. In order to try it just copy it to the root directory of the boot partition. You will notice that the keypress is expected even before HDDRIVER is loaded. This would not be possible with a program for the AUTO folder.
With the USB modules for Lightning VME and Lightning ST HDDRIVER can access USB drives like any other drive, as if USB support was directly integrated in HDDRIVER. Therefore the settings under "Devices and Partitions" and "Removable Media/Memory Cards", for instance, are usable also for USB drives, as well as selecting the boot partition for AUTO folder and ACCs by keypress on a USB keyboard. HDDRIVER itself can only be booted from the interfaces supported by TOS, of course.
HDDRIVER modules can also be created with the stripex tool for MiNT.