2007年03月31日

バージョンアップボード6

バージョンアップボード有効時、
V3 BASICでPLAY文を実行するとハングするということで、
釜房一号さんがいろいろ調べてくださったところ、
ROM1エリアも、バージョンアップボード内でさらに
バンク切り替えしていることが判明。

確かに、BASIC起動時、STOPM命令実行時に、
ポートFF2hのbit7-4に1を出力している。
(正確には、MUSIC BIOSのAH=09hで、だそうだ。)

ROMエリア1 バンク0Fh
 ポートFF2h bit7-4=00h バージョンアップボードROM10
          01h バージョンアップボードROM11


ROM取得のためGETROMVA改造中。
posted by Shinra at 23:01| Comment(0) | TrackBack(0) | EMU | このブログの読者になる | 更新情報をチェックする

2007年03月25日

バージョンアップボード5

> メモリライトはまた後日。
実装。

この時点で辞書ROMがないので、ほとんど漢字変換はできない
のだけれど、「この事」「その事」など一部は変換可能だった。
バージョンアップボードで追加されたバックアップRAMに
ソノコト、コノコトといった文字列が見えたので試してみた
のだ。


釜房一号さんが調査してくださったところによると、

システムメモリエリアバンクバンク0Fh
 ポートFF3h bit3-0=0Ch 辞書ROM1
          0Dh 辞書ROM2

ということなので、実装。

漢字変換もOK。

Debug Utilityも改良して、バージョンアップボードのバンク
指定を可能に。

debugutil_addr.PNG

バージョンアップボードと無関係だが、いままでDebug Utility
でIOバンクメモリとシステムメモリエリアバンク9(フォントの
一部とバックアップメモリ)が未対応だったので対応。

posted by Shinra at 18:47| Comment(0) | TrackBack(0) | EMU | このブログの読者になる | 更新情報をチェックする

2007年03月18日

バージョンアップボード4

DebugUtilityでバージョンアップボードのROMを読めるように処理を追加。

> そのあと無限ループにはまっている模様。

ROMエリア0のバンク0fhに割り当てるべきメモリを
間違って1fhに割り当てていただけだった・・・(;_;)

修正後、起動直前まで動くが、
Readyの表示が出ない。

ステップ実行して調べたところ、
システムメモリエリアのバンク0fhを選択した状態で、
セグメントB2xxh(xxは忘れた)あたりを読み取って
何かチェックしている。

バンク0fhに最初に切り替える部分を特定して、
周囲の処理を見たところ、
ポートFF3hの下位ニブルに09hを出力したのち、
B2000h-B3FFFhのチェックサムを取っている。
ということで

システムメモリエリアバンクバンク0Fh
 ポートFF3h bit3-0=9 バックアップRAM(B2000h-B3FFFh)

ということと思われる。

この仕様でメモリリードのみ実装。
新たにメモリを設けるのではなく、VA2のバックアップメモリの
B2000h-にマッピングすることにした。

これでPC-Engineは起動するようになった。

メモリライトはまた後日。



拡張スロットに置いたデバイスで、B2000h-B3FFFhに
メモリを配置しているということは、
98用EMSメモリなどをこの領域に設定すると
衝突してダメ、ということなのだろうか・・・

posted by Shinra at 21:13| Comment(1) | TrackBack(0) | EMU | このブログの読者になる | 更新情報をチェックする

2007年03月17日

バージョンアップボード3

メニューのConfigでVA1を選択可能に。→ポート152hの動作に反映。
ROM0/1エリアからバージョンアップボードのROMを読めるように実装。


モードLEDがV3に切り替わるところまで行ったが、
そのあと無限ループにはまっている模様。
Debug Utilityのほうはまだバージョンアップボードの
ROMを読めるよう対応していないので、
何を実行して無限ループになっているのか調べられないが・・・

今日はここまで。
posted by Shinra at 23:20| Comment(3) | TrackBack(0) | EMU | このブログの読者になる | 更新情報をチェックする

