MSXプログラミングに必要な機材【プリンタ編】

MSXプログラミングにおいて実機環境ではMSXの画面内ではスクロールができないため、たびたびLISTと打ち込む必要があります。 MSXの24行の表示1画面内に収まるようにLISTで表示する行数を調整するなどの手間が必要です。MSX画面の中だけでコードを確認し、デバッグするのは限界があります。

MSXのプログラムを打ち込み、エラーが出た場合、エラーが出なくても動作が意図したものではない場合、プログラムのどこに不具合があるかを見極める必要があります。 MSXの場合、画面に表示できるのは24行であり、スクロールもできないためこの作業はかなり大変です。 MSX用のプリンタがあれば、プログラムコードを印刷して確認ができます。 ゲーム開発に必須な装置ではありませんが、あると便利な装置です。 MSX専用でなくとも接続できれば印刷できますが、キャラクターコードが異なると意図した文字が印刷されません。

今回は必要な機材としてMSXプログラミングにおけるプリンタの必要機能と印刷テクニックを紹介します。

MSXプログラミング用プリンタの必要機能

MSXプログラミング用プリンタとして必要な機能について紹介します。プログラムコードなど文字の印刷について特化し、グラフィックについては省略します。

MSXにつながること

MSX本体のプリンタポートはセントロニクス14ピンです。ここににプリンタケーブルを接続します。プリンタの機種により必要なケーブルが異なります。
プリンタインターフェイスの仕様は以下のとおりです。

規格:8ビットパラレル。BUSYとSTROBE信号によるハンドシェーク
レベル:TTL
JISコード準拠
コネクタ:アンフェノール14ピン、本体側メス  ・・・セントロニクスとも呼ばれます
信号線表(ピンアサイン)

端子番号 信号名 端子番号 信号名
PSTB PDB6
PDB0 PDB7
PDB1 10 NC
PDB2 11 BUSY
PDB3 12 NC
PDB4 13 NC
PDB5 14 GND

実際はMSX以外の他機種用プリンタでも同じインターフェイスを用いているプリンタであれば、制限はあるもののMSXとつなげて使用することができます。

MSXプログラミングの印刷の方法

すでにプリンタをお持ちの方は、とりあえずMSXとプリンタを接続してプログラムを印刷してみましょう。

プログラムの印刷は、【LLIST】と打ち込んだ後リターンキー(エンターキー)を押します。
プリンタバッファ等がないため、印刷中はMSX側のプログラミングの修正等ができません。
途中で印刷を止めたいときは【CTRL】+【STOP】を押します。

明らかにプログラムではない文字が印刷された場合、端子の接触不良であることが多いです。 まずはMSX側、ケーブル、プリンタ側の各端子の金属部分をアルコールなどで掃除してください。 接点復活材を薄く塗るのも良いでしょう。 端子がなじむよう、何度か抜き差しするのも効果的です。 その後印刷してみて正常に印刷されればOKです。 だめならプリンタケーブルの断線、プリンタの故障、MSX側端子の接触不要などを疑う必要があります。

MSXとキャラクターコードが一致していること

MSXが現役であった時代のプリンタはパソコン側からは文字に該当するコードが送られ、プリンタ側ではその文字にあったコードを印刷します。MSX専用はもちろんのこと、MSX対応可能なプリンタであれば、設定変更などでキャラクターセットをMSX用に合わせることで使用ができます。

例えば【&30H】ではれば数字の【0】、【&41H】はローマ字の【A】というイメージです。数字と英文字、カッコ、算術演算子、カタカナはJISコード準拠でありどんな機種でも共通のことが多いですが、MSX固有の記号、漢字、ひらがなはMSX専用、もしくはMSX対応品である必要があります。

MSXのキャラクターコード

MSX固有記号、漢字、ひらがなは使わないプログラムであればMSXにつながりさえすればMSXプログラミング用プリンタとして使えます。 このときMSX2以降であれば、【SCREEN】コマンドの5番目の指定が0であるとMSX標準プリンタ、0以外であるとMSX標準でないプリンタとなります。 0以外を指定すると、グラフィック文字は空白に、ひらがなはカタカナに変換されて印字されます。

消耗品が手に入ること

消耗品の入手性についてはかなり重要です。機器故障は修理するなり買い替えるなりする必要がありますが、消耗品がないだけでプリンタの使用をあきらめるのはもったいないです。 MSXのプリンタの種類で熱転写方式、サーマルプリンタと呼ばれるものは、インクリボンと用紙が消耗品となります。

インクリボンは文字通りインクをリボン(帯状のもの)に塗布したもので、文字の形に熱したプリンタヘッドでインクリボン越しに紙に押さえつけることで印字が行われます。 インクリボン自体は今現在も流通していますが、その形状はプリンタの機種ごとに異なるため使用に対するハードルは高いです。

