◆レベル3用の漢字ROMもどきカードの情報はこのページの下部にあります。
レベル3/S1の漢字ROMもどきを作る
漢字ROMといえば漢字のドットパターンが格納されたROMです。当時のパソコンはソフトウェアあるいはハードウェアでこのROMにアクセスしドットパターンを画面に展開して漢字を表示するのが主でした。
レベル3は漢字ROMがオプションで別売でしたが、ワープロの需要が高まっていたこともあり、S1には漢字ROM標準搭載のモデルが販売されていました。今回はレベル3やS1で使用できる漢字ROMもどきを作っていきます。
漢字ROMの仕様
レベル3の漢字ROMカードにはJIS第一水準の漢字が収録されています。漢字ROMの容量合計は128Kバイトです。S1用にはさらに単漢字変換辞書ROM(32Kバイト)が追加されています。
CPU側から漢字ROMへはI/Oポートを介してアクセスします。漢字コードを書き込むとドットイメージが出力されるので、これをグラフィックVRAMに展開して表示する形になります。辞書ROMは物理アドレスに割り当てられていて、CPUから直接アクセスできるようになっています。
なおS1にはJIS第2水準の漢字を収めた拡張カードもありますが、こちらは詳細が分からないので今回は対象外にします。
代わりになるもの
現在、漢字ROM専用ICを入手するとなると、中古かジャンクか、はたまたレトロパソコンの拡張ボードなどから引っこ抜くか、となりますが所望の型番がなかったり、あっても思ったより値が張ったりと結構難しい状況です。それならばROMを自作しようじゃないかというのが今回の趣旨です。
ここで書き込みができるROMを探すのですが、PROMは書き込みに失敗するのが怖い、EPROMはデータ消去に紫外線が必要なので面倒、使いやすそうなのはEEPROMかフラッシュメモリとなります。というわけで、これらからパラレルでアクセスできるものを探します。
結論として、マイクロチップ(旧SST社)のSST39SF040フラッシュメモリにしました。DIP32ピンでデータバスがパラレル8ビット、容量は512Kバイト(4Mビット)あります。512Kバイトあれば漢字も辞書も詰め込めます。DigiKeyやMouserでの単価は220円ほどなのでお求めやすいのもいいですね(容量単価にすると高いが(^^;)。
書き込み装置を作る
さて、このフラッシュメモリに書き込むために必要なものですが、ROMライターがあればそれを使って書き込めます。ただ私が持っているROMライターはちょっと古くてWindows10に対応していないので、新たに書き込みできる装置をPICマイコンを使って作ることにしました。
以前、S1の拡張メモリを作る その2でSRAMの動作テストに使用した回路を流用して作りました。
書き込むデータはTeraTermからシリアル経由でPICマイコンへアップロードし、その後フラッシュメモリに書き込む形になります。送受信はYMODEMプロトコルを使用して最低限のエラーチェックを行うようにしました。
今回使用するデータは来夢来人に標準搭載されている漢字ROMと辞書ROMから抜き出したものになります。漢字ROMイメージはアドレス$00000~$1FFFF(128Kバイト)に、辞書ROMイメージは$20000~$27FFF(32Kバイト)に書き込みました。
レベル3実機で確認
それでは、レベル3用の漢字ROMもどきを作っていきます。
I/Oポートは$FF75,$FF76で、上位12ビットに漢字コード、下位4ビットにライン位置を書き込みます。漢字1文字が16×16ドットなのでライン位置を書き変えることで32バイト分のドットイメージが出力されます。
上記動作をする回路を設計したら、毎度おなじみブレッドボードに実装、そして、これまたおなじみロジックアナライザも接続して確認していきます。
漢字ROMもどきを接続する前に漢字を表示させようとしたのが以下の写真です。白一色になりますね。
漢字ROMもどきを接続すると無事漢字が表示されるようになりました。
MB-S1実機で確認
次は、MB-S1用の漢字ROMもどきを作っていきます。
漢字ROMへのアクセスはレベル3と同じI/Oポートです。さらに、単漢字変換辞書ROMが追加されており、物理アドレス$D0000~$D7FFFに割り当てられています。辞書ROMへはCPUから直接アクセスできるようになっています。
辞書ROMが追加されたので回路も変更。ブレッドボード上の配線も変更してS1に接続します。
漢字は問題なく表示されていますね。
次は辞書ROMにアクセスできるか確認します。MONコマンドでアドレス$D0000~$D7FFFをダンプしたところ何かしらのデータが見えています。フラッシュメモリに書き込んだ元のイメージと比較すると同じ値がでているので辞書ROMに間違いないでしょう。
ここで漢字BASICを起動し、漢字変換が行えるかを確かめます。
カナから漢字候補が表示されるので問題ないことが分かりました。
まとめ
今回使用したデータは来夢来人のものでしたがS1でも使えることが分かりました。こういうROMイメージがない場合、漢字ROMイメージはWindowsなどのフォントから作成可能ですが、辞書ROMは内部のフォーマットを解析しないと作成は難しいです。単漢字辞書なのでカナから漢字1文字に変換するテーブルが入っていると思われるのですが、この辺りは要調査ですね。
それにしても、このフラッシュメモリは便利ですね。データバスが8ビット、容量が512Kバイトと8ビットパソコンにはもってこいのICではないかと思います。今回は第1水準の漢字だけでしたが第2水準の漢字もこのメモリ1つで事足りそうです。また、これを使えば独自のOSを入れて起動、といった応用もできるのではないでしょうか。
参考文献
- I/O別冊ベーシックマスター活用研究 - 工学社
- I/O別冊S1活用研究 - 工学社
レベル3用の漢字ROMもどきカードを作成しました
ダウンロード
Rev.0.1
- 基板設計 CADデータ (Board Design CAD Data) (KiCad 5) - l3kanjirom_010.zip (579KB)
[MD5:15ca3b4ff0e2f2df34666cf67a21dc22] - 説明書・部品表 (.pdfファイル)
- 上記ファイルはGitHub(https://github.com/bml3mk5/L3KanjiRom)にもあります。