This document provides the MACRO-10 assembly language source code for the "DPDINT Data Products Disk Interrupt Service" routine, developed by Digital Equipment Corporation in 1969 for PDP-10 systems.
The primary purpose of this code is to manage low-level disk I/O operations and handle associated interrupts. Key functionalities include:
DFWRT) and Read (DFRED) Operations: These routines prepare the disk for data transfer, setting up appropriate I/O words (containing buffer information), and issuing control commands to the disk hardware. They determine the type of operation (read or write) and enable necessary system interrupts.DSKINT): This is the central interrupt service routine, activated upon a "sector-end" flag from the disk. It performs comprehensive error checking (e.g., for write-lock, data missed, parity, address errors) and saves the system's volatile state. Depending on the completion status and any detected errors, it either continues the current job, returns control to a device-independent package, or flags an error.CNVBLK): A crucial subroutine responsible for translating a logical block number (provided by the calling program) into the physical sector address required by the disk hardware. It includes validation against a LBHIGH (highest legal logical block number) parameter to prevent out-of-range access.DISKUP): This routine ensures the disk is turned on and ready for operation, zeroing relevant control words and enabling program interrupts.The code extensively uses accumulator/register operations (like TAC and TAC1) to pass parameters and manipulate disk control blocks (DCB) and data. It leverages direct I/O control instructions (CONO, CONI, HRRI, IORI) typical of assembly-level device drivers of that era. The document also includes a detailed "DISK & DCB FLAGS" section, defining numerous symbolic constants for various error conditions and control bits, which are integral to the routine's error handling and state management.
Site structure and layout ©2025 Majenko Technologies