とりあえず、コンパイラが動いているかどうかテストする。
まずは、"hello.c"ソースコードを書く。
File: hello.c
#include <stdio.h>
int main(int argc, char **argv)
{
printf("Hello World!\n");
return 0;
}
これをコンパイルするMakefileは、次の通り。
% make
/Users/shibuya/work/h8/h8300-hms/bin/gcc -c -mh -mrelax -mint32 -I/Users/shibuya/work/h8/h8300-hms/include -Wall hello.c
/Users/shibuya/work/h8/h8300-hms/bin/ld -o hello.out -mh8300h --relax hello.o -Map hello.out.map -L/Users/shibuya/work/h8/h8300-hms/lib/h8300h/int32 -lc -L/Users/shibuya/work/h8/lib/gcc/h8300-hms/3.4.3/h8300h/int32 -lgcc
/Users/shibuya/work/h8/h8300-hms/bin/ld: warning: cannot find entry symbol _start; defaulting to 00000100
まあ、なんかコードは吐き出しているみたいだ。
H8はブートモードと呼ばれる状態で起動すると、シリアルポートからプログラムコードをダウンロードして実行する内蔵ブートローダが動くようになっている。
このブートローダとシリアルケーブル経由で通信するプログラムをMac上に用意する。
http://mes.sourceforge.jp/h8/h8write.c
をダウンロード。
先頭の、
#define LINUX
#undef Solaris
#undef FreeBSD
#undef Win32
をすべて削除。
RSLINEの定義の部分の前後に#ifndef RSLINE, #endifをつけて次のようにする。
#ifndef RSLINE
#ifdef Win32
#define RSLINE "com1"
#endif
#ifdef LINUX
#define RSLINE "/dev/ttyS0"
#endif
#ifdef FreeBSD
#define RSLINE "/dev/cuaa0"
#endif
#ifdef Solaris
#define RSLINE "/dev/cua/b"
#endif
#endif /* RSLINE */
また、
/* Set default CPU ID */
cpuid = 0;
のところを、
/* Set default CPU ID */
cpuid = DEFAULT_CPUID;
に変える。
Makefileを作る。
% make
無事コンパイル完了。
USB-COMポート変換アダプタはVS-60R(サン電子)。特別なドライバは不要。(MacOSXの標準CDCドライバに対応している。)

USBシリアルポートは、ls /dev/cu* とやって探した。
秋月のキットについていた、"LANAPP.MOT"ファイルを試しに送信してみる。
秋月キットは、CPUモード7(3本のモードジャンパを全てはずす)、書き込み+12Vをオンにしてストレートケーブルで接続。(2,3,5ピンのみ接続。7-8ピンはコネクタ内で短絡。)
% ./h8write -3052 LANAPP.MOT
。。。。。"H8/3052F is ready!"を表示した後にプログラムは暴走。
しかも、Ctrl-Cも受け付けず、killコマンドも受け付けなくなった。。。。。
その後、h8write.cをいじってシリアルポート制御を変更したりしたが、全然ダメ。
あげくの果てには、Darwinカーネルが暴走。
「お使いのコンピュータは再起動が必要です」の画面が。。。。。
つまり、MacOSXの標準ドライバがバグで腐っている、ということらしい。
というわけで、残念ながらVS-60Rはお払い箱に。
あらためて、IOデータの"USB-RSAQ3"を調達。こちらはCDROMから専用ドライバをインストールして使うタイプである。

ドライバをインストールしてUSBに接続したら、COMポート名は、"/dev/cu.I-O DATA USB-RSAQ3"であった。(また "ls /dev/cu*"で探した。)
Makefileの
CFLAGS=-DFreeBSD -DRSLINE="\"/dev/cu.usbmodemUSB-COM1\""
を
CFLAGS=-DFreeBSD -DRSLINE="\"/dev/cu.I-O DATA USB-RSAQ3\""
に変更して、h8writeを再コンパイル。
% ./h8write -3052 LANAPP.MOT
を、再度実行。
今度はうまく送信された。
秋月キットの電源を一度きり、+12Vをオフ、CPUモード6(MD0のみショート)にして、電源を入れ直す。
LCDに"TCP/IP on AKI-H8"と表示されて、無事動作。