[ 前のページ ] [ 次のページ ] [ 目次 ] [ 索引 ] [ DOC Home ]

7 日本語SMGルーチンの呼び出しの例

この章では,VMS Calling Standardに準拠したおもな言語で SMG$READ_KEYSTROKEルーチンを呼び出す方法を示します。 他の日本語SMGルーチン(たとえば,SMG$CREATE_VIRTUAL_DISPLAY, SMG$CREATE_PASTEBOARD,SMG$CREATE_VIRTUAL_KEYBOARD, SMG$PASTE_VIRTUAL_DISPLAY,SMG$PUT_LINE)もこれらの例の中で使用しています。

例 7-1のFORTRANプログラムでは, SMG$READ_KEYSTROKEルーチンの他,SMG$CREATE_VIRTUAL_DISPLAY, SMG$CREATE_PASTEBOARD,SMG$PASTE_VIRTUAL_DISPLAY, SMG$CREATE_VIRTUAL_KEYBOARD,SMG$PUT_LINEルーチンも使用しています。

例 7-1 DEC FORTRANでのSMG$ルーチンの使用

     C+
     C This routine creates a virtual display and writes ti to the PASTEBOARD.
     C Data is placed in the virtual display using the routine SMG$PUT_CHARS.
     C Include the SMG definitions.  In particular, we want SMG$M_BORDER,
     C-
             INCLUDE '($SMGDEF)'
             INTEGER SMG$CREATE_VIRTUAL_DISPLAY, SMG$CREATE_PASTEBOARD
             INTEGER SMG$PASTE_VIRTUAL_DISPLAY,
          1          SMG$CREATE_VIRTUAL_KEYBOARD
             INTEGER SMG$READ_KEYSTROKE, SMG$PUT_LINE
             INTEGER DISPLAY1, PASTE1, KEYBOARD1, ROWS, COLUMNS,
          1          TERM_CHAR
             CHARACTER*3 TEXT
             CHARACTER*27 TEXT_OUTPUT
     C+
     C Create the virtual display with a border.
     C-
             ROWS = 7
             COLUMNS = 60

             ISTATUS = SMG$CREATE_VIRTUAL_DISPLAY
          1          (ROWS, COLUMNS, DISPLAY1, SMG$M_BORDER)
     C+
     C Create the pasteboard.
     C-
             ISTATUS = SMG$CREATE_PASTEBOARD (PASTE1)
     C+
     C Create a virtual keyboard
     C-
             ISTATUS = SMG$CREATE_VIRTUAL_KEYBOARD (KEYBOARD1)
     C+
     C Paste the virtual display at row 3, column 9.
     C-
             ISTATUS = SMG$PASTE_VIRTUAL_DISPLAY ( DISPLAY1, PASTE1, 3, 9)
             ISTATUS = SMG$PUT_LINE (DISPLAY1,
          1          'Enter the character K after the>> prompt.')
             ISTATUS = SMG$PUT_LINE (DISPLAY1,
          1          'This character will not be echoed as you type it.')
             ISTATUS = SMG$PUT_LINE (DISPLAY1,
          1  'The terminal character equivalent of K is displayed.')
             ISTATUS = SMG$PUT_LINE (DISPLAY1, ' ')
     C+
     C Read a keystroke from the virtual pasteboard.
     C-
             ISTATUS = SMG$READ_KEYSTROKE ( KEYBOARD1, TERM_CHAR, '>>', ,
          1          DISPLAY1)
             ISTATUS = SMG$PUT_LINE (DISPLAY1, ' ')
     C+
     C Convert the decimal value of TERM_CHAR to a decimal ASCII text string.
     C-
             ISTATUS = OTS$CVT_L_TI( TERM_CHAR, TEXT)

             TEXT_OUTPUT = ' TERMINAL CHARACTER IS: ' // TEXT
     C+
     C Print the decimal ASCII text string.
     C-
             ISTATUS = SMG$PUT_LINE (DISPLAY1, TEXT_OUTPUT)
             ISTATUS = SMG$PUT_CHARS (DISPLAY1, TEXT, 7, 25)

             END


[ 前のページ ] [ 次のページ ] [ 目次 ] [ 索引 ] [ DOC Home ]