Linux で CP/M エミュレーター上でザーク 1 をプレイする(2021)

2026/11/09 3:33

Linux で CP/M エミュレーター上でザーク 1 をプレイする(2021)

RSS: https://news.ycombinator.com/rss

要約▶

日本語訳:

概要:本記事は、Linux ユーザーが Z80 エミュレータ「z80pack」と CP/M を使用してザーク 1 を動作させるための実践的なガイドを提供しています。著者は、現代の日常コンピューティングにおいて他のエミュレーションオプションと比較して実用的な有用性は低いことを認めていますが、レガシーハードウェア体験と CP/M システムへの理解に興味を持つホビーユーザーにとって、このセットアップは依然として不可欠です。歴史的な文脈では、CP/M が 8080 フロッピードライブ搭載システムから始まり、ハードディスクを支持する Z80 プロセッサに進化した経緯を追跡しており、MS-DOS に与えた影響についても言及しています。ゲームを真正に動作させるためには、標準のリポジトリではなくソースコードから環境を組み立てる必要があります。具体的な手順としては、z80pack のディレクトリ構造内での

make
コマンドを使用してコアとツールをコンパイルし、ディスクイメージを設定します(デフォルトは 720kB のフロッピーディスクまたはカスタムハードディスク)。特定のファイル要件(
ZORK1.COM
と
ZORK1.DAT
)を用意する必要があります。最後に、Linux CLI と CP/M に精通する読者には、Gnome Terminal でターミナル互換性設定を構成し、レトロソフトウェアが要求するバックスペースキーのマップingu問題(DEL versus Ctrl-H)を解消するために
stty
を使用してシェル動作を調整するように指示されています。

本文

Linux 上で CP/M と『ザ・フォーク 1』を実行する方法(Z80Pack を使用)

はじめに

本記事では、Linux 環境で z80pack の Z80 エミュレーターを使用して CP/M を動作させ、その上からインタラクティブ・フィクションゲーム『ザ・フォーク 1』(Zork 1)を実行する手順を解説します。

なぜ『ザ・フォーク 1』か?

  • 『ザ・フォーク 1』は複雑さはないが、純粋なテキスト入出力のみを使用するため扱いやすいです。
  • WordStar など他のアプリを実行するとターミナル関連の課題が発生しやすく、本稿のような単純な例では触れず(詳細は後述)、本作に集中します。

重要な注意点

  • 実用的な理由: 現代 PC で CP/M エミュレーターを使う実用的理由はほぼありません。『ザ・フォーク』をプレイするには他にも優れた方法が存在します。
  • 唯一の正当な理由:
    • CP/M の仕組み全般を理解したい場合。
    • Z80 ベースのリトロコンピュータを構築する視野を広げたい場合。

対象読者への前提条件

  • Linux の基本的な知識とコマンドラインツールの扱いに慣れていること。
  • CP/M に大まかな理解があること。

z80pack のインストール

z80pack は標準の Linux リポジトリには常設されておらず、最新版が保証されません。そのため、ソースコードからダウンロードしてビルドする必要があります。

1. ソースコードの展開

任意のディレクトリ(例:

$HOME/lib
)に移動し、z80pack を展開します。ここでは
$HOME/lib/z80pack-1.37
を使用します。

2. コア部分と補助ツールのコンパイル

まずコアのエミュレーター (

cpmsim
) を構築します。

cd ~/lib/z80pack-1.37/cpmsim/srcsim
make -f Makefile.linux

次に、ディスク管理などの補助ツールを構築します。

cd ~/lib/z80pack-1.37/cpmsim/srctools
make -f Makefile.linux

3. インストール確認

CP/M 3 が動作するか確認します(

cpm3
はスクリプトで、実際のディスクイメージから起動されます)。

cd ~/lib/z80pack-1.37/cpmsim
./cpm3

cpmtools のビルドとインストール

cpmtools は CP/M ディスクイメージを管理するためのユーティリティ群です。

  • ディスク内容のリストアップ
  • ファイルの送受信(ホストシステムから CP/M へのコピーなど)

これらはプログラムを移植する際に不可欠です。

インストール手順

  1. ソースダウンロード・展開
  2. ./configure
    を実行
  3. make
    で構築
  4. sudo make install
    でインストール

デフォルトのインストール先は

/usr/local/bin
です(PATH に含まれているか確認)。


z80pack のディスク処理方法

z80pack は物理ディスクを**ファイル(イメージ)**として表現します。ツールは物理構造を理解する必要があります。

デフォルト設定

  • 想定ディスク: 720KB の 8 インチフロッピーディスク。
  • 用途: 『ザ・フォーク 1』実行には十分です。
  • 保存場所:
    ./disks
    ディレクトリ(相対パス)。
  • サポートデバイス:
    • フロッピー: A:, B:, C:, D: (
      drivea.dsk
      ,
      driveb.dsk
      など)
    • ハードディスク: I:, P:

イメージファイルがない場合でもエミュレーターは起動しますが、「メディアなし」として動作します。

