LADDR

Microsoft LADDR (layered device driver model) is a device driver architecture for storage devices.

History
It was codeveloped by Microsoft, Compaq, Adaptec, NCR and Western Digital and announced in June 1990.

It supported OS/2 1.2 and OS/2 Version 2.0. The extensions .BID, .VSD and .TSD are used.

Non-LADDR versions of OS/2 1.2/1.3 didn't allow more than 1 mass storage driver to be loaded at same time. So it was not possible to mix WD-type and SCSI controllers in the same system.

Overview
LADDR (Layered Device Driver Architecture) divides device drivers into functionally discrete files, simplifying configurations of SCSI devices and development of their associated software support modules. It provides the following:
 * A software organization that more closely matches hardware organization.
 * The uncoupling of device type specific, device vendor specific, and bus interface specific code development, integration, maintenance, and support activities.
 * Simplification of end user product selection and installation process for add-on peripherals.
 * The ability of a vendor to easily provide vendor specific software without having to support an entire device driver.
 * A mechanism to allow software vendors to create products that enhance the operation and performance of device drivers.

The LADDR device drivers sit between the OS/2 kernel or file system (FAT or HPFS) and the specific host adapter. A set is composed of: All three of these drivers are controlled by the IOS (I/O Supervisor) that provides system services and initialization, configuration, interrupt routing, and timer services for the driver set. For any given device, the LADDR driver set must contain at least IOS, a TSD, and a BID, and may contain one or more VSDs.
 * One TSD (Type Specific Driver) for each peripheral type. These perform device-type-specific processing such as validation of incoming I/O requests and conversion of the logical requests from the OS/2 kernel or the file system to physical requests.
 * One or more VSDs (Vendor Specific Driver) of which there is one for each vendor's peripheral, unless two devices of the same type share a VSD. This layer provides vendors with a means to add value to their products and to compensate for any operation of their device that deviates from the norm. Additionally, it provides a common point to build standard interface-specific data structures such as SCSI's CDB (Command Descriptor Block).
 * One host adapter BID (Bus Interface Driver) for each type of host adapter configured. Final conversion of request data structures and execution of appropriate instructions to pass requests to the bus interface hardware are done here. Control of the hardware's operation occurs at this layer.

NCR developed a Filter-ADD (FADDVSD.ADD) to convert ADD-type requests to LADDR-type requests. It allows the continued use of LADDR drivers under OS/2 Version 2.x.

List of drivers

 * I/O Supervisor (IOS)
 * IOS1X.SYS
 * Type-Specific Drivers (TSD)
 * DISK.TSD - hard disk drives
 * CDROM.TSD - CD-ROM drives
 * TAPE.TSD - tape backup devices
 * Vendor-Specific Drivers (VSD)
 * ARCBYTE.VSD - Archive 150/Exabyte 8200
 * DENON.VSD - Denon
 * FATCACHE.VSD - enhanced caching
 * FT.VSD - fault tolerance
 * HP4.VSD - HP 35470 DAT
 * STDCDROM.VSD
 * STDDISK.VSD - SCSI Disk Layer
 * TEAC.VSD - Teac MT-2ST/N70
 * WANGTEK.VSD - Wangtek 5525ES
 * WANGTEK4.VSD - Wangtek 6130 DAT
 * Bus Interface Drivers (BID)
 * ABIOS.BID - ABIOS
 * AMI.BID - American Megatrends Series 15/Series 44
 * AHA152X.BID - Adaptec AHA-152x
 * AHA154X.BID - Adaptec AHA-1540 ISA
 * AHA164X.BID - Adaptec AHA-1640 Micro channel
 * AHA174X.BID - Adaptec AHA-1740 EISA
 * BT54X.BID - BusTek BT-542 (ISA)
 * BT64X.BID - BusTek BT-640 (MCA)
 * BT74X.BID - BusTek BT-742 (EISA)
 * CPQARRAY.BID - Compaq Array IDA
 * CPQC710.BID - Compaq 32-Bit Fast-SCSI-2 Controller
 * CPQC94.BID - Compaq Integrated SCSI-2 Options Port (Systempro/XL)
 * DELL001.BID - Dell DDA
 * DPT201X.BID - Distributed Processing Technology DPT201x
 * ESDI-506.BID - ESDI, IDE and ST-506
 * FD16-700.BID - Future Domain TMC-18XX
 * FD8XX.BID - Future Domain TMC-8XX
 * NCR_C700.BID - NCR SCSI 53c700
 * NCR_C710.BID - NCR 53c710
 * NCR_C90.BID - NCR 53c90
 * NCR_C94.BID - NCR 53c94
 * ULTRA14.BID - UltraStor 14FX and 34FX
 * WD7000AX.BID - Western Digital WD7000AX
 * WD7000EX.BID - Western Digital WD7000EX

Links

 * Ladders and Dragons