 |
アスキーコード
|
|

※上の数字(16進数)が上位4ビット、左の数字が下位4ビット。
0DH :CR
20H :SPACE
BASICのGET文で取り込まれるコードは、この他に、
17H :GRPH
18H :INST
19H :英数
1AH :カナ
05H、06H :ニコチャンマーク
英小文字、平仮名への変換制御文字。PRINT CHR$(*)という使い方もされます。
(67Hと68Hと見た目は同じでも別物。このページ下参照)
04H :CONSOLEとPALETの初期化(MZ-1500のBASICのみ)
|
 |
ディスプレイコード
|
|

※上の数字(16進数)が上位4ビット、左の数字が下位4ビット。
MZ-700/1500ではVRAMの読み書きは上記のディスプレイコードを使用します。
VRAMの属性領域(色情報エリア)の第7ビット目を1にした場合、英大文字は小文字に、カタカナはひらがなとなります。
余談ですが、MZ-700/1500のBASICのプログラムリストでひらがな、英小文字を入力すると、LIST中のその部分は通称ニコャンマークに囲われます(^_^;)
GRAPHモードでCTRL-EとCTRL-Fでニコチャンマークを直接入力することもできます。(MZ-700のHuBASICではCTRL-PとCTRL-Qの様です。)
※ ニコチャンマーク
|
 |
雑誌掲載プログラムリスト中のニコチャンマーク |
|
・ MZ-1500のBASICのプログラムリストをプリンターに印字すると、ニコチャンマークがピリオドになります。
雑誌などに掲載されているプログラムも、この状態のまま掲載されており、注意が必要です。


・ MZ-700のS-BASICのプログラムリストをプリンターに印字すると、ニコチャンマークがヌルストリングというか、出力されない、つまり、無かったことに。
手持ちの雑誌掲載プログラムでも、この状態のものを確認しました。
打ち込む場合、実行画面の写真を参考に、自分でニコチャンマークを追加するしかないです(^^;

・ MZ-700のHu-BASICのプログラムの場合、雑誌掲載プログラムリスト中のニコチャンマークは、3パターンあるみたいです。
@ ニコチャンマークが正しく印刷されている
A ニコチャンマークがピリオド

B 開始ニコチャンマークがヌルストリングというか、何も出力されない。終了がカーソル移動マーク下に文字化け
Bのパターンは大きな問題ですが、この状態の雑誌掲載プログラムリストは結構ありそうです。
この情報は、秋川藤志@akikawa134さんのポストで教えていただきました。今になって知る、驚きの事実です。
|
 |
MZ-700Hu-BASICのLLISTについて考える |
|
MZ-700のHu-BASICのLLISTコマンドは、内蔵プロッタでの印字を想定しています。
一見合理的な様に見えるのですが、プロッタは一般のプリンターより持っているキャラが少なく、グラフィック文字の多くは印字できません。
Hu-BASICのLLISTコマンドは、プロッタで印字出来ないキャラをピリオドに変換して出力します。つまり、グラフィック文字のほとんどがピリオドになります。
これは、一般のプリンターをつないでLLISTした時も同様で、グラフィック文字がピリオドになり印刷されます。
特にゲームなど、グラフィック文字を多く含むプログラムリストはピリオドだらけになり、まともに印刷することが出来ない仕様です。
当時の雑誌に掲載されているプログラムリストは、どうやって印刷していたのでしょうか。
考えた末、LIST”LPT:”でピリオド変換を回避できるのがわかったのですが・・
Hu-BASICのカーソル制御文字のアスキーコードがS-BASICと異なっており、LLISTでは内部で変換されて出力されているのですが、それもスルーされてしまい、つまり、カーソル制御文字の印刷に支障が出ることが判明しました。
ついでに、ニコチャンマークのアスキーコードも異なっており、文字化けする原因となっています。

更にX(ツイッター)上での考察の末、LLISTでまともに印刷出来る様に、Hu-BASICに修正を加えていたのではないか、という結論になりました。
・ POKE &H 17EB,00,00
とすることで、Bのパターンのグラフィック文字正常印刷ニコチャンは文字化け、が再現できました。当時もこうして印刷していたのではないか、と思われます。

・ Hu-BASICに、下の画像の修正を加えれば、@のパターンの、ニコチャンマークも含め正しく印刷、ができます。雑誌掲載プログラムリストで正しく印刷されているものは、同じ様な修正をしていたのではないかと思われます。
YATYATYAT@YATYATYAT1122さん、いろまげんくてい@stmladさん、ありがとうございました。

EmuZ-1500での出力。実機と少し違う場合もありますが、今回は実機と同じ。

・ アスキーセーブしたファイルを文字列として読み込み印刷したのではないか、という推測もあります。
LPRINT文はアスキーコードを変換せずそのまま出力しているみたいで、ニコチャンマークとカーソル制御文字のアスキーコード変換をするプログラムを入れれば、可能とは思いますが、EMMでも使わなければ少し面倒で時間がかかります。
|