▼ 2015/11/20(金) PC-8801シリーズの漢字アクセス処理
【PC-8801】
前回の記事ではPC-8801シリーズ用漢字ROMのハードウェアについて説明したので,今回はソフトウェアの話です。
PC-8801/8001mkIIシリーズ用第1水準漢字ROMのアクセス方法は共通で,I/Oポートの0E8H~0EBHに対して以下の手順でアクセスします。
この仕様がFRでなくSR以降となっていたら,SR以降専用ソフトは漢字表示処理をもっと高速化できたでしょうに。
漢字表示専用ハードウェアを持たないPC-8801にとって漢字表示は非常に時間のかかる処理なので,なんとも残念なことです。
第2水準漢字ROMへのアクセスは,第1水準漢字の手順をポート0E8H→0ECH,0E9H→0EDHと変更するだけです。
第2水準漢字ROMを標準でサポートしているのは8801mkIIMR以降だけなので,できればこちらも手順3,4,7を省略したいところですが,PC-8801シリーズ最終機種であるPC-8801MC付属の日本語BASICでもしっかりとこの処理は入っていました。
TR以前の機種でも使えるロム坊やマルチボードAのことを考慮しているでしょう。
しかし,実際にロム坊/マルチボードAを使ってみて気づいたのですが,これらのボードは手順3,4,7を省略しても全く問題なく動作しています(PC-8001mkII/PC-8801初代で確認)。
ROMBO2は未確認ですが過去の仕様にわざわざ戻すというのも考えづらいですし,実は第2水準漢字ROMのアクセスって全機種で手順3,4,7を省略できたのではないかと思います。
もっとも,使用頻度の低い第2水準漢字だけ手順を省略しても,ほとんど高速化はされなかったでしょうけど。
もしかしたら,FR以降で手順3,4,7が省略できるようになったのは,MRで第2水準漢字をサポートするにあたってアクセス方法をロム坊の仕様に合わせたからではないかとも思いました。
まあ,こちらについては全く根拠のない妄想ですが。
ところで,PC-8801用には2HD機種専用のソフトや8MHz機種専用のソフトがいくつか発売されています。
これらの機種であれば手順3,4,7は不要になる上に,対象となる全機種が第2水準漢字ROMをサポートしているので,そういった対応がされていないかと期待して手持ちのソフトを調べてみました。
まず,2HD版しか発売されていないソフトとして「Shogun2(サムシンググッド)」。
調べてみましたが,第1/第2水準共に手順3,4,7をきちんと実行していました。
2HD機種専用とは言いつつも,SR/TR/FRユーザが第2水準漢字ROM&PC-8831-MWを増設した場合を考慮したのでしょう。
続いて,8MHz専用版しか発売されていないソフトとして「FANGS(ENIX)」と「MIRRORS(スタジオWING)」も調査してみました。
これらのソフトも手順3,4,7はしっかり実行していました。FH/MH以降には標準搭載のはずの第2水準漢字も全然使っていない様子です。
さらに,FANGSの方は8MHz機には未対応のはずのPC-8801-23にまで対応しています。速度が遅いのを我慢すれば,4MHz機でもフル機能で遊べてしまいますね。
結局の所,動作機種を制限しているとは言っても旧機種ユーザが強引に動かそうとする場合も考慮して,後期機種にしかない機能は極力使わないように配慮しているようです。
少しばかりの機能アップよりも,互換性が大事だということでしょう。
他にも2HD版しか発売されてないソフトは「プールオブレイディアンス(PONYCA)」,8MHz版しか発売されてないソフトは「プラジェータ(ENIX)」がありますが,これらは未所持なので入手できたら調べてみたいと思います。
それでは,手順3,4,7を省略したソフトは公式には存在しないのか? と言われればそんなことはありませんでした。
私の手持ちだと,PC-8801FA付属デモンストレーションは漢字表示処理で手順3,4,7を省略して動いています。
このソフトをSRで動かすと,漢字が表示されないはずです。
また内蔵OPNAにしか対応していないので,FR/MR以前ではサウンドボード2を増設しても音楽は本体内蔵OPNからとなるため,まともに再生されません。
誰でも購入できる市販ソフトと違って,本体付属の専用ソフトではこういうパターンもあるみたいです。
PC-8801/8001mkIIシリーズ用第1水準漢字ROMのアクセス方法は共通で,I/Oポートの0E8H~0EBHに対して以下の手順でアクセスします。
- ポート0E8Hに漢字ROMアドレスの下位8ビットを出力
- ポート0E9Hに漢字ROMアドレスの上位8ビットを出力
- ポート0EAHに漢字ROMアクセス開始の合図を送る(データは任意)
- 8ステートのウェイトを取る
- ポート0E9Hより文字フォントデータを入力する
- ポート0E8Hより文字フォントデータを入力する
- ポート0EBHに漢字ROMアクセス終了の合図を送る(データは任意)
- 漢字ROMアドレスを+1して,必要なデータ数だけ1にループする
この仕様がFRでなくSR以降となっていたら,SR以降専用ソフトは漢字表示処理をもっと高速化できたでしょうに。
漢字表示専用ハードウェアを持たないPC-8801にとって漢字表示は非常に時間のかかる処理なので,なんとも残念なことです。
第2水準漢字ROMへのアクセスは,第1水準漢字の手順をポート0E8H→0ECH,0E9H→0EDHと変更するだけです。
第2水準漢字ROMを標準でサポートしているのは8801mkIIMR以降だけなので,できればこちらも手順3,4,7を省略したいところですが,PC-8801シリーズ最終機種であるPC-8801MC付属の日本語BASICでもしっかりとこの処理は入っていました。
TR以前の機種でも使えるロム坊やマルチボードAのことを考慮しているでしょう。
しかし,実際にロム坊/マルチボードAを使ってみて気づいたのですが,これらのボードは手順3,4,7を省略しても全く問題なく動作しています(PC-8001mkII/PC-8801初代で確認)。
ROMBO2は未確認ですが過去の仕様にわざわざ戻すというのも考えづらいですし,実は第2水準漢字ROMのアクセスって全機種で手順3,4,7を省略できたのではないかと思います。
もっとも,使用頻度の低い第2水準漢字だけ手順を省略しても,ほとんど高速化はされなかったでしょうけど。
もしかしたら,FR以降で手順3,4,7が省略できるようになったのは,MRで第2水準漢字をサポートするにあたってアクセス方法をロム坊の仕様に合わせたからではないかとも思いました。
まあ,こちらについては全く根拠のない妄想ですが。
ところで,PC-8801用には2HD機種専用のソフトや8MHz機種専用のソフトがいくつか発売されています。
これらの機種であれば手順3,4,7は不要になる上に,対象となる全機種が第2水準漢字ROMをサポートしているので,そういった対応がされていないかと期待して手持ちのソフトを調べてみました。
まず,2HD版しか発売されていないソフトとして「Shogun2(サムシンググッド)」。
調べてみましたが,第1/第2水準共に手順3,4,7をきちんと実行していました。
2HD機種専用とは言いつつも,SR/TR/FRユーザが第2水準漢字ROM&PC-8831-MWを増設した場合を考慮したのでしょう。
続いて,8MHz専用版しか発売されていないソフトとして「FANGS(ENIX)」と「MIRRORS(スタジオWING)」も調査してみました。
これらのソフトも手順3,4,7はしっかり実行していました。FH/MH以降には標準搭載のはずの第2水準漢字も全然使っていない様子です。
さらに,FANGSの方は8MHz機には未対応のはずのPC-8801-23にまで対応しています。速度が遅いのを我慢すれば,4MHz機でもフル機能で遊べてしまいますね。
結局の所,動作機種を制限しているとは言っても旧機種ユーザが強引に動かそうとする場合も考慮して,後期機種にしかない機能は極力使わないように配慮しているようです。
少しばかりの機能アップよりも,互換性が大事だということでしょう。
他にも2HD版しか発売されてないソフトは「プールオブレイディアンス(PONYCA)」,8MHz版しか発売されてないソフトは「プラジェータ(ENIX)」がありますが,これらは未所持なので入手できたら調べてみたいと思います。
それでは,手順3,4,7を省略したソフトは公式には存在しないのか? と言われればそんなことはありませんでした。
私の手持ちだと,PC-8801FA付属デモンストレーションは漢字表示処理で手順3,4,7を省略して動いています。
このソフトをSRで動かすと,漢字が表示されないはずです。
また内蔵OPNAにしか対応していないので,FR/MR以前ではサウンドボード2を増設しても音楽は本体内蔵OPNからとなるため,まともに再生されません。
誰でも購入できる市販ソフトと違って,本体付属の専用ソフトではこういうパターンもあるみたいです。
- TB-URL(確認後に公開) http://www5f.biglobe.ne.jp/~apaslothy/cgi_bin/adiary/adiary.cgi/067/tb/
- ▼ 幻のPC-8001mkII用 第2水準漢字ROM 80mkII愛友会 別館
- ▼ サイト更新 - 80MKII簡易日本語ワードプロセッサ 80mkII愛友会 別館
1: UME-3 2015年12月07日(月) 午後10時23分
興味深かったので88FAデモをSR実機で動かしてみました。結果は機種判定で実行直後に「コノプログラムハ PC8801FA/MA/FH/MHノ V2モードデ オツカイクダサイ。」で停止しました。さすがにNEC、なかなかにぬかりがありません(笑)
2: apaslothy 2015年12月08日(火) 午後9時58分
動作確認&情報のご提供,ありがとうございます。
FR/MR以前ではサウンド云々以前に起動すらしないのですね。そこまで解析してませんでした。
気づいているなら対応してくれればいいのにと思いましたが,FH/MH以降への買い換えを促すためにわざと制限かけていたのかもしれませんね。