DB-Z, PV-F1, PI-3000(ZAURUS) BASIC Tips Copyright(c)1994 E.Kako & M.Satou 【1】 はじめに 電子手帳にはICカードのスロットがあり、ここにICカードを差込むことでメモリを 増設したり様々なICカードソフトを使うことができます。数あるカードの中でも特に BASICカードは、自分にニーズに合わせて自由にソフトを作ることができるという大 きな可能性を秘めております。 特にパソコン用にプログラムを開発をしているような腕に覚えのあるユーザー層の 方々の中には、電子手帳本体の機能だけに留まらず、更に自作のソフトで電子手帳を 何倍も活用している方々が少数ですが頑張っておられます。 本文ではそんな方々からの情報をまとめて紹介します。これから開発を始めようと 考えている方や既に開発している方の参考になりましたら幸いです。 【2】 電子手帳用BASIC シャープ(株)の電子手帳用のソフトを開発するためのBASIC言語として以下のよう な製品が現在(94/4月)のところ存在しているようです。(他にあるかもしれません。) 型式 品名 容量 -------- -------------------- ------- PA-9C3 関数プログラムカード 32KB PA-9C95 BASICカード 64KB PA-9C96 BASICカード 128KB PA-9C97A〜D BASICカード ? PV-1C95 BASICカード 1MB これらのうち、PA-9C3のみが一般に市販されております。 これらのカードでのプログラミングについてのTipsをここに公開します。 ※ PA-V1という企業向け電子手帳には本体ROM内にBASICが標準搭載されているそ うですが、このBASICについては未確認です。このTipsの適用範囲外とします。 【3】 開発環境 3.1 電子手帳本体 上記BASICカードが使用できる機種には、以下のものがあります。 シャープ PA-9500/9550/9600/9700 , PV-F1 , PI-3000(ZAURUS) パナソニック CI-P5 (PA-9500のOEM?) 日立 DT-H2 (PA-9500のOEM?) 3.2 開発ソフト 電子手帳本体とカードだけでもプログラムを書くことができますが、パソコン上で 開発するのが一般的です。 DB-Z/PV-F1でのキー入力は多少難がありますし、特にZAUR USではキー入力が非常に困難ですのでパソコン上で開発するほうがいいでしょう。 シャープより、CE-151Dという型式でBASICカード用の開発キットが出ております。 これは市販されていません。このキットには開発マニュアルとソフトが含まれており ます。ソフトは「BC-LINK」という名前で、BASICカードを装着した電子手帳とNECの パソコンPC-9801とを接続して、BASICカードのプログラムのデバッグやプログラムの 転送をするユーティリティソフトです。 別にこれがなくても適当なテキストエディタとケーブルがあればソフトを作れます。 3.3 ケーブル 電子手帳本体の15ピンポートとパソコンを接続するケーブルが必要です。電子手 帳の15ピンポートはシリアル転送のためのインターフェイスで、信号電圧は低いで すがRS-232C準拠の信号が出ております。信号電圧を合わせるためのレベルコンバー タ回路を含んだケーブルが必要となります。 シャープより、CE-150Tという型式のケーブルが市販されておりました。最近では CE-150TSという複数のインターフェイスに対応したケーブルが市販されています。 HyperHAL-CATCHなどに付属しているDTIF-110も使用可能です。またアンテナハウスの ケーブルも使用可能です。 パソコン上で作ったプログラムを電子手帳に転送するには、専用ツールを使わなく ともとりあえずパソコン用の通信ソフトがあればなんとかなります。WTERMやhtermな ど使うことができます。 3.4 その他 (株)スターリングから、パソコンからICカードに直接書き込みするための装置や その他の開発ツールが出ています。 【4】 BASICの特徴 N88-BASICなどのマイクロソフト系のBASICに似た普通のBASICインタプリタです。 シャープのポケットコンピュータPC-E500/E550あるいは大学生協版ポケコンPC-14 80U/1490U/1490UIIに搭載されているBASICの上位互換のものです。ただし、最新機種 PC-E650/PC-U6000ではBASICインタプリタにブロックIF文などの構造化風の拡張がさ れております。この拡張部分は電子手帳と互換性がありません。 ポケコンのBASICと比べて電子手帳用に拡張されたのは、漢字処理と時間関係の機 能とペン入力の機能です。 ペン入力機能はあまり使いやすくありません。電子手帳のROM内のルーチンでは、 画面上にアイコンを定義してそのアイコンがタッチされるとアイコン番号を返したり とかできるのですけど、BASIC上での機能では、自分で画面上のタッチされた座標位 置を調べなければならないので面倒です。 パソコンなどでもBASICでプログラムを作る人がほとんどいない昨今ですが、電子 手帳用に他の開発言語は市販されていません。フリーソフトウェアではアセンブラと C言語に似たVOGUEというコンパイラがあります。 【5】 BASICの隠しコマンド 5.1 CE-151Dに載っている隠しコマンド これらのコマンドはCE-151D(開発マニュアル)に載っておりますが、PA-9C3のマ ニュアルには載っていません。 (1) BREAK ON/OFF BREAK ON :[入]キーによるプログラムの実行中断を有効にする。 BREAK OFF :[入]キーによるプログラムの実行中断を無効にする。 (2) DATE$/TIME$ 設定変更も可。 例) DATE$="1994/04/24" (3) POKE/CALL メモリ上へのデータ書き込みと、機械語の実行。 ※ PA-9C3では使用できません。 (4) CALL @n [,パラメータ [,パラメータ...] ] BASICカードのROM内のライブラリを呼び出す。 n=2 : データ検索 n=3 : キー入力モードの読み出し n=4 : キー入力モードの設定 以下省略。詳細はCE-151Dを参照のこと。 5.2 どこにも載っていない隠しコマンド これらのうちいくつかはポケコンPC-E500の隠しコマンドとして知られていたもの です。その他、電子手帳のBASIC固有のものはROMの解析により発見されています。 (1) RESERVED &Hn BASICインタプリタの中間コードでコマンドを入力します。 例) CALL = RESERVED &H31 POKE = RESERVED &H32 (2) BASIC/TEXT BASICのエディタをテキストモードに変更したり、元に戻したりします。 (3) TOUCH STOP 存在のみ確認。動作不明。 (4) PEEK @W,アドレス 2バイトデータのPEEK関数 (5) POKE @W,アドレス,データ,データ,螂 2バイトデータのPOKE ※ PA-9C3では使用できません。 (6) ERROR n n=1 :リセット n=16:Low battery Break (7) LOAD M?"ファイル名"[,照合開始アドレス] マシン語プログラムの照合 (8) BTEXT$="S1:AUTO.BAS" CARD.BASは期待した動作をしませんが、これは期待通りに動作します。 (ただし、特別機能のチェックサムが正しく動作するかどうかは不明) (9) S1:EXEC.SYSによるマシン語領域確保 S1:EXEC.SYSに、「OBJ=&425」と書き込んでクローズしてからRESETすると、 &425(=1061)バイトの機械語領域を確保します。(メモリーが足りない時は 機械語領域の大きさは変わらない) 【6】 機械語について シャープの電子手帳のCPUは、シャープのポケコンと同じESR-Lという8ビットのCPU が使われてます。工学社の「PC-E550*PC-1490U活用研究」という本にこのCPUの機械 語の詳しい説明が載っています。 文献によってはポケコンPC-E500シリーズのCPUのことをSC62015と呼んでいるもの があります。これはポケコンに搭載されているチップの名前がSC62015だからです。 CPU自体はESR-Lが正式な名称のようです。電子手帳に搭載されているチップはLH-58 06というものです。LH型番のチップはシャープ内製で、SC型番は外で作っているよう です。 ちなみに旧タイプのSC電子手帳には、ポケコンPC-1251/1350/1360Kと同じESR-Hと いう8ビットCPUが搭載されています。チップの名前はSC61860というものです。ESR-L との互換はありません。DB-ZやPV-F1ではSC電子手帳用のICカードを使用することが できますが、これは電子手帳のCPUチップの中にESR-Lの機能ブロックとESR-Hのブロ ックがあるからだそうです。(デュアルコアというそうです。) SC電子手帳用のBASICカードにはPA-7C18(32KB)やPA-7C19(64KB)があります。これは 単体ではプログラムを開発できません。 ICカードライタCE-W100と開発用マニュアル CE-W100D(ソフト付)が必要です。機能は新しいBASICカードに比べ圧倒的に劣っており ますので、SC電子手帳用BASICは避けた方がいいでしょう。 機械語でのプログラミングは、一つ間違うと暴走してしまいます。ハングアップし てもリセットすれば復帰することが多いですが、万が一にも電子手帳のデータを破壊 してしまう恐れがありますので、データのバックアップを取っておくべきです。デー タのバックアップの方法についてはここでは触れませんが、電子手帳活用の基本中の 基本ですので、まずバックアップ方法をマスターして下さい。 【7】 フリーソフト 7.1 Nifty-Serve FSNOTE Nifty-Serve FSNOTEのデータライブラリに多くのフリーソフトが登録されてます。 (1)ゲーム 番号 ID 登録日付 バイト データ名 179 KGG01267 93/10/17 19878 HEAVY.LZH DBZ>HEAVY METAL(shooting game) 261 KGG01267 94/04/05 19979 HEAVY_PV.LZH HEAVY METAL (shooting game) この2つは、もともとポケコン用に作られたシューティングゲームの移植です。 DB-Z版とPV-F1版があります。ZAURUSでは動きません。 (2)ユーティリティ 番号 ID 登録日付 バイト データ名 238 KGG01267 94/02/27 4239 HATO.LZH 鳩時計をDB-ZやPV-F1で実現 250 KGG01267 94/03/28 7579 MARU100.LZH ZAURUS丸文字表示ソフト v1.00 262 KGG01267 94/04/05 5398 REG100.LZH DBZ,PVF1 CPUのレジスタ表示 267 KGG01267 94/04/11 5438 SLTCHK20.LZH DBZ,PVF1,ZAURUS 電子手帳メモリ 269 KGG01267 94/04/18 5490 KYUREKI.LZH DBZ,PVF1,ZAURUS 旧暦カレンダ (3)機械語モニタ 番号 ID 登録日付 バイト データ名 188 KGG01267 93/11/18 5962 KNDBZ109.LZH DBZ>小型マシン語モニタv1.09 いわゆる機械語モニタです。ポケコン用に作られたモニタの移植です。最近 ZAURUS対応版も出来てきているそうです。 (4)ファイル転送 番号 ID 登録日付 バイト データ名 198 KGG01267 93/12/06 2213 ZSH111.LZH DBZ>ZSH for DB-Z/BC ver.1.11 199 KGG01267 93/12/06 5362 TSRG018.LZH DBZ>TSR Guard Version 0.18 201 KGG01267 93/12/06 2990 DRL015.LZH DBZ>DRL Version 0.15 202 KGG01267 93/12/06 14920 PLDBZ029.LZH DBZ>PLINKDBZ.SYS Ver.0.29 203 KGG01267 93/12/06 4273 PL_ASM.LZH DBZ>PLINKM for PC-9801 204 KGG01267 93/12/06 21479 LOOK123.LZH DB-Z>Lookv1.23 (PLINK関連) 205 KGG01267 93/12/06 27850 PL98_103.LZH DBZ>PLINK98 Version 1.03 電子手帳とパソコンを接続し、パソコンのファイルを電子手帳の仮想ドライブ として使用するためのソフト「ポケットリンク」です。あと、ポケットリンク等 のデバイスドライバの使用を支援するソフトです。 (5)クロスアセンブラ 番号 ID 登録日付 バイト データ名 185 KGG01267 93/11/11 50011 XASM130m.LZH 電手帳クロスアセンブラv1.30 (DOS) 186 KGG01267 93/11/11 39447 XASM130x.LZH 電手帳クロスアセンブラv1.30(X68K) 187 KGG01267 93/11/11 33328 XASM130u.LZH 電手帳クロスアセンブラv1.30(UNIX) 229 KGG01267 94/01/19 49600 MacXasm.lzh 電子手帳クロスアセンブラv1.30(MAC) ポケコン/電子手帳用のクロスアセンブラです。 7.2 ポケット通信Ver.3 東京に「ポケット通信Ver.3」というBBSがあります。工学社の「ポケコンジャーナ ル」誌により運営されているBBSです。ポケコンおよび電子手帳のパワーユーザーが 多くおりまして、多くのフリーソフトが発表されています。 特に、電子手帳上で動くターミナルソフトやC言語モドキのコンパイラVOGUEなどは 圧巻です。また、Nifty-Serveに登録されている上記のソフトの転載元はほとんどが ポケット通信です。 ポケット通信Ver.3のTEL番号は 03-3299-8661です。 7.3 ZAURUS Mailing List Internetの「ZAURUS Mailing List」というメーリングリストがあります。ftpによ るフリーソフトの配布も行われています。 問い合わせは、zaurus-request@astec.co.jpまで。 【8】 参考資料 シャープ ハイパー関数プログラムカードPA-9C3取扱説明書 シャープ CE-151D プログラムBASICカード開発マニュアル シャープ PC-E500取扱説明書 工学社 PC-E550*PC-1490U活用研究 工学社 ポケコンジャーナル 1988年1月号〜1994年5月号 その他 出所不明の資料のコピー各種