【ITニュース解説】Mi propio procesador de textos en ZX Sinclair BASIC (y II)
2025年09月22日に「Dev.to」が公開したITニュース「Mi propio procesador de textos en ZX Sinclair BASIC (y II)」について初心者にもわかりやすく解説しています。
ITニュース概要
昔のPC「ZX Spectrum」では、ワードプロセッサの表示が32列に限定され不便だった。市販品の存在を知らなかった筆者は、64列表示を実現するため、ユーザー定義グラフィックで文字を組み合わせて自作に挑んだ。当時の情報不足と技術的制約の中で、試行錯誤した情熱を振り返る。
ITニュース解説
まだパソコンが普及し始めたばかりの頃、今のような便利なソフトウェアはなかなか手に入らなかった。当時、ZX Spectrumというパソコンを使って文章を作成しようとした際、多くの利用者が直面した課題や、それを解決しようとした技術的な工夫、そして一人の人物が自作のワープロソフトに挑戦した経緯が、今回の話で語られている。システムエンジニアを目指す皆さんにとって、限られた環境で問題を解決しようとする姿勢は、大いに学ぶべき点があるだろう。
話の主人公が学生時代に使っていたZX Spectrum 128kというパソコンには、本体のROMにワープロソフトが内蔵されていた。しかし、このソフトには実用上の大きな問題があった。それは、画面に表示できる文字の数が32桁(カラム)に制限されていたことだ。当時の一般的なパソコンの画面は表示幅が限られていたため、多くの機種でこのような32桁表示が標準だったが、文書を印刷したときに紙の右側に大きな空白ができてしまい、見栄えも悪く、使いにくいと感じる人が多かった。現代の私たちが当たり前のように使う高機能なワープロソフトとは、大きく異なる状況だったのだ。
この32桁表示の制約を解決する手段の一つとして、Tasword 128kという市販のワープロソフトが存在した。このソフトは1986年に発売され、従来の32桁表示から一歩進んで、64桁表示に対応していた。画面の左右に8文字ずつの余白を取ったとしても、実質的に50文字近くを表示できるため、かなり実用的なワープロソフトだったと言える。しかし、主人公は当時このTasword 128kの存在を知らなかった。現在のようにインターネットで簡単に情報を検索できる時代ではなく、当時の情報源は「Microhobby」のような専門雑誌が主だった。さらにTaswordはイギリスのソフトであり、スペインで販売されていたかどうかも不明なほど、情報の入手は困難を極めていた。便利なソフトウェアが存在していても、その情報にたどり着くこと自体が、当時のIT環境では大きな課題だったのだ。
さて、ZX Spectrumで64桁表示を実現するのは、当時としては高度な技術的な挑戦だった。特別なワイド画面モードがあったわけではないため、ハードウェアの制約の中で巧妙な工夫が必要とされた。記事によると、この64桁表示はUDG(User Defined Graphics:ユーザー定義グラフィック)という機能を使って実現されていた可能性が高い。通常の文字は幅8ドットで表示されるが、UDGを使うことで、幅4ドットの「文字の半分」を二つ並べて一つの8ドット幅のキャラクターとして扱う、という方法が取られたと考えられる。これにより、見た目上は倍の文字数を表示することができたのだ。これは、限られたグラフィック能力の中で、いかにして表示情報を増やすかという、当時のエンジニアたちの知恵と工夫の結晶であり、制約の中で最大限のパフォーマンスを引き出す技術の面白さを示している。
ZX Spectrum 128kには、従来の48kモデルにはなかった新しいBASICコマンドがいくつか追加されていた。例えば、spectrumコマンドで48kモードに戻したり、playコマンドで新しいサウンドチップを使って音楽を鳴らしたりできた。renumコマンドでプログラムの行番号を振り直す機能も、プログラム開発者にとっては非常に便利だった。さらに、ファイル操作に関連するコマンドも追加され、特に「m:」という新しいドライブに対するcat!, load!..., erase!といったコマンドがあった。
そして、記事の中で興味深く語られているのが、「width*」という幻のコマンドの存在である。このコマンドは、もし実際に存在していれば、RS-232ポートという外部接続端子経由で出力される情報の桁数を変更できた可能性があるとされている。もしこのコマンドが正常に動作していれば、ROM内蔵のワープロソフトの32桁制限を突破できたかもしれない、と主人公は推測している。しかし、このコマンドは多くのバグを抱えていたため、製品版からは削除されてしまった。このように、製品として世に出るまでに、多くのアイデアが検討され、技術的な課題やバグによって実現が見送られることも珍しくなかったのだ。
ここで触れられている「m:」というドライブは、物理的なディスクドライブではなく、128kのメモリの一部をディスクのように扱えるようにした「メモリディスク」だった。ZX Spectrumの従来のBASIC(Sinclair BASIC)は、特定のメモリ位置に変数を持っていたり、特定の制限があったりしたため、それを大幅に変更してしまうと、それまで作られた48k用のプログラムとの互換性が失われてしまうという大きな問題があった。そこで、BASIC自体を大きく変えることなく、追加された128kのメモリを新しい方法で活用するために、このメモリディスクという仕組みが導入された。これは、既存のシステムとの互換性を保ちながら、新しい機能やリソースを追加するための、当時の開発者たちの巧妙な工夫と言えるだろう。
主人公は、これらの既存の選択肢の不便さや、幻のコマンドの存在を知らなかったため、最終的に「自分の手でワープロソフトを作る」という道を選んだ。当時の彼は、問題を解決したいという強い情熱と、解決策を想像できる能力に突き動かされたのだ。彼は、当時作ったワープロソフトのアルゴリズムを今になって再現してみたところ、最初の段落で機能しなくなることがわかった、と正直に語っている。当時の記憶は美化されていることも多いが、とにかく、自分にとって不便な状況を、自分の技術で解決しようとする姿勢こそ、システムエンジニアの原点と言えるだろう。この物語は、今ある便利なツールが、かつては多くのエンジニアの創意工夫と挑戦によって生み出されたことを教えてくれる。