>663 山川機長さん
スーパースト2のCRTCパラメータが判らないので何とも言えないのですが、HSTとHSWが関連してくるのはあくまでも同期タイミングでこれにより水平同期タイミングが決定されます。((HST+1)の周期でHSW幅のパルスが繰り返し出力されます)
HDEとHDSは、上の水平同期信号の中でどこからどこまでを表示期間(=水平の各ドットの色データを出力する期間)とするかのパラメータで、HDE-HDSで期間を設定します。(HDE-HDSが横ドット数の倍数となるはずです)
実際にデータが送出される時にはHDSタイミングよりFAxやHAJx等のパラメータや横方向のズーム値を考慮して送出されます。
スーパースト2の場合ですとHDE=510h,HDS=10hですから、1280ドットとなりますが恐らくズーム値2が指定されて640ドットとなっていると思います。
2024-04-22 13:13:11
>山川機長さん
音声ROMから再生するサンプルプログラムで問題なく声が聞こえることが確認できました。ありがとうございます。
他に互換BIOSでバグらしきものがあったのですが、Linuxのブートローダーがメモリ確保に失敗して起動しないようです。DOS 6.2ベースのTownsOSで起動していたから気づきませんでしたが、6.2抜きのHDDで互換BIOSからLinuxを動かしてみたところ
not enough free memory.のエラーが出て終了しました。
同時に収録されているソースコードだと「_dos_allocmem(0xFFFF, &freememsiz);」が実行されるようで、YSDOSのMEMORY.ASMにあるMEM_SPLIT_ARENAルーチンで0サイズで確保しないようにあえてINC BXしているのが原因かと思いました。
2024-04-22 19:01:30
おおなるほど。関数名から想像するとそれは0xFFFFはAllocできないからfreememsizに確保可能なパラグラフ数を返すやつですね。それだと、MEM_FIND_AVAILABLEでチェックしているはずだからMEM_SPLIT_ARENAまで入ってきているとするとMEM_FIND_AVAILABLEが何かしくじってるっぽいですね。ソースコードの個所では、直後にfreememsizをチェックしてエラーメッセージを出すようにしていますか?
ただ、記憶をたどっていくと、同じINT 21H AH=48H (MALLOC)でBX=FFFFとして確保可能なパラグラフサイズを求めるのはDOS Extender等でも見られたはずなので、これだけ動かないというともう少し根が深いかもしれません。もうすぐ「挑戦!Linux「基本操作s&日本語環境構築」」が届くので、それに同じソースが入ってるといいのですが。
2024-04-22 22:14:35
「DOSBOOT5.EXE β2 を V1.0 としてリリース。転載可。」ともREADME.DOCにも書かれていますし、こちらでソースと実行ファイル一式を上げておきます。
https://drive.google.com/file/d/1Gphm7W636nfiwAHaJfN5knNEVz504DLL/view?usp=sharing
2024-04-22 22:37:51
>666 山川機長さん
ありがとうございます。メッセージの方は無視しておきます。こちらで使用しているのはTOWNS OS V2.1 L51でHEat ver 1.02c/OS標準のテキスト編集シェル版V2.1L40で発生しました。話を聞く限りこちらの環境の問題のようです。windows XP+うんづの頃からPC/HDDを色々跨いで引き継いだ10数年物のHDDイメージなので、いい加減壊れてるのかもしれません。後でHDDイメージ新規作成してみます。
2024-04-22 22:47:36
了解しました!"not enough memory."というメッセージはDOSBOOT.Cの中ですね。BRKON FOPEN zimageで止めて、zimageが無いもののそこは無理やり突破させたところ、どうやらこれはTCCを使ってコンパイルしたようですね。allocmemの最初のリターンが56E4hでした。これはDOSのパラグラフ数なので、バイト数としては56E40h=355904バイトとなりますが、この値をzimageのファイルサイズと比べて、入りきらないと思ったらnot enough free memoryエラーを表示しているようです。zimageのファイルサイズはわかりますかね?
2024-04-23 00:05:56
あ、なお実験したのはTowns OS V2.1 L20をCDから起動してDOSBOOT5.EXEにアクセスするためにTGDRVを入れた状態なので、Linuxの起動環境だとドライバが少ない分もう少し多いかもしれないですね。ただ、帰ってきてる値は正常そうです。
2024-04-23 00:12:24
ziimageのサイズは397546ですね。
((freememsiz)*16L)の値は393616のようです。
2024-04-23 00:20:41
って単にメモリ不足かと思ってCONFIG.SYSを弄ったところブートイメージの読み込みは進めました。
次は「Hit RETURN key the boot!」のメッセージでキーボードのエンターを押しても進めない状態です(i=getchar();の箇所)。
2024-04-23 00:57:21
おおなるほど。TOWNS OSのゲームが大体動けばいいや、と、思って結構いい加減にしてたとこですね。確認してみます。
2024-04-23 01:26:41
うーん、getchar()なんて単純にINT 21Hを呼んでるだけだろうと思ったら案外中が複雑ですね。zimageは再配布不可ですか? zimageがあれば多分getchar()までたどり着けると思うんですが。
2024-04-23 05:36:58
あ、そうか。Debugger Enable状態で、getchar()で止まったところで pri cst でコールスタックを表示して最後に出たINT 21Hの機能が何かわからんですかね?予想では、AH=01 (GETC with echo) ではないかと思うのですが。
2024-04-23 12:30:43
すみません、INT 21H AH=3F BX=0000でした。CONから読み込みでCX=200Hとなってるもんで、リターンキーが512回出るまで待ち続けてました。多分、一分ぐらいリターンキーを押し続けると先に進むと思います。これは、どうやらリターンキーが押されたらすぐ戻るのが正解なんですね。YSDOSをそのように変更してみます。
2024-04-23 14:07:14
getchar()問題、原因わかりました! MXのROMでやってみたら、デバイスドライバに対してまずリクエスト5(Non-Destructive Read)を出して、入力があったらリクエスト4(本気Read)を出して1バイト文字を読むということをやってるのですが、僕は単純にリクエスト4だけ出していたのでCXバイト埋まるまで帰ってこなかったようです。多分リクエスト4でまとめて読まずに1バイトずつ読んでリターンキーがあったらそこで止めて戻るでもいいと思うんですね。archive.orgのpcdosretroで多分やり方はわかったので、直せると思います。
2024-04-23 23:04:52
漢字変換がフリーズする件、HDD再インストールでも駄目で色々やった結果、(多分)cmosクリアで漢字変換出来るようになりました。お騒がせしました
2024-04-24 00:54:59
互換ROMのgetchar()問題、応急処置なのですが直ったと思います。FMT_DOS.ROMその他githubに上げたのでお試しください。本来はYSDOS.SYSの中に簡単なラインエディタ機能を書くべきなのですが、とりあえず指定のバイト数が埋まる、またはリターンキーを押すまで1バイトずつ読み込むようにしました。本来のgetchar()ではエコーが出るはずですが、YSDOS.SYSでは出してません。が、リターンキー待ちは正しく動くようになったと思います。
こちらもLinux本が明日届くことになってます。
2024-04-25 10:36:36
リターンキーは認識し、ブートまで進んだのですが今度はHDDのパーティーションチェック時に
VFS: Cannot open root device 00:00
Kernel panic VFS: Unable to mount root fs on00:00
で止まりました。山川機長さんに届く本がDOSBOOT付きのものであればいいのですが。
自分が持っている「Linux入門」の本には「CDに収録されている内容は各利用規約に沿って使用してください」とあるんですが、肝心の配布条件とかCD内にもテキストファイルとかが見当たらずちゃんと記載されてないんですよね。
Slackware自体はGPLだろうし、TOWNS差分部分も再配布とか許可してるとは思うんですが。
2024-04-25 23:25:53
なんと、Linuxコードに入ってから止まりましたか。そこまで進んでしまえばあとは互換ROMか実機抽出ROMかは関係なさそうですけどね。ひょっとするとSCSIかDMAの状態が変になってるのかもしれないですね。なお、Linux本届きました。CDも未開封のようです。(これにネットワークカードのドライバとソースが入っててくれるとうれしいが、果たして本当にTOWNSでも起動できるのか!?)。それはまだ試してないのですが、互換ROMで、Linux+JE2 1995-12のCDから起動しようとしたら INT 21,AX=4808H DOS.Malloc ここから戻ってこない現象が発生したので、まずこっちを解決してみます。
2024-04-26 22:22:10
「挑戦!Linux」届いたのでCDをイメージ化しようとしたら、なんとCDが傷んでました。表面の汚れと思ってクリーニング、さらには磨き粉でリペアまでトライしたのですがまったく汚れが落ちないところを見ると、蒸着が甘くて中のアルミが劣化してしまったようです。200円だったから仕方ないんですが、プレスしたCD-ROMがビニールから出していない状態でここまで劣化している例を見たのは初めてです。残念。保存状態が悪かった可能性もありますが、「挑戦!Linux」の付録CDは生産のクオリティが悪かった可能性も予想されるので、もう一冊別のものをヤフオクで落とすのはやめておきます。
ただ、互換ROMではLinux+JE4 1995-12が起動できなかったのですが、これは上の方でBCCさんが指摘されていたMREALLOCが問題でした。これがMemory Control Blockを破壊してた影響でMallocから出てきませんでした。これを直したところ、なぜかリターンキーを押さないと先に進まないと思ったら、まだリダイレクションをサポートしてなかったのが原因だったのですが、そこはリターンキーを押せば通過して、起動しそうになった、と思ったけど途中でクラッシュした、と、思ったら-HIGHFIDELITYつけ忘れてたといううっかりがあったものの、-HIGHFIDELITYをつけて起動しなおしたら無事zimageも読み込んで起動まで行きました。
そのFMT_DOS.ROMはgithubに上げましたが、これでBCCさんのLinux起動しないですかね?
2024-04-27 09:21:34
すみません、githubの方がまだ更新されていないようです。
2024-04-27 19:09:38
すみません、今本当にPUSHしました。
2024-04-27 20:16:22
ソースコードの方は更新されているようでしたが、FMT_DOS.ROMはまだのようでした。DosboxとMASMを使って自力でコンパイルしようとしてもMASMのバージョンが違うのかエラーが出てobjファイルが作成できませんでした。
2024-04-27 23:46:42
すんません、この部分がいまいち自動化できてないもんで。(学生にはビルド自動化しろっていつも言ってるのに!) ちょっとこの際YSDOS.SYSとYAMAND.COMをビルドして所定の位置にコピーするまで自動化しますんで、ちょっとお待ちください。
2024-04-28 06:20:37
大変失礼しました。WATCOM CでWindows上からDOSのCOMファイルをクロスコンパイルする方法をやっと理解して、FMT_DOS.ROMのビルドからアセンブルまでbuild.pyでできるようにしたので、以後この手の間違いは減ると思います。COMMAND.COMのリダイレクトに対応(パイプは未対応)したので、Linux+JE2 1995-12は互換ROMからCD起動できるようになりました。Undocumented DOS、「なんでもっと早く買わなかったんだ!大体の内容は既に解明しちゃった!」と、思ったもんでしたが、今回はリダイレクト対応の仕方の説明があって助かりましたね。実はこの本の例題コードはバグってるんですが。ただ、何を探せばいいのかわかったので、FREEDOSのコマンドインタープリタを参照したところやり方がわかりました。
2024-04-28 08:43:54
MALLOCの修正とredirectionが実装されたROMでもVFS: Cannot open root device 00:00で止まってしまいますね。
DOS部分だけマーティーから抽出したROMに置き替えると問題なく立ち上がるので間違いなくYSDOSが原因のはずなんですが。
関係のない差異かもしれませんが、TownsOS上でLinuxパーティーション(ext2)を開こうとすると、実DOSだと「ドライブの準備ができていません」と出るのにYSDOSだと「システムエラー(/FFFH)」と返ってくるようです。
山川機長さんが書かれているとおりDMAやSCSIの問題なのかもしれないので、それとコールスタックのデバッグ情報も載せておきます。
pri cst
FR=000C:000078C9 TO=0110:0001D399 RET=000C:000078CB (INT 21,AX=4C00H DOS.Exit Program AL=Returncode))
FR=4958:00000031 TO=386D:000004A4 RET=4958:00000033 (INT 21,AX=4C00H DOS.Exit Program AL=Returncode)
R=39FE:00002E4A TO=386D:000004A4 RET=39FE:00002E4C (INT 21,AX=4B00H DOS.Load or Exec D:\LINUX\DOSBOOT5.EXE)
FR=0010:00108FBD TO=0010:0010A5E0 RET=0010:00108FBF (INT 80,AX=0070H)
pri dmac
CH00(FD ): MODE=00 BASEAD=00000000 CURRAD=00000000 BASECT=00000000 CURRCT=00000000
CH01(SCSI ): MODE=45 BASEAD=0001F000 CURRAD=0001F400 BASECT=000001FF CURRCT=FFFFFFFF
CH02(PRN ): MODE=00 BASEAD=00000000 CURRAD=00000000 BASECT=00000000 CURRCT=00000000
CH03(CD-ROM): MODE=00 BASEAD=00000000 CURRAD=00000000 BASECT=00000000 CURRCT=00000000
TFRSIZE=02 BASE=0 SELCH=01 DEVCTL=0000 REQ=00 MASK=0F
pri scsi
PHASE:BUSFREE
REQ:0 I/O:0 MSG:0 C/D:0 BUSY:0 INT:0 PERR:0
DMAE:1 SEL:0 ATN:0 IMSK:1 WEN:1
Selected SCSI ID:1 Last Data Byte:00H
COMMAND BUFFER: 08 00 00 00 02 00
SENSEKEY_NO_SENSE STATUSCODE_GOOD
TOWNSのDOS ROMは3.1なので参考になるか分かりませんが、MS-DOS 4.0のソースコードが公開されましたね。
https://github.com/microsoft/MS-DOS/tree/main/v4.0
2024-04-28 13:26:13
うーん、起動せんですか。残念。こうなるとDOSBOOTがコンソールに出してる出力が見たくなりますね、ということで、DOSのSTDOUTをキャプチャする機能を津軽に追加してみました。さっきPUSHしたソースで、デバッガ有効な状態で、ENA DOSSTDOUTCAP とするとキャプチャ開始、SAVEDOSSTDOUT filename で結果をファイルに書きだします。Linuxの起動が始まったタイミングでセーブしたら何て言ってますかね? MXで起動したときと互換ROMで起動したときでパラメータとか、読み込んだブロック数とか変化ありますかね?
Linux+JE4 1995-12 で互換ROMだとoverload以後は下のような出力になります。zimageってどうやらFDダンプですね。だとするとzimageの最初のとこはDOSを使ってたりするだろうか。メッセージの雰囲気として、このrootimageをマウントできてないっぽい感じですかね。
overload cdrom.fmt dosboot5 -i zimage root=0101 <nul$
Found Q:\TOWNS\OVERLOAD.EXE
dosboot5 -i zimage root=0101 ramdisk=1200 rootimage=0xed4000,1228800
Linux boot loader for TOWNS ver 0.5 copyright(c) TECO, 1992
V5.0 beta2
Now loading LINUX boot image (zimage)
parameter="root=0101 ramdisk=1200 rootimage=0xed4000,1228800"
717 blocks read.
Hit RETURN key the boot!
DOS4公開は僕も見ましたが、そのうちDOS3も公開されるかもしれないですね。まあ、そうなったらもっと再現性の高い互換ROMが作れるってことで。
2024-04-28 21:48:53
そうか。BCCさんのはHDから起動ですね。。。。。
あ、ひょっとして、 BOOT "/dev/sda1" みたいにダブルクオートつけてたりします? YAMAND.COMがダブルクオート正しく扱ってないことに気が付いて、試しにやってみたらKernel panic起きますね。今から直します。
2024-04-28 22:42:45
ソースがまだ上がってないですが先に、Slackware LinuxのTOWNS差分部分ファイルをちゃんと確認(README.DOC)したら「GNU General Public Licence に従います。」と書かれていることを見落としていたので上げておきます。
https://drive.google.com/file/d/1mFdpkEOXiJS2kbj_evqsl7VdUchMMbBX/view?usp=sharing
\TOWNS\Linuxフォルダ内にあるZIIMAGEというやつが該当する物と思います。
あと、上の方で言われていたネットワークカードのドライバ/ソースももしかしたらこの中に入っているかもしれません。\TOWNS\DOC\DEVICE\にあるETHER.TXTにはFM50L186/FM50L187/REX-3586/FM50L189という対応カード名が書かれているので、\TOWNS\FMD1\FMKERN.TGZ\FMKERN.tar\usr\src\linux\drivers\net\とか探したら該当ソースがあるかもしれません。
2024-04-28 22:42:45
ありがとうございます!ダウンロードしました。試しにうちのLinuxインストールHDのLINUXディレクトリを送っていただいたものと置き換えてみたのですが、Linux+JE4だと普通に起動してしまいますね。zimageの読み込みブロック数が777になったので送っていただいたzimageで起動しているのは間違いないです。また、ダブルクオートの問題かと思ったのですが、ダブルクオートをつけるとMXのROMでもrootのマウントに失敗するので違う原因のようですね。今のところDOSからLinuxに渡っている情報というとこのパラメータしか思いつかないのですが。
2024-04-28 23:53:03
山川機長さんの書き込みで気づいて原因がようやくわかりました。
BOOT.BAT内で「dosboot5 root=%1 townscd=polling <nul」と記載しこれをTMENU上でアイテム登録、パラメータに「/dev/sda1」としていたのが原因でした。
「dosboot5 root=/dev/sda1 townscd=polling <nul」と直接BOOT.BAT内に記載したら起動しました。
2024-04-28 23:59:01
おおなるほど!COMMAND /cでバッチファイルにパラメータを渡すとこがバグってました。直したバージョンをPUSHしたので、多分アイテムからも起動できると思います。うちの環境でもドライバを減らさないと起動しないので、ちょっとダイエットが必要そうですね。
ネットワークドライバありますね!RATOC REX-3586がサポートされたのは1996年の1月だったんですね。それだと1995-12のJE4には入ってないわけですね。どうやって使ったらいいのかは不明ですが、これで、RATOCカードのI/Oは7000Hまたは7100Hから、FM50L188/9は10A0Hまたは10C0Hから+7までを使ってることはわかりますね。そして、これはMB86965を使ってるんですね。ただ、僕は物理レイアの上がどうなってるのかよくわからないので、TOWNSのネットワークカード用ドライバを自力で書く自信はまったくないのですが、一歩前進した気がします。
2024-04-29 05:46:43
DOSメモリに関してですが、[設定]→[辞書管理]→[かな漢字変換領域の確保]を「する」にしないと、OAK0.SYSが79KBも余計にDOSメモリを使ってしまうようです。デフォルトが「しない」になっているらしく、その場合、CMOSの32B2hの下位2ビットが0になっていて、そのバイトは、INT 8EH AH=00Hで返されるデータの+23H (未公開バイト) に書き込まれて、OAK0.SYSはこの下位2ビットをチェックして、3だったら10Hパラグラフ、それ以外だったら13E8Hパラグラフを取ってしまうようです。
それでもまだアイコンから起動させようとすると足りないですね。AUTOEXEC.BATの中とかから起動だと初期のコマンドインタープリタで起動するので平気なのですが、COMMAND /cで起動すると一個余計にCOMMAND.COMを開いてしまう影響で微妙に足りないようですね。
2024-04-29 09:55:34
ご無沙汰しております(女B)。
最近は忙しいわけでもないのにこちらにも顔を出せておらず、ご心配をかけたかもしれません。
本当はMIDIカードの解析の時に顔を出そうとしていたんですが、Oh!FM TOWNS 1993年6月号「INSIDE TOWNS」のMIDIカード仕様をテキストに起こしている間にこちらの掲示板で解析が進んでしまい、結局そのテキストもお蔵入りしてしまいました。FMT-401のI/OポートとかMIDI IN 2~4、OUT 3~8、フットスイッチに関する情報も載っていて現在では得がたい情報ではあるのですが。
>698 山川機長さん
辞書管理から設定できる「かな漢字変換領域の確保」はMS-DOSでいう「アプリ領域」の設定のどれかと一緒で、「する」に設定するとコンベンショナルメモリより上位のメモリ(とはいっても0x000C0000~0x000CFFFFはないと思いますが)にOAK0.SYSが逃げてくれます。これは確かDOS3からそういう仕様で、DOS5/6(DOS6ベースT-OS含む)だと別の方法(確かOAK0.SYSに/Eだったか何かオプションスイッチを付けるはず)でEMSメモリに逃がすように変更されています。
2024-04-29 23:32:45
YAMAND.COMですが、いくらCコンパイラだからって本来10KBもあれば実現できるはずのものがなんで22KBも食ってるのか調べたところ、WATCOMのCランタイムライブラリがごっそり食ってることがわかったので、fopen, fclose, printfなどを使うのをやめてDOSの機能を直接使うようにしたところ、14KBぐらいまでに減りました。多分もう少し減らせそうですが、とりあえずTowns MENUのアイテムからBOOT.BATを起動してもメモリ不足になりにくくなったと思います。
> りうさん
おおなるほど!Oh!TOWNSの1996年6月号ですね。それは手元にあったはず。というか、確かにMIDIカードについて載ってますね。だから目次を作っておけばよかったものを。。。(途中で止まっちゃった)実装が間違ってないかあとで確認してみます。
しかし、さすがにネットワークカードのI/Oと使い方について書いてた号は無いですよね。手元にRATOCのネットワークカードがあるのですが、TOWNS OSから使えなくて持ち腐れになってるんですが。
辞書管理はそういう意味だったんですね。MXが現役だったころは気にしてなかったのでまったく気づきませんでした。
貴重な情報をありがとうございます!
2024-04-30 12:06:01
ぎゃああああ鯖鰓で書いた中身が全部翔んで埼玉ぁぁぁぁorz
>700 山川機長さん
TOWNS用LANカード(FMV-TOWNS用のFMV-181/182/183/184の制御方法はFM50L188/189と一緒です。いや逆か?)のドライバはTOWNS用Linuxにもあったはずですし(実際のところは未確認)、DOS6ベースTownsOSであればNDISドライバ(RATOCのカード用のものはRATOCのサイトで現在でも配布してい…るといいな)+FMR用MSLANMANとかODIドライバ(でいいんだっけ?)+NetWareクライアントとかの組み合わせで行けます。うちでは実際に前者でSCE版nasneを介してFMV-TOWNSとモデルMX間のファイルのやりとりをしています(FMV-TOWNSのTOWNSモード用NDISドライバを見たことがないので、ODIドライバ+某ツールを使ってはいますが)。
2024-04-30 13:08:16
あれ?僕もなぜか昨日書き込んだはずの内容が書かれてないですね。最近サバエラ多いですね。
RATOCのドライバなんですが、今だとWindows 95用ドライバしかダウンロードできないんですよ。archive.orgのWayback Machineでも2000年ぐらいまでしか遡れなくて、DOS用ドライバは既にダウンロードできないんですよね。Windows 95かLinuxで使えば使えると思うんですが。
なお、YAMAND.COMはその後の調査で、Open Watcom 1.9のdup, dup2, getcwd関数が必要ないのにmalloc/freeをリンクしていることがわかり、さらに、なんと、int main(int argc,char *argv[])とすると、argをヒープに展開するらしくmalloc/freeにリンクして、合計3KBぐらい使うことがわかって、そのへんを直して11KB程度まで小さくなりました。ここまで小さくなったらあとはまだ書いてない機能を足してもそんなに大きくなることは無さそうです。
2024-05-01 00:44:03
互換BIOSでTMENUからもインストールしたLinuxが起動するようになりました。ありがとうございます。
Twitterで見かけたのですが、OpenWatcom C Ver2.0でTOWNS用RUN386で動くEXPアプリが作成できるようなのですが、time.hに記載されている関数・sprintf()・fprintf()を記述すると互換BIOSだとフリーズするようですね。自分は実際に試していないのでどうなっているのかはわかりませんが。
REX-3586のDOS(ODI)ドライバはRATOCのドライバ内に入っているREX3586.COMというファイルだとは思います。
Another TownsのCD内にFM TOWNS用のTCP/IPアプリ(ping、ftp等)を移植した「TOWNS(DOS)用ダイアルアップ接続アダプタ&TCPIPライブラリ」というのを見つけたのですが、LAN環境でREX-3586を使う際のドライバファイル名はこれが記載されてます。
2024-05-01 01:31:13
>702 山川機長さん
RATOCのカードがREX-3586/7なら↓なんですが、今でもDOS用ドライバ込みで配布されているようです。
https://www.ratocsystems.com/services/driver/lan/3586.html
そういえばFTOWNSにTCPIPFMとかいうのがあったなー…何もしませんでしたが(ばく
2024-05-01 12:17:51
>りうさん、BCCさん、
そのファイルなんですが、NetWareのドライバとあるんですが、このドライバを組み込めばDNSからIP取ってきてネットワークに加わるところまでできるもんですかね? 僕はネットはSOCKETライブラリから上しか使ったことがなくてドライバレベルのことがよくわかってないのですが、NetWareってTCP/IPと違うものかと思ってたんですが。自力でSOCKET使ったコードさえ書ければいろいろ調べられると思うんですが。
りうさんの書き込みから探したところ、↓に行きついたんですが、
https://hp.vector.co.jp/authors/VA018718/towns/towns-tcpip-faq-091.txt
これによると、「TCPIPFM のプロテクトモード版ライブラリは、32bit版 Wataloo TCPライブラリ (GCC版) を High-C 1.7/1.4 で動作するように移植したものです。」とのことなんですが、これってgithubにあるみたいなんですが、今からでも移植したら使えるもんですかね。SOCKETが使えるようになりさえすればいろいろできることが増えると思うのですが。
しかし、多くのTOWNS用プログラムが散逸してしまったのが非常に惜しいですね。僕もOh!FM TOWNS終了あたりで後ろ髪を引かれる思いでメインをWindowsにしてしまったので人のこと言えないんですが。
まったく別の問題でFM-7をネットワークにつなげないかという話が上がってはいるんですが、これってさすがにまだ実現した例無いですよね? ネットワークつきのArduinoとのインターフェースを作ればネットにつながったことになるのではないか、と、いう道を模索しているのですが。でもサーバーPCを介すると反則だから、Arduinoだとネットにつながったと言っていいのかなあ。。。
2024-05-02 01:03:39
自分の言った「TOWNS(DOS)用ダイアルアップ接続アダプタ&TCPIPライブラリ」とたけがみさんの言ったTCPIPFMは同一の物と思うのですが、FTOWNSのサイトで配布されていたようですね。既に閉鎖されていますがInternet Archiveには残ってました。
https://web.archive.org/web/20010614032507/http://www.nifty.ne.jp/forum/ftowns/
「TCP/IP for TOWNS」→「ダウンロード」→「TCP/IP for TOWNS Ver 0.02 フルセット (1,298KB)」で実行ファイルとソースがダウンロード可能。
これにNetWareドライバとLANカードのドライバを組み合わせることでネットワーク接続ができるような感じだと思うのですが。
FMR/TOWNS用のNetWareドライバ(FMRWS_1.EXE/FMRWS_2.EXE)はここから入手可能のようです。
https://ftp.zx.net.nz/pub/archive/novell/clients-jp/
話逸れますが、山川機長さんがCDが劣化していると言っていた『挑戦!Linux「基本操作s&日本語環境構築』を自分も200円だったので購入してみましたが、案の定白濁化していてそのままではイメージ化できませんでした。
ですが、ドライヤーでチリチリになるまで温めてティッシュで押し付けたところ白濁部分が減少し、読み取りが遅かったもののイメージ化に成功しました。
2024-05-02 01:16:50
>705 山川機長さん
https://strawberry-linux.com/catalog/items?code=36012
↑
「この辺りを使うとFM-77あたりでもネットワークに接続できるかも」と考えたことが有ります。
ネットワークに関する知識が著しく低いので手は出せずに居ましたが、なんとかなるのかな?
MSXのネットワークカード制作などを見るとカニチップを搭載していたりするのですが、今ならこっちの方がネットワーク関連をチップが面倒を見てくれるので楽かも知れませんね。
2024-05-02 09:16:16
>706 BCCさん
CDの劣化ですが、そんな方法もアリなんですね。表面上の傷は過去に液体コンパウンドで磨いて消したことは有りますが、それも良い方法かどうか解りません。(手元に有った物で対処したので)
過去に買ってきたCDが透明で、「??? こんなCDも有るのかな?」と思ったけどやっぱり認識しなかった事は有ります。記念に置いてあると思います。(ダンジョンマスター)
2024-05-02 15:05:55
貴重なファイルがそんなところにあったとは!ChatGPTに聞いてもわからなかったのに、さすがです!CMUは再来週から夏休みに突入するので、RATOCのLANカードをネットに接続できるかやってみます!
花小金井3丁目さんによると、文教モデルは結構LANカード付で出荷されたような感じがしてますが、案外LANカード刺さってるけど眠ってしまってるTOWNSも多いんでしょうかね?
2024-05-03 03:18:22
>705 山川機長さん
RATOCのドライバはDOS用のNDISドライバやパケットドライバも入っているようなので、パケットドライバを使って(NetWare ODIドライバを使わずに)TCP/IP for TOWNSを動かすことも、(コンベンショナルメモリを大量に消費しますが)DOS LAN ManagerでTCP/IPを有効にして使うことも可能かと思います。
NetWare Clientを使うのはドライバが配布されていない富士通のLANカード(20年ほど前にヤフオクで割とたくさん出品されてました)でTCP/IPやLAN Managerを使うときの代替手段です。純粋にファイルサーバのクライアントとして使うならNetWareが一番使い勝手がいいと思うのですが。
2024-05-03 20:03:37
富士通純正カードのODIドライバは、
FM50L186/186A/187/187A: FMRLAN.COM
FM50L188/189, FMV-181/182/183/184(VTOWNS用): FJN00F.COM
FM50N183, FMV-J181(共にモデルSN用): FJP00F.COM
となっています。FMRWS_1.EXE/FMRWS_2.EXEにはFMRLAN.COMしか入っていないようです。VLMFMR1.EXEの方にはそれ以外のドライバも入っています。
2024-05-03 21:24:18
> BCCさん
僕もドライヤーメソッド試してみようかと思ったのですが、完全に破壊してしまう可能性もあると思って、最後にもう一度読ませてみたら、なぜか今日はリトライひとつなく読んでしまいました。見るアングルによって白濁が見えたり見えなかったりするので、ドライブの機嫌によって読めたり読めなかったりするのかもしれません。ということで、ディスクイメージができたので、インストールしようかと思ったらDOS6+EMM386環境で試したらクラッシュしますね。原因を調べたところ、現状ではキーボードコントローラがデータをCPUに送る間隔を最低1/600秒にしているのですが、こうすると
DOSINST5がキーボードBIOSをリセット→4バイトのデータ発生→1バイト読んだところでEMM386終了→キーボード割り込みハンドラ消滅→4バイトの残りのバイト送信→クラッシュ、
と、なってしまうのですが、この間隔をゼロにすると、
DOSINST5がキーボードBIOSをリセット→4バイトのデータ発生→4バイト次々に読んでしまう→EMM386終了→キーボード割り込みハンドラ消滅するけど関係ないので続行
と、なるようです。考えてみるとキーリピートの間隔は1/600秒ということですが、キーデータ読み取り後1/600秒待つという意味ではないので、ここでその間隔待つ必要は多分無いのですが、1/600秒待つように書いたのは何か理由があったのではないかと思ってここまでの開発の記録を見ても(そもそも長すぎて全部読めないけど)それらしいことは書いてなくてゼロにしてしまって他に副作用が出ないのかどうかちょっと心配ですね。
一応、キーボードにコマンドA3を出してからデータが帰ってくるまでの時間を実機で計測してみようと思ってますが。
2024-05-05 10:33:24
訂正:1/600秒はキーリピートじゃなくて、9600bpsから1 wordのタイミングですね。ということは、正しくは1/1200秒だった。
そのように修正したら通過しますね。そして、でもクラッシュすると思ったら -FASTSCSI オプションつけてたからでした。それはずしたら起動するようになったんで、インストールできそうです。
2024-05-05 12:42:43
MIDI出力実装おめでとうございます。
こちらでいろいろ試したところ津軽でソフトウェアMIDI以外に、外付けMIDI音源も鳴らすことができました。
津軽からはMIDIポートマッパー固定で出力されるようなので、ポートマッパーの出力先を変えるソフトで外部と繋ぎました。
確認したのはGenocide2の3面までとTownsOS V2.1L51上のGSPLAY/Pureです。
Windows95からはやり方が悪いのかソフトMIDIか内蔵MIDIになりうまくいきませんでした。
こちらはメディアプレイヤーとTMIDI PLAYERでやってみました。
以上ご報告まで。
2024-05-06 21:40:28
すみませんポートマッパーではなくMIDI Mapperでした
2024-05-06 21:58:52
すみません、誰かLinux+JE4 1995-12を実機で実行できる人いますかね? ディスクイメージ自体はLinuxなのでarchive.orgから罪悪感ゼロでダウンロードできると思うのですが、うちのTOWNSはCD-Rだと読んでくれないもので。
どうも津軽が5~6回に一度Linux+JE4 1995-12の起動に失敗するので解析してどこで詰まってるのかまで解明したのですが、どうもsysvinitのversion 2.4にはバグがあって、子プロセスを起動してから、子プロセスを記録してるstructにpidを書く前に子プロセスが終了してしまった場合止まってしまうようです。2.57bでは直ってないようです。2.88のソースではそのバグが修正されているのを確認したのですが、2.57bと2.88の間のどのバージョンで修正されたのかまでは特定できませんでした。
一応僕としてはこれは津軽の問題ではなくsysvinitの問題であると見てほぼ間違いないと結論に至ったのでほっといて次に進もうと思うのですが、そうであれば実機TOWNSでもLinux+JE4 1995-12のCDからの起動は数回あるいは十数回に一度は失敗するはずなので、それを確認したいのですが。
多分、子プロセス起動~pid保存までの間に子プロセスが終了してしまうという事態は子プロセスがディスク上のファイルであればほぼ発生しなかったと思います。ですが、CDから起動する場合、initが起動するプロセスはRAM Driveに書いてあるため、ディスクアクセスのオーバーヘッドが無く、高速起動してしまうのでこの問題が顕在化したものと思います。
2024-05-10 13:25:41