
DMシステム2では16×16、12×12の計2種類のフォントドライバを登録できます。漢字ROMが用意できないMSX2ユーザーの方々は、フォントドライバを交換することで、漢字ROMを搭載されたマシンとほぼ同じように漢字表示が可能になります。
下線の引いてあるドライバ名をクリックすると.LZH形式のファイルを転送します。
このドライバで半角文字とJIS第1水準、第2水準の全角文字が表示できます。
※ このドライバはDMシステム2の出荷時に内蔵されています。
(Panasonic FS-A1STでの使用例)
このドライバで半角文字と、英数字、GRAPHキーで出せるような(月、火、時、分…)一部の記号と漢字が表示できます。
表示される文書が歯抜けになるとは言え、漢字ROMが無くてもそれなりに文書が読める(!?)ところがこのドライバの長所でしょう。
もともと8×16ドットの縦長なフォントですが、横サイズを2倍角して全角文字を形成しています。よって横ドットが粗く表示されます。(全角文字の表示サイズを8×16ドットに指定すれば本来の文字が表示できます)
このドライバで半角文字とJIS第1水準の全角文字が表示できます。
※ 一部表示できない文字があります。調査中です。
このドライバで半角文字とJIS第1水準、第2水準の全角文字が表示できます。ひらがな以外の文字は、MSX標準の漢字ROMを利用します。
※ このドライバはマッパRAM管理の仕様が決定する前に製作されたもので、仕様に準拠していません。
MSX-ViewはMSX turboR専用のソフトですが、ROMカートリッジ自体はMSX2/2+でも利用できます。そこで、A to C@東海大OBさんの著作権フリーな漢字フォント“要町 as MSX-View”を似非RAMディスクへ搭載することにより、MSX-Viewと互換性のあるカートリッジを自作することができ、DMシステム2で漢字表示が可能です。
このドライバで半角文字とJIS第1水準、第2水準の全角文字が表示できます。しかしFS-A1GTではフォント不足の為、JIS第2水準が表示できません。
※ このドライバはDMシステム2の出荷時に内蔵されています。
(MSX-View漢字ROMカートリッジでの使用例)
このドライバで半角文字とJIS第1水準の全角文字が表示できます。
ちなみにこの漢字ROMが搭載されていると、漢字BASIC(_KANJI1,_KANJI3)で文字がきれいに表示されます。
NALNOTEはMSX標準の漢字ROMも搭載しています。このドライバと併用すれば表示サイズに併せて使用フォントを最適化でき、いつでも読みやすい文字を表示できるようになります。
このドライバで半角文字とJIS第1水準の全角文字が表示できます。
フォントファイルをどのRAMへ配置するかによって、利用するドライバが変わります。ドライバはVRAM版、マッパーRAM版の2種類が用意されています。
VRAM版はVRAMの裏ページ(10000h)へ配置しておきます。マッパーRAM版はフォントをマッパーRAMへインストールする必要があり、空きセグメントを4枚(64KB)使用します。
マッパーRAM版は特に海外のMSX2/2+で日本語を表示させる用途に適しています。なぜなら、海外のMSX2/2+は128KB以上のRAMが標準的に搭載されたことに対し、日本のMSX2/2+のほとんどは64KBしか搭載されなかったことで、日本のMSX環境でソフトを構築すると、一般的に海外では日本語が表示できないうえ、最低64KB以上のRAMを余らせる結果に陥ります。そこで、余ったRAMの活用方法として日本語フォントの搭載が挙げられるわけです。
このドライバで半角文字とJIS第1水準の全角文字が表示できます。
※ ねこいらずはKICHI氏のフリーウェアですが、改造・商利用の許可を得ています。
ほぼ完成しており、近日公開です。どうぞお楽しみに。
マッパーRAMさえあれば漢字ROMが無くても漢字表示が可能になります。主に海外のMSX2/2+で日本語を表示させる為に利用しようと考えています。
現在、A to C@東海大OBさんの著作権フリーな漢字ROMイメージが公開されており、フォント調達の問題は解決しましたが、ドライバの開発はまったく進んでおりません。
※ MSX標準の漢字ROMとして代用することはできません。
フォントドライバは計1つのコールエントリーを構築します。
コールエントリーの本体はヘッダ部と合計して512バイト以内に収める必要があります。
本体はドライバ内のどこにでも配置して構いませんが、DMシステム2はドライバのヘッダ部に記載された“コールエントリーへのコール先”を利用するので、このアドレスに対応したメモリへルーチンを配置するようにしてください。
ex.2) 18バイトのサイズ, 6×12の半角フォント(左詰め)
ex.3) 18バイトのサイズ, 6×12の半角フォント(右詰め)
フォントドライバのインストールは、インストール後に インフォメーションエリア の以下のワークを設定してください。
この章では、マッパーRAMを利用した漢字表示を実現する手順を紹介します。
※ フォントが有効か否かはフォントインストーラを実行してみなければ分かりません。フォントをインストールするRAMが明らかに無い場合でも、一度インストーラを実行し、その際出力されるエラーを関知してから処理してください。
※ フォントをインストールするマッパRAMは連続した空きセグメントでないとインストールできません。複数のスロットにまたがることもできません。
詳しくは、ドライバについて の 第2章 ドライバのインストール方法 をご覧ください。
第1章 概要
1.1 フォントドライバとは
DMシステム2の漢字表示に必要な漢字フォントデータを各種周辺機器から取得する専用のルーチンです。MSX標準の漢字ROMはもちろんのこと、漢字フォントとして使えそうな多くの周辺機器やシステムに対応します。
第2章 各種ドライバの紹介
この章ではDMシステム2で対応するドライバ及び、今後対応が予定されているドライバを紹介します。
2.1 利用可能なドライバ
2.1.1 MSX標準 漢字ROM (16×16)
MSXの漢字ROMを利用する標準的なドライバです。MSX2+とMSX turboR、一部のMSX2など、現存するMSXマシンのほとんどに漢字ROMが搭載されていますので、通常はこのドライバだけで支障は無いはずです。
![]()
Archive
FNT-KROM.LZH (2KB)
2.1.2 ANKフォントだけのドライバ (16×16ドット)
MSXのANK(半角)フォントを利用して、全角文字をできるだけ表示させようとします。とは言え、MSXで用意されているキャラクタに無い文字はすべてダイヤマークになってしまいます。
![]()
Archive
FNT-ANK.LZH (3KB)
2.1.3 NVマガジン VRAMフォント (16×16ドット)
![]()
草の根ソフトハウス・Syntax製の“NVマガジン”で採用されたオリジナルの漢字フォントを利用するドライバです。漢字フォントファイルはFONTNV.KNJで、VRAMの裏ページ(10000h)へ転送しておきます。
last update: Sep 18, 1998
![]()
Archive
FNT-NV.LZH (5KB)
2.1.4 へきるふぉんと (16×16ドット)
今大人気の声優、椎名へきる嬢の直筆ひらがな(!?)を某マニアがフォントファイル化、それをDMシステム2で利用できるようにしたドライバです。このドライバはフォントファイルをマッパーRAM、及びVRAMのどちらかへ配置して利用します。へきるファンの方はぜひどうぞ。
last update: May 20, 1996
![]()
Archive
FNT-HEKI.LZH (5KB)
2.1.5 MSX-View漢字ROMカートリッジ (12×12ドット)
![]()
MSX turboR専用のGUI、MSX-Viewに付属されたオリジナルの漢字ROMカートリッジを利用するドライバです。また、同等のROMが内蔵されているPanasonic製FS-A1GTでも利用できます。
※ MSX-Viewカートリッジは、MSX標準の漢字ROMとして代用することはできません。
last update: Sep 18, 1998
![]()
Archive
FNT-VIEW.LZH (5KB)
(“要町 as MSX-View”での使用例)
2.1.6 松下仕様12ドット漢字 (12×12ドット)
Panasonicの通信モデムカートリッジ、FS-CM1に内蔵されたオリジナルの漢字ROMをDMシステム2で利用するドライバです。また、同等のROMが搭載された“ワーコン”FS-4600Fと、FS-CM1の機能を内蔵させたFS-A1FMでも利用できます。
![]()
Archive
FNT-CM1.LZH (2KB)
2.1.7 HALNOTE (12×12ドット)
HAL研究所より発売されたGUIソフト、HALNOTEのROMカートリッジに内蔵されているオリジナルの漢字ROMを利用して表示します。
![]()
Archive
FNT-HAL.LZH (3KB)
2.1.8 ねこいらずフォント (12×12ドット)
旧DMシステムの漢字表示で利用されていた“ねこいらず”フォントファイル(約64KB)を利用するドライバです。
last update: Dec 18, 1996
![]()
VRAM版
FNT-NEKO.LZH (51KB)
![]()
マッパーRAM版
FNT-NEK2.LZH (51KB)
2.2 現在開発中のドライバ
DMシステム2で今後対応したいと考えている周辺機器を紹介します。
2.2.1 かんたん手帳リフィルくん (12×12ドット)
アスキーから発売されたもののメジャーになれなかった超実用ソフト、“かんたん手帳リフィルくん”に内蔵されたオリジナルの漢字ROMを利用するドライバです。
2.2.2 16ドット漢字 (16×16ドット)
MSX標準の漢字ROMと同じ、16×16ドットサイズの漢字フォント(半角文字とJIS第1水準で約96KB)をMSXのマッパーRAMへ常駐し、漢字を表示させるドライバです。
2.3 その他、対応が予定されているもの
ハードが発掘され次第、順次開発して行く予定です。
第3章 ドライバの利用方法
詳しくは、ドライバについて の 第2章 ドライバのインストール方法 をご覧ください。
第4章 フォントドライバの作り方
この章では、DMシステム2で動作可能なドライバをユーザー自身が開発・利用するための手順を紹介します。
4.1 ドライバのメモリマップ
フォントドライバは、計512バイトで、3部構成です。
フォントドライバの先頭アドレスは、フォントの対応サイズにより変わります。
16×16ドット用 7400h〜75FFh
12×12ドット用 7600h〜77FFh
4.2 ドライバのヘッダ部・コールエントリー
ヘッダは48バイトで構成されており、以下の用途で用いられます。ヘッダの次には「コールエントリーへのコール先」となる3バイトの羅列が続きます。
オフセット バイト数 用途
+ 0 40 ドライバ名称 (漢字可, 空白は20hで埋める)
+40 1 EOFコード (1Ah)
+41 1 ドライバ種別番号 (00h:フォントドライバ)
+42 1 対応サイズ番号 (1:16x16 2:12x12 3:拡張)
+43 5 未使用
+48 3 コールエントリー1(FNTDRV)へのコール先 (JP xxxxh)
ex.)
ORG 7400h ;16×16用
7400 DEFM 'ドライバ名称を漢字20文字に収めます。 ' ;余白は20hで
7428 DEFB 1Ah ;EOF
7429 DEFB 00h ;フォントドライバの意
742A DEFB 01h ;16×16フォントドライバの意
742B DEFS 5 ;未使用
7430 JP FNTDRV ;フォントの獲得
ORG 7600h ;12×12用
7600 DEFM 'ドライバ名称を漢字20文字に収めます。 ' ;余白は20hで
7628 DEFB 1Ah ;EOF
7629 DEFB 00h ;フォントドライバの意
762A DEFB 02h ;12×12フォントドライバの意
762B DEFS 5 ;未使用
7630 JP FNTDRV ;フォントの獲得
4.3 ドライバの本体
ドライバは、DMシステム2から直接アクセスされるマシン語ルーチン群“コールエントリー”を中継して機能します。
4.3.1 コールエントリー1 FNTDRV (フォントの獲得)
文字コードに対応するフォントを1文字読み出します。ドライバでは、指定されたフォントに対するフォントデータを構築し、各種パラメータをシステム内へ転送させます。
[in]
B 0: 半角
1: 全角第一水準
2: 全角第二水準
DE シフトJISコード (半角の場合 D←0 E←アスキーコード)
[out]
HL フォント格納アドレス
D フォントサイズ:x (半角サイズで)
E フォントサイズ:y
B オフセット (ビット数)
C フォント折り返し幅 (ビット数)
ex.1) 18バイトのサイズ, 12×12の全角フォント
D←12, E←12, B←0, C←12
D←12, E←6, B←0, C←12
D←12, E←6, B←6, C←12
4.4 インストーラの製作
開発したドライバを一般公開したいのでしたら、ぜひインストーラもご用意ください。インストーラの制作方法については、ドライバについて の インストーラの製作 をご覧ください。
----- 16×16ドットの場合 -----
FNTSEL (0300h+174) ← 1 (16ドット固定) ※12ドットも利用可能なら 0
FNTSIZ (0300h+175) ← 8 (半角サイズ:x)
FNTSIZ+1 (0300h+176) ← 16 (半角サイズ:y)
FNTSIZ+2 (0300h+177) ← 16 (JIS第1水準, 全角サイズ:x)
FNTSIZ+3 (0300h+178) ← 16 (JIS第1水準, 全角サイズ:y)
FNTSIZ+4 (0300h+179) ← 16 (JIS第2水準, 全角サイズ:x) ※2水が無い場合は 0
FNTSIZ+5 (0300h+180) ← 16 (JIS第2水準, 全角サイズ:y) ※2水が無い場合は 0
----- 12×12ドットの場合 -----
FNTSEL (0300h+174) ← 2 (12ドット固定) ※16ドットも利用可能なら 0
FNTSIZ+6 (0300h+181) ← 6 (半角サイズ:x)
FNTSIZ+7 (0300h+182) ← 12 (半角サイズ:y)
FNTSIZ+8 (0300h+183) ← 12 (JIS第1水準, 全角サイズ:x)
FNTSIZ+9 (0300h+184) ← 12 (JIS第1水準, 全角サイズ:y)
FNTSIZ+10 (0300h+185) ← 12 (JIS第2水準, 全角サイズ:x) ※2水が無い場合は 0
FNTSIZ+11 (0300h+186) ← 12 (JIS第2水準, 全角サイズ:y) ※2水が無い場合は 0
拡張フォントドライバ
+12,13 ANKフォントサイズ (0,0のとき非対応)
+14,15 第一水準フォントサイズ (0,0のとき非対応)
+16,17 第二水準フォントサイズ (0,0のとき非対応)
第5章 漢字表示とマッパーRAM
128KB以上のマッパRAMを利用して漢字フォントをフォントドライバから利用するには、フォントデータとフォントドライバをそれぞれ有効にしなければなりません。
5.1 フォントをマッパRAMへ転送
フォントインストーラ(FONTINST.OBJ)をロードして、C000hをコールします。
A=USR(フォントファイル名)
Aの戻り値は以下の通りになっています。
フォントの転送が正常に行われた場合は、以下のワークエリアに情報を残します。
bit0 DOSのバージョン (0:DOS1 1:DOS2)
bit1 インストール結果 (0:成功 1:失敗)
マッパーRAMへ転送したフォントが有効で無い場合は、フォントドライバのインストールを中止してください。
ALCSLT (C700h+19) インストール成功したマッパRAMのスロット
ALCBNK (C700h+20) 同じく、先頭セグメント番号 (0〜255)
BNKSIZ (C700h+21) 同じく、セグメント数 (1〜255)
5.2 フォントドライバをインストール
マッパーRAMへ対応したフォントドライバをインストールします。
5.3 インフォメーションエリアの修正
インフォメーションエリアを書き換えます。書き換える内容は以下の通りです。
----- 16×16ドットの場合 -----
FNTSL0 (4300h+109) ← ALCSLT (C700h+19, マッパのスロット)
FNTBK0 (4300h+110) ← ALSBNK (C700h+20, 先頭セグメント)
FNTSZ0 (4300h+111) ← BNKSIZ (C700h+21, セグメント数)
FNTSEL (4300h+174) ← 1 (16ドット固定) ※12ドットも利用可能なら 0
FNTSIZ (4300h+175) ← 8 (半角サイズ:x)
FNTSIZ+1 (4300h+176) ← 16 (半角サイズ:y)
FNTSIZ+2 (4300h+177) ← 16 (JIS第1水準, 全角サイズ:x)
FNTSIZ+3 (4300h+178) ← 16 (JIS第1水準, 全角サイズ:y)
FNTSIZ+4 (4300h+179) ← 16 (JIS第2水準, 全角サイズ:x) ※2水が無い場合は 0
FNTSIZ+5 (4300h+180) ← 16 (JIS第2水準, 全角サイズ:y) ※2水が無い場合は 0
----- 12×12ドットの場合 -----
FNTSL1 (4300h+112) ← ALCSLT (C700h+19, マッパのスロット)
FNTBK1 (4300h+113) ← ALTBNK (C700h+20, 先頭セグメント)
FNTSZ1 (4300h+114) ← BNKSIZ (C700h+21, セグメント数)
FNTSEL (4300h+174) ← 2 (12ドット固定) ※16ドットも利用可能なら 0
FNTSIZ+6 (4300h+181) ← 6 (半角サイズ:x)
FNTSIZ+7 (4300h+182) ← 12 (半角サイズ:y)
FNTSIZ+8 (4300h+183) ← 12 (JIS第1水準, 全角サイズ:x)
FNTSIZ+9 (4300h+184) ← 12 (JIS第1水準, 全角サイズ:y)
FNTSIZ+10 (4300h+185) ← 12 (JIS第2水準, 全角サイズ:x) ※2水が無い場合は 0
FNTSIZ+11 (4300h+186) ← 12 (JIS第2水準, 全角サイズ:y) ※2水が無い場合は 0
Copyright (c) 1998 GIGAMIX, All rights reserved.