| $create prog.cob
IDENTIFICATION DIVISION.
PROGRAM-ID. prog.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WorkData.
05 TERM-CONTROL-AREA PIC X(12).
05 TERM-CONTROL-AREA-SIZE PIC 9(5) COMP VALUE
12.
05 LOGICAL-UNIT-TT PIC 9(5) COMP VALUE 1.
05 FMS-STATUS PIC S9(9) COMP.
05 RMS-STATUS PIC S9(9) COMP.
05 WORKSPACE PIC X(12).
05 WORKSPACE-SIZE PIC 9(5) COMP VALUE
1000.
05 FUNC-FORM-LIB PIC X(9) VALUE "MYLIB.FLB".
05 LOGICAL-UNIT PIC 9(5) COMP VALUE 2.
05 TERMINATOR PIC S9(9) COMP.
01 MyTerminator pic s9(9) comp.
01 MyMess pic x(80) value "".
01 return-status pic s9(9) comp.
PROCEDURE DIVISION.
debut.
CALL "FDV$ATERM" USING BY DESCRIPTOR TERM-CONTROL-AREA
BY REFERENCE TERM-CONTROL-AREA-SIZE
BY REFERENCE LOGICAL-UNIT-TT.
CALL "FDV$AWKSP" USING BY DESCRIPTOR WORKSPACE
BY REFERENCE WORKSPACE-SIZE.
CALL "FDV$LOPEN" USING BY DESCRIPTOR FUNC-FORM-LIB
BY REFERENCE LOGICAL-UNIT.
CALL "FDV$CDISP" USING BY DESCRIPTOR 'ECRAN'.
Call "FDV$WAIT" using by reference MyTerminator.
if MyTerminator= 53 then
move "Terminateur : 53 " to MyMess
else
move "................." to MyMess
end-if.
Call "FDV$PUTL" using by descriptor MyMess.
CALL "FDV$LCLOS".
CALL "FDV$DWKSP" USING BY DESCRIPTOR WORKSPACE.
CALL "FDV$DTERM" USING BY DESCRIPTOR TERM-CONTROL-AREA.
DISPLAY "Session Completed.".
STOP RUN.
END PROGRAM prog.
$create myuar.cob
IDENTIFICATION DIVISION.
PROGRAM-ID. MyUar.
DATA DIVISION.
WORKING-STORAGE SECTION.
copy "fms$examples:fdvdef.lib".
01 VARIABLES.
05 UAR-DATA-MAX-LENGTH PIC 9(2) COMP VALUE 80.
05 UAR-DATA PIC X(80).
05 FORM-NAME PIC X(31).
05 FIELD-NAME PIC X(31).
05 CURSOR-POSITION PIC 9(9) COMP.
05 TERMINATOR PIC s9(9) COMP.
05 INSOVR-STATUS PIC 9(9) COMP.
05 FIELD-INDEX PIC 9(9) COMP.
05 HELP-STRIKES PIC 9(9) COMP.
05 ADDRESS-WKSP PIC 9(9) COMP.
05 ADDRESS-TCA PIC 9(9) COMP.
05 RETURN-STATUS PIC S9(9) COMP.
01 mymess pic x(80).
PROCEDURE DIVISION GIVING Return-status.
startprog.
CALL "FDV$RETCX" USING BY REFERENCE ADDRESS-TCA
BY REFERENCE ADDRESS-WKSP
BY DESCRIPTOR FORM-NAME
BY DESCRIPTOR UAR-DATA
BY REFERENCE CURSOR-POSITION
BY REFERENCE TERMINATOR
BY REFERENCE INSOVR-STATUS
BY REFERENCE HELP-STRIKES.
if Terminator = 53 then
move "F10........." to MyMess
else
move "erreur....." to myMess
end-if.
call "fdv$putl" using by descriptor MyMess.
exit program.
END PROGRAM MyUar.
$create ecran.flg
! FMS Form Description Application Aid
! Version V2.4
FORM NAME='ECRAN'
AREA_TO_CLEAR=1:23
WIDTH=CURRENT
BACKGROUND=CURRENT
FUNCTION_KEY_ACTION_ROUTINE='MYUAR'
;
TEXT (1,25) 'TEST DU ''TERMINATOR KEY'''
;
TEXT (6,17) 'Champ :'
;
ATTRIBUTE_DEFAULTS FIELD
CLEAR_CHARACTER=' '
NOAUTOTAB BLANK_FILL NOBLINKING NOBOLD NOREVERSE
NOUNDERLINE NODISPLAY_ONLY ECHO NOFIXED_DECIMAL
LEFT_JUSTIFIED NOSUPERVISOR_ONLY NOSUPPRESS NOUPPERCASE
;
FIELD NAME='CHAMP1' (6,26)
PICTURE=7'X'
;
END_OF_FORM NAME='ECRAN' ;
$cobol prog,myuar
$fms/vector/output=vector ecran.frm
$fms/library/replace mylib.flb ecran.frm
$link prog,myuar,vector
|