68000アセンブラ環境を無料でパソコン上に作る

2003年8月6日

はじめに

このWebページでは,68000アセンブラの実験環境を,Linux 上に作る方法を解説している. OSとしては,FreeBSD を使う場合には、「FreeBSD 上 で 68000 アセンブラの実験環境を作る Web ページ」を見て下さい。

このWebページに記載されている内容や,この Web ページを使ってダウンロー ドしたプログラムの使用によって生じたいかなる結果に対しても,Web ページ の作者は責任を負いません.利用は個人の責任において行ってください

Linux のインストール

Linux のインストール、 Windowsなど他のOSとの 共存については Linux に関するドキュメント,サイト,書籍等を参考にして 個人の責任において行ってください.

インストール時の注意点

以下のソフトが必要です. Linux のインストーラプログラムは、インストールすべきソフトを選べるよう になっているのが普通です. 下記のソフトは、インストールするようにします.

以下のソフトは、日本語が使えるものを入れた方が何かと便利でしょう。 日本の会社、団体が出している LINUX ディストリビューションなら、日 本語も使えると思います(Red Hat Linux バージョン 9 では日本語 OK でした)。

各種ツール, ライブラリの整備

68000 開発環境(コンパイラ等)とエミュレータをインストール する前に、インストールしておいた方が良いソフトがありますので,先に,インストールしておきます.

補足説明: 「パッケージファイル」について

ソフトが、インストールされていないとき、新たにインストールするために 「パッケージファイルを探してきて、適当なディレクトリにダウンロード」というのが一般的な手順である.

作業手順

すでにインストール済みかを調べる

LINUX のインストール時に自動でインストールされるものがあるので、まず、インストールされているかを調べ、 インストールされていなければ、手動でインストールするという手順を踏みます.

インストールされているかを調べるには、 「rpm -qi expat」のように「rpm -qi <パッケージ名>」を実行します

Cコンパイラをインストール

これからの作業では、Cコンパイラ(gcc)が必要. まず、「rpm -qi gcc」で、すでに gcc がインストールされているかを調べ、 インストールされていなかったらflex, bison, libiconv, gcc を「パッケージファイル」を使ってインストールする.

