FGALDC 15 VzからpICoのアクセサリを使う みなさん、こんにちは。 オアシスポケット3専用のネタで申し訳ないのですが。 ポケ3にはpICo(Personal Information Companion)と呼ばれる一連のアプ リケーションがあります。スケジュール表やToDoリスト、プロジェクトシー トなどの、いわゆるPIMソフトです。これらのアプリを使うことで、ポケ3を いわゆるPDAとして使うことができます。これらはデータの定義にSGMLを 使っているなどなかなか先進的なのですが、先進すぎるあまり、マシンのスペッ クに対してソフトウェアの負荷が重すぎて、やや使い勝手はよくありません。 ところで、これらのアプリから呼び出される、セクレタリ機能と呼ばれるツール がいくつかあります。具体的には、電卓やカレンダー、世界時計などの、いわゆ るデスクトップアクセサリです。これらはpICoアプリを介さずに呼び出すこ とも可能なのですが、そのためには多少手続きを踏まねばなりません。 VzエディタからpICoのアクセサリを使うマクロについては、95年6月に FOAU2/MES/8/#313(閉鎖済み会議室)に宇紀さんが発表された物があります。た だ、この方法だと、別途バッチファイルを事前に準備しておく必要があります。 また、バッチファイルの中で、フリーウェアの BU と SED を使っています。 いずれもメジャーなフリーウェアなので、ポケ3をDOSで使っている方ならメ モリカードの片隅に入っているかもしれませんが、よくよくバッチファイルを読 んでみると、SED はその本来の目的通りというか、文字列の変換のみに使ってい ます。でも、そもそもがVzというのはテキストエディタなので、この程度の文 字列の変換であれば、Vzの基本機能で実現可能です。 また、BU に関しても、使っているのはエラーレベルに64という値を返すという 事のみであり、これだけのために BU を使うのは、まさに鶏を割くに牛刀をもっ てするがごとくです。実際、私はその他の用途に BU を使っていないことから、 メモリカードの容量の節減のために、ポケ3に BU は入れていません。 ただ、何らかの方法を用いてエラーレベルに64という値を返せるようにしない と、DOSモードからpICoのアクセサリを使えるようにはなりません。そこ で、ただそれだけを行うツールを作ってみました。それが以下のファイルです。 >-----------------------------RET64.COM ク@Lヘ! >-----------------------------RET64.COM 単に、上の5バイト(改行記号不要)のファイルを、上記の名前または任意の名 前で .com ファイルとして保存するだけです。改行記号は不要ですが、あっても 害にはなりません。BU に比べ、ファイルサイズが非常に小さくて済むことがおわ かりいただけると思います。 多分、「OASYS Pocket3 DOS環境パワ−アップガイド」に入っている RETDOS もほ とんど同様なツールのはずで、もしかしたら全く同じものになっているかもしれ ませんが、あいにくとこの本を持っていないため確認できません。ただ、この程 度の物であれば誰が作っても同じになるはずで、もしまったく同一であったとし てもそれは偶然というよりも必然といって言いものでしょう。なお、私自身は著 作権を主張しません。 ついでに、ソースリストも掲載しておきます。なお、以下のソースリストにはタ ブコードが含まれております。 >---------------------------------------------------------------RET64.ASM ;-----------------------------------------------------------------------; ; Light Macro Assembler : Sample Program ; ;-----------------------------------------------------------------------; ; ret64.asm ; ; OSへ返り値64を返すだけのプログラム. COM形式. ; ; > lasm ret64 -> ret64.obj ; ; > lil ret64 /c -> ret64.com ; ; > ret64 ; ;-----------------------------------------------------------------------; assume cs:cseg,ds:cseg,ss:cseg ; 各セグメントレジスタの宣言 cseg segment ; セグメントcsegの開始 org 100h ; PSP領域の確保. COM形式では必須 mov ax, 4C40h ; ah = 4Ch, al = OS戻り値 = 64 int 21h ; DOSへ戻る cseg ends ; セグメントcsegの終了 end ; プログラムの終了 >---------------------------------------------------------------RET64.ASM このソースリストを、多摩ソフトウェアの LASM でアセンブルした結果が上記の 実行ファイルです。ただ、この程度のソースなら、MASM だろうが ARROWASM だろ うが TASM だろうがアセンブルできると思います。 さて、これで事前の準備は整いました。 実際にVzからpICoのアクセサリを使うマクロは以下の通りとなります。 ======== VZPICO.DEF ======== * M マクロ 70 @C "PICO 電卓" ?. &s #N "E:\PICOMAIN.INI" #m "LVL3 (EPCALC) E:\$1 FST LVL2 (A:\FREEWARE\RET64)" #m #S #m #C #E "C:\PICO\EPPMAIN" #m #[ #O "E:\$1" #m #> #16 #H #54 #C #u &d . 70 @L "PICO カレンダー" ?. &s #N "E:\PICOMAIN.INI" #m "LVL3 (EPCALEN) E:\$1 FST LVL2 (A:\FREEWARE\RET64)" #m #S #m #C #E "C:\PICO\EPPMAIN" #m #[ #O "E:\$1" #m #> #H #54 #C #u &d . 70 @T "PICO 時計" ?. &s #N "E:\PICOMAIN.INI" #m "LVL3 (EPCLOCK) E:\$1 FST LVL2 (A:\FREEWARE\RET64)" #m #S #m #C #E "C:\PICO\EPPMAIN" #m #[ #O "E:\$1" #m #d#d#d#d "/" #d#d "/" #d#d " " #> #h#h#h#h#h #a #u#u#u#u#u "(" #> ")" #H #54 #C #u &d . * ======== END OF VZPICO.DEF ======== キーアサインは、上記の宇紀さんが発表された物に準拠しています。ただ、宇紀 さんが作られたオリジナルは、それぞれのアクセサリの実行結果をテキストスタ ックに記憶するように作ってあり、編集中のテキストに挿入するためには ^J か ^KC をする必要がありました。しかし、このマクロではそのままカーソル位置に 挿入するような形にしてあります。 なお、RET64.COM のファイル名やディレクトリについては、みなさんの環境に合 わせてください。 ところで、この時計マクロの部分で、結果の末尾に括弧に入ったアルファベット がくっついてきます。上記の宇紀さんの説明だと、これは「国の略コード」だと されていますが、これは誤りです。正解は、グリニッジ標準時からの時差を、0 時間をAとして表しています。日本の場合、9時間の時差ですから「(J)」となる のですが、たぶんこれだけを見て、日本だから(J)だと勘違いしたのでしょう。 ということで、オアシスポケット3専用のネタで申し訳ないのですが、なにかの 参考になれば幸いです。                                 としき