English
SOUND ManualSCSP/DSPアセンブラユーザーズマニュアル
戻る進む
SCSP/DSPアセンブラユーザーズマニュアル

3.ソースコードの構成


■ソースコードの書式

 ●構成および書式

dAsmsのソースコードの構成および書式は、以下に示すとおりです。


#COEF              ←係数シンボル定義の開始を示すラベル
--------------------------

 (係数シンボル定義式)

--------------------------

#ADRS              ←アドレスシンボル定義の開始を示すラベル
--------------------------

(アドレスシンボル定義式)

--------------------------

#PROG              ←プログラム記述の開始を示すラベル
--------------------------

(アドレスシンボル定義式)

--------------------------
#END               ←プログラム記述の終了を示すラベル

 ●コメント(注釈文)

■係数/アドレスシンボルの定義

 ●定義書式

………………………………………………
(シンボル名)=(初期値)
………………………………………………

ただし、

(シンボル名):
DSPプログラム記述中において係数/アドレスデータとして使用するための「変数名」。半角英数字で15文字以内の文字列。

(初期値):
上記シンボル名が表す「変数」に対して与えるデフォルト値。別途規定する各種表記のうちのいずれかで記述する。

注 意
定義式1行につきシンボル1個を定義できるものとし、それぞれのシンボルに初期値を与えなければなりません。

 ●ユーザ定義可能なシンボルの個数

係数シンボル:63個
アドレスシンボル:32個

 ●予約シンボルについて

係数シンボル「ZERO」が予め定義済みなので、ユーザはこれと同じシンボル名を新たに定義してはいけません。このシンボルに与えられた初期値は「0」であり、そのデータは実行形式プログラムの係数データ部分の最初に置かれます。 したがって、ユーザ定義の係数シンボルは、係数データ部分の2番目以降に定義順に置かれます。

注 意
この予約シンボル「ZERO」は、ユーザが作成するソースコードのプログラム部分において、係数定義部分で定義することなく利用できますが、 その値を(実行形式プログラム上、あるいはそれがロードされたDSPハードウエア上など、いかなる場合においても)変更してはなりません。

 ●ソースコード上の係数/アドレス定義部分における表記モード

係数/アドレスの定義部分において、以下の表記モードが使用できます。

 定義部分 
 表記モード 
 識別子 
 例 
 変換方法 
 例の変換結果 
#COFF
16進表記
[&H]
&HOFFF
無変換
&HFFF 
10進表記
無し
123
10進→16進
&H007B
%表記
[%]
%50
(1)
&H0800
小数表記
[.]
0.25
(2)
&H0400
#ADRS
16進表記
[&H]
&H8000
無変換
&H8000
10進表記
無し
123
10進→16進
&H007B
ミリ秒表記
[ms]
ms300.0
(3)
&H33AE

変換方法」の項目は、「各表記モード上の値→実データ」の変換を行う方法を示します。
変換方法 (1),(2),(3)はそれぞれ以下のとおりです。

(1) (係数値)= 4095 ×(表記値)/ 100
(2) (係数値)= 4096 ×(表記値)
(3) (アドレス定数値)= 44100 ×(表記値)/ 100

(1)と(2)の定数の違い( 40954096 )に注意してください。

(1), (2), (3) の全てについて、浮動小数点で計算を行い、その結果を最終的にゼロに向かって四捨五入するものとします。

変換後の実データのフォーマット(EXCファイル上)は以下のとおりです。

 定義部分 
 実データのフォーマット 
#COEF
13bit2の補数フォーマットの16進数
#ADRS
16bitリニアフォーマットの16進数

 ●係数/アドレスシンボル初期値として使用可能な値の範囲、および書式

 定義部分 
表記モード
範 囲
書 式
#COEF
16進表記
1000〜0FFF[hex]
16進符号付き整数(13ビット幅)
10進表記
−4096〜+4095[dec]
10進符号付き整数
%表記
−100〜+100[%]
10進符号付き整数
小数表記
−1.0〜+0.99975[dec]
10進符号付き小数(整数部1桁、小数部5桁まで)
#ADRS
16進表記
0〜FFFF[hex]
16進符号無し整数(16ビット幅)
10進表記
0〜65535[deci]
10進符号無し整数
ミリ秒表記
0.0〜1486.0[ms]
10進符号無し小数(整数部4桁、小数部1桁まで)

例:ソースコード上の係数/アドレス定義部分において次のような表現ができます。

#COEF
CoefA = &H0FFF
CoefB = 123
CoefC = %50
CoefD = 0.25

#ADRS
AdrsA = &H8000
AdrsB = 123
AdrsC = ms300.0


戻る進む
SOUND ManualSCSP/DSPアセンブラユーザーズマニュアル
Copyright SEGA ENTERPRISES, LTD., 1997