PC88.gr.jp Forum Index PC88.gr.jp
PC88.gr.jp88VA Eternal Grafxの掲示板です。
 
 FAQFAQ   検索検索   メンバーリストメンバーリスト   ユーザーグループユーザーグループ   登録する登録する 
 プロフィールプロフィール   プライベートメッセージをチェックするプライベートメッセージをチェックする   ログインログイン 

HDFORM.COM (PC-Engine v1.1)

 
新しいトピックを投稿   トピックに返信    PC88.gr.jp Forum Index -> ソフト動作確認
前のトピックを表示 :: 次のトピックを表示  
投稿者 メッセージ
kaz



登録日: 2008.02.10
記事: 15

記事日時: 2008/02/13 (Wed) 21:37     記事の件名: HDFORM.COM (PC-Engine v1.1) 引用付きで返信

20MBのハードディスク(.HDI)がPC-ENGINEから
フォーマット出来ないようです。

実機では問題なく動作しています。
40MBの場合はVAEGでも問題なくフォーマット、
システム転送、起動できています。

少し調べてみますと、HDD-BIOSコールNo.9
(mov ax,9 mov bh,0 int 81h)の
SENSEコマンドが返す値が実機と異なります。

40MBの場合、実機、VAEG共に
実機 AL=03h
VAEG AL=03h

20MBの場合
実機 AL=02h
VAEG AL=0FFh

VAEGで20MBの場合でも、直接BIOS経由での
HD読み込みは出来ています。

もう少し詳しい状況がわかりましたら
報告させていただきます。

【VAEG環境】
Windows2000 SP4
Pentium-III 533MHz
SASI-1にHDIファイルをマウント

PC-Engine v1.1 1MB-FDにて起動
CONFIG.SYS 無し
AUTOEXEC.BAT 無し

【実機環境】
PC-88VA2
SASI-IF LOGITEC LHA-12V
SASI-HDD LOGITEC LHD-34V 20MB+20MB分割モード
バンクメモリ PIO-PC34F-8MB うち128kBでメインメモリ増設
EMSメモリ EMJ-8000
トップに戻る
ユーザーのプロフィールを表示 プライベートメッセージを送信
Shinra



登録日: 2005.05.22
記事: 138

記事日時: 2008/02/18 (Mon) 23:45     記事の件名: 引用付きで返信

不具合報告をありがとうございます。
SASIは資料がないのでちょっと厳しいですが、
40Mの場合との挙動の比較でなんとかなるかもしれませんので
調べてみます。
トップに戻る
ユーザーのプロフィールを表示 プライベートメッセージを送信
kaz



登録日: 2008.02.10
記事: 15

記事日時: 2008/02/19 (Tue) 00:50     記事の件名: SASI-20MB続報 引用付きで返信

shinra 様
コメントありがとうございました。

まず訂正です。(既にお察しとは思いますが念のため)
誤)(mov ax,9 mov bh,0 int 81h)
正)(mov ah,9 mov bh,0 int 81h)
です。申しわけありません。

前回から判明したことを報告します。

PC-Engine起動時に、デバイスドライバでINT81hを
フックしてah=9の場合のsenseの戻り値を強制的に
02hにしてみました。
結果:フォーマット不可。

別件、New diskで作成した未フォーマットのHDIをマウント。
20MB⇒ドライブ認識されず。
40MB⇒ドライブ認識される。(DIRコマンド通る)

推定:PC-Engine(@VAEG)そのものが20MB-SASIを認識しない。
   HDFORM.COMは存在しないドライブのためエラー終了。

今後:PC-Engine起動前にBIOSパッチにて確認。

課題:どの時点でパッチできるか不明。
   ⇒まずはFDブートセクタに仕込んで見ます。
   次回報告がいつできるか自信ありませんが、
   結果出次第、続報入れます。

余談:
SASI-20MBは、PC-98の場合、BIOSの mode setで
ヘッド数を4と8で切り替えるようになっていますが、
np2では未実装のようです。senseコマンドの戻り値も
実機と異なりますね。(というより、IDEと返す)

さらに、PC-9800シリーズテクニカルデータブック
HARDWARE編の記述も不正確(20MB-SASIのヘッド数が4
との記述。実機ではデフォルトでは8ヘッド)で難物ですね。
トップに戻る
ユーザーのプロフィールを表示 プライベートメッセージを送信
Shinra



登録日: 2005.05.22
記事: 138

記事日時: 2008/02/20 (Wed) 01:04     記事の件名: 引用付きで返信

kazさん、

