10	!MENU	THIS IS A DUMMY MENU PROGRAM TO DEMONSTRATE &
!		THE 'DETACHED PROCESS' LOGIC &

100	EXTERNAL LONG FUNCTION SYS$TRNLOG,SYS$HIBER,LIB$DO_COMMAND &
\	DECLARE LONG SYS_STATUS &

700	FIXMB$=SPACE$(5%) &
\	SYS_STATUS=SYS$TRNLOG('FORMBX',,FIXMB$,,,) &
\	IF INSTR(1%,FIXMB$,"ADDCR") THEN &
		FIXMB$=CHR$(32%)+CHR$(8%)+CHR$(13%)+CHR$(10%) &
\		PRINT ":BASIC:CCR:" &
	ELSE	&
		FIXMB$="" &
!	if logical formbx has been assigned for this process, then it &
!	is being run via the mailbox logic &
!	Any input requests with a prompt string must be forced through &
!	the mailbox by adding a <cr><lf>. &

900	OPTLST$="RUN.DIR.ATT.LOG.BAT" &
\	MARGIN 132% &

1000	PRINT "SAMPLE MENU PROGRAM" &
\	PRINT &

1010	PRINT "AVAILABLE OPTIONS ARE:" &
\	PRINT "(RUN) A PROGRAM" &
\	PRINT "(DIR)ECTORY"	&
\	PRINT "(ATT)ACH TO ANOTHER PROCESS" &
\	PRINT "(LOG)OFF SYSTEM" &
\	PRINT "(BAT)CH REQUEST" &
\	PRINT &

1020	PRINT "OPTION";FIXMB$;  \INPUT OPT$ &
\	GOTO 1020 IF LEN(OPT$)<>3% &
\	I%=INSTR(1%,OPTLST$,OPT$) &
\	GOTO 1020 IF I%=0% &
\	I%=(I%/4%)+1% &
\	ON I% GOTO 1100,1200,1300,1400,1500 &

1100	! RUN PROGRAM &
	PRINT "PROGRAM TO RUN";FIXMB$; \INPUT PR$	!** NEW WAY ** &
\	CHAIN PR$ &

1200	!GET DIRECTORY &
	SYS_STATUS=LIB$DO_COMMAND("DIR [RUTHR.KEEP]") &
\	CALL SYS$EXIT(SYS_STATUS BY VALUE) IF (SYS_STATUS AND 1%)=0% &
\	GOTO 32767 &

1300	!ATTACH &
	PRINT ":ATT: MENU" &
\	SYS_STATUS=SYS$HIBER() &
\	CALL SYS$EXIT(SYS_STATUS BY VALUE) IF (SYS_STATUS AND 1%)=0% &
\	GOTO 32767 &

1400	!LOGOUT &
	PRINT ":BYE: MENU" &
\	SYS_STATUS=SYS$HIBER() &
\	CALL SYS$EXIT(SYS_STATUS BY VALUE) IF (SYS_STATUS AND 1%)=0% &
\	GOTO 32767 &

1500	!BATCH REQUEST &
	CHAIN "BATCH" &
\	GOTO 32767 &

32767	END
