SGP LINEコマンドの実行時間を、実機測定結果に基づいて調整。
測定結果からあまりうまく定式化できなかったけれど・・・
2006年11月29日
2006年11月26日
SGP 27
SGP BITBLT/PATBLTのリファクタリング
転送先1ワードにつき、転送先のワードを2回読み込んでいたのを
1回だけ読み込むように変更。(動作に実質的な差はない。)
転送先1ワードにつき、転送先のワードを2回読み込んでいたのを
1回だけ読み込むように変更。(動作に実質的な差はない。)
キー入力5
Z+X+テンキー8
Z+X+テンキー4
の同時押しの場合、キーマップ(ポート00h〜0Eh)にどれか1つ
(最後に押したもの)が反映されない。
WindowsのWM_KEYDOWNイベントが発生しないため。
キーボードの仕様に依存するのかもしれない。
ゲームでこれらのキーを使うことは多いので
ジョイスティックが使えるゲームはそちらで回避できるけれど、
そうでないのは困る。
#自作のがそうだった(;_;)
Windowsのレベルでキーが認識できていないので
どうにもならない。
Z+X+テンキー4
の同時押しの場合、キーマップ(ポート00h〜0Eh)にどれか1つ
(最後に押したもの)が反映されない。
WindowsのWM_KEYDOWNイベントが発生しないため。
キーボードの仕様に依存するのかもしれない。
ゲームでこれらのキーを使うことは多いので
ジョイスティックが使えるゲームはそちらで回避できるけれど、
そうでないのは困る。
#自作のがそうだった(;_;)
Windowsのレベルでキーが認識できていないので
どうにもならない。
2006年11月25日
FDD 7
>[Device]-[Sound]-[Seek Sound]にチェックが入っているときにシーク音が出るようにした。
できれば、あの、がっちょんがっちょん、というヘッドロード音も付けられれば、いかにもVAっぽくなっていいのだけれど。
どなたか、いいWAVEファイル提供してくださいませんか?
できれば、あの、がっちょんがっちょん、というヘッドロード音も付けられれば、いかにもVAっぽくなっていいのだけれど。
どなたか、いいWAVEファイル提供してくださいませんか?
フロッピーアクセス速度 8
ウェイトの処理をほんのちょろっと修正。
現在時刻の算出方法が間違っていたので。
現在時刻の算出方法が間違っていたので。
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モードで動いているときはシーク音が出ていなかった。
実機だと、SENSE DEVICE STATUS のパラメータまでFDCに出力された時点でランプが点灯し、CPUがST3を引き取ったところでランプが消える。
VA-EGでは、SENSE DEVICE STATUSのパラメータ出力完了から固定的に一定時間ランプを点灯する実装。
[Device]-[Sound]-[Seek Sound]にチェックが入っているときにシーク音が出るようにした。np2だとnp2が内蔵しているFDD BIOS(もちろん98用)の処理でシーク音を出していたので、VAモードで動いているときはシーク音が出ていなかった。
フロッピーアクセス速度 7
> 直前のアクセスが最終セクタ(R==EOT)で、次のアクセスが先頭セクタ(R==1)
> で、シリンダが1増えていれば、1トラック分待つ、という処理にした。
ライト時にもこの処理を適用
> で、シリンダが1増えていれば、1トラック分待つ、という処理にした。
ライト時にもこの処理を適用
2006年11月09日
フロッピーアクセス速度 6
HUT, HLTの指定値からその時間を求める際も、SRTと同様、FDCクロックを元に計算するように変更
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ぐらいになる。
よって、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ぐらいになる。
2006年11月05日
FDD 5
2D 対応。
N88 DISK BASICで2Dのが読み書きできるようになった。
N88 DISK BASICで2Dのが読み書きできるようになった。

