いまさらベーシックマスターの開発環境を作ってみる(11) 文字コード(1)

2024/06/07BASICMASTER, 昔のパソコン

私はベーシックマスターのエミュレーターをWindows上で動かして、それをMacbook AirからMicrosoft Remote Desktop経由で使っている。最終確認はWindowsを使うしかないが、途中の作業はなるべくMacOS側で行いたい。

BASICやGAMEなどの言語のプログラムを書いたり・修正したりする場合も、なるべくMacOS側で作業したい。最終結果をファイルなりコピペなりで流し込めれば充分だ。

ところが、ここで大きな問題が立ちはだかる。8bit機の文字コードだ。

BASICMASTER の文字コード

GAME言語で簡単なプログラムを書いて、文字コードを確認してみる。

10 >=$FFEF
20 A=$100
30 X=0,9 A:X+1)=X+$30 @=X+1
40 X=10,15 A:X+1)=X+$37 @=X+1
50 Y=0,9 A:Y*32+32)=Y+$30 @=Y+1
60 Y=10,15 A:Y*32+32)=Y+$37 @=Y+1
70 Y=0,15
80 X=0,15
90 A:Y*32+32+X+1)=Y*16+X
100 @=X+1
110 @=Y+1
120 ^=20

JIS C 6220-1976(現JIS X 0201)の8単位コードに準拠しているので、英数字や英記号は見慣れた文字が並ぶ。カタカナは(いわゆる)半角カタカナである。

問題はJIS C 6220で未定義だった部分($80-$9F,$E0-$FF)と、制御コード($00-$1F)、本来は"`"や"{“などが入っているはずのコード($60,$7B-$7E)だ。

BASICMASTERでは、ここに絵文字と簡単な漢字を置いている。これをBASICや他の言語で文字列として使っているものがある。というか、普通使う。直接絵文字を書かなければ、CHR$関数を使うしかなく、メモリも食うし速度も遅くなる。

絵文字という呼び方は当時はなかった。図形パターン、グラフィックキャラクターなどと呼んでいた。

絵文字の使い方

例えば、BASICMASTERに移植した二人麻雀ゲームでは、こんな感じで絵文字を使っている。

これはBASICMASTERに限ったことではなく、当時のパソコンは絵文字を使いまくっていた(MZ-80Kが特に凄かった)。
何しろグラフィックスの解像度が低く、何か気の利いた表示をしようと思ったら絵文字に頼らないといけない時代だ。
PCGや高解像度グラフィックス(といっても640×200や640×400)が使えるようになったのは、さらに数年後の話である。

BASICMASTERは標準では絵文字は入力できないため(それどころか、英小文字も入力できなかった)、入力用の拡張プログラム(フルキーボード化プログラム)が愛用されていた。最初から絵文字が入力できる機種が羨ましいと思ったものだ。

続く