ヒントをありがとうございます。
そうか98のテクマニが(すっかり忘れてました

ソース確認しました。

HDIファイル自身がセクタ数、ヘッド数などの情報を持っており、
以下の情報とマッチするものが無いとIDEとみなす処理になっている
ようです。

Code:
const SASIHDD sasihdd[7] = {
            {33, 4, 153},         // 5MB
            {33, 4, 310},         // 10MB
            {33, 6, 310},         // 15MB
            {33, 8, 310},         // 20MB
            {33, 4, 615},         // 20MB (not used!)
            {33, 6, 615},         // 30MB
            {33, 8, 615}};         // 40MB



np2のnew diskでHDIを作成し、20Mを選択した場合、
{33, 8, 310}, // 20MB
このパラメタで HDIを作成しているようです。

⇒NRDSW = 0 でディップスイッチを読み取ると、011が返るはず。
VAのBIOSは100を期待している?

#すみません、今日はここまでです。
トップに戻る
ユーザーのプロフィールを表示 プライベートメッセージを送信
Shinra



登録日: 2005.05.22
記事: 138

記事日時: 2008/03/27 (Thu) 01:07     記事の件名: 引用付きで返信

>⇒NRDSW = 0 でディップスイッチを読み取ると、011が返るはず。
>VAのBIOSは100を期待している?

BIOSの動作を調べてみたところ、上記のとおりでした。
BIOS内のテーブルから、BIOSは、ヘッド数8、シリンダ数308を期待しているようだったので、その場合に、ディップスイッチの値として100が返るように変更してみたところ、
PC-Engineから認識されるようになりました。

詳細は以下に書きました。

http://88va.seesaa.net/article/91118359.html

気になる点
・new diskで作成される{33, 8, 310}と、シリンダ数が若干異なる→何か問題になるか?
・この変更は、98側からみるとどうなるのか

この辺をちょっと確認してから公開します。


>SASI-20MBは、PC-98の場合、BIOSの mode setで
>ヘッド数を4と8で切り替えるようになっていますが、

よろしければ、詳細を教えていただけないでしょうか。
mode setというのは、INT 1Bhのファンクションのひとつですか?
トップに戻る
ユーザーのプロフィールを表示 プライベートメッセージを送信
kaz



登録日: 2008.02.10
記事: 15

記事日時: 2008/03/29 (Sat) 00:22     記事の件名: SASI mode set 引用付きで返信

Shinraさん、みなさん こんばんは
情報提供すると言いながら何もできずに申しわけありません。

PC-9801のSASI-HDD BIOSのmode set については
小高輝真・河野健 著 UNDOCUMENTED 9801/9821 Vol.1 BIOS・割り込み編
1994年3月21日初版インプレス に以下のような記述があります。

INT 1BH Function 0E

入力 AH bit 7 モード(1=薄型(ハーフハイト)指定、0=厚型(フルハイト)指定)
bit 6-0 0001110b
AL DA/UA

出力 AH リターンコード
00h(CF=0) Normal End(正常終了)
40h(CF=1) Equipment Check(DAで指定されたBIOSは存在しない)

解説 AH bit7で指定されたモードにより、システム共通域内のポインタとフラグを変更する。
   そのアドレスとビット位置を以下の表に示す。
   ---以下略---

以下は私が検証した結果ですので、確度は低いかもしれません。

解説文からだと何のことか良く判りませんが、BIOSの挙動としましては、
ah=0eh フルハイト指定:8ヘッド/シリンダ
ah=8eh ハーフハイト指定:4ヘッド/シリンダ
を切り替わります。もちろん、物理(磁気)的なディスクのジオメトリが変わる
訳ではなく、BIOSコール時のCHS論理アドレスから物理アドレスに変換する
パラメータが変わるだけです。

私自身は、実機PC-9801RA21+PC9801RA-35(内蔵40MBハードディスクを
20MB + 20MB 分割モードで使用)で動作確認しました。

実は、PC-9821Pentium機(IDE-HDDの256バイト/セクタ設定が無い)の
IDE-HDDの領域内で20MB SASI-HDDをエミュレートし、HDD起動メニュー
からCP/M-86を起動するパッチを作成した際に、このヘッド数の違いの
ために随分悩んだ事があります。9801RA21でいろいろ調査した結果、
この切替挙動を確信しました。

このような事があるため、実用性は無くとも実機は捨てられません。
トップに戻る
ユーザーのプロフィールを表示 プライベートメッセージを送信
kaz



登録日: 2008.02.10
記事: 15

記事日時: 2008/03/29 (Sat) 12:30     記事の件名: 20MB SASI mode set 補足 引用付きで返信

88VAの話題から離れて恐縮ですが、私が確認できている
現象で少しでも有効な部分があればと思い、
昨日の投稿につきまして、補足説明させていただきます。

20MB SASI-HDD使用中、mode set でヘッド数を切り替えても、
BIOSの新センスコマンド(ah=84h INT 1bh)の結果には反映されず
20MBの場合、常に「ヘッド数4」と返します。

リニアセクタアドレスと、4/8ヘッド切替しながらのCHSセクタ
アドレスでのセクタダンプを見比べて得た結論です。

ここのことについてWEB・書籍等で言及されているのを見たことは
無いため、私の環境での特異な現象かもしれません。
(どなたか追試していただけると確信を深められるのですが・・・)
トップに戻る
ユーザーのプロフィールを表示 プライベートメッセージを送信
Shinra



登録日: 2005.05.22
記事: 138

記事日時: 2008/03/29 (Sat) 22:50     記事の件名: 引用付きで返信

kazさん、詳細な情報をありがとうございます。

予想ですが、
物理的には、ヘッド数4, シリンダ数615で、
BIOSのファンクションコールとしては、ヘッド数8、シリンダ数307
に見せている(BIOS内で変換している)のではないかと思います。

VAクラブ版テクマニによれば、BIOS内では、HDCに設定するヘッド数
などの情報と、BIOSで論理セクタ番号を求めるのに使うヘッド数は、
異なる値となっており、テクマニにあるMHAというパラメタが、
ヘッド番号上限値をあらわしているとすると、物理的にはヘッド数
4としてHDDをコントロールしていることになります。


PC-98H51などがどのドライブを採用していたかはわかりませんが、
NECのD3126/D3126Hという20Mドライブは、シリンダ数615、ヘッド数4
のようです。

http://museum.ipsj.or.jp/computer/device/magnetic_disk/0040.html


> 20MB SASI-HDD使用中、mode set でヘッド数を切り替えても、
> BIOSの新センスコマンド(ah=84h INT 1bh)の結果には反映されず
> 20MBの場合、常に「ヘッド数4」と返します。

これは、物理的なヘッド数が返却されているのではないかと。
ただ、物理的なヘッド数とは言っても、実際にはHDDから値を
取得する手段はなく、単純にディップスイッチから決定している
のではないかと推測します。0100ならヘッド数4、シリンダ数615。

古いHDDと、アプリレベルの互換を保つため、BIOSに与えるパラ
メータは20Mなら常にヘッド数8とし、新しいアプリはah=8eh
INT 1Bhすることで、ヘッド数4でパラメータを与えることが可能
になるのではないかと。

np2+実機ROMで動かすことで調査できるかも・・・と思いましたが、
9801-27のROMを読み込む機能が無いような・・・

----


いろいろ考えましたが、VAEGの実装のことだけを考えた場合、
・領域分割が無いので、おそらくHDD内にシリンダ数、ヘッド数を書き込むことはない
・CPU-HDC間では、論理セクタ番号を使う
・ヘッド数によらず、総容量が同じならセクタ数も同じ
ということで、ディップスイッチの値が0100になりさえすれば、シリンダ数、ヘッド数まわりは考慮しなくても、問題なく動作はしそうです。
トップに戻る
ユーザーのプロフィールを表示 プライベートメッセージを送信
kaz



登録日: 2008.02.10
記事: 15

記事日時: 2008/04/02 (Wed) 22:01     記事の件名: なるほど SASI 引用付きで返信

Shinraさん

分かりやすい解説ありがとうございました。

少し前に書き込んだ、SASIエミュレーションでは、
得心がいかないまま実機の動作に合わせていたのですが
おかげさまですっきりしました。
トップに戻る
ユーザーのプロフィールを表示 プライベートメッセージを送信
Shinra



登録日: 2005.05.22
記事: 138

記事日時: 2008/04/06 (Sun) 01:22     記事の件名: 引用付きで返信

VA2で使っている緑電子のSASIインタフェースからROMイメージを作成して、
np2(vaeg)にSASIのROMを読み込む機能を追加して、
(実機98のBIOS ROMとITF ROMも必要)
動かしてみましたが、何かが足りないのか暴走してしまって。

素直にROMの中身を読んで見ました。
が、どうも新SENSEコマンドには対応していないようで
ファンクション04HでAH以外を設定しているそぶりナシ。
ファンクションxEHは何の処理もしていないし。
・・・残念。

VAのハードディスクBIOS同様のパラメータテーブルが
DIPスイッチの値000〜111それぞれに用意されている
ことはわかりました。DIPスイッチ100のときのヘッド番号
最大値は3になっています。011だと7。

なので、多分推測どおりではないかと。

ファンクション04hで返却されるAHの下位4bitも
DIPスイッチの値に対応するテーブルから持ってきている
だけでした。
トップに戻る
ユーザーのプロフィールを表示 プライベートメッセージを送信
Shinra



登録日: 2005.05.22
記事: 138

記事日時: 2008/04/06 (Sun) 19:11     記事の件名: 引用付きで返信

>np2(vaeg)にSASIのROMを読み込む機能を追加して、
最初から読み込む機能はちゃんとありました。
うまく動かなかったのは二重にROMを読み込んでいたからかも・・・


r080406 をリリースしました。

結局、NewDiskでSASI(.HDI) 20M を選択した時のパラメータを
変更して、ヘッド数4にしました。
新たに20Mの.HDIを作成して接続してみてください。
トップに戻る
ユーザーのプロフィールを表示 プライベートメッセージを送信
kaz



登録日: 2008.02.10
記事: 15

記事日時: 2008/04/09 (Wed) 23:42     記事の件名: 引用付きで返信

Shinra様

新リリース、ダウンロードさせていただきました。
ありがとうございました。
無事SASI-20MB使えるようになりました。

ただ、VAEGで作成した4ヘッド20MBのHDIは
np2では当然に4ヘッドとして扱われますので、
CP/M-86等の拡張フォーマットをサポートしない
(知らない)DOSで使えなくなります。

この点は、HDIのヘッダを書き換えるなり、np2で
HDIを作成するなりで対応できますので問題ありません。

SASI-IFの件、私の手許にLogitecのLHA-12が3枚あり
1枚は完全に余っています。40MBのHDDが接続できる
ので、新SENSEコマンドにも対応していると思われます。

外付けSASI-HDDのLHD34Vも2台有り、1台は遊休状態です。
20MB+20MB分割モードでは、前面のスイッチで1台目と
2台目の入れ替えができるため、VA実機に接続した場合、
起動ドライブが変更できて便利です。

VAEGの今後にお役に立てて、送付先をお知らせ
いただくのに差し支えなければ差し上げますが、
いかがいたしましょう。
トップに戻る
ユーザーのプロフィールを表示 プライベートメッセージを送信
Shinra



登録日: 2005.05.22
記事: 138

記事日時: 2008/04/13 (Sun) 17:13     記事の件名: 引用付きで返信

> ただ、VAEGで作成した4ヘッド20MBのHDIは
> np2では当然に4ヘッドとして扱われますので、
> CP/M-86等の拡張フォーマットをサポートしない
> (知らない)DOSで使えなくなります。

なるほど、確かにそうですね。
NewDiskの選択肢に20Mを2種類(4ヘッドと8ヘッド)にするとか、
np2のBIOSエミュレーションのルーチンにmode setを追加する
などの手が考えられますが、
いずれも98のエミュレーションの細かいところになりますので、
VA-EGとしてはあまりこだわらないことにさせていただこうかと
思います。

SASI HDDのご提供については、お申し出ありがとうございます。
大変ありがたいのですが、SASIエミュレーションについては、一応
先日のリリースでFIXのつもりでおり、また、実機に接続している
HDDも今のところ動作していますので、お気持ちだけありがたく
頂戴させていただく、ということにさせてください。
トップに戻る
ユーザーのプロフィールを表示 プライベートメッセージを送信
kaz



登録日: 2008.02.10
記事: 15

記事日時: 2008/04/14 (Mon) 22:11     記事の件名: 引用付きで返信

了解しました。

VAEGの場合はHDCから見えるヘッド数(=4)を
設定する現仕様が正しいですね。

4 or 8ヘッドはnp2の問題ですし。

この度は、マイナーな機能のためにご対応
いただきましてありがとうございました。
トップに戻る
ユーザーのプロフィールを表示 プライベートメッセージを送信
特定期間内の記事を表示:   
新しいトピックを投稿   トピックに返信    PC88.gr.jp Forum Index -> ソフト動作確認 All times are GMT + 9 Hours
Page 1 of 1

 
移動先:  
新規投稿:
返信投稿:
記事編集: 不可
記事削除: 不可
投票参加: 不可
ファイル添付不可
ダウンロード:


Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : PHPBB JAPAN / EUC-JP Edition : phpBB2 JP Support Forum