Micro Focus SVC 99 API である MFJZS099 は、次のように呼び出します (ここではスケルトン コードのみ示します)。
copy idas99rb replacing ==()== by ==s99rb==.
copy idas99tu replacing ==()== by ==s99tu==. 
  1 caller-id.
  3 caller-id-char       pic x(04) value 'S099'.
  3 caller-id-ptr  pointer.     *> ptr to s99rb
  3 caller-id-bin pic 9(8) comp value 1.
  3 caller-id-float      comp-1 value 1.
1.
    3 tu-ptr-list.
    5 tu-ptr-ddn   pointer.
    5 tu-ptr-dsn    pointer.
    5 etc       pointer. 
   3	  pic x(4) value
       --either—(1)
       x’80000000’    
       --or--  (2)     
          s99rb-last-ptr-val-x4-val. 
   
     move low-values to s99rb
      --either— (3)
     move s99rb-len-host to s99rb-len
      --or--  (4)
     move s99rb-len-mf-ext to s99rb-len
     move s99rb-last-ptr-val-x4-val to s99rb-last-ptr-val-x4
      --and--
     set s99rb-s99tu-array-ptr to address tu-ptr-list
     set caller-id-ptr to address s99rb
     call 'MFJZS099' using  s99rb
         caller-id    
         returning s99rb-retc
    if s99rb-retc = 0 
      *> SVC99 ok    
    else      
      *> SVC99 not ok – check for errors
    end-if
 
	 
パラメータの説明:
retcode の戻り値は、汎用レジスター 15 に配置されている SVC 99 戻りコード値です。他のエラーおよび情報コードは、SVC99RB に格納されます。
SVC99 は、TU (テキスト ユニット) アドレスの上位ビットを使用して、それを TU アドレス配列内の最後の TU アドレスとして解釈します。
呼び出しプログラムを AMODE でコンパイルした場合は、変更は不要です。null アドレスを使用して最終アドレスを示すことをお勧めします。つまり、TU 最終アドレスを x’80000000’ (上記の例内の (1) を参照) に設定します。
呼び出しプログラムを NOAMODE でコンパイルすると、テキスト ユニット (Text Unit; TU) アドレスの上位ビットは TU ポインター配列内の最終アドレスを示すものとしては解釈されません。この場合は、次のいずれか 1 つのオプションがあります。
次のプログラムは NOAMODE が有効の状態で実行されています。
copy idas99rb replacing ==()== by ==s99rb==.
copy idas99tu replacing ==()== by ==s99tu==. 
  1 caller-id.
    3 caller-id-char       pic x(04) value 'S099'.
    3 caller-id-ptr  pointer.     *> ptr to s99rb
    3 caller-id-bin pic 9(8) comp value 1.
    3 caller-id-float      comp-1 value 1.
  1  .
    3 tu-ptr-list.
      5 tu-ptr-ddn   pointer.
      5 tu-ptr-dsn    pointer.
      5 etc       pointer. 
     4	pic x(4) value
                  s99rb-last-ptr-val-x4-val. 
           
           move low-values to s99rb
           move s99rb-len-mf-ext to s99rb-len
           move s99rb-last-ptr-val-x4-val to s99rb-last-ptr-val-x4
           set s99rb-s99tu-array-ptr to address tu-ptr-list
           set caller-id-ptr to address s99rb
call 'MFJZS099' using  s99rb
                   caller-id
                   returning s99rb-retc
            if s99rb-retc = 0 
                    *> SVC99 ok            
            else      
                    *> SVC99 not ok – check for errors
            end-if
 
		次のプログラムは AMODE が有効の状態で実行されています。
copy idas99rb replacing ==()== by ==s99rb==.
copy idas99tu replacing ==()== by ==s99tu==. 
  1 caller-id.
    3 caller-id-char       pic x(04) value 'S099'.
    3 caller-id-ptr  pointer.     *> ptr to s99rb
    3 caller-id-bin pic 9(8) comp value 1.
    3 caller-id-float      comp-1 value 1.
  1  .
    3 tu-ptr-list.
      5 tu-ptr-ddn   pointer.
      5 tu-ptr-dsn    pointer.
      5 etc       pointer. 
      5 pic x(4) value x’80000000’.    
 
   move low-values to s99rb
   move s99rb-len-host to s99rb-len
   set s99rb-s99tu-array-ptr to address tu-ptr-list
   set caller-id-ptr to address s99rb
   call 'MFJZS099' using  s99rb
       caller-id
       returning s99rb-retc
    if s99rb-retc = 0 
       *> SVC99 ok    
    else      
       *> SVC99 not ok – check for errors
    end-if