葉山文書
8/13〜8/30の泣言篇
目次へ

consoleとやらを使ってみました(9/24)

ええと、どっかから、console(console-0.0.9.zip) というツールを拾ってきました(場所、忘れんなよ)。 これは、コマンドラインから、ウインドウのサイズやら、タイトルやらを変更する ツールです。そういうことは、NYAOS でも制御したいなーと思っていたので、 ざっと、ソースを読んでみました。

どうも、daemon(CWRP.exe)をひとつ走らせて、そいつに共有メモリを通じて指令 しているようなコード。やはり、自分自身のコンソールウインドウを操作すること はできないのか...

ところで、最近(大阪の)日本橋で、Hobbes OS/2 の CD-ROM を見かけないのは、何故?

やっぱり、売れんのか?

★≡

XFree86 のインストールに再挑戦してみました。XFree86 は、I:/ に展開したの ですが、どうも「SET X11ROOT=I:/」としていたのが悪かったようだ。 「SET X11ROOT=I:」とルートを取ってやらなければいけなかったとは。 もっとインテリかと思ったのに...

さて、あとは OS/2 mag. のガイドに従って、結構ほいほい進んだのですが、 最後の startx で、X が起動しない、なぜだぁー。 OS/2 mag. を見直してみたところ、「TCP/IPの設定」を忘れていたようだ。 では、[システム設定]-[TCP/IPの設定(LAN)]... あれ、アイコンが

無い
無い
なぜだぁぁぁ

(注意)

葉山は自分の PC を、LAN どころか、dialup でもネットワークに繋げたこと が無い。インターネット関係は全て、研究室のワークステーションでやっているのだ。 だから、無くても当然だったりする。それとも、Warp 4 では違うのだろうか...
それにしても、よくつまずいては、すぐ投げ出す奴だなぁ。 こんなありさまで、よくもまぁ、NYAOS を xterm に対応させるなどと 公言したものだ(笑)。

★≡

1.27 で NYAOS のアイコンを作ってみたのですが、いかがでしょうか。
[NYAOS.ICO]
上は LaunchPad に置いたやつをキャプチャーしたので、 背景がボタンになっていますが、ICOファイルの方は灰色の部分が透明です。 絵心が無いので、せいぜい文字のレタリングだけ凝って、 OS/2 Prompt のアイコンの「OS/2 WARP」の部分を 青地の「NYAOS」に変えてみました。

だいぶと前には、普通のアイコンが猫の写真、 小アイコンが透明地に黒い字で「猫」とだけ書いてある、 結構、キョーレツなものを使っていました (NYAOS の NYA と猫の「にゃー」をかけているわけです)。 でも、これ、前に OS/2 をクラッシュさせた時に失なわれてしまったんですよね...

ところで、OS/2 のアイコンファイルを GIF にコンバートするツールって 無いのでしょうかねぇ。 そうすれば、OS/2関係のバナーを簡単に作れるのに。 また、Hobbes でも探してみましょう。


Mule の REXX モード(9/24)

Mule で、REXX のスクリプトを書きたかったので、 archie してみたら、rexx-1.0.tar.gz という EmacsLisp を見付けました。

さっそく、使ってみたのですが、どうも、二重引用符の中の バックスラッシュ(一般に「¥」ですな)の扱いが違っていて、困りました。 (少なくとも OS/2 の)REXX は バックスラッシュを特別扱いにしないはずなのに、 「"\"」と書いても、後の二重引用符が文字列終結と認識されないんです。 もしかしたら、FreeBSD あたりの REXX は、そういう仕様なのかもしれません。 (ftp-site の FreeBSD というディレクトリに置いてあった)

この rexx-mode.el。スペースバーやリターンキーを叩くと、 直前の単語が予約語だったら、小文字→大文字変換をしてくれるし、 インデントもバッチソなだけに、非常に残念です。 誰か、OS/2 仕様に改造してくれないかなぁ...


NYAOS 1.26 は、どこへいったんでしょう(9/22)

