スレッド分けました。内蔵CDが故障してしまったTOWNSをフロッピーディスク経由でSCSI CDから起動するブートローダープロジェクト用スレッドです。一応、フロッピーディスク経由の場合と、SCSI2SDや変換番長のような仮想SCSIデバイスからの起動の両方を想定してます。似たようなことは既にYSSCSICD.SYSでできていますが、TownsOS起動ディスクに組み込む必要があるので、ディスクの再配布していいか微妙なのと、特殊なドライバを組み込むタイトルでは専用起動ディスクが必要などの問題がありましたが、このプロジェクトはその2点の解消を目指してます。
まだ津軽上の実験ですが、SCSI CDドライブからIO.SYSを読み込み、INT 93Hなどをインストールして、MSDOS.SYSまで読み込んだところで処理を迎撃することに成功しました。まだ青森県地図の表示はできてません。
しかし、迎撃地点ではMSDOS.SYSは読み込んでいるものの、まだINT 21HがEnableされていないようで、INT 21H AH=48Hでメモリを確保してやろうと思ったら固まってしまいました。これ、INT 21がまだ使えないのではなく、実はPSPとかが存在してないからという可能性もあるんですがね。ただ、考えようによってはBIOSのRedirectorをインストールしようと思ったらこの迎撃地点は悪く無くて、IO.SYSには内蔵CD-ROMから起動したと思い込ませているはずなので、ここでINT 93 AL=C0HがすべてSCSIにリダイレクトされるようにすると、IO.SYSは何事もなかったかのようにSCSI CDから起動してくるはずです。
問題は、リダイレクタをインストールしたとして、リダイレクタが使用するアドレスがその後別のプロセスに上書きされてしまうことを防止しなくてはならない点です。そのために、その後さらに調べたところ、どうも、MSDOS.SYSにジャンプするときのDXの値がMSDOS.SYSが使ってもいい最後のアドレス (DX=B800Hだと物理B8000Hまで使える)になっているようなのですが、どなたかこの解釈が正しいかご存知の方いませんか?また、そうした場合、DOS ExtenderがB8000~BFFFFを使わないと言えるのかという問題もあるのですが。nabeさんとか知ってそうと期待していたりするのですが。もしもこの解釈が正しければ C000H をDXにセットしている場所にパッチを当ててやれば、BIOSリダイレクタ置き場を作ることができるはずです。
これまで津軽のデバッガでMSDOS.SYS入り口で止めてLET DX B800H として放流してやった上でV2.1 L20上で何本かEXPファイルを走らせてみた限りではB8000~BFFFFは守られているようでした。
別な方法としては、もともとのCD-ROM BIOSはいらなくなるので、IO.SYSを識別して、もとのCD-ROM BIOSが書いてある場所にリダイレクタをインストールしてしまうという手もあるのですが、やや乱暴な方法で、多分CD-ROM BIOSは一か所に固まっているのですが他のINT 93Hがその部分のPROCを使っていたらこの手は使えないですね。
また、できればC0000H直前ではなくもっと下の方のIO.SYS直後あたりにインストールしたいところなのですが、どこでIO.SYSが使っていい領域の最初のアドレスをMSDOS.SYSに渡しているのやら。それはまだ見つかってません。ただ、IO.SYSのサイズはTownsOSのバージョンによって異なってもどのTOWNSのMSDOS.SYSを使っても起動できるということは、どこから使っていいかという情報もIO.SYSはMSDOS.SYSに絶対渡しているはずなんですがね。
2020-09-24 09:22:42
質問しておいていきなりなんなのですが、ひとつわかりました。IPLからIO.SYSにジャンプするときのAXを利用することで、B0000~BFFFFを保護することができそうです。Yukioさんの解析結果の通りなのですが、そんなの F7FFH とかB0000~BFFFFだけ無かったことになんてできないんじゃないかと思いますが、実はどうせTownsOSのDOSはHigh Memoryは見ていないので、 07FFH としてもとくに困らなさそうで、DOS ExtenderはC0000H以降は自由に使っていいと思ってるっぽいのでこれでBIOSリダイレクタ用のメモリを64KB確保できそうです!
ただ、そんなに多くいらないんですけど、64KB未満というのはできなさそうですね(^_^;)一応、V2.1L20のIO.SYSだったらどこでC000Hをセットしてるのかわかったのでパッチが可能ですが。そうか。識別できるときは必要最小限にして、識別できないときはAX=07FFHでIO.SYSに飛ばせばいいのか。(考えながら掲示板に書くな)
それから、IO.SYS直後にBIOSリダイレクタを置きたいと思ったのですが、IO.SYSはMSDOS.SYSを自身の直後に置こうとするようで、置き場はハードコードされているようですね。ただ、DOS Extenderが本当にC0000H以降を使うかどうかとかもう少し調査が必要ですね。
かなり希望が見えてきました。
2020-09-24 11:04:46
まだ津軽上だけど、成功しちゃった。
2020-09-25 06:59:33
実機、SCSI CDからの起動に成功しました!ディスクイメージは↓です。
このイメージを焼いた1232KBディスクを入れて、SCSI CDドライブをつなげてフロッピーから起動すると、なんとTOWNSは外付けSCSIドライブを内蔵ドライブと思い込んで起動します!
https://github.com/captainys/FM/tree/master/TOWNS/IPL/DISKIMG
時間の都合でまだTowns OS V2.1 L20のシステムディスクしか試してませんが、他のも大丈夫でしょう。このフロッピー1枚と外付けドライブがあれば、内蔵ドライブが死んだTOWNSをかなり救済できるはずです。津軽上ではアフターバーナーとかTowns OS V1.1 L10とか起動に成功してます。
CD-ROM I/Oを直接攻撃しているソフトはパッチが必要ですが、それ以外であれば多分問題なく起動するでしょう。
ディスクイメージを焼き付けるのが最近難しくなってきてますが、TOWNSがあれば生産できるように、イメージライターも↓に上げました。
https://github.com/captainys/FM/tree/master/TOWNS/FDWRITE/EXE
run386 -nocrt fdwrite.exp a: fdmini.img
みたいな感じで焼けます。ただ、確認も何もしてこないでいきなり焼くので大事なディスクを消してしまわないように注意してください。
一応、この先、
メニューを付けてディスクフォーマットとコピーができるようにする(システムCDが無くても複製が可能に)
RS232C経由でROMイメージを送信できるようにする
SCSI HD用の起動イメージを作る
など予定してます。結構実機の動態保存界(そんな界があるのか)には革命的だと思うんですが。
2020-09-26 08:38:50
>>4
すばらしい! 今はまだ試せていませんが、SCSI接続のCD-ROMドライブの準備が出来次第試したいと思います。
メモリカードの方はあの後こちらで準備できた4in1Adapterに16MBSDカードを取り付けてみましたが、実機での読み取りは出来ませんでした。(HCが読みに行ったまま帰って来ない)
フラッシュ系のカード(リニアは入手が困難なので試せていませんが)は無理なのかなぁと言う感じで、SRAMならIPLを作れば大丈夫そうですがSRAMカード自体も入手なんですので今更時間をかけてIPLを作っても救済目的には使えないので、やはりFDが無難なのかと思います。
最終的には故障したCD-ROMの調整方法の確立や代替案(内蔵CD-ROMの制御を解明してSCSIなりATAPIなりに変換する)が目的なのは変わりないのですが・・・
2020-09-26 13:58:51
>特に誰ともなく
TOWNSで正式サポートされてるICカードってMARTYとSNを除くとSRAMカードとFMR専用のフラッシュメモリカードだけじゃありませんでしたっけ? CFやSDカードなどはプロトコルの違いなどから対応してなかった気がします(うろ覚え)。
2020-09-26 18:26:07
>6 (ただの自爆)
ああ、純正ベクトル文字カードとかCAR MARTYとかのROM系カードにも対応してたか…(完全な自爆
2020-09-26 18:27:55
>6
正式にはその通りなのですが、TOWNSの場合はICメモリカードスロットの構造が専用コントローラではなくてもっと原始的に実現されている物ですから,ひょっとしたらメモリアクセスのみで読み書きが出来るデバイスについてはサポート出来るものが有るのではないか?との疑問から来たものです。
SDカードについては、4in1Adapterが内部でCF←→SDのプロトコル変換を行っていると勝手に思っているのですが、そもそもCFカードアダプターが読み取れなかったので、CFの時点で駄目なのかも知れません。(CDカードアダプタ,4in1Adapterの2つで試したのは、それぞれメーカーが異なる事での相性問題を考えての事です)
F-ROMカードやベクトルフォントカードについてはROMやフラッシュメモリである事から、条件としてはSRAMカードと同じようにリニアにメモリへマップされるメモリタイプでないと読めないのかもしれませんね。
2020-09-26 23:02:17
電源の修理は失敗したのですが、とりあえずAT電源化ケーブルの生産に成功したので(ラジオペンチで虫眼鏡で見ながらクリンプするのめちゃくちゃ目が疲れた)、試しにブートローダーから起動してみたところ、ばっちり起動しました!なお、内蔵CDドライブには天晴CDが入ってました。これでMXとHRは動作を確認できました。あと、別の知り合いのTOWNSユーザー(アメリカ人)が彼のTOWNSでも成功と報告してくれたのですが、機種を聞くのを忘れました。HRは電池をソケット化したものの、CMOSが飛んだ環境でのテストを続行するためにあえて電池を入れてません。
これでうちにMXとHRと2Fがあるという状況になりましたがスペースの都合で一度に一台しか稼働状態にできないんですがね。HRのドライブはCD-Rは読めないですね。仕様なのか、劣化なのかはわかりませんが。HR使ってみた感想ですが、現状の津軽ってCore i7の3GHzでHRの高速モードぐらいのパフォーマンス出てるのではないかという気がしました。
考えてみるとICカードからのブートローダーも作っておくと、誰かがICカードの生産に成功したときに役に立つかもしらんですね。アセンブリプログラミングは楽しいから作っておこうかな。なお、ブートローダーの津軽での検証ですが、
.\Tsugaru_CUI.exe ROM_MX -SCSICD5 TownsOSV2.1L20.cue -FD0 FDIMAGE.BIN
こんな感じでできます。現在、CD-ROMドライブは後半のSCSI IDからスキャンすることにしたつもりがうっかり0番からスキャンしてたみたいでID5,6にSCSI CDつなげてたら5番から起動したよと言われたので、直します、というか、これはほっといてもいいか。
2020-09-27 23:56:49
>8 WINDYさん
pureTOWNSの大半のモデルはJEIDA 4.0まで対応ということで、「I/Oモード」がないのではないでしょうか。おそらくSNのシステムROMでもI/Oモードを用いるデバイスからの起動には対応してないでしょうし…
なお、TOWNSのICメモリカードスロット等の情報に関してはOSASKのWikiが詳しいと思います。
http://oswiki.osask.jp/?PCMCIA
2020-09-28 01:23:08
>10 りうさん
仰る通りで、pureTOWNSではI/Oモードは有りません。(文教タイプは詳しく解らないので、含みません)
なので、いわゆるCardBusカード等は一切使用できませんが、I/Oを使用しないカードは使用できる望みがあると思っています。
OSASKのWIKIでも様々な試みが行われていましたが、結局の所どうなのかが解らない状態でしたので今回、私で用意できたメディアでほぼ再検証に近い内容ですが試しており、
CDアダプタや4in1adapterに関しては、殆ど駄目もとで試しているのが現状です。
(それ以前に山川機長さんに作成していただいたカード領域のダンププログラムが私の実機(HC)でハングアップするので、そちらを動かすのが先ですが)
2020-09-28 08:01:28
(ブートローダーの他にHR復活させたり、Thursutmaster TOPGUNジョイスティック[2本目]修理したり内容の濃い週末だった。。。。)
とりあえず、ysflight.comにもページ作りました。
http://www.ysflight.com/FM/towns/bootloader/j.html
http://www.ysflight.com/FM/towns/bootloader/e.html (英語版)
結構アメリカでTOWNS動態保存しててくれる人多いみたいなんですよ。ありがたいことです。多分、この勢いだと来週にはSCSI2SDや変換番長などを使って起動できる救難ブートローダーもできていると思います。これに成功するとCDドライブもFDドライブも死んだTOWNSも金の力である程度よみがえらせることができるようになりますね。引き続き開発続行します。なお、津軽の開発が相対的に遅くなってますが、ひそかにSCSIコマンドの2バイト目の処理を実機に近づけるなどの変更も入ってます。はっ、既に秋学期が始まってるのに僕はこんなことをしていていいのか!?
> りうさん、WINDYさん、
今のところICメモリカードブートローダーは自分の環境で目処が立たないので保留にしてましたが、考えてみたら作って置いたら誰か方法を編み出したら起動できるかもしれないですね。一応SCSI HDのIPLが済んだら、作っておきましょうかね。
2020-09-28 09:51:35
今、衝撃の事実に気が付いてしまいました!
ついさっき、まさかと思うけど一応なあ、と、思って津軽上で試したところ、なんと!MXのSYSROMですが、普通にSCSIのCD-ROMドライブのブートセクタ読み込んでジャンプしますね。HDDもCDもSCSIの読み込みコマンドは同じで、セクタサイズは違うものの、セクタ0から読み込むのでどっちもメディアの先頭だから、ひょとしたらと思っていたのですが。読み込み前にINQUIRYを出しているのでHD以外だったら読まないと思ってたら、気にせずREAD 10 (28H)を出すようです。
当然、内蔵CDのつもりでブートしようとするので、「不法な割り込みが発生しました」と出るのですが、じゃあ、実機で本当にそうなるかやってみりゃいいじゃん。ということで、やってみたら、なんと出ました!「おお、MX実機でもSCSI CDから起動できるんじゃん!」と、思ってよくよく見てみたら、そういや今日からHRが置いてあるんだった!うっかり、津軽上ではMXのSYSROM、実機はHRのSYSROMで動作を確認してしまいました!
ただし、2FのSYSROMだとだめだったので、おそらく、雰囲気としてCX以降はSCSIにつながってればHDDでもCDでもブートセクタを読むのではないでしょうか。
だとすると、別の起動メディアいらないという事態に発展してしまうんですが。SCSI接続のCDドライブとCD-Rが一枚あればFM TOWNS II以降の救済ができてしまうということに。ただし、CDの入れ替えが必要なので、少し複雑になりますが、パッドのボタンかなんかで対応すればいいだけなので、大した手間ではありません。どうせメニュー作ろうと思ってたし。
とりあえず、先にこの路線をやってみます!
2020-09-28 13:23:12
すごいものができてしまった。
https://github.com/captainys/FM/tree/master/TOWNS/IPL
まず、DISKIMG/CDIMAGE.ISOですが、これをCD-Rに焼いてSCSI CD-ROMドライブに入れて起動するとCDを入れ替えてパッドかマウスのボタンを押すように言ってくるので、そのようにすると、SCSI CD-ROMだけでTowns OSを起動できます。
で、次がBOOTSECT/BOOTSECT.BINで、Towns OSのISOイメージを取って、最初の6KBをこのデータと置き換えると、SCSI CDから起動できるTowns OSになります。
津軽上ではMXのROMで、実機ではHRで確認しました。HRはあえてCMOSバッテリーをはずしてあるので、CMOSが飛んだTOWNSの起動に使えます。
なお、CDドライブのSCSI IDは0~3の間である必要があると思います。それから、多分CXからこの手が使えると思いますが、少なくとも2Fだとだめです。
SCSI CDドライブがスピンアップするのに時間がかかるようだと最初の起動デバイスのサイクルではタイムアウトして失敗するかもしれませんが、次のサイクルで起動すると思います。僕が使ってるCDドライブだと一度目はタイムアウトで失敗して二度目のサイクルで起動します。なので、ハードディスクなどははずしておく必要があります。が、最近の使い方を考えるとハードディスクイメージまではエミュレータ上で作っておいて、あとはCMOSさえ設定できれば起動可能という状況にすると思うので、救済目的には十分すぎると思います。
今のブートローダーの仕組みは、IO.SYSの途中で処理を迎撃して、YSSCSICD.SYSをインストールしてから処理を返してやることでSCSI CDドライブからの起動を可能にしていますが、YSSCSICD.SYSだけ見ると32KBもあって、とてもブートセクタに入らないかに見えたのですが、そのうち28KBぐらいは、 DUP 2356*12 dup (0) が占めているので、実質的に4KBでした。そして、HRとMXのSYSROMはSCSI CDドライブから最初の4セクタを読み込むので、8KB使えます。ということで、ローダーを含めても余裕で青森県地図まで含めて収まってしまいました。
よかったら試してみてください。
2020-09-29 07:49:19
>14
あまり考えていなかった方向で突破口が開けてきて面白いです。
取り敢えずCDIMAGE.ISOを試そうと思ってCD-Rに焼いてみました。
モデル2は予定通り駄目でしたので、HCで試そうと考えたのですが内蔵HDDを外すのが面倒くさくなってドライブ構成から削除してトライ。
と、ここで、ドライブ構成から削除してもIPLはそんなの見てなくてIPL4のシグニチャを持つドライブを発見したら読み込んじゃうので意味無い・・・・ 想像通りIPLを読み込んでハングアップ(IPLより先はドライブ構成が必要なのに削除しちゃったので?)でした。
取り敢えずモデル2は駄目(と言っても全く無視するわけでも無く、エラーが出てスキップしていた)と判ったので、HCの方は後ほど動作確認を行います。
CDIMAGE.ISOを焼いたCD-RはWINDOWSで見たら空っぽだったのですが、これでOKですか? (IPLのみだから見えないのかと解釈しています)
折角なので最終的には開いたスペースでデモを仕込むのも有りだと思います。(山川機長さんHPより)
2020-09-30 10:57:47
早速試していただきありがとうございます!HDはいったんはずさないと多分そっちを見に行ってしまいますね。スピンアップが速いCDであればキーコンビネーションでなんとかなると思いますが、うちのCDドライブだと絶対間に合わないです。
今のところ、CDIMAGE.ISOの中身は空っぽです。たしかにデモを仕込みたくなってきますよね!
2020-09-30 21:48:51
津軽で3種とも起動してみました。これ凄いですね。面白いです。実機でSCSI CDから何かが起動するのは初めて見ました。
ここ数日随分確認して切り分けしてきたのですが、高速モードでFDからCDを起動すると"00000F05"数回の後に"00000105"と表示が出て止まります。
互換モードにするとFDからCD起動はできますが、ブートが途中で止まりました。
ブートセクタを書き換えたCDをSCSICDドライブに入れると、DIRECT SCSI CD BOOTと表示されたところで進まなくなります。
SCSIエミュレータでセクタを書き換えたCDイメージを起動させると同じ辺りで止まります。
手掛かりになるか分かりませんが、TOWNS OS V2.1 L20のコンソール表示の後に起動タイトルが表示されるところで読み込みが止まります。
確認したのはTOWNS OS V2.1 L20とL31で、機種はHCです。ISOイメージファイルは津軽で確認したものです。
環境は一応、GalaxyForce2がYSSCSICD.SYSで動く状態ですので壊れてはいないと思います。
ちなみにうちのHCはHDDの騒音が凄いので、かなり前ですがSCSIエミュレータを買ってHDDの中の線は抜いてしまいました。(^-^;
GUIのブートセレクタがBIOSに入ってるからこの頃のTOWNSは楽でいいですね。
2020-10-01 03:41:22
私のHCもType.Dさんと同じような感じです。(CDIMAGE.ISO)
IPLは読み込めて青森の地図も出て、CDを交換してマウスのボタンを押した後、恐らくSCSIのリスト"SCSI:**H TYPE:FFH"(後から上書きされるので、**の箇所は06のみ残っている場合や04位から残っている場合が有るが、恐らく止まるタイミングと表示タイミングの関係)が表示された後、
"CD DRIVE FOUND AT SCSI ID=03H"
"IO.SYS(FBIOS) FOUND AT SECTOR 25H"
"JUMPF FOUND AT 0A9C:02E1"
00000F05 00000F05 ・・・・・・・ が5x5行表示されて、最下位に"システム読み込み中に異常が発生しました"と出て止まります。
TownsOS V2.1 L30とフリコレ10のCDで試しましたが概ね同じような状態です。(FASTモード,互換モード共)
HCってば何かと動かないのでご迷惑をおかけします。(汗)
2020-10-01 08:13:07
ご確認ありがとうございます!別のユーザの方からMAで成功したという報告があったのですが、HCは難しいですか。00000105 の表示ですが、この意味は、SCSI STATUS, SCSI MESSAGE, PHASE FLAG, DEVICE TYPEで、最後が5になってるのはデバイスタイプがCD-Rドライブという意味です。PHASE FLAGはSCSIのフェーズのCOMMAND(01H), DATA_IN/OUT (02H), MESSAGE(04H), STATUS(08H)のフェーズを通過したかどうかのフラグで、01で止まってるということは、COMMANDフェーズの後 DATAフェーズに移行せずSCSIコントローラが黙ってしまったという意味です。Pentiumだと速すぎるんですかね?
この現象は高速モードで起こるとのことでしたので、FBIOSを探すタイミングはセクタリードを連続で出すのでSCSIコントローラがあまりにも短い間隔でコマンドを受けすぎてSCSIコントローラが対応しきれなかったのかもしれません。間にディレイを入れてみます。
WINDYさんの方だと00000F05だと、STATUS, MESSAGEフェーズをくぐっているということなので、FBIOS検索中正しくセクタが読めているようです。ひょっとするとつなげてるデバイスにも依存するのかもしれないですね。
互換モードでも起動しない問題ですが、HCだとYSCSICD.SYSを使ってTowns OS V2.1 L30は起動しますかね?V2.1はロゴが出ているあたりで INT 93H AX=05C0H CH=FFH (物理アドレスへの直接読み込み) を使っているらしく、YSSCSICD.SYSは現在のところUnrealモードで上位メモリにデータを転送という手を使っているのですが、もしかするとPentiumだとUnreal Modeがうまくうごかないのかもしれません。せっかくSCSIコマンドを直接出すコードを書いたのでUnrealモードを使うのをやめて、DMAで直接データを流し込むように変更しようと思っているので、これもできるようになったら結果が変わるかもしれません。
この二点、変更してみます。
とりあえずコマンドを出す前にディレイを入れてみます。
2020-10-01 09:27:16
とりあえず、やってみました。
- SCSI I/Oを直接攻撃する前に10msのディレイを入れてみた。
- INT 93H AX=05C0H CH=FFH (物理アドレス指定で直接読み込み)で、Unreal modeで転送するのでなくDMAで転送するようにした。
- DMA I/Oを直接攻撃した後は必ずアドレスの最上位バイトをクリアするようにした。
TypeDさんの環境でSCSIコントローラが失神していると思われる状況がPentiumが速すぎるからだとするとディレイを入れるとちょっと改善するかもしれません。それから、SYSTEM ROMとIO.SYSで、SCSIステータスを見るとき、
MOV DX,IO_SCSI_STATUS
MOV AL,DX
MOV DX,IO_SCSI_STATUS
MOV AL,DX
というように、一度ダミーリードしてるんですよね。何の意味があるのかわからないのですが、それに準拠してみました。ときどき、
IN AL,DX
IN AL,DX
と連続リードしてるのを見かけますね。最初のフェッチでChip-Selectが立って、データがバスに出るか不安な場合とかでしょうか?
WINDYさんの環境でクラッシュするタイミング (Towns OS のロゴ)では、INT 93H AX=05C0H CH=FFHを使って、物理アドレス81000000H~にデータを読み込んでいます。おそらくDRIVE_R.IMGだと思います。前のバージョンではこれをリアルモードメモリにいったんデータを読んでUnrealモードで上位に転送する方法で対応していましたが、DMAで直接流し込むように変更しました。
それで、その変更を加えたらいきなりTowns OS V2.1が起動しなくなって何事かと思ったのですが、なんとIO.SYSは↑のINT 93の特殊機能以外でDMAアドレスの最上位バイトに値を書き込まないようです。そのため、いったん81000000Hに値を読み込んだが最後、あらゆる読み込みが81xxxxxxHに発生していたようです。これを防止するために、DMA直接攻撃後は必ず最上位バイトをクリアするようにしました。
他の読み込みも全部自前のSCSIルーチンを使うことにして、CDSD.SYSが使っていたBIOS隠し機能を使わないという手もあるのですが、そうなると読み込みがポーリングになるので、CDを読んでいる間割り込みを止めてしまって、効果音などが長く止まることになります。半面、多分大体どんなゲームもCD読み込み中は音が止まってた気がするのでそれでもいいのかもしれません。
これでHCも対応できるとよいのですが。
2020-10-01 12:09:54
あ、なんかUNREALモードが原因の可能性は大ありのような気がしてきた。同じ方法をPHYSDUMP.EXEでも使ってたので、もしもPentiumで挙動が違うのであれば説明がつきそうな。486では参照してなかったGDTのビットがPentiumだと厳密にチェックするようになったとかそんな感じかもしれませんね。
2020-10-01 12:41:33
早速の対応、有り難うございます。 またやらねばと思っていたので、HCは半分解状態ですので試してみます。
あ、でも、ひょっとしたら・・・ いや,IPLが読めているので無いとは思いますがCD-ROMドライブが不調だったらごめんなさい。
今後必ず必要となりそうだったので今使っているCD-ROMドライブは最近入手したもので、WINDOWSでは動作確認は出来てない(と言うかWINDOWS10では出来ない)物なのです。
それも含めてテストしてみます。(故障や不調も考えて3台確保していますので・・・・ 残り2台はPD-DRIVEですけど←興味に負けた結果)
https://kei-sakaki.jp/2013/10/11/80386-called-unreal-mode/
https://en.wikipedia.org/wiki/Unreal_mode
この辺を読むとUnrealMode自体は隠しでも裏でもなく、少々トリッキーでは有る(マニュアル上に明記はされていない)がINTELが想定した動作みたいですね。
問題はあまりにも情報が少ないのでUnrealModeの制限事項や注意点が判らないことでしょうか。(ここに386,486とPentiumの差が存在する可能性が有りそうです)
2020-10-01 16:43:30
UNREAL MODEですが、僕の使い方だとUNREALモードに長時間滞在する必要が無いので転送中だけネイティブモード入りを寸止めするような感じで使っています。なので、一般的に言われるようなUNREALモードよりもネイティブモードに近いのですが、考えられるのはGDTのフラグなどすべて理解しているわけではないので(全部理解しなくてもエミュレータって書けるもんだと判明)、本当は間違った値が入っているが486まではCPUもチェックが甘かったようなフラグがあるとPentium機で影響が出るかもしれません。
もしも以前の方法でYSSCSICD.SYS起動ディスクから起動が可能であればRAYXANBERを起動可能かどうかでわかります。今までで INT 93H AX=05C0H CH=FFHを利用しているのを確認したのはRAYXANBERのオープニングとTownsOSのDRIVE_R.IMGだけです。(チェックしてないだけでDAPSとかも使っている鴨)
このIPLを作ってみて非常に興味深いのがDRIVE_R.IMGの処理ですね。YSSCSICD.SYSは組み込み時に起動ドライブが内蔵CDであるとTownsOSに思い込ませるようにCMOSというかI/Oの3C32Hに書き込んでいて、以後の処理はほぼCD起動と変わらないのですが、DRIVE_R.IMGは読み込まない模様です。この点はなんとなくそんな気がしていたのですが確認しました。これに対して新IPLを使う方法だと、おそらくより早い段階でシステムに内蔵CD起動と思わせる影響でDRIVE_R.IMGは読み込みます。このため前に書いたDMAアドレスの最上位バイト問題が(解明されるまでの短時間)発生しました。
この先、TownsのDMAを直接攻撃するコードを書く人が他に発生するとは思えませんが、Wikiの方にこの点書いておきました。(とか言ってると海外のレトロPCコミュニティはあなどれないから必ずしも無いとも言い切れない)
しかし!今HD用IPLも書いて一応上がってますが、起動メニューでブートデバイスあるいは同じSCSI IDのパーティションを選べるようにしたのですが、HCでCDからの起動に失敗する可能性があるのだとすると、非常用にドライブレターの割り当てができるようにするといいですね!いったん立ち上がってしまえばあとはいくらでもやりようがあるので。CMOSに何を書き込めばいいのかがわかればパッドで操作するメニューをMASMで書くなどは簡単なのですが、CMOSのどこにドライブレターの割り当てがあるかとかって情報わかります? 現在互換ROMのコードを読み始めましたが。WikiにCMOS情報もあるといい鴨しれないですね。
2020-10-01 23:20:17
UnrealModeに関しての見解については個人個人で様々でしょうし、いつまでIA32が残っているのか判りませんがもう使われることの少ない物ですので深追いする必要も無いと思います。
CMOSの情報についてもWIKIの方に最終的には是非記載しましょう、それが解明できればバッテリーの切れた状態からの復帰の際にシステムCDやDOSのFDが無くても最低限の設定はSCSI BootCDで行えるレスキューCDとしても使えると素敵だと思います。
起動ドライブやドライブ構成,メモリ構成等の他の項目もCMOSで覚えてるはずですが、DOS3のSETUP.EXEかDOS5 or DOS6のSETUP2.EXEを津軽でCMOS領域のR/Wでブレークさせるといいかも(解析よりも早いし)
2020-10-01 23:41:42
おお、たしかに!CDIMAGEの方もブートメニューが出るようにしておくといいですね!やりましょう!今週末は暇だし、CMOSの解釈がさっき書き込んだので合ってたら月曜までにはできる予定です。
2020-10-02 00:37:17
対策有難うございます。ご報告します。HCでTownsOSV2.1のL20とL31,L51の起動に成功しました!
FDブートローダーから起動して、ドライブ構成などの設定の起動を確認しました。
CDブートローダーとCDブートセクタはL20で確認しました。
外付けCD1台だけでTownsOSが起動するなんて凄いです。
互換モードにする必要はありますが、レスキュー手段としては画期的だと思います。
自分の環境では高速モードでブート中にハングするタイミングにゆらぎがあるので、CDドライブのへたりかも知れません。
ところで編集していて思ったのですが、BOOTSECT.BINはimg+cueに適用できないでしょうか。
バイナリエディタでIPL4の文字に合わせて貼ってもIO.SYS NOT FOUNDと出ます。
専門知識に乏しく不勉強でお恥ずかしいです。
2020-10-02 01:38:24
あれ? Type.Dさん動きましたか・・・・
私の方はIPLを読み込んだ後に、一番上に「TownsOS V2.1」 L31,一番下に「システム読み込み中に異常が発生しました」と出てます。
(YSSCSICD.SYSを使ったFDブートでも同じ,互換/高速モードでも同じ)
でも、このメッセージは内蔵CDROMから起動したときもそうなるので、内蔵CDROMの調子が悪いのかなと思っていましたが、何かの設定が足を引っ張っているのかなぁ・・・
この前CDROMのトリマ調整をやったときは内蔵CDから安定してブートできるようになったのですが、その後で故意に電池をOFFにしてCMOSを飛ばしてから
FDでDOS5を立ち上げてSETUP2.EXEを使ってドライブ構成とメモリ構成を再設定したのですが、その時に余計なことをしたのだろうか・・・・
どちらにしても安定して? 上記の状態までブートできているので後はこちらの問題のような気がしてきました。
2020-10-02 07:56:22
予定よりかなり早いですが、ブートメニューできました!まだ津軽でしか試してないですが、ドライブ構成を編集できます!CDIMAGEで起動するか、あるいはFDIMAGEでSCSI CDをセットしないで起動すると使えます。デフォルトではSCSI CDから起動するオプションが選ばれてますが、上のBACK TO MAIN MENUというやつを選ぶとCMOS設定メニューを選ぶことができます。一応、Virtual SCSIデバイスで使うことを想定して、HDIMAGEも作りましたがまだ実機テストができてません。このイメージは後ろに512バイト単位で0を足してやれば単純に大きな容量のHDDになるので後からパーティションを追加してTowns OSなどインストールできるはずなので、それを想定して同じSCSI IDのパーティションからの起動を選べるようにしたのですが、まだ本当にそこまでできるか実験してません。既にあるイメージの後ろにひっつけるためには、どこにLOADERが書いてあるか、どこにYSSCSICDがあるかの情報を書き換えれば可能なはずですが、それもまだ試してません。
Type.Dさん、
テストありがとうございます!「よっしゃあ!」とモニタの前でガッツポーズが出ました。BIN/CUEファイルですが、BINファイルのセクタ長が2048だったらそのまま上書きができるのですが、そうでない場合、セクタ間にデータが挟まってるのでそれを回避するように書き込めば多分行けると思うのですが、そういうファイルの編集ツールって無いもんでしょうかね。
WINDYさん、
内蔵CDからも起動したときもそうなるということは、何か別の要因がありそうですね。HDからの起動は普通にできているでしょうか?
2020-10-02 11:57:07
>28
HDDからだと全く問題なく起動できるので不思議なんです。
内蔵CDでエラーになるもんで、ずぅ~っと前から「CDROMは調子が悪いんだ」と思ってたのですがこの前にCMOSを故意に飛ばした際についでにCDROMのトリマ調整もやったんですが、その直後はCDROMから起動できたのでトリマ調整が効いたんだと思ってたのですが最近になってまたエラーが出るようになったのです。
なんだろ? もう一度CMOSを初期化してみようかな。
2020-10-02 13:08:43
追加情報です。SCSIエミュレータにISOをマウントするとHCの高速モードでも起動できました。
FDブートローダとセルフCDブート、どちらもOKでした。
>>山川機長さん
こちらこそ。うまくいって良かったです。自分も思わず拳を握り締めて喜んでました。
CDのデータフォーマットは後で後学のために調べてみようと思います。
>>WINDYさん
自分のSCSICDドライブもハングすることはありましたが、新しいバージョンではエラーなく起動できています。
cmosはSETCRASH.EXEコマンドでクリアすると確実だと思いますがもう試されましたか?
2020-10-02 22:02:15
なかなか難しいですね。OAKのメッセージやYSSCSICD.SYSのメッセージが出る前だということはタイミング的にIO.SYS内かCTL.SYS内でそのメッセージが出ているように思います。津軽でCTL.SYS前後でわざとINT 93に対してエラーを返して動作を見たのですが、CONFIG.SYSが読み込めなかったとかCOMMAND.COMが読み込めなかったというメッセージが出て、「システム読み込み中に」というエラーは出ませんでした。
しかし、CTL.SYS内であればINT 21Hでエラーを出しそうなので、エラーメッセージは画面上の方に表示されるように思います。なので画面下のメッセージはCTL.SYS以前のように思います。あるいはCTL.SYSが撃ったINTがIO.SYS内で回復不能のエラーを生じている可能性もありますが、この場合「システム読み込み中」と明示しているのであればそうではないように思います。IO.SYS初期化終了後にデバイスドライバやアプリケーションからのINTでエラーが発生したならば、システム読み込み中かどうかIO.SYSは判別できないはずなので。
そういえば、HDD起動ってDOS6ベースですよね。ということはMSDOS.SYSと多分COMMAND.COMもROMドライブから読んでませんね。試しにTownsOS V2.1でコンソールモードの起動ディスクを作ってみて起動するか見てみるというのが手かもしれないですね。そしてDOS6でFORMAT /Sで作った起動ディスクで起動するかどうか。ROMが悪くなってたりする可能性はありますかね。FM-7の時代のPCだと古いEPROMのビットが飛んだりするエラーはよくあったようですが。
ちなみに、一昨年部品取りのために買ったFM-7、起動するなら起動するようにしておこうと思ったら起動しなくて症状からEPROMを疑ったのですが、例の電子工学科の卒業生(当時学生)が診断に協力してくれて、さすがはカーネギーメロンで僕が会った中で最も優秀な学生さん、CPUが悪い、と診断してくれて見たらCPUの足がソケットの中で錆びてました。仕方ないのでなぜか持っていた63C09を刺して今動く状態にしてますが。あ、これはEPROMではなかった例ですね。
2020-10-02 23:19:19
「システム起動中に・・」のメッセージ自体はIO.SYS内で有る事は確かですが、表示なので遅れている可能性も有るので停止時点はどこなのかは解らないのですが、そもそもその表示自体が出ている事が通常では無いと思いましたので、IO.SYSを数年?ぶりに見てみました・・・・ 正直、モトローラに洗脳されているのでインテル表記が見にくくて今日だけでは突き止める事が出来ていません。
あの文字列を表示する為の判断が何を以て行われているかが判ればと思います。折角のCDブートが試せなくて残念ですが時間をかけてボチボチやりたいと思います。
取り敢えず、Type.Dさんと山川機長さんの意見を参考に、V2.1起動ディスクを作成してそれで起動できる事を確認してから、SETCRASH.EXEでCMOSを初期化してみようと思います。
前はFDDの調子もCDROMの調子も悪かったのでCMOSを飛ばしたときに危うく再起不能になりかけたので、準備してから行います。
2020-10-03 00:16:58
ブートローダーアップデートしました。
しかし、CMOSの内容はSYSROMの中で初期化されていると思ったのですが、HRでやったらIO.SYSまで初期化されないみたいですね。なので、CD BOOTが使えない環境だと、まずバッテリーは交換したうえでTownsOSかDOSの起動を試みて、一度「起動ドライブがシステム構成に登録されていません」と言わせてからCMOSを再設定しないとだめのようです。まあ、当初からバーチャルハードディスクとSCSI CDを組み合わせて起動することを想定していたので、このぐらいは許容範囲ですかね。というか、ひょっとしてSYSROMのサービスで初期化できるのかな?あとでCOMP_ROMのソースをもう一度読んでみよう。SYSROMで初期化できるんだったらそうするメニューを追加すればいいだけですね。
ところで、さっき試したところ、TownsOSはSCSI CD-RドライブをMOドライブとして認識するみたいですね。FM TOWNSシステムセットアップガイドを見直してみたんですが、58ページにMOには「ハードディスクと同じようにOSをインストールすることもできるので」とありますね。そして、ページ61にはMOから起動するには「TOWNSでは初代~3代(モデル2/2F/20F)がこのスイッチ(MOをハードディスクとして認識させるスイッチ)を使います。」とあります。従ってこの3代以外のTOWNSではSCSI CDからの起動が可能のようですね。ということは多分UXもCD起動が可能のはずですね。
2020-10-03 06:07:12
WINDYさん、
まったく偶然、TownsOS V2.1 L20で「システム読み込み中に異常が発生しました」が出せてしまいました。CMOS異常です(^_^;)ブートローダーでなんとかCMOSが飛んだ状態からドライブレターをいきなりアサインできるようにならないか、と、ドライブレター割り当ての部分だけを無理やり書き換えてIO.SYSにジャンプさせてみたのですが、そのメッセージ出ました。可能性としてですがHDから起動したときにCMOSに何か書き込んでしまっていたりするかもしれません。だとすると再度CMOSを飛ばして起動すると立ち上がるかもしれません。ブートローダーだけで完結させようと思ったらいったん初期化された状態のCMOSイメージをブートローダーに組み込んでおくか、IO.SYSが何を期待しているのかを調べてIO.SYSが機嫌を悪くしないように書き換えてやるしかなさそうですね。そうか。津軽があるんだからIO.SYS初回実行時に何を書いてるか調べればいいのか。(考えながら掲示板に書くな、というセルフ突っ込み)
2020-10-03 07:22:02
>34 山川機長さん
有り難うございます、助かります。
って言うことは、CMOSのぶっ飛び方によってはTownsOSがCDから起動できないような事もあり得ると言うことなのか・・・
私の手順も無茶なもので、バッテリーBOXのスイッチ(必要ないのですが、買った電池BOXに付いてた)を切ってCMOSを飛ばした後でCDROMから起動せずにDOS5で起動してドライブ構成やメモリ構成を行ってHDを認識できるようなるのでその後は「起動できるようになったのでOK!」と思っていたのですが、本来はこの後にSETCRASH.EXEを実行してCMOSの初期化→再度ドライブ構成とメモリ構成を行う必要が有ると言うことでしょうか。
2020-10-03 10:53:33
Type.Dさん、山川機長さん 有り難うございます。無事完全復帰できました。
ついでに今まで目視でCD-ROMのアルミ蒸着面に穴が空いていたので起動を諦めていたTownsOS V2.1 L50も実は起動できる事を確認しました。(どこかが読めない可能性は有りますが)
CDIMAGE.ISOの方でも全く問題なく起動できました!! ある意味感動ものですねこれは!!
ついでについでに、Panasonic LF-1600 PD-ROMドライブのCD-ROMとしての動作確認も取れたりしました。(PD への書き込みはやる意味もあまり感じられないのでパスです)
で、CMOSの初期化データなのですがベースはSETCRASH.EXEが書いている値で、プラスしてCMOS分析スレッドの情報で有用なものが書ければ良いのではないかと思います。
特に海外の方やTOWNSに興味を持って中古で購入したが、システムCDは必要とせず主にゲームをプレイする方には有用ではないかと思います。
(日本語が読める海外の方は良いのですが、そうでない方は日本語のメニューやメッセージは日本人が英語を読む事よりも困難だと思いますので)
2020-10-03 12:02:36
Type.Dさん
BIN/CUEへのセクタ書き込みですが、BIN/CUE自体はデータトラックのセクタ長を2048バイトに設定できて、そのようなBINファイルであればISOと同じように最初の方をバイナリエディタでBOOTSECTに書き換えてしまえばSCSI/Internal両起動対応CDができるはずです。というわけで、コンバータを書きました。津軽のソースのcmdutilの下にflattenbincueというプロジェクトがあるのでそれをビルドするとコマンドラインユーティリティができます。flattenbincue input.cue output.cue みたいな感じで使えます。とりあえず、正しい2048byte/sectorのBIN/CUEができているらしいところまでしか確認してないので、実際これを書き戻せるかどうかまで確認していないのですが、多分行けると思います。これでオーディオトラック込みのscsi起動対応CDが作れると思います。
WINDYさん、
HC完全復活おめでとうございます!多分、IO.SYS内ではSJISの「富士通」を見て初期化されているかどうか判別しているのではないかと見ています。もしも「富士通」が書かれているにもかかわらずIO.SYSが想定する内容になっていないとエラーを出して止まると推測してます。
CMOS初期化データですが、どうも見たところ旧機種で作ったCMOSを別の機種に持って行っても普通に動くっぽいので、8KBサンプルを取ってしまってもいいかと思ってますが、IO.SYSによるCMOSの初期化は例えばゲームのCDでも構わないので、CDのゲームをしたい人はいったんCD起動をした上で次の起動でドライブレターを割り当ててもいいので、まあいいかなと思ってます。当初の予定では、SCSI CDからの直接起動ができない機種用に、SCSI2CDとSCSI CDドライブを組み合わせることでTowns OSの起動を目指してたので、当初の目的を大幅に超えるものができてしまいました。
しかし、CDIMAGE、感動ものでしょう(ドヤ顔)。気にならないならCMOS飛んだままでもいいというところが優秀である、と、自分で悦に入ってます。なにより重要なのが、Wing Commanderが余裕で起動できる点です!(まだこだわる) これで本当にUX以降の大規模救済ができてしまうと、稼働状態に戻せるTOWNSの台数が大幅アップしそうですよね。TOWNS動態保存界(そんな界があるのか!?)の人口が増えてくれないかなあ。
なお、アメリカTOWNSコミュニティでは英語化されたTowns MENUが出回っているようです(^_^;)彼らのレトロPCを動かし続ける執念はおそるべきものがあります。サブカルチャーなんだけどぜんぜん地に潜ってません。また、彼らの執念で著作権法もレトロゲーム保存のためならコピープロテクト解除も合法という解釈になったので、拡大解釈すればTOWNSのゲームを動態保存する目的で、TOWNS自体を動態保存するために、やむを得ずTowns System Softwareを改変しても必ずしも違法とも言えないのかもしれません。割と正々堂々やってるようですし。そういうのを許容してくれる雰囲気もアメリカのいいところだと思ってます。
2020-10-03 13:59:38
偶然見つけたのですが、CD-RWドライブはIDを5か6にするとスムーズに起動してTownsOSのCDプレイヤーで音楽を流せるようになります。
0-4ですとスピンアップ・ダウンを繰り返して起動に時間が掛かり、TownsOSのCDプレイヤーはエラーになります。
CD-ROMドライブの場合、この辺の挙動はどんな感じでしょうか。入れてあるのは富士通の普通のCD-ROMです。
そういえばIDを4にしているとドライブがMOのようなアイコンになってクリックするとストレージにアクセス不能になります。
TownsのMOのアイコンが検索しても出なかったので憶測ですが、TownsOSからMOとして認識されているのかも…。
>>WINDYさん
CMOSが原因だったんですね。直って良かったです!
>>山川機長さん
変換ソフトを作っていただいたとは恐縮です。
ビルドしてみます!
2020-10-03 22:32:15
WINDYさんの陥った状況を考えると、DOS6が無い人はSETCRASHもできなくてバッテリーを引っこ抜くしかCMOSをクリアする方法が無いと思ったので、最新バージョンでブートメニューにRESET CMOS RAMを追加してみました。
> Type.Dさん、
ドライブ構成でSCSI CDドライブのIDにドライブレターを割り当てるとたしかにMOとして認識しているようです。ですが、MSCDEX経由でマウントされるQドライブはMOのアイコンにはならないはずなのですが、QドライブがMOのアイコンになってしまいますか? 僕はPanasonicのCD-Rドライブを使っていますが、今ID4で起動してみましたが、普通にCDのアイコンでしたね。ひょっとするとドライブレターを割り当てていると何か競合が起きて変な状態になるのかもしれません。SCSI ID4にドライブレターが割り当てられていないか確認してみていただけるでしょうか?
2020-10-04 00:38:05
>38 Type.Dさん
Townsで起動指定が出来るSCSIが0~4までなのと関係がありそうですね。(起動メニューでもTownsOS上でもSCSIは4までしか指定できない)
(当時のMO等のSCSI機器に関しては、FMRやFMTOWNSに接続する際にはSCSI IDを0~4の範囲で使用するようにとの但し書きが有ったりしました)
「なぜ4までだろう」と当時は思っていましたが5,6でもCDプレイヤーで音楽が鳴るんですね。
2020-10-04 00:38:17
QドライブはCDアイコンになっています。SCSI CDが横置きドライブのアイコンになっていました。
仰る通りSCSI CDにドライブレターが割り振ってあったので解除してみると、エラーは起きなくなりました。
起動時間の差についてはまとまらないので後で報告します。遅くてすみません。
>>山川機長さん
コンバータのほうはビルドできたのですが、コンバート先のイメージは起動できるものの、音楽トラックが細切れになっていて認識できませんでした。
残念ながら自分は改造できません(^-^;
>>WINDYさん
そうですね。ID0も確認したので起動可能なIDという認識で合ってると思います。
ID5,6はTownsOSからは認識できず、山川機長さんのドライバやローダーからは認識できるので競合を回避できてるんだと思います。
2020-10-04 12:32:15
アイコンの件は説明不足で失礼しました。
起動速度を計ってみました。どちらもドライブレターは割り振っていません。
SCSI ID 5,6 約47秒
SCSI ID 0-4 約2分24秒
速さはともかく、シーク音のような音が小刻みに鳴り続けているのがIDを変えるだけで解消されたので、
何らかの理由で再現されたときの参考にでもなればと思いました。
というか、自分だけなのかなと思ったので質問させて頂いた次第です(^-^;
2020-10-04 14:29:33
> Type.Dさん、
flattenbincueだと、たしかにオーディオトラックがずれますね。大変失礼いたしました。僕はImgBurnを使っていますが、データトラックが2048bytes/sectorの場合、データトラックを正しく書いてくれますが、BINファイル上の2トラック目の位置は(2352*データトラックのセクタ数)と解釈するようです。というわけでもう一本ユーティリティを書きました。padbincue input.cue output.cue で、input.cueにはデータトラックを2048バイト/セクタ化したCUEファイルを指定すると、output.cueにはデータトラック後にパディングを加えて2トラック目以降の位置を調整したBIN/CUEファイルを生成します。Towns System V1.1 L10とAfterburner IIとWING COMMANDERで演奏まで確認したので多分大丈夫だと思います。ただし、パディングしたBIN/CUEは津軽では正しく認識できません。
BIN/CUEファイルが誰かが適当に作ったフォーマットが広まってしまったパターンみたいで公式なデータフォーマットが存在しないのが問題なんですけどね。BIN/CUE自体はバイナリファイルを複数のバイナリに分割することもできるらしくて、それもトライしてみたのですが、そうするとImgBurnは最初のトラックしか認識しないみたいでした。
仕事でも誰かが適当に作ったらしいNASTRANなるフォーマットにいつも悩まされてます。ある解析ソフト用にNASTRANを出したら別の解析ソフトで読めなかったり。
2020-10-05 04:47:27
↑の書き込みの後で、そういうフォーマットのBIN/CUEも津軽が対応すりゃいいだけじゃん。と、思ったので、そのようにしました。また今日の晩にもPUSHします。とりあえずImgBurnでCDに焼いても正常にSCSICDから起動するTowns System Software V1.1 L10とWing Commander 1が使えることを確認しました。もうひとつ興味深いことに気が付いて、Wing Commanderって、新ブートセクタを使って内蔵CDから起動しようとするとDRIVE_R.IMGを読み込もうとするループで起動しないですね。動作の違いを見ようと思って新ブートセクタを書いてないCDで起動したらなんとDRIVE_R.IMGをfopenしてませんでした。どういう法則でDRIVE_R.IMGを使うのかも解明したい謎ですね。というか、誰か既に解明してましたか?
2020-10-05 06:15:16
>>山川機長さん
なるほど、音楽トラックにずれが生じていましたか。
自分はbinとwaveに分割してcueに書く方式で作ろうかと思ってcueの書き方を探したのですが、
cueもデータも読み込むソフトに合わせて書くようになっていて頭を抱えていたところです。
こういうツールは貴重ですね。imgburnで作ってみます!
2020-10-05 22:04:08
お陰様でpadbincueでカスタムCDが作れました。
役に立つ情報かは分かりませんが、自分の環境で若干安定しなかったのですがCDを開け閉めすると改善されることが分かりました。
お手数お掛けしました(o_ _)o))
2020-10-06 20:56:59
成功してよかったです!開閉は、INT 21 AH=0EH の処理に関するものかもしれないですね。実はYSSCSICDもCXでTowns OS V1.1を起動するとき安定しないという報告が上がっているのですが、我が2Fでその現象が見られず、しかし、報告をくれた人がAUTOEXEC.BATの先頭でDIR Q:を挟むだけで良くなった!という追加報告をくれたのでなんとかなったらしい、というところで止まってます。Oh!FMTOWNSの記事でも確認できた通り0EHは開閉のポーリングであることは間違いないのですが、V2.1ではDL、V1.1ではALに値を返してるっぽいんですよね。調べたのがしばらく前で「らしい」で止まってるのですが。うーん、とりあえず津軽/YSSCSICDのTODOリストに入れました。というか、V2.1でも動作は安定しないでしょうか?そうであれば0EHとは違う要因かもしれないです。
2020-10-06 22:59:31
>>山川機長さん
今回使ったのはV2.1L51です。手掛かりになりそうなものを列挙します。
現象は稀に固まる、サイドワークが起動しないなどです。
目視で分かるのはCDプレーヤーを起動してみるとグラフィックの蓋が開いていて暫く待つと蓋のグラフィックが閉じたり開いたりする現象で、CDトレイを開けてから閉めるとそれ以降、現象は発生しなくなります。
一応コマンドモードからDIR Q:もしてみましたが、変化なしです。
先程、FDのブートローダーで普通のV2.1L51を起動しましたが、そちらも同じでした。
トレイが開いているグラフィックになる状況では何度もCDアクセスが発生しているようです。
これらの症状はトレイの開閉をすると改善されてCDアクセスも軽くなりました。
以上、現象報告でした。
2020-10-07 01:02:53
訂正: INT 21H -> INT 93H, AUTOEXEC.BATの先頭 -> AUTOEXEC.BATのMSCDEX直後 の間違いでした。
2020-10-07 06:23:25
津軽のキーボードのTranslationモードを TRANS1 (ESC->ESC+BREAK), TRANS2 (ESC->ESC), TRANS3 (ESC->BREAK) の3種類に分けました。コマンドパラメータまたはGUIでも指定できるようにしたので、DOSモードで起動するときは-KEYBOARD TRANS1, FB386のときは-KEYBOARD TRANS3、FB386でESCキーが欲しいときは-KEYBOARD TRANS2のように使い分けができるようにしてみました。従来同様起動後に切り替えることもできます。最近のキーボードはPause/Breakがついてないのが多いみたいな気がしますね。TOWNSは、キー多すぎ。PF20まではとても対応しきれんですね(^_^;)とりあえず、ソースはPUSHして、明日の夕方テストを通してからリリースにする予定です。なお、最近のバージョンでは、ジョイスティックにキーを割り当てるVirtual Key機能があるので、欲しいキーはUSBジョイスティックに割り当てたりすることもできるようになってます。
2020-10-07 09:27:56
津軽じゃなくてブートローダーの方のgithubにBIN/CUEファイルのデータトラックを2048 bytes/sector化してIPLを書き込むPython Scriptを追加しました。多分、動くと思います。よかったらお試しください。
2020-10-08 13:37:53
サブ環境にPythonを入れて動かしてみました。Pythonはこういうことも可能なんですね。先のツールと同じファイルが作れました。
哲学をやる程長くは待たされませんでしたが洒落が効いていますね(^_^;
別のバックアップファイルで作ってみて気付いたのですが、確認リストにRYXANBERとありますが動きますでしょうか?
自分の環境ではV1.1FDにYSSCSICD.SYS 0.93を入れた状態で動きますが、救済ブートローダですと若干化けたタイトルから進みません。前にあの画面は見た記憶があるのですが思い出せないです。
最近はWindows10が3モードのFDDを切ったためTownsのFDの読み書きができず不便になりました。お陰でどんどんlinuxの重要性が増してきています。FDが飛ぶのも久しぶりに体験しました。今度から.hdsを作ってSDに送ることにしよう…
2020-10-11 01:36:20
ご確認ありがとうございます!我がHRではRAYXANBER動いています。CDIMAGEまたはFDIMAGEからの起動で、BOOTSECTでの確認はしてないです。機種によって結構差があるのかもしれません。現在UXでまったく起動しないという報告があって(FD BOOTとかの最初の文字もでないらしい)、386SXで使えないインストラクションなんか使ってたっけ?と思いながら調査中です。
2020-10-11 08:05:14
調査中ですか。了解しましたm(_ _)m
2020-10-11 12:00:58
なぜUXで起動しないのか原因はまだわからないのですが、RS232CクロスケーブルでTOWNSとPCをつないでCMOSのバックアップ・リストア、それとROMイメージの吸いだしができるようになりました。TOWNSが使ってるシリアルIC、i8251は38400bpsまで安定して出ることがFM-7実機再稼働プロジェクトのときに判明していたので、試したらTOWNSでも38400bps出たのでデフォルトは38400bpsになってます。試しに76800bpsも試したのですが、さすがに出ませんでした。
これにより、CMOSはPC上にバックアップを取っておけば消滅しても復活できるようになりました。というか、バックアップしておかなくてもエミュレータ上で作ったCMOSイメージをそのまま転送してしまえばいいだけになり、エミュレータと実機の連携がよりお手軽になりました。
新しいTOWNSをヤフオクで落としたときなどは、このブートローダーでROMの吸出しができます。ROMを送信するのに約12分ですね。XMODEMで一本のファイルになるので、それを分割するユーティリティdecomrom.pyもUTILにあります。このぐらいやっとけば相当コンディションが悪い実機もなんとかなりますかね。UXで動かないという報告が気になってるのですが、手元にUX無いのでどうやってデバッグしたもんか。
2020-10-13 10:00:25
>55 山川機長さん
「80386DXと80386SXの違いはバス幅のみで命令については違いは無い」と過去から聞いていたのですが・・・・なぜUXでは起動できないのか・・・・
バス幅が狭い為にプロテクトモードでは相対的に速度低下するのが、タイミング上で問題になっているのでしょうかね。
進行状況を画面に表示させるのが良いのでしょうけど、実際に表示されるタイミングが遅れるのであまり充てに出来ないし・・・UXって他にLED等のインジケータが無さそうですね。
XMODEMでのバックアップ・リストアに関しては、結構時間がかかりますね。
記憶だとTownsOS上での通信では、9600bps位が限界だったと思っていたのですが、38400bpsでも大丈夫なのですね。(リアルモードだからかな)
あとは、XMODEMだとどうしてもスピードが出ないのでプロトコルを換える手もありますが、実装側の手間とフットプリントの大きさ,利用しやすさ等から考えるとXMODEMが良いのだと思います。
(XMODEMでバイナリデータを扱う場合、最終データが1Ahで有った場合にデータとパディングデータが同一である事からデータの破損が発生する可能性が有りますので気をつけてください)
2020-10-14 07:52:33
今日は津軽の感想のメールが二本(どっちも英語)届いて気を良くしてました。
UXの状況ですが、報告によると一瞬メッセージが出た後固まるとのことなんですが、この一瞬のメッセージが"FD BOOT"だとすると、止まってるらしい箇所はFM-R互換VRAMアクセスの書き込み先バンク指定直後なんですね。コード読み直したらなぜかIPLの中では指定してなかった。ひょっとすると(手抜きしてパレット再設定してないもんで)UXは初期パレットが違っててカラーコード15が黒になってしまっているという可能性もあります。ここは、まじめに再設定するように書こうかな。ただ、一瞬出るメッセージは読み取れない、ということなんですが"FD BOOT"は1秒は出てるはずなんですよね。それが読み取れないというのはなんとも。
38400bpsが出るのは、多分ポーリングでRS232Cの監視以外何もしていないからだと思います。RS232C BIOSがリアルモードのBIOSだったので、プロテクテドモードに入ってしまうとRS232C割り込みが出てからリアルモードに戻ってI/O読んでまたプロテクトモードに戻って、だと間に合わなかったのかもしれないですね。赤本によるとMXはFIFO Bufferを使える (pp.829)とのことなのですが、これEnableしたら76800bps出るのかな?気が向いたらTowns実機でD77イメージをRS232C経由で転送するプログラムを書こうと思っているのですが。
ちなみに、RS232Cだけに集中させたらFM-7でも38400bps出てます。リダイレクタでテープ版ソフトをRS232C経由で流し込むと実機なのに爆速でロードするので死ぬ前に一度見ておく価値があります。AV40はI/Oでスピード指定なもんだから19200bps止まりですが、AV40に刺しても大丈夫なRS232Cカード(本体のRS232CカードをEnableすると刺した方が寝る)設計だけしてまだ実際にはまだ作ってません。コロナで引きこもってるから作ってみようかな。
2020-10-14 10:20:54
面白そうだったのでRS232Cを使ったcmosバックアップをHCとWindowsPCで使ってやってみました。ダンプの中に富士通の文字を確認。津軽で読み込んでみても正常でした。
システムROMのダンプもやってみましたが、こちらは何か不備があるのかxmodemの転送が開始されずWindows側がタイムアウトになりました。
使ってみた端末のOSはWindows10で通信にはMopTermかTeraTermを使っています。bps変更の都度テストメッセージは確認しています。
余談ですがTownsが38400bpsで通信するのは初めて見ました。シリアル通信も馬鹿にできませんね。
2020-10-19 21:46:51
テストありがとうございます!多分、ROMのダンプがHCでできないのは、PHYSDUMPが動かなかったのと同じ理由ですね。Pentiumだと何かUnreal Modeの動作が違うのだと思います。もう少し勉強が必要のようです。
2020-10-20 07:20:59
>>59
Pentiumのせいでしたか。
Towns末期の機体だけあって市販品も動かないソフトが多いですし仕方ないのかも知れないですが残念です。
なんか指摘したようですみません。
2020-10-20 21:55:02
いえ、そういう報告が無いとどこまで動いているかわからないですし、ありがたいです。何か他にも気づいた点があったら教えてください。PentiumでもUnreal Modeは普通に動くはずなので、多分マイナーな修正で使えるようになると思うのですが。
多分、本来はプロテクテドモードに一瞬入ったときJMP命令でCSも新しくするべきところをNear Jumpでごまかしているあたりが怪しいとみているのですが。多分、Unreal Modeじゃなくて一瞬フルにプロテクテドモードに入った方がいいんでしょうね。
2020-10-22 01:03:35
ハードディスク用ブートローダーも実機で成功しました!以下に手順をアップロードしました。
http://ysflight.com/FM/towns/bootloader/emergency_hd_j.html
副産物で、ハードディスクイメージのパーティションを移植するPythonスクリプト transpart.py (TRANSplant PARTition)ができました。OASYSパーティションの移植もできます。
SCSI2SD等に投資が必要ですが(その点は従来の方法でもSCSI CDドライブの投資は必要)この方法で、model2 (SCSIカードが必要), 2F, 20Fも救えるようになると思います。あとブートローダーで残ってるのはPentiumでプロテクテドモードメモリのアクセス問題と、失敗の報告が上がってるUXでなんで失敗するかの究明ですね。うーん、どっちも手元にないからどうしようかな。Pentium問題はDOSBOXでなんとか実験できるだろうか。
UX問題は津軽にUXモードを追加したらなんか変わるかな。というか、実は2Fでさえ実機と津軽/UNZと動作が違うんですよね。なぜかブートセクタの最初の6バイト後に53Hバイトの隙間を作らないと2Fで起動できなくて、SYSROMが何か書いてるのかと思って表示してみたけど何も書いてないという謎です。津軽もUNZも実行すると2FのROMでも53Hバイトの隙間が無くても起動するんですけどね。あと実機だとRESTOREコマンドを出してからセクタ読まないとREIPLで再起動できないとか。
2020-11-02 01:15:07
>62 山川機長さん
386SXモデルの起動処理ですが、386DX/486/Pentiumモデルより複雑な処理を行なっており、ブートROMがブートセクタ(もしかしたらIO.SYSも、かも)を読み込んだ後に一旦C:\IO.SYSに制御を移し、そこでブートローダーを読み込んだ起動デバイスのIO.SYSのヘッダ部分にあるタイムスタンプを比較して386SX対策が必要なバージョンのTownsOS(はっきり言ってしまうとV1.1)であればIO.SYSと386|DOS-ExtenderとしてC:\IO.SYS/C:\RUN386.EXEで代替する処理が行なわれているようで、その起動処理の違いの影響なのかもしれません。
386SXモデルの一派であるMARTYでも同様の処理はしていますが、こちらの方が更に複雑で、パッドでのマウスエミュレーション機能対応の関係からなのかTownsOS V2.1L20まで対象が広がっており、C:\IO.SYSはコンソールレスシステムとなっています。これでOh!誌に書いてあったTownsシステムソフトウェア V2.1L20のコマンドモードが使えない現象の説明もできます。
2020-11-03 08:40:40
りうさん、
さすがです!貴重な情報をありがとうございます。ということは、津軽でも386SXモードを実装すれば同様の挙動は再現できそうですね。そういうモードもそのうち追加してみようと思います。
ハードディスクブートローダーですが、昨日一念発起して持ってるTOWNSをすべて引っ張り出して、HRとMXでも動作を確認できました。こっちの知り合いが余ってるHGがあるからくれるそうなので、届いたらHGでも動作確認ができるようになる予定です。その友達は最近FM77AVをヤフオクで落としてアメリカまで届いたまではよかったのですが、電源を入れても起動しなくて、今何が動いてないのか原因を究明中です。僕はRS232Cカードを一枚作ってTOWNS HGと交換する予定だったんですがね。そんなことがあったので、現在作業用机の右のFM机にはTOWNS MXが置いてあってその上にFM77AVがあるという非常に心穏やかになる状態になってます。(でもモニタや電源の都合で同時に使えるのは一台)
2020-11-03 12:52:44
> Windyさん、Type.Dさん
Pentium機でUnreal Modeがうまく動いてない問題なのですが、ちょっと変えてみたので実験してみたいのですが、さきほどGithubにPUSHしたPHYSDUMP.EXEがHCで動くかどうかテストできますかね?PHYSDUMP C2180000 で最初の5バイトが"FONT2"、 C2000000だと最初の4バイトが"IPL4"で残りゼロが出ると成功なのですが。よかったらお時間のあるときに試してみていただけると助かります。なお、DOS6だとEMM386の問題で機種にかかわらず動かないのは変わってないので、EMM386を停止した状態で実行してください。なお、変更点ですが、PE=1にする前にLGDTするようにしたのと、CR0の退避と復元にPUSH/POPを使わないでEDXに保存しておくことにしてみました。
2020-11-06 03:23:24
>65 山川機長さん
UnrealModeのテスト、正常動作しました!! C2180000で最初の5バイトが"FONT2",C20000000で最初の4バイトが"IPL4"が表示されるのを確認しました。
変更点のどちらが効いたのか判りませんが、お手数でなければ2通りのバイナリを用意していただければこちらで試しますので、特定は可能です。
別に特定しなくても今のバージョンで問題は無いので良いと言えば良いのですが・・・・ 何かスッキリしたくて。(汗)
ここ3週間ほど恐ろしく出張が続いていましたのでWikiの方もこちらも放置状態でしたが、概ね完了しましたので持ってきたMXの修理とIRコマンダーの捜索を再開します。
2020-11-06 23:18:20
動きましたか!ありがとうございます!原因の特定に協力していただけるとのことなので、3本別バージョンを作ってアップロードしました。
http://ysflight.com/download/FIX1.zip
http://ysflight.com/download/FIX2.zip
http://ysflight.com/download/FIX3.zip
FIX1は、CR0をリアルモードに戻す前にGDTリストアしていたのをリアルモードに戻した後にしました。
FIX2は、プロテクテドモードに入る前にGDTを設定して、リアルモードに抜けた後にリストアするようにしました。
FIX3は、CR0の保存にスタックを使わないようにしました。
予想ではFIX2だけ動いて、FIX1とFIX3が動かないのではないかと思います。僕の解釈ではLGDTはGDTだけ変更するものの、それぞれのセレクタのリニアアドレスとかリミットのキャッシュは変更しないであろうと思っていたのですが、PentiumではLGDTの時点でキャッシュクリアするのかもしれない気がしています。
よろしくお願いします!
2020-11-07 00:35:23
丁度今日拝見したので早速実行してきました。
WINDYさんが既にご報告されていますが折角まとめたことですし貼っておきますね。
C2180000 46 4F 4E 54 32 20 20 20 00 01 00 14 00 14 22 84 | FONT2 ......".
C2000000 49 50 4C 34 CB 00 00 00 00 00 00 00 00 00 00 00 | IPL4............
C2000000は残りゼロでした。おめでとうございます。流石です。
先日HDDイメージにブートローダのパーティションを追加するスクリプトも使ってみました。
HC + RaSCSI ZEROベアメタル版の構成でTownsOS V2.1 L20を起動できました。
今までHDDの形式が分からないため試していなかったのですが、試しにTsugaruで作ったイメージの拡張子を.hdsに変更してSDに入れてみたら普通に起動してしまいました。
HDDは高速モード、SCSICDは互換モードで起動確認しました。
HDDにブートローダは便利ですね。区画設定で起動パーティションを変えるだけでコントロールできるのが良い感じです。
これでPCのように起動後何十秒か操作しないときにタイムアウトして起動ドライブから起動するようになったら常用すらできそうです。贅沢を言えばキーボードで操作できると便利かも知れないですね。
他にもグレーTownsがあるのですが、24KHz必須なもので中々引っ張り出す場所を確保できません。
コマンドモードを31KHz出力させる方法が実はあって、フリコレ収録のcons30.exeの付録のconsi.comというのを使うと普通のLCDに映るのですが、意外とどこのサイトにも載ってませんね。YSSCSICD.SYSを使っていた頃は重宝したものです。
2020-11-07 01:20:33
Type.Dさん、
> これでPCのように起動後何十秒か操作しないときにタイムアウトして起動ドライブから起動するようになったら常用すらできそうです。贅沢を言えばキーボードで操作できると便利かも知れないですね。
むむむ、まさに同じことを考えていました(^_^;)一番簡単なのはI/Oの6CHを使って時間をカウントすることなのですが、あれって20Fからでしたっけ?タイマーとかはSYSROMがなんか設定しているとしたらいじりたくないし、とはいえ、20Fまでだったら386DX 16MHzと仮定してクロックを数えればいいのか。。。。
やりましょう!
というわけで、やります(^_^;)しばらくお待ちください。
2020-11-07 03:04:46
恐れ入ります(^-^;
2020-11-07 03:27:37
>69 山川機長さん
I/O 006Chは仰る通り10F/20F以降ですが、そこまでピッタリの時間でなくても良いと思うので初代に関してはループでも充分なように思います。
後は、VSYNC位が正確な時間を計る方法として使えますね。
2020-11-07 06:45:05
>67 山川機長さん
FIX2のみ正常動作で予想されていた結果通りでした。
正にUndocumentで貴重な情報ですね。 ロストテクノロジーなんだろうけど。
2020-11-07 07:47:07
あ、そうか。確かにVSYNCがいいですね。そのようにしました。
とりあえず、キーボード対応と12秒で自動ブートにしてみまてGithubにPUSHしました。RDHIGH.ASMも新しいものに置き換えたので、HCでもROMイメージ転送ができるはずです。が、今実機机にFM77AVが座っている影響で実機テストできてません(^_^;)甘えてしまって、実機テストお願いしてしまってよいでしょうか?よろしくお願いします。
なお、既にお気づきかと思いますが、HDからブートの場合、最後に起動したオプションを憶えるようになってるので、ほっておくと前回起動したデバイスから自動起動(するはず)します。
2020-11-07 10:08:43
WINDYさん、
テストありがとうございます!ロストテクノロジーでも何か記録に残しておくと100年後ぐらいに誰かが見つけて役に立つかもしれませんね。
レトロPCはこうやって資料を保存できるけど最近のオンラインゲームとか将来に残らないんじゃないかと非常に不安です。まあ、この心配は今のゲームに燃えてる若い人たちがしてくれればいいことですが、学生さんとかには折に触れてコンピュータプログラムは工業製品であると同時に芸術性もあるというようなことを言う変な教員をやってますが。
2020-11-07 10:16:40
> 山川機長さん
起動オプションが保存されているのはいいですね。
今回のは津軽で見てみると16進数でカウントダウンしてブートするのですが、カーソルが2行ずつ動くようです。
実機ではブートローダーの画面が一瞬出た後に「不法な割り込みが発生しました」と表示されて落ちてしまいました。
カーソルは本家のブートセレクタとの兼ね合いもありますし、パッドでもキーボードでも動くほうがいいかと思います。
2020-11-08 00:48:20
むむむ、そうですか。やっぱ実機テストは必要ですね。というわけで今FM77AVにどいてもらったので今からMXでテストします(^_^;)
2020-11-08 03:53:54
大変失礼しました。直ったと思います。 MOV DL,60 DIV DL とすべきところを MOV DX,60 DIV DX と書いてました。津軽のCPUコアは割り算のオーバーフローを無視していたもんで。MXのFDIMAGEで動作確認したので多分大丈夫だと思います。キーボード対応も実機で確認しました。
2020-11-08 04:29:57
> 山川機長さん
無事実機での起動に成功しました。38400bpsでROMDUMPを実行してdecomrom.pyで生成したROMをTsugaruで認識できました。
Townsでこういうことが可能になるなんて凄いです。
なお、あまり重要ではないかも知れませんが、2行ずつ移動するのは津軽の起動オプションで解決しました。
"-GAMEPORT0 KEY"と"-keyboard trans2"(またはtrans1)を有効にしているときのみおきる現象で、
ANA0にしたりtrans0にすると起きないようです。
よくよく考えてみるとtrans2とKEYを同時に有効にしていること自体ちょっと変でしたね(^-^;
以上、ご報告でした。
2020-11-08 18:12:55
おおなるほど。不正な割り込みの方に気を取られてカーソルがふたつ動く問題の方が目に入ってませんでした。
矢印キーとパッドが同じ機能を持ってしまっている影響ですね。津軽の方で直す方が良さそうなので、直しておきます。津軽と実機で同じ環境が使えるのが理想ですね。
しかし、TOWNSのキーボードはキーが多いですよね。日ごろUSキーを使ってるのでそもそも変換と無変換が無く、全角・半角も無く、カタカナ・ひらがなも無いという、まさに津軽だけに「おら日本語キーボードさ行くだ」、と言いたくなってしまうのですが、日本語キーボードでもカバーしきれないですよね。実行キーないし。津軽上で長い日本語をタイプすることは無いとはいえ、仮に日本語をタイプするとしたらどうするのがいいんでしょうかね。
2020-11-09 01:00:13
キーボードエミュレーションモードの問題だから津軽側で直そう、と、思ったら実はブートローダーの方の問題でしたね。
実機でも同じことが再現できます。まずパッドの十字ボタンの下を押し、放す前にキーボードの↓キーを押し、十字ボタンを放すとカーソルが二段動きますね(^_^;)
まさにこれが発生してました。なので、ブートローダーの方を更新してパッドのリリース待ちの中でキーボードのバッファもクリアするようにしました。時間の都合でまた実機テストしないままPUSHしたのですが、さすがにキーボードバッファをクリアするだけだから実機での実害はないと思います。(でも一見無害な更新がよく大ダメージを及ぼしたりするんだな、これが。)
副産物でコード見直したらトランスレーションモードで日本語キーボードの数々のキーを送ってないことに気が付いたので送るようにしました。日本語キーボードだとタイプがちょっと快適になった鴨しれません。
2020-11-09 02:01:07
なるほどブートローダー側でしたか。判明して良かったです。実機でも津軽でもばっちりです。
キーマップの件は難しいですね。普段は別のキーボードを変換アダプタを通して使っているので、純正キーボードを引っ張り出して繋いで思い出していました。
英語キーボードの場合は英語が打てれば良いかと思いますが、日本語キーボードで現状の最低限の英数記号が入力できてWindowsのIMEが有効な状態から長い日本語を打てるように変えるとすると、IMEを無効にする必要があると思います。
ソースを見てkeytrans.cppのNULLの部分を、townsdef.hを参考に書き換えればいいのかと思ったのですがビルドは通るものの、うまくいきませんでした。
文章を入力するとしたら、最低限「ひらがな」「変換・無変換」可能なら「漢字辞書」で足りると思います。
漢字辞書キーはありませんのでShift+かな漢字とかShift+Insとかコンビネーションに割り当てればいけるでしょう。
あまり使わないキーは単語登録、単語抹消、実行と取消です。取消はごく希に使うかも知れません。
ちなみに自分の使ってるクラシックPC研究会さんのアダプタは取消がEND、実行はShift+Enterになっています。
2020-11-10 03:06:45
ありゃーす
2020-12-06 22:08:24
外付けCDドライブによる確認できましたので、報告しておきます。
メーカーが違う3機種に違いが出ましたので報告です。
IOデータ・・・CDG-TX4A - CD-ROMドライブ
プレクスター・・・UltraPleX 40max - CD-ROMドライブ
ヤマハ・・・CRW8824SX - CD-RWドライブ
TownsOS V1.1L30・TownsOS V2.1L20・TownsOS V2.1L51
以上のシステムCDをブートローダーで起動したところ、
IOデータ
V1.1L30とV2.1L20は起動しました。
V2.1L51は起動しませんでした。
プレクスター
V1.1L30・V2.1L20・V2.1L51とも全部起動しました。
ヤマハ
V1.1L30・V2.1L20・V2.1L51全部起動しませんでした。
また、ドライバ YSSCSICD.SYSをCONFIG.SYSに組み込んで
V2.1L51の起動後、Qドライブを読み込んだところ、
外付けCDドライブの結果はブートローダーと同じ結果となりました。
いくつかのゲームCDを読み込んでも結果は同じでした。
IOデータとプレクスターではゲームによる違いがあることもわかりました。
ゲームをするならIOデータ製、ファイルを読み込むならプレクスター製でしょうか。
V2.1L10のシステムCDはIOデータではファイルは読めませんが、プレクスターではアイコン、ファイルとも呼び出せました。
フリコレ6(V2.1L20)をブートローダーで起動しましたが、IOデータは不可。
プレクスターは起動しました。
また、CD-ROMドライブの方が良い結果が出ましたので、各メーカーの傾向がそうだとは一概にいえないと思います。
2021-06-09 02:18:12
ご報告ありがとうございます!多分初期化さえできればあとのコマンドは同じだと思うので、初期化のタイミングが何か違うのかもしれませんね。あるいは、デバイスの種類の判別で想定しない値が返っているのかもしれません。ヤマハのドライブは残念な結果でしたが、他のドライブではまずまずの結果でしょうか。
2021-06-13 08:54:15
>>83 nanさん
なんとYAMAHAは起動しませんでしたか。自分のはYAMAHAのドライブでした。参考になります。
2021-06-17 22:25:33
>Type.dさん
Panasonic KXL-RW10AN-S、ポータブルですが騒音も静かで使いやすいです。
今はこれをメインに使っています。
PLEXSTORは騒音の面でちとうるさいです。
YAMAHAは繋いでいないので全ての確認ができていません。
2021-06-19 04:52:58
PanasonicのCD-R/RWドライブで朗報があります。
PLEXTORとI-O DATAはハングアップしてTownsがSCSI-0から起動しませんでしたが、
PanasonicとMOドライブをONにしてHRを起動するとMOドライブが生き返りました。
同様をブートローダーで試すとSCSI CDがWAITのままで起動せず。
Towns HRでMO起動を試したかったのですがそれは無理でした。
そこで、Towns OS V2.1 L10はV2.1 L51を立ち上げてからMOにインストールしました。
しかし、メモリ不足でMOのV2.1L10の再起動(REIPL)はできません。
やりたかったことはできませんでしたが、Windows機とMacBook Proとのデータの受け渡しはMO DISKで可能になりました。
2021-06-19 07:21:02
nanさん
SCSI機器は同時に繋いでるドライブの種類や電源のON/OFFによって相性のようなものが発生する上に、変換アダプタを挟むだけでも影響が出るので結構な作業ですよね。調査お疲れ様です。
2021-06-19 23:54:27
>87 nanさん
TOWNS OSをMOにインストール後、メモリ不足で再起動は出来なかったとの事ですが、DOSのエラーが発生したのでしょうか?
V2.1 L51で起動後に、V2.1 L10をMOにインストールされたのは何故でしょう? V2.1 L51をMOにインストールしては駄目だったのでしょうか? この辺りのバージョンの違いや手順の違いで上記のメモリ不足が発生しているのではないかとも思うのですが・・・ (私自身は上記のように起動時とは違う版をHDDなりMOにインストールした事は無いので経験は有りません)
TONWS/FMRの場合、MOの取り扱いについてはリムーバブルとするかどうかで起動ドライブに指定できるか(OSのインストール先として指定できるかだったかも)が決められると記憶していますので、起動に使用する場合はMOドラブ側でDIP SW等で切り換えてやる必要が有ったと記憶しているのですが、違いましたっけ?
2021-06-21 09:51:17
>WINDYさん
ご指摘ありがとうございます。
Panasonic CDドライブと MOドライブがONの状態の時だけ
MOドライブが使えたので試してみたのです。
Towns OS V2.1 L51のCD-ROMは起動しますが、HDインストールでMOに書き込めません。
書き込み時にMOのエラーが出てきて続行できません。
唯一、V2.1 L10のみSCSI HDDで起動して、Qドライブからインストールできましたので
MOの再起動を試みました。
起動しようとするのですが、メモリ不足、EMS、またはHMMを解除してくださいと出ます。
KドライブにはDOS V6.2とWindows3.1がインストールしてあります。
また、MO[MOS-640]にDIP-SWはついていません。
90年代は MOにインストールしていました。
DIP-SWはついていなかったように思います。
2021-06-21 11:46:55
MOの起動はHDDモードで初期化してあれば起動するようですね。
また、CD-Rに
CDSDMINI.SYS
CDISC2.SYS
ASPIFM.SYS
が書き込んでありました。
使い方はすっかり忘れております。今はもう必要ありませんですよね。
2021-06-22 06:25:00
>91 nanさん
記憶では、MOをリムーバブルメディアとして認識させるのにはセミIBMフォーマットでフォーマットする必要が有ったと思います。
それ以外、DOSやT-OSでの区画設定とフォーマットで認識させた場合はHDDと同じ論理フォーマットとなったと思います。 すっかり忘れているので実機で試すのが一番ですが、我が家のMOは生きているのだろうか・・・
CDSDMINI.SYSやCDISC2.SYSは、YSSCSICD.SYSで置き換える事を目標に山川機長さんが開発されている物ですが、何かの役には立つと思います。
2021-06-22 09:11:23
以前、救済IPLからSCSI CDのTowns OSを起動しようとして、自分の環境ではパフォーマンスの問題が生じたり、
FASTモードで起動しなかった件ですが、ドライブをYAMAHAからPlextorに変更したところ、
互換モードでもFASTモードでも今までが嘘のように軽く、ストレスなく動くようになりました。
YAMAHAのときはSCSI IDを5か6にすると若干軽くなったのでそのように設定してあります。
まさかドライブを変えるだけでこんなに差が出るとは。これは相性問題ですね。
CDドライブのメーカー情報を頂いたnanさん、ありがとうございました。
2022-02-06 02:23:43
いろいろ実験していただき、ありがとうございます!
動かないドライブは、多分もともとTOWNSのSCSIにCD-ROMドライブを接続することを想定していないと思うので、なにかの相性問題があるのかもしれないですね。IPLまで読み込んでくれていればIPL側で何か手があるかもしれない気がしますが、IPL読み込んでメニュー画面が出ないことにはどうにも。。。ん?FASTモードで動かないということはI/O書くときにディレイを入れると良かったりするのかな?SCSIコントローラーがCPUについていけてないのだろうか。
2022-02-06 07:17:06
YAMAHAドライブは既に外してあるので今すぐは実験できないのですが、
ディレイについては以前 >>20 で効果があり、HCの互換モードで起動できるようになりましたので、
何らかの効果はあるかも知れませんが、細かいところは自分には分かりません(^^;
>>83 のnanさんの検証でもYAMAHAの場合どれも起動しないとなっていますね。
2022-02-06 12:09:02
いやあ、INT 2Fドライブ追加してもTowns OS V2.1 L31でドライブ選択のアイコンが出ない原因究明しましたよ。
V2.1 L31だと、DOSのCurrent Directory Structureではなく、Drive Parameter Block個数を元に、Aドライブから順にアイコン作ってるんですね。INT 2Fドライブとして追加したドライブはDrive Parameter Blockを持ってないので個数に数えられてなかったんですね。さらにドライブレターが連続してないと追加されないんですね。CD-ROMドライブはQドライブ決め打ちになってるようで、AUTOEXEC.BATのMSCDEXのドライブレターをPとかに切り替えるとTowns MENUからアクセスできなりました。
ドライブアイコンを追加している個所以外は間が飛んでるドライブがあっても大丈夫になっているのですが。ドライブの有無を表すテーブルがあって、途中で止めて適当なところに0 (FFFFhがドライブ無し)を書き込んでやると対応するドライブが現れるのですが、実際のところはTMENU.EXGにパッチを当てない限りそれは無理。おそらく、Townsシステムソフトウェアについてきたバージョンの他に、例えばF-BASIC 386などについてきたバージョンなどちょっと違ってるから全部のパッチを書くのは多分無理ですね。
DOSのDPBカウントって勝手に増やしても大丈夫なのだろうか。実験した感じだと大丈夫っぽかったけど。あるいはダミーのDPB追加してしまおうかな。あとTowns MENUから見えるようにしたら一応使えるようになりそうなんですが。
2022-02-09 23:01:43
↑あ、しまった。雑談スレッドに書こうと思ったのに間違えた。
2022-02-11 01:57:37
折角CXを出しているので>>95の確認をしてみました。HCじゃなくCXに繋いでみたかったので。
件のCD-RWドライブ(24倍速)をCXに繋ぎ、SCSI ID5で起動させています。起動メディアはFDです。
HRで動く筈のライザンバーがHCのSCSIでは起動しないのがずっと引っ掛かっていたので試してみました。
結果ですが、互換モードでTowns OS V2.1L51は安定して動作しました。アフターバーナーとMEMORIESも快適に動作しました。
ライザンバーは残念ながらメーカーロゴが乱れて黒画面から進みませんでした。HCと同じです。
高速モードでのTownsOSは"INTERCEPTED IO.SYS. INSTALLED INT 93H HOOK."というメッセージが出るところで止まってしまいました。
それでもごく希に起動できて、その場合は高速モードのままでも安定してます。
以上のことから、高速モードでは何らかの理由で不安定になるということが分かりました。
386Townsの高速モードはメモリウエイトがノーウエイトになる程度の差しかないと思っていたので意外です。
古い機種は純正キーボードがないと互換モードにするまでが一苦労ですので、
検証では山川さんのサイトに載っているTmenu入りFDが活躍してくれました。
FASTモード時に何が影響しているのかは不明ですがディレイが入れば高速モードでもTownsOSのCDは起動できるかも知れませんね。
まあこのドライブでも互換モードでちゃんと動くことが確認できたのは収穫でした。
2022-02-23 02:20:47
> D-Typeさん
CXでのテストありがとうございます! INSTALLED INT 93H HOOK まで出ているということは、YSSCSICD.SYSの中ですね。(CDIPLはIO.SYSがMSDOS.SYSのインストールを終えたタイミングを捕まえて無理やりYSSCSICD.SYSをインストールする)
ということは、この部分をSCSI I/Oを直接攻撃するように書き替えたら動くかな?やってみます。
2022-02-23 06:33:52
>山川機長さん
よろしくです!
2022-02-23 12:32:21