BUBCOM80の実機をお借りする機会を得ましたので、とことん調べてみました。
実機の写真はこちらにUpしてあります。
Googleフォト – BUBCOM80
本体内の主要なICは以下の通りです。
名称 | 用途 |
---|---|
SHARP Z80A | CPU |
NEC D8257C-5 | DMA |
MB471 | 8bitラッチ付き3ステート出力バッファ |
M8008A LX11 | 謎 |
MB8863H | 通信用?RS-232C? |
NEC D3301D-2 | CRTC |
SHARP Z80-CTC | タイマ |
お借りしたBUBCOM80は、電源投入ですぐにBASICが起動するようになっていました。本体基板の左上隅にBASIC用ROMが搭載されていると思われるボードがありましたが、ROMが基板に直付けされていて、その基板自体も取り外しが難しく、詳細は不明です。
本体起動直後は、起動用ROM(MB8516)のプログラムが各種初期化処理を行ってから、起動デバイスの検索と起動処理を実行しています。ROM BASICの起動シーケンスは、ROM BASICの有無確認、I/O空間経由でROM BASICをRAMへ転送、RAM上のBASICを起動という流れになっています。
MB8516は2716互換のEPROM(2KByte)でしたので、手持ちのROMライタで吸出しが可能でした。また、別途用意したMB8516を使って自作プログラムの書き込みと起動確認もできました。
ROM BASICはハード的な吸出しは出来ませんでしたが、BASIC上からアクセスする方法が判明したので、吸出しをしました。(吸出しプログラム自体は簡単なものですが、その後のコンバートが面倒なので非公開です)
ROM BASIC自体のサイズは0x9C00byteのようです。
BASICの解析はしていません。国会図書館にあったBUBCOM80のBASICの解析本によると、0000-F1FFがBASIC本体とプログラムエリア、F200からがVRAM、FDB8からFFFFがBASICのワークエリアのようです。
いくつかのBASICの命令を実機で実行してみた結果を録画してYOUTUBEにUpしました。
Z80周りの信号線の様子も見てみました。
CPUには4MHzが供給されています。NMIとWAIT信号は変化がありませんでした。
BUSREQが約500us毎に発生しています。下のキャプチャでは500us毎の塊になっていますが、拡大すると細かなパルスで構成されています。用途は不明です。
INT信号は約10004us(10.004ms)毎に発生しています。タイマ割り込みかもしれませんが、こちらも用途は不明です。