プログラミング

FZ/KM web の紹介:Fuzixをwebアプリケーションで実行

2019年10月11日

FZ/KM web を紹介します。

FZ/KM webは、HTML5による、Fuzixの実行環境です。実行すると、以下のような画面になります。
2019-10-11-fuzix3.png

始めに

Fuzixに関する解説は、2019年10月現在、日本語ではほとんど見あたりません。srad.jpに『著名Linux開発者Alan Cox、Z80向けに新OS「Fuzix」を公開』とある他は、「FUZIXをビルドしてみよう」という記事が見つけられるぐらいです。

Fuzixは、Alan Cox氏により開発が進められている、Z80など小規模のCPUを搭載したコンピューターで使用する事を前提にした、UnixライクなOSです。2019年現在、最新の情報を得るには、GitHubのレポジトリーを見るのが一番良いようです。2019年10月現在、ver 0.3が公開されており、作者曰く「 It is not yet useful although you can build and boot it and run test application code. A lot of work is needed on the utilities and libraries.」という事なので、まだまだ未完成で改善を続けていくという事のようです。作者はこちらのサイトでも情報発信を行なっていて、最新の情報が得られます。

作者が「FUZIX is a fusion of various elements from the assorted UZI forks and branches...」と述べているように、元々はDoug Braun氏のUZI (Unix: Z80 Implementation)から派生しているようで、たぶん Fuzix のネーミングもそこから来ています。対応するCPUはZ80だけでなく、6502, 6809, 8086, 68000など多岐にわたり、今後の開発が楽しみなOSです。

ここでは、CPUとしてZ80を使い比較的簡単な回路を持つPCの中から、RC2014のファミリーに属するTom's SBCを取り上げて、HTML5に依るwebアプリケーションとしてのエミュレーションを試みました。Fuzixの本家ページでは、Tom's SBC用のKernelのバイナリーがROMのイメージとして公開されており、扱いやすいです。Tom's SBCではコンパクトフラッシュカードをハードディスクの代りに用いていますが、webアプリケーション内では単一のディスクイメージを読み書きするようにしました。

使い方

次のURLにアクセスする事で、実行する事ができます。
https://kmorimatsu.github.io/fuzix/fuzix.html

FZ/KM webは、HTML5による、Fuzixの実行環境です。

HTML5の機能のうち使用しているものは、以下の通りです。


 ・Canvas
 ・FileReader

fuzix.htmlにブラウザでアクセスすると、以下のように表示されます。

2019-10-11-fuzix1.png

黒い画面が、80文字×24行の、ディスプレイです。 その下に、CPUの動作速度を示しています。デフォルト設定では、2 MHzで動作します。 その下、「Set File」のボタンは、ディスクイメージファイルをセットする場合に使用します(後ほど説明します)。 「Help」は、現在閲覧中のヘルプファイルを表示させるときに使います。

ディスプレイに「Waiting for loading disk image」と表示されていますが、この状態ではまだFuzixが使用できません。Fuzixの実行には、別途ディスクイメージファイルを準備する必要があります。Tom's SBC用の 128M bytes の物を使用します。表示の通り、「tomssbc-0.3.ide」をhttp://www.fuzix.org/などから取得して、解凍した後に、「Set File」ボタンを用いてアップロードして下さい。このファイルは、解凍した状態でアップロードできますが、ZIPアーカイブにして容量を減らしてからアップロードする事もできます。次のような画面になるはずです。

2019-10-11-fuzix2.png

「bootdev:」には、「hda1」もしくは単に「1」を指定して下さい。続けて、現在の日付と時刻の入力を求められますが、特に必要無い場合は、そのまま改行します。

2019-10-11-fuzix3.png

「login:」には、初期の状態では「root」を指定して下さい。これで、Fuzixが使用可能になりました。

Fuzixを使用した後、ディスクイメージファイルを保存することも出来ます。まずFuzix上で「shutdown」を行い、下のような画面になるまでお待ちください。

2019-10-11-fuzix4.png

続けて、"Save Disks"ボタンを押すと、ZIPアーカイブダウンロードの状態になります。このZIPアーカイブは、起動時にディスクイメージとして、"Set File"して利用することが可能です。

ここで実行されているFuzixは、ver 0.3で、Tom's SBC用にコンパイルされた物です。

エミュレーションしているPCは、Tom's SBC (https://easyeda.com/peabody1929) に準拠しており、以下のような特徴があります。


 ・CPUとしてZ80を搭載
 ・RAMを64 kbytes搭載
 ・ROMを64 kbytes搭載
 ・リセット時に、0000h-3FFFhの領域にROMが使用される
 ・0000h-3FFFhの領域でROMを使用するかRAMを使用するかは、I/Oポート38hへの書き込みで指定する(0でROM、1でRAM)
 ・ROMのどの領域を使用するかは、I/Oポート3Eh及び3Fhへの書き込みで指定する(3Eh: A15; 3Fh: A14)
 ・I/Oポート00h-03hにZ80-SIOが接続されており、画面への出力及びキーボード入力を行なう
 ・I/Oポート10h-17hに128 Mbytesのコンパクトフラッシュカードが接続されており、ディスクとして認識される

起動時にオプションを付加する事ができます。「fuzix.html?debug=1」にアクセスすれば、デバッグ用のツールボタンが表示されます。また、「fuzix.html?speed=8000000」等とすれば、異なるCPU速度で実行する事ができます(例は、8 MHzで実行する場合)。

コメント

コメントはありません

コメント送信