PDP-11
RT-11で動作するPDP-11マクロアセンブラによる Hello world プログラムである:
このプログラムのファイル名をHELLO.MACとしたとき、アセンブルしてリンクして実行するときのコンソールの表示は以下のようになる:
(RT-11のコマンドプロンプトは「.」である)
MACRO-11 のコードのもっと複雑な例としては、ケビン・ミュレルの KPUN.MAC やファーバ・リサーチの JULIAN ルーチンがある。その他のPDP-11用コードのライブラリとして Metalab や Trailing Edge アーカイブがある。
これらのコードを PDP-11 エミュレータで実行してみることもできる。ボブ・スプニクの SIMH はPDP-11だけでなく各種アーキテクチャをエミュレートでき、それらアーキテクチャのオペレーティングシステムのソフトウェアキットを含む(RT-11もある)。
DECが16ビットのPDP-11を開発するきっかけとなったのは、データゼネラルが発売したデータゼネラルNova である。Novaはワード長16ビットだが、DECが当時主力としていたPDP-8のワード長は12ビットだった。PDP-11ファミリは1970年1月に発表され、同年前半に出荷が開始された。最終的な売り上げ台数は不明であるが、販売開始後の8年間で5万台が売れたことが知られている。当初はTTLのICで構成されていたが、1975年にはやや大規模な集積回路を使いCPUをワンボード化している。1979年にはマルチチップモジュール化したプロセッサ J-11 を開発。シリーズ最後の機種である PDP-11/94 と PDP-11/93 は1990年に登場した。
他の初期のコンピュータとの大きな違いとして、初期の PDP-11 は入出力専用バスを持たず、Unibus というメモリバスしか持たない。そのため入出力機器はメモリ空間にマッピングされ、特殊な I/O (入出力) 命令を必要としない。また、それぞれに割り込みベクターと割り込み優先度が設定される。プロセッサのアーキテクチャが可能にしたこの柔軟性の高いフレームワークにより、新たなバスデバイスを容易に考案でき、当初予想もしていなかった新たなハードウェアの制御も可能である。DECはこのUnibusの基本仕様を公開し、バスインタフェース回路基板のプロトタイプも提供し、ユーザーが独自のUnibus対応ハードウェアを開発できるようにしていた。
これにより、PDP-11は特注の周辺機器の制御を得意とした。アルカテル・ルーセントの前身の1つである Bell Telephone Manufacturing Company が開発したX.25ネットワーク・パケット交換機 BTMC DPS-1500 は管理システムとしてPDP-11と組み合わせて配備され、Unibus経由で直接接続されていた。
PDP-11ファミリの上位機種であるPDP-11/45やPDP-11/83システムは、この単一バス方式をやめている。その代わり、CPU筐体内だけでCPUとメモリ間の専用インタフェース回路を使用し、UnibusやQ-busはI/O専用とした。PDP-11/70ではさらに、磁気ディスク装置や磁気テープ装置とメモリ間を新たな専用バス Massbus(英語版) で接続した。入出力機器はこういった構成でもメモリアドレス空間にマッピングされ続けたが、追加されたバスインタフェースの設定のためのコードを追加する必要があった。
PDP-11/27 - 主要I/Oバスとして VAXBIバス(VAX用32ビットバス)を使った Jaws-11 を使った実装
PDP-11/68 - 物理メモリ4MバイトをサポートするPDP-11/60の後継
PDP-11/74 - PDP-11/70をマルチプロセッサ化したもの。最大4個のプロセッサを相互接続し、ケーブルの取り回しが非常に難しくなった。また、ビジネス向きの命令セット拡張も行われている。いくつかのプロトタイプが組み立てられ、少なくとも2台のマルチプロセッサシステムがユーザーサイトでベータテストを受けたが、公式には出荷されることはなかった。4プロセッサシステムは RSX-11 オペレーティングシステム開発チームがテストし、シングルプロセッサ機は開発チーム全体のタイムシェアリング環境として使われた。11/74は32ビット機 VAX 11/780 と同時期に計画された。フィールドでの保守の問題でキャンセルされた。いずれにしてもDECはPDP-11ユーザー全部をVAXに移行させることはできなかった。その原因は性能ではなく、PDP-11のリアルタイム性の良さにある。