Ys2 OP for PC-6601SR が、実機で動かない

自分用のメモです。。
かなり、専門的な話になります。。。


どうやら、CRTへの指令の、I/O C8H に渡す値を、間違っていたようです。
F2Hを渡していましたが、E2Hでないとダメなようです。。


F2H→E2Hということで、b4が問題でした。
b4 で、ビットマップのページ指定をしています。
1だと、上位32KB (8000H-) 0だと、下位32KB (0000H-)です。
本当は、0000H でないと行けないので、b4は、0にする必要があるのですが、ポカやらかしていました。汗


エミュレータでは、動いてしまうんですけど、
実機では、何故か、1に設定した瞬間に、再起動してしまいます。(;・∀・)


これで、動くと思ったのですが、甘かったです。。。
音楽は鳴るけど、画面がバグったママとのこと。。
どうやら、VRAMのアドレスの設定をしていないからのようですね。。


I/O C9H で、VRAMのアドレスを設定できます。
テキスト画面では、00-0FH まで、16段階です。 実際のアドレスは、値に1000hかけたアドレスに鳴ります。


テキスト画面で、ページ1の場合、F000hになるので、I/O C9H が 0FHになっています。

グラフィックスのVRAMに切り替える場合は 0000Hから始まるので、00Hにしないと行けないようです。



よくよく調べてみると、グラフィックス画面の時は、I/O C9Hの、b2-b0 は見て無くて、b3が、0のときは、0000H になり、1のときは、8000Hになるようです。

しかし、SRでは、グラフィックスVRAMの位置は、事実上固定なので、設定できても、あまり意味がありません。この辺不思議なのですが、。。(^^;;多分、ハードウエア的に出来るので、盲腸のように残ってしまっているんでしょう。。


それにしては、よく変更する場所なのに、ちょっと間違っただけで、再起動してしまう。。って。_ノ乙(、ン、)_


あと、このI/O C9Hですが、どうやら、CRTCがVRAMを、画面に表示するときのVRAMアドレスのようです。
テクニカルコレクションの説明には、VRAMアドレスの切り替え としか書かれてないので、分かりにくかったのですが、そういうことのようです。



いやぁ。。実機で全然テストしてないのが、ばればれ。。(´・ω・`)


[追記]

さらに、テストしてもらったのですが、画面がでているのはでているけど、おかしいとのこと。。
何故? orz