しかしながらこのインクリボンがなくても印刷できる方法があります。

感熱紙ってご存じですか?身近なところだと、お店で買い物した際にもらうレシートの用紙が感熱紙です。 熱を加えることで黒色になり、太陽光にさらしたりすると色が薄れて読めなくなってしまいます。 長期間の保存には向いていませんが、MSXプログラミングのデバッグ作業程度なら十分な保存性です。

かつてはワープロ用にA4,B4サイズの感熱紙も販売されていましたが、今はほとんど見かけません。一方で感熱紙は家庭用のファックスでも使用されているため、ロール状のものは家電量販店、通販サイトなどで販売されています。 A4かB4サイズですのでプリンタに合わせて購入すればMSXプログラミングの印刷ができてしまいます。

ロール状感熱紙を支えるパーツもありますが、プリンタ裏に転がらないように置いておくだけでも十分です。 針金ハンガーなどで適当な部材を工作しても良いでしょう。

MSXプログラミングの印刷テクニック

MSXプログラミングの印刷を行う目的は、デバッグ、プログラムの保存、プログラムの公開などがありますが、MSX BASICの画面と同じ表示になるようにすると便利です。

行数や文字サイズ、改行ピッチなどを変更するにはエスケープシーケンスを使います。これはMSX規格ではなく、プリンタ側の機能ですので、ご使用するプリンタの取扱説明書等で確認が必要です。

ここでは私が実際に使っているbrother HR-5Xでの機能の一部をご紹介します。

印刷例のプログラムは【ポケットバック 12 アクションゲーム38】の①放火魔 です。brother HR-5Xは電源オンの初期状態での印刷は以下のとおりです。

1行40文字での印刷

プログラムを普通にデバッグする際は、プリンタの電源オン状態(初期状態)でそのままLLISTと打って出力していますが、プログラムを公表する際に可読性と入力しやすさを向上させるために偉業当たり40文字で印刷します。ここで使うのがレフトマージンです。

プリンタの電源をONにし、オンラインランプが点灯している状態で以下のコマンドを入力し、エンターキーを押します。

LPRINT CHR$(27)”L040″

このコマンドは左側のマージン(余白)を桁数で支持するもので、L040で40桁と入力します。

これにより、1行あたり40文字での印刷が可能です。 1行のプログラムが40文字を超えてもずれることなく、SCREEN0 WIDTH40とした時の画面と全く同じ文字数での印刷となりますので、入力時に前後左右の文字の位置との確認がしやすくなります。

もともと、brother HR-5Xは電源オンの初期状態で80桁表示ですので、左側の余白を40文字分として強制的に40桁に調整したものとなります。 そのため、用紙の右側半分に印字されたような状態となります。

文字を大きくして1行40文字の印刷

もう少し大きな文字にして40桁表示するには少し工夫が必要です。

文字を大きく(横2倍)するには以下のシフトアウトコマンドを入力しエンターを押します。

LPRINT CHR$(14)

このまま、LLISTでプログラムを印刷すると40文字での印刷はできますが、印字位置がずれてしまうことがあります。 この現象がなぜ起きるかは不明ですが、わたくしは以下のようにして解決しています。

①まずは【エリートピッチ】で1行に印刷される文字数を増やします。

LPRINT CHR$(27)”E”

これにより1行の文字数が96文字となります。

②次に【シフトアウト】で文字を大きくします。

LPRINT CHR$(14)

これは先ほど出てきたパイカピッチです。文字の大きさを横2倍に印刷します。この時の1行の文字数は48文字です。

③最後に【レフトマージン】で48文字を40文字に調整します。 この8文字は横2倍の時の8文字ですので調整上は16文字の余白をとります。すなわち以下のコマンドとなります。

LPRINT CHR(27)”L016”

これで文字が大きく、1行40文字で印刷ができました。

1行80文字での印刷

最後にSCREEN0 WIDTH80としたときの画面を印刷で再現してみましょう。

先の文字を大きくして1行40文字の応用です。 ②のシフトアウトを省略してみましょう。

コマンドは続けて打つこともできます。

LPRINT CHR$(27)”E”,CHR(27)”L016″

これで、1行80文字での印刷ができました。

コマンドを打つのが少し手間ですが、このひと手間で印刷の品質は向上し、プログラムを打ち込む側にとっても見やすい、使いやすいプログラムリストになります。

まとめ

今回はプリンターについてご紹介しました。 MSXプログラミングでゲーム開発をするにあたっては非常に便利ですので、予算と設置スペースが許すならば揃えてみてはいかがでしょうか。 またプログラムを投稿するにもMSX用のプリンターであれば特殊なキャラクターも印字できるので、閲覧者にも打ち込みする方にもフレンドリーなプログラムリストが印刷できます。