ワープロを作ろう の1

ポメラは128KBのRAMでATOKを動かして最低限のテキストエディットを実現している。同じようなのを作ろう。

最大の壁はフォントとFEP

ポメラが128KBのRAMで済む非常に大きな理由は、往年のワープロと同様にROMにフォントや辞書を格納していることが考えられる。辞書をROMに格納しているということは、PCに対するワープロの優位性の一つであった。PCはフロッピーに辞書を格納していたので変換にはどうしてもワンテンポ必要になってしまっていた。
辞書ROMやフォントROMの利用を想定しないとすると、適切なキャッシュメカニズムが必要になる。一つの文章で使われる語彙は、非常に広大な辞書のごく一部であることが普通なので、辞書やフォント全体をRAMに取り込む実装はあまり望ましくない。

リソースの準備

この手のシステムを実装するときに障害として想定されるのは、プログラムよりもリソースかも知れない。幸い、この分野には自由なリソースが十分に準備されている。
かな漢字変換としてはSKK(風の操作体系)を用いる*1

SKKの最新のL辞書は4MBのサイズが有る。特にこのサイズの辞書を使うことに必然性は無く、制作途中であればより小型な辞書を使うのも良いかも知れない。もっとも、ここを妥協すると教育的でないので。
辞書の形式は、基本的には見れば解るものとなっている。L辞書にはアノテーションが付与されているので、出力中のセミコロン以降を省く等の処理は必要になる。
フォントはFONTX2形式のビットマップフォントが基本的には扱いやすい。実際の利用時には変換して使うことになる。

意外と盲点になるのはローマ字と平仮名の変換テーブルと、SKKで必要となる平仮名と片仮名の変換テーブルで、これはこちらで用意した。

これらのテーブルも、当然変換して使うことになる。
最後に、キーコードをアルファベットに変換するテーブルが必要になる。これはプログラムに自然に内蔵される。

*1:平行してMeCab版も準備しているが難航中