実は、金曜日の晩に 1.26 を公開したのですが、その直後に 土曜日の停電の為に WWW Server が shutdown されてしまったんです。 で、日曜日に、僕が自ら復活させたのですが、 shutdown している間に「cd」に関するバグリポートをいただいていた ようなので、こいつを直してから 1.26 として出すことにしました。 ところが 1.26 をひっこめる前に、Download されてしまったので、 バージョン番号を変えなくてはいけなくなったのです。

まぁ、別に 1.26 に致命的エラーがあったわけではないので、 そう慌てて、置き換えなくてもよかったのですが、 実は前の日に作ったばかりのアイコンとインストーラーを公開したかったという... 何回も Download された方、すみません。 どうも、脊髄反射で Upload してしまうなぁ... 次回のバージョンアップは、いつも通り、一ヶ月くらい先を目途にします。


実は open命令 と emxlibcs.dllの使用 は念願だったのだ(9/15)

学会が終って、ちょっと時間ができたかなーと思った途端に、後期試験です。 修士二回生なら、たいてい単位は揃っているものですが、僕はまだ半分くらいしか ないので、ちょっと気合いを入れなければいけません。 早めに NYAOS 1.25 を公開しておいてよかった。

NYAOS 1.25 の方は、今のところ、バグリポートは、いただいてません (いただきました on 9/16)。 β公開などと言っていても、別に品質管理体制はいつも通りで、 単なる責任回避の為の文句に過ぎません。 ファイルを破壊するような、えげつないバグは、まぁ無いと思いますし、 β期間が過ぎたから、正式バージョンを新規に発行するかというと、そうではなく、 「はい、1.25 は、もう正式配布ですよー」と言うだけのつもりですので、 躊躇せずに Download されても、別に問題無いと思います、多分

現在、open文にバグが見付かっています。 致命的なバグではないものの、ちょっと、無視したくないので、 β期間が過ぎたら、修正版を公開したいと思います。 あー言ったり、こー言ったり、ごめんなさい。

今回から、OS/2 の API 関数(と呼んでいいのかな)を、いくらか使ってみました。 まず、open命令を追加しました。これは、WPS でファイルのアイコンをダブルクリック するのと同じ動作を行なう命令で、今まで、よく REXX で実現されていました。 これの実現には「WinOpenObject」という関数を使うのですが、 j-pocket の CP*.INFファイル(フルネーム失念)に載っていなかったために、 長い間、使い方どころか、存在さえ分かりませんでした。 最近になって、os2emx.hのプロトタイプ宣言を見付けて、 「おお、こりはもしかして」と思い、適当に値を放りこんでみて、 使い方が分かった次第です。 本NYAOS版openは、なかなか起動が早くて、使える代物ではないでしょうか? 一番、多い使い方は「open .」でカレントディレクトリを フォルダーとして開くという事でしょう。

あと、Double Byte文字の判定に、DosQueryDBCSEnv という関数を使うようにしました。 今までは、_nls_is_dbcs_lead関数 を使っていたのですが、どうもこいつは emxlibcs.dll の中に入っていないために、本格的に DLL を使って、 サイズを縮めるということができませんでした。 で、_nls_is_dbcs_lead の使用をやめたおかげで、DLL が使えるようになり、 実行ファイルのサイズが半分になったというわけです。

しかし、view.exe。あの使いにくさは、どーにかならないだろうか。 画面一杯に広がるもんだから、viewの画面を見ながら、 Mule でコーディングするのが、非常にしんどい。 どなたか、view.exe 互換の INFファイルリーダを作ってくれないだろうか。

NYAOS 1.25 と同時に、ELL 1.02 を公開しました。 こちらは、ファイル名の検索機能やヘルプなどを追加したのですが、 さっそくバグが出てしまいました。 再帰的に ELL自身を呼べなくなってしまい、 00index.txtや、書庫内書庫の参照が出来なくなっています。 こちらを「β公開」と称するべきでした。トホホ。 また、時間を見つけて、バグを取ります。

ふと、思ったのですが、 OS/2 というのは、GUI環境とUNIX文化の理想的な共存環境でありますが、 さらに、DOS的な文化を匂わせるアプリにも最適のような気がします。 UNIXの強者は termcap 等を使って、OS/2 Promptを自在に操ることができますが、 そこまでいかなくとも、emx/gcc には <sys/video.h> に テキスト画面を操作する関数がわんさかあります。 だから、FDのようなソフトを作るのも、さほど難しくないはずなんです。 でも、以外とこの手のソフトの数が少ないですね。なぜでしょう。

