で、素直に元々手元に用意していた PC-8801 の ROM イメージと共に Y's のディスクイメージを、Linux Zaurus に放りこんで、zQUASI88(PC-8801 エミュレータ)を動かそうとして、いきなりつまづく。
以前から用意していた PC-8801 の ROM イメージは M88 や PC88SR 用のツールを使って吸い出していたので、QUASI88 でそのままでは使えないみたいなのだ。後でオプションでそれにも対応できることは判ったらしいが、何となく思い立って勝手に分割&再構成ツールを作ってみる。
まずはシステム ROM イメージの分割ツールから。112KB の PC88.ROM ってファイルが対象。どうやら PC88SR で使えるヤツなので、そこのページ見て内容を把握。いくつかの ROM がまとめられているので、これを個別に分割する。
#include int sub(FILE *fp1,char *file,int size) { int i; char buf[1024]; FILE *fp2; fp2=fopen(file,"wb"); for(i=0;i
PC88.ROM に含まれる N88-2.ROM はどうやら QUASIS88 では不要みたい。逆に N88-1.ROM を N88.ROM にリネームしておく必要がある。あと、N-BASIC の ROM は分割されているので、N88N-1.ROM と N88N-2.ROM を結合して N88N.ROM としてやる必要がある。
次にフォントの ROM イメージに手をつける。これは 6KB の font.rom ってファイルで、バイナリダンプすると先頭 2KB が 8×8ドットのフォント(8 バイト×256 文字)、次の 4KB が 8×16ドットの半角フォント(16 バイト×128 文字)なので、これを分割するプログラムを作った。
#include int sub(FILE *fp1,char *file,int size) { int i; char buf[1024]; FILE *fp2; fp2=fopen(file,"wb"); for(i=0;i
QUASI88 で必要なのは 8×8 ドットの半角フォントだけみたいなので、FONT0808.ROM を FONT.ROM にリネームして使えばおっけーみたい。
ちなみにこの C のソースは LSI-C86 試食版でも、恐らく Linux Zaurus の dev_img-1.3 や zgcc などでもそのままコンパイルできると思う。最後に今回利用した ROM イメージファイル群を一気に QUASI88 用に変換するバッチファイルを以下に置いておく。これは ROM イメージを用意したディレクトリ内に上記プログラムと共に置き、実行すれば1つ上のディレクトリに QUASI88 で必要なイメージが作成される。
ROM88DIV.EXE COPY N88-1.ROM ..\N88.ROM COPY N88EXT0.ROM .. COPY N88EXT1.ROM .. COPY N88EXT2.ROM .. COPY N88EXT3.ROM .. COPY /B N88N-1.ROM+N88N-2.ROM ..\N88N.ROM COPY N88SUB.ROM .. DEL N88-1.ROM DEL N88N-2.ROM DEL N88-2.ROM DEL N88EXT0.ROM DEL N88EXT1.ROM DEL N88EXT2.ROM DEL N88EXT3.ROM DEL N88SUB.ROM DEL N88N-1.ROM COPY KANJI1.ROM ..\N88KNJ1.ROM COPY KANJI2.ROM ..\N88KNJ2.ROM FNT88DIV.EXE COPY FONT0808.ROM ..\FONT.ROM DEL FONT0808.ROM DEL FONT0816.ROM
これらプログラムのお持ち帰り用セットを作ってみた。MS-DOS 及び Windows で動作可能な EXE ファイル及びバッチファイル入りです。Linux Zaurus では zgcc インストールして gcc rom88div.c 等としてコンパイルしませう。
- QUASI88 用 ROM イメージ変換 toquasi.zip
- http://www.areanine.gr.jp/~nyano/archives/nikki/toquasi.zip