98システム解析スレッド2023年1月-1 /人'A`;人\ 2023年1月1日(日) 6:06 |
98フォーマッタのPBRやFAT くりすと 2023年1月4日(水) 14:51 |
例のFC1307A絡みで色々と気になったことです。 全体通じてここに書いていないフォーマッタは調べていません。
PBRのシグニチャ (1)NEC製MS-DOS 6.20のFORMAT.EXE Ver.6.00で領域確保をするとPBRのシグニチャは(0x00,0x00のため)登録されていませんでした。
(2)FDSK98 V0.92で領域確保時にFAT16を指定するとPBRのシグニチャは(0xAA55で)登録されていました。(期待通りです。)
(3)FORMATX V2.15でその領域を再フォーマットするとPBRの0x5Bから0xE5埋めはともかく、シグニチャが(0xE5AAなので)変でした。
98側ではシグニチャの有無は無関係のようなので問題ないと言えばないのですが…
FAT 0クラスタ目 上記3つのフォーマッタでフォーマットすると、FATのオフセット 0から 0xFE, 0xFF, 0xFF, 0xFFとなっています。SDフォーマッタでは 0xF8, 0xFF, 0xFF, 0xFFとなっています。このオフセット0の違いは何かあるのでしょうか。(0xF8〜0xFFならOKとあるのですが。)
[21:00 追記] Xv/WのリカバリをしたFAT16のPBRには正しくシグニチャが登録されていました。Win95のFORMAT.COMかFDISK.EXEからは登録しているようです。
|
PCでは<del>512B/sでFAT16の</del>HDDはF8hが正解 かかっくん 2023年1月4日(水) 23:45 |
512B/sでFAT16のHDDではF8hが正解です。 # ↑はPCの場合 PBRに有るBPBのオフセット15hの値と同じです。 <del>FAT12ではFEhの事もあります</del>←此んな条件は無し。98ではFEh、PCではF8h
|
windows2000でUSBメモリ リウ 2023年1月5日(木) 23:28 |
自前emulatorをちまちま弄ってWindwos2000でもUSBメモリが使えるようになったところです。 Windows2000で全セクタ0埋めのUSBメモリを初期化したらPC-98型IPLを書き込まれました。(HS設定値はWindows標準の255:63です。) 通常の操作でこんなことはやらないと思いますが、USBメモリを0埋めしてからいきなりPC-98に持っていくと面倒なことが起こりそうです。 注意喚起?
14日追記 ちょうど良いのでメディアディスクリプタを確認しました。リムーバブル扱いで初期化されたためかF8が入っていました。DOS6のscandiskを通すとエラー報告でメディアディスクリプタがFEに書き換えられました。(そしてFATのバックアップもおかしいと指摘されて修正されたようです。)
|
新年の豊富 まりも 2023年1月10日(火) 0:11 |
>FATのオフセット 0 これは名称としては「メディアディスクリプタ」でよかったでしたっけね。フロッピーだとフォーマットごとに異なるやつです。F8とFEは空いていた?のでHDDで使うことになったのかと思いますが、普通にフォーマットするとFEですよね。FAT 16<512MB ではF8なんですか。フォーマッタによって同じかどうか調べないと。シグナチャの方はformatxのはおかしいので直すべき宿題が増えました。 <追記>SCANDISKが使っている用語では「メディアID」というらしい
ところでPC34 EMSボードを使ったテキスト画面キャプチャシステムを作りました。 ttp://hp.vector.co.jp/authors/VA012947/knowhow/txtcpy34.html メモリチェック終了くらいの画面からキーボード割り込みが効くのでキャプチャできます。SCSIボードのメニューもIPLwareアプリもキャプチャできます。EMSボードにデータを積み上げて行き(最大20画面)、後でプレビューしたりグラフィックVRAMに転送してからBMPファイル化できます。これで98映像信号のHDMI変換器を導入する必要もなくなりました。グラフィック画面のキャプチャができるバージョンも作れそうです。採絵ちゃんもどき?<1月20日追記>サムチェックする機能を追加しました。データが化ている時は警告音を出すようになります。
それから昨年末間際に作ったIFN-SCボードアップデータへのパッチプログラムですが、DIV0ROMも同居させました。空きが少なくて厳しかったですが何とかなりました。ただし486以上専用になってしまいます。これで三階級特進で、完全にIFC-NNを超えました(笑 NNの方は空きがもっと少ないし、サムチェック機構がよくわかっていないので手を出しようがありません。誰か調べませんかね。
|
FAT12 HDDのFEhは2HD/8のIDと同じ かかっくん 2023年1月10日(火) 0:22 |
> これは名称としては「メディアディスクリプタ」でよかったでしたっけね。フロッピーだとフォーマットごとに異なるやつです。F8とFEは空いていた?のでHDDで使うことになったのかと思いますが、普通にフォーマットするとFEですよね。FAT 16<512MB ではF8なんですか。フォーマッタによって同じかどうか調べないと。シグナチャの方はformatxのはおかしいので直すべき宿題が増えました。
確かFATの+0の方がBPBの+15hより前から有ったやうな? FEhは我らが(?)2HD/8のIDと同じですね # 8インチ1Sや1D/8(160KiB、此の頃は40シリンダ(40トラック))とも同じ 他にも2DD/9と2HCがF9hである等、此のIDはメディアやフォーマット毎にユニークではなくダブりが有ります。 # ゐゃメディアが違ったらダブってもメディア毎にはフォーマットが違ったらダブらないか
|
FAT先頭メディアディスクリプタ まりも 2023年1月13日(金) 0:55 |
これなんですが、基本的にハードディスクのフォーマッタでF8を埋め込むものは存在しないですよね。だからFEでいいのだと思います。「 512MB未満ではF8」とするものは見つかりませんでした。
F8にする(しないといけない)のは、もしかして「リムーバブル形式のフォーマット」の場合ではないでしょうかね。本来ならスーパーフロッピーフォーマットですが、PC/AT(というかWindows)の場合は、先頭セクタにBPBもパーティションテーブルもあるようなのが許容されている感じです(以前ここで書いたと思います)。 メディアディスクリプタがきちんと意味を持たせられているFDはリムーバブル媒体ですので、基本、大きなFD扱いのものはF8なのではないかと。ということで、ハードディスクのフォーマッタはFEでよくて、SDのフォーマッタではリムーバブルを意識してF8にしているのではないかと思います。となると複数パーティションの存在は論外ということになりますね。
98のハードディスクではFAT先頭メディアディスクリプタバイトをF8にしても各OS・ディスクドライバは大丈夫なんですかね?であればF8に変更するとか、FORMATXのオプションでそうするなどの対応はできますが、何かの拍子にFEに戻されたり、認識失敗しないかという心配はあります。例えばSCANDISの実行とか、NTや2000のディスク管理実行とかですね。興味ある方はテストしてみてください(わたしは今週から来週はちょっと時間が取れません)。
|
PCの【固定】ディスクはF8h かかっくん 2023年1月13日(金) 2:08 |
PCではFAT12でもFAT16/BでもF8hのやうです。逆にFEhに成る条件が無さそうです。 多分FAT16XやFAT32/XでもF8hな気がします 98ではFAT16の512MiB超でもFEhでしたから、定義自体をカン違いして居たやうです 【HDDはF8h】でわなく正しくは【F8hはHDD】と云う事ですね # ことPCに限ってはF8h=HDD, HDD=F8h...としたい処だが3.5MO以外のSFDもF8h?
と云うワケでFORMATXはFEhで良さそうですがCONV98AT/PC98CNVの方ガー
|
確認できたメディアディスクリプタ くりすと 2023年1月14日(土) 13:06 |
513MBのHDDを作って128MBの領域を4つ作ってみてみました。 FEhなフォーマット MS-DOS 3.30B(FORMAT.EXE) OS/2 Warp4(FDISK.EXE) DOS3互換の2Kセクタでした。
F8hなフォーマット Windows NT4 SP6a(ディスクアドミニストレータ) Windows 2000 SP4(ディスクの管理)
リウさんが試していたようにMS-DOS 6.20のSCANDISKで修復するとF8hがFEhに置き換えられるのでNT系でフォーマットしたあとにDOS6でSCANDISKすると確実に警告が出ます。 F8hのままでCHKDSKの場合はエラーにならず修復されませんでした。(DOS3,DOS6とも)
あとWin95bとWin98で調べたいけど今動作環境がなくて確認できません。(他力本願)
[20:30 追記] Win95aでAHA-2940UWを認識させることができたので確認しました。 FORMAT.COMはFEhでフォーマットしますが、F8hに書き換えた後DOSコマンドおよびWindows用SCANDISKからはメディアディスクリプタの警告も出ずに正常終了しました。
|
F8対FEの縄張り争い まりも 2023年1月14日(土) 13:37 |
えー 98でもNT系のディスク管理で新規にフォーマットするとF8でしたか。それは知りませんでした。Windows2000なんかは移植不完全でATな部分がちらほら残っているわけですが(と昔書いたら怒られたことがある)、逆にDOS6のscandiskはきっちり98用に移植してある感じですね。DOS6当時のMicrosoftアプリは結構98を知り尽くしたつくりです。MSD.EXEなんかはH98のNESAまで把握しています。
PC/AT上でもF8かFEかを問われることはほとんどないと思います。問題のSDカードアダプタくらいでしょう。CONV98ATとしては、移行時にF8にするかどうかのオプションをつけるくらいでしょうか。ただし領域が1個の場合に限ることにします。あとは98に持ってきたときにDOSのscandisk の警告はあらかじめ知っておくということで。/R オプションをつけたときだけFEに戻すくらいはできます。
ただし現状のCONV98ATでやっているのはパーティションテーブルの操作だけで、パーティションのFATの構造までは見ていません。それを追加するとなると結構な大工事になります。
|
FORMATX修正 2.16 まりも 2023年1月17日(火) 11:30 |
上でご指摘のあった、PBRのセクタ末尾シグナチャ(55h,AAh)がAAhしか書き込まれないバグを修正しました。まあ98では全く参照されない物なので、長いこと気がつきませんでした。PBRにはBPBのほか仮のIPLも書かれますが(普通にはSYS転送してから使うので、ここでは書かなくてもいい)、そのcodeがひどく間違っていたのでそれもついでに修正しました。基本的にRETFで戻るだけのコードを書いてあったのですが、そこへのジャンプが間違っていたというやつです。
CONV98ATも提案のように機能追加してみていますが、もう少し動作検証なり、あったらいい機能を考えたい(受け付けたい)ので、未だ公開にしていません。パーティションテーブル編集型の他のプログラムと共用できるように、時間があれば1から作り直したいところです。CONV98ATはだいぶ昔に書いた別ものの流用のため、屋上屋を重ねる追加でひどくソースが汚いし、DMA転送するディスクインターフェイスではDMA境界エラーを起こしうる潜在的バグが実はあります。
|
機種依存部は各社で移植だった気が? かかっくん 2023年1月17日(火) 15:25 |
> えー 98でもNT系のディスク管理で新規にフォーマットするとF8でしたか。それは知りませんでした。Windows2000なんかは移植不完全でATな部分がちらほら残っているわけですが(と昔書いたら怒られたことがある)、逆にDOS6のscandiskはきっちり98用に移植してある感じですね。DOS6当時のMicrosoftアプリは結構98を知り尽くしたつくりです。MSD.EXEなんかはH98のNESAまで把握しています。
まぁDOSの機種依存部は各社が移植して居るらしいですし # 其の辺のイメージはCP/Mと粗同じ、但しMS-DOSは3ファイル全てに機種依存性有り M$のアプリとして比較するならWorksとかMultiplanとかを98版とPC版とで比較ですかねぇ? # Excelは初出が苹果なのでDOS版は無し、元からDOSでGUIを目指したWordとの違いは顕著 みいそDOSの(C)に有るNEC、えぷDOSのSEIKO EPSONはダテでわないのですねぇ 其の結果(?)SEDITのやうにM$から供給された物ではなく他社品を採用する事も有りますが。 # SEDITにはDOS5の初期に採用されたAhSKI!版と其の後採用の目がソフト版が有るのが有名 # えぷDOS6はM$のEDITを採用 対して窓(特にNT系)はM$メインの移植のやうですし 窓9xも、主にDOS周りにみいそ・えぷDOSとの違いが目立ちます
M$は窓NT3.1の頃から自社のメニューを作っておけばみいそ窓とえぷ窓で違った対応は要らなかった気がします # 98用の起動メニューを新たに作らずみいそメニューを『逆輸入』したり、えぷ窓95に至ってはえぷメニューを # FDISKに組み込みもせずFORMATHDを入れたり、etc... # と思った処、NTはみいそからも出て居たんですねぇ # NT3.1 PS98-5001-31/51/C1 # support.nec-lavie.jp/support/product/data/spec/sft/sw609-1.html # support.nec-lavie.jp/support/product/data/spec/sft/sw610-1.html # NT3.5 PS98-5001-32/C2 support.nec-lavie.jp/support/product/data/spec/sft/9412ntd-1.html # NT3.51 PS98-5001-33/C3 support.nec-lavie.jp/support/product/data/spec/sft/95110001-1.html # NT4 PS98-5001-C4 support.nec-lavie.jp/support/product/data/spec/sft/96110004-1.html radioc.web.fc2.com/column/pc98bas/pc98winver_en.htm
|
りくえすと? くりすと 2023年1月17日(火) 20:45 |
CONV98ATでSDカード互換?なMBR??にするときのオプション処理について可能であるならですが…
SDカードフォーマッタでフォーマットしたときのMBRにはCHSとLBA両方登録されています。8032MiB以上の場合のCHSの最終はFEh,FFh,FFhになりますが、開始は必ず相応のCHSが記録されています。8032MiB未満の場合はCHSの最終も相応のCHSが記録されます。この時のH:SはSDカードの総容量で決め打ちをしているようです。影響はないでしょうができれば合わせられたらと思います。(容量毎のテーブル持つのは面倒と思いますけど…。)
それぞれのH:Sについては、 qiita.com/mt08/items/c684d72345b591f4a27f ここの MBR: CHS and LBA を参考にしました。
|
scsi emulatorでデカいセクタの検証 リウ 2023年1月19日(木) 21:52 |
1024Byte/sや2048Byte/sも可能なので試してみました。 DOS6のformathd.exeでは256か512しか選べないことは過去ログを参照ください。 2048B/Sのディスクはint1Bのah=84h段階でBX=800hが帰るようにBIOSに設定されました。ここまではSCSI-BIOSはそれなりに仕事をしています。 win95のfdiskで領域を確保すると第二セクタ800hにパーティション情報が保管されました。がfotmat.comを使うためにリセットするとio.sys段階でフリーズです。 その状態でDOS6を起動するとドライブレターはもらえませんでした。 次に1024B/sで同じことをすると起動できましたがformat.comの最終段階でFATのエラーが発生して正常終了できません。領域情報だけ存在する状態でDOS6のformathdに見せると領域確保ができましたが、まともなFATとしては作られておらず?書き込みするたびにFAT破壊が起こりました。
FreeDOS(98)のbtnpart.exeで1024のものを初期化したものがFreeDOS(98)からだけは正常に使えているように見えます。2048はダメでしたが。 追記 ソースに中るとBX=200h固定でInt1Bhを呼んでいました。ということで見た目だけ動いてそうなだけでダメでした。
2048B/sなディスク(CD-Rを想定)をFATで初期化してDOSにドライブレターをもらって正常アクセスするのは一筋縄では行かなそうです。
追記2 2048B/SはDOS自体が拒否してるように過去ログ報告もありました。 さらに上記のこともほとんどくりすとさんの報告がすでにありました!!。 2番煎じで失礼しました。 IO.SYS自体にパッチが必要そうですからかなり相当無理をしないとダメな気配ですね…。
|
2048B/sが使えると くりすと 2023年1月20日(金) 0:19 |
CD-ROMもですが、どちらかと言えば640MB以上のMOがそのまま使えるかもと言う期待の方が湧いてきます。
|
APM-BIOS リウ 2023年1月21日(土) 0:03 |
PC/ATのAH=53hのInt15hがAH=9AhのInt1Fで実装されているようですが 参考文献ttps://sites.google.com/site/kajapon/cabinet/POWER.LZH?attredirects=0 この情報はどこかにあったのでしょうか? またIO0A0Ahで何かをやってはります。作者さまに問い合わせるほどでもないと思いつつ…何かを知っている人がいらっしゃると助かります。 FreeBSDのソースにも書かれていることを確認しました。
|
>2048B/SはDOS自体が拒否してるよう どのレベルで対応/非対応なのかですね。デバイスドライバ経由では、640MB MOのドライバが各社出ているわけですから、可能です。1024B/sのHDDのデバイスドライバも見たことがあります。それとNEC版DOSには「DOS論理セクタ長」という独自のものがあり、最大2048Bです。例のDBLTRANS対象の容量のフォーマットをするとできるやつです。
対応できないというか定義もされていないのが、MBR,パーティションテーブル, ブートメニューなど管理領域とブートプロセスでしょう。NECが結局作らなかったのですから、未定義です。当然対応するフォーマッタもありません。たぶん流れでセクタ長にかかわらず同じなのは、セクタ0がMBRでマスタIPL、セクタ1がパーティションテーブルだという点です。しかしパーティション何個まで有効かもわかっていません。16で制限していないと64まで可能になってしまい画面に表示しきれません。固定ディスク起動メニューはそもそも対応しないしセクタ2に記述される決まりも存在していません。これから勝手に決めてもいいと思います。
>AH=9AhのInt1Fで実装されている このAPIはUndocumented 9801/9821のVol. 1の書籍のほうに記述があります。ただし手順についてはあまり詳しく書かれていません。そういえばパワーオフのプログラムは何かの見よう見まねで書いたことがありますが、1996-97年頃にパソ通で知ったような気がします。H98のパワーオフも書かれていますが、APMとは全然別物です。
I/Oの0A08,0A09,0A0A の電源ボタンおよび電源管理の機能は本に書かれた物はないと思いますが、これも情報はフリーソフトのソースだったような。わたしはえらー15氏のプログラムで知りました。
ところでATX電源搭載機で、APM BIOSを使わずに、I/O操作でもって電源を落とす方法がわかりません。たぶん上記I/Oに複雑なお呪いをすればいいのだと思いますが、int 1Fhをトレースして方法を知ろうとしても、黄泉の国に行ってしまいます。
|
FreeDOS(98)には未だ延び代が有る かかっくん 2023年1月21日(土) 1:10 |
みいそ・えぷDOSではなくFreeDOS(98)やBSDメニューには未だ延び代が有り枡から、怪造ではなく仕様に入れる事も 出来そうです 512B/S超については、5インチMO(1KiB/Sは両面で650M=面当たり300M超)をSCSIエミュで模してみるとか? 実際に、みいそ・えぷDOSでDRV無しで動く組み合わせが有りましたから其れを模して実験してみるとか? # 以前の実験はワークエリア等をいじっての物
|
SCSIボードのI/OアドレスとROM物理番地の連動 まりも 2023年1月22日(日) 11:30 |
2023-1ウォッチスレッドから >16KB毎にI/OがCC0h,CD0h,CE0h,CF0h用のものに対応 バスマスタより前のSCSIボードの多くで、I/Oアドレスの設定とROMの物理アドレス(98システム側と無関係の)が連動する機構を持っています。ワードで16KB、偶数奇数のROMでは8KB単位でブロックになっているようです。ワードアドレスでA14,A15のROMのアドレスピンがI/Oのジャンパピン(普通SW3)につながっています。
しかしほとんどのSCSIボードでは、アドレスを移動した先のROMには何も書かれていないか、27C64に至っては容量の外になるため、I/Oアドレスを変更するとBIOSは現れなくなります。しっかり別I/Oアドレス用のコードが書かれているボードは希少です。
ところがバスマスタ世代になるとこの機構に代わって、転送モードのスイッチ設定(SW4など)と連動するボードが多くなります。アドレスが移動した先には、別の転送モードのコードが書かれています。これも16KBずつで、実質のBIOSが裏表で8KB、メニューその他保守用に8KB以下を使っています。
いずれにしても、SCSIボードをROMボードに転用する際は、ROMの物理番地のどこが98 の拡張ROM域4KBにマップされるかは、スイッチ設定に依るということになります。ROMの先頭に書いただけでは現れないかもしれないわけです。外国人部隊がそれにチャレンジした記事を紹介したのが過去ログにあるはずです。
16KB単位で同じコードを4個繰り返し書き込んでおけば、どこかしらはヒットするでしょう。スイッチとの対応を把握していれば、別機種用のEXIDE**のコードを並べることで、一枚四役にできます。
|
空の部分にも入れると かかっくん 2023年1月23日(月) 4:41 |
I/Oアドレスの違いならモードの違いよりも違いは僅かですから、入って居ない部分にもアドレスを変えて入れると 動くやうに成りますね 単に空なだけの部分は相応なアドレスで内容を補えば動くでせう 2マイ差しで動くとは限りませんが。
|
可能は可能 まりも 2023年1月23日(月) 16:08 |
全てのアドレスベースに対応した1セットだけのBIOSは作れないはずはないのですが、存在しなかったみたいですね。0Cx0 のxをCからFまで変えて読み出して、何かヒットしたところからボードのDIPスイッチを読み出してリソースを決めるだけです。4KBのコードサイズがカツカツなのはわかりますが、これすらも入れる余地が無かったのか、それとも、それを保存しておくシステム共通域ワークエリアが未定義だったのでやめたのか。安易に2枚挿しをされると困るからあえて作らなかったというのもありますが、DA/UAを80hからとしてSCSIではないふりをするBIOSなら「あり」だったかも?
|
I/Oの度にワークエリアを参照すると遅く成る かかっくん 2023年1月23日(月) 18:06 |
> 4KBのコードサイズがカツカツなのはわかりますが、これすらも入れる余地が無かったのか、それとも、それを保存しておくシステム共通域ワークエリアが未定義だったのでやめたのか。
I/Oの度に一々ワークエリアを参照すると遅く成るので決め打ちにしたのでせう RAMに写すのが前提なら写す際にI/Oを書き換える手が遣えますが全機種で写せるワケではないですし 55板はDMAだけですから全パターンを入れても収まったかも、其れならワークエリアの定義はしませんね # 其れともI/Oを変えるのはMT接続時に限るとして居ますから他I/Oでは(敢えて?)空かも ematei.s602.xrea.com/kenkyu/scsi/pc980155u.txt > ※カセット磁気テープユニット接続時以外は出荷時設定のまま使用のこと. > また出荷時設定以外の設定に変更する場合にはSW2-8をOFFにすること. # 当時のパソコン用MTでCMTでない物と云えばQICですかな?
板のSW(又はEEPROMの内容)に依って(BIOSとなる)ROMの内容が変わり枡から、全パターンを入れれば良さ そうな気もしますが、3モード・4I/O・ノーマルとハイレゾで24パターンに成増から3モードの板では大変そう です。 # 機種別設定も有るのでもっと増えますね DMAとPIOの2モードの板は16パターンですしハイレゾをカットすれば半分に成増から何とか成りそうです
|
続APMBIOS リウ 2023年1月24日(火) 1:02 |
お返事ありがとうございます。えらー15氏のソースで勉強になりました。
違う場所のヲチの話ではあるのですが以前出てきた VRAM部へのJMP部に関する情報がAPM周りの会話から見つかりましたので ご報告 ttps://reiria.bbs.fc2.com/?act=reply&tid=10370351
過去ログ 2022年1月解析スレッド-2 電源管理マイコンの操作関連 BANK1の飛び先
|
APM,SMM まりも 2023年1月24日(火) 11:40 |
APMとかSMM関連ってさっぱりわかりません。2000年頃にはAT互換機でもACPIの方が普通になっていましたし。A000:000Bへのジャンプの不思議ですが、SMMがA000:0からの裏メモリを使うということですね。 >APM周りの会話 キャッシュを明示的に切っているのがXv/Wで、Raではそうでないというようなことが話されていますね。Pentium機ではL2キャッシュがなかなか切れないというのは感じます。とくに430VX機です。わたしは力技で全然関係ないアドレスを空読みして何とかしましたが、本来ならチップセットのL2キャッシュ制御をすべきでしょう。いっぽうP6系CPUのRaは1次キャッシュを切ればL2キャッシュも切れる感じです。CPU内部にあるからでしょう。制御もチップセットではなくCPU命令で行いますから。
それにしても486機からあるキャッシュフラッシュのout 43F,A0ってPCI機でも機能的に備わっているのですかね?ITF上の単なる遺物ではなくて?だとしてもチップセットやCPU側の同類機能との優先順位(コード上の前後関係)がわかりません。まあITFに書かれたとおりにやれば問題はないのでしょうけど。
電源管理関連と設定記憶関連が、98の未知なる部分の最後の砦です。1997年頃から搭載された機能ですからそれ以前の解説本にも載っていません。1997と言えば98の終わりが見えていた時期で、ミイソもソフト開発ベンダに情報出さなくなっていたのだと思いますね。
|
存在が無いサウンドBIOS RAMのリサイクル使用 まりも 2023年1月28日(土) 0:22 |
486 X-mateなどは86系音源を持っていませんからSOUND BIOSもありません(普通には出ません)が、裏のRAMを出す機構は備わっています。ふと思ってPC-9800-100のBIOSをそこ(CC000)に転送してみたところRAM上の動作なので速くなりました。SCSI_RAMでは4KBのみなので限定的ですが、SOUND BIOSは全域がRAMなので効果が大きいに決まっています。
さらにメインメモリ上に確保してそこに移動させてみたところ、少しだけですが、より高速になっていました。たぶんSOUND BIOSのCC000hのなど拡張ROM域のアドレス帯にはCPUのキャッシュが効かないのでしょうね。
EMSを使う場合はCC000に置くことはできませんので、この方法はたいして役に立ちませんが、EMSを使わないと決め込む場合にはここに置けば速度向上のメリットが出ます。ただし裏RAMを操作するアプリがSOUND BIOSのRAMを間違って無効にしてしまうことは十分ありますから、そのようなアプリ(E10PAT、SCSI_RAM、EXT2DDBTなど)を使っていないことをはっきりさせないと危険です。RAMが隠れたらSCSIへのアクセスは即できなくなってハングアップです。というわけでこれはIPLwareよりはDOS起動後に行ったほうがよさそうな気がします。
|
本来のEMS4は仕様上は可也柔軟に設定出来る かかっくん 2023年1月28日(土) 2:16 |
EMS4ではページフレームを不連続にも捕れますから、手持ちのEMS使用ソフト(EMMでわなくEMSを確保して動作 する物)で異常が出なければ不連続にしても良さそうです。特に仮想EMSなら必要なBIOS他に重ならない限り、 16KiB連続した領域が4ッ有りさえすればパラグラフ単位で何処のアドレスにでも捕れますから、其れを併せると 実は仕様上は可也柔軟に設定出来る筈ですが実装が追いつかなかった(又は態と然うしなかった)感が有りますねぇ...ページフレームを分断してアプリがバグったらクレームが来る事を恐れて後者な気が # 不連続なページフレームはEMS4の仕様である以上、本来はアプリの所為、メモリメーカへのクレームは論外 # 然し4ページ連続が前提のソフトの何て多い事、かと云ってEMS3.2でわ不動、多分EMS4で「EMS3.2対応と # しない場合ページフレームは不連続であると想定し各物理ページのセグメントを取得すべし」としなかった # とか?
著名2大メーカの仮想EMMはハードEMS同様C0 C4 C8 CC D0 D4 D8 DC以外に捕り難かったりしますし # E8-F3のROMをツブしてUMBに出来るなら本来はページフレームにも出来る筈なワケです
|
100ボードのBIOSはEMMで移動可能なはずなのに まりも 2023年1月28日(土) 11:38 |
>ページ連続が前提のソフトの何て多い事、か これですよね、どの日本語フロントエンドプロセッサでも64KB要求されてどうにもなりません。32KBかせめて48KBではダメだったのですかね。
EMM386を使う場合は、SASIの昔は /movehdbiosのようなオプションでなんとかなりましたが、IDEはPnP BIOSとのバンク切り替えがあってダメ、SCSIもROM裏バンク切り替えがあってダメ、と使えない手法です。しかしフラットなBIOSであるAHA-1030,PC-9801-100ボードについては、原理的には可能です。なのにどうもこのオプションを入れるとハングアップするのですよね。VMM386や他のEMMではどうなんですかね。仮想86EMMはWindows9xを動かすとき以外では基本使わなかったので、他のEMMのことはあまり知らなかったりします。 EMMのオプション機能ではなく後から手動でEMS RAMに移動させることは可能ですが、それだと元の位置のBIOSが残ってUMB化できないので、EMMのオプションのBIOS移動でやらないと意味がありません。A5-A7の12KBをなんとかシャブりたいところです。100ボードの実質の内容は12KBで足りています。
<14時追加> EMM386のオプションの /highscanがどうもよくないようです。いろいろイレギュラーなことをするとハングアップしてしまいます。併用せず/IN = /EN =を組み合わせた方が良さそうです。
100ボードのBIOSはBASICのROMがあるE8000hに移すのが一番良い気がしてきました。CC000hを使うのと違い、リアルモードでもEMM386使用でも行けるからです。IPLwareでE8000hに移し、EMM386ではここをUMBにされないようにEN指定します。BIOSが元あった場所は逆にIN指定で潰してUMBにします。このとき/highscanを併用してはいけません。併用しないとA5000-A7FFFがUMBから外れるので、これもIN指定します。
ということでA1030E8というのを作ることにします。 E8000はレガシー486だけでなくPCI機でもRAM化できるのもメリットです。
|
VEM486なら動かせた気が かかっくん 2023年1月28日(土) 15:51 |
確かVEM486は移動先がUMBに出来れば強制的に動かせた気がします(動かすとマズい物は異常に成る)から 出来そうな気がします。 但し既存のRAMには移動出来なかった気がしますからEMUMB386(EMUMBX)で予めUMBにしてからなら 移せたやうな?VEM486でUMBにしないと駄目かな?
Vectorに有るのは旧バージョンですが、β13とMATE R用のパッチが何処ぞに有りますから探して下さい。 # VEM486 β13は64M(63M?)迄ですがDOSならXMSとEMS併せて64M有れば足りますよね? # 窓9xではDOSアプリ用に主記憶を空ける事は考えず、素直にEMM386を遣いませう
> これですよね、どの日本語フロントエンドプロセッサでも64KB要求されてどうにもなりません。32KBかせめて48KBではダメだったのですかね。
物理ページ毎にセグメントを設定し直すのが本則ですが、ページフレーム先頭からオフセットだけで64K遣って 居る(別の物理ページを別のセグメントから遣う)気が? 多寡が8バイトとわ云えページフレームのセグメントを4ページ分保存するのが面倒だったのかも?保存するコードは もっと長いですし # AX BX CX DX(順不同)に4ページ分返すEMSファンクションが有るか(先頭だけ返すのは有る)、EMMのワーク # エリアに保存されて居るかすれば良かったですが # と思いきやキチンと5801h(物理ページ数を得る)と5800h(指定したアドレスに各物理ページのセグメントを保存、 # 最大16バイト)が有るでわないですか # ハードEMSの時点で、UV11(の初期ロット)のやうに音源BIOSを切れない機種でEMSとHDDの併用を不可に # せずページフレームをC0 C4 C8 D4とかにでも捕れるやうに(EMJは対応するやうですからMELEMM他の所為) # 成って居ればページフレームの分断がもっと一般的に成って居たかも知れませんが!
|
EMM386のオプションが融通効かないのでボツ まりも 2023年1月28日(土) 23:59 |
どうもEMM386では /highscan を指定しないと、E800-E3FF間のBASIC ROMのところを/IN=の指定でもUMB化できないのですね。これは今の今まで知りませんでした。したがってE8000のところに100 SCSIボードのROMを移動するというのは、16KB得しても28KB失うことになるので、意味なくなってしまいました。 PCI機だったら同一アドレスでRAM化できるので、そもそもE8000に移動する意味が全くありません。レガシー486機のリアルモードで意味があるだけとなります。元のROMは残りますから、UMBとして使える空きを拡げることにも役立っていません。RAM化による高速化のみです。 というわけでやや残念な結論となりましたが、ほかのEMMを使う分にはよい策があるかも?
|
VEM486やLEMMでは? かかっくん 2023年1月29日(日) 0:21 |
で、VEM486では如何でせう?β13は兎も角旧バージョンはVectorに有り枡 VEM486 1.29N www.vector.co.jp/soft/dos/hardware/se025675.html LEMMは近年迄うpdされて居ます hp.vector.co.jp/authors/VA037191/Pt/
|
A1030RAM Ver2 まりも 2023年1月29日(日) 17:12 |
そういえば2004年頃にはA1030RAMというRAM化ツール(PCI機用)を公開していたので、これの後継で486機ではE8000かCC000に移してRAM化するプログラムとして再出発にしますかね。アドレスを選べるようにするのが難しいところですが。なおE8000とCC000では、CC000の方が少し遅いようです。
VEM486やLEMMは使っている人にお任せします。うちの環境ではLEMMは動作しない(なぜかDISK BIOS実行中Dx00:0018に例外06が出る)のでテストできません。
<23時追記>LEMMのオプション説明をよく読んだら、「RAM属性の所はUMBにする」とのことです。つまりDOS起動前にDISK BIOSが既にRAM化されているとデフォルトではUMBにされてしまうのですね。それでBIOS不在となるので無効オペコード例外が発生してしまうわけです。明示的にパラメータ指定をしたら、思い通りの配置になりました。100ボードのBIOSがE8000に、元BIOSがあったDC000はUMBになってくれました。PC34のメモリウィンドウ域なども勝手にUMBになるので、きっちりオプションを記述する必要があります。いっぽうE8000は移動後書き込み禁止でROM属性になっていますが、放っておくとUMBにされるので、これもUMB除外対象にします。とにかく4KBの各ページは全てどう扱うかを記述しないと危ないです。
|
EMM386の機種依存性って? かかっくん 2023年1月29日(日) 22:43 |
-100/1030Bが12Kで済み仮想86を前提とするなら、A5-A7に入れるとC*/D*に出ないので良さげです E8-F3(F4/F5)よりも良さそうな? DEVICE=VEM486.EXE /U /M=DC:A5,DD:A6,DE:A7 /E=C0 DEVICE=LEMM.EXE -Z -M -U* -TDC:A5,DD:A6,DE:A7
ところでEMM386の機種依存性って何でせう?HIMEMはA20制御に機種依存性が有りますが、EMM386の本質に 機種依存性は考え難いのですが VEM486やLEMMはXMM(A20制御)を兼ねるので98依存ですが # 組み込み時のメッセージとかは機種依存の範疇でわなし # J31Dyna用はPC用にレジューム関連の機能を憑けて居たので其の部分は機種依存でしたが
|
RAM化とLEMM まりも 2023年1月29日(日) 23:35 |
お騒がせしたようですが、PCIのSATA/SCSI BIOSなどもRAM化されているので、LEMMではBIOSがあるところをUMBにしてしまうというわけです。拡張ROM域やシステムBIOS域のRAMはUMB化しない方を暗黙のデフォルトにしていただきたかった所ですが、ともかく拙作のいろいろなRAM化ツールやEMSボード活用ツールではLEMMが動かなくなりやすいことを、注意書きに今後加えておきたいと思います。
|
|
みいそDOS6のMSDはA5をイジるらしい、えぷDOS6のはしないらしい かかっくん 2023年1月30日(月) 18:41 |
LEMMのDOCに由ると、みいそDOS6のMSDはA5160-A51FFhをイジるらしいのでメモリマネージャに 関係無くA5000-A7FFFhをフルに遣うとヤバいかも知れません。えぷDOS6のMSDは問題無いらしいです。 A520かA521から遣えると良さそうですが512(496)バイト少なくても載りますか?>-100/1030B # まぁ『A5に載せたらDOS6のMSDを遣うな』とする方が楽は出来ますが
|
|
|