NOTE
This article forms part of an attempt to document XXDP. The
information is based on an examination of XXDP disks and the
scant documentation available on the web. Thus omissions and
errors are guaranteed. Ian Hammond/2008 alt.sys.pdp11
A few years ago I got interested in the XXDP internals, as I believe
any sensible person should at least once in their life. These articles
are basically the result of that attempt to recover XXDP internals and
preserve the system a little better. The project comprises:
1. XXDP Introduction This document.
2. XXDP Disk Structure Bootstrap, homeblock and directories.
3. XXDP File Structures Structure of major file types.
4. XXDP Monitor Monitor structure, function and services.
5. XXDP User Guide A user-guide to XXDP
6. XXDP Lists File names/types, CPU codes etc.
Three planned sections were never really started:
7. XXDP Supervisors DRS & DECX11
8. XXDP Utilities Various system utilities.
9. XXDP Diagnostics TBS
"TBS" stands for "To Be Supplied", not "Too Bloody Stupid" as I used
to think many years ago.
______________________________________________________________________
1.1 XXDP GOALS
XXDP is the maintenance operating system for PDP-11 computers.
Among the many PDP-11 operating systems, XXDP is a true survivor, kept
alive because of the essential maintenance services it provides for
PDP-11 processors and devices. The system has emerged as the de facto
living definition of the PDP-11 architecture. Historically, XXDP is a
direct link back to the PDP-11's beginnings.
XXDP retains these functions:
o DIAGNOSTIC: The Primary Mission is to supply diagnostic programs.
o FORMATTING: It provides tools to format disks.
o COMPLIANCE: It is employed to test the accuracy of simulators and
hardware clones of DEC processors and peripherals.
o DEFINITION: In performing the "compliance" function (which it has
always performed), XXDP is the de facto definition of the PDP-11
and the standard devices.
Historically, XXPD was the ugly-duckling O/S least likely to succeed,
and a great case-study of how *not* to write an operating system.
______________________________________________________________________
1.2 XXDP HISTORY
Why is the system called "XXDP"? Here's a *conjectured* history:
PDP-8
PDP-10 The approach taken to the PDP-11 diagnostic environment was
probably based on the predecessor systems at DEC, such as
the PDP-8 and PDP-10 processors.
PTS-11 The first PDP-11 operating system was the papertape system,
PTS-11. The first diagnostics were likewise papertape based
and shared the same tape structures and conventions.
RKDP The first diagnostic disks were specific to a particular
RLDP type of disk. Thus, RKDP was the set of Diagnostic Programs
etc for the RK05 disk series.
XXDP "XXDP" was a combined set of diagnostics and drivers. Thus
"XX" stands for "any disk". XXDP is the "General Diagnostic
Program System".
XXDP+ XXDP-plus generalised bus support by detecting at runtime
whether it was running on a Unibus or Q-Bus machine.
XXDP++ (aka "XXDP+ 1.1" or "XXDP super-plus" added DRS (Diagnostic
Runtime Services) providing a common supervisor/shell for
diagnostics etc.
XXDP V2 An optional memory management monitor was added, device
drivers were separated from the programs and english
language commands were supported in the extended monitor.
Since the first diagnostics for the PDP-11 were simple papertapes, the
first release of XXDP did little more than provide a disk-based
alternative for running tapes. Over the years the system experienced
moderate growth with two or three discernable "major releases".
XXDP grew with little control in the early years. ZQUSD0.TXT lists
features not present on either sample disk, indicating "personal"
development of the system.
Later versions show more design consideration. However, XXDP seems
have developed a reputation for unreliability in later years. Work on
V2 seems to have been outsourced.
______________________________________________________________________
1.3 XXDP OVERVIEW
o TARGET MARKET: XXDP was used mainly by DEC engineers, most visibly
by their field service staff. The package could be purchased and
used for end-user self-maintenance.
o RUNTIME SYSTEM: XXDP provides a *runtime* environment for programs.
Development takes place on other systems (e.g. the RT-11 and RSX-11
linkers can emit XXDP binary loader executables). There are no
programming languages supported by XXDP.
o SINGLE USER: XXDP is so basic that even the appellation "single
user" seems an exaggeration. It's a single user, single process
system.
o SYNCHRONOUS: Monitor and driver operations are synchronous, i.e.
the system does not use device or clock interrupts. The EMT vector
is the sole vector maintained by the system.
o MONOLITHIC: TBS
o NON-OVERLAYED: No application overlay facility is provided. The
monitors do implement manual internal overlaying.
o MEMORY MANAGEMENT: The V2 XM monitor utilises memory management.
o DISK STRUCTURE: Files are mapped with a fixed-length directory and
an allocation bitmap. Filenames have six character names and three
character types. Most files are stored as sequential files using a
linked block structure that reserves the first word of each block
as a link to the successor block in the file.
o BUFFERED I/O: The linked block file structure requires enblocking
and deblocking treatment during I/O.
o SUB-SYSTEMS: TBS
o MACHINE TESTS: TBS
______________________________________________________________________
1.4 XXDP DOCUMENTATION
XXDP is rarely verbose. The mysterious title "XXDP" is just a hint of
the obsfuscation that characterises the system as a whole.
During my web hunt I found four references to DEC manuals:
label title referenced in
1. AC-9093K-MC DETAILED CMM'D DISCRIPTION REFRENCE V1 ZQUSD0.TXT
2. CZQXAK0 XXDP USR MAN(UAL)
3. MD-11-DZQXA XXDP User Manual V1 RLDP.BIN
4. XXDP/DRS Users Manual V2 HELP.TXT
The following documents were available:
label title referenced in
5. FCZQUS-D-XXDP HELP TEXT FILE V1 ZQUSD0.TXT
6. HELP.TXT Distribution disk help files. XXDPVx.DSK
7. Turnbull Peter Turnbull's notes on XXDP. Usenet
8. ABSLDR Absolute Loader listing FTP
ZQUSD0.TXT on XXDPV1 is an early help file. Both disks have HELP.TXT
files. Peter Turnbull's 1993 training session notes have circulated on
the web for some time in PDF/PS format and provide an excellent guide
to the system.
The disk and file structure sections are based DOS/BATCH documents and
an investigation of sample system disks:
9. XXDPV1 V1 XXDP system disk XXDP_WITH_1123_RL02.GZ
10.XXDPV2 V2 XXDP system disk XXDP22_RL02.GZ
______________________________________________________________________
1.5 XXDP SAMPLE DISKS
The two XXDP diagnostic disks available on the web are:
kit boot-message default-date version date range
XXDPV1 XXDP+ (CHMDLD0). 01-JAN- XXDP++ 1976 1983
XXDPV2 XXDP V2.4. 01-JAN-84 (SM) XXDP V2 (1984)1989
01-JAN-87 (XM)
A scan of the disk structures reveals no unlinked blocks. A single
empty area exists at the end of each disk, indicating that these were
disribution disks (i.e. no subsequent deletions).
I have compared the disks. The V2 disk is not an exact descendant of
the V1 disk, but it comes close. Only about a dozen of the files, with
the same names, actually have different content.
The V1 disk has a variety of files dating from 1976 to 1983. There are
quite a few files that are not distribution files, such as XTECO .BAK
files.
All the files on the V2 disk were created on 1-Mar-89 except for three
1984 DEC/X11 files. The V2 disk has a DRS subsystem.