INTERTopの母艦マシンとしてWindowsのマシンを使用していると、Windowsのロング・ファイルネームとDOSの8.3形式のファイルネームの差が徐々に気になってくる。
はじめは、そこに差があるということを意識して使っているので、DOSで使うためのファイルには出来るだけ8.3形式のファイル名を付けるように気を付けているのだけど、だんだん慣れてきて、はじめはDOSのほうに持ち出すつもりでなかったファイルまで、ついでにCFカード経由でコピーしたりしていると、DOSでファイラを開いてみて「あっ」と思ったりすることがある。
別にファイル自体が壊れるわけではないので、致命的とまでは言えないのだけど、DOSに持っていって編集すると名前が変わってしまうというのは、やはり気持ちの良いものではない。
というわけで、なんとかファイルネームに互換性を持たせることが出来ればと思い、いろいろやってみた(というほど、大したことはしないけど)。
まずは、必要なツールを集めることから。
DOSLFN
DOSでロング・ファイルネームを有効にするためのドライバであるDOSLFNを導入。
このドライバはHennis Heimatseiteで公開されており、比較的メモリの消費も少なく導入も容易。
日本語のドキュメント:としきのやしきの「ソフトウェアライブラリ」内
K-Launcher
LFNに対応したファイル管理ツール。TORO's Libraryで公開されている。また、同サイトではLFNの詳しい説明や上で紹介したDOSLFNについても触れられている。
以上を導入することによって、とりあえずWindowsで作成したファイルをDOS上で移動したりコピーしたりする事が可能になる。
いままでニョロニョロ(~)が付いてしまうのを「仕方ない」とあきらめていたことを考えると、殆ど何も気にせずにファイルのやりとりや編集ができるようになるというのは本当に気持ちの良いことで、精神衛生上の観点からもきわめて健康的になれる。
つぎに、ちょっとオマケっぽい話。
Vz
こういう風にロング・ファイルネームが使えるとなると、どんなソフトでも使いたくなるのが人情というものだけど、さすがになんでもかんでもというわけにはいかない。ところがワタシ的にDOSでの使用頻度No.1ソフトであるVzエディタでは、パッチをあてれば、なんとロング・ファイルネームが使えてしまうことがわかった(というより、単にWindowsでVzをつかわなかったので知らなかっただけ。有名なパッチである)。全面的にというわけではないけど、ファイラ画面でしっかり使えるので大変有り難い。
Vzエディタ1.6機能拡張差分(高橋版):「テキスト主義の楽園」内の「Vz Editor関連 - ライブラリ」より
Perl5
ロング・ファイルネームの必要性を感じた理由の一つがPerlを利用したかったということにもある。
で、ロング・ファイルネームが使えるとなると、perl5のドキュメントにある「perldos - Perl under DOS, W31, W95」ってやつに倣って最新のPerlをコンパイルすることも可能ではないかと思えてくる。
たぶん、きちんとdjgppを導入することができて、コンパイルのオプションもきっちり指定できれば、それも可能なのだとは思うけど、ワタシの現状のスキルとしてはちょっと心許ない。
そんなわけで、見つけだしたのがLaszlo Molnarさんが作られたdjgpp版のバイナリ。バージョンがちょっと古いけど、まあ基本的には問題なし。ドキュメントを読めば導入もめちゃめちゃ簡単。(djgppのDPMIサーバまで同梱されてる。)
とりあえず、モジュールが使えれば、ちょっとは役に立つってもんでしょう。
一番手っ取り早いのは、Windows環境で展開して、DOSLFNを有効にした状態でDOS環境にコピーして使うという方法だと思う。そして使用時には環境変数LFNを set LFN=y としておくことによってロング・ファイルネームに対応する。
これで、簡単なプログラムならINTERTopに入れておいて、ちょこちょこいじくりながらデバッグしたり出来るようになった。
ちなみに、djgppの/v2gnuディレクトリにあるPerl5.6はfpuが必要であるらしくINTERTopでは利用できなかった。
残念なこと
こういう風にロング・ファイルネームが使えて、じっさいWindowsとの垣根がだいぶ低くなったわけだけど、残念ながらネットワーク経由でのファイル共有ではロング・ファイルネームが有効にならない。これの解決方法があれば、相当幸せになれるんだけどなぁ。
オフラインでWEBをブラウジングするといっても、INTERTopなので、電車でちょこちょこと新聞サイトを見たり、ニュースを見たり、というPDA的な目的ではあんまり使わないような気がするわけで、どちらかというと、旅行に行くとき関係サイトをごっそりダウンロードしておいてガイド代わりにして電車の中で読みながら行くとか、お好みのblogとかテキストぎっしりなサイトをダウンロードしておいて、暇なときにまとめて読むとか、なんかそんな使い方のほうがありそうな感じがしたりするわけで。
設定ファイルの編集
まあ、ともかくINTERTop + WebBoyでオフラインブラウズするための設定を考えてみる。
まず、オフラインの場合、ネットワーク関係のドライバとかその類は必要ないわけで、WebBoyの動作に関係のないものについては外してしまう。
config.sysの中の、
REM --- 以下の行は WebBoy for DOS 用に加えられました ---
から
REM --- 以上の行は WebBoy for DOS 用に加えられました ---
までの部分をコメントアウトして無効にする。つぎに、autoexec.batの
C:\WEBBOY\NTSDOS\BIN\NETBIND
の行をコメントアウトして無効にする。
以上でWebBoy起動時のコンベンショナルメモリの確保できる量はだいぶ増やすことが出来る。
また、もしオフラインで見るコンテンツが、すべて本体内のCFカード(c:ドライブ)に収まっているのならば、PCカードドライバの部分も無効にしても大丈夫なわけだが、私の場合、母艦となるマシンからCFカードをつかってコンテンツを持ってくるつもりなので、これはやめておく。
コンテンツの作成
つぎに、見るべきコンテンツを用意することにする。
基本的には、コンテンツのダウンロードは母艦となるマシン(Windows)でおこない、その結果をINTERTopに持ってきて見るという方法で行うことを想定している。
というわけで、まずWindowsマシンでほしいコンテンツをダウンロードする。これに関しては優れた自動巡回ソフトがいろいろとあるので、なんでもお好きなのを使ってもらえばいい。・・・というわけにはいかない。
なぜなら、INTERTopに持っていく場合、これらのコンテンツのファイルがすべてDOSの8.3形式のファイル名になっていなければならないという大きな壁があるわけで。
これがファイルの数が少なければ、手作業で置換したり、Perlなどのスクリプトで置き換えたりということも考えられなくもないのだけど、ファイル総数が何百という数になると、とてもやっていられない。
そこで見つけたのが、WinHTTrackというWEBサイトをミラーリングするというフリーウェアだ。もとはHTTrackというUnix系OSのコマンドラインで利用するツールのようで、それをWindows向けにPortされたものらしい。
嬉しいことにDOSの8.3形式で保存するというオプションがあり、それを指定することによってそのままDOSで使えるデータを得ることが出来る。
さらに保存時に元のサイトのディレクトリ構成を保持することも出来れば、ある一つのディレクトリにHTMLファイルをすべて収め、他の\imagesというディレクトリにすべての画像ファイルを収めるというような保存方法も指定することが出来る。
元々が英語のソフトなので、ワタシなぞはドキュメントを読んでも100%理解できるわけではないのだけど、WinHTTrackはGUIで操作可能なので、通常の操作ではある程度想像力を豊かにしながら操作すれば、だいたいのことは出来ると思う。またこちらのサイトではWinHTtrackについて、かなり詳しく説明されており大いに参考にさせていただいた。
もうひとひねり
以上の作業で、一応INTERTop+WebBoyを使ってオフライン・ブラウズができるようなデータはできあがった。しかし、ここはメモリの少ないINTERTop対応ということで、さらに画像の再圧縮を行っておく。たぶんメモリを8MBぐらい積んだマシンであれば、何の問題もないと思われるし、INTERTopでもとくに画像が欠けたりしなければ必要はないのだけど。
画像の変換にはIrfan Viewを用いた。このツールは大変有名なツールなのでもはやここで何も書くこともないのだけれど、サブディレクトリまで含めて指定ファイルを一括で変換できるという素晴らしい機能を持っている。
これを使って、jpgは20以下ぐらいまで品質を落とし、gifなども色数を減少させて少しでもメモリの使用を少なくするようにしてみた。
厳密にどの程度の改善があったのかは定かではないのだけど、実感として変換後には表示可能な画像の数やサイズが改善されているようだったので、画像がまったく表示されないよりは、美しくないものの情報としての画像があった方がいいというような場合には、手間をかけるだけのことはあるように思う。
また、Irfan Viewはコマンドラインでも多数のオプションを指定可能なので、WinHTTrackに同梱されるコマンドライン版のHTTrackと組み合わせることによって、たびたびダウンロードしたいようなサイトに関してはスクリプトにまとめることによってバッチ処理が可能なのではないかとも思う。(たぶん、そんなときにHTTrackのすべての画像を一つのディレクトリに収めるようなオプションが活きてくるのではないかと思う。)