doscmd 非公式パッチ

MS-DOSでファイルのtruncateを行うときは、writeファンクションコール (AHレジスタ=0x40,INT21)でサイズ(CXレジスタ)に0を指定するそうですが、 FreeBSD 3.x以降に含まれるdoscmdでは、サイズ0を指定してもtruncateされません。

そのため、実行するコマンドによっては、ファイルの最後にゴミが残ってしまいます。 例えばLSI-C試食版に含まれるアセンブラr86は、場合によっては不正な オブジェクトファイルを出力します (LSI-C for WonderWitchに含まれるr86が不正なオブジェクトを出力するのも、 おそらく同じ原因だと思われます)。

FreeBSD 3.x用のパッチ

この問題に対するパッチです。FreeBSD3.2Rおよび3.5Rで動作を確認しております。 なお、このパッチの前に、ここにある 坂内様のパッチ も当てておいたほうがいいでしょう。

FreeBSD 4.x用のパッチ

FreeBSD 4.x用のパッチを、安福健太様から頂きました。 上で示した坂内様のパッチも含んでいます。


戻る