flex, bison, libiconv, gcc のRPM ファイルを探して(http://fr2.rpmfind.net/linux/RPM/index.htmlなど)、ダウンロードし、 「rpm -i <パッケージファイル名>」でインストールするという手順である.

いちいち、マウスをクリックしたりするのが面倒なので、次のようなシェルス クリプトを作って実行させることにした。 これは、RedHat バージョン9 用です. もし他の linux で使う時は、RESOFT_URL1, PRESOFT_URL_LIBICONV, PRESOFTS_LIST1, PRESOFT_LIBICONV を適切に設定して下さい。

#
# 設定
#

# RedHat Linux 9 用の設定です
# PRESOFT_URL1, PRESOFT_URL_LIBICONV, PRESOFTS_LIST1, PRESOFT_LIBICONV を適切に設定して下さい。残りはそのままでも動くと思います

DOWNLOAD_URL_SOFT1=https://www.kkaneko.jp/computer/linux/redhat/9/en/os/i386/RedHat/RPMS
DOWNLOAD_URL_LIBICONV=https://www.kkaneko.jp/computer/linux/redhat/9/en/os/i386/RedHat/RPMS
# DOWNLOAD_URL_SOFT1=ftp://fr2.rpmfind.net/linux/redhat/9/en/os/i386/RedHat/RPMS
# DOWNLOAD_URL_LIBICONV=http://www.samba.gr.jp/pub/samba-3.0-ja/RPMS/RedHat9/LIBICONV/

MYRPM_FLEX=flex-2.5.4a-29.i386.rpm
MYRPM_BISON=bison-1.35-6.i386.rpm
MYRPM_LIBICONV=libiconv-1.8-1.i386.rpm
MYRPM_GCC=gcc-3.2.2-5.i386.rpm

#
# 作業手順 
#

LANG=C
cd /tmp

# RPM ファイルをダウンロード
wget -S --passive-ftp $DOWNLOAD_URL_SOFT1/$MYRPM_FLEX
wget -S --passive-ftp $DOWNLOAD_URL_SOFT1/$MYRPM_BISON
wget -S --passive-ftp $DOWNLOAD_URL_LIBICONV/$MYRPM_LIBICONV
wget -S --passive-ftp $DOWNLOAD_URL_SOFT1/$MYRPM_GCC

# インストール済のソフトを確認
rpm -qi `basename $MYRPM_FLEX .i386.rpm`     | grep "Name" | awk '{print $3}'
rpm -qi `basename $MYRPM_FLEX .i386.rpm`     | grep   "Version" | awk '{print "  " $3}'
rpm -qi `basename $MYRPM_BISON .i386.rpm`    | grep "Name" | awk '{print $3}'
rpm -qi `basename $MYRPM_BISON .i386.rpm`    | grep   "Version" | awk '{print "  " $3}'
rpm -qi `basename $MYRPM_LIBICONV .i386.rpm` | grep "Name" | awk '{print $3}'
rpm -qi `basename $MYRPM_LIBICONV .i386.rpm` | grep   "Version" | awk '{print "  " $3}'
rpm -qi `basename $MYRPM_GCC .i386.rpm`      | grep "Name" | awk '{print $3}'
rpm -qi `basename $MYRPM_GCC .i386.rpm`      | grep   "Version" | awk '{print "  " $3}'

# rpm -i でインストール
rpm -i $MYRPM_FLEX
rpm -i $MYRPM_BISON
rpm -i $MYRPM_LIBICONV
rpm -i $MYRPM_GCC

基本ソフトを「パッケージファイル」からインストール

他のソフトについても、「パッケージファイル」を使ってインストールする. これも、RPM ファイルを探して、 ダウンロードし、 「rpm -i <パッケージファイル名>」でインストールするという手順になる. freetype, fontconfig, libgcj, rpm, bash, m4, emacs, emacs-el, emacs-leim, automake, autoconf, binutils, gettext, libtool, make, texinfo, gdb, perl, tcl, tk については、 http://fr2.rpmfind.net/linux/RPM/index.htmlなどで、 簡単に見つかります。 これ以外のソフトについては、後で行なうことにします.

これも、次のようなシェルス クリプトを作って実行させることにした。 これは、RedHat バージョン9 用です. もし他の linux で使う時は、linux の場合は、PRESOFT_URL2, PRESOFTS_LIST2 を適切に設定して下さい。

LANG=C

# PRESOFT_URL2, PRESOFTS_LIST2 を適切に設定して下さい。残りはそのままでも動くと思います

# RedHat Linux 9
PRESOFT_URL2=https://www.kkaneko.jp/computer/linux/redhat/9/en/os/i386/RedHat/RPMS
# PRESOFT_URL2=ftp://fr2.rpmfind.net/linux/redhat/9/en/os/i386/RedHat/RPMS
PRESOFTS_LIST2="expat-1.95.5-2.i386.rpm \
freetype-2.1.3-6.i386.rpm \
fontconfig-2.1-9.i386.rpm \
libgcj-3.2.2-5.i386.rpm \
rpm-4.2-0.69.i386.rpm \
bash-2.05b-20.i386.rpm \
m4-1.4.1-13.i386.rpm \
emacs-21.2-33.i386.rpm \
emacs-el-21.2-33.i386.rpm \
emacs-leim-21.2-33.i386.rpm \
automake-1.6.3-5.noarch.rpm \
autoconf-2.57-3.noarch.rpm \
binutils-2.13.90.0.18-9.i386.rpm \
gettext-0.11.4-7.i386.rpm \
libtool-1.4.3-5.i386.rpm \
make-3.79.1-17.i386.rpm \
patch-2.5.4-16.i386.rpm \
rpm-build-4.2-0.69.i386.rpm \
texinfo-4.3-5.i386.rpm \
gdb-5.3post-0.20021129.18.i386.rpm \
perl-5.8.0-88.i386.rpm \
tcl-8.3.5-88.i386.rpm \
tk-8.3.5-88.i386.rpm"

cd /tmp

# RPM ファイルをダウンロード
echo "--------------------------------"
echo Download...
for i in `echo $PRESOFTS_LIST2`;
  do ( wget -S --passive-ftp $PRESOFT_URL2/$i );
done

echo "--------------------------------"
echo Remove Old Version of Software Before Installation
for i in `echo $PRESOFTS_LIST2`;
# まずは、現在のソフトウェアリストを表示
  do ( rpm -qi `basename $i .tar.gz` | grep "Name" | awk '{print $3}'; rpm -qi `basename $i .tar.gz` | grep   "Version" | awk '{print "  " $3}' );
done

echo "--------------------------------"
echo Install...
for i in `echo $PRESOFTS_LIST2`;
# rpm -i でインストール
  do ( rpm -i $i )
done

echo "--------------------------------"
echo Software List After Installation
for i in `echo $PRESOFTS_LIST2`;
# 最後に、現在のソフトウェアリストを表示
  do ( rpm -qi `basename $i .tar.gz` | grep "Name" | awk '{print $3}'; rpm -qi `basename $i .tar.gz` | grep   "Version" | awk '{print "  " $3}'  );
done

checkinstall のインストール

次に、checkinstall をインストールする. checkinstallを利用して、「ソースファイルからrpmファイルを作成してインストールを行なう」ということができるようにします.

なお、checkinstall の動作には rpmbuild が必要なので、もし、 checkinstall の動作がおかしかったら、「rpm -qi rpmbuild」でインストール済かどうかを確認してみましょう。

参考サイト : http://www.atmarkit.co.jp/flinux/rensai/linuxtips/530mkrpmfs.html

  1. 下記のサイトより checkinstall-1.5.3-1.i386.rpm をダウンロード
    https://asic-linux.com.mx/~izto/checkinstall/download.php
    
  2. 以下の手順でインストール
    rpm -i checkinstall-1.5.3-1.i386.rpm
    rpm -qi checkinstall
    

基本ソフトをソースファイルからコンパイル、インストール

残りの作業は、newlib, shellutils, textutils のインストールです.

これらは、RedHat Linux 9 の「パッケージファイル」が無かったので、 ソースファイルをダウンロード、コンパイルし、checkinstall を使ってインストールし ます.

LANG=C

PRESOFT_SRC_URL=https://www.kkaneko.jp/computer/src/toollib
PRESOFT_GNU_SRC_URL=https://www.kkaneko.jp/computer/src/gnu
PRESOFTS_SRC_LIST="newlib-1.12.0.tar.gz "
PRESOFTS_GNU_SRC_LIST="textutils-2.1.tar.gz shtool-2.0.1.tar.gz"

cd /tmp

# ソースファイルをダウンロード
echo "--------------------------------"
echo Download...
for i in `echo $PRESOFTS_SRC_LIST`;
  do ( wget -S --passive-ftp $PRESOFT_SRC_URL/$i );
done
for i in `echo $PRESOFTS_GNU_SRC_LIST`;
  do ( wget -S --passive-ftp $PRESOFT_GNU_SRC_URL/$i );
done


echo "--------------------------------"
echo Remove Old Version of Software Before Installation
for i in `echo $PRESOFTS_SRC_LIST $PRESOFTS_GNU_SRC_LIST`;
# まずは、現在のソフトウェアリストを表示
  do ( rpm -qi `basename $i .tar.gz` | grep "Name" | awk '{print $3}'; rpm -qi `basename $i .tar.gz` | grep   "Version" | awk '{print "  " $3}' );
done

for i in `echo $PRESOFTS_SRC_LIST $PRESOFTS_GNU_SRC_LIST`;
# rpm -e で強制的に削除
  do ( echo "removing " `basename $i .tar.gz`; rpm -e `basename $i .tar.gz`  );
done

# インストール

#      しばらくすると、以下の質問がでるので、yと答える
#        The package documentation directory ./doc-pak does not exist.
#        Should I create a default set of package docs?  [y]: y
#      しばらくすると、以下の質問がでるので、Rと答える
#        Please choose the packaging method you want to use.
#        Slackware [S], RPM [R] or Debian [D]? R
#      しばらくすると、以下の表示がでるのでEnterをおす
#        Enter a number to change any of them or press ENTER to continue:

cd /tmp
tar -xvzf newlib-1.12.0.tar.gz
cd newlib-1.12.0
./configure
./etc/configure
# -R : Build a RPM package
/usr/local/sbin/checkinstall -R -y

cd /tmp
tar -xvzf textutils-2.1.tar.gz
cd textutils-2.1
./configure
/usr/local/sbin/checkinstall -R -y

cd /tmp
tar -xvzf shtool-2.0.1
cd shtool-2.0.1
./configure
./etc/configure
/usr/local/sbin/checkinstall -R -y


echo "--------------------------------"
echo Software List After Installation
for i in `echo $PRESOFTS_SRC_LIST $PRESOFTS_GNU_SRC_LIST`;
# 最後に、現在のソフトウェアリストを表示
  do ( rpm -qi `basename $i .tar.gz` | grep "Name" | awk '{print $3}'; rpm -qi `basename $i .tar.gz` | grep   "Version" | awk '{print "  " $3}'  );
done
ここまで終了

動作確認

68000 開発環境

ftp://ftp.rtems.com/pub/rtems/linux/redhat/7.3/i386/rpms/rtems-4.6

上記サイトより以下のファイルをダウンロード

rtems-4.6-m68k-rtems-gdb-5.2-1.i686.rpm
rtems-4.6-m68k-rtems-gcc-gcc3.2.3newlib1.11.0-4.i686.rpm
rtems-4.6-m68k-rtems-c++-gcc3.2.3newlib1.11.0-4.i686.rpm
rtems-4.6-m68k-rtems-binutils-2.13.2.1-2.i686.rpm
rtems-4.6-automake-rtems-1.7.2-2.noarch.rpm
rtems-4.6-autoconf-rtems-2.59-0.noarch.rpm
rtems-4.6-apt-conf-0.0-0.noarch.rpm

68000エミュレータ BSVC, 68000コンパイラ等:

専用ファイルのインストール

68000 アセンブラプログラムをエミュレータで動作させるために専用 のスクリプトファイルを用意している. これらのファイルをインストールすることによって, m68k-asとm68k-emu 命令が使えるようになる. 各自の責任でお使い下さい.

m68k-5.0.tgz を入手します
(https://www.kkaneko.jp/~kaneko/as/jikken/m68k-5.0.tgz)
# cd ~/
# tar zxvfp m68k-5.0.tgz

次にインストールを実行する.

# cd m68k-5.0
# ./install.sh

このスクリプトはlib以下を/usr/local/lib/soft-jikkenに,bin以下を/usr/local/binにコピーします. xterm(kterm)のウィンドウを開きなおしてm68k-as,m68k-emuが実行できることを確認します.

使用するソフトウェア

使用するソフトウェアは次の通りです.


RTEMS 情報

次は RTEMS の稼働。何かのソフトまで。

1 インストールに必要とされた、以下のソフトをインストール
   (rpmコマンドを使用)
   次のページで、必要なソフトを検索できる。
   http://www.rtems.com/down.html
   (検索条件)
       RTEMS Version: 4.6.2
       Target CPU Family: m68k, cpu32, coldfire
       Development Host: GNU/Linux x86

rtems-4.6-rtems-base-binutils-2.13.2.1-2.i686.rpm
rtems-4.6-m68k-rtems-binutils-2.13.2.1-2.i686.rpm
rtems-4.6-rtems-base-gcc-gcc3.2.3newlib1.11.0-4.i386.rpm
rtems-4.6-m68k-rtems-gcc-gcc3.2.3newlib1.11.0-4.i686.rpm
rtems-4.6-m68k-rtems-c++-gcc3.2.3newlib1.11.0-4.i686.rpm
rtems-4.6-rtems-base-gdb-5.2-1.i686.rpm
rtems-4.6-m68k-rtems-gdb-5.2-1.i686.rpm


2 RTEMSソースコードとexampleをダウンロード
  次のサイトよりダウンロードして、/home/guestに置く。
  ftp://ftp.rtems.com/pub/rtems/4.6.2/rtems-4.6.2.tar.bz2
  ftp://ftp.rtems.com/pub/rtems/4.6.2/examples-4.6.2.tar.bz2

3 解凍
   # cd /tmp/tools
   # tar xjf /home/guest/rtems-4.6.2.tar.bz2

4 gccが使えるかどうかのテスト
   # setenv PATH /opt/rtems-4.6/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin
  適当なcのプログラムを作成し、コンパイルできるかどうかテスト
   (例)テストプログラム: f.c
     # m68k-rtems-gcc -v -S f.c
     # m68k-rtems-gcc -v -c f.c
       -> f.s  f.o ができていれば成功

5 インストール
   # mkdir /tmp/tools/build-rtems
   # cd /tmp/tools/build-rtems
   # ../rtems-4.6.2/configure --target=m68k-rtems --prefix=/opt/rtems-4.6
   # make all install

  「--prefix=/opt/rtems-4.6」としたのは、1でインストールしたコマンド(m68k-rtems-gccなど)が、
  このディレクトリにあるためです.
  • 参考 FTP サイト
    • ftp://ftp.rtems.com/pub/rtems/snapshots/c_tools/source/
    • ftp://ftp.rtems.com/pub/rtems/linux/redhat/7.3/i386/rpm/rtems-4.7