98システム解析スレッド2022年8月-1 /人'A`;人\ 2022年8月1日(月) 4:20 |
RvIIが時速280kmで走る まりも 2022年8月1日(月) 13:11 |
『RvIIでT-VRAMへの連続stosd実行でフリーズ』 この件なのですが、件の掲示板を読んでも、どういう条件下で起こるのか、頭が暑すぎてよく理解できませんでした。フリーズが必発なのか偶発的なのかも。偶発事象なら別の機体での追試には意味ないかもしれないです。CPUライザの接触などいろいろ問題あるRvII26ですから。 とりあえずはっきりさせておかないといけない条件は ・アドレス境界はDWORDなのか、WORDなのか、奇数なのか ・TextVRAMとはアトリビュートエリアを含むか否か(*) ・連続とは何Kバイト(またはDWORD単位で)以上か(80字×25行×2バイト以上行けます) ・レガシーDMAが裏で同時に動作している状況下(実際どのようにやる?)なのか否か ・CPU動作モードがリアルモードか仮想86か ・CPUは{1個/2個}、設定してある割り込みモードが{拡張/互換}いずれなのか ・上記いずれかのテストを2度実行した場合に起こるのか1度目でもか<追記>
これくらいですか。全部の組み合わせでやってみようかとは思いますが(何通りだ!)、DMA同時動作はよくわかりません。あとうちのRvIIは最近調子がよくありません。現在、東保管所からもう一台を持って帰っている最中ですが、これも何年も電源入れていないので、まず普通に動くかどうかです。
* アトリビュートエリアの奇数アドレスには書き込んではいけないことにはなっているのですが、実際ワード単位以上で書き込んでも問題はないように思います(うんと古い98では知らない)。ITFでも画面表示開始前のVRAMクリアのときやってませんでしたっけ?
|
試したこと リウ 2022年8月1日(月) 14:13 |
かなり長いレスになります。お許しください。 まず奇数アドレスの暴走について、これは私の勘違いです。es=a000 di=ffffに対してwordで書き込むとint 0dが発生します。(しかしDMA割り込み待ちを待機させてあるとこの割り込みがかからないこともあるようです。)これの話が混ざって暴走の話をさらにわかりにくく呟いてしまっていました。
t-vramに対して二度目のrep stosdで暴走 RvIIでは起こらない?ようです。LEMMの作者様はXa16(山猫にK6載せ替え)で確認されていたようです。私はXb10(430FXのMMXODP)で確認しました。再現性ありです。必ず暴走します。ちなみにAsでは暴走しませんでした。pentium世代限定? 16:34追記 Cx13(山猫 P54C 非MMX)でも暴走しました。一度目と二度目の間にwbinvdを入れたりデバッガでステップ実行すると暴走しないのも報告と同じです。 17:24追記 Xb10は非MMX、2ndキャッシュ無しでも暴走 Na15 Xa初代では暴走せず MMXの有無は関係なさそうです?PCIデバイスの数もCx13には生えていないはずなので無関係? 18:21追記 画像追加 430VXなV166 暴走せず 18:55追記 手持ちを色々調べたところCバスグラフィックデバイスが特定のものだけで起きる気配を感じました。 PCI VENDOR IDが1033:0009のrev 01のものだけで起きるようです。これ以外のものでは暴走しませんでした。またこれだけはconfig spaceの44hが他の物と違って00です。読み込み専用のようで01にはなりませんでした。 一応私の方ではこれが重要と感じました。
21:15追記 みなさまももしよければCバスグラフィックのリビジョンを調べてください。 ところでおそらく発見者のLEMM作者さまへの連絡はどうしましょうか?あそこの掲示板へ書き込めば気づいてくれるでしょうか。やってみます。
RvIIでDMAを走らせながらVRAMにxchgを仕込む話 これはまだ確認すらしていません。
22:44追記 実は壁越えSCSIやLBAパッチ、それにpcmcia用ataドライバなどで謎の時間待ちが必要な機種がいくつかありまして… それようにはout 5fh,alではなくpush register pop registerの繰り返しをさせています…。これももしかすると原因に似たものがあるのかも?
|
山猫機はどうするか まりも 2022年8月1日(月) 15:00 |
山猫はまともに動かない上に基板配線にも何種類かあります。LockとかBREQとかいう信号ピンの処理など。そしてK6アクセラレータが何だかわからないのですよね。N3下駄以上も何かしら問題はあると思います。しかもK6のMSRレジスタ設定でVRAMをどういう扱いにしているかも関わりそうです。PCI機一般の事象とするには難し過ぎます。 いっぽうMMX(P55C)の430FX機で発生するなら430VX 機でも起こりそうです。これらと430HX機でも起きれば完全に確定でしょう。一応仕様外ですからアトリビュートエリアは外してテストしてみます。
あと気がつきましたが、これらの(Pentium搭載)機種で2ndキャッシュの有無(有効無効)というのも関係ありますかねぇ。書き込むだけなので関係なさそうに思えますが。430HX機では2ndキャッシュの接触不良がひどいので、外して使う人のほうが多いとは思います。
|
seg:FFFFへのword書き かかっくん 2022年8月1日(月) 15:42 |
seg:FFFFへのword書きはCPUの世代に依り挙動が異なり、 ・8086/8088ではseg:FFFFhとseg:0に書き込まれる ・186/188ではseg:FFFFhとseg:10000h (seg+1000h:0)に書き込まれる ・286+では一般保護例外(INT 0Dh) に成ります。詰まり↑の動作は仕様であり正常です。逆に割り込まない方が疑問ですね 386+でのseg:FFFD以降のdword書きもINT 0Dhに成る気がします
|
うわーうわー まりも 2022年8月1日(月) 21:07 |
機種を取り替えながらなんか全然再現しないなぁと思って最後に山猫、Xb10、Xa7eにしたとろころずばり再現しました。CPUもL2も関係ありません。なるほど、CPUでもなくチップセットでもなく、98グラフィックブリッジのリビジョン(01)に依存してますね。四半世紀以上経って明らかになるハードウェアのバグ??? ただしアトリビュートエリアを含まなければハングアップはしませんでした。 # 8台の9821で床が埋め尽くされてますw RvIIは開封する場所もなくベランダに放置
<22時22分追記>rep stosd 命令1度目と2度目の間に十分な時間を置けばハングアップしないようです。out 5F 一発二発程度ではダメです。5発くらいでなんとか。命令は何でもよくてとにかく時間です。wbinvdは相当時間がかかる(クロックサイクルの多い)命令だからいいのでしょうね。
|
奇数アドレスへの書き込みが問題ではないらしい かかっくん 2022年8月2日(火) 1:48 |
stosd命令の1回目と2回目の間ではなくrep stosd命令の1回目と2回目の間に十分な時間を置くんですね? rep stosが通るならバースト転送自体は出来ると云う事です。奇数アドレスへの書き込みが問題なのではない らしいですね # repを遣わずstosb;inc di;loopが安全なのは自明ですが速度が雲泥です
|
PCI前期機種ではIO回復待ち多し まりも 2022年8月2日(火) 15:43 |
>謎の時間待ちが必要な機種がいくつか ITFを読むと、山猫、渡来豚あたりのGHOST7チップセット機では、本体内I/Oのアクセスの後out 5Fh,al を一つならず二発入れていたりするところがあります。StarAlpha2チップセット機ではそのwaitがなくなっていたりします。ハードウェア設計上の違いはそこいらにも現れているかもしれません。よくわからん場合はITFか、PCMCIAのように機種専用デバイスドライバがある場合はそれを参考にするしかないようです。持ってないと後者が厄介ですけどね。
|
SSDが98(専用内蔵IF)で使えると思わない方がいい まりも 2022年8月3日(水) 0:37 |
ttps://mobile.twitter.com/asmocoid_E5420/status/1554471803300773889 これもあれかな、IntelのSSDと同じく、容量はLBAでは変更できてもCHSでは変更できないタイプ。だとすると、まさにそのような症状はあり得ます。
SSDは一見うまくいったようでおかしなことが得手して起こりますね。Transcend のTS32GSSD370S というのを買ってみたのですが、とりあえず容量変更もCHSで効いて問題なく使えそうでした。ところが8191MBに変更した後に、その最終セクタに近いところにどうしてもread エラーが起こってしまうという、意味不明な現象が発生しています。しかもエラーが起こるとそれ以降SSDにアクセスしようとしても反応が返りません。数十秒待って反応できるようになりましたが、「セクタが見つかりません」のDOSエラーメッセージ。これってCFリセットと症状が似ています。もしかして「SSDリセット」? なおSSDに設定されたCHSは保たれていました。メルコのCFに似た挙動ですね。 ともかくもSSDリセットらしきものは、あるかもしれないと思っておいた方がよさそうです。ちなみにこのエラーとその後の挙動は、SATA-IDE変換器を換えても同じでしたから、変換器の品質や相性ではなく、SSDデバイスと98オンボードIDE(専用内蔵!)の間の問題だと思います。
<3日8:30追記> どうも8GB近辺の読み取りエラーに関しては、CHSアクセスの上限値が16127論理シリンダになるようです。つまり規格の綾でこれまで65535まで許されていたものが、なぜか許されなくなったと。16383でないのも謎ですが。ということで次はLBA_IDEをテストしてみます。→結果たぶん問題なし
|
16127シリンダ=16383−256 かかっくん 2022年8月3日(水) 22:25 |
16127シリンダですが、16383-256ですね 逆に256シリンダ多く設定するとどう成りますか?
|
Transcend 370Sの素性 まりも 2022年8月3日(水) 23:50 |
きちんとテスト条件を書いてませんでしたが、CHS変更のATAコマンド91hを送ってH:S =8:32にしていたら上限値が16127になったというものです。16:63だと 、16382*16*63 / 32/8=16127 になることから、二つのことが考えられます。 (1)そもそもCHS変更のコマンド応答がフェイクであって全く対応しない(にしては使えている) (2)CHSでは何が何でも16382*16*63の積となる値を超えられないようにされている わざわざ(2)のようにする意味がさっぱりわからないのですけどね。考えやすいのは中途半端な実装の方でしょうけど、どうも(2)なのかもしれません。であればこのSSDは8063MBまで対応機で、8063MB以下4352MB以上に容量制限して使えば問題なさそう、ということになります。CF一般でも8GB品でこれがベストです。
ともかくもう少し調べてみようかと思います。さらに進めて、「98のオンボードIDEで使えるSSDかどうか総合チェッカー」のようなユーティリティを作るといいのかなと思っていますが、そんなことするよりも「LBA_IDE導入で全て解決させましょうよ」と思います。
|
後学の為に明確にしやうとしたら かかっくん 2022年8月4日(木) 3:46 |
16382*16*63 / 32/8=64504.125≠16127ですが、計算が正しくないのでは?
16,383x16x63=16,514,064 16,514,064÷(8x32)=64,508.0625 16,382x16x63=16,513,056 16,513,056÷(8x32)=64,504.125 16,128x16x63=16,257,024 16,257,024÷(8x32)=63,504 16,127x16x63=16,256,016 16,256,016÷(8x32)=63,500.0625 16,127x8x32=4,128,512 4,128,512÷(16x63)=4,095.74603174603175 何れも違う気が? 16382→16127は8:32ではなく8:128では?
|
CHSアドレスいずれかにラップアラウンドの疑い まりも 2022年8月4日(木) 8:46 |
寝る前に寝ぼけて書いたようで(汗、ご指摘の通り8:128の場合です。8:32だと16382を超えてエラーにはなりません。ですから上記(2)に見えるのですが、、、どうもそれだけの問題ではないようです。4GB付近以降にデータを書いてみたところ、なんと先頭付近、パーティションテーブルなどが破壊されました。生来の16:63以外で使用するとアドレス値にラップアラウンドが起こって、正しくないアドレスのところにデータが書かれるようです。これは参りましたね。4351MBに制限して標準の8:17で使うこともできないわけです。しかもエラーでできませんと返されるのではなく、データがぐちゃぐちゃになって初めてわかるというわけです。いや普通の人はそんな因果関係すら訳わからないでしょう。結果はだいぶ後にやってくるのですから。これは中々タチが悪いですよ。
「SSDは98オンボードIDEで使えると思わない方がいい」これは強く警告しておきます。使えるように見えてもいずれ破綻します。LBA_IDE導入は使うための解決策ですが、使うOSのドライバ全てLBA化改造がなされている必要があります。
|
ラップの位置 リウ 2022年8月4日(木) 9:04 |
8*17*16384の位置でラップしてると仮定すると約1088MiBですが関係あるとすれば91hは見かけ上効いているように見えるだけで効いておらず、さらに16/63/16384それぞれもラップする?などという感想を持ちました。
ただあまりにも危ないのでまずは引用ツイートしてみました。
2127追記 私が調べた窓OSのドライバは全てオンボードIDEに対してはCHSアクセスでした。そして内蔵IDEのint1bhでは残念ながらLBAのDA/UAでアクセスしてもCHSに内部変換されてしまいます。だから問題になってしまっています。
|
みいそ/えぷDOSは駄目ですな かかっくん 2022年8月4日(木) 20:17 |
みいそ/えぷDOSはDA/UA 8xなので駄目ですな FreeDOS(98)はLBAに設定出来るので動きそうですが。98用の窓95B/窓98xはドォなんでせう?
メニューは0:0:0〜0:0:15(?)で動作するから問題無いんですかねぇ?
|
ラップアラウンドの調査 まりも 2022年8月5日(金) 0:43 |
どこでラップアラウンドが起こっているかを調べるとなると、かなり面倒そうなのすよね。究めると結局は「98で使えるSSD判定ツール」の出来上がりになってしまいます。 そもそもが16ヘッド63セクタなわけですが、8ヘッドにしたらラップアラウンドが起きないという保証もありませんし、128セクタなんていうのはセクタ番地だけでもうラップアラウンドが起きている可能性大です。セクタ数、ヘッド数それぞれ単独で、さらにヘッド数とセクタ数の積のレベルで、ラップアラウンドが起きていないか調査しないとなりません。 方法としては最初にLBAの値を全セクタに書いておいてからいろいろなパターンでCHSでアクセスして、想定の値が読めるかをテストすることになるでしょう。もちろんBIOSは使わず直読みします。
しかしSSDの無駄な消耗になるのであまりやりたくはないですよね。
>メニューは0:0:0〜0:0:15(?)で動作するから問題無い 流石に起動メニュー読むだけでラップアラウンドを起こすほど、ファームウェアが行うCHS変換はデタラメではないと思います。シリンダ番地もヘッド番地も0で、セクタ番地は63を超えていないですし。
|
obsoleteなCHSで解決しやうとするのが間違いらしい かかっくん 2022年8月6日(土) 2:33 |
> 私が調べた窓OSのドライバは全てオンボードIDEに対してはCHSアクセスでした。そして内蔵IDEのint1bhでは残念ながらLBAのDA/UAでアクセスしてもCHSに内部変換されてしまいます。だから問題になってしまっています。
まぁ元々のIDEはCHSだけでしたからCHSに変換するのも致し方ないかも知れません A-MATE辺りの頃はCHSだけの本来のIDE HDDが巾を利かせて居ましたし、D3766とかもCHSのみ対応ですし # 528M(504MiB)以内でもLBAに対応したHDDがEIDE
> そもそもが16ヘッド63セクタなわけですが、8ヘッドにしたらラップアラウンドが起きないという保証もありませんし、128セクタなんていうのはセクタ番地だけでもうラップアラウンドが起きている可能性大です。
16:63=8:126=4:252ですから、此の3パターンは試してみる価値有りそうです でもS>63は実装がいい加減かも知れません まぁ今やCHS自体が仕様上でobsoleteですから無保障ですし ATA/ATAPI-8-ACS(4ページ・PDF48ページ)に依ると、CHS自体がobsoleteに成って居ます。
LBA_IDEをIPLwareのローダ(モジュールではなく)に組み込めれば少なくともDOSは解決しそうですが。 取り敢えずDOSを起動する迄の間に合わせとしてIDE BIOSをRAMの或るアドレスに写してパッチしてから DOSを起動するかIPLwareとして改めて正式なLBA_IDEを実行するとか? 本来のアドレスでなければチップセットの制御は不要なので小さく出来そうです
|
HSラップアラウンドは誤報かも?汗 まりも 2022年8月8日(月) 12:07 |
SATA-IDE変換器の相性というかやや偶発的な不調、とくにアドレスフェーズ化けがどうも問題なようです。jMicronチップのは一部の製品で動作がときどきおかしくなります。玄人志向扱いのMarvellチップの変換器にしたところ、ラップアラウンドを疑う事象は見られなくなりました。 一応チェックしたこと: ・BIOSのシリンダ境界(HとSが0)の全てのセクタに、そのLBA番地の値をデバイス操作で書き込む ・当然エラーはない ・BIOS経由で同じLBA番地となるところを読み出して、書いた値と等しいかどうかチェック ・返り値がエラーでないこともチェック Transcend 370Sについては、「CHSアクセスが16383*63*16(LBAでFBFC10h)を超えられない」ということだけが問題となるようです。この値以上のところはNoDataというBIOSエラーです。黙って8063MB に制限すれば、変換器相性以外の問題はなく使えそうな気はします。しかし化けたときに書き込んでしまうことを考えると怖いです。MBRぶっ飛びます。 変換器相性についてはこちらでも情報出ていますよね。非常に厄介です。 ttps://twitter.com/_uttii_/status/1556101949203701761
|
RESETXのIPLware改造 まりも 2022年8月12日(金) 21:25 |
RESETXとは、えらー15氏作のフリーソフトウェアです。ATX電源搭載機の電源ボタンの機能を変更して、押したときにリセットがかかるようになります。 ttps://www.vector.co.jp/vpack/browse/person/an000363.html このソフトはDOSアプリですが常駐はしません。電源管理マイコンへの操作を何やら行なってから、割り込みベクタ02(0000:0008)の行き先をリセット入り口であるFFFF:0000に変更して終了します。DOSコールが3箇所にありますが、2つは文字列表示のためですので、潰すことができます。最後にDOSアプリ終了ファンクション4Cのコールを行いますが、ここを無効にしてRETF命令で終わるように書き換えた上、拡張子をCOM以外にリネームしておけば、IPLwareに改造できます。
【具体的方法】バイナリエディタでRESETX.COMを開きます。コード CD 21 の列がDOSファンクションコールです。それのうち 00 4C CD 21の並びのところは終了地点ですので、00 4C 90 CBとでもしておけば、RETF命令での終了にできます。それ以外の2箇所は90 90で潰せばOK。バージョン1.00でテストしました。 <追記> かかっくんさんの情報によるとバージョン1.01は少し違うらしいので現状のモノに合わせてください。
|
^@Lヘ! → ^@L分岐ヘ! かかっくん 2022年8月12日(金) 22:32 |
RESETXの飛び先はF000:FFF0に成って居ますね # 186+のCS:IP
movとintの間に条件分岐他が有り00 4C CD 21と云うコードは有りませんね 00 4C ** ** ** ** CD 21を検索です。CD 21を捜して前4バイトを挟んで前2バイトが00 4Cかですね
|
研究発表板 リウ 2022年8月12日(金) 22:35 |
最近は荒らしが消えたのでしょうか?と今見てきたところの感想です。
追記2300 ありがとうございます。大変なお仕事だと思いました…。 システム話題だけはあちらで続けようかと思いましたがやはりこちらで…
|
勝手にメンテ まりも 2022年8月12日(金) 22:43 |
荒らしが消えたのではなく、意味のあるスレッドを上に持ってくように、気がついたときに勝手にメンテしています。最上位にspamがあると、恐ろしく大量のspamを招くみたいなのです。7月22日のspamは凄まじかったです。その意味ではその後は荒らしがおとなしくなっているとは言えます。
|
中身EXEという罠 KAZZEZ 2022年8月14日(日) 0:54 |
> バージョン1.01は少し違うらしい 1.01でCD 21を90 90やCB 90に置き換えて試してみましたが、やはり駄目みたいでした。現行の1.01のドキュメントや付属ソースによると拡張子こそCOMですが、中身はCONFIG.SYSに直接記述できるEXE形式に変わったそうです。そのせいかIPLDOSも対応していませんし、EXE2BINも効きません。いずれにしても1.00を探すしかなさそうです…。
--3:20追記-- よく考えたらソースファイルが付いていますので、デバイスドライバ関連の記述を消してORG 100hを指定すれば、普通のCOMファイルになりますよね…多分。←正直デバイスドライバの仕様はよく知らないですので。(汗 とりあえず、 ・35行目の「linkpointer」で始まる行から108行目の「dev_ResetX」で始まる行までをコメントアウトまたは削除。 ・ただし、51行目の「pspseg」で始まる1行だけを残しておく。 ・上記pspsegの行の直後の行に「org 100h」と書き加える。 としてMASMで再アセンブルをしたところ、普通のCOMファイルになったっぽいです。電源ボタンに戻す/Rオプションも機能します。IPLDOSで動きましたから、CD 21を潰す方法でもIPLware化できると思います。なおソースを改造してアセンブルする場合、ついでに324〜325行目にあるバージョン/クレジット表記も適当に変えておいたほうが混乱が無いかもしれません。
|
wnctoolsのCOMPACKを かかっくん 2022年8月14日(日) 2:15 |
以前にも紹介したwnctoolsのCOMPACKを試してみては?
ematei.s602.xrea.com/kakorogu39/リサイクル掲示板201907.htm IPLware/IPLDOSスレッド hp.vector.co.jp/authors/VA055892/wnctoolssyokai.html wncdevelop.livedoor.blog/archives/19734.html www.vector.co.jp/soft/dos/util/se504720.html
|
スタックセグメントが変わる KAZZEZ 2022年8月14日(日) 5:06 |
COMPACKを試してみましたところ、INT 21が4個所に増えてエラー終了(ERRORLEVEL=FF)が追加されているようでしたが、それらを潰してもIPLwareでは止まるようでした。ただしその時点で実行はされているらしく、電源ボタンでリセットはできました。 どうやら処理の途中でSSが変更されているようですので、RETFではIPLwareの処理に戻れなくなっているのではないかと思います。 現行のIPLDOSの場合はSSの変更に対応していないので動かなくて当然なのですが、RESETX側の文字表示も正常ではないようですので、IPLDOS(100h未満)の一部が潰されているか、一部のセグメントレジスタが想定外の値になっているのかもしれません。
|
普通にはデバドラで十分 まりも 2022年8月14日(日) 7:19 |
まだEXE形式で造られた残骸がありそうです。ソースの中でSSを変更というかSPの設定も含めてスタックを切り替えているところを見つけてください。そこを潰すといいでしょう。リンクの時のno stack segment が出れば正常と言えます。 まあRESETXを普通に使う分には、わざわざIPLwareにするメリットはないでしょう。DOS以外のOS(リアルモードで走っていないもの)では無効ですから。 必要性がありそうなのは、ハードディスクの領域の位置が正しくなくてMS-DOS が起動しないようなときでしょう。IPLware化してあればその時RESETXが効くので、再起動待ちのイライラを少なくできます。さらにROMアプリにしてしまえば、IPLwareローダ本体/アプリ開発中のハングアップにRESETXが効く(はずな)ので、個人的に試みようと思っています。電源ボタンではなく、IO表示ボードの割り込み線に繋いだボタンを使うのもリサイクル/リユース的な夏休みの工作になりそうな?
|
KAZZEZ 2022年8月14日(日) 21:36 |
試しに、SSも含めて復帰するようにIPLDOSを作ってみましたが、それでもCOMPACK化したRESETX.COMは正常動作しませんでした。COMPACK化したRESETX.COMをデバッガで追ったところ、SSの変更だけでなく、FARジャンプでCSが変化していました。現行のIPLDOSではCS≠DSという環境には対応していない(コード量削減のため、割り込み先でDSを設定・復帰していない)ですので、それが原因で正常動作しないものと思われます。将来対応させる余地がありそうです。 <15日15:30追記> 失礼。よく見たら+100でなくて+10でしたか。これではIPLDOSの一部も破壊されている可能性がありますね(汗)。やはり常駐アドレスを変える必要がありそうです。 <さらに追記>いやセグメント+10ですから実アドレスは+100で合っているのですね。IPLDOSが破壊されないとなると、本格的にセグメント退避すれば動いたのかも。
一方で、COMPACK化したRESET.COMのINT21をつぶす方法では、さらにSSとSPを変更する部分についても90で潰したところ、IPLwareでも動作するようになりました。変更点は以下の通り。 02CF: CD→CB / 02D0: 21→90 / 037D: CD→90 / 037E: 21→90 / 0384: CD→90 / 0385: 21→90 / 04D5: CD→CB / 04D6: 21→90 / 057C: 8E→90 / 057D: D0→90 / 057E: 8B→90 / 057F: 65→90 / 0580: 10→90 言うまでもありませんが、この変更を適用する場合はCOMPACK化を忘れないようにしてください。v1.01をCOMPACK化すると1,475(5C3h)バイトになっているはずです。
アセンブラが使える環境では、最初に述べたように1.00+α相当にソース改造したほうが、COMPACKも必要ないですし、SS/SP部分を潰す必要も無いですし、IPLDOSを直接適用できるので、スマートだとは思います。
|
実機でするのが億劫なので くりすと 2022年8月15日(月) 2:44 |
MASM 6.0は実機にあるのでソース改造できなく無いですが、この際クロス環境を作ってやってみたいなぁという願望(環境構築の方が大変かな…)は湧いてきました。(超遠い目^^
と言うかIPLWareにするならリセット化が目的なので元に戻す/Rも要らないのでは? と思う訳なのですが…返ってそっちの方が面倒ですかね。
DOS以外にN88-BASIC(86)を使うときにリセットボタンがあるのは便利だと思います。リセット化できればSTOP+RESETもできるのかなとか謎の期待も湧いてきますね。(BASICどれだけ使うんだという話はさておいて…)
|
デバッガに讀ませて適宜直せば かかっくん 2022年8月15日(月) 7:49 |
RESETX.COMをデバッガに讀ませて適宜直せば所望の物を得られます。 CS=DS+10h、IP=08ChにロードされますからCS=DSにして100hにjmp 18Chを置いてアドレスを値で指定して あるヶ処を直します。あとはIPLware/ROMに不要なルーチンをnopやretでつぶせば必要なルーチンだけが遺り ます。最後に歯抜けに成ったルーチンを移動してjmp/call先を変えれば完成です
|
RESETB まりも 2022年8月15日(月) 8:34 |
STOP押しリセットは、いつ頃かの機種から廃止されてしまっていて、少なくともATX電源搭載機では機能しないですよね。 割り込みベクタ02の番地をROM BASICの入り口であるE800:0000となるようRESETXのIPLware版を改造すれば、電源ボタンを押すと毎回ROM BASICが再起動するようにはできそうです<追記 2回以上は不可能なことが判明>。ROM BASIC廃止機種でもここにジャンプすればBASIC起動可能なことは先日発見されたので。/R の機能の方はBASICアプリで必要になりそうですが。
|
IPLWare化した訳では無いですが くりすと 2022年8月15日(月) 13:04 |
Xv/Wですが、DOS6.2からRESETXを実行してSTOPを押しながら電源ボタンを押すとメモリカウント無く固定ディスクメニューが現れました。 (ブート機器は標準状態としていますが)SCSI固定ディスクから起動してRESETX起動後、DOSが起動するFDをセットしてSTOPを押しながら電源ボタンを押すとFDから起動をしました。その場合は電源ボタンは長押し以外受け付けなくなりました。(RESETX /Rをしても変わらず。) ROM(Disk?) BASICのウォームブートができるのか、までは分かりません。
またRESETX中にCTRL+SHIFT+STOPを押しながら電源ボタンを押すとMMDUMPが実行されましたので、これもそれなりに便利ですね。
|
STOP+リセットって かかっくん 2022年8月15日(月) 15:06 |
STOP+リセットの場合、初期の機種以外では(特にBASIC以外では)正常に動作を続けるとは限らないので、RAMの 内容を保存する為(MMDUMP他)だけと割り切った方が賢明な気が...
|
電源ボタンでROM BASIC/ROM BASIC中で電源ボタン まりも 2022年8月15日(月) 20:25 |
電源ボタンでE800:0000に飛ぶのをIPLwareでやってみましたが、「ROM BASIC中の任意の時点でBASIC再起動」はできないようです。最初の一回だけ電源ボタンでROM BASICに行けるだけでした。BASIC自身が電源ボタン設定を変更するのでしょうかね?。それか電源管理マイコンの状態が一度ボタンを押すと遷移してしまうかです(多分こっち)。再度BASICに戻るためにはそれなりにBASICアプリとして作らないといけません。 またDOS起動後には、ROM BASICに飛べても割り込みベクタ環境が適当でないためか、Okプロンプトが出ずにハングアップします。ということで、ほとんど意味ありませんでした。
なおIPLware版のRESETXはROM BASICプロンプトのときでも使える(システム再起動する)ことを確認しました。したがってROM BASICは割り込みベクタ02に変更を加えることはしていないと思います。
|
ROM BASIC KAZZEZ 2022年8月15日(月) 20:32 |
ROM BASICから(メモリカウントせずに)再起動といえば、NEW ON 命令という手もありますよね。プログラム暴走時には使えませんが、BASICから比較的手軽にDOSに移ることはできそうです。
|
NEW ON xx まりも 2022年8月15日(月) 21:04 |
ATX電源搭載機の後期には40桁モードが廃止のため、new on 命令の引数を適当に与えるとテキスト画面は1文字空きで表示されてしまうようですね。またnew on 0 とやると、ROM BASICのウォームブートではなく、システム再起動でもなく、起動メニュー(IPLware含む)からのリブートとなるようです。
|
飛び飛び かかっくん 2022年8月15日(月) 21:21 |
詰まりハードウェアには80桁モードしか無いので80桁モードで、ソフトウェア的には40桁モードに切り替わって VRAMに飛び飛びに書き込まれて飛び飛びに表示されますね BASICのモニタモードのテストルーチンも同様です
40桁モード(40x25)にするにはNEW ON 8です。 8の位の1は25行モード、4の位の1は80桁モード、2の位の1はターミナルモードです。8+0+0で40x25モードの BASICに成増。↑の通りNEW ON 0ではROM BASICに成らない場合が有るので、其の環境では40x20モード での起動は出来ません。起動後に変える必要が有ります ↑の環境でNEW ON 2では40x20のターミナルモードで起動しますか?>まりもさん
あ、RESETX 1.0は↓に有ります ssweb.com/seto/info/resetx.html
|
|
隠れソフトウェアDIPスイッチは生きている? まりも 2022年8月15日(月) 23:30 |
New on 2 では、いったん起動メニューに移行します。そのあと「メニュー終了」でROM BASICに入ることはできます(廃止機ではあらかじめint 1EをE800:0000にセットしておく)。そこでは隠れDIPスイッチ2の2,3,4が変更されているためか、疑似40桁、20行、Terminal modeでHow many files になります。ただこの変更のうち40桁モードは、40桁廃止機では記憶が電源切って保持されるかどうか不明です。(追記参照)
<16日12時追記>少々ややこしいけど基本的なことを書きます。BASICが参照するDIPSW2ですが、new on コマンドの引数で設定したものは一時的なものであって、電源を切ると初期状態に戻されます。 しかしその初期状態を記憶しておく機構(機種世代に大きく依存)は、ROM BASIC廃止機種でも活きているようです。Undoc2にも書かれていませんが、裏KCG操作で、40/80桁のDIPSW設定は保持できて、電源投入後のROM BASIC起動時に反映されていました。BASIC/Terminalモードの方もそれで変更できるから可能だろうと思っていましたが、その通りでした。なお20/25行の方はシステムセットアップメニューから変更できます。 それからnew on 引数のbit 0 は、BASIC直リブート/起動メニューからリブート の切り替えbitということでよさそうです。1でBASIC直リブートです。具体的には80桁25行なら new on 13 が最適です。12にすると起動メニューからリブートします。Ver 6.2くらいのN88 DISK BASICのマニュアルにこの情報がどう書かれているか知りませんが。
ところでEXIDEではSW2-2のterminal modeをCF関連設定に流用していますが、ROM BASICのTerminal mode機能が令和の世に見直されるとなると、やめた方がいいのかなという気が。そろそろ無条件にCFもSSDも16:63(nativeなH:S)で使う時代かも。
|
NEW ON リウ 2022年8月18日(木) 17:28 |
dipsw2-2<システムモード>bit1 0:BASIC 1:ターミナル 2-3<桁数>bit2 0:40桁 1:80桁 2-4<行数>bit3 0:20行 1:25行 で制御と書かれています(が、実際はKCGの裏を書き換えているわけですね?) 以下訂正 そんなわけないです 笑 一度きりの有効設定ですね。
6.2リファレンスマニュアル118ページから編集引用しました。 肝心要のbit0については言及無しです。
|
New on 引数のbit 0の情報は? まりも 2022年8月18日(木) 17:50 |
bit3,2,1はマニュアル記載通りですね。しかし肝心のbit 0の情報がありません。もしかして新知見なのですかねぇ。DISK BASICってもとが古いので、起動メニューを使う拡張フォーマットに関連したことはその後のマニュアルでも書かれていないのかも? そしてBASIC自身は裏KCGのことも知らないので、New on の引数を半永久記憶など出来なくて当然です。というか、もともとはメカニカルDIPスイッチですから、ソフトウェア的には変更出来ません。New on引数の効果は、調査するまでもなく一回限りなのは当然でした。
<21時30分追記> ではNew on xxの一時記憶はどこに為されているのだろう?という次の疑問が湧いてきます。めちゃ古いROM/DISK BASICですから新し目の98アーキテクチャに関係ないところでしょう。完全な再起動ではないことや、プログラムコード的に軽いモノだろうということを考えると、システム共通域のどこかでしょうかね。と思ってUndoc2のmemsys.txtを読みに行ってみますと… 「0000:05C0 DIP SW 2の設定状態のコピー」 たぶんこれでしょう。BASICに強い方検証してください(peek文だか関数の使い方忘れた)。ついでにこのbit 0が、引数のbit 0に流用されているという気がします。
|
NEW ON直後にPEEKすると かかっくん 2022年8月19日(金) 0:11 |
調べた処、確かに0:5C0はSW2の設定が写してありました。 ds=0:di=&h5c0:def seg=ds:? hex$(peek(di)) # 並び順はMSBよりSW?-8 ... 1の順、OFF(↑)が1・ON(↓)が0 で、bit0(1の位)は何の捻りも無くSW2-1の設定が入ります。 SW2-1は未使用でOFF(↑)にするやうにあります
で、本題ですが、NEW ON n直後にPEEKするとnが反転されて(255との差)讀まれます。NEW ON 13で PEEKした値はF2に、NEW ON 240ではFに成増
ところで、np2では200ラインモードにしてもシステムセットアップメニュー擬きが全角(の上半分)で表示され ますが、実機では半角で表示されます
|
|
物理DIP-SWの2-1は くりすと 2022年8月19日(金) 6:37 |
RA21で見ましたがハードリセット直後は0000:05C0に反映されることなく固定ディスクメニューが現れました。(2-2〜8は反映) もちろんNEW ON 13であれば05C0に反映されています。
恐らくITFでDIP-SW 2を取得時は2-1をOFF固定にしているのでしょう。
|
BASICのブート関連を今更知る まりも 2022年8月19日(金) 11:25 |
0000:05C0はITFが必ず0に設定したあと、ROM/DISK BASIC が起動するときに参照して、0以外であればbitが有効として、0ならDIPSW2をコピーして、環境変更の上起動しているのでしょう。ここをIPLwareで値を設定(bit 0は必ず1に)してからBASICを起動すると、最初からnew on 起動ができるような気がします。必要性がいかほどあるか思いつきませんが。DIPSWを無視してターミナルモードを強制するなんらかの自動システム起動用途くらいですかね。
<17時追記>と予想してやってみたらそうはなりませんでした。初回起動でなくnew on 起動であることを示すフラグが別のところ(もしくは別のbit)にあるようです。
|
我々は偉大?なものを忘れていた くりすと 2022年8月19日(金) 19:48 |
archive.org/details/N88BASIC86Manual/page/n116/mode/1up?view=theater
P107(pdf上では118)
> ディップスイッチSW2の機能 > 1 < BASICセレクトスイッチ > 0:N88-BASIC 1:N-BASIC
> 注意:N-BASICを指定する場合は,ディスク装置にN-BASIC(86)のシステムディスクを装着しておく必要があります。
と、あるのでN-BASIC(86)に切り換えるための残骸があると思います。
なんてったって互換性重視のみいそですから…。
|
メディアからのブート まりも 2022年8月19日(金) 21:33 |
DIPスイッチ2-1って相当古い機種しか機能がないものと思っていました。マニュアルは詳しく参照すべき物だったようです。 >ディスク装置にN-BASIC(86)のシステムディスクを装着しておく必要があります。 という記述からすると、メディアからのブートに戻るというのが根源的意味のようです。98の歴史の初期にはN88の他にはN-BASICくらいしかなかったので、表面的にはなんだかBASICの切り替えらしい、としか思えない記述なのですね。 メディアからのブートという機能はその後HDDの登場を経て起動メニューに至ったということになります。プログラム的にはたぶんjmp FD80:27ECを実行することだけがBASICには書かれていて、それは98の進化の過程でずっと変わらなかったというわけです。
|
BASICのマニュアルと各機種のハードウェアマニュアルの何方を信じるべきか? かかっくん 2022年8月19日(金) 21:54 |
> archive.org/details/N88BASIC86Manual/page/n116/mode/1up?view=theater
此れって何の機種(又はバージョン幾つのBASIC)に憑いて来たマニュアルなんでせう? CASx:やMOTORと、16色モードの記載が有るので3.x辺りのやうな? 2-1が未使用なのを確認したのはUV21のハードウェアマニュアル(同様にarchive.orgで参照可)ですた UV21ではN-BASIC(86) (DISK BASIC)はサポートされないのかも?
で、結局はROM BASICを起動するかディスクを讀みにいくかの違いに成った気がしますが、FDを入れてリセット してもFDを讀みにいかない機種って有りましたっけ?元祖でも320Kと8インチ(1M)には讀みにいった気が? # 2DD(640K)とHDDは別途ROM(-08 640K I/Fに付属)が必要 # え?SASI I/F(-07)には↑のROMは憑いて居なかったんですかね?BIOSのROMだけ?
でも、BASIC(N88(86)とN(86))だけとの事ですが、当初はCP/M86は未だでしたっけ?然うすると本当に 88のBASICレベルでの互換機に過ぎないやうな? # 其れでも他社の16bitを謳った機種(大半が8088)より速くて安かった(88よりちょっと高価い程度)ので # 賣れたワケですが
>>ディスク装置にN-BASIC(86)のシステムディスクを装着しておく必要があります。
此の記述はN-BASIC(86)のROM BASICが無いからと解せますが如何でせう? 98にはN-BASICのROMが有る88と違って元祖のオプション(PC-9807)以外にはN-BASIC(86)のROMは 無かったやうな? で、元祖+9807ではFDが無くてもSW2-1通りにNとN88の切り換えが出来ると? # ところでN-BASIC(86)の機能レベルってN-BASICとN80-BASICの何方と同等なんでせう? # MOUNT/REMOVEが機能する(N同等)のかダミー命令(N80同等)か?
|
SW2-1が反映されないのはR世代だからか、反映されるnp2の実装が正しくないのか? かかっくん 2022年8月20日(土) 0:25 |
んーRA21とnp2の違いか、D*以降なら2-1も写るのか?何方なんでせう? D*以降の実機でSDIPを直接いじってみるしか?
因みにnp2はHELP起動で設定できないbit(SDIP/MEM共)はINIファイルを直接編集で変更出来ますがSAV(レ ジュームファイル)が有ると其方を優先します。SAVを消してINIを編集します
|
色々… くりすと 2022年8月20日(土) 0:50 |
RA21(ブートは標準起動です)のDIP-SWは電源ON-FDDアクセス-IFC-NN BIOS-固定ディスクメニューの後にROM BASICを起動してみた結果です。
よくは知りませんが、N80相当のようです。(MOUNTはダミーでないと絶対に壊す自信が…。)
|
FDもSCSI BIOSも無いとどう成る? かかっくん 2022年8月20日(土) 4:29 |
FDを抜いて、IFC-NNのBIOSを切って起動するとどう成りますかねぇ? # 手元にRX21が有るのですから自分で試してみれば良いのですが。来週試してみるか # ゐゑ、内ST-506ケーブルに5インチHDDをつないだSASI籠を抜かねば成らぬので。SW2-6↓で凌ぐか
↑はnp2にFDイメージもHDDイメージもマウントせずにリセットした結果です 確かnp2はHDDイメージをマウントしないとSASIやSCSIのBIOSは無効に成った気がします
|
再確認 くりすと 2022年8月20日(土) 12:25 |
何を見間違いしていたのか普通に2-1は反映されていました。先の記述は嘘になります申し訳ありません。
ひとまずIFC-NNだけ抜いて確認をし、再度挿しても結果に変化なく2-1が反映されていました。またIOポート31h(DIP-SW 2読出し)と同じ値であることも確認しました。(31hはリアルタイムに値が変化します。)
FDDアクセスはFDX68を接続しているだけでDrive not readyの状態にしています。(ブート時ドライブ1と2を6回アクセスLEDが表示した後、諦めてROMなり固定ディスクメニューの流れになります。)
IFC-NNを抜いていたときのROM BASICですが、2-1の状態にかかわらずリセットボタン押下時はFDDアクセスをし、NEW ONでN-BASIC指定の時はFDDアクセスがありませんでした。(Disk BASIC時は確認していませんが6.xより以前のは持ち合わせていないので不明です。)
|
NEW ONは88にも有り、DOS BASICには無し かかっくん 2022年8月20日(土) 14:11 |
で、DOS BASICと88用のN88-BASICのリファレンスマニュアルもarchive.orgで参照できますので、両方共 確認した処、NEW ONはDOS BASICには有りませんでしたが88には有りますた で、指定値の下位4bitは粗同じですた(違いは(86)の有無、98と88の違いなので当然でせう)。
確か、mkIISRかFR/MRだかでN-BASIC SWが省かれ代わりにNEW ONで切り替えるやうに成った気がします (NとN88(V1)の切り替えからN88 V1とV2の切り替えに変わったか、 N/V1/V2の切り替えからV1/V2だけに 成ったかだった気が)
|
486HAの場合 KAZZEZ 2022年8月22日(月) 0:03 |
EPSON機(PC-486HA)で試しましたが、EPSON機ではNEW ONのbit0は関係無いようですね。12でも13でもディスクを読みに行きました。またbit1も関係なさそうでした。ソフトディップスイッチの設定ではSW2-1/2はシステム予約となっていますので、(普通の日電のような)ターミナルモードは無いようですね。EPSON版/日電版N88BASIC 3.0(内蔵HDDは切り離す)および、FD版IPLwareにE8000へ飛ぶだけのモジュールを入れた擬似ROM BASIC(例の、Disk versionと表示されるNEC版1.0)でも同様でした。 なおNEW ON の際にディスクを入れ替えたところ、EPSON版/日電版の3.0には互換性があったようですが、IPLwareから飛んだROM BASICについては、EPSON版/日電版3.0に変えることはできましたが、逆は不可能でした。どうもFDを読みに行って詰まっている様子でしたので、FD版IPLwareの仕様であるDOS互換フォーマットが読めないのかもしれません。ROM BASIC起動に使う場合はFDのフォーマットもBASIC互換のほうが良いのかもしれませんが、日電機(BX3)で試す限りはそのような問題はありませんでした。
ところで(日電の)ターミナルモードは使ったことが無いのですが、何をするものなんでしょうね。サーバをどうするかについては特に書いてありませんが、DOSのCTTYコマンドに対応しているのでしょうか? もしそうであればAUTOEXEC.BATにCTTYを記述した起動FDを使って、画面の映らなくなったノート機を別のPCから操作するとかできるのでしょうかね。
> RESETX 1.0は↓に有ります お返事遅くなりましたがありがとうございます。よく読んだら転載可能ソフトだったのですね。IPLDOSでも普通に動きました。
|
ターミナルモードとCTTYの接続 かかっくん 2022年8月22日(月) 0:45 |
ターミナルモードとDOSのCTTYは接続できなくはない ですが、DISK BASICでしか全角文字は表示されません し、DISK BASICでも文字コードはみいそJIS(KI =1B4Bh・KO=1B48h=PC-PRの文字コードと同等) ですから素のターミナルモードではANKしか讀めま せん。PCの英語DOSとなら無問題です。 別にプログラムを組めばコードを変換しながら送受信も出来るやうに成りますが、遅い機種では取り零しが多く 成るので向きません。逆にDOS側に全角文字をみいそJISに変換するRS-232C DRVを載せるとか? 因みにDOS BASICにはターミナルモードは有りません。 # 88の『N88-日本語BASIC』の文字コードはSJISなのでターミナルモードでもおk? # 多分N88-漢字BASICとか8801漢字BASIC等、他の非ANK BASICでは駄目でせう # (ANK) DISK BASICは全角文字が出ないので論外 参考 88のBASICとその漢字コードについて www.kiwi-us.com/~ohta/pc88/kanji/ # ところでNMやPC-882*の文字コードってどうなんでせう?NMはDOS2やPRINT.SYSで印刷出来るので # みいそJISのやうですが # PC-8821とPC-8822の違いは漢字ROMの有無(8821はオプション)
えぷ機のSW2-2にターミナルモード設定が無いのは、建前上『ROM BASICを搭載して居ない』からの気がします。 DISK BASIC起動後にTERM"COM:"でターミナルモードに切り替えは出来ますか?
BASICの1MフォーマットはIPLをMFMでなくFMで書き込む必要が有り、DSKO$では書けなかった気がします 256フォーマットが讀めればMFMで書けますが。
|
88の日本語BASICはSJISではありますが くりすと 2022年8月22日(月) 6:24 |
88の漢字はテキストVRAMでなくG-VRAMに書き込むので、遅かったような気がするのですが画面全体をスクロールさせるのであればハードウェアスクロールが効いて何とかなるとかでしたかね?
取りこぼしがなければ遅くともイライラするだけですが…
|
88では400ラインのテキスト表示は出来たかどうか? かかっくん 2022年8月22日(月) 8:56 |
88のN88-日本語BASICは全角に限らず全ての文字をグラフィックに描画して居た気がします 400ラインのANK表示も出来たかどうか?
|
Mシリーズなら くりすと 2022年8月22日(月) 12:20 |
拡張RAMのあるMシリーズは全てG-VRAMで98と同様のフォントですがFシリーズはANKについては200ライン表示だったと思います。
|
確かに かかっくん 2022年8月22日(月) 14:58 |
あーウチの88実機はM系ばかりなのでF系はノーチェックですた 手持ちの日本語BASICのFDが2HDなのでmkIIでは試せませんでしたが、mkIIのFDD側8255を抜いて本体側の 8255を抜いたMR(PC-8831-MW擬き)とケーブルで接続して起動してみますた # 多分MRのFDD ROMはフルスペックの8831-MWのROMと同等と思われ # MH/FH以降は背合わせの8255x2がワンチップ化。此の石が8255と同等かFDD I/Fに特化して他のモードを # 省く等簡略化されたか?・併せて初期化コードが手抜きされたか?は不明 確かにmkIIではANKは200ライン用の方が出ますね
閑話休題、DOSのRSDRV.SYSを怪造してSJIS→みいそJISの変換ルーチンを憑けた物で試してみます RSDRV.SYSは単純なPS98-12Xのを遣います。ルーチンは超手抜きをして全角1字毎にKI/KOを憑けます。 1バイト半角は1バイトですが全角・2バイト半角は6バイト送る事に成増
|
SATAD-IDE まりも 2022年8月23日(火) 18:08 |
わたしも買い増ししたのでテストしてみました。今まではSCSIーSCSIIDE変換器ーSATAD-IDE変換器ーSATA HDDという構成でSCSIケース内のためテスト出来なかったのです。 なるほどSATAD-IDEを使うと光学ドライブだけでなくATAのIDE HDDですらもセカンダリが認識しなくなります。ハードウェア的に見えなくなりBIOSの問題ですらありません。路地穴必要レベルだと思います。なおPCI搭載後期機種のXc16でのテストです。これは対策が難しそうです。I/Oポート432hの叩き方を普通でないタイミングや手順(といってもわかっていない)にしてみるくらいでしょうかね。それかIDEコネクタまたはmarvellチップの何かしらのピンの処理でしょうけど皆目わかりません。識者に期待。
|
何時ものやうに切り分けを かかっくん 2022年8月23日(火) 19:08 |
FD/SCSIでの起動後のIDEINF/IDEFLAGSでも出ませんか? 先ずは何時ものやうに、世代等での切り分けをしませう セカンダリが有る486機でも(MATE Xに限らずCe2/Cs2/Cx/Cb等でも)起こるのかPCI機だけか? サウスがGHOSTと☆α2でも違いそうな? # ↑のC*のセカンダリは円盤専用の実装でも良かった処HDDもキチンと認識するやうに、其れ也にマトモに # 実装して居るんですよねぇ。其れで可也助かって居ますが
SATAD-IDEの石は88SA8040と88SA8052が有った気がします(後者には基板にATAPIジャンパが追加)。 現行品は更に後継ですか? # かと云ってJMの石にも問題が有りましたよねぇ
路地穴は8ch以内でUSBのが密林に安く出て居ます。1ホストで複数同時動作の可否は不明です www.amazon.co.jp/dp/B078P8GQSQ とか
ところでSATAD-IDEとSATA HDDをセカンダリ側につないだ場合はプライマリ側を認識しなく成るんでせうかねぇ? プライマリ・セカンダリ共にSATAD-IDEの場合は?
|
SATAD-IDEを第2,3世代IDE機ほかで まりも 2022年8月25日(木) 22:04 |
復活を遂げた9821Bs,および9821XsでSATAD-IDEを繋いでみましたが、セカンダリポートのHDDは認識しました。CPUは486sxでもDX4ODPでもOK。とりあえず報告まで。この後Xe10、Xb10などで試して行きます。なおSATAD-IDEのチップは88SA8052です。
<23時追記> 第4世代IDE機の Xe10、Xb10では起動時に通常より待たされ上、セカンダリのHDDはデバイス認識しませんでした。どうやらPCI機種というか第4世代IDE機ではSATAD-IDEはセカンダリポートの認識で問題を起こすようです。なお本来は第n世代という用語はIDE BIOS構造について言っていますが、Xe10/BX4はハードウェア的にもPCI機に近いのでしょう。
BX4/Xe10を除く486アーキテクチャ機では、SATAD-IDEはセカンダリも使えそうだとわかりました。IDE世代が3だけどPCIな初代Xaの調査はお任せします。 <9月3日追記>そういう括りではなく、プライマリとセカンダリのデータ線に導通がある機種で問題が起こるという結論が得られました。詳しい議論は2022年9月の「SATAD-IDE問題2022年9月-1」スレッドを参照。
|
Ra40でSATAD-IDE Jilly 2022年8月26日(金) 4:03 |
(このレスの内容は検証不十分なため参考外としてください)
あまり時間が取れないため、Ra40のセカンダリマスタに繋いだ光学ドライブのみの報告となります。 手持ちのRa40には中古入手時からCDU311-NEが付いていたのですが、こちらであればプライマリマスタ側にSATAD-IDEが付いていてもMS-DOSで認識しCDの中身にアクセスすることができました。使用したドライバはNECCDC.SYS、ケーブル類は元から付いていた純正?の40芯ケーブルです。手持ちのSATAD-IDEのチップは88SA8040になります。
画像1:機器接続位置の確認のためだけにIDEFLAGSを使用(確認後再起動しています) 画像2:FDおよびHDDから起動後のIDEINFの実行結果です。どちらも同じ結果でした。
画像3:光学ドライブをLITE-ONのLH-18A1Pに繋げなおしたところ、光学ドライブを認識しなくなりました(CD-ROMドライバの読み込み時にフリーズします)。このドライブはSATAD-IDEを繋いでいない時はNECCDCでいつも使えていたドライブです。 画像4:プライマリマスタのSATAD-IDEを外すとLH-18A1Pが見えているのが確認できます(このときはFD起動からIDEFLAGSを実行)。
※私が中古入手したRa40の光学ドライブは純正の24倍速品ではなく、本来であればV20あたりに付いている6倍速品のドライブに交換されていたということも今更分かってしまいました…すぐDVDドライブに交換してしまうので今まで気づいておらず;
|
|
経過報告 リウ 2022年8月26日(金) 9:31 |
SATAD-IDEを購入しました。時期は先週です。 チップは8052 ATAPIジャンパつきです。(ATAPIジャンパは差していません。)
V166青札 プライマリに使うとセカンダリの反応が消えます。セカンダリに使うとプライマリの反応が消えます、この場合固定ディスク起動メニューに行けません。(通常はセカンダリマスタだけにHDDを繋いでもHDD側から起動できます。)BIOS構造の問題ではなく実際にIOの反応が消えます。
初代Xa 問題なくセカンダリのCDドライブがIOの反応で見えました。
やはりわけがわからないですね。 以前の別の方からの報告というのはJillyさんからの連絡でした。追記しておきました。旧製品だとIOが無反応になっているわけではないようですが、挙動がやはりおかしいですね。
そうは言ってもSCSI変換する際にはJMの石だとダメだったモノがこちらだと動作してくれますので買ってよかったと思っております、
ついでに? LBA_IDEにバグが見つかりました。8G機では365MBに縮小してからの容量拡大を行う必要はないのですが、それをするとどうもおかしくなっていました。また見ておきます。
|
事象は単純ではなさそう かかっくん 2022年8月26日(金) 17:57 |
> 画像3:光学ドライブをLITE-ONのLH-18A1Pに繋げなおしたところ、光学ドライブを認識しなくなりました(CD-ROMドライバの読み込み時にフリーズします)。このドライブはSATAD-IDEを繋いでいない時はNECCDCでいつも使えていたドライブです。
此の構成でNECCDCを讀ませずにIDEFLAGSとIDEINFを実行するとどう成りますか?
> SATAD-IDEを購入しました。時期は先週です。 > チップは8052 ATAPIジャンパつきです。(ATAPIジャンパは差していません。)
数年程前から8052に成って居ます。8040のは其れ以前の可也旧いロットです
> V166青札 プライマリに使うとセカンダリの反応が消えます。セカンダリに使うとプライマリの反応が消えます、この場合固定ディスク起動メニューに行けません。(通常はセカンダリマスタだけにHDDを繋いでもHDD側から起動できます。)BIOS構造の問題ではなく実際にIOの反応が消えます。 > 初代Xa > 問題なくセカンダリのCDドライブがIOの反応で見えました。
矢っ張りサウスの違いは有りそうですがデバイスとの相性も有りそうですねぇ NECCDCとNECCDM以外でも調べてみたい処ですが当該メーカの円盤ドライブも必要ですからねぇ
SATAD-IDEと円盤だけでなくSATAD-IDEとIDE HDDやSATAD-IDE同士での検証も必要そうです
|
RaII23ではダメでした まりも 2022年8月26日(金) 20:23 |
Ra40では何とかなっていると聞いてRaII23で試したのですが、SATAD-IDEをプライマリに使うとセカンダリは正しく認識しませんでした。PCI機はうちでは全滅です。これはSATAD-IDEのバージョンに依りますかねぇ? ちなみにideflags の実行では存在bitが立ちますが、これはGND落ちチェックをITFが行なった結果に過ぎないので、正常にデバイスにアクセスできなくてもぶら下がりは認知されます。今回のチェック用ツールとしてはあまり意味はありません。ideinf -d2 で正しく読めることが必要条件です。
なおXe10ではセカンダリを認識しないと書きましたが、50%くらいの確率でデバイスの存在が認識されてしまうことはあります。DA/UAが割り振られることもあります。しかし実体はひどいもので、画像のように、プライマリのデバイスを読みに行くだけでデータ化けしたりセカンダリのデバイスの情報が混ざったりという有様で、正常に動作しているとは言えません。というように、デバイス認識の確認だけではなく、正常に読み書きできるのかも調べないと、「使える」とは断言できそうにありません。
|
セカンダリマスタにHDDを繋げたところダメでした Jilly 2022年8月27日(土) 1:07 |
まりも様のご指摘ありがとうございます。 IDEの20GB-HDDが捻出できたのでセカンダリマスタに繋いでMS-DOSのシステムを送ってみたのですが、セカンダリマスタの領域から起動しようとするとリセットがかかるため正常に書き込みができておりませんでした。
かかっくん様 お返事順が後になりましたが、NECCDCを読ませないLH-18A1PのIDEFLAGSとIDEINFを撮ってまいりましたのでご確認お願いいたします。
当方の上に書いたレスは検証不十分の注意書きを入れます。誠に申し訳ございませんでした。
ついでとなりますが、先日PC-286VJ5の中を開けたので以前(といってもかなり前)ネタにして頂いたCPUとフレームの隙間の目安な画像をツイに上げたのでよろしければご確認ください。 ttps://twitter.com/TfsJilly/status/1562811556169404418 ttps://twitter.com/TfsJilly/status/1562813614201110534 ttps://twitter.com/TfsJilly/status/1562814371650498560
|
一部の線が共通 かかっくん 2022年8月27日(土) 3:40 |
考えられる事としては、プライマリとセカンダリで一部の線が共通な気がします
PCの場合は【プライマリとセカンダリでI/Oが別】で、【プライマリとセカンダリのポート同士のデータ線に導通が 無い】事から其々のバスにバッファが入って居そうです。ATA33/66以降のはデータ線自体が別かも 問題の98の場合は【プライマリとセカンダリのI/Oが共通】で【別のI/Oでプライマリとセカンダリを切り替え】て 居ます。此の方式のメリットは容易にポートを増やせる点です。実際は他の要因も有り、然うも往きませんが。
で、山猫V G8XYH (サウスはYEBISU) の場合、 ・1 RESET ・27 IOCHRDY ・33 A1 ・35 A0 ・36 A2 に導通が有りますた。28ピンはGND(PD)で、CSなケーブルが遣えそうです 流石に、惡い予感のポート間で共通データ線でわありませんですた 因みにPCで↑のピンは ・1 低抵抗か導通 ・27 9k前後(4.7kPUx2?) ・33 高抵抗 ・35 高抵抗 ・36 高抵抗 での接続ですた。多分Address 0〜2にバッファが入って居るのでせう
|
そういえばSATAD-IDEって くりすと 2022年8月27日(土) 7:08 |
少し話しの流れとは離れますが… 大昔に買ってはいました。 当然チップは88SA8040なのですが、MとSのJPのうちM(マスター側ですよね?)だけJPがささっている状態でHDD<=>SATAD-IDE<=>AEC-7720UW<=>AHA-2940UWと接続してもHDDは認識はするもののアクセスするとフリーズ状態になって使い物にならなかった記憶があり、お蔵入りしてます。
|
SATAD-IDE+DSC-G まりも 2022年8月27日(土) 13:40 |
引き続き話の流れが少し変わりますがSATAD-IDE併用には違いないので。 メルコの外付けSCSIのDSC Gシリーズ(40GB,80GB,120GB)に使われていたSCSI変換器と同じものは、単体で玄人志向のYUとしても売られていたわけですが、どうもファームウェアが少しちがうようです。YUでは容量制限したHDDはSCSIでもその容量として認識されていましたが、DSC-120Gという外付けHDDユニットでは本来の容量で認識されてしまうことがわかりました。元々120GB用ですからそれでいいのかもしれませんが、ちょっと困りました。
<29日追記>メルコDSC型番のSCSI外付けHDDの中身の変換器の情報は、あまりまとまったものが無いですよね?DSC-G以外は知らないので検索することになりますが、すぐ忘れてしまいます。発売年月順のリストでも作るか、、、とにかく製品型番末尾ごとに相当異なります。
|
/人'A`;人\ 2022年8月29日(月) 17:41 |
小生が把握してゐるのは ↑ 以外では ↓ だけでやんすね(汗
ttp://www.maroon.dti.ne.jp/youkan/mz700/DSC-UE32.html メルコ製DSC-UE(DSC-UExxG?)シリーズで使用されているIDE-SCSI変換基板は特定の容量のHDD(1.2G・2.1GB・ 3.2GB・4.3GB・6.4GB・8.3GB・9.1GB)が接続された場合にしか動作しないようにファームウェアが作られている.
ttps://twitter.com/MasaruUrano/status/1484898997525708802 DSC-xxxGTV/GTR(UGTV/UGTR?)シリーズにはこの制限がない. ※I・OデータのHDVS-UMxxシリーズも同様.
|
メルコSCSIドライブ まりも 2022年8月29日(月) 18:38 |
DSC無印容量値3-4桁の型番ではネイティブなSCSIドライブが使用されていました。 DSC-UからH8マイコンにファームウェアの載った変換器でIDEドライブが使われています。DSC-U小数点容量値のはその容量決め打ち?。上記の通りDSC-UEは容量帯固定。DSC-UGTR(容量13-40GB)やUGTVでは容量帯制限は無くなった? 後者はファームウェアの改良で、容量を分けて複数のSCSI IDで使用できる優れものです。いずれにしてもH8マイコン仕様のは速度はあまり出ません。 DSC-GT容量値GというのはケースがMACっぽいデザインに変更になったもので、容量20-60GBです。容量分割できますから、たぶん変換基板は以前と同じと思いますが、よくわかっていません。
DSC-容量値Gは80GB、120GBが加わり変換器の主要チップは「優」になりました。これはSCSIコマンド応答も転送速度も速くてよいです。今回これの容量認識が、ドライブ本来の容量(native maxを参照)であるらしいということがわかったというわけです。
|
|
|