ZSINPT



【機能】

  アイデント・ディジタズ・文字入力を行う


【使用形式】

  call zsinpt(ifm,iopt,icol,itbl,ipnt,xyz,ns,ich,iret)


【引数説明】

  [INPUT]
        ifm        : 入力モード
                  -1 = AUTO  (IDENT入力可能)
                   0 = IDENT
                   1 = PDIG  (IDENT入力可能)
                   2 = PEND  (IDENT入力可能)
                   3 = PCEN  (IDENT入力不可)
                   5 = PIN2  (IDENT入力不可)
                   6 = PONT  (IDENT入力不可)
                  10 = 文字入力
                  11 = 数値入力
        iopt(4,10) : オプションメニューの文字列(NULLをターミネータとする)
        icol(10,2) : オプションメニューの色番号/背景色
        ipnt(5)    : 入力フラグ
            (1)    0= 入力モード自由     /  1=入力モード固定
            (2)    0= 認識マークをつける /  1= 認識マークをつけない
                   2= 色を変更する       / -1= ミスクに従う
            (3)    0= 一時割込み実行する /  1= 一時割込み実行しない
            (4)    0= ID 入力時に GP モード指示を許さない /
                         GP 入力時に ID モード指示を許さない
                   1= ID 入力時に GP モード指示を許す /
                         GP 入力時に ID モード指示を許す
                   2= GP 入力時に ACT 指示を許す /
                         ID 入力時に GP モード指示を許さない
            (5)    : トリムの組数指定
                   0= トリムをしない
                   1= トリムの組数(トリムコモンを初期化する)
                  -1= トリムの組数(トリムコモンを初期化しない)
        xyz(10)    : 座標値
         (1)(2)(3) : 相対(極/円筒)座標値の場合、基準座標として入力値を参照する



  [INPUT/OUTPUT]

  [OUTPUT]
        ifm        : 入力モード(ルーチン内で入力モードを変更した時のみ出力)
                  -1 = AUTO
                   0 = IDENT
                   1 = PDIG
                   2 = PEND
                   3 = PCEN
                   5 = PIN2
                   6 = PONT

        ipnt(5)    : 入力フラグ
            (5)    : トリムの組数指定
                   0= トリムをしない
                   1= トリムの組数なし
                  -1= トリムの組数あり
        itbl(13)   : 認識した情報
            (1)    : スクリーン番号    (ISN) [iret=10のとき:オプション番号/
                                              iret= 4のとき数値の数(最大10)]
            (2)    : U.V.S.番号  (IUVS)
            (3)(4) : 指示したスクリーン座標(XY)
            (5)    : G−No.        (要素指示した場合:ifm=1,7,10,の時0)
            (6)    : G−No.        (交点認識した場合:ifm=4,5)
            (7)    : クラス番号        (ICLS)
            (8)    : アイテム番号      (INO)
            (9-10) : グループ名称      (ZGRP)
            (11-12): アイテム名称
            (13)   : 指示した入力タイプ
                  -2= CLASS , -1= GROUP ,  0= ITEM / IDENT
                   1= PDIG  ,  2= PEND  ,  3= PCEN  ,  4= PIN1(1点入力で判定)
                   5= PIN2  ,  6= PONT  ,
                  11= 絶対座標(SQRS)      , 12= 相対座標(DSQRS)
                  13= 絶対円筒座標(CYCS)  , 14= 相対円筒座標(DCYCS)
                  15= 絶対極座標(SPCS)    , 16= 相対極座標(DSPCS)
        xyz(10)       : 座標値( iret=4 のとき最大10個まで数値が入る)
           (1)(2)(3) : 決定されたXYZ座標値
           (4)(5)(6) : 指示したXYZ座標値
           (7)(8)(9) : 第2要素を指示したのXYZ座標値(PINT)


        ns         : 文字数(バイト数:MAX = 256 Byte)
        ichr(64)   : 文字列
        iret       : リターン
                  -6= 入力エラー
                  -5= MENU
                  -4= スペシャルメニュー
                  -3= UND−(REDO)
                  -2= UND+(UNDO)
                  -1= REJECT
                   0= C/R,C/Cのみ
                   1= GP,ID入力
                   2= COPY
                   3= ACT
                   4= 数値が入力された
                   5= B/S
                   6= 文字
                   8= FREE
                  10= オプションが押された
                  11= コマンド割り込み

【機能説明】
    ・入力モードが、AUTO,PDIG,PENDでipnt(1)=0の場合には、指定した
      入力モードにIDENT入力ができます。
      そのときには、カーソルの形状がAUTOカーソルとなります。
    ・数値入力の時は、","(相対入力)、";"(絶対入力)ができます。
      xyzに入力値をリターンし、itbl(1)にその数値列をリターンします。
      数値列の最大個数は、10個です。
    ・割り込みコマンド(リターンフラグ=11)が入力した場合、コマンドを
      終了すると割り込み入力したコマンドを実行します。
    ・オプションメニューを使用するときは、あらかじめiopt,icolの変数領域を
      0クリアする必要があります。

         クリアする例、
           (フォートランの場合)
                dimension iopt(4,10), icol(10,2)
                          :
                call clear(iopt,40,0)
                call clear(icol,20,0)
                icol(1,1)=2
                icol(1,2)=9
                call movec(iopt(1,1),1,'オプション',1,10)
                call zsinpt(ifm,iopt,icol,itbl,ipnt,xyz,ns,ich,iret)
                           :

           (GALの場合)
                dimension iopt(4,10) icol(10,2)
                          :
                iopt=0
                icol=0
                icol(1,1)=2
                icol(1,2)=9
                scall movec(iopt(1,1),1,'オプション',1,10)
                scall zsinpt(ifm,iopt,icol,itbl,ipnt,xyz,ns,ich,iret)
                           :