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フォーマットファイルができた。
      ダウンロード回路で、転送して動かしてみる。
      まあ、その前にホストマシン上でシミュレーションするが。
      それは、来週の楽しみにしよう。

戻る