一つに入門書が全く無いということがあるでしょう。 僕はプログラムを作る時に参照しているのは、ほとんどオンラインマニュアルで、 emxlib.doc を Mule の一ウインドウの中で開いて読んでいます。 でも、これ英語なんですよね。 OS/2 マガジンでも、emx の連載があったから、プログラミングの連載を期待 したのですけれども、ほとんどインストールガイドで終ってしまいましたね。 まぁ、役には立ちましたけど。

あと、DOSっぽいアプリは、まさしく、DOS 窓を使えばよいと思われているのでは ないでしょうか。でも、OS/2 Prompt ならば、HPFSの長いファイル名を使えたりするし、 いろんな制限が無い分、快適なはずなんですけどねー。 Windows95 user 達が、DOS Prompt で longname を何とか使おうとする姿には 涙を覚えます。誰か、OS/2 を教えてやってください(笑)

究極の理由としては、C言語なんぞ使わずとも、 REXXで簡単な PMアプリが作れてしまうからでしょう。 これは、どうしようもないな(笑) でも、OS/2上で、一番、速く快適なのは、 C言語で作った OS/2 Promptアプリです。 ただし、罫線が化けていない場合に限りますが(笑)

言ってはいけない理由として、OS/2 userの絶対数が...(ボカボカ)

「FAT で長いファイル名を使う計画」は、 宇野さんが REXX で一つの解を示そうとされているようです。 ううむ、僕も何かしなければいけないとは思うのだが... 思いっきり、卑怯な逃げ道を示すならば、ハードディスクは HPFS しか使わない、 フロッピーディスクは tar を通じて、テープデバイスとしてしか使わないという方法も ...あ、石を投げないで...

TVFSのようなFATにかぶさるような新しいファイルシステムを作るのが、 最もスマートなやりかたなんでしょうが、ファイルシステムを新たに作るとなると、 技術的には問題ないでしょうが、個人が趣味で作れるレベルをはるかに越していますね。 その上、FAT でも WPS上なら、問題無く、longname が使えますから、 商品としての魅力は無く、売りものとしても実現率は低そうです。 うまく、ゆきませんね。 やはり、置換・補完しかないのであらうか...


帰って来ました(9/10)

九州から帰ってきました。いや〜いい汗(恥?)かいたなぁ〜。 そいで、ちょっと、時間に余裕ができたので、NYAOS に手を入れ始めました。

まず、環境変数 COMSPEC に NYAOS を指定できるようにしました。 といっても、CMD.EXE が入らなくなったわけではなく、 起動時に、COMSPEC 中に「NYAOS」という文字列が含まれていたら、 CMD.EXE に書き改めて、自分自身を無限に呼び出さないようにしているだけにすぎません。 これの為に、NYAOS 自身のオプションを、CMD.EXE 互換にしました。

あと、ファイル名を補完する際の大文字・小文字を、最初にヒットしたものに合わせていましたが、 これを最も短いものに合わせるようにしました。また「!str」の str も行末ではなく、空白までを 範囲にするよう、tcsh のそれに合わせました。

で、1.23 から、ほぼ一ヶ月経ったし、 あれもこれもと思って、手を出していると、いつまで経っても公開できないので、 ぼちぼち 1.25 を公開しようと思います。 xterm への対応や DOSVPATH については、今回ノータッチになりそうです。 まぁ、この辺は実装すると、1.30 扱いになりそうですから、 次の機会ということで...

しかし、こんな事を言うてる間に kterm がLHAの平松さんの手で移植されそう ですねぇ。その上、TCSH の日本語対応の移植もされると、NYAOS の存在意義というのは完全に無くなってしまうわけで。 まぁ、その時には、ELL みたいな、 OS/2 Prompt上のDOS的ツールの製作への道へ進みましょうかねぇ。


げげ、俺、バカ(9/7)

また、時間がないのに、Web をうろうろしていると、 マロニーさんの 「WPS KEY操作一覧」 というページに、CMD.EXE で使えるオペレーターが一覧されているのを 見つけました。

