HELP Contents
この章はPMLエミュレータ画面のメニューや各部の機能を解説します。
エミュレータ画面の上部にある下図のようなボタンは、プログラム実行制御を行うボタンです。
このボタンはそれぞれ以下のような機能を持っています。
項目 | 機能 |
---|---|
![]() | プログラムの実行を行います。エミュレータ画面には途中経過は反映されず、停止させたときかHALTで終了した時にのみ状態が反映されます。そのかわりに実行速度は高速です。 |
![]() | プログラムの状態をエミュレータ画面に反映させながら実行します。ブレークポイントがあった場合はそこで停止します。 通常はサブルーチンの中には入っていきませんが、CTRLキーを押している間はサブルーチンの中にも入っていきます。 トレース実行する速度は、メニューの実行(R)/トレース時のウェイト(W)で変更することができます。 |
![]() | ボタンを押すたびに1行ずつプログラムが実行されます。 通常はサブルーチンの中には入っていきませんが、CTRLを押しながら実行するとサブルーチンの中にも入っていきます。 |
![]() | 実行、トレース実行を停止させます。 その後再び実行・トレース実行・ステップ実行を行った場合は停止したところから再開されます。 |
![]() | 状態をプログラムのロード時に戻して、最初からやり直せる状態にします。 |
メインメニューのコマンドの説明です。
項目 | 機能 |
---|---|
読み込み(L) | 新規にプログラムまたは作業環境ファイルを読み込んでアセンブルします。 |
読み込み直す(R) | 現在読まれているプログラムソースを再読み込みします。作業環境ファイルをオープンした場合は、作業していたソースファイルが再読み込みされます。 プログラムを変更して再度アセンブルしたい場合に利用します。 |
ソース編集(E) | 現在読みこまれているファイルのリストが表示され、選択されたソースファイルを編集するためにテキストエディタを起動します。複数選択が可能です。 デフォルト状態では起動するのはメモ帳ですが、ヘルプ(H)/エディタの設定(E)でお好みのテキストエディタに変更することができます。 |
現在の状態を保存(S) | 現在の状態をそのままを保存します。ラベルの選択状態やユニットの表示状態などの作業環境や、プログラムを途中まで実行していればその状態をそのまま保存します。作業環境の保存ファイルにはpsavという拡張子がつきます。 |
終了(Q) | PMLエミュレータを終了します。 |
項目 | 機能 |
---|---|
![]() | プログラムの実行を行います。エミュレータ画面には途中経過は反映されず、停止させたときかHALTで終了した時にのみ状態が反映されます。そのかわりに実行速度は高速です。 |
![]() | プログラムの状態をエミュレータ画面に反映させながら実行します。ブレークポイントがあった場合はそこで停止します。 通常はサブルーチンの中には入っていきませんが、CTRLキーを押している間はサブルーチンの中にも入っていきます。 トレース実行する速度は、メニューの実行(R)/トレース時のウェイト(W)で変更することができます。 |
![]() | 実行、トレース実行を停止させます。 その後再び実行・トレース実行・ステップ実行を行った場合は停止したところから再開されます。 |
![]() | 状態をプログラムのロード時に戻して、最初からやり直せる状態にします。 |
実行時にブレークポイントが有効(B) | プログラムを![]() |
トレース時のウェイト(W) | トレース実行する際のウェイトを、なし、20ms、50ms、100ms、200ms、500msから選択できます。ウェイトが大きいほどゆっくり動作します。 |
項目 | 機能 |
---|---|
10進符号付き(D) | リストビューおよびメモリダンプビューの数値を符号付き10進数(-32768〜32767)で表示します。 |
10進符号なし(W) | リストビューおよびメモリダンプビューの数値を符号なし10進数(0〜65535)で表示します。 |
16進(H) | リストビューおよびメモリダンプビューの数値を16進数(0000〜FFFF)で表示します。 |
メモリダンプ(M) | メモリダンプビュー表示のON/OFFを行います。 |
ラベル(L) | ラベルビュー表示のON/OFFを行います。 |
モニタ(V) | モニタ表示のON/OFFを行います。 |
ラベル表示の設定(Z) | サブメニューから下記のようにラベルビューの表示設定を選択します。 |
表示するユニットの設定(U) | 表示したいユニットを選択します。 |
実行時にモニタを前面に出す(T) | 実行を行った際にモニタを自動的に前面に出すかどうかを指定します。狭い画面でモニタを使うプログラムを利用するときに便利かもしれません。 |
ソースとメモリビューを同期する(S) | ソースビューで選択されている命令行のアドレスに自動的にメモリビューのカーソルを合わせるかどうかを指定します。 |
ちょっと大きめのプログラムを作っているとすぐにラベルの数が半端でなく増えていくので、表示の整理を行うためのコマンドです。
項目 | 機能 |
---|---|
選択ラベル以外表示しない(A) | この項目をチェックすると、ラベルビューの右クリックメニューで選択して太字の表示にしたラベル以外は表示しません。 |
#即値型(I) | 即値型のラベルを表示します。 |
変数型(V) | 変数型のラベルを表示します。 |
>行ラベル型(L) | 行ラベル型のラベルを表示します。 |
@ポインタ型(P) | ポインタ型のラベルを表示します。 |
*自動生成型(S) | 自動生成型のラベルを表示します。 |
項目 | 機能 |
---|---|
ヘルプ(H) | ヘルプを開きます。 |
エディタの設定(E) | ソース編集に使用するエディタを指定します。ダイアログが開いたらエディタへのフルパスをを入力して下さい。 コマンドライン引数として、%F(ファイル名) および%L(行番号) が指定できるので、引数で指定した行番号に飛ぶ機能を持ったエディタなら、右クリックメニューから直接ソースの該当行にジャンプできるようになります。 |
ソースのタイムスタンプをチェックする(C) | PMLエミュレータがアクティブになったときに、読み込まれているプログラムファイルのタイムスタンプが新しくなっているかどうかをチェックします。プログラムの修正を頻繁に行うとき、いちいち読み込み直しメニューを開かなくて済みます。 |
バージョン情報(V) | バージョン情報を表示します。 |
これはロードしたアセンブラプログラムをを表示する画面です。
表示はソースファイルとおおむね同じになりますが、適宜整形されて、命令は大文字に変換されます。
画面は桁に分かれていて、それぞれ以下のような内容を表しています。
桁 | その桁の内容 |
---|---|
アドレス表示 | その行の機械語アドレスが表示されます。 |
行ラベル表示 | その行にラベルがあった場合は、そのラベルが表示されます。 |
命令 | その行の命令が太字で表示されます。 |
パラメータ1 | その命令の第1パラメータが表示されます。 |
パラメータ2 | その命令の第2パラメータが表示されます。 |
コメント | その行につけられたコメントが表示されます。 |
ソースビュー右クリックでポップアップするメニューの機能です。
項目 | 機能 |
---|---|
選択行ジャンプ(S) | ソースの様々な位置にジャンプするためのサブメニューを表示します(次項を参照) |
ブレークポイント設定(B) | 選択行にブレークポイントを設定します |
ブレークポイント解除(B) | 選択行のブレークポイントを解除します |
全ブレークポイント解除(Q) | すべてのブレークポイントを解除します |
ソースの編集(E) | 選択行に対応するソースファイルを開き、可能であればエディタ上でその行にジャンプします。 選択行がマクロ展開された行だった場合、マクロ呼び出しをしたソースファイルの該当行にジャンプを試みます。 |
マクロソースの編集(M) | 選択行がマクロ展開された行だった場合アクティブになり、マクロのソースファイルを開き、その行にジャンプを試みます。 |
ポップアップメニューの選択行ジャンプでソースの様々な場所に一発でジャンプをすることができます。
項目 | 機能 |
---|---|
現在の実行位置(P) | 現在の実行位置にジャンプします。色々見たあげく今どこを実行していたか忘れてしまったような場合に便利だと思います。 |
Jamp・Callの飛び先(J) | 現在の選択位置がジャンプ命令・CALL命令の場合、その飛び先にジャンプします(現在の選択位置がジャンプ命令・CALL命令でない場合は何も起こりません) |
次のアセンブルエラー(E) | 次の(Shiftを押しながらで前の)アセンブルエラーにジャンプします。 |
次のラベル(L) | 次の(Shiftを押しながらで前の)ラベルにジャンプします。 |
次の重要なコメント(H) | 次の(Shiftを押しながらで前の)重要なコメントにジャンプします。重要なコメントとは ;* から始まるコメントということにしています。 |
次のインクルードファイル(I) | 次の(Shiftを押しながらで前の)ファイルインクルード地点にジャンプします。 |
前のジャンプ位置に戻る(Z) | 押すたびに一つ前の選択位置に戻ります。 |
☆ジャンプは以下のようなキー操作でも行うことができます。
キー | 機能 |
---|---|
↑← | 1行上に移動します。 |
↓→ | 1行下に移動します。 |
PgUp | 1ページ上に移動します。 |
PgDn | 1ページ下に移動します。 |
Home | ソースの一番最初に移動します。 |
End | ソースの一番最後に移動します。 |
P | ポップアップメニューの現在の実行位置(P)と同機能です。 |
J | ポップアップメニューのJamp・Callの飛び先(J)と同機能です。 |
E (Shift+E) | ポップアップメニューの次のアセンブルエラー(E)と同機能です。 |
L (Shift+L) | ポップアップメニューの次のラベル(L)と同機能です。 |
H (Shift+H) | ポップアップメニューの次の重要なコメント(H)と同機能です。 |
I (Shift+I) | ポップアップメニューの次のインクルードファイル(I)と同機能です。 |
Z | ポップアップメニューの前のジャンプ位置に戻る(Z)と同機能です。 |
現在定義されているラベルとその値が参照できる画面です。
この画面はEQU疑似命令や行ラベルを使って定義されたラベルの値と、それが指しているメモリの値の一覧です。
各桁の意味は以下のとおりです。
桁 | 意味 |
---|---|
値 | ラベルのそもそもの値です。 |
参照値 | ラベルの値を番地とみなしてその番地に入っている値です。 |
間接値 | 間接参照値、すなわち参照値を番地とみなしてその番地に入っている値です。 |
パス | そのラベルのネームパスです。ネームパスの詳細は5章のPROCとUNITを参照して下さい。 |
ラベルビューには初めから以下の6つのシステムラベルが表示されています。
ラベル | 意味 |
---|---|
PC | プログラムカウンタ(プログラムの現在の実行アドレスを示す) |
SP | スタックポインタ(現在のスタックのアドレスを示す) |
VF | オーバーフローフラグ(符号付き計算結果のオーバーフローを示す) |
SF | サインフラグ(符号付き計算結果がマイナスになったことを示す) |
ZF | ゼロフラグ(計算結果がゼロになったことを示す) |
CF | キャリーフラグ(符号なし計算結果の桁あふれが発生したことを示す) |
ラベルビューの数値の色には以下の意味があります。
数値の色 | 意味 |
---|---|
赤 | アドレスとみなされる数値です。#即値型のラベル以外、値はすべてアドレスと見なされて赤色になります。 ^ポインタ型の場合は自身とその参照値もアドレスのはずなので赤色で表示されます。 |
黒 | 値とみなされる数値です。 #即値型のラベルの値、変数型ラベルの参照値、^ポインタ型ラベルの間接参照値は値とみなされて黒い色になります。 |
薄い灰色 | 無意味と思われる数値です。 たとえば#即値型ラベルの参照値や間接参照値には意味がないはずなのでこの色で表示されています。 |
ラベルビューを右クリックしてポップアップするメニューの説明です。
項目 | 機能 |
---|---|
選択ラベル以外表示しない(A) | 選択して太字にしたラベル以外すべて非表示にします。 |
ラベルの選択(V) | 反転している項目(複数選択可能)を太字にして選択状態にします。 |
ラベルの選択解除(H) | 反転している項目(複数選択可能)の選択状態を解除します。 |
定義位置にジャンプ(J) | ソースビューでそのラベルを定義している行を選択します。 |
参照メモリを表示(M) | メモリダンプビューでそのラベルが参照しているメモリを選択表示します。 項目をシングルクリックしても同じです。 |
間接参照メモリを表示(I) | メモリダンプビューでそのラベルが間接参照しているメモリを選択表示します。 項目をダブルクリックしても同じです。 |
PML仮想コンピュータのメモリ、0〜65,535(FFFFh)番地の値がすべて表示されている画面です。
項目 | 内容 |
---|---|
アドレス | 選択されているメモリのアドレスです。 |
10進(S) | 選択されているメモリの内容を符合付き10進数で表示した値です。 |
10進(U) | 選択されているメモリの内容を符合なしの10進数で表示した値です。 |
16進 | 選択されているメモリの内容を16進数で表示した値です。 |
2進 | 選択されているメモリの内容を2進数で表示した値です |
文字 | 選択されているメモリの内容を文字コードと見てどんな文字を表すか示したものです。 |
PMLコンピューターに接続されている仮想のモニタで、I/O命令で文字などを表示させたり、マウスやキーボード入力はこのウインドウに対して行われます。