__callt宣言された関数をcallt命令で呼び出します。
[機能]
-  | __callt宣言された関数(callt関数)は,callt命令で呼び出します。 
callt命令は,callt命令テーブルと呼ばれる領域(0x80~0xBF)に「関数定義の先頭アドレス」が格納された関数を,直接関数を呼ぶよりも短いコードで呼ぶことを可能にします。  | 
 
-  | callt関数の呼び出しには,関数名の先頭に”@_”を付加したラベル名を使用し,callt命令で呼び出します。 
関数末尾でcallt関数を呼び出す場合,callt命令での呼び出しにならない場合があります。  | 
 
-  | 呼ばれる関数は,C ソース中において,通常の関数と同様に扱います。  | 
 
-  | __near指定となり,アドレス参照は必ずnearポインタを返します。  | 
 
-  | callt関数は再配置属性TEXTのセクションへ配置します。  | 
 
-  | callt命令テーブルはセクション.callt0に配置します。  | 
 
[効果]
-  | 2バイト・コール命令での関数呼び出しとなるため,オブジェクト・コードのサイズが小さくなります。  | 
 
[方法]
-  | 関数を定義するモジュール中で,__callt 宣言を行います。  | 
 
__callt 関数宣言; 
extern __callt  関数宣言; 
static __callt  関数宣言; 
__callt extern  関数宣言; 
__callt static  関数宣言; 
 | 
 
[制限]
-  | callt関数は,メモリ・モデルによらず,0xC0~0xFFFFに配置します。  | 
 
-  | 関数宣言以外に__calltを指定した場合は,コンパイル・エラーとなります。  | 
 
-  | callt関数の数に関するチェックは,リンク時に行います。  | 
 
-  | 対象関数のすべての宣言に対して__calltを指定する必要があります。 
__calltの指定の有無が混在する場合は,コンパイル・エラーとなります。  | 
 
         void func(void); 
__callt  void func(void);          //エラー 
 | 
 
-  | __nearと同時指定できますが,__farと同時指定した場合はコンパイル・エラーとなります。  | 
 
__callt  void func1(void);         //関数アドレスはnear 
__callt  __near void func2(void);  //関数アドレスはnear 
__callt  __far void func3(void);   //エラー 
 | 
 
-  | typedef中に__calltを使用した場合は,コンパイル・エラーとなります。  | 
 
typedef __callt int     CI;        //エラー 
 | 
 
-  | 関数宣言に__calltの指定がある関数に#pragmaの指定がある場合は,コンパイル・エラーとなります。  | 
 
[使用例]
Cソースを以下に示します。
__callt void func(void){
          : 
} 
  
void main(void){
        func();    //callt関数の呼び出し 
          : 
} 
 | 
 
 
アセンブリ・ソースにおけるセクション割り付けと出力コードは以下となります。
        .PUBLIC _func 
        .PUBLIC _main 
        .PUBLIC @_func 
          : 
  
        .SECTION        .text,TEXT 
_func: 
          : 
  
        .SECTION        .textf,TEXTF 
_main: 
        callt   [@_func] 
          : 
  
        .SECTION        .callt0,CALLT0 
@_func: 
        .DB2    _func 
          : 
 | 
 
[備考]
-  | キーワード__calltと#pragma calltの違いについて  | 
 
-  | __calltキーワードは,__farキーワードとの混在を許さずコンパイル・エラーとなります。  | 
 
-  | #pragma calltは,__farキーワードを付加した関数でも警告なしで__calltを指定したものとして扱います。  |