TXでhp-49Gのエミュレート

Power48 は Palm上で、HP48SX, HP48GX, HP49Gのエミュレートができる優れもののフリーウエアだが、NVFSのPalm TXではヒープメモリーが圧迫されて49Gのロムはロードできなかった。 ところが本日解決策を見つけてしまった。

UDMH というダイナミックメモリーを大きく見せかけるユーティリティーがあって、これを使うとなんと49Gも無事エミュレートできるようになった。 TX対応はVersion 5からで、これはまだベータだが、 レジストも10ドルと手ごろなので即日購入してしまった。 自分の日本語+Fitaly+ptoolset環境ではブレーザーとは相性が悪いみたい(どこまでもヒープを確保しに行っている感じでフリーズ。ソフトリセットで回復)なので、AppごとにOn/Offできる機能を使って例外処理しているが、 これでますます使い勝手がよくなってきた。 MapopolisというNavigation のアプリも地図のアップデートが以前よりスムースになったような気がする。

Forumの書き込みを見ると、どうもゲームソフトのエミュレーターをPalm上で起動するときにメモリー不足になる現象を回避するために使っているユーザーがほとんどのようだ。 

インストラクションがまったくといってないので、どのような処理をしているかは不明だが、 普通のメモリー領域をヒープに見せかけるということをやっているようだ。 しっかし86系じゃあるまいし、ARMでこういう処理をしなけりゃならないというのも。。。

パームリンクに参画。

このブログ、Palmの記事は少ないが、 一応パームを使っているということで、お許しいただこう。 (年配者の特権で勝手に決めている (^^;))

Palm歴を述べれば、 約5年

Handspring Visor -> Visor Platinum -> PalmOne Tungsten T3 -> Palm T|X となる。

日本語化ソフトのほうは

J-OS III -> J-OS V -> JaPon + J-OS IME -> Japon + POBox

実はHandspring Visorに転ぶ前はHP-200LXのユーザーだったりする。 この80186ベースのPCをPalmTopと言っていたので、 Palmといわれると即座に200LXのほうを思い出してしまうのは自分の歳のせい?

付属してくるソフト以外に使っている有料アプリケーション

  • DateBk5
  • Lifebalance
  • DayNotez
  • Bonsai
  • HandBase
  • memoleaf
  • ptoolset
  • Fitaly Virtual
  • PowerRun
  • RPNモードの計算機ソフトが数点(KK12C,P41CX,RPN,PowerOne Finance, Neocal)

その他TealPointのアプリケーションが何点か。

フリーウエア

  • HandyShopper2
  • Filez
  • Power48

一時に購入したわけではなく、過去4年間に色々買い続けてこうなった。 LifeBalance, Bonsai, HandBaseはデスクトップ版も購入しているから結構経費がかかっている。 購入したあと使わなくなったアプリも多いから、金額的には軽く千ドルは超えていると思う。 Palmを使っているとソフトの経費もかかるのだ。 DayNotezのデスクトップ版に限ってはバグレポートしたおかげで無料でライセンスをもらった覚えがある。

PPN計算機の収集癖ははっきり言って病気。

 Palm TX あれこれ

1)ある日突然TXが死んでしまう。という報告をあちこちのフォーラムで散見するが、

1srcでの報告で「充電器が不良で充電できてなかった。」という原因のものがあった。(oo;)。 投稿者はTT5も所有しており、もしやとおもって、そちらの充電器で充電したら復活したとの事。TXにはLEDがついてないので、画面が立ち上がらない状態まで放電してしまったら、もう充電できているかどうか判別するすべがない。

2) マイクを組み込み、ボイスレコーダー機能をTXに搭載してしまった剛の者がいる。

http://www.palminfocenter.com/view_story.asp?ID=8230

動画付き。 このページの下を見ていくと、作り方、ならびに半田付け部分の写真へのリンクもある。 ハードのほうはどうもマイクロフォンを半田付けしただけみたいだが、、ソフトのほうは TT3 からでも移植したのでろうか。