げげ、CMD.EXE って、標準で「&&」とか「||」を サポートしていたのか、知らんかった...ああ、恥ずかし。 さっそく、NYAOS のページから「&&」とかのサポート項を 消しておかなくては。

しかし、過去のバージョンのドキュメントは... まぁ、いいか。


いざ、ゆかん、九州へ(9/7)

なんか、全く、NYAOS と関係ないタイトルですが、月曜・火曜と 化学工学秋季大会参加の為に九州に行って参ります。 ここ二週間ばかり、こいつのおかげで、ほとんど OS/2 と遊ぶことが できませんでしたが、これが終われは、ようやく、NYAOS や ELL に 裂く時間が出来るというわけです。

しかし、こんなこと書いている場合なんだろうか、 明日(もう、今日か)の 6時30分 にバス停集合なのに、今、0時12分。おいおい。 まだ、OHP を少々手直ししている最中だという。 真面目な大学人の方々、なんてやつだと、石を投げないでくださいませ。

ロングファイル名については、 筑波大学の宇野さんから、 いろいろとアイデアをいただいております。 それに関しては、このページや宇野さんの「独り事」のページを 見比べていただければ、話の推移がお分かりになると思います

なかなか、効率を落さない実現方法というのは見付からないものです。 宇野さんのおっしゃるように、何かよい案がありましたら、 ぜひ、葉山にメイル をくださいませ。

NYAOS に関するメイルというのは、実際のところ、月に二、三通というところなので、 作者に入る情報量は非常に少ないです(そのほとんどはある特定の... いつも、ありがとうございます m(__)m )。 ですから、メイルをいただいて、五月蝿いということは、決してありません。 今の百倍来ても平気です(本当だな、おい)。

ELL に関しても同様です。 最近になって、初めて使用者の方からメイルをいただいて感動しまくりました。 しかしながら、公開してから、もう一年くらい経つので、 プログラムについてほとんど忘れてしまったという... いや、ニーズがないように見えて、自分も機能にそれなりに満足していると、 ソースに手を加えることが無くなってしまうんですよね。 時間ができたら(いつだ?)、ゆっくりソースを眺めて、 記憶を呼び起こしたいと思います。


OS/2と95のLongnameについて

HPFS のファイル名というのは、原則的に コマンドライン・ワークプレイスシェルで 共通です(厳密に言えば、バックスラッシュなどの文字が入ると異なりますが)。

FAT のファイル名は 8.3 の制限にしばられますので、ロングネームは 拡張属性の .LONGNAME に保存されます。

NYAOS の対応といえば、今のところ eadir 命令でロングネームを右端に表示するだけです。 この eadir も 1.23 までは bug っていて、カレントディレクトリでの eadir でしか、 ロングネームを表示できなかったりしますが、次のバージョンでは 直っていますので、「alias ll="eadir %*%quot;」として使っても不都合ないと思います。

さて、コマンドラインでロングネームを差す場合となると、例によって、NYAOS 得意の置換処理となりますが、 なかなか、パス周りの置換というのは、やっかいなんですよ。 例えば「C:/foo123456789/b123456789/gar123456789」という絶対パスを指定された場合、その途中のディレクトリ、 「foo123456789」「bar123456789」「gar123456789」について全て、ロングファイル名が存在するか、 どうかチェックしなければなりません。

現実問題として、全ての引数についてチェックするのは、効率が悪すぎるので、 置換の目印となるような記号を置いてもらうようにしてもらうと、 シェルとしては楽になるんですがね(笑) 例えば、使用頻度の低いアットマークを使って 「C:/@foo123456789@/@b123456789@/@gar123456789@」などと使うと、 必要なところだけを置換すればいいので、処理が若干楽になるんです。 LONGNAME には正/逆スラッシュや空白も入り得ますから、まぁ妥当な方法ではないかと思います。 しかし、こんなややこしい方法をとるんだったら、ショートネームを使った方が 速いような気が... ここんとこ、どなたか、いいアイデアあったらメイルください(WWWでもよかったりして)。

なお、ロングネームをリネームするとか、加えるっていうコマンド程度なら すぐに出来ます。要は、comment命令と同じようにすればいいわけですから。 でも、この程度だったら、誰かが REXX で... (それが REXX を一度は否定したものの態度か! はいっ(笑))

