How to get the power of a VAX native command (via SET COMMAND) in a Foreign command (via $symbol:==$executable) STEP 1, MAKE A COMMAND LANGUAGE DEFINITION MODULE: MODULE BANNER_SUBCOMMANDS define verb DO routine DO parameter P1 label=BANNER_TITLE qualifier WIDTH label= WIDTH value (TYPE= $NUMBER, DEFAULT=80) STEP 2, DEFINE THE ENVIRONMENT (FORTRAN): CHARACTER*255 INLINE INTEGER STATUS, CLI$DCL_PARSE, CLI$DISPATCH EXTERNAL LIB$GET_FOREIGN, BANNER_SUBCOMMANDS STEP 3, GET THE COMMAND LINE: CALL LIB$GET_FOREIGN(INLINE) STEP 4, PUT THE DUMMY VERB ON THE FRONT END OF IT: INLINE='DO '//INLINE STEP 5, PARSE THE VERB AND SWITCHES AND VECTOR IT TO THE "DO" FUNCTION: STATUS=CLI$DCL_PARSE(INLINE,BANNER_SUBCOMMANDS,%VAL(0),%VAL(0),' ') IF (.NOT.STATUS) CALL LIB$SIGNAL (%VAL(STATUS)) STATUS = CLI$DISPATCH () IF (.NOT.STATUS) CALL LIB$SIGNAL (%VAL(STATUS)) STEP 6, THE "DO" FUNCTION: INTEGER FUNCTION DO (DUMMY) INTEGER STATUS, CLI$PRESENT, CLI$GET_VALUE EXTERNAL CLI$_ABSENT INCLUDE '($SSDEF)' . . . IF (CLI$PRESENT ('WIDTH')) THEN ! get value(s) STATUS=CLI$GET_VALUE('WIDTH',C_WIDTH,I_WIDTH_LEN) IF (.NOT.STATUS) CALL LIB$SIGNAL (%VAL(STATUS)) ENDIF . . . DO = SS$_NORMAL RETURN END