Guest |
Login
Manx – a catalogue of online computer manuals
Search
|
About
|
Help
RT-11 Software Support Manual Update Notice 1
Company:
Digital Equipment Corporation
Part:
AD-H379B-T1
Date:
1984-07
Keywords:
Operating System:
RT-11 Version 5.1
Copies
No copies known to be online.
Table of Contents
Chapter 1
Historical Overview
1.1
Version 1
1.2
Version 2
1.3
Version 3
1.4
Version 4
1.5
Version 5
Chapter 2
System Components and Memory Layouts
2.1
Static Components
2.1.1
Trap Vectors
2.1.2
System Communication Area
2.1.2.1
User Error Byte
2.1.2.2
Job Status Word (JSW)
2.1.3
Interrupt Vectors
2.1.4
I/O Page
2.1.5
System Device Handler
2.1.6
Resident Monitor (RMON)
2.1.7
Background Job
2.1.7.1
RUN Command
2.1.7.2
R Command
2.1.7.3
.CHAIN Request
2.2
Dynamic Components
2.2.1
Device Handlers and Free Space
2.2.2
Foreground and System Jobs
2.2.2.1
Differences Between Foreground and Background Jobs
2.2.2.2
FRUN Command
2.2.2.3
Starting Foreground and System Jobs
2.2.2.4
Foreground Stack
2.2.2.5
Foreground Impure Area
2.2.3
User Service Routine (USR)
2.2.3.1
Structure
2.2.3.2
Execution
2.2.3.3
Swapping Considerations
2.2.4
Keyboard Monitor (KMON)
2.2.4.1
Adding New Commands Through CCL
2.2.4.2
Adding New Commands Through UCL
2.3
Sizes of Components
2.3.1
Size of the USR
2.3.2
Size of KMON
2.3.3
Size of RMON
2.3.4
Size of Device Handlers
Chapter 3
Resident Monitor
3.1
Terminal Service
3.1.1
Output Ring Buffer
3.1.1.1
Storing a Character in the Output Ring Buffer
3.1.1.2
Removing a Character from the Output Ring Buffer
3.1.2
Input Ring Buffer
3.1.2.1
Storing a Character in the Input Ring Buffer
3.1.2.2
Removing a Character from the Input Ring Buffer
3.1.3
High Speed Ring Buffer
3.1.4
Terminal I/O Limitations
3.1.5
Control Functions
3.1.5.1
CTRL/C
3.1.5.2
CTRL/O
3.1.5.3
CTRL/S and CTRL/Q
3.1.5.4
CTRL/B, CTRL/F, and CTRL/X
3.1.6
SET Options Status Word
3.2
Clock Support and Timer Service
3.2.1
SJ Systems Without Timer Service
3.2.2
Systems with Timer Service
3.3
Queued I/O System
3.3.1
I/O Queue
3.3.2
Completion Queue
3.3.2.1
SJ Considerations
3.3.2.2
.SYNCH Considerations
3.3.3
Flow of Events in I/O Processing
3.3.3.1
Issuing the Request
3.3.3.2
Queuing the Request in SJ
3.3.3.3
Queuing the Request in FB and XM
3.3.3.4
Performing the I/O Transfer
3.3.3.5
Completing the I/O Request
3.4
Scheduling in Foreground/Background Systems
3.4.1
User and System State
3.4.1.1
Switching to System State Asynchronously
3.4.1.2
Switching to System State Synchronously
3.4.1.3
Returning to User State
3.4.2
Context Switching
3.4.3
Blocking Conditions
3.4.3.1
How the Monitor Blocks a Job
3.4.3.2
$SYSWT Monitor Routine
3.4.3.3
How the Monitor Unblocks a Job
3.4.4
Scheduler Operations
3.4.4.1
How the Monitor Requests a Scheduling Pass
3.4.4.2
Characteristics of a Runnable Job
3.4.4.3
$RQTSW Monitor Routine
3.4.4.4
How the Scheduler Works
3.4.5
Implications for Completion Routines
3.5
System Jobs
3.5.1
Characteristics
3.5.2
Logical Names
3.5.3
Job Number
3.5.4
Priority
3.5.5
Design Considerations
3.5.5.1
Scheduling Considerations
3.5.5.2
Space Considerations
3.5.6
Programmed Requests
3.5.7
Message Handling
3.5.8
Monitor Commands
3.5.8.1
SRUN and FRUN Commands
3.5.8.2
LOAD and UNLOAD Commands
3.5.8.3
SUSPEND and RESUME Commands
3.5.8.4
SHOW JOBS Command
3.5.8.5
SET TT: NOFB Command
3.5.9
Communicating with a System Job
3.5.10
How to Queue Files from an Application Program
3.5.10.1
Setting Up the Job Block
3.5.10.2
Setting Up the File Block
3.5.10.3
Setting Up the QUEUE Request Block
3.5.10.4
Issuing the .LOOKUP Request
3.5.10.5
Issuing the Request to QUEUE
3.5.10.6
Receiving Acknowledgment from QUEUE
3.5.10.7
QUEUE Example Program
3.6
Data Structures
3.6.1
Fixed Offsets
3.6.1.1
Configuration Word
3.6.1.2
Low-Memory Protection Bitmap
3.6.1.3
Extension Configuration Word
3.6.1.4
System Generation Features Word
3.6.1.5
Transparent Spooler (SPOOL) Status Word
3.6.2
Impure Area
3.6.2.1
Single-Job Monitor Impure Area
3.6.2.2
Foreground/Background Monitor Impure Area
3.6.3
Queue Element Format Summary
3.6.3.1
I/O Queue Element
3.6.3.2
Completion Queue Element
3.6.3.3
Synch Queue Element
3.6.3.4
Fork Queue Element
3.6.3.5
Timer Queue Element
3.6.4
I/O Channel Format
3.6.5
Device Tables
3.6.5.1
$PNAME Table
3.6.5.2
$STAT Table
3.6.5.3
$DVREC Table
3.6.5.4
$ENTRY Table
3.6.5.5
$DVSIZ Table
3.6.5.6
$HSIZE Table
3.6.5.7
$UNAM1 and $UNAM2 Tables
3.6.5.8
$OWNER Table
3.6.5.9
Adding a Device to the Tables
Chapter 4
Extended Memory Feature
4.1
Introduction
4.1.1
16-Bit Addressing
4.1.2
Virtual and Physical Addresses in a 28K-Word System
4.1.3
Circumventing the 28K-Word Memory Limitation
4.1.4
18-Bit Addressing
4.1.5
Virtual and Physical Addresses with Extended Memory Hardware
4.1.6
Circumventing the 32K-Word Addressing Limitation
4.2
Hardware Concepts
4.2.1
Memory Management Unit
4.2.2
Concept of Pages
4.2.3
Relocation
4.2.4
Active Page Register (APR)
4.2.4.1
Page Address Register (PAR)
4.2.4.2
Page Description Register (PDR)
4.2.5
Converting a 16-Bit Address to an 18-Bit Address
4.2.6
Status Registers
4.2.7
Kernel and User Processor Modes
4.2.8
Default Mapping
4.3
Software Concepts
4.3.1
XM System Memory Layout
4.3.2
How Programs Control Mapping
4.3.2.1
Physical Address Regions
4.3.2.2
Virtual Address Windows
4.3.2.3
Program's Logical Address Space (PLAS)
4.3.3
Two Kinds of Mapping
4.3.3.1
Virtual Jobs
4.3.3.2
Privileged Jobs
4.3.3.3
Differences Between Virtual and Privileged Jobs
4.3.3.4
Context Switching Between Virtual and Privileged Jobs
4.4
Typical Extended Memory Applications
4.4.1
Extended Memory Overlays
4.4.2
Large Buffers or Arrays in Extended Memory
4.4.3
Multi-User Program
4.4.4
Work Space in Extended Memory
4.4.4.1
Enabling the XM Feature of the .SETTOP Programmed Request
4.4.4.2
Program and Virtual High Limits and the Next Free Address
4.4.4.3
Non-XM .SETTOP
4.4.4.4
XM .SETTOP
4.4.4.5
XM .SETTOP and Privileged Jobs
4.4.4.6
XM .SETTOP and Virtual Jobs
4.4.4.7
Summary of .SETTOP Action
4.4.5
Plan Your Own Application
4.5
Introduction to the Extended Memory Programmed Requests
4.6
Extended Memory Data Structures
4.6.1
Region Definition Block
4.6.1.1
Region Status Word
4.6.1.2
.RDBDF Macro
4.6.1.3
.RDBBK Macro
4.6.2
Region Control Block
4.6.3
Window Definition Block
4.6.3.1
Window Status Word
4.6.3.2
.WDBDF Macro
4.6.3.3
.WDBBK Macro
4.6.4
Window Control Block
4.6.5
I/O Queue Element
4.6.6
Free Memory List
4.7
Flow of Control Within Each Programmed Request
4.7.1
Creating a Region: .CRRG
4.7.2
Creating a Window: .CRAW
4.7.3
Mapping a Window to a Region: .MAP
4.7.4
Getting the Mapping Status: .GMCX
4.7.5
Unmapping a Window: .UNMAP
4.7.6
Eliminating a Region: .ELRG
4.7.7
Eliminating a Window: .ELAW
4.7.8
Summary of Extended Memory Programmed Request Error Codes
4.8
Restrictions and Design Implications
4.8.1
PAR1 Restriction
4.8.2
Programmed Requests
4.8.3
PAR2 Restriction
4.8.4
Synchronous System Traps
4.8.4.1
TRAP, BPT, and IOT Instructions
4.8.4.2
Traps to 4 and 10, and FPU Traps
4.8.4.3
Memory Management Faults
4.8.4.4
Memory Parity Errors
4.9
Debugging an XM Application
4.10
Extended Memory Example Program
Chapter 5
Multi-Terminal Feature
5.1
Components of a Multi-Terminal System
5.2
Hardware Background Information
5.3
What Is the Console Terminal?
5.4
Using Two or More Terminals
5.4.1
A Video Console Terminal and a Hard Copy Printing Terminal
5.4.1.1
The Video Terminal Is the Boot-Time Console
5.4.1.2
The Hard Copy Terminal Is the Boot-Time Console
5.4.2
Switching the Console Terminal
5.4.3
A Separate Terminal for Each Job
5.4.4
Multi-Terminal Applications
5.5
Introduction to Multi-Terminal Programmed Requests
5.6
Multi-Terminal Data Structures
5.6.1
Terminal Control Block (TCB)
5.6.1.1
Format
5.6.1.2
Patching a TCB
5.6.2
Asynchronous Terminal Status (AST) Word
5.7
Using the Multi-Terminal Programmed Requests
5.7.1
Attaching a Terminal: .MTATCH
5.7.2
Getting Terminal Status: .MTGET
5.7.3
Setting Terminal Characteristics: .MTSET
5.7.4
Getting a Character: .MTIN
5.7.5
Printing a Character: .MTOUT
5.7.6
Printing a Line: .MTPRNT
5.7.7
Resetting CTRL/O: .MTRCTO
5.7.8
Getting System Status: .MTSTAT
5.7.9
Detaching a Terminal: .MTDTCH
5.8
Summary of Multi-Terminal Programmed Request Error Codes
5.9
The Console as a Special Case
5.10
Interrupt Service
5.10.1
Local Terminals
5.10.2
Remote Terminals
5.11
Polling Routines
5.11.1
Time-Out Routine for DL Terminals
5.11.2
DZ Remote Line Polling Routine
5.12
Restrictions
5.13
Debugging a Multi-Terminal Application
5.14
Multi-Terminal Example Program
Chapter 6
Interrupt Service Routines
6.1
Non-Interrupt Programmed I/O
6.2
Interrupt-Driven I/O
6.2.1
How an Interrupt Works
6.2.2
Device and Processor Priorities
6.2.3
Processor Status (PS) Word
6.3
In-Line Interrupt Service Routines Versus Device Handlers
6.4
How to Plan an Interrupt Service Routine
6.4.1
Get to Know Your Device
6.4.2
Study the Structure of an Interrupt Service Routine
6.4.3
Study the Skeleton Interrupt Service Routine
6.4.4
Think About the Requirements of Your Program
6.4.5
Prepare a Flowchart of Your Program
6.4.6
Write the Code
6.4.7
Test and Debug the Program
6.5
Structure of an Interrupt Service Routine
6.5.1
Protecting Vectors: .PROTECT
6.5.2
Setting Up the Interrupt Vector
6.5.3
Stopping Cleanly: .DEVICE
6.5.4
Lowering Processor Priority: .INTEN
6.5.5
Issuing Programmed Requests: .SYNCH
6.5.6
Running at Fork Level: .FORK
6.5.7
Summary of .INTEN, .FORK, and .SYNCH Action
6.5.8
Exiting from Interrupt Service: RTS PC
6.5.9
Servicing Interrupts in FORTRAN: INTSET
6.6
Skeleton Outline of an Interrupt Service Routine
6.7
Interrupt Service Routines in XM Systems
Chapter 7
Device Handlers
7.1
How to Plan a Device Handler
7.1.1
Get to Know Your Device
7.1.2
Study the Structure of a Standard Device Handler
7.1.3
Study the Skeleton Device Handler
7.1.4
Think About Using the Special Features
7.1.5
Study the Sample Handlers
7.1.6
Prepare a Flowchart of the Device Handler
7.1.7
Write the Code
7.1.8
Install, Test, and Debug the Handler
7.2
Structure of a Device Handler
7.2.1
Preamble Section
7.2.1.1
.DRDEF Macro
7.2.1.2
Device-Identifier Byte
7.2.1.3
Device Status Word
7.2.1.4
Device Size Word
7.2.2
Header Section
7.2.2.1
Information in Block 0
7.2.2.2
First Five Words of the Handler
7.2.2.3
.DRBEG Macro
7.2.2.4
Multi-Vector Handlers: .DRVTB Macro
7.2.2.5
PS Condition Codes
7.2.3
I/O Initiation Section
7.2.4
Interrupt Service Section
7.2.4.1
Abort Entry Point
7.2.4.2
Lowering the Priority to Device Priority
7.2.4.3
.DRAST Macro
7.2.4.4
Guidelines for Coding the Interrupt Service Section
7.2.5
I/O Completion Section
7.2.6
Handler Termination Section
7.2.6.1
The .DREND Macro
7.2.6.2
Pseudo-Devices
7.3
Skeleton Outline of a Device Handler
7.4
Handlers That Queue Internally
7.4.1
Implementing Internal Queuing
7.4.2
Interrupt Service for Handlers That Queue Internally
7.4.3
Abort Procedures for Handlers That Queue Internally
7.5
SET Options
7.5.1
How the SET Command Executes
7.5.2
SET Table Format
7.5.3
.DRSET Macro
7.5.4
Routines to Modify the Handler
7.5.5
Examples of SET Options
7.6
Device I/O Time-out
7.6.1
.TIMIO Macro
7.6.2
.CTIMIO Macro
7.6.3
Device Time-out Applications
7.6.3.1
Multi-Terminal Service
7.6.3.2
Typical Timer Procedure for a Disk Handler
7.6.3.3
Line Printer Handler Example
7.7
Error Logging
7.7.1
When and How to Call the Error Logger
7.7.1.1
To Log a Successful Transfer
7.7.1.2
To Log a Hard Error
7.7.1.3
To Log a Soft Error
7.7.1.4
Differences Between Hard and Soft Errors
7.7.1.5
To Call the Error Logger
7.7.2
Error Logging Examples
7.7.3
How to Add a Device to the Reporting Program
7.8
Special Functions
7.8.1
.SPFUN Programmed Request
7.8.2
How to Support Special Functions in a Device Handler
7.8.3
Variable Size Volumes
7.8.4
Bad Block Replacement
7.8.5
Devices with Special Directories
7.9
Device Handlers in XM Systems
7.9.1
Naming Conventions and the System Conditional
7.9.2
XM Environment
7.9.3
The Queue Element in XM
7.9.4
DMA Devices: $MPPHY Routine
7.9.5
Character Devices: $GETBYT and $PUTBYT Routines
7.9.5.1
$GETBYT Routine
7.9.5.2
$PUTBYT Routine
7.9.6
Any Device: $PUTWRD Routine
7.9.7
Handlers That Access the User Buffer Directly
7.10
System Device Handlers and Bootstraps
7.10.1
Monitor Files
7.10.2
Creating a System Device Handler
7.10.2.1
Primary Driver
7.10.2.2
Entry Routine
7.10.2.3
Software Bootstrap
7.10.2.4
Bootstrap Read Routine
7.10.2.5
Bootstrap Error Routine
7.10.2.6
.DRBOT Macro
7.10.3
DUP and the Bootstrap Process
7.10.3.1
BOOT ddn:filnam
7.10.3.2
COPY/BOOT xxn:filenam ddm:
7.10.3.3
BOOT ddn:
7.11
How to Assemble, Link, and Install a Device Handler
7.11.1
Assembling a Device Handler
7.11.2
Linking a Device Handler
7.11.3
Installing a Device Handler
7.11.3.1
Using the Bootstrap to Install Handlers Automatically
7.11.3.2
Using the INSTALL Command to Install Handlers Manually
7.11.3.3
Using the DEV Macro to Aid Automatica Installation
7.11.3.4
Installing Devices Whose Hardware Is Present
7.11.3.5
Writing an Installation Verification Routine
7.11.3.6
Overriding the Hardware Restriction
7.12
How to Test and Debug a Device Handler
7.12.1
Using ODT to Test a Handler
7.12.2
Using ODT in XM
7.13
Contents of .SYS Image of a Device Handler
Chapter 8
File Formats
8.1
Object File Format (OBJ)
8.1.1
Global Symbol Directory Block (GSD)
8.1.1.1
Module Name (Entry Type 0)
8.1.1.2
Control Section Name (Entry Type 1)
8.1.1.3
Internal Symbol Name (Entry Type 2)
8.1.1.4
Transfer Address (Entry Type 3)
8.1.1.5
Global Symbol Name (Entry Type 4)
8.1.1.6
Program Section Name (Entry Type 5)
8.1.1.7
Program Version Identification (Entry Type 6)
8.1.1.8
Mapped Array Declaration (Entry Type 7)
8.1.2
End of Global Symbol Directory Block (ENDGSD)
8.1.3
Text Information Block (TXT)
8.1.4
Relocation Directory Block (RLD)
8.1.4.1
Internal Relocation (Entry Type 1)
8.1.4.2
Global Relocation (Entry Type 2)
8.1.4.3
Internal Displaced Relocation (Entry Type 3)
8.1.4.4
Global Displaced Relocation (Entry Type 4)
8.1.4.5
Global Additive Relocation (Entry Type 5)
8.1.4.6
Global Additive Displaced Relocation (Entry Type 6)
8.1.4.7
Location Counter Definition (Entry Type 7)
8.1.4.8
Location Counter Modification (Entry Type 8)
8.1.4.9
Program Limits (Entry Type 11)
8.1.4.10
P-sect Relocation (Entry Type 12)
8.1.4.11
P-sect Displaced Relocation (Entry Type 14)
8.1.4.12
P-sect Additive Relocation (Entry Type 15)
8.1.4.13
P-sect Additive Displaced Relocation (Entry Type 16)
8.1.4.14
Complex Relocation (Entry Type 17)
8.1.5
Internal Symbol Directory Block (ISD)
8.1.6
End of Module Block (ENDMOD)
8.2
Symbol Table Definition File Format (STB)
8.3
Library File Format (OBJ and MAC)
8.3.1
Library Header Format
8.3.2
Library Directories
8.3.3
Library End Block Format
8.4
Absolute Binary File Format (LDA)
8.5
Save Image File Format (SAV)
8.6
Relocatable File Format (REL)
8.6.1
REL Files Without Overlays
8.6.2
REL Files with Overlays
8.7
Stream ASCII File Format
8.8
CREF File Format
8.9
Error Log File Formats
8.9.1
Error Log Disk File Format
Chapter 9
File Storage
9.1
Random-Access Devices
9.1.1
Home Block
9.1.2
Directory Structure
9.1.2.1
Directory Header Format
9.1.2.2
Directory Entry Format
9.1.2.3
File Protection
9.1.2.4
Sample Directory Segment
9.1.3
File Storage on Random-Access Devices
9.1.4
Size and Number of Files
9.1.5
Splitting a Directory Segment
9.1.6
How to Recover Data When the Directory Is Corrupted
9.1.6.1
Examine Segment 1
9.1.6.2
Follow the Chain of Segments
9.1.6.3
Remove the Data from the Good Segments
9.1.6.4
Remove the Data from the Bad Segment
9.1.7
Interchange Diskette Format
9.2
Sequential-Access Devices
9.2.1
Magtape Structure
9.2.2
Cassette Structure
Chapter 10
Programming for Specific Devices
10.1
Magtape Handlers (MM, MS, MT)
10.1.1
File Structure Magtape Handler
10.1.1.1
Searching by Sequence Number
10.1.1.2
Searching by File Name
10.1.1.3
Programmed Requests
10.1.1.4
Issuing Hardware Handler Calls with the File Structure Module
10.1.2
Hardware Magtape Handler
10.1.2.1
Exception Reporting
10.1.2.2
Reading and Writing Physical Blocks
10.1.2.3
Spacing Forward and Backward
10.1.2.4
Rewinding
10.1.2.5
Rewinding and Going Off Line
10.1.2.6
Writing with Extended Gap
10.1.2.7
Writing a Tape Mark
10.1.2.8
Error Recovery
10.1.2.9
Non-File-Structured .LOOKUP Programmed Request
10.1.2.10
.CLOSE Programmed Request
10.1.2.11
Non-File-Structured .WRITx Programmed Requests
10.1.2.12
Non-File-Structured .READx Programmed Requests
10.1.2.13
Enabling 100ips Streaming on a TS05
10.1.3
Transporting Tapes to RT-11
10.1.3.1
From RSTS/E
10.1.3.2
From RSX-11M
10.1.3.3
From RSX-11D and IAS
10.1.4
Seven-Track Tape
10.2
Cassette Handler: CT
10.2.1
Handler Functions
10.2.1.1
.LOOKUP Request
10.2.1.2
.DELETE Request
10.2.1.3
.ENTER Request
10.2.1.4
.CLOSE Request
10.2.1.5
.READ/.WRITE Requests
10.2.2
Cassette Special Functions
10.2.2.1
Rewind
10.2.2.2
Last File
10.2.2.3
Last Block
10.2.2.4
Next File
10.2.2.5
Next Block
10.2.2.6
Write File Gap
10.2.3
EOF Detection
10.3
Diskette Handlers: DX and DY
10.4
Card Reader Handler: CR
10.5
High-Speed Paper Tape Reader and Punch: PC
10.6
Console Terminal Handler: TT
10.7
RK06/07 Disk Handler: DM
10.7.1
Bad Block Replacement
10.7.2
.SPFUN Requests
10.8
RL/01 Disk Handler: DL
10.9
Null Handler: NL
10.10
DECtape II Handler: DD
10.10.1
Write-Protect Feature
10.10.2
Data Storage
10.10.3
Adding Bad Blocks to Avoid Excessive Rewinds
10.11
MSCP Disk Handler: DU
10.11.1
Addressing an MSCP Disk
10.11.1.1
MSCP Unit Numbers
10.11.1.2
Controller Port Numbers
10.11.1.3
Disk Partition Numbers
10.11.2
.SPFUN Requests
10.12
Virtual Memory Handler: VM
10.13
Logical Disk Handler: LD
10.13.1
LD Translation Tables
10.13.2
Other Bits Used by the LD Handler
10.13.3
Special LD Option: /$
Chapter 11
Specifics for Professional 300 Series Processors
11.1
Professional 300 Series Keyboard
11.1.1
Normal Mode
11.1.2
Function Key Mode (DECFKM)
11.2
Professional 300 Series Video Terminal
11.2.1
Advanced Video Option Emulation
11.2.2
Text Cursor Mode (DECTCEM)
11.2.3
Device Attributes (DA)
Appendix A
RK, DX, and PC Device Handlers
Appendix B
Converting Device Handlers to V05 Format
Appendix C
Sample Application Program