C DOW 1 = 1
C EXFMT MY_REC
C IF ERROR
C EXSR CLR_MSG
C ENDIF
...
C IF *INKC
C LEAVE
C ENDIF
C EXSR FKY_PRC
...
C EXSR ENT_PRC
...
C ENDDO
C ENDSR
C*------------------------------
C* FUNCTION KEY SUBROUTINE
C*-------------------------------
C FKY_PRC BEGSR
C EVAL FNT_FLG = *OFF
C SELECT
C WHEN *INKX
C ....
C WHEN *INKX
C ....
C OTHER
C EVAL ENT_FLG = *ON
C ENDSL
C ENDSR
C*------------------------------
C* POST-ENTER SUBROUTINE
C*------------------------------
C ENT_PRC BEGSR
C IF ENT_FLG
C EXSR VALID
C ...
C IF NOT ERROR
C EXSR POST_TRN
C ENDIF
C ENDIF
C ENDSR
C*------------------------------
C* CLEAR MESSAGE SUBROUTINE
C*------------------------------
C CLR_MSG BEGSR
C* RESET ERROR INDICATORS
C MOVEA '000000' *INKX
C* CLEAR MSG IN PGM MESSAGE QUEUE
C CALL 'CLEAR' PLIST1
C EVAL ERROR = *OFF
C ENDSR
C*------------------------------