Fuzix

Cygwinを使ったFuzix v0.3のビルド

2019年11月9日

Cygwin上でも、2019年11月現在最新版のver 0.3のビルドができる事を確認した。Cygwinには、予め次のものをインストールしてから作業を行なった。
gcc-core
gcc-g++
make
patch
bison
flex
libboost-devel
git
zlib
zlib-devel

SDCC-3.9.0のビルドとインストール
Fuzix ver 0.3のビルドは、SDCC-3.6.0やそれ以前のものではうまく行かない。2019年現在の最新版の3.9.0を使う必要があった。ただし、以前も書いたように、デフォルトのSDCCではKernelのビルドができないので、パッチを当てなければならない。用意されているパッチは3.5.0用のものなので、3.5.0と3.9.0のソースコードを比較して、パッチを作り直した。パッチファイルのZIPアーカイブ「sdcc-3.9.0.patch.zip」はここからダウンロードできる

SDCC-3.9.0のソースコードを、ここからダウンロードし、展開する。先の通りダウンロードしたパッチファイルも解凍して「sdcc-3.9.0.patch」を同じディレクトリに置いて、適応する。三回ファイル名を聞かれるので、「sdcc-3.9.0/src/z80/gen.c」「sdcc-3.9.0/src/z80/main.c」「sdcc-3.9.0/src/z80/z80.h」を入力する。
tar xjvf sdcc-src-3.9.0.tar.bz2
patch<sdcc-3.9.0.patch

configureし、ビルドする。無事に終われば、インストールする。
cd sdcc-3.9.0
./configure --prefix=/usr --disable-pic14-port --disable-pic16-port --disable-mcs51-port --disable-r2k-port --disable-r3ka-port --disable-tlcs90-port--disable-ds390-port --disable-ds400-port --disable-hc08-port --disable-s08-port --disable-stm8-port --disable-ucsim
make
make install

Fuzix v0.3のビルド
Fuzixソースコードを取得し、ver 0.3のものに巻き戻す。Makefileを編集する。
「TARGET=z80pack」のところ、
「TARGET=tomssbc-rom」とする。
git clone https://github.com/EtchedPixels/FUZIX.git
cd FUZIX
git checkout cacbe5238588d352768ab95951c46d09879ba310
(Makefileを編集)

私の環境では、このままmakeすると、「find.c」のビルドでエラーが出て停止した。よく分からないので、このファイルのビルドをスキップする事にした。「Applications/MWC/cmd/Makefile.z80」の8行目で、「find.c」を削除し、次のように書き換えた。
SRCS  = ac.c almanac.c at.c col.c cron.c deroff.c du.c ed.c make.c \
	moo.c pr.c tar.c ttt.c units.c

全て準備が整ったので、いよいよビルドする。
make

ただし、アプリケーションはビルドできる事を確認するだけでオブジェクトは使わないので、アプリケーションのビルドが始まったらキャンセルし、「make kernel」としてカーネルのビルドを最後に行なうか、Makefileの72行目を「all: stand ltools libs kernel」として(appsを削除)、アプリケーションのビルドをスキップしても良いかも知れない。その場合は、上記の「Makefile.z80」の編集は必要ない。

Hello Worldプログラムをビルドしてみる
以上のプロセスが無事終了すれば、Fuzix ver 0.3用のアプリケーションを作製する環境が整った事になる。Hello Worldプログラムを作製してみた。

hello.c
#include <stdio.h>

int main(/*int argc, char* argv[]*/) {
  printf("Hello World!\n");
  return 0;
}

Makefile
all: hello.c
	/opt/fcc/bin/fcc -O2 -mz80 -c hello.c
	/opt/fcc/bin/fcc -O2 -mz80 hello.rel -o hello
clean:
	rm *.rel
	rm *.map

「make」すれば「hello」というファイルができるので、UCPによりディスクイメージに取り込めば、実行できる。
2019-11-09-hello.png
これで、Fuzixのカーネルを改変したりアプリケーションを開発したりする環境が、全て整った事になる。

コメント

コメントはありません

コメント送信