X68000 向けのクロスコンパイラがあるそうですが、導入するのが難しいという記事もあったのでどうするか考えています。自力でやろうとするとどうなるか ChatGPT で調べてみます。
X68000 向けのクロスコンパイラを作るにはどうすれば良いですか
と入力すると以下の結果となりました。
X68000 向けのクロスコンパイラ を作るためには、MC68000 アーキテクチャ 向けのコードを生成し、Human68k の実行形式 (.X ファイル) を出力できるようにする必要があります。以下の手順で進めることができます。
1. ツールチェインの選択
2. 環境の準備
必要なソフトウェア:
依存関係のインストール例 (Ubuntu):
sudo apt update sudo apt install build-essential bison flex libgmp-dev libmpc-dev libmpfr-dev texinfo libncurses5-dev3. Binutils のビルド
まず、アセンブラ (as) や リンカ (ld) を含む Binutils をビルドします。
a. ソースコードの取得:
wget https://ftp.gnu.org/gnu/binutils/binutils-2.40.tar.gz tar xvf binutils-2.40.tar.gz cd binutils-2.40b. ビルドディレクトリの作成:
mkdir ../binutils-build cd ../binutils-buildc. コンフィギュアとビルド:
../binutils-2.40/configure --target=m68k-elf --prefix=/usr/local/m68k-elf --disable-nls --disable-werror make -j$(nproc) sudo make installd. パスを通す:
export PATH=/usr/local/m68k-elf/bin:$PATH4. GCC のビルド
a. ソースコードの取得:
wget https://ftp.gnu.org/gnu/gcc/gcc-12.2.0/gcc-12.2.0.tar.gz tar xvf gcc-12.2.0.tar.gz cd gcc-12.2.0 ./contrib/download_prerequisitesb. ビルドディレクトリの作成:
mkdir ../gcc-build cd ../gcc-buildc. コンフィギュアとビルド:
../gcc-12.2.0/configure --target=m68k-elf --prefix=/usr/local/m68k-elf --enable-languages=c --disable-nls --disable-libssp --without-headers make all-gcc -j$(nproc) make all-target-libgcc -j$(nproc) sudo make install-gcc install-target-libgcc5. テストと確認
a. バージョン確認:
m68k-elf-gcc --version m68k-elf-as --versionb. サンプルコードのコンパイル:
// test.c int main() { volatile char* text = (char*)0xC00000; text[0] = 'H'; text[1] = 'e'; text[2] = 'l'; text[3] = 'l'; text[4] = 'o'; text[5] = '!'; text[6] = '\0'; return 0; }m68k-elf-gcc -o test.elf -nostdlib -Ttext=0xC00000 test.c m68k-elf-objcopy -O binary test.elf test.bin
- `-nostdlib`: 標準ライブラリ無し
- `-Ttext=0xC00000`: 実行アドレスを 0xC00000 に設定 (X68000 の VRAM)
6. Human68k 用の実行ファイル (.X) の作成
X68000 の Human68k OS 用の .X ファイル を生成するためには、以下の方法を利用します。
b. 自作のヘッダ生成ツールを作成:
- Human68k の実行形式のヘッダ情報を調査し、JavaScript や Python でヘッダ生成ツールを自作することも可能です。
7. まとめと次のステップ


