HP-41C プログラミング編 (2)

HP-41C プログラミング編第2弾です。本日は、プログラムの途中でメッセージを表示したりキー入力を求めたりする方法について解説します。

1. 実行の一時停止
プログラムの途中で実行を一時停止し、数値などの入力を求めたいときがあります。そのときに使用するのが STOP 命令です。STOP 命令は[R/S]キーでも入力できます。STOP 命令が実行されるとそこでプログラムの実行は停止され、キー入力が可能になります。その後[R/S]キーを押すと実行再開されます。STOP に似ていますが自動的に実行を再開するのが PSE 命令です。PSE 命令が実行されるとプログラムの実行が1秒間弱停止しますが、停止中はXレジスタまたはアルファレジスタの内容が表示されキー入力可能です。例えば次のプログラムを実行すると"PAUSE"と表示されますが、表示中に数値を入力するとその値に2をかけたものが表示されます。
 01 LBL "PTEST"
 02 "PAUSE"
 03 AVIEW     ← [XEQ] "AVIEW" または ALPHAモードで[SHIFT] [VIEW]
 04 PSE      ← [XEQ] "PSE"
 05 ENTER↑
 06 2
 07 *       ← [×]
 08 VIEW X    ← [SHIFT] [VIEW] . X
 09 END      ← [SHIFT] [GTO] ..

2. メッセージの表示
プログラムを実行する際、途中でメッセージを表示したい場合があります。これに使用するのが AVIEW 命令です。プログラム中にALPHAモードで書き込まれた文字列(1行に書けるのは15文字まで、APPEND 命令を利用して2行に分ければ最大24文字まで)はアルファレジスタに入りますが、AVIEW 命令を実行するとそれが表示されます。例えば、次のようなプログラムでは、"MESSAGE:HELLO"と表示されます。
 01 LABEL "ATEST"
 02 "MESSAGE:"
 03 "トHELLO"   ← "ト"は APPEND 命令(ALPHAモードで [SHIFT] K で入力)を示します。
 04 AVIEW     ← [XEQ] "AVIEW" または ALPHAモードで[SHIFT] [VIEW]
 05 END      ← [SHIFT] [GTO] ..
何か入力を促したりしたいときは PROMPT 命令を使用します。これは[AVIEW]と[STOP]を続けて実行するのと同じです。次のプログラムを実行すると"X=?"と聞いてきますので、10 [R/S]などど入力すると、入力した数値に10をかけたものが表示されます。
 01 LBL "PRMPT"
 02 "X=?"
 03 PROMPT    ← [XEQ] "PROMPT"
 04 ENTER↑
 05 10
 06 *       ← [×]
 07 END      ← [SHIFT] [GTO] ..
メッセージの途中に数値など他のメモリやレジスタの内容を含めたいときには ARCL 命令を使用します。例えば次のプログラムは、sin(X)を実行し、"SIN 90.00=1.00"のように結果を表示します。このときに表示される数値の形式は、FIX, SCI, ENG 命令の指定に従います。ARCL 命令は現在の表示内容をクリアしないため、前に APPEND 命令を使用する必要はありません。
 01 LBL"AR"
 02 SIN
 03 "SIN "
 04 ARCL L    ← [XEQ] "ARCL" . L または ALPHAモードで[SHIFT] [RCL] . L (LASTxを表示)
 05 "ト="     ← "ト"は APPEND 命令(ALPHAモードで [SHIFT] K で入力)を示します。
 06 ARCL X    ← [XEQ] "ARCL" . X または ALPHAモードで[SHIFT] [RCL] . X (Xレジスタを表示)
 07 AVIEW     ← [XEQ] "AVIEW" または ALPHAモードで[SHIFT] [VIEW]
 08 END      ← [SHIFT] [GTO] ..
主なものは以上ですが。他のALPHAモード関連の命令を列挙しておきます。
AON 命令:ALPHAモードをONにします。
AOFF 命令:ALPHAモードをOFFにします。
CLD 命令:現在の表示を消去し、XレジスタまたはALPHAレジスタの内容を表示します。
ASHF 命令:アルファレジスタの左側6文字を切り取って捨てます。

これらの機能を使用することで、少しプログラムらしい感じになってきたと思います。明日は、分岐などの制御構造について説明します。

本日使用した命令のまとめ:
[XEQ] "AVIEW" : アルファレジスタの内容を表示する(ALPHAモードで[SHIFT] [VIEW]も同じ)。
[XEQ] "ARCL" {nn} : メモリレジスタnnの内容をアルファレジスタに追加する(ALPHAモードで[SHIFT] [RCL]も同じ)。
[XEQ] "AON" : ALPHAモードにする。
[XEQ] "AOFF" : ALPHAモードを抜ける。
[XEQ] "ASHF" : アルファレジスタの左側6文字を削除する。
[XEQ] "CLD" : 表示内容を消去し、Xレジスタまたはアルファレジスタ(ALPHAモード時)を表示する。
[XEQ] "PSE" : 1秒間一時停止する。
[XEQ] "STOP" : [R/S]キーを押すまで停止する([R/S]も同じ)。
[XEQ] "PROMPT" : アルファレジスタの内容を表示し[R/S]キーを押すまで停止する。
(ALPHAモード) [SHIFT] K : 現在のアルファレジスタに、後続の文字列を追加する。
関連記事
スポンサーサイト



テーマ : プログラミング
ジャンル : コンピュータ

tag : HP 41C プログラム関数電卓

trackback


この記事にトラックバックする(FC2ブログユーザー)

まとめteみた.【HP-41C プログラミング編 (2)】

HP-41Cプログラミング編第2弾です。本日は、プログラムの途中でメッセージを表示したりキー入力を求めた。1.実行の一時停止プログラムの途中で実行を一時停止し、数値などの入力を求め...

コメント

非公開コメント

アクセスカウンタ
カレンダー
11 | 2021/12 | 01
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 -
最新記事
最新コメント
リンク
カテゴリ
楽天お勧め商品
検索フォーム
Kyoroのつぶやき
FC2掲示板
ブロとも申請フォーム

この人とブロともになる

RSSリンクの表示