This document, "RSX-11M-PLUS Guide to Writing an I/O Driver," serves as a comprehensive manual for senior-level system programmers on developing and integrating I/O drivers for the RSX-11M-PLUS operating system.
Key areas covered include:
I/O Driver Fundamentals: It introduces the core concepts of RSX-11M-PLUS I/O, explaining how device drivers interface executive software with hardware. It details the roles of interrupt vectors, Control and Status Registers (CSRs), and differentiates between resident and loadable drivers. Crucially, it explains the interaction between the Executive and drivers, including interrupt dispatching, the Interrupt Control Block (ICB), and the importance of the "fork process" for synchronizing access to shared data structures and maintaining system integrity.
Advanced Driver Features: The guide outlines various sophisticated features supported by RSX-11M-PLUS drivers, such as overlapped seek I/O, dual-access support, delayed controller access, controller reassignment and load sharing, common interrupt dispatching for multiple device types, subcontroller devices, full duplex input/output (concurrent I/O requests per unit), buffered input/output (allowing task checkpointing during I/O), and I/O queue optimization methods (Nearest Cylinder, Elevator, Cylinder Scan).
Device Driver I/O Structures: A significant portion of the document is dedicated to explaining the fundamental I/O data structures:
Executive Services and Driver Processing: The manual describes the typical flow of an I/O request, from a task issuing a QIO directive through Executive predriver initiation and driver processing. It highlights essential Executive service routines available to drivers, such as Get Packet ($GTPKT) to obtain I/O requests, Interrupt Save ($INTSV) for interrupt handling, Create Fork Process ($FORK) for data synchronization, and I/O Done ($IODON/$IOALT) for completing I/O requests.
Programming Specifics: It provides detailed programming standards and protocols, including conventions for register usage and execution priority. It explains how to set up user-written driver data bases (using specific labels and ordering for loadable/resident types) and driver code (utilizing macros like DDT$, GTPKT$, INTSV$ for standardized entry points and Executive calls). Detailed descriptions of fields within the I/O Packet, DCB, UCB, SCB, KRB, and CTB, along with function masks, are provided.
Incorporating and Debugging User-Supplied Drivers: The guide outlines the procedural steps for integrating a user-written driver into an RSX-11M-PLUS system, distinguishing between incorporation at system generation and after. It explains the roles of system generation (SYSGEN), the LOAD command (for loading and validating drivers), and the CON task (for making devices accessible). It also covers debugging tools like Crash Dump Analysis (CDA) and the Executive Debugging Tool (XDT), detailing how to isolate faults and rebuild drivers.
Executive Services Reference: A comprehensive list of Executive service calls available to I/O drivers is provided, detailing their functions and parameters, including routines for buffer allocation, UNIBUS mapping register management, and various I/O operations.
The document emphasizes adherence to internal conventions and protocols to ensure system integrity and efficiency, and provides sample driver code and appendices on system data structures and converting older RSX-11M drivers.
Site structure and layout ©2025 Majenko Technologies