3) DBCache のクリアはsync方式ではなくて、DBのオプションを選んでおくと、Japon実装時でも9メガぐらいは確保できるのだが、 このDBCachtoolでトリガーを設定しておくとアプリの起動時に始まるクリアの待ち時間はかなり長い。たとえアプリの要求するメモリーが少なくてもメモリーを全部クリアしようとしているみたいだ。 不安定なアプリケーションを見つけるには便利だが、通常の使用時にはわずらわしい。 結局強制クリアはオフにしてしまった。 OSに任せた場合はアプリ起動時に必要な分だけクリアしているようで、待ち時間がまだ少ない。 それでもBlazer起動時なんかは延々と待たされることが多いし、日程を見ようとして時に数秒画面が切り替わらないとムカッとくる。

4) T3の電源が左側に付いていたので、いまだにそちらを押してしまう:)

 HP48GXの復活

Power48とPalm TXの相性について、 このサイトを見ると、

Rom imageをNVFS(メインメモリー)に展開していると、読むことができない。SDカードからだとロードできる。

SDカードからでも、48GXと48SXのロムイメージのロードはOKだが、49Gのロムイメージはヒープメモリーが足りなくてロードできない。

 と書いてある。

よって、結論としてはTX上では48SXと48GXのエミュレートはできるが、49Gのエミュレートはできない、ということになる。 Power48はTXでは全く使えない、と自分が勝手に思い込んでいたのは間違いであった。

自分がメインに使うのは48Gの実機を持っている関係上48GXなのだが、Tungsten T3で使っていたときにはロムイメージをメインメモリーに格納していた。 TXに移行した際、プログラムがイメージを発見できなくなっていたようだ。 

SDカードにおくイメージはフォーマットがbin形式になっており、それだとTX上でも認識する。 そこでロムイメージをPC上でSDカード用にコンバートしなおし、SDカードに転送することによってGXとSXを起動させることができた。 日本語化しているTXでも大丈夫。  ロムイメージのサイズを改めて見てみると  SXが256キロバイト、GXが512キロバイト、そして49Gが1メガバイトと、確実に大きくなっていることが判る。 まあ49Gはマニュアルもないし、これでもいいか。 ちなみにこのPower48はフリーソフトである。 Labor or Loveとしか言いようがないが、 ググってみても作者の痕跡が今年の初めくらいから立ち消えている。 無事でいてくれると良いのですが。

 HP41の復活

なんか子育て日記からハイテク日記に変ったみたいだが、今はTXへのマイグレーションに手を焼いているので自然にこうなる。

T3からTXに移行するついでに、使っていたアプリのアップデートを調べていたら、P41CXというHP41のエミュレーターが320x480に対応した新しいバージョンになっている(ったって、0.12Kなんだけど、この作者、延々とバージョン0.12である)のに気がついた。

で、TXに載せてみたのだが、 これって見栄えがすごくよくなっている。

昔、HP41が買いたくても値段を見てひるんでいた(そしてEducalcのカタログで、豊富なオプションロムやらアクセサリーをあきず眺めていた)世代としては、 「とうとう我が物になったぞ、」って感じである。 Rom Imageを無料公開しているHPに感謝。 これでスキン切り替えでオーバーレイが出来るようになったら、それこそ実機にまさるというもの。 もうスピードは圧倒的にPalmのほうが速いのだから。

フォトリアルなスキンが一番見やすいというものでは必ずしも無い。 例えばFree42はモノクロのデフォルトスキンが操作性を考えると一番だ。 ただし、P41CXについては見事にフォトリアルと実用性が共存している。 偉いえらい。

一方、HP48GX/HP49GのエミュレーターであるPower48のほうはTXではメモリー不足でロムイメージを展開できませんと出てしまう。 以前もT5が出たときに、メモリー部分を少しいじったという記述がリリースノートにあったので、TXでも多分メモリーモデルの調整が必要なんだろうが、作者は最近アップデートにご無沙汰であり(なんとTIのエミュレーターを作っているらしい(怒))、対応してくれるかどうか心配。 こっちは困った。

