Z280MBにFUZIXを移植する試みの第一歩です。
FUZIXの情報を求めてネットをさまよってたどり着いたのが、Oh!石さんの FUZIXをビルドしてみよう です。最近のバージョン 0.4pre1 のビルドに成功されていて参考になります。
FUZIXにはターゲットとしてZ280もあるのですが、まだ動作していないようなので、まずはz80packでFUZIXを動かし、その構造や動作を確認したいと思います。
FUZIXの実行環境構築
SDCCのインストール
バージョンは4.1.0で、インストールはOh!石さんの記事に従って行っています。
z80packのインストール
バージョンは1.37です。こちらは、make installの前に、ホームディレクトリにbin/を作っておきます。make後はメッセージに従い $HOME/binをPATHに加えます。こうしないと、z80packの実行時にエラーが出ます。いちいちexportするのは面倒なので、.bashrcにでも書き加えておきます。
$ tar xvzf z80pack-1.37.tgz $ cd z80pack-1.37/cpmsim/srcsim $ make $ cd ../srctools $ make $ mkdir ~/bin $ make install $ export PATH=$PATH:$HOME/bin
cpmsim/cpm2で、CP/M 2.2 が起動するか確認しておきます。 Ctrl+\ で終了します。
FUZIXのビルド
GitHubからソースをクローンします。最新のコミットではkernelのコンパイルで失敗します。コンパイルが確認できているハッシュは、3d26de6eb800af0b1a5672b53ccbc0da6c1a3d1bです。
$ git clone https://github.com/EtchedPixels/FUZIX.git $ cd FUZIX $ git checkout 3d26de6eMakefileを修正します。56行目あたりにビルドターゲットの指定があるので、z80packを指定します。90行目あたりのapps, kernel, diskimageターゲットから依存ターゲットのltoolsを削除します。
TARGET=z80pack ... apps: +(cd Applications: ... kernel: mkdir -p Images ... diskimage: mkdir -p Images ...
ユーティリティとクロス開発環境をコンパイルします。make install した後、/opt/fcc/binをPATHに加えておきます。
$ make stand $ cd Library $ make $ sudo make USERCPU=z80 install $ export PATH=$PATH:/opt/fcc/binクロス開発環境用のライブラリをコンパイルします。$ cd libs $ make -f Makefile.z80 USERCPU=z80 $ sudo make -f Makefile.z80 USERCPU=z80 install
FUZIXアプリケーションをコンパイルします。fcc(SDCC)でのコンパイルはかなり時間がかかるので、テレビでも見ながら気長に待ちます。$ cd ../../ $ make appsカーネルをコンパイルし、ルートファイルシステムとブートディスクのイメージを作成します。
$ make kernel $ make diskimage
FUZIXの起動
ディスクイメージは、FUZIX/Images/z80pack/に作られています。これらをz80packにコピーしエミュレータを起動します。
$ cp FUZIX/Images/z80pack/boot.dsk z80pack-1.37/cpmsim/disks/drivea.dsk $ cp FUZIX/Images/z80pack/hd_fuzix.dsk z80pack-1.37/cpmsim/disks/drivei.dsk $ cd z80pack-1.37/cpmsim/ $ ./cpmsim
bootdev: には 0 を入力し、rootでログインすれば、プロンプトが出ます。
終了する場合はshutdownコマンドを実行後、Ctrl-\ を入力します。