
2025/12/28 3:22
ウィンドウズ 2(Apricot PC / Xi 用)
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
Summary:
著者は、古いApricot PCにWindows 2を成功裏に導入しました。この実現にはカスタムドライバの作成と機械のハードウェア制限を克服するためのRAM拡張ボードが必要でした。Microsoft DDKでスタブドライバを書き、WIN100.BIN/OVLからHerculesビデオコードをパッチし、互換性のないWindows 1用ドライバをApricotのIntel 8086 CPUと9インチモノクロディスプレイに適した新しいSYSTEM.DRVで置き換えました。プロジェクトには、著者の婚約者が設計したRAMアップグレードも含まれ、Windows 2のメモリ要件を満たしました。
この成果は、1987年にWindows 1をポートした以前の取り組み(マージドライバを使用していたが新機能の完全サポートがなかった)を踏襲しています。現在、Windows 2が稼働することで、Word、Excel、PC Paintbrushなどのアプリケーションをレガシー硬件上で利用できるようになり、古いシステムでも適度なアップグレードで再活性化できることを示しています。著者はMastodonスレッドでフィードバックを歓迎し、リトロコンピューティングコミュニティ内でさらなる改善や議論が行われる可能性を示唆しています。
Summary Skeleton
What the text is mainly trying to say (main message)
著者はWindows 2を古いApricot PCにポートし、カスタムドライバとRAM拡張ボードでハードウェア制限を克服しました。
Evidence / reasoning (why this is said)
- 著者はMicrosoft DDKを使ってスタブドライバを書き、WIN100.BIN/OVLからHerculesビデオコードをパッチしました。
- Windows 1のドライバが互換性がなかったため、新しいSYSTEM.DRVを実装しました。
- ポートには著者の婚約者が設計したRAM拡張が必要でした。
Related cases / background (context, past events, surrounding info)
- Apricot PCはIntel 8086と9インチモノクロ画面でVGAグラフィックスを持たなかった。
- Windows 1は1987年にApricotへポートされ、ブートファイルにはマージドライバが含まれていた。
- 以前の試みでは高速起動WIN100.BIN/OVLに依存していたが、完全なドライバサポートは欠如していた。
What may happen next (future developments / projections written in the text)
著者はMastodonスレッドでコメントを募集し、貢献者への感謝と共に継続的な議論やさらに微調整の可能性を示唆しています。
What impacts this could have (users / companies / industry)
- レガシー硬件上でWord、Excel、PC PaintbrushなどのモダンWindowsアプリケーションが動作できるようになる。
- 最小限のハードウェアアップグレードでレガシーシステムを復活させる方法を示し、リトロコンピューティング愛好家に教育的価値を提供する。
本文
(Word、Excel、その他多数)
ニナ・カリニーナ作 2025年12月27日(改訂版 1.02 2025‑12‑27)
約3年前に初めて Apricot PC を購入しました。なぜなら 8086 ベースのコンピュータが欲しかったからです。その当時は全く知識がなく、見た目がクールで価格も安いだけで買ってしまいました。IBM PC と互換性がないことや、利用できるプログラムがほとんど存在しないことを知らずに購入したのです。
それ以来、近代的なワードプロセッサとスプレッドシートソフトを手に入れようと奮闘してきました。結果として「Windows 2」をこの機種へ移植することになりました。本投稿では、その移植作業の経緯をご紹介します。
また、併せて Windows 2 がなぜかとっておきのソフトなのかを解説した記事も書いています。もし Windows 2 のスクリーンショットがもっと欲しいのであれば、ぜひご覧ください。
※ 本投稿に掲載されている画像は実際の緑色 CRT から撮影されたものです。そのため画質にはばらつきがあります。画像をクリックするとフルサイズで表示できます。
コメントやフィードバックがあれば Mastodon スレッドに残してください。
Apricot PC をお持ちの場合、あるいはエミュレーター上で移植版を試したい場合は sr.ht のプロジェクトをご覧ください。Apricot PC、PC/Xi、または Xen で最低512 kB の RAM が必要です。
Apricot PC / Xi について少しだけ
1980 年代のコンピュータは数十種から数百種ものアーキテクチャが存在しており、「PC」が最も人気というわけではありませんでした。最も有望だった市場候補の一つである Victor 9000(別名 Sirius 1)は 1981 年に登場し、ヨーロッパで人気を博しました。その結果「Sirius‑compatible」コンピュータ専用のニッチ市場が形成されました。2 年後、英国企業 ACT が Sirius‑compatible Apricot PC をリリースしました。
Apricot PC はデザインに優れた魅力的なコンピュータです:
- CPU – Intel 8086(IBM PC に使われていた 8088 の前身)
- ストレージ – 3.5″ フロッピー・ディスク。Apple Macintosh よりも早く 3.5″ ドライブを搭載した最初の西欧機種
- ディスプレイ – 9インチ、800×400 ピクセル、優れた画像忠実度
- ハードドライブ – 10 MB Winchester(英国製 Rodime RO352)、3.5″ ハードドライブの初代
このコンピュータは単純であり、数か月にわたり学習すれば一人でも完全に理解できます。回路図・技術マニュアル・BIOS 参照マニュアル・サンプルコードが入手可能です。CPU は Microsoft C、Turbo Pascal、Open Watcom でサポートされており、MS‑DOS(2.0‑3.20)も動作します。ただし IBM PC 用プログラムは実行できません。
IBM PC と互換性がないことが致命的でした。ソフトウェアカタログは 300 MB 未満で、サウンド付きのグラフィックゲームは 1 本(2025 年製作)しか存在しませんでした。生産性向上ツールも限られ、グラフィカルインターフェースを備えたワードプロセッサは GEM Write と Microsoft Write for Windows 1 の2 種類だけで、いずれも人気がありませんでした。GEM ドライバは 2012 年頃に John Elliot によって再構築されましたが、Windows 1 は失われたと考えられていました。
理論上は 16‑bit Windows をこのコンピュータへ移植できるはずです。SYSTEM.DRV、DISPLAY.DRV、KEYBOARD.DRV、MOUSE.DRV、そして可能なら COMM.DRV が必要になります。ただし、その作業量は膨大です。
Windows 1 の Notepad スクリーンショットを見ると、後続バージョンとのインターフェースの類似性がわかります。
Apricot で Windows 2 を移植する
ブート – 高速と低速
今日でもソフトウェア史家は Windows 2.0 が「メジャーアップデート」に値するかどうか議論しています。多数の新しいカーネル機能を追加しましたが、ドライバ構成にはほぼ変更がありませんでした。Windows 2 のマウスとキーボードドライバは Windows 1 でも動作し、逆も同様です。CGA と EGA ビデオドライバ(Windows 1 から)は Windows 2 を起動できますが、フォントの描画に失敗します。
Windows 1 または 2 のインストールでは、ドライバファイルをカーネルとリンクさせます ― 「高速ブート」です。結果として二つのファイルが生成されます:WIN100.BIN(実際には EXE ファイルに見えますが、カーネルとシステムドライバを含む)と WIN100.OVL(稀にしか使われないリソース)。Apricot 版の Windows 1 は高速ブートのみで配布され、個別のドライバファイルは公開されていませんでした。
スタブドライバ
ドライバが無ければ何とか作れます!Microsoft の Driver Development Kit(DDK)は IBM PC 用のリファレンスドライバを提供しており、それを Apricot 向けに適応しました:
- スタブビデオドライバ
- スタブマウス・システムドライバ
これらは Windows 2 がカーネルパッチなしで Apricot PC 上で起動できることを確認しました。EMS メモリサポートがあるため疑問が残っていましたが、実際には問題ありませんでした。
ビデオドライバの作成に挑戦
キーボード・マウス・システムは小規模で単純なため拡張可能ですが、DISPLAY.DRV は Windows のグラフィカルサブシステムの大部分を実装する必要があります。Apricot PC には真のグラフィックモードがなく、50×25 の「グラフィックススクリーン」と偽りの 16×16 フォントしかありません ― 大きな障壁です。
リファレンスドライバはビデオ RAM 配列に多くの仮定を置いています。初期化ルーチンを修正した後でも生成される画像は読めませんでした。そのようなカード用ドライバを書くことは VGA 互換ドライバを設計するよりもずっと苦痛であるため、今回は諦めました。
再リンク
WIN100.BIN/OVL からドライバを外し再利用することも考えましたが、Windows 1 のビデオドライバは Windows 2 上でフォント表示に失敗します。そこで、Windows 1 のビデオドライバとそのフォントを抽出しました ― このトリックは機能します!WIN100.OVL に含まれる部分は Hercules ドライバと同一です。WIN100.BIN から CODE と DATA セグメントを取り出し、Hercules ドライバと組み合わせて NE ヘッダー(エントリテーブル、セグメントオフセット/長さ)を手動でパッチしました。これだけで Windows 2 はディスプレイに満足します。
同じトリックは KEYBOARD.DRV でも機能しましたが、MOUSE.DRV はさらに作業が必要でした。Windows 1/2 は SYSTEM.DRV のビデオドライバタイマルーチンからカーソルを隠します。Windows 1.0 の SYSTEM.DRV は Windows 2 と互換性がないため、新しい SYSTEM.DRV を DDK 参照として実装しました。
これで、Apricot PC/Xi 上で Windows 2 が動作するようになりました。
Apricot PC 用 Windows 2 – サイト
- BIOS ― AUG BIOS(NEC V30 CPU をサポート)を使用。マシンは 896 kB の RAM を搭載。
- ストレージ ― 単一の 720 kB フロッピー ドライブ、10 MB ハードドライブ。MS‑DOS 3.20 がインストール済み。
- 起動 ―
でカーネルを起動。win.bat
GW Basic、Turbo Pascal、Windows 1/2、Word、Excel をインストールしており、ほぼ 2 MB の空き容量があります。
PC Paintbrush は Windows 1 と 2 両方で動作します(Microsoft Paint は未対応)。画面はモノクロです。ピクセルのデチリングが 100 ppi (800×400) でグレー階調を生成します。ピクセルは正方形ではなく 4:3 のアスペクト比になるため、ラスター画像は前処理が必要ですが、ベクター画像はそのままで表示されます。
Windows 2 のデフォルトシェルはミニマリスティックで、WANG の ClearView は Windows 3 に似た親しみやすい体験を提供します。Windows 1 はタイルウィンドウ、Windows 2 は重ね合わせウィンドウを採用しており、ClearView で並べ替え可能です。
コントロールパネルはモノクロだと見にくいですが、24‑bit カラーサポート(印刷時に重要)を示しています。
キーボードにはロゴに LED があり(ThinkPad より前)、MicroScreen とプログラマブルキーが完全にサポートされています。ALT キーは無いため「Close」が ALT+F4 に最も近い操作です。ホットキーで XENTEL 電話アクセサリを起動します。
Microsoft Word for Windows
1989 年末に初版がリリースされ、スパゲッティチェック、ページレイアウトエディタ、マクロ(スペース節約のため削除)など強力な機能を備えています。ファイルは RTF で保存すれば現代のオフィスソフトでも開けます。
Microsoft Excel
必須アイテムです。1988 年版 Excel 1.0 は 2018 年版にほぼ同等です。ヘルプはウェブブラウザ風のハイパーテキストアプリで、"stonks" チャート(44 種類)の作成手順を説明しています。
ゲーム
以前はグラフィックゲームが 5 本(チェス、Where Is The Owl、Windows 1 Reversi、Minesweeper、Risk)でしたが、現在はソリティアや Taipei 麻雀など多数追加されています。
これで完了です!多くの Windows 2 プログラムを Apricot 上で試す余地がありますが、近代的な Word と Excel を動かすという私のクエストはついに終わりました。
謝辞
お読みいただきありがとうございます。質問やコメントがあれば Mastodon スレッドへどうぞ。
ベータテストを手伝ってくれた恋人と、Windows を動作させるために不可欠な RAM 拡張ボードの設計者には感謝しています。愛を込めて。
このプロジェクトは、古い Windows バージョン向けドライバについて Michal Necasek(os2museum)と David Simunič(krnl386)の助言なしには実現できませんでした。