FZ/KM mega の紹介
2020年2月2日
FZ/KM megaは、MachiKania type Mで使える、Fuzix (ver 0.3) 実行環境です。
Fuzixについて
Fuzixに関する解説は、2020年2月現在、日本語ではほとんど見あたりません。srad.jpに『著名Linux開発者Alan Cox、Z80向けに新OS「Fuzix」を公開』とある他は、「FUZIXをビルドしてみよう」という記事が見つけられるぐらいです。また、私のメインのブログでもいくらか扱っているので、参考にしてください。
Fuzixは、Alan Cox氏により開発が進められている、Z80など小規模のCPUを搭載したコンピューターで使用する事を前提にした、UnixライクなOSです。2020年現在、最新の情報を得るには、GitHubのレポジトリーを見るのが一番良いようです。2020年2月現在、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です。
FZ/KM megaについて
FZ/KM megaは、FuzixをMachiKania type M上で使えるようにしたものです。FZ/KM midi、FZ/KM webと同様に、CPUとしてZ80を使い比較的簡単な回路を持つPCの中から、RC2014のファミリーに属するTom's SBCを選び、これと同様の物が実行できるようにしてあります。Fuzixの本家ページでは、Tom's SBC用のKernelのバイナリーがROMのイメージとして公開されており、扱いやすいです。Tom's SBCではコンパクトフラッシュカードをハードディスクの代りに用いていますが、FZ/KM megaでは、SD/MMCカード上の単一のディスクイメージを読み書きするようにしました。ソースコードは、GitHubで管理しています。
FZ/KM megaのインストールと実行方法
この記事では、ver 0.3以降について述べます。GitHubのページから、zipアーカイブをダウンロードし、解凍して、すべてのファイルをSD/MMCカードのルートにコピーしてください。このカードを挿入して、いずれかのボタンを押したままでMachiKaniaを起動もしくはリセットします。ブートローダー画面になりますので、「FZKMMEGA.HEX」を選択してFIREボタンを押してください。これで、FZ/KM mega上でFuzixが走り、記事最初の画像のような表示になります。
FZ/KM megaの使い方
起動して「bootdev:」の入力状態になれば、「hda1」もしくは単に「1」を入力してください。マウントが開始されて、日付(Enter new date:)と時刻(Enter new time:)の入力状態になります。必要であれば指定された書式で入力し、必要なければ単にEnterを押してください。「Welcome to Fuzix」の表示のあと、「login:」でログインアカウントの入力を求められますので、初期の起動の場合は「root」を指定します。以下のような表示になるはずです。
これで、Fuzixが使えるようになりました。基本的な使い方はLinuxとほぼ同じです。ただし、電源を切る前には必ず、「shutdown」を実行してください。以下のような画面になるはずです。
「bootdev:」の表示が出てから、電源を切ってください。これを行わないと、次回のFuzixの起動に失敗します。場合によっては、ディスクイメージが破壊されて正常起動できなることもありますので、ご注意ください。長期間の利用の際は、定期的にディスクイメージのバックアップを取ることをお勧めします。
FZ/KM megaに特有の機能
fzkmmega.iniファイルを編集することで、いくつかの設定を変更することができます。例えばダウンロードしたファイルでは、英語101キーボードを使用する設定になっていますので、日本語キーボードの場合は「106」に変更してください。
画面表示は、以下のサイズのテキストディスプレイに対応しています。
・80x27文字白黒(デフォルト)
・64x27文字カラー
・48x27文字カラー
・40x27文字カラー
・36x27文字カラー
・30x27文字カラー
コンソール上で、80x27以外のディスプレイに変更する場合は、「width」命令を使用してください。例えば、36x27文字ディスプレイにする場合は、「width 36」と入力します。カラー表示にすると、以下の命令が有効になります。
・color:表示色を変更する
・bgcolor:背景色を変更する
・palette:表示パレットを変更する
例えば、「color 4」とすると文字の表示が緑色になります。元の白色に戻すときは「color 7」です。
Fuzix外部とファイルのやり取りをすることが可能です。SD/MMCカードのルートからFuzixにファイルを取り込んだり、逆にFuzixからSD/MMCカードのルートにファイルを取り出したりすることができます。ファイルの取り込みを行う場合は「get」命令を、取り出しを行う場合は「put」命令を利用してください。これらの命令は、Fuzix用のディスクイメージ編集ツールであるUCPと同じように使うことができます。
Fuzix用アプリケーションの開発について
Fuzix用のアプリケーションは、SDCC (Small Device C Compiler)を用いて作成することができます。cygwin上でSDCCを用いてFuzixアプリケーションをビルドする方法を記事にしましたので、参考にしてください。
GitHubにFZ/KM用のアプリケーションのソースコードを載せてあります。ここには、上で紹介した「width」「color」「bgcolor」「palette」「get」「put」といった命令用のアプリケーションに加えて、「hello」「test」「benchmark」の三つのアプリケーションのソースコードを掲載しています。
「width」のような、FZ/KM特有のアプリケーションを作成する場合は、「picinterface.h」と「picinterface.c」を利用してください。これにより、「start_composite()」「FSfopen()」などの、MachiKania制御用の関数を用いることができます。使用方法は、MachiKaniaソースコードでの使用方法とほぼ同じです。ただし、「FSfopen()」で開くことができるファイルは一つだけなので、ファイルハンドルは使用しません。
「test」のような、PIC32MXのレジスターを使用するアプリケーションを作成する場合は、「p32mx370f.h」を利用してください。このヘッダーファイルのコメントにも書きましたが、「p32sfr8in()」「p32sfr8out()」などのマクロを介して、レジスターにアクセスしてください。具体例として、ソースコードの「test.c」が参考になると思います。
FZ/KM megaのダウンロード
現在のところ、GitHubでダウンロードできるようにしてあります。ライセンスは、MachiKaniaライセンスです。Microchipのチップに対して非商用で使う限り、フリーです。
Fuzixについて
Fuzixに関する解説は、2020年2月現在、日本語ではほとんど見あたりません。srad.jpに『著名Linux開発者Alan Cox、Z80向けに新OS「Fuzix」を公開』とある他は、「FUZIXをビルドしてみよう」という記事が見つけられるぐらいです。また、私のメインのブログでもいくらか扱っているので、参考にしてください。
Fuzixは、Alan Cox氏により開発が進められている、Z80など小規模のCPUを搭載したコンピューターで使用する事を前提にした、UnixライクなOSです。2020年現在、最新の情報を得るには、GitHubのレポジトリーを見るのが一番良いようです。2020年2月現在、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です。
FZ/KM megaについて
FZ/KM megaは、FuzixをMachiKania type M上で使えるようにしたものです。FZ/KM midi、FZ/KM webと同様に、CPUとしてZ80を使い比較的簡単な回路を持つPCの中から、RC2014のファミリーに属するTom's SBCを選び、これと同様の物が実行できるようにしてあります。Fuzixの本家ページでは、Tom's SBC用のKernelのバイナリーがROMのイメージとして公開されており、扱いやすいです。Tom's SBCではコンパクトフラッシュカードをハードディスクの代りに用いていますが、FZ/KM megaでは、SD/MMCカード上の単一のディスクイメージを読み書きするようにしました。ソースコードは、GitHubで管理しています。
FZ/KM megaのインストールと実行方法
この記事では、ver 0.3以降について述べます。GitHubのページから、zipアーカイブをダウンロードし、解凍して、すべてのファイルをSD/MMCカードのルートにコピーしてください。このカードを挿入して、いずれかのボタンを押したままでMachiKaniaを起動もしくはリセットします。ブートローダー画面になりますので、「FZKMMEGA.HEX」を選択してFIREボタンを押してください。これで、FZ/KM mega上でFuzixが走り、記事最初の画像のような表示になります。
FZ/KM megaの使い方
起動して「bootdev:」の入力状態になれば、「hda1」もしくは単に「1」を入力してください。マウントが開始されて、日付(Enter new date:)と時刻(Enter new time:)の入力状態になります。必要であれば指定された書式で入力し、必要なければ単にEnterを押してください。「Welcome to Fuzix」の表示のあと、「login:」でログインアカウントの入力を求められますので、初期の起動の場合は「root」を指定します。以下のような表示になるはずです。
これで、Fuzixが使えるようになりました。基本的な使い方はLinuxとほぼ同じです。ただし、電源を切る前には必ず、「shutdown」を実行してください。以下のような画面になるはずです。
「bootdev:」の表示が出てから、電源を切ってください。これを行わないと、次回のFuzixの起動に失敗します。場合によっては、ディスクイメージが破壊されて正常起動できなることもありますので、ご注意ください。長期間の利用の際は、定期的にディスクイメージのバックアップを取ることをお勧めします。
FZ/KM megaに特有の機能
fzkmmega.iniファイルを編集することで、いくつかの設定を変更することができます。例えばダウンロードしたファイルでは、英語101キーボードを使用する設定になっていますので、日本語キーボードの場合は「106」に変更してください。
画面表示は、以下のサイズのテキストディスプレイに対応しています。
・80x27文字白黒(デフォルト)
・64x27文字カラー
・48x27文字カラー
・40x27文字カラー
・36x27文字カラー
・30x27文字カラー
コンソール上で、80x27以外のディスプレイに変更する場合は、「width」命令を使用してください。例えば、36x27文字ディスプレイにする場合は、「width 36」と入力します。カラー表示にすると、以下の命令が有効になります。
・color:表示色を変更する
・bgcolor:背景色を変更する
・palette:表示パレットを変更する
例えば、「color 4」とすると文字の表示が緑色になります。元の白色に戻すときは「color 7」です。
Fuzix外部とファイルのやり取りをすることが可能です。SD/MMCカードのルートからFuzixにファイルを取り込んだり、逆にFuzixからSD/MMCカードのルートにファイルを取り出したりすることができます。ファイルの取り込みを行う場合は「get」命令を、取り出しを行う場合は「put」命令を利用してください。これらの命令は、Fuzix用のディスクイメージ編集ツールであるUCPと同じように使うことができます。
Fuzix用アプリケーションの開発について
Fuzix用のアプリケーションは、SDCC (Small Device C Compiler)を用いて作成することができます。cygwin上でSDCCを用いてFuzixアプリケーションをビルドする方法を記事にしましたので、参考にしてください。
GitHubにFZ/KM用のアプリケーションのソースコードを載せてあります。ここには、上で紹介した「width」「color」「bgcolor」「palette」「get」「put」といった命令用のアプリケーションに加えて、「hello」「test」「benchmark」の三つのアプリケーションのソースコードを掲載しています。
「width」のような、FZ/KM特有のアプリケーションを作成する場合は、「picinterface.h」と「picinterface.c」を利用してください。これにより、「start_composite()」「FSfopen()」などの、MachiKania制御用の関数を用いることができます。使用方法は、MachiKaniaソースコードでの使用方法とほぼ同じです。ただし、「FSfopen()」で開くことができるファイルは一つだけなので、ファイルハンドルは使用しません。
「test」のような、PIC32MXのレジスターを使用するアプリケーションを作成する場合は、「p32mx370f.h」を利用してください。このヘッダーファイルのコメントにも書きましたが、「p32sfr8in()」「p32sfr8out()」などのマクロを介して、レジスターにアクセスしてください。具体例として、ソースコードの「test.c」が参考になると思います。
FZ/KM megaのダウンロード
現在のところ、GitHubでダウンロードできるようにしてあります。ライセンスは、MachiKaniaライセンスです。Microchipのチップに対して非商用で使う限り、フリーです。