FMTowns実機や各種FMTownsエミュレータを使用する上での質問事項
2020-07-28 13:20:43
最近「津軽」を知って使わせていただいております。と言ってもまだ起動に成功したところですが・・。
使うのに英語なので難しいですが、マウントせずに起動できるので嬉しいです。
質問があります。ドラゴンナイト3を起動させた後に、キーボードを押しても何も反応しません。
どうしたらいいのでしょうか?
OSはWindows10です。最近エミュレータを始めたばかりの初心者ですがよろしくお願いいたします。
2022-05-04 15:48:37
むむむ、キーボードが反応しませんか。Dragon Knight IIIは自分ではテストしていないのですが、Wikiの方で動作したとの報告が上がっているので、多分使えると思います。なんとか原因を特定しましょう。
他のソフトではキーボードも反応していますか?
2022-05-04 23:26:21
Dragon Knight IIIってキーボード非対応ではありませんでしたっけ。
パッドで操作していたような・・・。
もし実機で使われた経験がおありでしたら、その頃はキーボードで操作されていたのでしょうか?
説明書を持ってはいるのですが、すぐに取り出せる場所ではありませんでした。
もし説明書が必要な状況になりましたらお声をおかけください。
2022-05-05 00:23:30
おおなるほど。パッド対応だった場合は、デフォルトはUSB接続のゲームパッドをTownsPadとして使うようになっていますが、割り当てをキーボードに変更することができます。GUIであればGamePortタブから、CUIであれば -GAMEPORT0 KEY オプションで矢印キーとZ,X,C,Vキーがパッドになるのでお試しください。
2022-05-05 00:28:31
山川機長さん、aochanさん。
ありがとうございます。GamePortタブの設定で動きました。
めちゃめちゃ嬉しいです(涙)。
ありがとうございました。
これからも応援しております。
2022-05-05 08:12:23
度々申し訳ございません。
aochanさん、説明書をもしよろしければ拝見させていただくことってできますでしょうか?
2022-05-05 08:27:34
動作したとのこと、良かったです!引き続き津軽をよろしくお願いします!
2022-05-05 12:11:38
説明書を見たところ、PC-98、X68、TOWNS共通の冊子でした。
操作の方ですがパッド専用が確定です。
使用するのは上下左右ABのみなので、そのままプレーされて問題ないと思いますよ。
2022-05-05 15:30:59
山川機長さん、aochanさん。
本当にありがとうございました。
2022-05-05 17:10:24
aochanさん。
度々申し訳ございません。そうでしたか、やはり共通でしたか。
大変お手数をおかけいたしました。
山川機長さん、aochanさん。
皆様方に少しでも追いつけるように頑張ります。
これからも応援しております。
本当にありがとうございました。
2022-05-05 17:33:29
>初心者さん
管理人のWINDYです。
既にある意味解決済みですが、解決できて良かったです。
スレッドに関してはここで良いと思います。また、スレッド自体は必要であれば各自で作成できますので、適当なスレッドが内容であれば自由に作成していただいて構いません。
それと、別に構わないのですが気が向いたらお名前も考えておいてください。
流石に初心者さんだと、同じお名前の方が増殖しそうなんで・・・・
ついでに皆さんに聞きたい事が有るのですが、実機~PC間のデータのやりとりってどうされてます?
FDでちまちまとやるんですが、実機側のFDが悪いのかメディアが悪いのか判りませんが度々エラーが出るので困ってます。(あと、大きなファイルだと心も折れる)
LANカードが有るのでネットワークを構築しようかとも思うのですが、何か良い方法でやり取りされている方はいらっしゃいますか?
2022-05-10 23:31:23
小さいファイルはRS-232Cリバースケーブルで接続し、Z-MODEMで転送しています。
FDより遅いですが、送信側の操作だけでよいので。
大きいファイルになると、SCSI2SDからSDカードを抜いてPCに接続してコピーですね。
(mount -t msdos -o loop,offset=1536,sizelimit=524288000,codepage=932,uid=... といった感じで)
2022-05-11 00:16:03
自分もPCとTownsをリバースケーブルで繋いで、小さいファイルはRS-232でやり取りしています。
HDDはSCSIエミュレータに置き換えているので、そこからSSDに書き出したイメージをWindows上のDiskExplorarで開いて読み書きしています。
FMHDのイメージファイルへのアクセスにはunztoolsのfmimg2を使っていますがWin11でも動作に問題はありません。
イメージごと書き換えてるのでSCSI側も耐久性の都合上SSDにしています。
LANカードをお持ちでしたらTCP/IPとかNetBEUIとかですかね。LANカードを持っていないのでやったことはないのですが。
DSLINKカードも最近ますます高額になってなかなか手に入れられないですね。
2022-05-11 03:15:54
僕もRS232C経由XMODEM中心で、大きなファイルだと、HDDイメージに書いてSCSI2SDに送る方法ですね。僕もLANカードがあるので、ネットワーク経由で送りたいのですが、問題はTOWNS用のドライバが無いですね。RATOCのLANカードなのでRATOCのドライバとされるものをダウンロードしてみたのですが、Windows用ドライバのようでTowns OSから使えるのか、使えたとしてもFTPとかユーティリティが無いですね。
2022-05-11 09:03:45
みなさん、有り難うございます。
意外と皆さんRS232C経由なんですね、クロスケーブルを作ろうかなぁ。
でもひねくれているので、この場合はLANで挑戦しようかなぁ。 ドライバディスクは有るし。 茨の道のような気もしますが。
(WINDOWS95と言う秘密兵器を使うと言う最終手段は、リブートが必要になるので本当に最終手段かな)
REX-3586/87のドライバは未だにダウンロードできそうですね、見たところDOS用のドライバも入ってそうですが > 山川機長さん
https://www.ratocsystems.com/services/driver/lan/3586.html
2022-05-11 09:54:43
うーん、そのドライバに入ってるSYSファイルはTownsOSで使えるのか試してないのですが、仮にドライバが入ったとしても、FTPとかユーティリティが無いという問題があるんですよね。自分で書こうとしてもAPIがわからんという問題があるのと、何か書くなら他のTOWNSユーザにもメリットがあるようなものを書こう、と思ってるのですが、LANカードがレアなもんでがんばって書いてもあまりメリット無いような気もするんですよね。
その意味では、そのうち64MBのRAMカードとか作れたらPC側のPCMCIAポートという問題はあるものの、データ転送に使えそうですね。
それから、うちだけかもしれないですが、RS232Cのケーブルが長いとノイズを拾ってしまって38400bps出てくれないので、うちはUSB to Serialの先に25pin-9pin変換アダプタ、Gender Changer、クロスアダプタと、アダプタだけでつなげてます。
2022-05-12 05:49:11
>17 山川機長さん
NDISドライバかODIドライバを使うと思いますので、"MSLANMAN.DOS"ディレクトリ配下の"ND3586.DOS"がドライバのような気がします。
パケットドライバが提供されていますので、mTCPを移植すれば使えるような気もします。 http://brutmanlabs.org/mTCP/
ただ、こんな事で津軽の開発が止まるのもナンセンスなので、津軽の開発を優先させてください。 仰る通りTOWNSユーザーにとってのメリットが低いと思います。
2022-05-12 16:50:58
どうやら1MB・Parallel・5V対応のSRAMがあるようなので、
https://www.mouser.com/c/semiconductors/memory-ics/sram/?organization=2%20M%20x%208%2F1%20M%20x%2016&supply%20voltage%20-%20max=5.5%20V
↑これを使えば実機・PC間ファイル転送用メモリカード作れますね。
注意点としては、TICM.SYSはREGビットを1にしたとき内容が書いてないとメモリカードではないと判断してしまうので、REG=1のときデータバスにFFFFが出るように書く必要がありますが、あるいはTICM.SYSにパッチを当てるぐらい津軽を使えば簡単なので、TOWNS側はなんとかなりそうで、転送するファイルは津軽(UNZも行けるのかな?)のメモリカードイメージに書いてしまえばOKと思います。あるいは、メモリカードイメージを作ればいいんだから、そのぐらいは独立したプログラムを書くことも可能そうです。BPBを作っておけばEDITDISKでも開けるかも。あと、まじめにバッテリバックアップしないといかんですね。あるいはUSB端子をつけて転送中だけ外部から給電できるようにしてしまうとバッテリー無くても良くて環境にやさしいかも知らんですね。
どうやってPCからメモリカードにイメージを転送するかというのが問題で、できれば手軽にUSBか何かでメモリカードライターをつなげてデータが流し込めればいいのですが、現実的に思いつくのはArduinoでしょうか。それだとほぼUSBスピードで書き込めるのでなんとかなるような気がします。(ピンが足りん、と、思ってたら電子工学科出身の友達にシフトレジスタ使ったら?と言われてやっぱり聞く人に聞くものだと思った)カードライターのテストは既にFRAMカードがあるから独立してできるし。
これから大学夏休みだから設計してみようかな。あ、学部生のプロジェクトにいいような気がしてきた。
2022-05-13 01:22:49
FM-7用PCMCIAメモリカードリーダー作りたくなってきた。(暴走)
2022-05-13 01:28:50
現状ではギリギリUSB接続タイプのPCカードリーダーは入手可能ですが、CFやSDカードリーダーに比べると手を出しにくい価格です。
「CFカードって、PCカードから信号線を削除した規格だったよな」と思ったので調べてみたら、アドレスラインが削られている。
しかも、上位16本も・・・・ これでは2Kまでしか扱えないので却下ですね。
Arduinoを使う方法は良いかもしれませんね。
SDカードスロットを付ければおまけでSDカードも扱えるようになるだろうし。(その必要があるかどうかは別として)
2022-05-13 09:36:14
ああ、そう言えばUSB→パラレル変換ICがFTDIに有ったので、それを使う手が有ります。
PC側から全ての制御を行う必要が有りますが、不可能では無いのか。
PCチップは持っているので、コネクタと付加回路を買えば試せるかも知れません。
2022-05-13 10:01:08
TOWNS実機とPCはLANでやり取りしています。仕様プロトコルはNetWare(IPX)であまりメモリを食わないのでLAN Managerのように使うときだけconfig.sys書き換えて…みたいなことをしなくてもいいので重宝しています。
サーバはLinux/FreeBSDで動作するOSSのmars_nwe(http://www.compu-art.de/mars_nwe/)というのを使っています。TOWNS相手だと最新のバージョンではだめで古いバージョン(pl19以前)を探してインストールしなければならないのですが。あと、LinuxもFreeBSDも今はIPXをサポートされなくなったので古いもの(DebianだとStretch以前、FreBSDだと8.4以前)である必要があります。
最大の難点はクライアント側で動かすソフト一式が入手困難となってしまったことです。10年前まではノベルのサイトからダウンロードできたのですが…
2022-05-13 12:38:19
>KtJ Dragonさん
そうなんですね、NetWareだとメモリをあまりくわないのですね。 でも、入手できそうに有りませんね。残念。
通信プロトコル近辺はチンプンカンプンに近いので、難航することが予想されるわけですが、一度(過去にやったことが有るような記憶が有りますが)トライしてみようと思います。
でも、DOS関連で何かと古いので情報も然りなんですが、サポートの問題も有りなんですね。
WindowsでもSMB1が廃止されたと言うことですが、ひょっとしてこれっってPCと直接接続できないって事かな?って思ってます。
まあ、NASが見れればNAS経由でファイルは送れるから大丈夫かなとは思っています。
2022-05-13 18:13:28
昔はWindows95のLANでファイル転送をしていましたが、今は電池切れもあってBUFFALOのASPIマネージャを使用するようになりました。
TOWNS本体にはSCSI接続のPCMCIAカードリーダー(I-O DATAのCARDDOCK EX/SC)を接続し、起動用FDはMS-DOS6.2で作成してASPIマネージャ、ASPIディスクドライバを登録して、
専用フォーマッタで2GBのフラッシュメモリ(SD、CFなど)の127MBだけ確保します。
Windows10では挿すだけで127MBのフラッシュメモリとして使用可能です。
フリーのASPIFMらしきドライバも入手したのですが、フリーのディスクドライバSCSIDISK.SYSを読み込んだあたりで「ブロックデバイスが多すぎます」のエラーが出て止まっていました。
他のディスクドライバも試しましたがダメでした。
MO、CD用であったのか、それともHDDは32MB未満でないと行けなかったか、ASPIFMが別物であったか、正式バージョンでなかったかもしれません。
2022-05-13 23:52:54
>WINDYさん
NetWareのクライアント(とログインに必要な実行ファイル)はNetWareサーバ4以前の日本語版に付属しており、時々ヤフオクに出品されているようです。FM50L186/187のODIドライバもついてきます。
SambaのドキュメントによればこちらもSMB1(やLM認証)はいずれ使えなくなるようです。そのうちにNASもDOSやXP以前のWindowsから参照できなくなりそうです(今のNASはまだLM認証にできるんでしょうか?)。
2022-05-14 00:30:02
>26 KtJ Dragonさん
情報を有り難うございます。
NASのLM認証に関しては、QNAPではNTLMv1認証が最低ラインのようでLM認証は駄目なような気がします。
VirtualBOXにWinXP等をを入れてTOWNSと接続する・・・ しかない?? 出来るような気がするが、これは面倒くさいような気がする。
2022-05-16 09:35:56
実機~PC間のデータのやりとりの続きになりますが、
KtJ DragonさんのサイトでKUMADSKなるディスクドライバの紹介を見つけて使用したところ、MS-DOS6.2+CardDock EX/SCの環境で、Windows10で初期化した2GBフラッシュメモリの読み書きに成功しました。
MS-DOS6.2専用ながらも大変便利です。
BUFFALOのASPIマネージャですとDOS3.1ベースのTownsOSでも128MB以下(未満?)で使用可能ですが、販売終了のようで誰でもお手軽にとはいかずお勧めし難いところでした。
2022-07-24 12:22:27
>28 aochanさん
情報を有り難うございます。
SCSI接続のPCカードアダプタにSCSIドライバの組み合わせですね、なるほど! これは結構便利かもしれませんね。
残念ながら私はSCSI接続のPCカードアダプタを持ってませんのでそのままの形で利用することは出来ませんが・・・・・
SCSI接続のCD-ROMドライブは有るので、WINDOWSで焼いたCD-RWが使えるかも知れないので試してみようと思います。
折角なんでFRAMメモリカードから内蔵HDD起動して、SCSI接続のドライブのCD-RWを読んでみよう。
2022-07-25 09:07:43
CD-RWいいですね。
外付けCDドライブだからCD-RWが読める可能性が高そうですし、FRAMカードを使えばドライバも不要ですね。
2022-07-26 21:28:45
CD-RWを使うメリットが「メディアが無駄にならない」と言う一点だけなのですが、素直にTownsOSをCD-RWに焼いてFRAMカードから起動する事自体は可能でした。
ただし、我が家のHCはDOS6ベースなのでその状態ではHDDには一切アクセスできないので意味がない事も思い出しました。
FRAMカードから立ち上げて内蔵HDD起動した場合には、当然のことながらYSSCSI.SYSが効かないのでSCSI接続のCDドライブはアクセスできないので、CONFIG.SYSにYSSCSI.SYSを登録して起動してみたのですが、今のところはMSCDEXでドライバが見つからないとのエラーが出ています。
それはさておき、上記の作業を色々と行なうにあたりFDを1.2MBでフォーマットする事が有ったのですが現在のWINDOWS10では普通にはフォーマットできないのですが下記のURLにあるツールでUSB接続のFDDを用いて1.2MBフォーマットが出来ましたので報告しておきます。
http://bauxite.sakura.ne.jp/software/dos/freedos.htm
(Driver and Tools for FreeDOS(98)の一番下、[おまけ]にあります)
2022-08-24 11:24:17
1.2MBフォーマッタって存在していたのですね。
今まではコマンドプロンプトでフォーマットして(失敗のメッセージが表示される)、フォーマット済みの1.2MBイメージファイルを書き込む2段作業をしていました。
YSSCSICDはTownsOS対応ソフトに的を絞っているのでしょうね。
私もMS-DOS6.2でYSSCSICD.SYSを試しまして、外付けCDドライブが認識されない事を確認しました。
MS-DOS6.2で外付けCDドライブを使用するには、ASPIマネージャーを使用するほか無いのかな。
BUFFALOのASPIマネージャーとそれに付属のCDドライバやCDSD-miniでは使用できました。
試したことは無いのですが、MS-DOS6.2で使用できるCDドライバが無い場合は
YSSCSICDまたはFRAMカードとTownsシステムソフトウェア、それに加えてVectorにある128MB以上の区画を読み書きするドライバEXTDRVで、CD-RWからMS-DOS6.2領域へファイルコピー出来るかもしれませんね。
2022-09-03 09:55:37
削除済
2022-10-02 11:53:18
最近までWin95をインストールして動かしてみていたのですが、
RS-232Cにクロスケーブルを繋いでLANにNull modemで繋いでネットに出ることに成功しました。
といっても既にWin95ではhttps接続が必要なページは表示できないため、
vectorのソフトライブラリとかは見られないのですが。
うまくすればsmb1とかcifs辺りを使ってLANでファイル共有ができるかも知れないですね。
まあ、ファイル転送はWindowsPCを直結したほうが手っ取り早いのですが。
上限38400bpsでインターネットに繋がってgoogleが見られたので一旦一区切りとしました。
なお、一つ前の書き込みで間違って書きかけで書いてしまいました。
可能でしたら削除をお願いします。
2022-10-02 12:10:31
はじめまして。津軽利用しています
津軽ですが、ホスト側のマウスカーソルを消す方法はありますか?
津軽側のマウスカーソルとホスト側のマウスカーソルと二重に表示されてしまいまして
よろしくお願いします
2022-10-08 21:34:58
>catさん
すみません、今のところホストのカーソルは消えないようになってます。今まであまり需要がなかったのと、VM上のマウスカーソル位置は少しのラグがあってホストのカーソルに追いついてくるので、見えていた方が安心なので消してません。カーソル消す需要って結構ありますかね?
2022-10-11 08:07:31
>山川機長さん
動作自体には支障がなかったので要望していませんでしたが、オリジナルのマウスカーソルなどが表示されているゲームなどでは気になっていたので自分もオプション設定で欲しい機能です。>マウスカーソルの非表示
マウスカーソルとは話が変わりますが、i486DX::Interrupt内で二か所存在するauto TempSS=state.SS();は、auto TempSS=state.SS().value;と値だけコピーされるようにしたほうがいいかもしれません。明確に差異が出る最適化ではないですがVSの警告メッセージで「コストのかかるコピー操作です。」とわざわざ表示される操作のようなので念の為。
2022-10-11 11:02:11
私自身は気になってはいませんでしたが、確かにシチュエーションによってはホスト側のマウスカーソルが無い方が良い場合もあるのかもしれません。
うんづではホイールによってどちらのマウスを操作するかを選べましたが、ホイールボタン(中ボタン)やホイールの回転で消せても良さそうですね。
2022-10-12 12:57:24
おおなるほど。結構需要はあったんですね。うーん、Windowsだったらすぐやり方わかるから、とりあえずWindows版からそういう機能対応しようかな。
BCCさん、
TempSS了解しました。INTは結構飛び交ってるので重要ですね。それから、Pull Requestの__assume(0);なんてよく見つけましたね!僕はVisual C++が出してくるアセンブリを見るとswitch-caseで範囲チェックが不要なときも範囲をわざわざチェックしてからジャンプしているようだったので、なんとかこの範囲チェックを無効化できないか#pragmaでそういうのが無いか結構探したのですが、見つからなくて挫折しました。
2022-10-17 11:00:43
>山機機長さん
VCの解析ツールでCPU負荷がかかっている箇所を調べてSwitch文一か所だけで16%ほどCPU時間を食っていたようなので、たしか「switch テーブルジャンプ」とかで検索して出てきた同じようにCPUのエミュレータ実装を解説するサイトの情報を参考にしました。
http://gigo.retrogames.com/t_lab/chapter1.html
これだけでもswitch文の負荷が1.6%と10分の1になり、pri timebalance値も1.3倍ほどでした。
指定せずコンパイラがswitch文をテーブルジャンプ化するのはおそらく
・caseの値が昇順になっている。
・caseでgotoやreturnを使ってswitchを抜けない
ことが条件かと思います。
opCodeRenumberTable配列を整理するのが面倒になってしまって__assume(0);のみの指定にしましたが、VC以外でコンパイルすることを考えたら整理しておいた方がいいかもしれません。
他にボトルネックになっているFetchInstructionも見てみたんですが、こちらは改善する方法はまだ見つかりません。
2022-10-17 20:17:27
すみません。誤字がありました。お許しを。
2022-10-17 20:23:52
山川機長さん、お返事ありがとうございます
マウスカーソルoffの機能今の所は非実装の件わかりました
今後のバージョンアップでカーソルON、OFFの選択ができると嬉しく思います
マウスがブラー表示みたいになるので、そこを気にしてしまう事があります
2022-10-18 15:18:57
> BCCさん、
まあ、高速化はパズルを解くようなものなので、新しい解が思いつくとちょっと速くなって、を繰り返す感じですよね。
ジャンプテーブルですが、VCが出してくるアセンブリを見ると、一応デフォルトでcaseがある程度を超えてif-elseの連続よりも速いと判定した場合は、ジャンプテーブルを使うようです。
ただ、問題だったのが、caseの値が連続していない場合、この範囲はこのジャンプテーブル、別の範囲は別のジャンプテーブルというように、ジャンプテーブルをいくつも用意して、どのテーブルを使うかまず範囲チェックしてから飛ぶ、みたいなコードを出して来るので、とくに処理が単純なインストラクションに関して相対的に遅くなっていました。
また、仮にジャンプテーブルをひとつにまとめることができたとしても、
CMP EAX,case_minimum
JB no_case
CMP EAX,case_maximum
JA no_case
JMP [EAX*8+jump_table]
みたいな処理になっていて、そもそもdefaultに飛ぶ可能性がゼロの場合、範囲チェック自体をスキップさせられないかと思って、#pragmaが無いか探していたのですが、多分解は__assume(0);だったんですね。あとは、頻繁に出てくるインストラクションをジャンプ元の近くに置くことでキャッシュにヒットしやすくする、というような可能性もあるので、多分、caseの値は、上り順にしなくても値を連続にする(範囲チェックを最小にする)ことでスピードが上がると思うんですがね。
しかし、returnとgotoで変わるというのも、変える必要ないはずなんですが、オプティマイザがギブアップしてしまうんでしょうかね。
> catさん、
実はカーソルオフの需要が結構ありそうなので、近いうちに実装しますので、少しお待ちください。
2022-10-20 00:45:39
Interruptのauto TempSS=state.SS().valueとFetchOperandについてPull requestsしておきました。
auto &op1=instOp.op1;
auto &op2=instOp.op2;
とswitch文前でなってますが、op1のみしか参照されない、そもそも両方とも使用されないcaseがある、参照されてもそれぞれ1回のみなのでないほうがよいかもしれません。
2022-10-23 11:05:20
BCCさん、pinさん、
githubのdiscussionありがとうございました!まあ、高速化はパズルを解いていくようなものなので、のんびりやりましょう。あと、C++で同じ関数内で
auto &op1=instOp.op1;
auto &op2=instOp.op2;
こういうのがあると、ポインタとして変数は作られなくて(変数作ってないからポインタのようにリファレンスを割り当てなおしたりできない)、エイリアスとして働くはずなのでCPU時間のロスはゼロだと思います。auto *op2=&instOp.op2; みたいになってると、ポインタ変数を作ってポインタの値を代入してというステップが入るので、数クロック食う鴨しれないんですがね。
ところで、最近衝撃を受けたんですが、ゲーム保存協会からCRCエラーが出て読めなくなったディスクがCyclomethiconeという化粧品みたいな薬品を塗ると復活すると聞いて、実験してみたところ、次々にディスクが復活してます。汚れてそうな部分をまず無水アイソプロピルアルコールでクリーンして、その上にCyclomethiconeを塗って乾かすという作業なのですが、これまで相当状態が悪かったディスクが読めるようになったケースが多数あり、それも昨日までは、試す前に塗ってから試したので本当に状態が悪かったのか不明だったのですが、昨日はなんと一度CRCエラーが出て読めなかったFM77AV用「琥珀色の遺言」が読めるようになりました。
ただ、いくつか注意点があって、
- ディスクをドライブに入れてモーターがオンになったときシャカシャカと音がするものは復活できない。何かこすれるもの(ゴミとか)が入っているのでディスク移植が必要で、3.5inchだと結構難しいらしい。現在研究中、というか既に保存協会では手法を確立しているっぽいけど、ドキュメントにはなってないっぽい。
- Cyclomethiconeを塗るとき、塗りすぎて窓の外に広がって行かないように注意する必要がある。ディスクの内部の布にしみ込んでしまうと多分布がふやけてシャカシャカ音が出始める。そのために、もう復活の可能性のないようなダミーディスクを用意して、塗るのに使う綿棒などにしみ込み過ぎていないかダミーディスクに塗って見て、大丈夫なら本番ディスクに塗る。
- 根気が必要。5インチと違って、どこがインデックスホールかわかりにくいので、エラーが出てるトラックは一周塗らなくてはならないけど、あの小さい窓で塗って乾かしてを繰り返すと、ディスク一枚やるのに1~2時間ぐらいかかる。
- Cyclomethiconeによる復活は一時的なものである場合があるので、KryofluxやPaulineなど高精度スキャンができる状態で復活させて、復活したらすぐ読んで保存しとく。
なお、塗るのにはカモイス・ティップが強くお勧めで、ヘッドにCyclomethiconeが付着しても大丈夫だそうです。あと、シャカシャカ、カタカタ音がする場合でも、軽いものであれば割と行けます。というか、実機使ってた時も多少シャカシャカ・カタカタと音がするディスク読めてたと思うんですよね。
Dinosaurの原本がCRCエラーが出て読めなくなってたんですが、シャカシャカ音は聞こえないので復活にトライして、Paulineがあるから高解像度スキャン取って、実機で起動させてみようと思います。一応、Dinosaurのプロテクトは既にD77で完全に再現できることはわかっているので、高解像度スキャンをしなおす意味はないんですが、一応念のためというのと、実機でオープニングだけでも一度見てみたいという感じですね。
ちなみに、なぜこれで復活するかというと、どうもディスクのエラーは大半が磁気的なロスではなく物理的な問題で読めないそうです。ディスクの読み込みはパルス幅が全てで、もしもディスクに微妙な凹凸ができたり、布にホコリがたまってスムーズな回転ができなくなると、回転ムラが大きくなってきて、ついにパルス幅が許容範囲を超えてエラーが出るようになるそうです。Cyclomethiconeは多分凹凸を埋めるのか、あるいは潤滑剤みたいに作用してスムーズな回転を復活させるもののようです。
Dragon Slayer英雄伝説も復活させたいんだけど、シャカシャカ音がするんですよね。これ、ちょっと逆に大量のCyclomethiconeを投入して布が柔らかくなってる間に読ませるとかいう手はないだろうかなどと考えてるんですが。
2022-10-26 00:56:33
すげえ!Dinosaurと信長の野望・覇王伝のディスク復活した!
というわけで、Dinosaurを実機で起動できましたが、確かに、最初の不協和音のとこ、津軽だとちょっと強すぎるかな。微妙に違うような。でもスピーカーの差のような。
2022-10-26 12:50:45
そういえば、高速化と言えば、「陸奥」を書いてて思ったのですが、現状では、Deviceクラスにvirtual関数のIOReadByte / IOWriteByteみたいな関数を作って、その中でさらにswitch-caseでそれぞれに分岐するような対応してましたが、これ、別にデバイスが増えたり減ったりするわけでもないので、switch-caseで直接処理する関数に飛ぶ方が結構速いはずなんですよね。今だと、まずIOアドレスからデバイスのポインタを取ってきて、そのRTTIから関数のアドレスをゲットして間接コールで IORead / IOWriteに飛び、その中で switch-case で分岐、になってるので。そもそもvirtual関数だととび先をゲットするのにどうしてもoutside cacheアクセスが発生して遅そうな気がするんですよね。それともRTTI領域はアクセスが多いからキャッシュに入れっぱなしにするみたいな工夫してるのだろうか。CPUが自動判別するのは難しいけど、最近のCPUだと「この辺はアクセスが多いからキャッシュに入れとけ」みたいな指定するインストラクションとか内部レジスタとかあるのかな?
あとメモリアクセスも同じなんだよな。しかもこれは相当頻繁に起きてるからここのvirtualやめるだけで多分目に見えて速度上がるんだけどな。ちょっと壊さずに構造変える工法が思いつかない。。。。。書いててちょっと思いついた。後で試してみるかな。
この部分は変更しても、拡張性という点でも、新しいデバイスをサポートするときは、VMクラスのIORead/IOWriteにcaseを追加するのを忘れなければいいだけなのでそんなに問題にもならないと思いますし。ということで、今動いてるものを壊さずに変更する工程も大体考えたのでちょっとずつやっていこうと思ってるんですがね。
動いてるものを壊さずに構造を変えていくのも結構アートですよね、と、思うのでデバッグ技術と合わせてうちのプログラミングの授業で教えたいと思うけど巨大な例題を与えても学生はついてこれないし。せっかくYSFLIGHTとか津軽とか陸奥とかあるから授業にも使いたいんだけどなあ。
2022-10-28 02:31:27
githubに、マウスカーソルオン・オフ機能追加したソースをPUSHしました。これまでデフォルトでScroll LockキーでPause/Resumeでしたが、Shift+Scroll Lockでホストのマウスカーソルをオン・オフできるようにしてみました。まだWindowsのみ対応で、macOSとLinuxではカーソルオフになりません。よかったらお試しください。
2022-10-29 14:13:18
すげえ!一日がかりで何度もCyclomethicone塗りなおしてスキャンを繰り返すことになったけど、フロッピーディスク版FM OASYSもディスクイメージ作成に成功した!
ディスク版だと編集始めようとするとなにやらRead Addressに失敗してディスク編集開始しませんね。調べて津軽修正しなきゃ。
なおFM OASYSのイメージ化、Maked77だと最初のトラックがうまくできないですね。トラック1以降だとうまく読みますが。しかし、最近Paulineを導入したので、それを使って大体読み込んだものの、CRCエラーがどうしても消えなかったので、最後は実機ドライブで一部トラックを読ませたら読んだので、合わせてフランケンイメージにしました。MakeD77はDisk BIOS使ってるから、規格外のフォーマットだとときどき失敗しますね。まじめにI/O直接攻撃するように書き替えようと思ったままになってますが。
2022-10-31 13:30:12
>45 山川機長さん
Cyclomethiconeですか、そのような物が有るんですね。
興味があったので少しだけ調べてみましたが私が調べた限りではシリコーンオイルの類の様なんですが・・・ 果たして同じものを指しているのか不明です。
シリコーンだとすると塗布して拭き取ってもスベスベするので確かにディスク上の汚れやゴミの影響でディスクの回転が不安定になっている場合には効きそうですね。
あと、FM OASYSのトラック1は単密度だと言う記憶が・・・ どこで見たかなぁ? どこかで見た覚えが有ります。
2022-11-02 15:08:44
おおなるほど、FM OASYSのトラック1は既に知ってる人いたんですね。そうなんです。FMフォーマットでした。ということで、 https://github.com/captainys/FM ここのMAKED77.EXPをFM対応にしました。最初MFMで読んでみてセクタが見つからなかったらFMで再トライするようになってます。
が、今はMAKAED77.EXPはDiskBIOSでやってますが、BIOSを使うといろいろ制限が多いので(とくにRead Trackの結果も保存したいけどそれができない)、I/Oを直接攻撃するように書き換えようと思ったのですが、TOWNSのFDCのI/OってIRQフラグが出てないんですね。FDCがReadyになるまで待つ方法だと何かDMAとタイミングが合わないのか、どときどきDMAが失神する現象が起きてます。なんとかFDCからのIRQをポーリングで取れないかやっているのですが、High-Cで
#define IO_PIC0_IRR 0x00
#define IO_PIC0_OCW3 0x00
void WaitFDCIRQ(void)
{
_outp(IO_PIC0_OCW3,0x0A); // pp.65 of FM TOWNS Technical Databook
while(0==(_inp(IO_PIC0_IRR)&IRR_FDC))
{
}
}
これで取れるかと思ったんですが、取れないんですよね。プロテクテドモードからだとIRQをTake Overするのがやたらややこしいし、この関数に入る前にCLIしているのでFDCの割込みに取られちゃってるということはないはず(津軽上だと動く)のですが。TOWNSでFDCからのIRQフラグをポーリングで知る方法ってだれか知ってます?
2022-11-03 01:04:50
うーむ、PICにポーリングモードというのを見つけたから I/O 00H に 0Ah じゃなく 0Eh を書き込んでみたが、たしかにIRRが取れるようになったけど、ときどき取りこぼして無限ループ入りするなあ。惜しい。やっぱTOWNS実機ではIRQハンドラをなんとか乗っ取らないとFD読めないのかな。
2022-11-04 13:48:50
>52 山川機長さん
試された結果かもしれないのですが、これって割り込み管理BIOSを使っては駄目なのでしょうか?(INT AEH,AH=00H)
2022-11-07 14:41:09
ああ、割込み管理BIOS試してなかったですね。これ、プロテクテドモードから使ってもリアルモードのハンドラしか設定できないのではないかと思ってたんですが、ここ数日Watcom Cでリアルモード用に書こうとしてたので、使う価値あるかもしれない、と、思ったんですが、昨日考えてみたらセクタ読み込みにかかる時間計測しようとしても、コマンド出してから読み終わるまでだとヘッドが回ってセクタにたどりつくまでの時間もカウントしちゃうからFM77AVのYs2とかSilpheedみたいにセクタの最初のバイトから最後のバイトまでの読み込み時間を計測するタイプのプロテクトに使える情報抜き出せねえじゃん、ということに気が付いて、やっぱTOWNSの実機だとBIOSを使う以上の情報は抜き出せないような気がしてきています。それと同時に、TOWNSだとなぜこの手のプロテクトが無かったのかわかった気がしました。(DMAのカウンタが変わり始めたタイミングをつかまえるという手も考えたけど、DMAが動いてる状態でCPUがDMAのカウンタ読んだら競合が起こる気がする。)
MAKED77.EXPでTOWNS用のディスクのイメージ化だったらとくに困らないんですけどね。FM77用のディスクをイメージ化するとき、もう少し情報を抜き出したかったんですが。
2022-11-08 02:26:06
>54 山川機長さん
タイプIVコマンドでIRQを出すことは出来るけど、notREADY→READY,READY→notREADYのどちらも指定は出来るがREADYはFDD側での取り扱いとなる。
んで、FDD側の手持ち資料を見ましたがREADYに関する記述ではMOTOR ON後500ms後にLOWとしか書かれておらず・・・・ 外部回路が絡んでなければ頼りにならない信号ですね。
どちらにしても仰る通りデータを読んだ信号としては使えそうに無いとなると、FM-7/77/AVでのDRQ信号となる訳ですが、こちらの方は直接TOWNSのI/Oには出ていないのですが
MB8877のデータシートを見るとタイプIIとタイプIIIのDataRequestビットの項目に"This bit is a copy of the DRQ output"と書かれていますのでステータスレジスタ(I/O 0200H)
のbit1に出て来ているようです。
これって使えそうな気がしますが、如何でしょう?
2022-11-08 10:06:19
WINDYさん、
おおなるほど!と、思ったけど、ステータスを読んでしまうとIRRをクリアしてしまうはずだから、ちょっと微妙鴨しれません。通常のセクタは最初のバイトでIRQが出ることはないので大丈夫そうですが、FM-7でときどき見かける、ID MarkがあるけどData Markが無いみたいなセクタが来た時難しいかもしれないですね。現在DMAのカウンタが動き出したタイミングをセクタの開始と見てはどうかというアイディアを考えてます。
しかし、SCSIのディスクにアクセスすると次のフロッピーディスクアクセスでいつまで待ってもIRQがかかってこなくなる現象ではまってます。リアルモードで書いてるので、大きなバッファを取れないので、1セクタ読むとイメージファイルの追記して、を繰り返しているのですが、いったんSCSIアクセスすると高い確率で次のFDCへのコマンドでIRQが返ってこないんですね。パレットを使ってIRQ待ちループが回ってることは確認できているのですが。適当に40msのウェイトを入れたら成功する率が上がったので、おそらくfclose後もSCSIが何か終わってなくて、その影響でFDCとDMAが何かのデッドロックになってるのではないかと見てるんですが。
しかし、DMAのI/OにはReadyみたいなビットは出てないし、BIOSの挙動を見てもフロッピーディスクのセクタ読み込みで何か待ってるような感じはしないんですよね。SCSIへの書き込みはきちんとすべてのフェーズが終わってBIOS Callを抜けてくるから、DMAが一仕事終わって放心してる間になんか書いてしまっているとしか思えない。ウェイトを増やすとか、セクタ読み込みにタイムアウトのチェックを入れるとか考えてますが、正しい方法がわからんのが難しいですね。
2022-11-09 02:27:27
うーん、100msのウェイトにしたらより成功率が上がり、タイムアウトを入れたら当然タイムアウトしたセクタは読めないけど、次のセクタは普通に読むようになったところを見ると、FDCへのコマンドが無視されているとしか思えない。FDC StatusがReadyのときにコマンドを書いて無視されるというのはどういう状況なんだろう???あ、なお、割り込み管理BIOSを使うようにしてみましたが、結果変わらんですね。
ただ、Read Trackコマンド成功しますね。セクタ読み込み時間がキャプチャできて、Track Readの結果も取れたらTOWNS実機で取れる情報は多分これですべてになると思うんですが。
2022-11-09 07:58:37
山川機長さん
うーん、やっぱり現実世界では様々な要素が有って難しいですね。
uPD71071のデータシートを見たのですが今のところ、"これだ!"と思える記述が発見できていません。
気になったのはDMAによるデータ転送後にバスフリーを行う処理が有るのですが、この時間が規定されていないようで100msのウェイトの件は此処にかかっているような気がします。
I/Oの00A9Hのデバイスコントロールレジスタのbit0にBHLDが有るのですが、TOWNSの場合は0(バスリリースモード)で使用している関係でDMAリクエストは実行中のDMA処理が終わった後にしか受け付けてもらえない("無視される"とは書いてないのですが、無視されると思われる)ので、バスフリーが終わらないうちに次のリクエストが入っているのではないかと思われるところです。
なぜバスフリー処理の時間が明確に規定されていないかについては、ターゲット側(HDD等)の処理時間が係わるからじゃないかと思っています。
SCSIのデータ転送が終了したかどうかは、データレジスタを見てターゲットがコマンドコンプリートメッセージを送出したかで判断するようですが、SCSIのデータレジスタはアクセスするとACKを送出してしまう事から見ることは出来なさそうですね。
2022-11-09 09:41:15
↑に色々書いたのですが、SCSIとDMACで混乱してますね。(汗)
バスフリー処理の時間に関してはDMACのバスフリーはCPUバスに対してだからSCSI側のターゲット側処理時間は関係無いですね。
CPUバスなので、DMACクロックに対するサイクル数で表現されてそうですが、それがmsオーダーなんてDMACとしてあり得ない数値ですね。
原因は何だろう・・・
2022-11-09 10:04:26
いやあ、でもSCSI書き込み後にFDCが方針してしまうわけなので、SCSIとなんらかの関係があることは間違いないと思うんですがね。ただ、タイムアウトを見てリトライさせたらなんとなく動くようになったので、公開してみました。
https://github.com/captainys/FM/tree/master/TOWNS/FDDUMP
ここにソースとバイナリがあります。D77フォーマットでは表現できないセクタ読み込み時間と、Track Readコマンドの結果を保存するために.RDD (Real Disk Dump)フォーマットというファイル形式を勝手に作りました。また、値が変化するセクタは12回マルチサンプルするようになってます。そのままだと津軽や陸奥で使えないので、RDD2D77なるプログラムも書きましたが、いずれ津軽・陸奥で直接サポートしようと思ってます。
まあ、あの手この手を試しているうちにだんだん複雑になってしまって、Watcom Cのインラインアセンブラを多用しているので、あんまり読みやすくないですが、もしも、何でFDCがときどき放心するのか、気が付いたことがあったら教えていただけると助かりますね。
なお、津軽と陸奥は.D77EXT (あるいは.D7X)というファイルを.D77ファイルと同じディレクトリに置いておくと、セクタ読み込み時間の情報をそのファイルから読むように作ってあるので、Ys2とかSilpheedとか三国志とか琥珀色の遺言とかプロテクトそのまま再現できるようになってます。今のところ、PaulineとかFDShieldでキャプチャしたイメージから問題のセクタの読み込み時間を計測して手作業で.D77EXTファイルを書いて実験していましたが、このFDDUMP.EXEで作ったディスクイメージからRDD2D77で .D77 + .D7X に変換したディスクイメージは、そのまま陸奥で使えるはず、という予定なのですが、実機によるテストはこれから本格的にやらないといかんですね。
本当はThexderとかFire Crystalみたいな、木の葉隠れプロテクトも検出してそれも読み込みに対応したいんだけど、Read Addressでタイムアウトが頻発してるっぽいから、ちょっと難しいかもしれんですね。
2022-11-09 15:58:46
なお、FDDUMP.EXE、実機MXで琥珀色の遺言のディスク1のセクタ読み込み時間の計測成功しました!陸奥で起動からチェッカーの通過まで確認できました!
そうか、あと木の葉隠れに対応できればFM-7系に使われたプロテクトは(伝説の複数インデックスホールプロテクト以外)対応可能になるかな。というか、3.5インチではそもそもインデックスホールプロテクトは存在できないし。なんか考えよう。
2022-11-10 01:03:55
木の葉隠れプロテクト、なんと対応できましたというか対応できてました。少なくともMXのディスクドライブだと、Read Trackコマンドでセクタデータが化けないので、Read Trackした結果から解析するとあっさり隠れた本物セクタが見えてしまいました。(というか、なんでFM-7だとRead Trackであんなにデータが化けたんだろう?同じMB8877なのに。)最初Thexderの隠れセクタのうちのひとつがインデックスホールをまたいでいるので取れないかと思ったんですが、それは気のせいで取れてました。これだと、FM-7シリーズのプロテクトは僕の知ってる範囲ではすべてFDDUMP.EXEでキャプチャできますね。
あとは、ときどきFDCが放心状態になるのが格好悪いのでなんとかできれば完璧なんですけどね。Disk BIOSの動きを見てできるだけ同じになるようにしているつもりなんですが。一応今のところタイムアウトしたらリトライすればほぼ確実に読めてるので実用的には問題無いようです。
2022-11-11 04:16:10
FDCの放心問題を解決するためにFM Towns Technical Databookを見直してるんですが、248ページの表 I-7-18の、2HDモードのモータ起動時間、"1000mS以上" って、"以下"の間違いですかねえ。少なくとも1秒かかる、だとあまり有益な情報じゃ無いような。
2022-11-11 05:56:34
原因解明!タイマーでした。Disk BIOSの逆アセンブルを見ていたら、最初にタイマーをふたつ解除していたので、試しにタイマーをマスクしてみたらすべてがスムーズに動くようになりました。考えてみたら初期のTOWNSにはDisk Changed BitがI/Oになかったので、タイマー割り込みで定期的にディスクが抜けたことを確認して、そうなったらディスク交換があったと判定していたと思います。最も考えられるのは、そのタイミングでドライブセレクトを0と1に切り替えるのでFDCが止まってしまったの鴨しれません。津軽だとそういえばFDCコマンドを出した後でドライブセレクトを切り替えるという状況は想定してなかったですね。
ということで、FDDUMP.EXE安定して使えるようになりました。
2022-11-11 08:45:04
無事解決できたようで安心です。
タイマーかぁ~、確かにタイマー割り込み先でドライブセレクトされたらと考えると説明がつきますが、ウェイトとの絡み(ウェイトを増やすと安定方向へ行く)がよく解らないですね。
でも、まあタイマーをマスクしたら安定するのならタイマー割り込み先での処理が原因だったと言えるので、解決ですね。
モーター起動時間の件は2DDと2HDで違う(と言うか逆)事は無いと思いますので、2HD側の誤植でしょうね。
3.5インチFDDの資料を何点か見ましたが、1000msって言うのは無くてMAX500msばっかりでしたので1000msってのは搭載するドライブが変更される事を見越して結構な余裕を持たせているのかもしれません。
ただ、Over1000msってのはあり得ない表現なので。
2022-11-11 09:30:45
タイマーを増やすとエラーが減るのが、そこがわからんところなんですよね。タイマーと気が付いたのは、MON IOR 200 20F, MON IOW 200 20F とした状態で DIR A: とすると、読み込みが終わって少し待ってから208と20Cにアクセスするような動きがあったので、BIOSの逆アセンブルの最初の方を見たらタイマーのキャンセルの処理があったのでわかった、という感じなんですね。しかし、このタイマーの挙動はBIOSでFDを読んだ後に起こるようで、津軽上ではI/Oを直接いじってる限り再現しないんですよね。何か実機の挙動で解明できてない点があるみたいなんですが、おそらくTOWNS実機を使ってディスクイメージを作るプログラムを書こうなんて人は僕以外にいないと思うので、そこまで解明する必要は多分無いですね。昨日は試しにFM77AV用のマンハッタン・レクイエムのイメージをFDDUMPで作ってみましたが、陸奥でばっちり起動確認できました。どうやら起動中にF6セクタを読んでいるのでチェッカーも無事通過していたようです。
2022-11-11 23:07:25
RS-MIDIでMIDI演奏を行いたく RS-MIDIアダプタを作成していて、アダプタ用電源を RS-232C ER(DTR)(20pin)から供給するようにしたのですが Towns OS標準 EUPプレーヤー で RS(MIDI)を選択してMIDI演奏をさせても、RS-232C ER(DTR)(20pin)出力が無いようです。何か出力させる方法があるのでしょうか?
ベクターにある MIDIプレイヤー「Cool!」ではDTR出力があり電源が取れて、音が出るのは確認できてます。
2023-07-08 19:53:22
これはバッ活に掲載されていた回路ですか?
クロックをアダプタ側で生成してRS-232Cに戻すタイプです。
SC-55mkII以降用のRSC-15Nとは別ですよね?
私の持っているアダプタ(232CコネクタとMIDI端子がほぼ一体になっています)は4,5番ピンが電源に使用されているようです。
こちらで試そうしたのですが、TOWNSが起動しなくなっていまして何も出来ませんでした。
94年(93だったかも)、95年の富士通のオーディオ関連カタログに掲載されているRS-232C接続のMIDIアダプタは、ミュージカルプラン(MUSIC PRO TOWNSの会社)の物だけでした。
2023-07-09 22:47:51
はい、バッ活やネット情報を調べながら作成してます。
バッ活で4と5ピンはショートされてるので電源に使えそうですね。試してみます。
ありがとうございます。
2023-07-10 20:56:02
20番を電源にされたのは、そのようなアダプタが存在したからですか?
PC本体のRS-232Cに接続するMIDIアダプタ(ケーブル)って何種類リリースされたのか興味が湧いてきました。
少し調べたところ、
①RolandのSC-55mkII以降のシリアルコネクタ接続用ケーブル 38400bps MT-32、SC-55接続不可
②YAMAHA、KORGも①同様に使える各社MIDI専用ケーブルを発売 MT-32、SC-55接続不可
③バッ活総集編2掲載のPC-98用 電圧変換のみ?PC-98本体クロックのみで31250bpsを出力 電源不要
④バッ活28掲載のTOWNS用 ミュージカルプラン品互換? アダプタ側でクロックを生成。③としても使用可能。 4,5番を電源に使用?
少なくとも、このような感じで存在するように思いました。
システムサコムや三鈴エリーのアダプタは④互換かなと予想しています。
2023-07-15 13:55:15
”4,5番を電源にしていると思われるRS-232C接続のMIDIアダプタ”の動作確認が出来ましたのでご報告いたします。
TownsOSV2.1L51付属のEUPプレーヤーでRSを選択して、SC-55で演奏出来ました。
それと三鈴エリーのMIDIアダプタ(EMU-232C)の内部写真を掲載してくださっているサイトを見つけて拝見したところ、
私の持っているアダプタ(多分システムサコム製)とは異なる物でした。
三鈴エリーの物は、バッ活で言うところのPC-98用だと思いました。
2023-07-17 20:11:29
4,5番ピンから電源を取るように変更したところ上手く行っているようです。
20番を電源にしたのはMIDIの話ではなく ネット情報と端子の意味合いからでした。
端末(PC)が使用可能ならオンになるんだろうと推測したのですが RS-MIDIでは関係ないようですね。
MIDIアダプタで他には PC-98用の EMU-232Cと言う市販のアダプタがMIDI入力があるので端子から電源を取ってるのでは無いかと推測してます。
これの互換MIDIアダプタの制作方法が NIFTYの FDEVICEにあったらしいのですが消失してネットに情報がないのが残念です。
バッ活は28しか見てなかったのですが 総集編2に載ってましたね!こちらでも4,5番ピンから電源とってますね。
2023-07-17 20:13:13
すみません、PC-98用としているアダプタについての私の認識が誤っていたようです。
上の方では思い込みで書き込んでしまっていました。
バッ活総集編2を見ているのですが、
MIDI-OUTはRS-232Cの送信(2番)を直結していますね。
電圧変換は不要なのかな。
フォトカプラもあるようですが、これを含めた回路が何なのかもわかりませんでした。
MIDI-INの対応準備にも見えますが・・・。
PC900Vの1,2番にMIDI-INの4番(220Ω挟む),5番を接続すれば受信できそうな気が。
部品構成はEMU-232Cとそっくりですよね。
20番ピンの件了解いたしました。
試行錯誤の上の案の一つだったのですね。
もしそれを使用しているアダプタがあれば、自分用資料に追加しておこうと考えていました。
2023-07-18 01:03:51
すみません。スレッドがここでいいのかわかりませんが。
YSSCSICD.SYSを用いてTownsOS V2.1L51(on DOS6.2)をbootすることは成功したのですが、ここからHDDへのインストールでインストールするパッケージ選択後、コピーの段階で先に進まなくなってしまうようです。
実機の電源を修理し、HDDを交換したのでOSのインストールをしようと思いましたがCD-ROMドライブが不調の状態でYSSCSICDであればSCSI CD-ROMからインストールできそうな雰囲気だったのですが、何か分かりますでしょうか。
とりあえずはtsugaruでHDDイメージにインストールしたものを実HDDに書き込むことで代替しようと思っています。
2023-09-13 22:46:13
少しお伺いしたいのですが、
TownsOS V2.1L51(on DOS6.2)が既にHDDへインストールされていて、CONFIG.SYSにYSSCSICD.SYSを組み込んだ状態で起動し、
何らかのソフトウェアをSCSI-CDドライブからそのHDDへインストールしたいと言うことですか?
>コピーの段階で先に進まなくなってしまうようです。
ファイルは1つもコピーされていなさそうですか?
2023-09-16 10:11:23
HDD上のDOS6.2上にTownsOSをインストールするところで引っかかっています。
HDDにDOS6.2のインストールは正常に終了し、\T_FILE\INST_EXTでTownsOS on DOS6起動用FDを作成し、config.sysでysscsicd.sysを
追加しています。
この状態でこのFDとSCSI CD-ROMからTownsOS on DOS6は起動出来ています。
そこからHDインストールを起動し、パッケージ選択までは正常にできるのですが、その後のインストール作業(コピー)から進みません。
ファイルがコピーされているかどうかは確認していません。
2023-09-17 08:16:21
私では何故上手くいかないか全然分からないやつでした。
TOWNSスーパーブック記載の手順とほぼ同等ですし。
インストール先は128MB以上2GB未満のEXT区画ですよね。
HIMEM.SYSの起動には成功していますか?
127MB以下のDOS6.2区画であれば、救済IPL経由で起動したTownsOSV2.1L51からのインストールは確認しているのですが。
FD版救済IPLの作り方も紹介しますね。
詳細はこちら。
http://ysflight.in.coocan.jp/FM/towns/bootloader/j.html
概要はこんな感じです。
https://github.com/captainys/FM/tree/master/TOWNS/IPL/DISKIMG
のFDIMAGE.BINまたはFDMINI.BINをダウンロードします。
Windows上でこのダウンロードしたイメージファイルを、1.25MBフォーマットしたFDに書き込めるようでしたら書き込んでください。
(エクスプローラーなどでのファイルコピーではありません)
書けない場合は、TOWNS実機で書くために
https://github.com/captainys/FM/tree/master/TOWNS/FDWRITE/EXE
FDWRITE.EXPをダウンロードします。
TOWNS実機でFDWRITE.EXPを使ってFDIMAGE.BINまたはFDMINI.BINを、1.25MBフォーマットしたFDに書き込みます。
RUN386 -nocrt FDWRITE.EXP A: FDMINI.BIN
救済FDが出来ましたら
SCSI-CDドライブにTownsOSV2.1L51をセットし、救済IPLのFDを挿入した状態でリセットしてFDから起動、メニュー画面でSCSI-CDを選択すればSCSI-CDドライブからOSが起動します。
OSでHDインストールを実行すればインストールできます。
ただし、この場合は127MB以下の区画でなければなりません。
2023-09-17 21:50:37
返信ありがとうございます。
2047MBのDOS ext区画にインストールしたいと思っています。
HDDのイメージにtsugaruでTOS on DOS6は出来たのでこれをHDDに書き戻し、とりあえずインストールは出来たのですが
やはり実機で出来ないのが気持ちが悪い、それだけです。
救済IPLも興味があったのでまた今度やってみます。(TOWNS本体は実家にあるのですぐにはできませんが)
2023-09-17 22:03:27
おおなるほど。というと、実機でDOS6上にTowns OS V2.1 L51をYSSCSICD.SYSを使ってインストールしようとしたときにクラッシュしたという感じでしょうか?一応、津軽上でDOS6+EMM386環境でYSSCSICD.SYSが動作することは確認した(と思った)のですが、そういえば、最近High-Fidelity Modeがあるので試してみますね。案外何か見つかるかもしれません。
2023-09-18 09:32:18
理解いただきありがとうございます。
クラッシュはしておりません。エラーのダイアログが出てリトライを押しても実行できず、中断しかできない状況です。
HDDイメージからHDDに書き戻したもので正常に起動できることは確認しましたので現状不都合としてはありません。
もし何かのヒントになれば幸いです。
2023-09-19 21:57:13
あ、そうか。YSSCSICD.SYSを入れたフロッピーディスクを使ってCDのTowns OS V2.1 L51を起動してたんですね。だとすると、救済IPLから起動するとうまくいくかもしれません。救済IPLも中でYSSCSICD.SYSを使っているのですが、FDのCONFIG.SYSにYSSCSICD.SYSを書く使い方だと、FDで途中まで起動してからやっぱりシステムドライブはQでした、とTownsOSに思い込ませるようにしていますが、ひょっとするとそれが完全では無いのかもしれません。ですが、救済IPLからの起動だと、もっとかなり初期の段階から起動ドライブをQと思わせて、しかし実はSCSIを見に行ってるというような起動プロセスになるので、(FDで途中まで起動していない分)、完全にコピー元のTownsOSがQドライブと思ってくれるかもしれません。
なお、救済IPLは、CD-Rから直接起動するオプションもあるので、フロッピーディスクが無くても使えます。aochanさんが上で書いていただいたFD用IMAGEと同じgithubのディレクトリからCDIMAGE.ISOをダウンロードして、CD-Rに焼くと使えます。例えば、SCSI CDドライブのID 3にしたとして、救済IPL CD-Rをドライブに入れて、キーボードの H と 3 キーを同時押ししながら起動すると救済IPLのメニューになるので、そこでSCSI CDドライブを選ぶと、CDを入れ替えるように言ってくるはずなので、Towns OS V2.1 L51のCDを入れると起動できると思います。よかったらお試しください。
ただ、この手は20F以前だと使えないはずですね。というのもMOが出てきたあたりからシステムROMはデバイスを区別せずにとりあえずSCSIドライブの先頭セクタを読み込んでジャンプしてみるような仕様になったのですが、初期のモデルではわざわざデバイスの種類をチェックしてハードディスクドライブであるということを確認しないとIPLセクタを読み込まないようになってます。ということは、救済IPLのMO版というのを作るとハードディスクモードに設定したMOからの起動が可能になるはずですが、そこまでせんでもいいかと思ってやってないですが。
しかし、MOドライブが割と安く買えるようになってから、これはバックアップの革命か?と思ったもんでしたが、頻繁に使ってたらドライブがすぐ壊れるという現象に直面して僕は使うのをやめてしまった記憶がありました。高いやつだと長持ちしたのかどうか。3台ぐらい買って結局どれも2~3か月しか持たなかったような気がしますね。当時住んでたアパートにエアコンが無かったから熱で自滅したのだろうか。
2023-09-27 00:34:27
読む限りでは、YSSCSICD.SYSを用いてCDで起動は出来ておりインストールまでは少なくともOSそとしてもCDをYSSCSICD.SYSを通じて内蔵ドライブとして認識はしているように感じます。
クラッシュなどは起こしておらず、インストーラーのプロセスにおいてエラーとなりOSはダイアログを表示している事からアクセスに失敗しているような感じですね。
何を以てエラーと判断しているかが判りませんが単純なファイルコピーだと思うので、シーク時間か応答タイミングなのかDMA関連で連続読み出し時にエラーが起こっているのかもしれません。
通常、TownsOSのインストール時はインストール先やパッケージ(機能)の選択後に実際のコピーが行われ進行状況を表示しますがこの心境状況のバー表示が全く進まない程のタイミングで
エラーとなるのでしょうか? それともある程度進行した後でエラーとなるのでしょうか? > プーさん
何か些細な事でも手がかりになるとやりやすいと思いますので、細かく教えていただければと思います。
2023-09-29 10:23:49