98システム解析スレッド2024年4月 /人'A`;人\ 2024年4月1日(月) 3:23 |
> 9821Bは該当しないのではないでしょうかね? 内蔵HDDが無ければセカンダリのATAPIドライブを認識しない件についてはPC-98パワーアップ道場のBs編において(アイオーの)DOS用CDドライバでは認識するが95のIDEドライバでは認識できないことが言われていました。 一方で、内蔵IDEに何も繋いでいないときにSCSIから95が起動できない件は ttps://weblabo.griffonworks.net/dorlog/2nddorcom/pc-98/199811-199812/sled03724.html の7.によりますとXs、Xp、Xnが該当するそうですが、95起動時にシステムレジストリの読み込みを行わなければ起動するとの話ですから、内蔵IDEの何が影響しているのかよくわかりません。 ただ、IDE-BIOSが同世代と思われるXeやXf/Xaが含まれていないのであれば、IDE-BIOSは関係なさそうですね。 (レスを見て追記)95のIDEドライバというのはスタンダードIDEコントローラの話です。Bsのほうの記事は、DOSドライバで認識させた光学ドライブから95をインストールしているようですが、インストール後に32ビットネイティブドライバに変えたら認識しなくなるという状況です。もちろん内蔵HDDを繋いであれば認識できるそうです。
|
9821Bの「専用」インターフェイスとATAPIデバイス まりも 2024年4月1日(月) 10:26 |
>95のIDEドライバ これは32bitのドライバではなくて7.0版DOSモード用neccd*.sysでしょうかね?アイオーデータのドライバと対比している点で。アイオーデータのドライバはBIOSを当てにしない最強のものですから認識できて当然ですが、neccd*は機種・デバイス適合のモノでさらにBIOSも活きていないと動作しないでしょう。情報を精査する必要がありそうです。
>システムレジストリの読み込みを行わなければ起動 (X-mate) X-mateはPnPの初号機かつ95が出る前の機種なので、PnP的な何かの問題でしょうかねぇ。
【上の追記を読んで追記18時】ひょっとしてWin95の32bitドライバは、BIOSを利用、またはBIOSが処理した結果(システム共通域などに記録)を利用するタイプでしょうかね。FDDドライバなどはそうです。
|
詳細な調査ではありません リウ 2024年4月1日(月) 12:05 |
初代XaでIDEデバイスをとっぱらい、内蔵ディスクを使用する の状態で起動 D800セグメントにはPCIBIOSが鎮座しています。 この状態でPCI-SCSIにSC-UPCIを使ってWindows95をインストールしました。 あっさり起動しました。 しかし その状態のまま100ボードに入れ替えたところ起動できませんでした。 SCSIHDDのファイルを破壊しまくったようです。 何かは起きています。もう一度100ボードの状態からインストールしてみます。
やってみました。IDEをつなげていてもつなげていなくともwindows95起動直後のサウンドが聞こえた後、テキスト画面に切り替わって割り込み0eh、続行できずで 再起動後外付けSCSIのFATテーブルなどが破壊されていました。
92ボードの場合、小さな書き込みは通りますが大きな書き込み(読み込み?)が暴走です。インストールすら走れません。 内蔵IDEにふるーいHDDをつなげて(中身は空)も同様でした。
それどころかSMITボードでは破壊がブートセクタにも及んでいました。
当然ですが壁こえSCSIやLBAパッチなどは適用していません。 IO63Cを叩いてバンクをIDEに切り替えても動作はかわりませんでした。
ちょっとまじめに調べたくなりましたのでXfも出してきます。
|
IDE BIOSを出すだけ出すだけでは不可? かかっくん 2024年4月1日(月) 19:57 |
3月号の最後の【プライマリの19をPDしてIDE BIOSを出すだけ出す】だけでは駄目デスかねぇ? 用が有るのはBIOSでわなくITFに依る初期化だけデスし
|
XaとXfでのみの調査です リウ 2024年4月1日(月) 22:17 |
IDEデバイスの有無はこの環境では有意な差はありませんでしたのでXsでの話とは変わりますが、調べたことをとりあえず報告します。 まず両機種ともi430NXやi430LXとPC-98でもかなり特異なチップセットの所持機種です。もっと言えばPCI初搭載の機種群です。 PCIのSCSIはBIOS動作上のMS-DOSでおかしな動きはしていないように見えます。Windows95のインストールもすんなり行えました。
が、CBUSのSCSIはBIOS動作すらおかしいです。試したものはFIFOな92ボード(およびDMAモード)、SMITなLHA-301、PIOな100ボード、バスマスタなSC-98IIです。 他の機種で準備をした外付けHDDをそれにつなぐとDOSの起動まではすんなり進みますが、何かのファイル(数十kbオーダー)を書き込むとパーティションごと破壊します。(OSが指定しているものと違うアドレスに書き込んでいるはずです。)とっても危険です。この破壊の度に別機種でまた準備をする必要がありました。 100ボードだけはASPIドライバを組み込まずBIOSの動作だけならここまでの危険はないようですが、ASPIドライバを組み込んだり、Windows95をドライバで動作させると同様にファイル破壊です。 CPUキャッシュも切ってみましたが有意な差はありませんでしたのでバンク切り替えに伴う何か というわけでもなさそうです。 リアルモードで実行していますのでVDSに伴うものでもなさそうです。 BIOSルーチン内でout 5fhを使わないとても古い時間待ちが原因というつまらない可能性もあります。 不思議ですが手元ではこのようになっています。 CBUSの結線を調べるべきでしょうか?まさか16Mではなく1M以下にしかアドレスが出ていないとか?
|
Cバスかごの緩みとか断線とか まりも 2024年4月1日(月) 22:53 |
92ボードはPCIあるいはPentium機では動作しにくいと思いますが、100ボードやSMITは普通に動きますから変ですよね。とくにDMA転送を一切使わず安定度では鉄壁の100ボードが動かないというのはあり得ないです。 >16Mではなく1M以下にしかアドレスが出ていないとか? その場合はHIMEM.SYS, DOS=high (HMA)を使わなければBIOSでDOSは動作すると思います。
問題のXa初代はSCSI以外のCバスボードは動作したことがありますでしょうか?PC34 メモリボードでもいいでしょう(ESC+HELP+5押し起動が要るかも)。 Cバスボードの動作全滅ということなら本体故障、とくにCバスブリッジからCバススロットまでの経路の問題でしょう。なおCバスブリッジそのものが故障だと、まともに起動すらしないと思います。
そういえば初代Xaは黒い4級塩コンデンサが使われているものがあるのですよね。
>19をPDしてIDE BIOSを出すだけ BIOSは出現しますが、BIOSを出す以上はハードディスクは存在していると仮定した作りになっていると、デバイススキャンで異様に待たされるか無限ループに入るかになってしまう可能性があります(機種による)。ATA66の40芯ケーブルだけをぶら下げた場合も同じです。
|
SCSI関係はケーブルの規格や長さ、ターミネータの規格などがいろいろありますから、SC-UPCIで使っていたものが100ボードで合うかどうかという問題もあるかもしれません。
> XaとXf の場合は、元々HDDを搭載しないFDD1基のみのフレームモデルがありますから、HDDを取り外してもひと通りの動作はサポートされているのではないかと思います。これに対してXs/Xp/Xn(Xeも)はWindowsをHDDに標準搭載したモデルしか無かったと思います。
|
続けます。 XaでSCSIボードを挿していた場所にPC34の2Mのものを挿しました。プロテクトメモリモードで、800000h指定です。 メモリのカウントが7.6MBまでとそれ以降で目に見えて早さが変わります。 フロッピーからDOS起動 HIMEM(testmem:on)や LEMMは10Mbyteのメモリを確保してくれました。 動いているように見えます。
で、調査を続けるとどうやらDOS=LOWの状態ではCBUSメモリがきちんと使えていないことがわかりました。 A20をつなげた瞬間にデバッガからCBUSの上位メモリにアクセスできました。
DOS=HIGHの状態で昨日のテストを続けてみました。 100ボードをASPIで使用したところファイルコピーでパーティションはしっかり破壊されました。 原因ではなかったようです。
|
EMSで まりも 2024年4月2日(火) 10:52 |
>DOS=LOWの状態ではCBUSメモリがきちんと使えていない これはプロテクトモード用メモリとして使っているからそうなるので、EMS専用の設定ではどうでしょう?
Xfもあるようですから、そちらでも再現されれば初代Xa,Xf特有の[大]問題、そうでなければXaが不良の個体ということになるので、ぜひXfでも試みてください。しかしCバスに入れたモノが全然使えなかったなんていう話はこれまで耳にしたことはないし、タワーのXtに至ってはバリバリにCバスのボードを増設している人たちがいたので、設計上の問題ではないと思うのですよね。
>元々HDDを搭載しないFDD1基のみのフレームモデルがあります 基本的にそうであるしそもそもIDEデバイスが存在しなければIDE BIOSは引っ込む仕様ですから、SCSIが関連するはずはないと思うわけです。Xp,Xs,XeでもD8000hの裏にPnP BIOSがあるとはいえ通常はIDE BIOSが引っ込んで何も無い状態になります。
|
細切れで連続報告になります リウ 2024年4月2日(火) 13:08 |
ここから先は研究発表掲示板に移ります。ちょっと同じ話がふくらみ過ぎました。
|
初代A-mate の設定記憶機構【新知見?】 まりも 2024年4月9日(火) 11:50 |
ソフトウェアDIPスイッチなどの設定記憶は、初代A-mateだけ(もしかすると初代9821や98GSも?)は、他の機種群と大きく異なっています。Undoc2でも初代A-mateのこれは情報が全くありません。
このたび「システムセットアップメニュー」の[入出力の設定]→[ディスク接続ユニットの使用]のところを流用したいと考えて、いろいろ調べてみました。なおこの設定で「使用する」にしてもSASI用のBIOSが現れやすくなるだけで、その他には影響はないようなので、 EXIDE**で流用することにしています。
基本的には3つ、実質的には2つのI/O(すべてバイト)で制御します。 0468h データ入出力用 046Ch ページ?レジスタ?用で、write only 046Ah 用途不明、固定値しか書かれないようなのでITFで1度設定されていればいじる必要なし、write only
このうち046Ch に書かれる値は ほとんどの場合 02h, なにかのときに 1Fh、希に03hといったところです。システムセットアップメニュー関連はどうやら 02h を出力すればよいようです。20h以上は同じ値の繰り返しが得られることから、上位3bitはデコードされていないようです。つまり00h..1Fh のしかも一部しか使っていません。
次に0468h からの読み出しですが、これはin 命令を実行した回数で変わるようです。情報のページ替えのようです。1回から最大5回までの連続読み込みを行うルーチンがITF後半にありました。なお初代A-mateではシステムセットアップメニューの入り口はROM吸い出しデータの BANK3.BIN ではなく BANK4.BIN の後部にあるようです。
画像のような5回読み出しのコードを実行すると、システムセットアップメニューの主に4ページ目にある設定値の変更に連動して値が変化しました。そこから必要なものを特定できました。例えばサウンドBIOSの出現有無は bit 0、ディスク接続ユニット使用可否は bit 2でした。書き込みについては一筋縄では行かないようです。適当に変更すると、再起動時に "SET THE SOFTWARE DIP SWITCH"のエラーが出てしまうことから、なんらかのチェック機構があるものと思います。
ちなみこれはITFの解読だけで判明したのではなく、PIOボードでI/O 046Ch に出力される値を調べることもヒントになりました。システムセットアップメニューの各項目をいじると、一度 1Fh が出力されて 02h が出力されるというような動きが判ったのは大きかったです。
それからBANK3.BINを覗いてみたところ、先日おふがおさんがPC-98GS謎ESで報告したような SCSI の全リソース設定が可能なメニュー文字列(画像2)が入っていました。機能的に殺されているだけのか、本当に殺されて残骸だけなのかわかりませんが、なんか残っていると調べてみたくなりますよね。【追記】BX初代のBANK3にも入っていたので、ただの残骸に一票
|
ふとTriton機のP55C まりも 2024年4月18日(木) 14:35 |
DISK BIOSのseekコマンドは実装必要かな(ボソ HDB98 -V オプションでは使用、フォーマット高速化ACCFMT98ではそれをパスしていたりします。というかフォーマッタが使用しているはずなので、seekできないようなディスク不良を見逃すことになります。【18時追記】うーんでも今時CFやSSD使用者が大半だろうから要らないかも?デバイスはファームウェアのレベルで無条件にseekは成功と返すはずですよね。【22時訂正】HDB98でseekは使っていますが、ACCFMT98ではスルーにもしてませんでした。verifyのスルーだけでした。
ところで430FXなV7-V二桁機(ROMのシールがVER01F)にP55Cを載せるとIDE BIOSが見えなくなってニッチもサッチも行かなくなることは知られていますが、起動のどの段階からそうなるのですかね。ブートROMアプリで対策できるか調べてみようかと思います。FD起動まで行けるならFD-IPLwareもアリでしょう。
|
430FXなV1/2桁にMMXの場合 KAZZEZ 2024年4月18日(木) 18:21 |
以前G8VERで試したときは、山猫ほどは深刻な不具合でもなかった印象です。 問題になるのはオンボードIDEから起動するときであって、FD起動は普通にできたと思いますし、起動後であればIDE-HDDにも普通にアクセス出来たと思いました。対策内容の詳細は理解していませんが、FD-IPLWAREは普通に使えるんじゃないかと思います。分岐予測を切るだけでしたら拙作のツールもそのまま使えるかもしれません。
|
軽症か重症かわかりません まりも 2024年4月19日(金) 1:01 |
V7-V二桁の方がIDEで起動できないのだから重症では?と思っていましたが、確かにKAZZEZさんのおっしゃるように、山猫より酷くない点がありますね。まずFD起動はできてIDEドライブもBIOSも見えます。PCIセットアップユーティリティも実行できます。
ブート装置を標準にして、OS-FDIPLware(アプリなし)のFDで起動して、ブート選択メニューが出た時、1を押してIDEのディスクのIPLと起動メニューが起動でき、そのIDEドライブのDOSも起動できてしまいました。あっさりアプリなしのFD-IPLwareやOS-FDIPLwareで行けるじゃないですか。なのにIDE のディスクドライブからのIPLブートだけができないのです。ちゃんと解決しようとするとやはりブート介入しかない感じですが、実質的解決はFD-IPLwareなどでいいということになりそうです。
ところがこれで一件落着ではありませんでした。どこから起動したかによらずEMM386を入れるとDOSの起動が止まってしまいます。これは知られている事象です。
IPLwareが面倒とかIDEから自動起動でないとダメという人にはブート介入アプリしかないでしょうが、実質的にはOS-FDIPLwareまたはFD-IPLwareにBIOSパッチアプリで行けそうですね。ただ、Intel MMX ODP付属の正規の書き換えでは、システムBIOSへのパッチだけでなくPCI BIOSへのパッチも行っています。IPLwareでもブート介入アプリでも、この部分はRAMではないため対処できません。ここを除外した場合(P55CSUP2と同じ手法になる)、どれだけ安定動作するのかが鍵です。
現時点でKAZZEZさんの予測分岐無効アプリをFD-IPLwareに入れ、その実行の後に好きなブートデバイスからOSを起動という策があります。それ以上のことをしなくてもいいような気がしてきました。
【12時半追記】P55CSUP2と同程度の処理に加えて、本家でIDE BIOSにも行われてたパッチ(量が多い)を実施するIPLwareを作って、OSFDIPLwareで起動してみました。いったんFDを経由したIDEのHDDからの起動です。EMM386もハングアップしなくなりました。PCI/PnP BIOSはそのままですが、SCSIは100ボードを使っても問題なく動作し、PCIセットアップユーティリティも実行できるので、これだけでもかなり行けそうな気はします。
EMM386はCPUの予測分岐やBIOSバンク切り替えとどう関係しているのか、今ひとつ理解できていません。
|
V7-V二桁Triton機のMMX化の結論 まりも 2024年4月19日(金) 13:17 |
最後の手段、ブートに介入してsystem BIOSとIDE BIOSにパッチを当てるROMアプリを実行しましたが、IDEからのHDDが起動できるようにはなりませんでした。ディスクブートのどこかで固まることには変わりありません。どうも、本来は大量に変更箇所のあるPCI BIOSも面倒みないとダメなようです。
ということで、次の3つのいずれかしかないでしょう。 (1) KAZZEZさんの予測分岐無効アプリをFD-IPLwareに入れてからIDEの起動(その後有効にすべき) (2)中途半端にRAMなBIOSだけパッチ当てるアプリをFD-IPLwareに入れてからIDE起動(公開する気萎え) (3)正規Intel製品を入手してROM書き換え
なお(3)ではITFには変更箇所はないと思います。バージョン表記が変わり、そのためチェックサムも連動して変えてあるだけです。
|
手元での結果です リウ 2024年4月19日(金) 14:21 |
元々MMXが搭載されていない機種にMMXODP166を載せたときの動作です。 Cx13 IDEからブート可能(謎?PCI不要のため?) Xb10 IDEからブート不可 フロッピーからブートしてIDEの中身にアクセス可(OSFDIPLwareの後HDDメニューへも移行可) EMM386で暴走 Xb10(MMXBIOSアップデート済み) IDEからブート可
でした。2台のXb10のBIOS比較をするとIO63Chの処理の後にごちゃごちゃ飛んだり戻ったりを繰り返すルーチンがbank7やbank3に少し追加されているようでした。bank0のPCIBIOSにも少し手が入っているようです。
追記14:45 V166のIDEBIOSはD800:3C00からにコードがいます。 はっきり書くとDB00セグメントのRAMの中にコードがあります。 ということでV166で壁ごえSCSIをCBUSボードで行う場合、危険であることがほぼ確定しました。注意書きとしてここに書きます。100ボードやPCISCSIボードではそこを触りませんが SMIT板などではBIOS裏コードをDB00にコピーすることになってますので危険極まりないです。
|
IDE BIOSのおまけ まりも 2024年4月19日(金) 21:57 |
>d800:3C00からのコード これはBANK 0の3C00 からのデータがコピーされた物(おそらくPCI機の全てに同様のコードがある)でした。PCI BIOSの一部をRAMにして速度を稼ごうというものでしょうか。BANK3は既に一杯だし、D800:1C00以降はIDE BIOSのコードですらない何かが入っていますよね(第4世代)。このブロックにあるものが何なのか、検討したことがありません。
|
お題2件 まりも 2024年4月21日(日) 15:42 |
上で書いた V7ー二桁 430FX機のP55C問題ですが、PCI BIOSのブート動作で飛び込む先に、SYSTEM BIOSのF560:セグメントがあります。なのでSYSTEM BIOSをRAM上で安易に書き換えると、ジャンプ先がズレてしまいます。PCI BIOS のROMも一体で書き換えない限り、P55Cを正常に動作させることはできないとわかりました。これを何とかするのは大変なわりに需要はない気がします。普通CPU upgradeはK6-2/Vですよね。
もう一件 98オンボードIDEの置き換えに最適といえるKIOXIAのSATA SSDですが、SiliconImage 3114 SATA アダプタを大熊猫BIOSで使おうとすると、初期化ルーチンが2度呼ばれてしまってハングアップになります。このようなことは他のSATAドライブでは経験ありません。記憶しぃゃはいったい何が違うのか...
|
KIOXIAなSSD+Si3124 リウ 2024年4月21日(日) 20:10 |
うちのRvIIのもので試したところあっさり起動メニューにたどりついてしましました。2度実行は発生しませんでした。(忘れてました、これは365MBに縮めています。)
>D800:3C00のもの これもROMバンク切り替え後に実行する部分のようです。とはいえOS実行中は呼ばれていなそう?な気配でした。
ハイレゾ時のEX系ハイパーメモリについて ハイレゾ時だけHIMEM.SYSがCPU SHUTDOWNをやっている気配がありました。 ひどいです。
追記24日(21:52) HIMEMX.EXEというものは試してみたのですがCPUSHUTDOWNはしないものの何か変な挙動をしているようです。(ソースも見たのですが原因はわかりません。ハイレゾ非対応ながら無理くり動いているだけ?)Windows3.1も残念ながら起動できませんでした。 その他ハイレゾ対応のメモリマネージャの存在を知らないので以前教えていただいたEMM.SYSとリネームする方法もやってみるべきですが、まだやっておりません。 さらに追記(23:05) out 91 8 out 93 aとメモリコピーをするものを作って それを使った状態でHIMEMX.EXEを使うとあっさりWindows3.1がスタンダードモードもエンハンスドモードも起動できました。 ということでHIMEMXのソースにこのコードを仕込むだけでハイレゾ対応になりそうです。ありがとうございます。
|
HIMEM.SYS以外は? かかっくん 2024年4月24日(水) 21:45 |
HIMEM.SYS以外でわド〜でせう? 窓9xでもない限りHIMEM.SYSにこだわる理由は有馬せんから 他のXMMで正常なら其れでも良いのでわ? # HRとノーマル用XMMなら91,8 93,Aをお忘れなく
|
91,8 93,Aの意味 かかっくん 2024年4月24日(水) 23:13 |
前にも書き増したが、DOS起動前に out 91h,8 out 93h,0Ah をしてからDOSを起動して、ノーマル専用EMM兼XMMをページフレームのセグメントを指定して遣うと云う 方法デス VEM486もLEMMも動いた気がし枡 <del>あとCONFIG.SYSにDEVICE=EMSDRIVE.SYSが要るやうな?</del> XMMだけには不要
問題点はHSBの件だった気が?
バンクのコPYは色々と問題が有ったりし枡 ・バッファを何処にするか? ・バッファの位置を決め打ちの場合、既に使用して居たら? ・バッファ不使用(8に8、Aに10hを出しA→8、8に12h、Aに0Ahを出し8→A)の場合、コPYのルーチンがバンクを 跨いだら? ・其処で編み出したのがDOS起動前に8とAにして仕舞うチート、HSBとの相性最悪
とか色々考え増したが、<del>能く考えたら有効にしたばかりのHMAに コPYのルーチンを置けば解決デスね 1年以上ド〜して憶い付かなかったンだらぅ?</del> 然うだ此れは却下だった、此の最中はHMAは禁止ですた。 HMAの空間を空ける為の作業だから 矢っ張りVRAMの非表示部でも遣うしか 因みに<del>キチンとA20をマスクに戻せば</del>XMMの怪造は不要で、 独立したDRVに出来枡。<del>HIMEMXもVEM486もLEMMも386+用ナノで 此れもout 0F6hで良いでせう # XLだけはHIMEM.SYSかXMZ286を遣ってネと云う事で。XAには無用デスし</del> まったくまったく、XL以降もXAのやうに最上位から2バンクか、素直に8とAを 割り当てる仕様だったら此んな苦労は無かったのデスが!
|
ハイレゾの奥義 まりも 2024年4月24日(水) 23:29 |
まあハイレゾの元仕様のメモリマップにきっちり対応しているのは本家のHIMEM.SYSとメルコのMELEMMくらいなのかなと思います。ちゃんと8,9,A,Bバンクの内容をコピーしてから開始します。ハイレゾ時のHSBはwrite back cacheの動作が怪しいです。Cyrix486DRのキャッシュドライバなんかハイレゾでちゃんと動くのでしょうかね? そのくらいハイレゾはマイナーな存在です。
ところで98ハイレゾ画面がきっちり映らないディスプレイは多いしキャプチャ機器でも対応は少ないと思います。tgnowのハイレゾ版を作った方がいいですかね?映らなくても取り込んでBMP画像化できるメリットがあります。ですがハイレゾの全角フォントは実は24ドット縦横ではないというあたりが面倒そうです。フォントデータの外側に隙間があるんですよね。横1120dot/40 charですから、テキスト全角一文字あたり28ドットなのです。それとテキスト30行モードの存在です。どちらかというと30行モードの方がテキストの行間が無くなるので簡単です。25行だと28ドットではなく30dot*25にしないとテキストと重なりません。罫線などはみっともないことになります。
|
バンク切り替え リウ 2024年4月26日(金) 0:11 |
HIMEMXの改造には成功しましたのでそのご報告を
DOSのCONFIG.SYSロード中に8バンク(より後ろ?)はスタックセグメントとして絶賛使用中で切り替えると大暴走です。ですので切り替え直前にスタック領域をロードされたファイルの中に作った状態でバンクを切り替えます。 8バンクをAに設定し、A(12h想定)から128kBを8にコピー 8バンクを8に設定し、Aバンクを10h(決め付け)に設定し128kBコピー AバンクをAに切り替え、スタックを元に戻し、通常のXMSドライバの仕事を行う (XAでは切り替え場所を最上位にして0:401を2つ下げれば動くと思います。) 決め打ち部分がありますがVRAMや未使用メモリを探さなくてもなんとかなりました。
これでドライバとして動いてWIndows3.1がエンハンスドモードで動きました。(しかしスタンダードモードがメモリ容量判断でこけます。IntDCを疑っています。) 注意事項としてハイレゾのInt1Fh、AH=90hはみごとにCPUSHUTDOWNを行っていました。製作途中はこのファンクションでメモリコピーを行っていたのですが全くうまくいきませんでした。本家HIMEM.SYSはおそらくこのファンクションを使っているのでハイパーメモリCPUの設定が吹き飛ぶのだと思います。 次はこのファンクションのフックとIntDCの一部もフックしてみようと思います。
>ハイレゾ用キャッシュドライバ EXCACHE.EXEも実行すると暴走する気配があります。デバイスドライバで動かすと問題なく走るのですが。 >ハイレゾ用TGNOW 画像1枚あたりの容量がとんでもなく大きくなる気がしました。そのためにもXMSドライバの改造は早めに終わっておきたく思います。
22:15追記 作りました。 ttps://drive.google.com/file/d/1cDIsT4UQIVwiuVd-PswBM2a1oi-pbaFC/view?usp=drive_link 手元のAs実機では動作確認とれていますがPC-H98で使えるかの信用がありません。
|
ハイレゾでキャッシュ不可にすべきメモリエリア まりも 2024年4月26日(金) 21:09 |
>EXCACHE.EXEも実行すると暴走、デバドラならOK これはCPUがHAS-33QPでも起こりますから、もう「仕様」なんじゃないでしょうかね。 AMD 5x86はキャッシュ可否アドレス域をソフトで設定できるような仕組みがないようなので、ハイレゾかどうかは関係ない気がします。
いっぽうCyrix486DR(x2)はCCRというレジスタがあるらしいですが、そのアドレスをどう設定するかとなると、ハイレゾかどうかで違ってきます。98ハイレゾの仕様とされた、1MB以上のところを08-0Bバンクに投影するという方式を使う以上は、キャッシュ不可にするしかないように思います。特に10-12バンクはHIMEM.SYSがインストールされる前はキャッシュ不可にしないといけないでしょう。
A-mateのハイレゾではおそらくメモリウィンドウを切り替えるI/Oと同時にキャッシュを無効にする信号が486 CPUに出されるのだろうと思います。10-12バンクは常にキャッシュ可能な状態です。386にはそのようなハードウェアがないので、Cyrixの486DR直載せの場合(性能を上げたければ)CCRの設定は必要ですが、ドライバソフト類はちゃんとハイレゾに対応しているのかという疑問を持っています。外部回路のあるCPUアクセラレータ(RL用)ならそこは大丈夫かもしれませんが、所有したことがなく不明です。
いずれにしても最近は286,386のCPUアクセラレータ類は外国バイヤー勢がすごい価格でさらっていってしまうので手が出ません。
|
/人'A`;人\ 2024年4月27日(土) 4:16 |
>Cyrixの486DR直載せの場合(性能を上げたければ)CCRの設定 例の黄色い本に記事がありますが持っていない人は下を望月でサーチして下さい。 ttps://98epjunk.shakunage.net/miscel/pc98_tips.html 元記事にはAT互換機でのやり方も書かれていました。
|
XLでわ出ないらιぃ? かかっくん 2024年4月28日(日) 3:41 |
> 8バンクをAに設定し、A(12h想定)から128kBを8にコピー
此れデスが、Undoc2に由るとXLでわ8にA、Aに8は出ないっぽいンデス。其れであんな面倒なマッピングをしますた。 8かAにスタックが有るなら此れも一旦VRAMに設定でせう
ところでPMを直接遣う場合、10hと12hを遺しておく必要が有馬すからRAMサイズ768K・XMM無しでの 0:401hの最低値は2と云う事なんデスかねぇ?
|
小さいメモリ確保して細切れコピーですかね… リウ 2024年4月28日(日) 7:04 |
undocを読み直してびっくりしました。 このルーチンでは確かにうまく行きませんね XA特有の実メモリなしでも動かせる、と思ったのですが甘かったです。xmzのソースも参考にしようと思います。 直後に追記 思いつきました。XA用のルーチンを実行した後、そこをコピー元にしてさらに8 Aにコピーすれば行ける気がします。 (下のレス時間に追記) 改版しておきました。
XLについて、386機と思いこんでいましたが16bit機ではないですか! XLダブルと同じだと勘違いしていました。 286機は面倒ですね、考えるのは楽しいのですが そういえば起動時点では必ず空いている64kBとして裏EMSバッファもありますがハイレゾの時はどこにマッピングされてるのか気にしたことがありませんでした。
|
ハイレゾHDMI出力 リウ 2024年4月29日(月) 23:14 |
ハイレゾ機ばかり触っていますが、HDMI変換した際にもきっちり映るようなプログラムを作りました。うちではうまく映っているようです。 お高い取り込み機があればこんなものは不要ですがせっかく作りましたので公開します。 とはいえ手持ちのAs+ハイレゾボードでしか確認が取れてはいません。 drive.google.com/file/d/18bmn4PYTOtsU92bVcw_7bQSHuZ_FB8a6/view?usp=drive_link
|
結構長ィ かかっくん 2024年4月29日(月) 23:25 |
可也長く成って仕舞った HIMEMXやFDXMSは兎も角、他ののパッチには向かない長さナノで単体で創って下ちい ファイル名はHMA.SYSとかデスかねぇ? VRAMのDFFC0h近辺を遣って居枡。場合に依ってはノイズ状に映る鴨?
jmp next
copy: mov al,8 out 91h,al mov al,10h out 93h,al mov dx,0A000h mov bx,8000h xor si,si mov di,si mov cx,2
@a: push cx mov cx,8000h mov ds,dx mov es,bx rep movsw
add dh,10h add bh,10h mov ch,80h rep movsw
mov al,12h out 91h,al mov al,0Ah out 93h,al mov dh,80h mov bh,0A0h pop cx loop @a retf
next: cli mov dx,0CFFCh mov ds,dx mov di,0FFFEh mov [di],ss mov [di-2],sp sub di,4 mov ss,dx mov sp,di
mov ax,cs mov ds,ax mov si,copy mov dx,0DFFCh mov es,dx xor di,di mov cx,20h rep movsw call 0DFFCh:0
mov dx,0CFFCh mov ds,dx mov di,0FFFEh mov ss,[di] mov sp,[di-2] sti
因みにXMZ 1.02でわバッファを4000h:0〜7FFFFh決め打ちにして居ます。256K以上RAMを埋めてから 実験すると(略) デモ、バッファを採ったところで余り短く成らないのでバッファレスも選択肢の一つかと
|
|
|