2007年03月16日

バージョンアップボード2

実装開始。

ROMファイルの読み込みと、
ポートFF2h、
vaeg.iniでバージョンアップボード有効無効の切り替え。

まだそれだけ。

ポート152はVA2/3仕様で作ってあるので、
初代仕様に変えるか、切り替え可能にしないといけなさそう。
posted by Shinra at 23:50| Comment(0) | TrackBack(0) | EMU | このブログの読者になる | 更新情報をチェックする

2007年03月13日

バージョンアップボード

バージョンアップボードの調査

ROMの配置。

ROMエリア1 バンク0Fh
ROMエリア0 バンク0Fh

ROMエリア0のほうは、さらに内部(ポートFF2h)でバンク切り替えしていて、10バンクの中の1バンクを選択して、ROMエリア0バンク0Fhに投影するようになっているらしい。
ROMエリア1に1バンク、ROMエリア2に10バンクで合計11バンク。
VA2/3と同量のROMがあることになる。

辞書ROMとバックアップRAMがどこかにあるはずなのだが・・・まだ見つからない。

posted by Shinra at 00:52| Comment(0) | TrackBack(0) | EMU | このブログの読者になる | 更新情報をチェックする

2007年03月11日

GETROMVA修正

バージョンアップボードを搭載し、有効にした状態で、
GETROMVAを動かすとハングするというご報告があった。

GETROMVAのソースを見返したら、ROMエリア0のバンクを
切り替える際に、ポート152のbit6を0にしていた。

VA2/3と初代で152のbit6,7の働きが違っていて、
VA2/3に合せて作っていた。

http://www.pc88.gr.jp/inside88va/wiki/index.php?%A5%B7%A5%B9%A5%C6%A5%E0%A5%A8%A5%EA%A5%A21

バージョンアップボード有効時は、ROMエリア1のバンクを0Fhに設定しているらしく(ボードなしならバンク00h)、152のbit6を0にしてしまうと、バンクが0Bhに切り替わってしまう。割り込み許可状態でこれをやってしまったものだから、ハングアップ、ということだろう。


機種判定してバンクの切り替え方を機種に合せるように修正。



posted by Shinra at 23:31| Comment(0) | TrackBack(1) | EMU | このブログの読者になる | 更新情報をチェックする

2007年03月04日

CPU 7

> 止まっているのは
> test ds:[bp+30],01
> 一般的な命令。なぜ?
間違い。止まっているのは別の場所。

Debug Utilityの表示更新は表示1周期につき1回。
TSPのVSYNC期間終了のタイミング。
これは、24KHz表示だとVSYNC割り込みから約4000クロック
後のタイミングで、
VSYNC割り込み処理が長くて、いつも実行内容が同じだと、
Debug Utilityの表示更新タイミングのときに実行している
アドレスが、いつも同じ場所(VSYNC割り込み処理中)になる、
ということだと思われる。

Debug Utilityの表示更新をVSYNC割り込み直前に変更。


止まっていたのはtest1 ea16,cl のところ。実装。
ついでもtest1 ea8,clも実装。

test1実行後のACフラグは0になると本に書いてあるので
信じて、実装済みのtest1 ea8/ea16,imm も含めて修正。

後で他の本みたらUndefinedだったけれど・・・
まあいいか。


メニューも無事動作した。

menu2.PNG
posted by Shinra at 22:01| Comment(1) | TrackBack(0) | EMU | このブログの読者になる | 更新情報をチェックする

2007年03月01日

CPU 6

釜房一号さんよりご連絡あり

BASICよりプルダウンメニュー機能を使うと
メニューを引き出したところでハング。
マウスは動く。

menu.PNG

見てみるとIPが進まなくなっている。
V30固有命令で未実装のものを実行しようとしているのかと
思いきや、
止まっているのは
test ds:[bp+30],01
一般的な命令。なぜ?
posted by Shinra at 23:20| Comment(5) | TrackBack(0) | EMU | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。