updated:
あなたのWindowsパソコンがより一層MSX色に染まる一品。無意味に便利。
ダウンロード
問題点
- GRAPHキーを押しながら表示する文字のほとんど(日月火水木金土・大中小・時分秒・罫線)は、Windowsでは文字コードが割り当てられず、TrueType化もできません。
Web埋め込み用のMSXフォントへ転用しよう!
【おことわり】以下の情報は、2000年頃に米Microsoft社が提唱していたWebフォント「Web Embedding Fonts Tool(WEFT, 拡張子 *.eot)」について書かれたものであり、2024年現在のW3C勧告に基づくWebフォントとは違うものです。過去の技術情報として残しています。
MSXフォントがWindowsで使えるのですから、これを活用しない手はありません。なので、せっかくだから「MSX-BASICのプログラムリスト」をWebで公開しましょう。
一応ノウハウは溜まりました。いくつかの問題が解決していません。
MSX-BASICリスト表示サンプル
MSX-BASIC上で
SAVE"ファイルネーム",a
を実行するとBASICリストがアスキーセーブ(テキストファイル化)できるので、「Web埋め込み用MSXフォント」を用いてWeb上でBASICリスト表示してみます。
※BASICリストの文字が選択でき、クリップボードへコピーすることができることを確認してください。MSXフォントを画像ではなく文字としてリスト表示していることが分かります。
原理
- Windows版 Internet Explorer(4.0以降)は、Webページの「埋め込みフォント」に対応しています(機種によっては「ブラウザ拡張機能」をインストールする必要があります)。
- HTMLページに含まれる特殊な文字を抽出して埋め込みフォントデータを作成する WEFT(Web Embedding Fonts Tool) というツールがマイクロソフトから無償で配布されています。HTMLページと埋め込みフォントデータをWWWサーバへアップロードすることで、HTMLページ内で使われた特殊なフォントを フォントのインストール作業なしに どのPCでも同じように表示することができます。
- この「埋め込みフォント」機能を逆手に取り、MSXの文字をTrueTypeフォント化、MSXで用いるすべてのキャラクタ(80h~0FEhも当然含む)を HTMLで表示し、HTML内で使用された特殊な文字(この場合全キャラクタ)を「WEFT」で抽出し、MSXの文字の埋め込みフォントデータを作りました。
- この埋め込みフォントデータを使うと、Webではこれまで表現が難しかった「MSX-BASICで書かれたプログラムリスト」をカンタンにMSXっぽく表示することができます。特に半角ひらがなはWindowsでは基本的に表示できない文字コードのため、これまで文字化けして読めなかった文字が読めるようになります。
- なお、この埋め込みデータはデータ作成時に配置する予定のURLを記述する必要があるため、私達(www.gigamixonline.com)が制作したデータは 他のサイトでご利用できません(よって配布しておりません)。他のサイトで使用するには、TrueTypeフォントとMFETをご自身のWindows PCへインストールし、埋め込みデータの作成時に使用したいURLを記述する必要があります。
どうやって解決したのか
- MSXの半角ひらがなの文字コードはシフトJISの領域とかぶるので、ブラウザがエンコードをデフォルト(日本語)で表示しようとすると文字化けする。よって、BASICリストは「欧文」の文書と位置づけた。
- TrueTypeフォントは日本語のフォントとして作成すると半角ひらがなの部分が作成できない。よって日本語の半角ひらがな・半角カタカナが含まれつつも「欧文フォント」として作成した。
- HTMLの文字コード設定を「<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">」に決め打ちすることで、欧文しか表示させなくした。表示例
- WEFTで埋め込みデータを作る際、埋め込みサブセットにてすべての文字を埋め込むよう手動で指示した。(グレーの文字は埋め込まれない設定だが、この文字をクリックすると黒文字になり、埋め込みができるようになる、これをグレーがなくなるまですべての文字で行う)これにより、20h未満以外の文字コードはすべて埋め込みデータを作ることができた。
問題点
- GRAPHキーを押しながら表示する文字のほとんど(日月火水木金土・大中小・時分秒・罫線)は、Windowsでは文字コードが割り当てられず、TrueType化もできない。よってBASICリスト表示に100%の互換性を保てない。
- これを解決するには、例えばGRAPHキー専用のTrueTypeフォントを別に用意し、専用のアプリケーションで文字単位でフォントを切り替えてBASICリストを表示…というような大掛かりな作業になりそうです。
- HTMLがプログラムリスト表示のため欧文のみとなり、日本語を併記できなくなってしまい、ホームページを作る立場で考えればちょっと使いにくい。ただし使用する英数字以外の文字が半角カタカナだけであればMSXのカタカナはシフトJISコードに準じているため、日本語エンコードのページでも表示できます。このように → 10 PRINT "コンニチワ! MSX-BASIC デス。"
- 日本語BASICで作られたシフトJISコードのBASICプログラムはエンコードが欧文では表示できない。→ってかシフトJISならフォント装飾なしにエンコード(日本語)で表示されるが、半角だけMSX、全角は他の日本語フォントから表示…という設定ができるのだろうか?誰か教えてください。