2013年02月19日

拡張漢字ROM(1)

  今回はあまり使っていないと思われる、拡張漢字ROMについてです。

  P6で使われる漢字は内蔵のものが1024文字ありますが、それ以外にカートリッジとして用意されていました。

  PC-6601-01(拡張漢字ROM)
  PC-6007SR(拡張漢字ROM&RAM)

  2つの違いは、64KバイトのRAM部分があるかどうかです。


  ...だと思います。実は、両方とも持っていないので、詳細はよく分かりません。


  回路図の資料がココにあります。

http://www2.odn.ne.jp/~haf09260/Etc/EnrEtc.htm
http://www43.tok2.com/home/cmpslv/Etc/EnrEtc.htm

  この回路図ですが、一箇所間違っているようです。
  ROM に出力している、/ROE という信号ですが、これは RA15 の誤りのようです。
  また、回路図下部に書かれている説明も若干違うようです。

  下記が多分正解だと思われます。

 ○搭載ROM:64Kアドレス × 16bit の 1Mbit

 ○使用ポート
  0xFC:(書き込み)漢字ROMのアドレス(RA15-0)
     データバスに RA15-8、アドレス上位に RA7-0 を出力して書き込む。
  0xFD:(読み出し)漢字ROMの左半分
  0xFE:(読み出し)漢字ROMの左半分
  0xFF:(書き込み)漢字ROMのチップイネーブル
     開始の際に0x00を書き込み、終了時に、0xFFを書き込む

  ポート0xFC のみ、16ビットアクセスをする必要があります(OUT (C),A などを使う)。

  ポート0xFF に関しては、実は書き込みデータは関係ありません。



 ○P6からのアクセスプログラム

; HL にアドレスを入力して、コールする。
;
LD B,L

; 拡張漢字ROM アドレスラッチ
LD C,0FCH
OUT (C),H

; 時間待ち
NOP
NOP
NOP
NOP

; 拡張漢字ROM Enable
LD A,00H
OUT (0FFH),A

;拡張漢字ROM 左フォント読み込み
LD C,0FDH
IN H,(C)

;拡張漢字ROM 右フォント読み込み
LD C,0FEH
IN L,(C)

; 拡張漢字ROM Disable
LD A,0FFH
OUT (0FFH),A

RET

 (プログラム自体はもっと短くなりますが、分かりやすさを優先しています)


 ○BASIC のサポート

  PC-6001、PC-6001mk2では、BASICでサポートしていません。
  PC-6601 以降の機種で、KANJI文で呼び出す事が可能です。

  KANJI文は、KANJI (X座標,Y座標),色,漢字コード
  ですが、この漢字コードが内蔵漢字を使う場合と、拡張漢字ROMを使う場合とで変わってきます。

  BASIC内部では以下の処理をしています
 1)拡張漢字ROMが挿さっているかどうかをチェックします。
 2)拡張漢字ROMが挿さっていない場合、漢字コードが1〜1024ならば、それに対応する内蔵漢字を表示します。
 3)拡張漢字ROMが挿さっている場合は、漢字コードから漢字ROMのアドレスを計算して、拡張漢字ROMにアクセスします。


  このため、同じKANJI文でも動きが変わる事があります。

  例えば、KANJI (0,0),4,33 とした場合、内蔵漢字だと 雨 が表示されますが、拡張漢字ROMの場合、半角の ! が表示されます。


  拡張漢字ROMのアクセスなどのプログラムは、PC-6601 の音声合成ROMの0x3E00〜に格納されています。



posted by えすび at 13:17| Comment(0) | P6解析:漢字 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。