Palm TX。 俄然安定してきた。

ptoolSetのアップデートのあと、TealMasterを削除、 Teallaunchが使えなくなって失った機能をptoolsetでぼつぼつ作りこんでいるが、今までのリセットが嘘のよう。 Sekinoさんの方角に足を向けてねられませんな。(って、日本は地球の裏側だからどちらを向いても足を向けることになるなあ。)

冗談はさておき、ptoolsetでホームボタン指定を変えても、長押しでヒストリーが出てくる機能はちゃんと残っている。逆に言えばptoolsetの長押し設定が効かないのだが これは便利。話題のSharkTXFixを使ってもコントロールバー上のfind改めホームボタンは長押しで履歴が出るところまでは再現されていないので、この機能までのっとられると困るとおもっていたのだ。(もっともこれのおかげで、PtoolSetでボタン指定できるアプリは10個(1+3+3+3)にへってしまったが。)

そのSharkTXFix、同梱されているスキンでfindアイコンをホームアイコンに書き換えてしまうようになっているが、直接ロードせず、一応(SkinDIA改め)mySkinをかましておいた。どこかのフォラムでスキン書き換えのトラブル報告があったためと、Fitalyと共存させたかったからだが、FitalyのほうはT3用のExecutable + mySkinのFitalyComponents Merge機能のおかげでばっちり動いている。 そのFitalyのレイアウトの中にもホームアイコンが入っている。 ホームボタン1個、ホームアイコン2個のPalmになってしまっているが、ボタンのほうはmemoleafにアサインし、Fitalyのhomeアイコンはなぜか長押しで認識されるのを逆手にとってHi-launcherの起動トリガーをホームアイコンの長押しに指定しておいた。 Fitalyのホームアイコンタップで、hi-launcher起動、 コントロールバーのホームアイコンでFavoriteとアプリケーションランチャーの起動、 さらにPtoolset上のPtoolButtonを使った簡単なメニューの表示などで、各種アプリの起動は万全。

話は戻ってFitalyはTXとZ22がサポートできないという口実でPalmの開発を打ち切ってしまった。 Forumを見ると、PalmのOSの(品質と対応の)悪さを理由としているようだが、mySkinがいとも簡単に解決してのけたことなので、やはりPalmに見切りをつけて、マイクロソフト一本でやります、ということなんだろうな。、 そのmySkinだが、設定でシルク部分のアプリのアイコンをカラー表示することができる。 カラー表示にできないのは、もともとのホームとかメニューとかのアイコンのみ。こりゃ楽しい。

Palm TXは自分が始めて買ったNVFS搭載のPalm OS機

ノンボラメモリーになったので、バッテリーの切れ目が情報の切れ目となることがなくなった、ということなんだが、今までを振り返って考えてみてもバッテリー切れで情報をパーにした覚えがない。 SDカードを使えるようになる前からVisorではスプリングボードを使ったバックアップを取っていた。

TT3と比べると

LEDが無い。

バイブレータ機能が無い。

ボイスレコーダー機能が無い。

スライダーの廃止

の代わりにWifiが装備されている。