必須ディスクのセットアップ

CP/M 3 をブートするには最小限、以下のディスクが必要です。

第 1 ディスク (A: ドライブ):

cp disks/library/cpm3-1.dsk disks/drivea.dsk

第 2 ディスク (B: ドライブ): 有用なユーティリティが格納されています。

cp disks/library/cpm3-2.dsk disks/driveb.dsk

これで

./cpmsim
を実行し、A: と B: のみ利用可能であることを確認できます。

ハードディスクイメージの作成 (オプション)

後々のため、4MB のハードディスクイメージを作成します(CP/M-3 は最大 500MB サポート)。

/usr/local/bin/mkfs.cpm -f z80pack-hd disks/drivei.dsk
  • z80pack-hd
    : パラメータ定義ファイル(
    /usr/local/share/diskdefs
    )。省略すると 720KB フロッピーになります。

『ザ・フォーク 1』プログラムの入手とインストール

Infocom ゲームシリーズは法的に曖昧な状態が続くことが予想されますが、以下の手順で非公式コピーを使用できます。

ファイル構成

CP/M 版の『ザ・フォーク 1』は以下の 2 つのファイルからなります。

  • ZORK1.COM
    : プログラム本体(バイナリ)
  • ZORK1.DAT
    : データファイル(z-machine インタプリタとして機能)

※これらのファイルは同じディスクイメージに置かれます。

コマンドラインでのインストール (cpmcp)

作成したハードディスク (

drivei.dsk
) にファイルをコピーします。CP/M ディスクはサブディレクトリをサポートしないため、ユーザーエリア 0 を使用します。

/usr/local/bin/cpmcp -f z80pack-hd disks/drivei.dsk ZORK1.COM 0:
/usr/local/bin/cpmcp -f z80pack-hd disks/drivei.dsk ZORK1.DAT 0:

『ザ・フォーク 1』を実行する

キーマッピングの修正(重要)

Linux ターミナルでは「バックスペース」キーを押すと DEL (ASCII 127) が生成されますが、CP/M はこれを文字消去として処理します。一方、『ザ・フォーク 1』は伝統的な 「Ctrl+H」(ASCII 8) を要求します。

ターミナル設定を変更して、バックスペースキーを「Ctrl+H」の挙動に変換する必要があります。

Gnome Terminal の例:

  • プロファイル設定ページ > 「互換性 (Compatibility)」 タブ
  • 適切な設定を選択(詳細は端末依存)

システム再起動

新しいキーマッピングが有効になるように、シェルセッションを再スタートさせる必要があります。

stty erase ^H

これで Linux シェルは通常通り動作しますが、バックスペースキーの生成コードが変わります。これにより『ザ・フォーク 1』での入力も快適になります。

ゲーム起動

エミュレーターを実行し、ハードディスク (I:) からゲームを起動します。

./cpmsim
# ... その後コマンドプロンプトから ...
A> i:
I> zork1

出力例:

ZORK I: The Great Underground Empire
Copyright 1982 by Infocom, Inc.
All rights reserved.
ZORK is a trademark of Infocom, Inc.
Release 25 / Serial number 000000

West of House
You are standing in an open field west of a white house, with
a boarded front door.
There is a small mailbox here.

>open mailbox
Opening the mailbox reveals a leaflet.

>read leaflet
(Taken)
WELCOME TO ZORK
     ZORK is a game of adventure, danger, and low cunning. In
it you will explore some of the most amazing territory ever
seen by mortals.
...

これで冒険が開始されます。


CP/M をもってさらなる冒険

CP/M はかつて非常に人気があり、膨大なソフトウェアが存在しました。多くのタイトルは法的に不確実ですが、「放棄されたソフトウェア (abandonware)」として私的使用や教育目的で広く利用されています。

推奨アプリケーション

  • WordStar: 「キラーアプリ」。基本的なワープロソフトであり、現在も利用可能です。
  • Turbo Pascal (Borland): Z80 の限られたメモリ (64KB) を最大限活用した驚くほど優れたコンパイラです。

画面出力について

これらのアプリは**ラインベース(スクロール可能)**の画面を使用します。ターミナルハンドリングに複雑さをもたらすため、z80pack は特別なターミナルを提供せず、ホストの標準ターミナルに出力を渡すだけです。

  • 設定推奨: 多くの Linux ターミナルエミュレータは VT100 互換です。
    • CP/M ソフトウェアを VT100 または VT52 モードとして設定することで、十分な動作結果が得られるはずです。

同じ日のほかのニュース

一覧に戻る →

2026/11/09 4:08

Dux:ファイルマネージャーとテーマ機能を備えた、無料のオープンソース Wayland デスクトップシェル

