' *** FUNCMENU.LST *** 2nd GFA-Manual, page 22-3 > PROCEDURE functionkey_menu(VAR command,help!,esc!) ' ' *** Classic Function-key menu (from DATA-lines; use RESTORE first) ' *** Returns function-key (1-10) in command&, unless or pressed ' *** In that case command&=0 and help!=TRUE or esc!=TRUE ' ' *** Standard: col.max& ' LOCAL title$,n,i,l,s,key$,key CLR command,esc!,help! CLS READ title$ PRINT AT(1,2);SPACE$((col.max-LEN(title$))/2);title$ READ n DIM functionkey.menu$(PRED(n)) FOR i=0 TO PRED(n) READ functionkey.menu$(i) NEXT i FOR i=0 TO PRED(n) l=MAX(LEN(l$),LEN(functionkey.menu$(i))) NEXT i s=(col.max-l)/2 FOR i=0 TO PRED(n) PRINT AT(s,2*i+5);functionkey.menu$(i) NEXT i PRINT AT(2,25);""; PRINT AT(74,25);""; {ADD(XBIOS(14,1),6)}=0 ! clear keyboard-buffer HIDEM REPEAT key$=INKEY$ IF key$=CHR$(27) esc!=TRUE command=0 ENDIF IF LEN(key$)=2 key=ASC(RIGHT$(key$)) IF key=98 help!=TRUE command=0 ENDIF IF key>=59 AND key<=(n+58) command=key-58 ENDIF ENDIF UNTIL help! OR esc! OR (command>=1 AND command<=n) ERASE functionkey.menu$() ' functionkey.menu.data: ' *** title,number of choices DATA Menu,6 ' *** menu-choices DATA = first choice DATA = second choice DATA = third choice DATA = fourth choice DATA = fifth choice DATA = quit ' RETURN ' ********* '