前回、ステートマシンの概念を説明してもらった哲さん。今日 Appliletを使ってみる
こそは、Appliletを利用して、プログラムを作成できると思い
ロボといっしょに、歩道を駆け足で移動してきます。街路樹の
間を5秒とかからずに走ります。ロボが走らされているのか、
哲さんが走らされているのか、わからないほどです。啓二さん
の部屋まで来て、勢いよくドアノブを回し、中へと入ります。
哲 :押忍。来たぞ。今日こそ、Appliletを使うんだよな。 啓二:何だ、息を切らして。ロボを連れてこいよ。 哲 :ロボの方が先かよ。 啓二:慌てるなって。犬は、運動すると、口から放熱して 体温を調整するんだ。だから、水をやらないと倒れて しまう。 哲 :そう言えば、お前、夜に犬を走らせていたよな。 あれは、体温のことを考えてだったんだ。 啓二:そうさ。昼は、車も多くて、走りにくいことも理由だが。 犬も人間も、バテないで、運動しようと考えると、夜走る のが、いちばんだったんだ。ロボの水だ。 哲 :おーい、こっちにも水くれ。 啓二:そうだなあ。氷を入れるか。 哲 :そうしてくれ。口に含んで、乾きも癒せる。 啓二:よし、よし。じゃあ、今日は、Appliletを使って、LED 点灯テストプログラムを作ろうか。 哲 :待ってました。 あっと、先週ディレイを入れるというのがあったぞ。 啓二:ああ、そうだったなあ。こんな程度のサブルーチンで充分だ。 WAIT: PUSH AX PUSH DE MOVW DE,#0ffffh WAIT0: DECW DE WAIT1: MOV A,D CMP A,#0 BNZ $WAIT2 MOV A,E BNZ $WAIT2 BR $WAIT_EXIT WAIT2: BR $WAIT0 WAIT_EXIT: POP DE POP AX RET 哲 :いつか、聞こうと思っていたんだが、どうして、そう パッとコードが出てくるんだ。78kは、使って日が 浅いんだろう。 啓二:ああ、そういうことか。Z80のアセンブリ言語を 一度脳みそから汗がでるくらいにやったからさ。 さあ、ノートPCの前に座ってくれ。 哲 :ほい。 啓二:デスクトップ画面にある、Appliletアイコンをダブル クリックして、起動する。 哲 :これだな。 VC++の開発環境と同じような、画面だな。 啓二:メニューバーから「ファイル」→「新規作成」と順にクリックする。 哲 :おっと、プロジェクトの名称問合せダイアログだ。 啓二:プロジェクト名、シリーズ名、チップ名を決める。 プロジェクト名は、test1とでもしておくか。 入力したら、OKボタンをクリックする。 哲 :はじめの画面に戻った。 これで、周辺回路用のインタフェースを作成するのか。 啓二:「システム」は、内蔵のクロックソースを使うか、外付け するかを決める。アイコンをダブルクリックしてみなよ。 哲 :クロック関係の設定ダイアログが出てきたぞ。 啓二:何も変更はないので、OKボタンをクリックする。 哲 :また、全体の設定ダイアログが出てきた。 啓二:うん、今度は、「ポート」のアイコンをダブルクリックだ。 哲 :おっと、ポート関係の総合ダイアログが出てきた。 啓二:ポート2には、LEDを接続するので、出力に設定する。 マウスで、チェックを付けるとよい。初期値も必要だから 1にもチェックを入れよう。 必要なチェックを入れたら、OKボタンをクリックする。 哲 :また、全体の設定ダイアログに戻ったぞ。 啓二:ツールバーの右端に、ボックスがあるから、 「NEC_ASMコンパイラ」になっているか確認する。 なって、なければ、マウスで▼を表示して、指定 項目を表示し変更する。 哲 :大丈夫だぞ。次は、どうするんだ。 啓二:ツールバーの中にある「Go」をクリックする。 すると、次のダイアログが出てくる。 Appliletが出力する情報を、保存するフォルダを 指定する。ドライブ、フォルダの順に指定する。 指定したら、「コード生成」をクリックする。 哲 :確認のダイアログが出てきた。 啓二:よし、OKボタンをクリックする。必要な初期化とAPI相当 のコードは生成してくれている。 メニューバーから「ファイル」→「終了」と順にクリックする。 哲 :プロジェクト内容の保存確認が出てきたぞ。 啓二:そのまま、「はい」をクリックする。 哲 :保存先フォルダの指定だ。 啓二:そのまま、OKボタンをクリックする。 ここまでで、必要な内容を記述したファイルを作成 した。今度は、アセンブリ言語プログラム入力だ。 哲 :何か簡単過ぎて、気味が悪いんだが。 啓二:VC++の開発環境に慣れているからだろう。 マイコンならば、即座に終了するさ。 今度は、「スタート」から「PM Plus」を起動する。 哲 :「PM Plus」って、何だ。 啓二:Programming Managerだ。要するに開発環境。 哲 :あれま、VC++の開発環境にそっくりだ。 啓二:メニューバーの「ファイル」→「ワークスペースを開く」を クリックする。 哲 :「ワークスペース」なんて、作ってないぞ。 啓二:Appliletが作った「ワークスペース」を保存しただろう。 あれを使うんだ。 哲 :そうなんだ。「test1.prw」になってんだ。 「開く」をクリックしてっと。 ああ、開いた。 啓二:ProjectWindowsの中にあるAppliletの下のソース・ファイルをクリックする。 哲 :フォルダ内のソースコード一覧が出た。 啓二:systeminitをクリックする。 哲 :おっと、右のウィンドウにファイルの内容だ。 何かコメントが書いてあるなあ。要するにApplilet で生成したファイルだと言っているんだな。 啓二:次に、mainをクリックする。少しスクロールして 内容を表示してみろよ。 哲 :あれま、アセンブリ言語の命令が記述されている。 サブルーチンを呼出して、初期化しているようだ。 啓二:Appliletは、ポートの方向、初期値をビットパターンで 定義して、それをMOV命令で内部のレジスタに設定して いるだけなんだ。 さっき、ダイアログボックスでチェックを入れたろう。 あのチェックを元にして、ビットパターンを生成するのさ。 今度はportをクリックし、内容を表示してみろ。 哲 :ああ、初期化命令の嵐だ。 こんな程度で充分なのか。 こんな程度ならば、MS-DOSのC言語でも記述できるぞ。 啓二:そうなんだ。でも、マイコン供給側は、アセンブラやCの コンパイラは提供しても、この程度のコードは、使う側で マニュアルを見て作成しろと強要してきたんだ。 忙しい技術者には、マニュアルを隅から隅まで、読む暇が ないときもある。そしてマニュアルの不備で、正しい処理 を記述できないこともある。Appliletは、それを打破した 画期的な環境なんだ。 哲 :これなら、自分だって、マイコンのプログラムを作れそう と思うぞ。 啓二:そうだろう。Appliletは、78kの促販にも、結びつくと 思う。じゃあ、コードを入れていこうか。 まずは、ビットパターン定義だ。mainに入れよう。 哲 :こうだな。 啓二:次は、本体だ。 哲 :これで、どうだ。 啓二:よし、上出来。 哲 :アセンブル、リンクはどうやるんだ。 啓二:メニューバーの中に「ビルド」があるから、それを クリックしてサブメニューを表示する。 その中の「ビルド」をクリックする。 哲 :やってみるか。おお、できた、できた。 啓二:これで、78kに転送するHEXフォーマットファイルができた。 ダウンロード回路で、転送して動かしてみる。 まあ、その前にホストマシン上でシミュレーションするが。 それは、来週の楽しみにしよう。