## Japanese Translation: DMS 2.1 の最新リリース(コードネーム「Stormborn」)は、無料のオープンソースデスクトップ環境に大規模なアップグレードをもたらします。その統一されたビジュアル体験と強力な新機能により、アップデートの中心には Dux Modular Shell という動的デスクトップインターフェースがあります。このシェルはスムーズなアニメーション、ライトモードとダークモード間のシームレスな切り替え、および対応する GTK、GTK4 および Qt アプリケーション向けの一致した色の自動生成をサポートします。このバージョンでは高度なユーティリティも統合されており、其中包括 Dux Files — タブ、分割ビュー、検索、ゴミ箱、デバイス、ネットワーク共有を備えた高速でキーボードファーストのファイルマネージャー — と Dux GOP です。Dux GOP は CPU、メモリ、GPU、ディスク、ネットワークインターフェースなどのシステムメトリクスに対するステートレスなモニタリングを提供します。追加機能にはビデオウォールペーパー、改修されたメディアプレーヤー、インターフェースの密度調整、そしてライトおよびダークテーマの両方でターミナルの色とシンタックスハイライトを最適化する専門的な「dank16」アルゴリズムが含まれます。リリースでは、美しくデザインされたログイン体験を提供する Dux Greeter、超高速ファイルシステム検索ツールである Dux Search、Google、Microsoft、CalDAV、iCloud プロトコルを深く統合したクラウド連携機能を備えた Dux Calendar も導入されます。目立つ機能として、すべてのアプリケーションに単一のテーマを適用でき、手動設定なしで一貫した美的体験を実現できる点が挙げられます。「支払額自由」モデルを採用しており、開発インフラストラクチャの資金調達のために自主的なチップに依存しながらも、誰もがアクセスできるようにしています。高性能とモダンなデザインの組み合わせにより、DMS 2.1 はアクティブなコントリビューターコミュニティによって完全に牽引される統合的で高効率なデジタルワークスペースをユーザーに提供します。

2026/11/05 2:05

宣言的ドラッグ&ドロップ

## Japanese Translation: 元の要約は内容が充実していますが、Key Points List(特に引用および具体的なデモ例)に含まれる詳細な情報が不足しているため、完全性を保ちながら文の流れを維持しつつこれらの情報を統合した改良版を提示します。 以下に、主要な点をすべて取り入れた**改良された要約**を示します。 > Horowitz, Blinn, および Heer による論文「Declarative Dragging」は、UIST 2026 で最優秀論文賞を受賞しました。Andrew Horowitz が 2022 年に発表した数学を実感化するためのゲームプロトタイプに着想を得たこの研究は、2023 年シアトルで行われた著者間の議論を経て発展しました。本システムでは、「Declarative Dragging」(D2)というモデル駆動型アプローチによりドラッグアンドドロップのインタラクションを再定義しており、幾何学を手動で計算するのではなく未来の状態を定義します。**Dragology**ライブラリを SVG インターフェースの実装に用いた D2 は、**speculative rendering** を採用してインタラクションを瞬時にプレビューし、重労働なく滑らかなアニメーションを合成します。このフレームワークは非常に組み合わせやすく、スナップやフローティング、トランジションといったモディファイアを組み合わせて単純な動作と統合することができます。本アプローチは、代数やねじれた木、ベジェ曲線、編み目、カードの山、顔(face)、トロミノ、芽生える木などの教育用デモを含む幅広いアプリケーションを可能にします。注目すべき学術的な拡張には、並列データを同時に操作する**「Permutation lab」**と、宣言的なドラッグによってコードのリファクタリングを実感化・発見可能にする**「Hazel」**環境があります。今後の取り組みとしては、ゲームパッド制御への適応や、元の数学ゲームを 2D スクリーンから完全に機能する 3D ワールドへと移行することが挙げられます。

2026/11/09 3:16

ゴールドマンサックスが銀行家やトレーダーからClaude Codeの使用を取り下げる

ゴールドマン・サックスは、エンジニアに対し、Anthropic の Claude などのサードパーティ製の自律型 AI コーディングエージェントを用いて生産環境向けのソフトウェアを開発することを大幅に制限し、実質的にトレーダーや銀行家らが市場モデルや顧客分析のためにそれらを使用するのを禁じています。同社は全従業員向けに内部の AI アシスタントを維持しており、公式なエンジニアリング監査が欠落する外部エージェントの使用を停止しましたが、これは以前「vibe coding」として非エンジニアが最小限の監督下でツールを開発することを推奨していたガイダンスからの変更です。この方針転換は、検証されないコードがテストおよびレビュー統制を回避すること、顧客データに関する情報障壁違反、およびトークン単位で課金される生産性コスト(Accenture が現在は従業員 1 人当たり月々 29 ドルを負担して Claude を導入)への懸念に由来します。これはゴールドマンが以前トレーダー向けに同様のツールを推進したにもかかわらず、Anthropic のエンジニアと協力してバックオフィスのワークフロー向けのエージェントを開発していたことからの顕著な変化を示しています。この制限措置にもかかわらず、ゴールドマンは Anthropic の upcoming Nasdaq 上場において主要な引受業者として残っています。また、労働力削減を進めつつも Claude Code の大規模導入を計画するバークレイズなどの競合他社との対比も示されています。

Linux で CP/M エミュレーター上でザーク 1 をプレイする(2021) | そっか~ニュース