VFAT のロングネームの対応については、実は前々から「考えは」していて、 「Windows95の中のDOS」とか「続・Windows95の中のDOS」といった本を 買ってたりします。でも、対応できたとしても、おそらく、eadir での表示と コマンドラインでのショートネームへの置換程度だと思います。 書き込みは...怖すぎる...(そこまで誰も期待していない!?)

しかし、どっちともワイルドカードの対応は、ちょっと一筋縄では、いきそうにないなぁ。 なんせ、emx に完全にオンブしてますし。


全然、日々、OS/2の毎日ちゃうやんけー(9/5)

タイトルは「日々、これ OS/2 の毎日」とありますが、最近、全然 OS/2 の 毎日なっとりません。ほとんど「日々、Solaris の毎日」になっとります。

いや、これは別に僕が OS/2 に見きりをつけたとか、愛想をつかしたとか いうんぢゃなくて、単に OS/2 マシンが下宿にしかなくて、下宿でゆっくり 使ってやる時間がないっつーだけの話なんですね。対して、Solaris は、 研究室の Sun互換ワークステーションで使っていて、デスクトップタイプ だけど、ほとんどノートがわり。シャープペンシル持ってる時間よりも ワークステーションのキーボードに触っている時間の方が長いという...

だから、まぁ、ウェブのページは、研究の合間に気分転換に書くっていうことが できるんですが、NYAOS や ELL の改良は遅々として進まないという...。 うう、言いわけがましい。

XFree86 の xterm に対応すると申しましたが、XFree86 さえインストールしていない状況。 実は昨日、アーカイブを展開したあとのコマンド一つ二つくらい、 そう、RAMDAC を調べるコマンド前後まで進みました(そういうのは進んでいるうちに入らない?!)。 けれど、ビデオカードのチェックで、S3ViRGE なのに、SiS と勘違いしてよるんですよね。 いや、確かに SiS はマザーボードには内蔵しているんですけどね。 このまま進んでもいいのかなぁ。

ところで、NYAOS はここ半月ばかり、全然改良などしとりませんが、その前には 結構ごちゃごちゃといじくってますんで、

(1.24での変更点)+(SOSスクリプト,CDPATHのサポート)−(1.24,1.23のバグ)
という点で、1.23よりは進んでいます。 この際、出し惜しみせず、1.25 として公開した方がいいでしょうかねぇ。 ぼちぼち、1.23 の公開から一ヶ月も経ちますし。 最近は、よく致命的バグも出すので、公開日から一週間はβ扱いに付き注意という ただし書きも付けて(笑)

関係ありませんが、fj.binaries.msdos.dとか、 fj.os.msdosとかで、Windows95 の LongFileName と 補完のできるシェルの話題がちょっと前に盛り上がっていました。 LFN をUNIX風コマンドラインツールで扱うことに 関してですが、なかなかスマートにはいかないようで... OS/2 なら HPFS を使えばいいだけなんで、全く問題無いのにねぇ。

P.S.
最近、どこか(Web?)で相づちを打たれているような気がします。
気のせいでしょうか(笑)


JED発見(8/31)

今日はモーレツに忙しかったのにもかかわらず、つい Netscape で遊んでしまったところ、 JED という Emacs系エディタのホームページを発見 (http://www.eis.or.jp/muse/kikutani/jed.html)。 なんと、僕の好きな SKK が使えるということに感動し、 さっそく、学校のSolarisにインストールしようと GET。
 そして、ドキュメントを読んだところ、 なんと OS/2 の emx/gcc にも対応しているとのこと。 ううむ、これは楽しみ。暇が出来たら、さっそく OS/2 でもコンパイルしてみよう。 (拡張属性はやっぱり無視されているんだろうなぁ...
 DOS/V版のコンパイル済みバイナリもあったので、こいつを使えば、 最近、漢字変化の遅さが不満で使ってなかった ThinkPad 220 が復活できそうだ。
 これで、時間さえ十分あったら、本当申し分ないのに... (しかし、忙しいほど、ウェブページが増えるのはなぜ?)
さらに過去の余談へ