値段が3/4になったが、原価低減できるところは徹底的にやって、Wifiは回路の集積化でこの値段にしましたというところか。 199ドルのPDAにWifiがつくのもそんなに遠いことではなさそうだ。(もしそれまでPDAという形態が残っていればの話だが。

で、このNVFSなのだが、従来のPalm機と使い勝手に差がある。 時々アプリのスタートアップに遅れが出るのはRAMの部分を整理しているみたいなのだが、これって、昔のBASICのガベージコレクションを思い出す。

PtoolSetもまともに動いてくれない。 最初はJaPonとPtoolSETの相性の問題かと思って、Sekinoさんに投げてしまったが、結果がわかってみればPtoolset側の問題だった。 Sekinoさんのアドバイスで修正し、動くようになった今もPaulはPalmOSの問題だと信じているようだ。 まあ、とにかく使えるようになってよかったのだ。

PaulはPeditとかLaptopHackとか開発していて、結構老舗のプログラマーだと思っていたのだがこういうことってあるんだなあ。

自分のPtoolsetの使い方。 

機能が豊富。ありすぎ、という気もするが、Paulは昔のハックマスター用のハック機能の集大成を考えたのかもしれない。自分の使う機能はそのうちのごく一部 本来は使っているモジュールだけ実装すれば良い筈なのだが、マニュアルが読みにくいので、全部のモジュールをインストールしてしまっている。 キーボード支援の機能が相当あるはずなのだが、それらは全く使っていない。

pPscriptPadに以下のスクリプトを置いて

pScript_11

{FEPSwitchDA::/&daLaunch[@@FEPSwitchDA@@]} //toggle Japanese mode with the DA

Ptoolprefで、TAPのSweetSpot検知を有効にし、 表示部分の下側の境界線、左4分の一の部分にこのスクリプトをアサインしてあげると、 ちょうど 入力モード表示のaとか反転したPのあたりをワンタップで英語入力モードとPOBOX入力の切り替えができるようになる。

さらにpScriptPadのメニュー項目でInsert pScriptでは実行中のアプリを取り込んだスクリプトを自動生成してくれる機能を使って以下のスクリプトを作成し、

pScript_01 {MemoLeaf::/&launch [@@MemoLeaf@@,0]}

pScript_02 {DateBk5::/&launch [@@DateBk5@@,0]}

pScript_03 {Life Balance::/&launch [@@Life Balance@@,0]}

pScript_04 {PhoneMagic::/&launch [@@PhoneMagic@@,0]}

.

.

.

以下同様

これらをPtoolPrefで、それぞれのハードボタンの長押し、または超長押しにアサインすることによって、同じハードボタンの押し加減で三つのアプリを選択起動することが可能になる。 ナビゲーションボタンには対応していない。PaulもTXを購入したので、そのうち対応するかも。

他の機能では

PTodotool :アプリを終了しないで、todo項目の追加

PMemoTool: アプリを終了しないでMemo項目の追加

PDate Tool: アプリを終了しないで Date項目の追加

主につかっているのは、こんなところか。

あとはPButtonという機能があって、これが結構面白い。

PscriptPadに以下の記述をしておく

custBtnPageTotal=5 //ボタンのスクリーンを5ページ予約

//001は1ページ目 1ページにつき、ボタン10個指定可能

custBtn.001.1{ButtonLabel::Data or Script}

custBtn.001.2 {Hello world::Hello /0x20 world}

//単純なるキャラクター入力

custBtn.001.3

{pScript#0::/&mess@ [@@世界が平和でありますように@@,,300] /&mess@ [@@家族も安泰@@,,300]}

//画面にメッセージ出力

custBtn.001.4

{MyName::First/0x20 Last}

custBtn.001.5

{today::/GZ/dm///dd///dy/0x20/0x04} //OSとはフォーマットの異なる日時の挿入

.

.

.

以下同様

ちょっと面倒くさいが、この調子でいくらでもボタンが作れる。 メモなどで、定型文などを入力するのに便利。 

スクリプトではマクロも呼べて、

Submitted by Bruce McGuire II 02/03/03

//| flush (R.T.Init): |

//flush pScript:

// Flushes all event Qs.

{flush::

/&runtimeInit[]

}

//| DS (Date-stamp): |

//pmDS MACRO:

//Prints:

//YYYY-MM-DD HH:MM:SS (Day,Month-DD,HH:MM[am,pm])<newline>

//This takes 41 bytes!

#pmDS BEGIN[

/dY-/dM-/dD/xs

/dH:/dN:/dS/xs

(/Ed,/Em-/dD,

/di:/dN/da)/0x0A

]NIGEB

こういうものを作りはじめれば、はまりそうだが、そこまでやる気力はもちろん無い。