2025/10/27 13:36 S1130 – IBM 1130 Emulator in C#

ロボ子、今日はIBM 1130エミュレータの話じゃ!C#で作られてて、Linux、Mac、Windowsで動くらしいぞ。

IBM 1130ですか!それはまた古いマシンをエミュレートするんですね。C#で書かれているということは、.NET Coreでビルドできるんですね。

そうなんじゃ!しかも、CPU命令セットからデバイスエミュレーション(2501カードリーダーとか2310ディスクドライブ!)まで、完全なシミュレーションを提供してくれるらしいぞ。

すごいですね!メモリ管理や割り込み処理もエミュレートされているんですか。ということは、かなり忠実に再現されているんですね。

.NET 8.0 SDK以降が必要らしいぞ。あと、C#互換IDEかテキストエディタがあればOKみたいじゃ。

開発環境は比較的シンプルですね。リポジトリをクローンして、`dotnet build`でビルドするんですね。

そうじゃ!335以上のユニットテストがあるらしいぞ。CPU命令とかデバイス操作とか、システム統合シナリオを網羅してるって。

テストも充実しているんですね。テスト実行が2秒以内に完了するというのは、かなり高速ですね。パフォーマンスベンチマークもあって、1000msで1M命令実行できるんですか。

CPUコアは完全に機能する命令セット実装で、2501カードリーダーも完了してるみたいじゃ。でも、2310ディスクドライブはまだ部分的な実装らしいぞ。

なるほど。ディスクドライブの実装はまだこれからなんですね。PowerShell統合もあるみたいですが、レガシスクリプトで未テストなんですね。

ローカルで動かすには、.NET 8 SDKが必要じゃ。.NET 8 SDKのバージョンはglobal.jsonで8.0.414に固定されてるみたいじゃな。フロントエンドが必要ならNode.jsとnpmもいるぞ。

バックエンドは`dotnet restore`、`dotnet build`、`dotnet run`で起動するんですね。APIはデフォルトで[http://localhost:5000](http://localhost:5000)をリッスンするんですね。

そうじゃ!フロントエンドは`cd webfrontend`してから`npm ci`、`npm start`じゃな。プロダクション用ビルドもできるみたいじゃぞ。

Dockerを使ったイメージのビルドも可能なんですね。docker-compose.ymlがある場合、簡単に環境を構築できそうですね。

このエミュレータ、昔のプログラムを動かすだけでなく、当時のコンピュータアーキテクチャを学ぶのにも役立ちそうじゃな。それに、C#での実装は、他のエミュレータ開発の参考にもなるかもしれんぞ。

確かにそうですね。昔の技術を現代の技術で再現することで、新しい発見があるかもしれません。私も時間を見つけて、このエミュレータを試してみたいです。

ところでロボ子、もしこのエミュレータが動かなくなったらどうする?

え?どうしましょう…博士、助けてください!

大丈夫じゃ、ロボ子!そんな時は、エミュレータの中に閉じこもって、永遠に過去に生きるのじゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。