Fuzix

Fuzix ディスクイメージ編集ツール、UCPの使い方

2019年10月28日

Fuzixのディスクイメージは、本家サイト(http://www.fuzix.org/)で配布されていて、そのまま使う事ができます。FZ-KM webやFZ-KM midiでも、ここから取得される「tomssbc-0.3.ide」を使っています。

これらのディスクイメージファイルを用いてFuzixを起動すれば、Fuzix内部でファイルのやりとりをする事ができますが、このままではFuzix外部とのファイルのやりとりができません。例えば、Z80用のアプリケーションは、CソースコードをSDCCを用いてコンパイルして作製しますが、この様にして作られたアプリケーションをディスクイメージファイルの中に取り込む事ができなければ、Fuzixで利用できません。

Fuzixでは、その為のツールとして、UCPを用意しています。ここでは、UCPのWindowsにおける使い方について見てみます。

Fuzix用のUCPは、GitHubのレポジトリーにソースコードがあります。Cygwin等でコンパイルすれば「ucp.exe」が得られますので、それを利用する事ができます。手っ取り早く使いたい人は、予めコンパイルした物を用意しましたので、それを使って下さい。

このucp.exeを用いると、本家サイトから得られる「Filesystem Images」を編集する事ができます。しかし、「Bootable Images」(FZ-KMで利用している、Tom's SBC用のtomssbc-0.3.ideもこちら)を編集するには、少し工夫が必要です。

Tom's SBCは、RC2014ファミリーのPCです。GitHubレポジトリーのRC2014用のKernelのディレクトリーには、次の様な記述があります。

As ucp and fsck.fuzix support offsets in the format path:offset you can access the first file system with ucp foo.cf:1049600 if it starts at block 2048 of the CF card as normal.

ですので、このディスクイメージファイルをucp.exeで編集する際は、「ucp tomssbc-0.3.ide:1049600」と入力して下さい。次のような画面になり、編集が可能になるはずです。
2019-10-28-ucp1.png
(画像は、クリックすれば拡大表示されます)
このオフセット値は、プラットフォームごとに違うようで、例えばMTX用の物は「1048576」なのですが、これに関する記述は見つけられませんでした。「1048576」という値は、Tom's SBC用のイメージとMTX用のイメージのファイルサイズの差から計算された値です。1048576 = 0x100000 なので、むしろこちらの方が普通で、IDE用の「1049600」が特殊なのかも知れません。

無事にUCPが起動できれば、Linuxコンソールと同様に扱う事ができます。「?」とタイプすれば、利用可能な命令の一覧が表示されます。
2019-10-28-ucp2.png
これらの命令の中では、「get」と「put」が特殊な物で、この機能のためにucpが用意されています。「get」は、Fuzixディスクイメージに新規ファイルを取り込む機能、「put」はディスクイメージからファイルを取り出す機能です。

下の例では、「/usr/games」ディレクトリーの一覧を表示後、「put」で「startrek」というファイルを取り出し、「get」で取り出したファイルを「startreka」という名で取り込みました。
2019-10-28-ucp5.png

このままではファイルモードが「666」なので、実行型ファイルの場合は「chmod」を使って「755」に変更します。
2019-10-28-ucp7.png
2019-10-28-ucp8.png

この様にすれば、Fuzixを起動した後に、「/usr/games/startreka」が実行できるようになります。この例では既にあるアプリケーションをコピーしただけですが、「get」を用いて自分で作製したアプリケーションをFuzixに取り込む事ができますし、Fuzix実行後に作製されたファイルを「put」を用いて取り出す事もできます。

さぁ、これでFuzix用のアプリケーションを開発して、Fuzix上で実行する環境が整いました。何を作ろうかな?

コメント

コメントはありません

コメント送信