97年前半までのDS110ニュースです。
新しいものほど上にあります。
戻る
97年後半

97-6-11 PIAFSシリアルポート対応
もうかなり前の話しですが、 PCMCIAのシリアルポート互換モードでのPIAFSアクセスに対応するそうです。 これが可能、ということは、DS110のCPUから見た場合、 シリアルポートへのアクセスは、CPUが処理している、ということですね。 うーん、まだまだ未知のハードウェアですね。 EEPROMが2Mbyteとかの話しもあるみたいですし。 でもビットアクセス型(NOR)のフラッシュROMで16Mbitのチップは まだないと思ったんだけど…。

グラフィックライブラリ、やっぱり進んでません。 これで日本語WindowsCEなんて発売された日にゃ〜、そっちかな (笑)。


97-5-10 シミュレータ
DS-110シミュレータ (実機上じゃないからエミュレータじゃないですね) は、 なるほど、 ユーザプログラムが変なアドレスをアクセスして、 DS110システムを破壊してしまわないかどうかの検査目的なんですね。 なかなかナイスな方法だと思います。 ユーザプログラムをEEPROMに載せるなんざあ、 絶対JATE認定通らないと思っていたのに、そういう訳だったんですね。 これでシミュレータ上で存分にデバッグできる、っうわけです。
で、他のものはAPIで供給してくれればいいと思いますが、 LCDへの直接アクセスだけは許可してほしいぞ。 ゲーム作る時にスピードが出ないから。
あと絶対欲しいAPIは、音出力ですね。しかも非同期の。
ユーザプログラムからの発信APIとか、ユーザプログラムへの着信APIとかも、 欲しいですけど、 なーんかPIAFSの処理量が大きそうだから、載せるの大変そう。 でも問題は処理量、ではなくて、おそらくRAMの容量でしょう。

グラフィックライブラリですが、進んでません (笑)。 メモリ管理手法の実験をする予定なんですが、 やっぱりCompactMemの算譜は作るに値しないのかな〜、Knuth先生。


97-5-6 グラフィックライブラリ
グラフィックライブラリ (ゲーム用?) を作ろうとして、へたってます。 とりあえずarea (=region) 付きbitbltが目標なんですが、 areaとか扱うとどうしてもメモリ管理とか必要になってしまって…。
フルアセンブラなんですが、 書いていると結構面白いことがわかります。 メモリの内容をwaに持ってきて、かつそれが0かどうか調べる、 という時に、
ld wa,(mem) cp wa,0 jr z,うんすん
とかやるよりも、
ld wa,0 add wa,(mem) jr z,うんすん
の方が1サイクル短かったりします。 概して定数値のld命令は速いです。 なお、レジスタにロードする必要がない時は、 直接 cp (mem),0 と記述できます。
また、メモリへのアクセスを伴う命令は、それほど遅くなりませんが、 演算を伴う命令は、遅いです。このあたり、最近のCPUと逆ですね。 なお、LDA命令は、いろいろな場面に使い手があります。
アドレスバスが24bitなため、ポインタの上位8ビットは無視されます。 ここを各種フラグ領域や、レジスタとして使えるので、 結構レジスタ数は多く取れます。 但し、かならずしも直交していないので注意が必要です。 add a,qixh は書けますが、add qixh,a とか書けません。 add a,(mem) も add (mem),a もどちらも記述できるので、 単純にレジスタが空いたからといってレジスタ割り付け出来ないのは ちょっと辛いところですね。
あと、お約束として、jr(相対ジャンプ) よりも jp(絶対) の方が速いです。 Z80もそうだった気がします。ただ、jpの方がコードが長いので、 メモリアクセスにウェイトが入ってしまうといい勝負です。

5月末ぐらいに完成できればいいのですが… まだ area-OR の骨格 (200行程度) しか書けてません。休みも終りなのに。 メモリ管理がぁぁぁ。(笑)


97-5-3 タプル情報
プログラム開発局にタプル情報を追加しました。 DTPL.EXE (タプルダンプ、MS製)にリンク張ろうとしたら、 PC97対応かなんかでなくなってました。むー。
97-4-28 ホームページリニューアル
開発キットのアナウンスを記念して、 DS110のホームページを改装しました。

…でもまたすぐ飽きるんだろうな。(笑)


97-4-23 ユーザプログラム開発キットについて
京セラから開発キットの骨子が発表されましたね。 Web上にないようですので、簡単に書きますと、 となっています。 コンパイラとかを無料で提供するなんて、かなり太っ腹、です。 この面では京セラさま、ありがと〜、って感じですね。 でも、とりあえず、早く出せ、ってとこですか。

関数ライブラリに関しては、 多分VW200レベルAPIのことを示しているのだと思います。 これ以下のハードウェアに関しても、是非詳細に公開してほしいです。 シミューレータ添付は、京セラにしては良い方に期待を裏切られた感じですが、 どのレベルでのシミュレーションなんでしょうか? 正直言って、VW200レベルAPIでは、使い物になりません。

絶対番地制については、「ああ、やっぱり…」 って感じですね。 もともとDS110内のファームウェアも、 プログラム環境ポインタがなく、すべて絶対番地で書かれていますし。

ファーム開発はIBMの手によるようで、 VW200と同じ開発姿勢なんですが、 VW200の頃から、OSというものが存在しないのです。 唯一OSと呼べるのは、スタック切替えによるタスク切替えだけ。 でも、思うに、携帯機器ではこれも問題が多いのです。
携帯機器では、機能をすぐ呼び出せるようにしなければなりません。 このような場合に取れるアプローチとしては、2つあります。

  1. スタックエリアを独立させて、複数プロセスを同時に実行させる。 (マルチタスク)
  2. 「呼ばれるプログラム」を作り、 タスク状態は、各プログラムの静的変数エリアに格納させる。 (イベントドリブン)
これはとりもなおさず、「呼ぶプログラム」と「呼ばれるプログラム」の違いです。 使うメモリ、という面でこれら2つを比べると、圧倒的な差があります。 「呼ばれるプログラム」では、メモリをほとんど消費しません。 一方、「呼ぶプログラム」では、 プロセス毎にスタック領域を十分に確保する必要があります。 私自身は、「呼ばれるプログラム」は嫌いなんですが、 携帯機器のように、メモリ制約がある状況ではそうもいってられません。

Macintoshの初期システムでは、マルチファインダはなく、 システム上にはただ1つのアプリケーションが動作するだけでした。 それでも、デスクアクセサリ、という形で、電卓などのアプリケーションを、 通常のアプリケーションと同時に実行できました。 メモリ128kbyteの初代Macintoshでこれができたのは、とりもなおさず、 デスクアクセサリが「呼ばれるプログラム」で書かれていたからに他なりません。 実際、デスクアクセサリと、デバイスドライバは、 両方とも「呼ばれるプログラム」という意味で、同列の扱いをされていたのです。

こういう面も含めて、DS110用の新OSが欲しい、なきゃ作りたい、と思うのです。


97-4-18 DDI-Pの電波の強さ
新幹線に乗る機会があったので、DS110をテストモード2につっこんで、 表示を見ていたのですが、 新幹線などの高速移動ではぜんぜんだめかと思っていたのですが、 そうでもないようですね。
位置登録に成功して、1分以上、 その基地局を認識していることがふつーにありました。 もちろんトンネルとかでは全くだめですが、 データ通信みたいな途切れてもかまわない通信の場合には、 かなり使えそうな感じです。
さすがこの辺、地獄耳とメガホンを持つDDI-P CSですね。 他のキャリアではだめでしょうね。
97-4-15 DS110のコンパイラ
京セラからの 現行DataScopeで200LXでのPIAFSサポートなしというアナウンスで、 Niftyなどで不満大爆発しているようで、楽しいですね。 個人的には、200LXとDataScopeの機能はかぶっているので、 そういう使い方をしている人は少ないのかな、と思っていたのですが、 そうでもないようです。 (機能がかぶっている、というのは、200LXにDataScopeを刺してPIAFSを使うなら、 200LXにPIAFSカードを刺せば良いのでは?ということ。 現行では200LXに刺さるPIAFS対応のPHS内蔵TAはないんだけどね。)
京セラからのアナウンスでは、CPUの性能が足りないから200LXではPIAFSできない、 みたいな書き方されてるけど、TLCS-900Lはそんなに遅くないと思うぞ。 それよりも、あのなさけないコードを吐くコンパイラを何とかした方が 良いと思うのですけど。

DS-110のファームではアセンブラとCコンパイラの両方を使って 開発されているのですが、 残念ながらこのコンパイラの性能はあまり高くないようです。
gccでも移植しようかな。
gccはポータブルなコンパイラであり、 他機種用に移植するのは結構簡単です。 別CPU用ですが途中までやったことあります。 もっとも、gccはそれほど性能高くはなく、特にi486ターゲットのように、 非直交系レジスタを持つマシンは苦手です。 一方、VisualC++のコンパイラはほとんど人間の手が入れられないほど 優れたコードを吐きます。 gccは元が68000/SPARCなどの直交レジスタ系を持つCPU向けに開発された、 フリーのコンパイラですから、差があって当然ですけれども。 残念ながら、DS110のコンパイラは、そのgccと比べ物にならないほど、 なさけないコードを吐いています。

携帯用機器ではコンパイラの性能が極めて重要です。 まず一つにメモリの制約があり、 できるだけ短いコードを吐くようにしなければなりません。 さらに、出来るだけスピードの速いコードを吐く必要があります。 スピードの速いコードを吐いてくれれば、 それだけCPUを遅いクロックで動作させることが可能となり、 電池が長く持つのです。

ニュートンやPILOTには、CodeWarriorという有名なコンパイラが 提供されています。 (ニュートンはARMだけど、PILOTもARM?) CodeWarriorは、もともとMac用のコンパイラメーカで、 それまでAppleのMPW C や、LightSpeed C (後にTHINK C) が使われてきたのですが、 CodeWarriorはそれよりずっと良質のコードを吐くコンパイラとして、 Macプログラマの間で話題になりました。 こういう意味で、携帯機器の成功は、 コンパイラメーカとしてどこがつくのか、に左右されていると思います。

こういう意味で、TLCS-900をCPUとして選んだのは失敗であったかもしれません。 どうも日本のメーカはソフトウェアを考えずにハードウェアを作ってしまう 傾向にあるようです。 製品とは言うまでもなくハードウェアとソフトウェアで成り立っているのですが・・


97-4-13 ファームウェアVer1.1届く
ファームウェアのVer1.1が届きました。ほとんどバグフィックスのようです。 仕事が多少ひまになったので、少しいじってみました。
うれしいのは、EEPROMが1MByteであったことですね。これだけあると、 かなりのことができます。 ただ、RAMが128Kbyteと少ないので、 この辺のアンバランスさがアプリケーションに制約を与えそうです。
97-2末〜97-4中 ほとんど無視
PHS電波が職場で入感しない、ということと、キーボードが押しにくくてがっかり、 ということでデータスコープにさわらず。 3月の通話料金0円でした(^^;
97-2-20 DS-110購入
結局発売日に購入してしまいました、DS-110。

値段 - good

49,800 でした。この価格には賛否両論あるでしょうが、

10,000 (PCMCIA-IF) + 20,000 (PIAFSモデム) + 25,000 (Chipcard)
+ 15,000 (PHS) - 20,000 (インセンティブ) = 50,000
ですから、極めて妥当な価格ですね。

外観 - pretty fine

予想していたものよりも小さく、なかなかいい感じです。 カラーも黒を基調にしたもので、いわゆるシック、ってなもんです。 フリッパーを開く時の抵抗もちょうどよいです。 VW-200はなんの抵抗もなかったからなー。

キー - awful

キーボード側がかなり薄いので押しにくいです。 なんとかせー。しかも、キーがへにゃへにゃのやつなので、 耐久性がかなり心配です。 一般の携帯に使われているキーがどうして採用できないかなー。
キー入力方式も、ポケベル方式の2ストローク入力も可能になっていますが、 2ストロークモードだと「ゃ」などが入力できないなど、 かなり問題あります。長音記号「ー」の入力できないし。

液晶 - fine!

かなり見やすいです。200x320でこれだけ見やすければ、文句ありません。 VW-200は温度状況にシビアでしたが、これはそうでもなく、 ほとんど調整せずにきれいに見えます。 欲をいえば、4階調とか表示できればよかったのに。
内蔵アプリとかの画面書き換えがかなり遅くて、 「TLCS-900Lってこんなもん?」って思いましたが、 TLCS-900の処理能力を考えると、 スピードに意識して書けばあの4倍ぐらいは出そうです(根拠なし)。 コンパイラの性能悪いのかな〜。

電池 - think

本体に電池をセットして、フタを4本のねじで止めるようになってます。
電池が小さ過ぎると思うのですが、どうでしょう? 確かにPHS単独使用ならこの程度の容量でもいいでしょうが、 PCMCIAバスドライブのことを考えると、 この交換不可能な電池は結構致命的、です。 時には充電できない環境に長く出張することもあるでしょうに。

PHS感度

よくわかりません。なにしろPHS初めてだから。 でも800Mデジタル携帯と比較するとぜんぜん使えませんね。
一応ー発信はできました。おお、電話機みたい。って電話機やがな。

通信

通信関連はターミナルを使って手前所のサイトにUnixログインしただけで、 ほとんどチェックしてません。 メールをmailコマンドで打ったけど、コントロールが入力できなくて、 終れなーい、とか思ってたら、ピリオドのみで終れました。 よかったよかった。

PC接続 (PCMCIA) - bad?

最初に全然認識しなかったので、リソースを設定しなおしたら、 なんとか認識してくれました。 で、設定できるI/OアドレスとかIRQとか確認していたら、 また認識できなくなってしまいました。 手動設定可能範囲が一定しなかったり、 まだこのドライバには改善の余地がありそうですね。
ちなみに、Windows95の、マルチファンクションデバイスとして認識され、 モデム用のI/OアドレスとIRQ、 メモリコントロール用のI/Oアドレスが割り振られます。 実際にPCMCIAに行っているアクセスがどうかは不明です。

内蔵アプリケーション - no sense

VW-200のころからそうですが、どうしてああ味気ないデザインなんでしょうね。 200x320もあったら、 もうちょっと「それらしい」デザインのアプリケーションとか出来るでしょうに。 まあ機能が満たされればそれでいい、って感じなんでしょうけど、 例えばメニューバーとか、ダイアログボックスなどの、 いわゆる「今風」のデザインはほしいですね。

また、数字を入力できるところでも増減キーしかきかなかったり、 VW-200の使いにくいところはそのまま踏襲していますね。

ファームウェア - rework

EE-PROMは確かに512Kbyteのようです。 ステーションにある ds110os.s24 というファイルがモトローラSフォーマットのEE-PROMデータです。 このEE-PROMは、 パソコン通信用スクリプトとかのファイルのデータも保持していてこの大きさなので、 もうちょっといろいろ入りますね。 なお、ステーションのアプリケーションの登録、でみると、 システム予約エリアがあまりに大きくて、 RAMの空きエリアがほとんどない(20Kbyte程度)のですが、 このシステム予約エリアは将来の予約を含んでいるっぽいので、 もっといろいろ入ると思います。 TCP/IPプロトコルスタックはどっちに入れるつもりなんでしょうか? どう小さく見積もっても40Kbyteぐらいは必要だと思いますが。

EE-PROMの内容があまりにやっつけ仕事っぽくて気に食わない (だいたい日付が2/17だし…) のですが、 EE-PROMの内容を含めて認可っぽい (2400モデムのコードはここにあるだろうし、 認定番号にサフィックス-2がついているし…) ので、 VW-200の時のようなユーザによるEE-PROM入れ換えは難しいかもしれません。


96-12〜97-2 発売延期
なかなか出てこないデータスコープ。 これだけ待たせたのだから、十分なフィールドテストしてるんだろーなー、 というのは全然甘かった。 この時期、本業が忙しかったため、逃避行動で逆アセンブラとか作る。
96-9-26 DS-110発表
京セラの報道発表はここ。 この当時はかなり期待していたんだけどねー。(苦笑)