Changes between Version 7 and Version 8 of CALプログラミング(3)


Ignore:
Timestamp:
Mar 22, 2009 3:27:15 AM (16 years ago)
Author:
nakasato
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • CALプログラミング(3)

    v7 v8  
    2525 以下、個々の点について詳しく説明する。 
    2626 
    27  * 定数について。初級のプログラムでは、浮動小数点整数をホストプログラムから転送していたが、CALでは定数値を直接プログラム中で利用することもできる。今回のプログラムでは"l0"と"l1"という定数値が5-6行で定義されている。 
     27== 定数について == 
     28 * 初級のプログラムでは、浮動小数点整数をホストプログラムから転送していたが、CALでは定数値を直接プログラム中で利用することもできる。今回のプログラムでは"l0"と"l1"という定数値が5-6行で定義されている。 
    2829{{{ 
    2930dcl_literal 変数名, xの値, yの値, zの値, wの値 
    3031}}} 
    31  というように宣言する。4要素を持つ変数であることに注意すること。整数を書けばそのままであり、"0xXX"とすれば16進数になるし、小数点が含まれる数は浮動小数点として扱われる。5-6行での宣言により、CAL上では以下のような定数として、"l0"と"l1"を利用できる。 
     32 というように宣言する。4要素を持つ変数であることに注意すること。整数を書けばそのままであり、"0xXX"とすれば16進数になるし、小数点が含まれる数は浮動小数点として扱われる。 
     33 
     34 * 5-6行での宣言により、CAL上では以下のような定数として、"l0"と"l1"を利用できる。 
    3235{{{ 
    3336l0.x = 0.0f, l0.y = 0.0f, l0.z = 1.0f, l0.w = 0.0f 
     
    3841r1.x = 0.0, r1.y = 0.0 
    3942}}} 
    40  となる。"l1"も同様に使われている。実際には、これらの数字には以下のような意味がある: 
     43 となる。"l1"も同様に使われている。 
     44 
     45 * 実際には、これらの数字には以下のような意味がある: 
    4146||l0.xとl0.y || データの読み込みのポインタ初期値|| 
    4247||l0.z          || そのポインタのインクリメント用|| 
    4348||l1.x          ||ループカウンタの初期値 || 
    4449||l1.z   ||ループカウンタのインクリメント用|| 
    45  
    4650 これらはループ処理とデータの読み込みに利用される。詳細は以下で説明する。 
    4751 
    48  * ループについて。CALでのループの実現には、色々な方法があるが、ここでは"whileloop"文を利用する。これは、"whileloop"と"endloop"に挟まれた命令列を永久に実行するという命令文である。よって、無限ループを終わらせる処理を自前で書く必要がある。必要な部分だけを抜き出すと以下のようなCALプログラムがループのひな形となる: 
     52== ループについて == 
     53 * CALでのループの実現には、色々な方法があるが、ここでは"whileloop"文を利用する。これは、"whileloop"と"endloop"に挟まれた命令列を永久に実行するという命令文である。よって、無限ループを終わらせる処理を自前で書く必要がある。必要な部分だけを抜き出すと以下のようなCALプログラムがループのひな形となる: 
    4954{{{ 
    5055whileloop