All Projects → rust11 → xxdp

rust11 / xxdp

Licence: other
XXDP was, and remains, the PDP-11 diagnostic operating system. This project attempts to recover XXDP sources and documents.

Projects that are alternatives of or similar to xxdp

RSTS-E
Updates, Information and Software for the PDP-11 RSTS/E V10.1 Operating System
Stars: ✭ 12 (-45.45%)
Mutual labels:  pdp11, pdp-11
bkbtl
BKBTL emulator, Win32 version.
Stars: ✭ 16 (-27.27%)
Mutual labels:  pdp11, pdp-11
ukncbtl
UKNCBTL is emulator of Elektronika MS 0511 (UKNC), soviet computer based on two PDP-11 compatible processors.
Stars: ✭ 39 (+77.27%)
Mutual labels:  pdp11, pdp-11
archcraft-os.github.io
// Source : Website
Stars: ✭ 47 (+113.64%)
Mutual labels:  operating-system
WacOS
A Linux distribution that mimics MacOS (modern and classic) iOS, and other Apple operating systems, but is open, customizable, and free to use on non-apple hardware.
Stars: ✭ 18 (-18.18%)
Mutual labels:  operating-system
apex
Apex RTOS - A (somewhat) Linux compatible real time operating system
Stars: ✭ 15 (-31.82%)
Mutual labels:  operating-system
hermit-playground
A playground to build C/C++/Go/Fortran applications on top of RustyHermit
Stars: ✭ 13 (-40.91%)
Mutual labels:  operating-system
KnutOS
An x86_64 hobbyist OS written in C and Assembly
Stars: ✭ 16 (-27.27%)
Mutual labels:  operating-system
web-desktop-environment
a web-based cross-platform desktop environment
Stars: ✭ 167 (+659.09%)
Mutual labels:  operating-system
utero
The Operating System (for x86_64) written in Crystal as much as possible
Stars: ✭ 55 (+150%)
Mutual labels:  operating-system
nachos
Nachos XMU操作系统课程实验
Stars: ✭ 31 (+40.91%)
Mutual labels:  operating-system
rCore-Tutorial-v3
Let's write an OS which can run on RISC-V in Rust from scratch!
Stars: ✭ 470 (+2036.36%)
Mutual labels:  operating-system
sysprog
Systems Programming course
Stars: ✭ 21 (-4.55%)
Mutual labels:  operating-system
flower
A learning OS
Stars: ✭ 50 (+127.27%)
Mutual labels:  operating-system
VisualOS
x86-64 UEFI operating system with the goal of eliminating command lines
Stars: ✭ 20 (-9.09%)
Mutual labels:  operating-system
WindowsIoTEverywhere
Images & drivers to get WIndows 10 IoT running on off-the-shelf tablets, mini-pcs, and various computers.
Stars: ✭ 23 (+4.55%)
Mutual labels:  operating-system
nightingale
A small operating system where I experiment and learn osdev.
Stars: ✭ 86 (+290.91%)
Mutual labels:  operating-system
rnk
rnk is a RTOS targeting ARM architecture.
Stars: ✭ 22 (+0%)
Mutual labels:  operating-system
NightOS
A highly secure, performant and robust operating system for the future 🌔 🚀
Stars: ✭ 15 (-31.82%)
Mutual labels:  operating-system
pedigree
The Pedigree Operating System
Stars: ✭ 48 (+118.18%)
Mutual labels:  operating-system
This project is an attempt to restore XXDP+ sources.

XXDPP.MAC              - The restored source of the XXDP+ monitor 
XXDPP.LST              - The listing file
XXDPP.PDF              - Listing file PDF

XXDP V2 Driver Guide   - Transcription, minus the appendices
XXDP V2 User Guide     - Original
XXDP+ File Structure   - Transcription
XXDP+ Programming Card - Original
XXDP+ Help File        - Orginal

Source introduction:

XXDP was/is the diagnostic operating system for PDP-11 computers.
This source file was created by reverse assembling the binary image
of the XXDP+ HMDLD0 monitor found on XXDP23 distribution.

XXDP constitutes the de facto definition of the PDP-11, as anyone
who writes an emulator soon finds out. It's the toughest the PDP-11
systems, case-hardened by its use on only partially functioning 
systems.

XXDP's architecture is based on a simple, near-boolean level state
machine. There is rarely any analytic vagueness regarding system 
state.

XXDP has a remarkably flat structure. Registers rarely need to be
saved/restored across routines (less than 10 instances). All
parameters and results are passed in registers, obeying a strict
usage protocol.

Because of the fixed space restrictions placed on the monitor, code
compression was always required to find space for new functionality.
XXDP uses many software techniques to achieve that goal. The code 
is heavily compressed.

One overarching simplification is the almost complete absence of
sanity testing. It will accept any disk volume as an XXDP volume, 
no matter how crazy the directory structure might appear. It tests
only for conditions that make it impossible to continue.

The original XXDP+ would of course have had separate source modules
for the monitor and the various drivers. For this stage of the
recovery process I've thought it best to have everything in a single
source module with no external dependencies.

The monitor source code translation is complete with this release.
However, the documentation requires a programmer's guide and a system
logic manual, at some distant point in time. For clarity I have not
used macro definitions for system EMT calls in this, preferring to
see all the binary code instructions. A later release should employ
macros for system calls. The comments can also be improved.

The XXDP monitor itself is restricted to read-only support for system
media. The other half of the system, that creates and writes files,
is buried in a DRVCOM package that are embedded in the UPD1, UPD2, 
PATCH and XTECO utilities and the stand-alone drivers.

I began looking at XXDP around year 2000 when I used it to test a
PDP-11 emulator I'd written. I got curious and wrote a simple
disassembler and began annotating it (which I came back to in 2010
and 2015). At first I approached the project as an act of diligence:
I thought the source was important for the history of the PDP-11. 
However, it turned out to be a fascinating task and it was a real 
joy to see the operating system as a whole slowly emerge. There were
so many subtleties to be discovered. There's some horrible HELLO 
WORLD coding here and there, but most of it is tight and the state 
machine design is highly disciplined.

Some grateful acknowledgements:

I spent so much time in Al Kossow's amazing bitsavers.org that I 
thought I should start paying rent. I crawled endlessly through
diagnostics, looking for tiny clues. Joerg Hoppe's extensive XXDP
microfiche contributions to bitsavers included some critical sources.
A sometime DEC diagnostic programmer, Michael Moroney, who visited 
alt.sys.pdp11 some years ago, was kind enough to dig up and send me	
a copy of MACROM.MAC, the XXDP+ system macro module, which was truly 
invaluable: I had "names" for the system services. There have been
quite a few valuable websites that have dedicated time and space to
XXDP over the years from which I have gleaned information.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].