パソコンミニ MZ-80C が来ました!
念のため説明しておくと、往年の8ビットパソコン MZ-80C の筐体を 1/4 スケールで再現し、その中に Raspberry Pi model A+ を収めたもの。キーボードと画面は「飾り」だけど、USB キーボードと HDMI モニターを使えば、SmileBASIC が動作します。
SmileBASIC は、Raspbian の上に乗っているのではなくて、単体で立ち上がります。いわゆるベアメタル。ソフトウェアの利用許諾とか、バックアップコピーの取り扱いとか、どうなっているのかなと思っていたのだけど、内蔵されているラズパイのボードと1対1に紐付けられているようで、他のラズパイでは立ち上がらないらしい。これは合理的なやり方だ。将来は SmileBASIC の単体発売をぜひ検討していただきたいものだけど、紐付けの作業が煩雑になってしまうかな。
筐体は愛でましたが、機能的には大して意味はないので、内蔵のラズパイを取り出して、単体で動作させる。お気に入りの5インチ HDMI モニターです。本体と一体化できるので、配線が煩わしくならないのがいい。
…と思ったのだけど、画面が正常に表示できていない。右端が切れている。エミュレーションモードだとさらに顕著で、画面の左と上に余分な空白があって、右と下が途切れている。
どうも、フレームバッファは 1280x720 と認識しているが、表示は液晶の解像度の 800x480 でされているようだ。SmileBASIC の画面で見えている範囲が 40x30 文字のようなので。config.txt
をいろいろいじってみたけど、解決できなかった。例えば次のように指定すると、表示は 800x480 で、1280x720 のフレームバッファを縮小表示してくれるはずなのだけど、"Segmentation Fault" で落ちちゃうんだよね。
hdmi_group=2
hdmi_mode=87
hdmi_cvt=800 480 60 6 0 0 0
framebuffer_width=1280
framebuffer_height=720
なお、同じ設定で、拙作の Daruma BASIC ベアメタル版だと、正常に立ち上がって、設定通りの表示になります(2ピクセル=1ドット扱いなので、BASIC 上での解像度は 640x360 になっている)。Daruma BASIC は circle を元にしていて、たぶん変わったことをやっているわけではないので、Smile BASIC でも動作させる方法はあるはずだと思うんだけど。
うーん残念。外付けの 10 インチモニタは坊に貸し出し中だし、しばらくはお蔵入りかな…。