3年ほど前の「技能と技術」1)に同じような実践報告をしましたが,それについては実際にそのプログラムを使っていただいた福井県の指導員の方から使用記を寄せていただきました。私も実際にそのプログラムを授業で使っていましたが,やはり実用に耐えて効果のあがるものとしていくためには,いくつかの不満点も出てきました。そこで今回,生徒からの意見なども取り入れ,まったく新しいCASLシミュレータを作りましたので紹介いたします。市販のシミュレータには不満を抱いていた方はぜひ使ってみていただきたいと思います。
このソフトはアッセンブリ言語CASLをマスターするためのトータルトレーニングプログラムです。CASLは仮想のCPUのアッセンブリ言語です。ですから,実際にCASLの命令語を解釈して動いてくれるCPUは実在しないのです。しかし,勉強をするときに実際にプログラムを組んでそれを動かしてみることは,大いに学習効率を高めてくれます。それを実現してくれるのがシミュレータです。CASLのシミュレータはすでに多くのものが市販されていますし,フリーソフトなどにも多くのものがあります。今回紹介するものもその1つに加えてもらえればと思います。パソコンやワープロにも多くの種類があるようにCASLのシュミレータにもいろんなものがあってよいと思います。
以前に発表したCASLビジュアルシミュレータでは,次の点で学習効率の悪いものとなっていました。
さて,これらの点を解消して今回開発された「TURBO-CASL」の特徴は次の9つです。
① プログラム総合環境における学習
上の図のようにプログラム入力からアッセンブル,トレース,エラーの場合の修正などの一連の作業が,すべて1つの画面の中から行えます。これにより,学習の効率が向上します。
② レジスタ,フラグ,アドレス,スタックの状態確認
アッセンブリ言語の学習には欠かせない,レジスタ,フラグ,アドレス,スタックの状態をリアルタイムで確認できます。特に今回はその状態表示に工夫をし,初心者でもなじみやすいものにしました。
③ トレースモードとノントレースモード
トレースモードでは,実行中のプログラム部分とアドレスの両方にアクティブバーが点灯し,どの部分を実行しているのかがわかるようになっています。さらにプログラムの実行結果だけを即座に知りたいときには,ノントレースモードにすることにより瞬時(1秒以下)に結果を得ることもできます。
④ トレース速度のリアルタイム可変,一時停止,途中終了
作成したプログラムをトレースする場合に,スピードコントロールつまみによって,トレース中でも任意のスピードに調整できます。また,一時停止や途中終了もラジカセを操作するような感覚で実行できます。これによっても学習の効率が向上します。
⑤ エラーメッセージ機能
プログラム中にエラーがあった場合には,エラーがあった行の横にエラーメッセージが表示されるようになっています。これによりスピーディにエラーを確認でき,修正に入ることができます。
⑥ サウンドモード
このシュミレータには一見無意味とも思われる機能があります。それがサウンドモードです。これは,あらかじめCASLの命令語に対して音程とリズム(音長)を設定しておき,トレース中に画面上の[ラッパ]のマークをクリックすると,それぞれの命令に対応した音が出るというものです。これを使うと,例えばループ中などには同じようなフレーズが聞かれ,耳によってループしていることがすぐにわかります。なお,どの命令語に何の音程,音長を与えるかは総合メニュー画面の中から簡単に設定変更することができます。
⑦ CASL言語命令学習機能
CASLに使われる命令語の概要については,いつでもヘルプ機能によって学習することができます。
⑧ 時計機能
画面右上には常時アナログ時計が表示されています。これは,プログラムのやり過ぎによる健康への害を少しでも減らそうという配慮により設けました。プログラムをやりだすと,つい夢中になりすぎてしまうがんばりやさんのためのものです。
⑨ 許容されるプログラムの行数
約1000行程度まではOKです。
このプログラムを動かすためには以下に示すファイルが必要です。
その他[TEX]ディレクトリに納めてある命令語の説明文書ファイル。起動はCM[RETURN]キーです。
このプログラムは大きく次の4つの機能から選択して実行します。
これは,CASLの仕様に基づいて書かれたCASLプログラムを実際に動かしてみる機能です。作成したプログラムを動かすことで,エラーを発見したり,より効率のよいプログラムを記述するための試行ができます。
この中では,プログラム記述から,アッセンブル,トレース,プログラムの保存,プリントアウト(印刷),さらにはCASL命令語の学習までもがすべて行えます。
これは,CASL命令語のおおまかな内容を学習するためのものです。ちょっと命令を忘れたときなどに便利です。ここ以外にもシミュレータの環境でも[HELP]キーを押すことで同じ機能が使えます。
これは,CASLソースプログラムを読むドライブディレクトリを指定するものです。
これは,シミュレータでCASLプログラムをトレースした際,命令語に対応した音を出すときの音程,音長を設定するものです。
シミュレータを起動すると次のような画面になります。
シミュレータではまず,シミュレートするためのプログラムがなくてはいけません。これを入力する方法は2通りあります。
このシミュレータの環境で入力する場合は,マウスのカーソルを画面左側のプログラムエリアにもっていき左クリックします。そうすると文字入力用のカーソルが出ますので,あとは普通に入力してください。エディタそのものの機能は市販の専用エディタと比較すればとうてい及びませんが,比較的短いCASLプログラムを入力するには不自由はないと思います。
このエディタの主な機能を次に示します。
市販のエディタでプログラムを入力する場合は,そのエディタのマニュアルに従ってください。その際入力で注意する点は次の2点です。
また,このシミュレータでは,記述できる(解釈できる)プログラムの行数を1000行程度に制限していますが,このことが問題になることはまずないと思います。同様にアドレスは0000番地から2000(10進)番地程度までしか確保していませんので,絶対番地を指定するときは注意が必要です。
スタックは別エリアに256程度確保しています。CASLを学習するうえではこれらのことも特に問題にはならないと思います。
CASLソースプログラムは,実行前にアッセンブルしなくてはいけません。
画面右下にある[Assemble]をマウスで左クリックしてください。この作業によって,ソースプログラムは機械語(マシン語)コードに変換されます。
このシミュレータでも実際にこの変換を行い,独自に設定したコードを生成します(コード仕様は特に決められていない)。もし,プログラムにエラーがあれば,それを即座に示してくれます。エラーがない場合は,画面中央にレジスタやメモリ(アドレス)の内容を表示するグラフィックスが示されます。
この状態はとりあえず文法上のミスはなく,トレース(プログラムの実行)が行えることを示しています。
エラーがある場合はそれを表示します。1画面に収まりきらないプログラムで,現在表示されているプログラム以外の行にエラーがある場合には,[ROLL UP]でプログラムをスクロールすることによって確認できます。
この際エラーを検知した行には赤いバーが出ますが,この位置は必ずしも正確でない場合もありますから,その前後を確認してください。
そのあと修正に移る場合には[ESC]キーを押し,さらにマウスでプログラムエリアをクリックします。
アッセンブルでエラーがないときは,即プログラムを実行することができます。
画面右下にある[Shimulate]をマウスで左クリックしてください。そうすると,プログラムやメモリ(アドレス)にオレンジ色のアクティブバーが点灯し,その行を実行中であることを示してくれます。この際のシミュレートスピードは,実行中でも画面右下のスピードボリュームをマウスで動かすことでリアルタイムに変更できます。
また,シミュレート前に[Trace ON]をマウス左クリックすると[Trace OFF]となり,シミュレートを実行してもアクティブバーは点灯しなくなり,1秒以下で実行は終了し結果が出ます。これは,とにかく結果を早く知りたいときに使うと便利です。トレースをOFFにしても,プログラムはきちんと実行して結果を出しています。
次にその他,シミュレートの状態を変更するいくつかの機能の説明をします。
これは,シミュレータの環境から呼び出せるものと同じです。操作も同じです。
操作は,画面に出ている指示に従って行ってください。
ここでは,それぞれの命令語に対して音程,音長を設定します。操作の仕方は,「←→↑↓」キーによって命令語を選択し,音程は,テンキーの[8][2]で上げ下げします。また,音長はテンキーの[4][6」で設定します。
すべての設定が終了したら,[ESC]キーを押します。ファイルに書き込むかどうかを聞いてきますので,指示に従って入力してください。
フロッピィディスクには次のサンプルプログラムが収められています。
実際の授業でこのシミュレータを使った感想は,3年前に発表したものよりも生徒からの評判はよくなっています。以前のものは,前述したように実際の授業における使い勝手の点でかなりマイナス部分があったからです。今回のものでは,一連の作業を1つの画面の中ですべてできるようにした点で,以前のものと比べて学習効率が飛躍的に向上しました。
多くの情報処理訓練現場で試用していただければ幸いです(なお,このソフトはマニュアルと一緒に無料で配布しています)。