『ベアメタル』なかなか良い響きだ。私の好きなヘビーメタルに似ているがちょっと違う。
この単語を知ったのは、つい数年前のこと。Arduino や esp32 などの SBCを使って、うちの工場の設備情報を取得したり、何かを出力したりといった実験を繰り返しているときに、だんだんスピードに物足りなさを感じてきた。また昔の話になってしまうが、初期のパソコン (マイコン) のBASICプログラムのスピードでは満足できなくなってマシン語で開発したくなる。そんな感じだ。RaspiでLinuxを動かして、その起動の遅さや実行スピードの遅さで、それを痛感した。
Arduino や esp32 などはそもそもメモリが少なかったり、CPUが非力で、やれることは限界があるので、Raspiをターゲットにしたいのだけど、RaspbianOS の上でPython でプログラミングなんて、かったるいの極致。
そこで、Armのマシン語の本を英語版で 2冊ほど買ってみた。さすがに RISCだけあって、単純な命令群なので、プログラムソースも単調な命令がひたすら並ぶ。これはちょっとつまらなそう。。などと考えながらWebで色々と検索していたら、「ベアメタル」という単語にたどり着いた。どうも OSを介さずに直接ハードをコントロールするプログラミングを「ベアメタル」というらしい。
何かおもしろそうな響きを感じ、いつか時間があればベアメタル開発をしてみたいなと思って、早数年が経過。
一方で、コロナ渦で、時間があったので、Windows 上で Delphi を使って MZ-80Kのエミュレータの開発なんてのもしてみた。こちらも一定の成果があったので、一気に開発したあとは放置していた。
さらに2024年の暮に、電波新聞社から PC-8801 mkIISR mini を開発中と発表され、それに合わせて、BASIC MAGAZINE DELUXE も販売するという。そして、なんと N88-BASIC や N-BASIC などのプログラムも募集するという情報を得て、一気にマイコン魂が目覚め、久々に Z80 でゲーム開発をしてしまった。
こうなってくると、私の気持ちのなかでは、マイコンブームとなり、一周めぐって MZ80のエミュレータをSBC で開発したい!! となったわけ。
それで、Raspi の ベアメタル開発を調べたら、なんと Lazarus IDE と統合された Ultibo ( ウルティボ ) というのがあるのを発見。Pascal で開発ということで、ここで自分の中ですべてが一本の線で結ばれた。
Raspi Zero 2W 上で動くMZ-80Kのエミュレータの開発を Delphi に酷似した Lazarus 環境で Pascal 言語を用いてベアメタル開発。
ちょっと長いタイトルだが、すべてを満たした。しかも、Raspi Zero 2W は HDMI で液晶表示もコントロールできるということで、これしかないと確信。
今日にいたったわけである。
とりあえず、ものをそろえてみた。





実機のディスプレイの表示領域とほぼ一緒の 4:3 の 8inch 液晶 と Raspi Zero 2W
きっとこれで、実寸大のMZ-80Kを、もう一度この手で再現できるかもしれない。そんな想像だけで、少し胸が躍る。
今はまだ、入口に立ったばかりだ。でも、この静かで穏やかな高揚感は、私にとってはじゅうぶんに意味のあるものだ。
言ってしまえば、ただの自己満足かもしれない。でも、人生の多くは、そういう満足の積み重ねでできているのだと思う。