参考情報
http://www.itmedia.co.jp/mobile/0202/04/n_lagenda.html
http://www.wince.ne.jp/faqdb/ceFAQSearch.asp?Keyword=BE-500
SDK
http://cassiopeia.casio.co.jp/windowscefan/contest_3rd/lagenda_sdk.html
調査
1.PocketPC+MipsのAP動作するのか? NG PocketPCのAPIはサポートしない為NG
2.H/PC2000+MipsのAP動作するのか? 基本的に動作可能...と思う
3.ラジェンダSDKをインストールしてコンパイルすれば動作するのか?
---> APを開発する場合はこれが王道だろう。
4.ファイラーが居るな~
http://tillanosoft.com/ce/lagendapackj.html
インストーラーの作り方
ラジェンダはcabからのインストールは出来ない。
ActiveSincでのインストールも出来ない
CASIOのSDK付属のツール(ArchGene.exe)を使用する必要がある
ツールで作成されるファイルの拡張子は.cbea
cbeaの作成は必要なファイルをフォルダに集めnative.inaというファイルを追加。ArchGene.exe実行時このフォルダを指定する。
開放する時はsetup.exe,setup.iniと.cbeaを開放して母艦にてsetup.exeを実行してもらう事になる。
デバッグ時にActiveSyncを使いたくない場合
CFカード上に「Program Files」を作成し、その中にEXEファイルを格納するとメニューに表示される。らしい...
ラジェンダ用のコードとの切り分け
自分でラジェンダ用の構成を追加してプリプロセッサを指定する
メニューから[ビルド]-[構成]と操作...BE500の構成をH/PC2000-MIPS版をコピーして作成??
プリプロセッサの定義の所でBE500を追加定義
#ifdef BE500
//ラジェンダ
#else
//ラジェンダ以外
#endif
制限解除キーの転送方法
ラジェンダではActiveSyncは使えない。かわりにIntellisync(PC 接続)というCASIOオリジナルのツールを使う
↓が参考になる
http://www.wince.ne.jp/snap/ceSnapView.asp?PID=516
....FileExplorer的な機能は無いので、ファイルの同期....PC側とl'agenda側を対応付けして同期ボタンを操作する。
....いまいち使いにくいと思うのだが......まあ、これで出来るから良いや。
l'agenda固有の処理で制限解除の操作の時に解除キーを「¥Nand Disk」に書き込んでやる必要がありそうだ。
NANDディスク
ラジェンダ特有の仕様でNANDディスクと言うのがある。
NANDディスクとはフラッシュメモリになっている。(リセットしても消えない)
ラジェンダは起動時にフラッシュメモリから普通のRAMにファイルをコピーして実行している。
フラッシュメモリよりも普通のRAMの方が高速に動作する為である。
したがって普通に¥Windows,My Documentsに保存してもリセット時に全て消えてしまう。
消えないディレクトリ名は¥Nand Disk¥Windows,¥Nand Disk¥My Documents等となる。
¥Program Filesも同様だが、これはラジェンダSDKの専用インストールツールを用いる事であまり意識する必要は無い。
NANDディスク「¥Windows」
単純に¥Windowsに書き込むとリセット時にファイルが消えてしまう。
消したくない場合は「¥Nand Disk¥Program Files¥Patch」にファイルを書き込む。そうするとリセット時にコピーされる。
¥Nand Disk¥Programを取得するには
GetProgramDiskName();
MakeProgramDiskName();
FindFirstFlashDisk()
あたりを使用
レジストリを書き換えたら「CGDFlushRegistry()」を呼び出すこと
でないと前項同様にリセット時に消えてしまう。
AfxGetApp()->WriteProfileInt(_T("PLAY"), _T("SPEED"), 2);
CGDFlushRegistry();
l'agenda対応の修正点
レジストリの書き換え後のCGDFlushRegistry();
Windows配下にファイルを登録する時にNANDディスクに書き込む必要がある。
NANDディスクの取得(MyDocumentの場合)
#include <getdisk.h>
TCHAR DefaultPath[MAX_PATH];
GetUserDiskName(m_hInstance,DefaultPath,MAX_PATH);
「¥Windows」に書き込みたいファイルは「¥Nand Disk¥Program Files¥Patch」に書き込む。
このフォルダは初期状態では存在しないので作成する
SDKの「Applications Desinge Guidelines.doc」を参照
「¥Windows」から削除したい場合はどうするんだろう?
多分.そんなことは出来ない。
CreateProcess(),ShellExecute()は使用禁止!!
CoshExecute()に置き換え
BE-500のオリジナルヘルプシステムが有る。
CreateProcessでPegHelp.exeを起動。htmlファイルをフルパスで引数として渡す事
WM_HIBERNATEハンドラ実装
多分中身はからっぽ。受け取りも必要なしだと思う。
フルリセット
電源ボタンを押しながらリセットボタンを押す。
フルリセットをしてもNAND DISKの内容は消えない