はとのーと

エジソンノート(アイデア、思い付き、メモ)として使っています。誰かの役に立つかもしれないので公開しています。

VAX-11はどのようにPDP-11との互換性を取っていたか

TL;DR (要約)

DECの “32ビットスーパーミニコン” VAX-11が16ビット機PDP-11とどうやって互換性を取っていたか。

  1. CPUに互換モードフラグがある
  2. VAX-11に移植されたRSX-11M(PDP-11のOS)がファンクションコールを変換する

互換性

History of OpenVMS: ミニコンものがたり」に次のように書かれている。

VAXを開発するにあたり問題となったのがPDP-11の多くのアプリケーションをどのようにするかと言うことでした。これは簡単にはいきませんが、PDP-11の互換モードで解決しています。 VAX11の11がPDP11互換性をハードウェアで有していることを意味しています。このことによりアプリケーションがわずかな変更で簡単に互換モードで走らせられ、また新しいアプリケーションはVAXネイティブモードで開発するといったように、非常にスムーズにPDP-11からVAX11への移行ができました。

具体的な部分については「VAX11/780 HARDWARE HANDBOOK」に次の記述がある。

1. 互換モードフラグ

f:id:paz3:20210214232906p:plain
Process Status Longword Register (p.303)

2. ファンクションコールを変換

f:id:paz3:20210214233129p:plain
Glossary - compatibility mode (p.330)

訳:

互換モード: CPUがPDP-11の非特権命令の実行を許可するモード。 オペレーティングシステムはRSX-11Mタスクイメージ用のRSX-11Mプログラミング環境を提供することで互換モードの実行をサポートします。 オペレーティングシステムの互換モードプロシジャは互換モードイメージを実行するプロセスの制御領域にあります。 そのプロシジャはRSX-11M実行形式への呼び出しを遮って適切なオペレーティングシステム機能へと変換します。

VAX-11/RSX-11M User's Guide」によるとMCRコマンドはRSX-11MタスクイメージとVAX-11ネイティブイメージの両方を開発・実行できる。

ちなみに OpenVMS「History of OpenVMS」 | HPE 日本 には上記の「ミニコンものがたり」を含めてDECのミニコンピュータに関する資料が置かれている。

Macintosh Revealed, A/UX, ADC保存サイト

Macintosh Revealed

中学生の頃、地元の図書館に当時憧れていたMacintoshのオールカラーの本があった。 画面図とToolbox呼び出しのためのPASCALコードが載っていたと思う。

おそらくこの本ではないかと思うけれど定かではない。

Macintosh Revealed (Hayden Macintosh Library Books): Chernicoff, Stephen: 9780672484018: Amazon.com: Books

A/UX

Apple Developper Connectionの保存サイト

Reference Library Guides

ここには載っていないが以下のようなページもある。

Mac OS 8 and 9 Developer Documentation

上記のページ群は documentation フォルダ内にあるが、その上の階層 にも様々なページがある。

プログラミングの基礎についての Kota Mizushima さんときしださんの連続ツイート

素晴らしいツイートなのでいつでも見られるように埋め込みリンクで掲載させていただきます。

まとめ(ツイートが消えてしまった場合用)

Kota Mizushima さん:

  1. データ構造とアルゴリズム
    • O(n)、O(n log n)などのO記法も
  2. グラフ理論
    • 現実の問題はグラフ上の問題として定式化可能なことが多い
  3. オートマトンと言語理論
  4. オペレーティングシステムの基礎
  5. プログラミング言語論的なもの
    • 多くのものは抽象構文木で表せることを理解しておく
  6. 分散コンピューティング
  7. コンパイラ
    • 簡単なマイ言語を自作できるようになっておく

きしださん: