ブログトップ

電子工作やってみたよ

電池CR2032が使用されている最近の2機種について消費電流を計ってみました。
2機種とも電池は並列で使用されパワーコントロールされているようなので同時に各々を計り合計してみました。
hp15C_LEに関しては、電流のバランスが崩れても合計が一定になるように制御されているようです。
やはり電源OFF時の消費電流が昔のものに比べて100倍から1000倍大きくなっていますね。
これだもの机にしまっておくだけで電池が無くなってしまうのですね。
意外にもキー入力待ちの時は、少ないです。
プログラム実行中の消費電流は演算速度がダントツのHP15C-LEがやはり一番食べてます。
これで気になる機種の消費電流はひと通り計りましたが、電池が早くなくなると言われているものは、それなりに消費電流が大きいことが裏付けられました。
電流測定は、三和計測器のデジタルテスター PC5000を使用しました。
この測定では、2個の電池の各々の電流が変な挙動をするので、一週間以上悩みました。
HP15C_LEの電源OFF時の3.65μA以下の”以下”は不要です。

c0335218_17432480.jpg


















c0335218_17433451.jpg
















追記(2016-12-3 )
すがわらさんからコメントで測定データーに検証を加えていただいたのでここに移しました。
********************************************************************
HP35sの大喰らいが実証されましたね。それにしてもこの暗電流の多さは... 完全に設計ミスだと思える量。CPUの設計の古さなんでしょうね。
パナのCR2032の公称容量は220mAhと有りますから、全部使えるとして10476時間なので436日。実際には半分くらいで電圧不足になるのでしょうから、218日なので7カ月程度。まぁ半年くらいでダメになるという感触と有っているように思います。
少し前から0.9V程度あれば起動できるDC-DCコンバーターが実用化されてますので、そういったものを搭載して、最後の一滴まで搾り尽すような設計が欲しいですね。
********************************************************************



by telmic-gunma | 2016-12-02 18:03 | HP電卓 | Trackback | Comments(2)

HP15C 石取りゲームの動作 やっと解りました。
延べ2週間 いろいろな手で考えました。
最初の表はやっと解ったことを、プログラムリストに細かく記入しました。
たぶんこのリスト数か月後にみたら私自身でも解らなくなるのじゃないかな。
ひとかたまりの動作をやる中で同じところを数値を変えながら何度も通過するのでステップ送りで見ながらやっても理解できなくなりました。
その次の表はステップ送りしながら、スタックおよびレジスタの数値を記入したものです。

HP15C石取りゲーム

01 LBL A ----------- スタート
02 5 ---------------- 逆表示 BLISSをR3にセット
03 5
04 1
05 7
06 8
07 STO 3
08 3 ---------------- 逆表示 1.LOSE をR4にセット
09 5
10 0
11 7
12 .
13 1
14 STO 4
15 1 ------------------- 残数の初期値 15を R0にセット
16 5
17 STO 0
18 FIX 0 -------------- 少数以下の表示を無くす
19 CHS --------------- マイナス表示にして人間の手番を教える
20 R/S ---------------- 最初の人間側の手入力待ち  (1 ~ 3)
21 ENTER
22 LBL B
23 1 ------------------ 人間側処理フラグ  1⇒R2
24 STO 2
25 R↓
26 LBL C
27 STO -0 ----------- 残数から人間あるいはHPの手番を引く
28 RCL 0
29 X=0 --------------- 残数R0がゼロならば終了
30 GTO 2
31 STO *2 ------------ 残数に極性R2(1又は-1)を掛けてR2にしまう
32 RCL 2 ------------- (HPと人間は共用)
33 R/S ---------------- 人間側 1~3の数値を入力 HP側では入力せず(R/S)を押す
34 X<>Y
35 TEST 3 ( X>=0 )
36 GTO D -------------- HP側の処理では LBLD へ行く
37 X<>Y
38 GTO B -------------- 人間側の処理では LBLB へ行く
39 LBL D
40 1 -------------------- 以後HP側の処理をするので -1 ⇒ R2 へ入れる
41 CHS
42 STO 2
43 0------------------ HP側処理カウンターをゼロとしここから 必勝ポイントを探す 
44 STO 1 ------------ カウンタが-1,-2,-3にて残数が4の倍数(4n-1)になるかチェック
45 LBL E
46 RCL 1 -------------HP側処理カウンターが3であれば-1,-2,-3の3回のチェックで
47 3 ------------------ 必勝ポイントがなかったので LBL1 へ行く
48 TEST 5 ( X=Y )
49 GTO 1
50 1 ----------------- HP側処理カウンターを プラス1する
51 STO +1
52 CHS -------------- 現在の表示残数から1を引く (-1を加算する)
53 RCL 0
54 +
55 RCL 1 ----------- (表示残数-1)からHP側処理カウンターの値を引く
56 -
57 4 ----------------- 上記値が4の倍数でなければ LBLE へ戻り
58 / ------------------ 再度HP側処理カウンターを変えた数で4の倍数かをチェックする
59 FRAC
60 TEST 0 ( X<>0 )
61 GOTO E
62 RCL 1 ----------- 4の倍数であれば、その時のHP側処理カウンターの値が
63 GTO C ----------- HPの引く手(1~3)となる, その値を持って LBLC へ戻る
64 LBL 1
65 1 ----------------- HP側処理カウンターを-1,-2,-3に変えても4の倍数(4n-1)が見つからなかったので
66 GTO C ----------- 1をHPの引手として LBLC へ戻る
67 LBL 2
68 RCL 2 ------------- 勝負がついたらここにくる
69 TEST 2 ( X<0 ) --- R2の値をみてHPの勝ちか人間の勝ちかを判断する。
70 GTO 3
71 RCL 3 --------------BLISSを表示
72 GTO 5
73 LBL 3
74 RCL 4 -------------- I.LOSSを表示
75 FIX 1
76 LBL 5
77 R/S

一つの手の処理に数値を変えて同一場所を何度も通過するので、追いかけるのが難しい

使用レジスタ
R 0 現在の残数
R 1 HP側のカウンターの数( 1, 2, 3 この中で4の倍数にあたるとこれがHP側の手となる)
R 2 HP側(+1)あるいは人間側(-1)

R 3 55178
R 4 3507.1



初期値や引く数などを変えてその時のスタックやレジスタの変化を細かく書いていき、どのような動作をするのか、調べていきました。

c0335218_19351617.jpg










この逆ポーランド法のソフトはCPUのアッセンブラ言語と言った感じでしょうか。
人間コンパイラが数式からソフトを作るのはそれほどの苦労もなくできると思いますが、
プログラムから元の式を復元するのは、なんの情報も無くては、かなり厳しいですね。
この次は、同じ動作をするプログラムをステップの制約をなくして、
いかにわかりやすく出来るか挑戦してみようかな。
でもこういうのって作り直すと余計に解りにくくなることが多いんですよ。
これ私だけですか。
ネットで見ると、C言語で10行足らずで出来ていますね。
この電卓やアーキテクチャできたのは、40年くらい昔でC言語は未だ出来ずBASICもやっとできたくらいでしょうか。
いまさらこんな事やって何になるの、なんて言わないでください。
私にとっては十分 ボケ防止のやくにたっているのですから。



追記 
ネットに上げると写真のリストは見にくい感じですね。
スキャナーでやり直してみましょうか。
結局 テキスト入力でプログラムとコメント入力しました。また調査します。


by telmic-gunma | 2016-08-11 20:35 | HP電卓 | Trackback | Comments(2)

HP15C月面着陸ゲーム

HP19C,29Cのアプリケーションブックに "月面着陸ゲーム" があったのでHP15Cに移植しました。
15Cと19Cの命令の違いはわずかですが、"月面着陸ゲーム"はPSE命令を多用しているので動作は、HP15Cの旧タイプでないと同じ動作をしませんでした。HP15C_LEは操作方法を変えてあります。

c0335218_19330000.jpg














下記の図はダブルクリックすると大きく表示されます。と思います?
(YHP発行のアプリケーションブックのコピーです。)
c0335218_15391963.jpg




















HP15C 旧タイプの操作方法
1、 下記プログラムを入力してください。
2、 f Aと押してゲームをスタートさせてください。 
3、速度、高度、残燃料を表示し時間を3,2,1と表示していきます。
  最後 0 と表示しているときに R/S キーを押してソフトを止め 消費燃料を入力し
  またR/Sキーを押して動作させますと、同じことを繰り返します。
  0のとき以外では正常に動作しません。

下記のリストをダブルクリックすると大きく表示されます。
HP15C 旧タイプのリスト
c0335218_20215714.jpg









HP15C_LE 新タイプの操作方法
1、 下記プログラムを入力してください。
2、 f Aと押してゲームをスタートさせてください。 
3、速度、高度、を表示します。 R/Sキーを押します。
4、残燃料が表示されます。R/Sキーを押します。
5、0が表示されます。 燃料消費量を入力して R/Sキーを押します。
6、新しい 速度と高度が表示されます。R/Sキーを押します。
7、R/Sキーを押して上記のことをくりかえします。

HP15C_LE のPSE命令は画面を表示してのウエイトをしてくれないようです。
ここでは 単に PSEを R/S命令に変えただけですが どなたか他に良い手が
ありましたら教えてください。

HP15C_LE 新タイプのリスト
c0335218_20220327.jpg










入力したソフトが正常であることを確認する方法として
毎回燃料消費を0のままとすると最後の衝突速度が-90となればソフトは間違っていません。

反省
今は、ゲーム機やパソコンの有る時代なので、 電卓ゲームの存在価値は、そのプログラムを実行させて遊ぶことより ゲームプログラムの製作、移植、改造するところに喜びや楽しみがあるのじゃないですか? まあなんでも楽しければ良いので、屁理屈なんて言う事ないですね。
今回見たアプリケーションブック製作されたのはもう30年以上昔になるのですね。インベーダーゲームの出来る前なのかな。
このときもうHP電卓は完成の域に達していたのですね。




by telmic-gunma | 2014-11-06 22:17 | HP電卓 | Trackback | Comments(6)