Changes between Version 7 and Version 8 of CALプログラミング(3)
- Timestamp:
- Mar 22, 2009 3:27:15 AM (16 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
CALプログラミング(3)
v7 v8 25 25 以下、個々の点について詳しく説明する。 26 26 27 * 定数について。初級のプログラムでは、浮動小数点整数をホストプログラムから転送していたが、CALでは定数値を直接プログラム中で利用することもできる。今回のプログラムでは"l0"と"l1"という定数値が5-6行で定義されている。 27 == 定数について == 28 * 初級のプログラムでは、浮動小数点整数をホストプログラムから転送していたが、CALでは定数値を直接プログラム中で利用することもできる。今回のプログラムでは"l0"と"l1"という定数値が5-6行で定義されている。 28 29 {{{ 29 30 dcl_literal 変数名, xの値, yの値, zの値, wの値 30 31 }}} 31 というように宣言する。4要素を持つ変数であることに注意すること。整数を書けばそのままであり、"0xXX"とすれば16進数になるし、小数点が含まれる数は浮動小数点として扱われる。5-6行での宣言により、CAL上では以下のような定数として、"l0"と"l1"を利用できる。 32 というように宣言する。4要素を持つ変数であることに注意すること。整数を書けばそのままであり、"0xXX"とすれば16進数になるし、小数点が含まれる数は浮動小数点として扱われる。 33 34 * 5-6行での宣言により、CAL上では以下のような定数として、"l0"と"l1"を利用できる。 32 35 {{{ 33 36 l0.x = 0.0f, l0.y = 0.0f, l0.z = 1.0f, l0.w = 0.0f … … 38 41 r1.x = 0.0, r1.y = 0.0 39 42 }}} 40 となる。"l1"も同様に使われている。実際には、これらの数字には以下のような意味がある: 43 となる。"l1"も同様に使われている。 44 45 * 実際には、これらの数字には以下のような意味がある: 41 46 ||l0.xとl0.y || データの読み込みのポインタ初期値|| 42 47 ||l0.z || そのポインタのインクリメント用|| 43 48 ||l1.x ||ループカウンタの初期値 || 44 49 ||l1.z ||ループカウンタのインクリメント用|| 45 46 50 これらはループ処理とデータの読み込みに利用される。詳細は以下で説明する。 47 51 48 * ループについて。CALでのループの実現には、色々な方法があるが、ここでは"whileloop"文を利用する。これは、"whileloop"と"endloop"に挟まれた命令列を永久に実行するという命令文である。よって、無限ループを終わらせる処理を自前で書く必要がある。必要な部分だけを抜き出すと以下のようなCALプログラムがループのひな形となる: 52 == ループについて == 53 * CALでのループの実現には、色々な方法があるが、ここでは"whileloop"文を利用する。これは、"whileloop"と"endloop"に挟まれた命令列を永久に実行するという命令文である。よって、無限ループを終わらせる処理を自前で書く必要がある。必要な部分だけを抜き出すと以下のようなCALプログラムがループのひな形となる: 49 54 {{{ 50 55 whileloop