2006年11月30日

CPU 4

FLD (画像ローダ)でコマンドラインスイッチに /A 0, 0 を指定するとエラーになる問題。

monで最初から順に実行していったところ、

IMUL BX,+0Ah

を実行した後のフラグが異常。BX=0で上記を実行するとオーバーフローフラグとキャリーフラグが立つ。0*0Ah=0だからそれらのフラグは立たないはず。

逆に、BX=4000h で

IMUL BX,+02h

を実行した場合はオーバーフロー、キャリーとも立つはずなのに、たたない。
IMULのフラグの制御がおかしい。
それとも286と仕様が違う?

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

VA2が起動しなくなった

VA2が起動しなくなった

HDDから起動しようとすると、ちょっとHDDにアクセスして、だんまり。
FDDから起動しようとすると、ちょっと読んだあと、アクセスランプ点灯したままだんまり。
うーん、未知の現象。


お迎えがきた?!
まだ早いよー!
posted by Shinra at 23:42| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2006年11月29日

SGP 28

SGP LINEコマンドの実行時間を、実機測定結果に基づいて調整。
測定結果からあまりうまく定式化できなかったけれど・・・
posted by Shinra at 23:50| Comment(0) | TrackBack(0) | EMU | このブログの読者になる | 更新情報をチェックする

2006年11月26日

SGP 27

SGP BITBLT/PATBLTのリファクタリング
転送先1ワードにつき、転送先のワードを2回読み込んでいたのを
1回だけ読み込むように変更。(動作に実質的な差はない。)
posted by Shinra at 21:30| Comment(0) | TrackBack(0) | EMU | このブログの読者になる | 更新情報をチェックする

キー入力5

Z+X+テンキー8
Z+X+テンキー4

の同時押しの場合、キーマップ(ポート00h〜0Eh)にどれか1つ
(最後に押したもの)が反映されない。
WindowsのWM_KEYDOWNイベントが発生しないため。

キーボードの仕様に依存するのかもしれない。


ゲームでこれらのキーを使うことは多いので
ジョイスティックが使えるゲームはそちらで回避できるけれど、
そうでないのは困る。
#自作のがそうだった(;_;)

Windowsのレベルでキーが認識できていないので
どうにもならない。

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

2006年11月25日

FDD 7

>[Device]-[Sound]-[Seek Sound]にチェックが入っているときにシーク音が出るようにした。

できれば、あの、がっちょんがっちょん、というヘッドロード音も付けられれば、いかにもVAっぽくなっていいのだけれど。
どなたか、いいWAVEファイル提供してくださいませんか?

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

フロッピーアクセス速度 8

ウェイトの処理をほんのちょろっと修正。
現在時刻の算出方法が間違っていたので。
posted by Shinra at 23:55| Comment(0) | TrackBack(0) | EMU | このブログの読者になる | 更新情報をチェックする

2006年11月23日

FDD 6

FDCのSENSE DEVICE STATUSコマンド実行時もTool Windowsのアクセスランプが点灯するようにした。フロッピーが入っていないドライブにアクセスしに行こうとしたときにアクセスランプでそのことがわかるようになった。

実機だと、SENSE DEVICE STATUS のパラメータまでFDCに出力された時点でランプが点灯し、CPUがST3を引き取ったところでランプが消える。
VA-EGでは、SENSE DEVICE STATUSのパラメータ出力完了から固定的に一定時間ランプを点灯する実装。



[Device]-[Sound]-[Seek Sound]にチェックが入っているときにシーク音が出るようにした。np2だとnp2が内蔵しているFDD BIOS(もちろん98用)の処理でシーク音を出していたので、VAモードで動いているときはシーク音が出ていなかった。
posted by Shinra at 17:07| Comment(0) | TrackBack(0) | EMU | このブログの読者になる | 更新情報をチェックする

フロッピーアクセス速度 7

> 直前のアクセスが最終セクタ(R==EOT)で、次のアクセスが先頭セクタ(R==1)
> で、シリンダが1増えていれば、1トラック分待つ、という処理にした。

ライト時にもこの処理を適用
posted by Shinra at 17:01| Comment(0) | TrackBack(0) | EMU | このブログの読者になる | 更新情報をチェックする

2006年11月09日

フロッピーアクセス速度 6

HUT, HLTの指定値からその時間を求める際も、SRTと同様、FDCクロックを元に計算するように変更
posted by Shinra at 21:53| Comment(0) | TrackBack(0) | EMU | このブログの読者になる | 更新情報をチェックする

2006年11月08日

フロッピーアクセス速度 5

1トラックをリードする時間は2DDでも2HDでも変わらなくて1/6秒。
よって、2DDも2HDも360rpm。

テクマニのフロッピーBIOSの解説には2DDは300rpmと書いてあるけれど、
間違い。実際、rpmを切り替える機能は見つからないし。




ヘッドを1シリンダ移動するのに必要な時間は、FDCのパラメータSRTで指定するが、指定値と時間(msec)の関係は、資料によれば、FDCのクロックに依存する模様。

 16 - SRT設定値 (msec) (8MHz時)

VAは2HD時にSRTを13にしており、1シリンダの移動時間は3msec。

2DD時はFDCクロックを4.8MHzに設定するので、移動時間は、

 (16 - SRT設定値) * 8 / 4.8 (msec) (4.8MHz時)

VAは2DD時にSRTを14にしており、1シリンダの移動時間は3.33msec。

実際測定してみると、ブレがはげしくてわかりづらいけれど、2HDで3.2msec, 2DDで3.5msecぐらいになる。


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

2006年11月05日

FDD 5

2D 対応。
N88 DISK BASICで2Dのが読み書きできるようになった。
posted by Shinra at 22:35| Comment(0) | TrackBack(0) | EMU | このブログの読者になる | 更新情報をチェックする

フロッピーアクセス速度 4

>シリンダをまたがって読み込む場合、ディスク1回転分の待ちが発生している模様。

これをVA-EGで再現するために、秒間6回転(360rpm)する円盤を想定して、2HD (1024byte*8sector)のフォーマットを想定して、円周をセクタ部分とプリアンプル/ポストアンプル部分に分けて、ヘッドがどの位置にあるか計算して、読みたいセクタにヘッダが到達するまで待つという処理を作ってみた。

が思うような結果がでない。シリンダをまたがってもディスク1回転分の待ちが発生しない。プリアンプル/ポストアンプル部分にヘッドがある間にシークが終わってしまう模様。

きっと、実機では、最終セクタの読み出し完了となったときのヘッド位置は、最終セクタよりxバイト分後ろで、先頭セクタを読み出すのにヘッドはセクタ先頭の最低でもyバイト手前にないといけない、とかあるのだろう。

x,yがわからないので、この方法は破棄。


直前のアクセスが最終セクタ(R==EOT)で、次のアクセスが先頭セクタ(R==1)で、シリンダが1増えていれば、1トラック分待つ、という処理にした。

意図した効果は得られた。


ただ、シリンダごとに先頭のセクタ番号をずらしているようなフォーマットがされていると、冒頭に記載のような現象は起きないわけで、そのような場合には実機よりもアクセスが遅くなる。ガゼルの塔がそんなフォーマットになっていそうだった。


神羅万象オープニングの以下の画面(真っ白になるタイミング)が、実機だとちょうと音楽がサビに入るところなんだけど、VA-EGではそれよりかなり早いタイミングになっていた。

shinra1.PNG

今回の修正でいくぶんマシに。それでも1小節分くらい早そう。
posted by Shinra at 22:30| Comment(0) | TrackBack(0) | EMU | このブログの読者になる | 更新情報をチェックする

広告


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

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

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


×

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