OpenTP1のUAPのコーディングには,C言語,およびC++言語を使えます。C言語の場合,ANSI Cの形式 またはANSI準拠前のK&Rの形式のどちらかに従ってコーディングします。C++言語の場合,C++言語の仕様でコーディングします。一部の制限はありますが,OSで標準に提供するライブラリにある関数は,OpenTP1のライブラリにある関数とあわせて使えます。
さらに,システムコールや任意のプログラムのライブラリも使えますが,コーディング時には,UAPの移植性を高めるため,OSで標準に提供する関数やシステムコールを使うことをお勧めします。
システムコールや任意のプログラムのライブラリを使うUAPを作成するときは,次のことに注意してください。
OSがHP-UXの場合,リンケージ時のバインドモードには必ず"immediate"を指定してください。"immediate"以外のバインドモードで作成した実行形式ファイルをOpenTP1のUAPとして使った場合,システムの動作は保証しません。作成したUAPのバインドモードが"immediate"かどうかは,OSのchatrコマンドで確認してください。
ユーザがコーディングする変数名や定義名などには,先頭に何文字かのプレフィックスを付加することをお勧めします。OSやOpenTP1などと名称が重複した場合の動作は保証しません。
サービス関数の名称は,20文字以内の長さで,先頭が英字で始まる英数字を付けます。サービス関数名には,次の名称は使わないでください。
外部変数名には,次の名称は使わないでください。ただし,このマニュアルの記述に従って使う場合を除きます。
#define文で定義する定数名には,次の名称は使わないでください。ただし,このマニュアルの記述に従って使う場合を除きます。
C言語で作成したUAPのプロセスで,一度でもCOBOL言語のプログラムを実行した場合は,CBLEND関数を使ってexitしてください。CBLEND関数を使わないで終了すると,COBOL言語のカウント情報などが出力されません。CBLEND関数については,該当するCOBOL言語のマニュアルを参照してください。
OpenTP1(TP1/LiNK)をWindowsで使う場合に,UAPをコンパイル,リンケージするときは,Windowsで使うCコンパイラの仕様に従ってください。
C言語で作成した32ビットアーキテクチャのVersion 6で使用していたユーザアプリケーションプログラムおよびユーザオウンコーディングのソースファイルを32ビットアーキテクチャのVersion 7で使用する場合,および,C言語で作成した64ビットアーキテクチャのVersion 6で使用していたユーザアプリケーションプログラムおよびユーザオウンコーディングのソースファイルを64ビットアーキテクチャのVersion 7で使用する場合,ユーザアプリケーションプログラムおよびユーザオウンコーディングのソースファイルをそのまま使用できます。