/MENUFRM 10/07/83-CBC =============================================================================== ________________________________________ Serial # : ______ +--------------------------------------+ | ______________________________ | | ______________________________ | +--------------------------------------+ +----------------------------------------------------------------+ | _. ______________________________ | | _. ______________________________ | | _. ______________________________ | | _. ______________________________ | | _. ______________________________ | | _. ______________________________ | | _. ______________________________ | | _. ______________________________ | | _. ______________________________ | +----------------------------------------------------------------+ | Please select one of the above options or press | | to go back one menu >>>>>>>>>>>>>>>> _ | =============================================================================== ____________________________________________________ ____________________________________________________ ________________________ *** DataFlex Menu System *** /EXTRA ___________________________________________________ /* NAME MENUFRM REGNAME REGNUMBER HEAD1 HEAD2 AUTOPAGE MENUFRM 23 NAME OPTION QUESTIONA QUESTIONB RESPONCE INTEGER COUNT ARGPOS ITEMP QNUM STRING ACTION STRING STEMP 255 STRING XTEMP STRING PRGNAME 20 #REPLACE NEXT |VI127 // THIS WONT BE CHANGED [MULTIUSER] DESPOOL REGISTRATION REGNAME REGNUMBER OPEN MENU NEWMENU: BLANKFORM HEAD1 THRU RESPONCE IF NEXT LE 0 MOVE 1 TO NEXT CLEAR MENU MOVE NEXT TO MENU.RECNUM FIND EQ MENU.RECNUM [FINDERR] BEGIN MOVE 1 TO NEXT ERROR 25 GOTO NEWMENU END AUTOPAGE MENUFRM 3 DISPLAY MENU.HEADER1 DISPLAY MENU.HEADER2 INDICATE DOMORE TRUE #COMMAND XDISP INDICATE DOMORE AS MENU.!1 GT '' [DOMORE] DISPLAY !2 [DOMORE] DISPLAY MENU.!1 #ENDCOMMAND XDISP PR1 1 XDISP PR2 2 XDISP PR3 3 XDISP PR4 4 XDISP PR5 5 XDISP PR6 6 XDISP PR7 7 XDISP PR8 8 XDISP PR9 9 GETANS: // single key depends on setscreen! // MOVE 'Option response is a single key entry!' to questiona ACCEPT OPTION IF OPTION LE 0 BEGIN MOVE MENU.DEFAULT TO NEXT GOTO NEWMENU END FORMAT OPTION {RANGE=0,9,POINTS=0} MOVE (OPTION-1*3) TO FIELDINDEX MOVE MENU.AC1& TO EXTRA.1 MOVE EXTRA.1 TO ACTION IF ACTION EQ '' GOTO GETANS IF MENU.PW1& GT '' BEGIN DISPLAY 'PLEASE ENTER THE PASSWORD FOR THIS OPTION' TO QUESTIONB MOVE '' TO STEMP REPEAT INKEY XTEMP [NOT KEY.RETURN] APPEND STEMP XTEMP [NOT KEY.RETURN] LOOP IF STEMP NE MENU.PW1& BEGIN BLANKFORM OPTION THRU RESPONCE DISPLAY 'INVALID PASSWORD!!' TO QUESTIONB GOTO GETANS END BLANKFORM QUESTIONB THRU RESPONCE END // PROCESS ACTION LINE SUBST: POS '$' IN ACTION TO ARGPOS IF ARGPOS EQ 0 GOTO DOLINE RIGHT ACTION TO STEMP (STRLEN-2) // DISPLAY A QUESTION MOVE ARGPOS TO ITEMP INCREMENT ITEMP MID ACTION TO QNUM 1 ITEMP IF QNUM LE 0 GOTO NEWMENU IF QNUM GT 6 GOTO NEWMENU MOVE (QNUM-1*2) TO FIELDINDEX MOVE MENU.QA1& TO QUESTIONA MOVE MENU.QB1& TO QUESTIONB // PROCESS RESPONCE CLEARFORM RESPONCE ACCEPT RESPONCE LEFT ACTION TO ACTION (ARGPOS-1) APPEND ACTION RESPONCE STEMP GOTO SUBST DOLINE: POS ' ' IN ACTION TO ARGPOS INDICATE ARGS AS ARGPOS GT 0 [ARGS] RIGHT ACTION TO STEMP (STRLEN-1) [NOT ARGS] MOVE '' TO STEMP [ARGS] LEFT ACTION TO PRGNAME (ARGPOS-1) [NOT ARGS] MOVE ACTION TO PRGNAME DO2: UPPERCASE PRGNAME IF PRGNAME EQ 'MENU' BEGIN MOVE STEMP TO NEXT GOTO NEWMENU END IF PRGNAME EQ 'FLEX' CHAIN STEMP IF PRGNAME EQ 'CHAIN' CHAIN STEMP IF PRGNAME EQ 'SYSTEM' BEGIN CLEARSCREEN SYSTEM END IF PRGNAME EQ 'ERASEFILE' BEGIN ERASEFILE STEMP GOTO NEWMENU END IF PRGNAME EQ 'TYPE' BEGIN IF STEMP LT '.z' GOTO NEWMENU CLEARSCREEN DIRECT_INPUT STEMP [NOT SEQEOF] REPEAT READLN STEMP SHOWLN STEMP KEYCHECK GOSUB WAITKEY [NOT SEQEOF] LOOP CLOSE_INPUT GOTO ENDKEY END IF PRGNAME EQ 'RENAMEFILE' BEGIN GOSUB SPLIT RENAMEFILE STEMP TO XTEMP GOTO NEWMENU END IF PRGNAME EQ 'COPYFILE' BEGIN GOSUB SPLIT CLEARSCREEN COPYFILE STEMP TO XTEMP GOTO ENDKEY END IF PRGNAME EQ 'DIRECTORY' BEGIN CLEARSCREEN DIRECTORY STEMP GOTO ENDKEY END IF PRGNAME EQ 'CHG/FLEX' BEGIN // CHG/FLEX WILL RUN FLEX ON ANOTHER DISK DRIVE // // AFTER A DISK CHANGE // CLEARSCREEN SHOW 'PLEASE CHANGE DISKS AND PRESS RETURN ' RUN$ 'FLEX' STEMP END // RUN PROGRAM FILE CLEARSCREEN RUNPROGRAM PRGNAME STEMP GOTO NEWMENU // IN CASE OF NO FILE // // WAIT FOR USER INPUT ENDKEY: SHOWLN SHOW 'Please press return to continue: ' INPUT STEMP GOTO NEWMENU // PROCEDURE SPLIT - STEMP INTO TWO NAMES // STEMP=LEFT, XTEMP=RIGHT SPLIT: IF STEMP EQ '' GOTO NEWMENU POS ' ' IN STEMP TO ARGPOS IF ARGPOS EQ 0 GOTO NEWMENU RIGHT STEMP TO XTEMP (STRLEN-1) LEFT STEMP TO STEMP (ARGPOS-1) IF XTEMP EQ '' RETURN NEWMENU RETURN WAITKEY: INKEY XTEMP [KEY.ESCAPE] RETURN NEWMENU RETURN KEYPROC KEY.ESCAPE RETURN NEWMENU