Modules are a concept introduced with HDDRIVER 11. They are similar to programs for the AUTO folder, but are executed before HDDRIVER at boot time. This allows for special applications that are not possible with programs for the AUTO folder, as they are launched too late in the boot process.
To give HDDRIVER access to additional hardware interfaces (e.g. USB), the corresponding SCSI Drivers must be launched before HDDRIVER. Only then will HDDRIVER have access to the hardware supported by these drivers during the boot process. This is where modules come into play: They are loaded and executed before HDDRIVER.SYS is started.
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 does not work when launching the USB drivers from the AUTO folder.
Modules are similar to programs for the AUTO folder. They can be implemented in a way that they can also be launched as regular programs. Modules are stored in the root directory of the boot partition and are named HDDRMODn.SYS, where n is a digit from 0-9. These numbers determine the order of execution. After the last module has been started HDDRIVER.SYS is executed. Modules do not have access to hard disk partitions because HDDRIVER has not yet been loaded at the time of module execution.
Whether modules are executed at boot time 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 relevant settings.
Detailed information on HDDRIVER modules (especially for developers) as well as code examples are available on GitHub.
This is a sample module that after displaying a message simply waits for a key to be pressed before the boot process proceeds. To try it out, just copy it to the root directory of the boot partition. You will notice that the keypress is expected 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 integrated directly into HDDRIVER. Therefore, for example, the settings under "Devices and Partitions" and "Removable Media/Memory Cards" can also be used for USB drives, as can the selection of the boot partition for the AUTO folder and the ACCs by pressing a key on a USB keyboard. HDDRIVER itself can of course only be booted from the interfaces supported by TOS.
On the SCSI Driver page you can download another module, namely the SCSI Driver for Hatari and ARAnyM NF_SCSI. With this driver HDDRIVER can directly access devices managed by Linux.
HDDRIVER modules can also be created with the stripex tool for MiNT.