home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS 1992 September / Simtel20_Sept92.cdr / msdos / menu / genmenu.arc / MENUGEN.BAS next >
BASIC Source File  |  1987-02-23  |  4KB  |  100 lines

  1. 5  '        ***********************************           
  2. 10 '        ***    DOS Menu Generator    ***
  3. 20 '        ***    Michael S. Cox        ***
  4. 25 '        ***    Version V2.6        ***
  5. 26 '        ***    February 23, 1987    ***
  6. 30 '        ***********************************
  7. 40 '
  8. 50 key off
  9. 60 screen 0
  10. 70 '
  11. 80 '        ***    get user specs
  12. 90 '
  13. 100    cls:?:input "Menu Filename to create {no extension} ";mnufile$
  14. 105        if len(mnufile$) > 8 then ?"Too long,  8 characters max.":goto 100    
  15. 130     ?:input "Specify Drive Name for Menu File to Reside {A:,B:,C:} ";drv$
  16. 140        if drv$ = "A:" or drv$ = "B:" or drv$ = "C:" then 145 ELSE 130
  17. 145        mnufile$ = drv$+mnufile$+".BAT"
  18. 150       cls
  19. 160    print "You may now enter the number of choices your menu will contain."
  20. 170    print "NOTE:  If you want your menu choices double spaced, you must"
  21. 180     print "       have no more than 7 choices with a Menu Title, or 9"
  22. 190    print "       choices with no menu title.   If you have your menu"
  23. 200    print "       choices single spaced, you must have no more than 16"
  24. 210    print "       choices with no Menu Title, or no more than 19 without"
  25. 220    print "       a Menu Title."
  26. 230    ?:input "Number of choices ";nmbch
  27. 240 cls
  28. 245 COLOR 0,7:PRINT "Working...":COLOR 7,0
  29. 250 '
  30. 260 '        ***     open file and set up menu
  31. 270 '                  
  32. 280    open mnufile$ for output as #1
  33. 285    print #1,"ECHO OFF"
  34. 290     print #1,"REM    ***    Menu File Created by MENUGEN V2.6"
  35. 300    print #1,"REM    ***"
  36. 310    print #1,":MENU"
  37. 320    PRINT #1,"CLS"
  38. 330    PRINT #1,"ECHO ";CHR$(255)
  39. 340 '
  40. 350    CLS:?:INPUT "Do you wish to have a Menu Title [Y/N] ";yn$
  41. 360    if yn$ = "y" or yn$ = "Y" then input "Title {no quotes} ";title$ 
  42. 370    PRINT #1,"ECHO     ";CHR$(201);:FOR L = 1 TO 60:PRINT #1,CHR$(205);:NEXT L:PRINT #1,CHR$(187)       
  43. 380     LN$ = "ECHO     "+CHR$(186)+"                                                            "+CHR$(186)
  44. 400     IF TITLE$ = "" THEN 420 ELSE 410
  45. 410    PRINT #1,LN$
  46. 411     LET B = LEN(TITLE$)/2:IF B = INT(B) THEN TITLE$=TITLE$+" ":GOTO 411 
  47. 412    :LET TS = 32-B
  48. 419    PRINT #1,"ECHO     ";CHR$(186);:FOR L=1 TO TS:PRINT #1,CHR$(255);:NEXT L:PRINT #1,TITLE$;:FOR L=1 TO TS-3:PRINT #1,CHR$(255);:next l:print #1,CHR$(186)
  49. 420    PRINT #1,LN$
  50. 425    cls:?:?"If Menu Choices contain punctuation such as commas, please enclose"
  51. 426    ?"entire Menu Choice in quotes."
  52. 427    CHRCNT = 64
  53. 429    ?:?"Please keep track of your choices and what order you give them.":?
  54. 430    FOR LNCNT = 1 TO NMBCH
  55. 435        CHRCNT = CHRCNT + 1
  56. 440        print "Menu Choice #";lncnt;" "
  57. 445        INPUT MNCH$
  58. 446        LET CNCH = LEN(MNCH$)
  59. 447        LET CNT = 52 - CNCH 
  60. 450             PRINT #1,"ECHO     ";CHR$(186);"   [";CHR$(CHRCNT);"]  ";MNCH$;:FOR L=1 TO CNT:PRINT #1,CHR$(255);:NEXT L:PRINT #1,CHR$(186)
  61. 455        IF NMBCH > 11 THEN 460 ELSE PRINT #1, LN$
  62. 460    NEXT LNCNT
  63. 461    CHRCNT = CHRCNT + 1
  64. 462    ex = chrcnt
  65. 466    PRINT #1,"ECHO     ";CHR$(186);"   [";CHR$(CHRCNT);"]  ";"Exit";:for l=1 to 48:print #1,chr$(255);:next l:print #1,chr$(186)
  66. 467    chrcnt = chrcnt -1    
  67. 468    print #1,ln$
  68. 469    PRINT #1,"ECHO     ";CHR$(200);:FOR I = 1 TO 60:PRINT #1,CHR$(205);:NEXT I:PRINT #1,CHR$(188)
  69. 470     PRINT #1,"ECHO ";CHR$(255)
  70. 480    PRINT #1,"ECHO                        Please Make Selection..."
  71. 481    PRINT #1,"OPTION"
  72. 485    EL = CHRCNT + 2 
  73. 490    PRINT #1," "
  74. 500    PRINT #1, "IF ERRORLEVEL";EL;"GOTO MENU
  75. 510    PRINT #1, "IF ERRORLEVEL";EX;"GOTO END
  76. 515    EL = EL - 1
  77. 520    FOR ELCNT = 1 TO NMBCH
  78. 530        el = el - 1 
  79. 535        PRINT #1, "IF ERRORLEVEL";EL;"GOTO ";CHR$(EL)
  80. 540    NEXT ELCNT
  81. 550    PRINT #1,"GOTO MENU"
  82. 560    CLS:?
  83. 561    CHRCNT = 64 
  84. 565    for lncnt = 1 TO NMBCH
  85. 566        CHRCNT = CHRCNT + 1
  86. 570        print "Command Use to Load Choice #";lncnt                                           
  87. 580         INPUT CMD$
  88. 590        PRINT #1,":";CHR$(CHRCNT)
  89. 600        PRINT #1,CMD$
  90. 610        PRINT #1,"GOTO MENU"
  91. 620    NEXT LNCNT
  92. 630    PRINT #1,":END"
  93. 640    PRINT #1,"CLS"
  94. 650    CLOSE #1
  95. 660    CLS:?:?"Menu file ";mnufile$;" has been created."
  96. 670    ?:input"Generate Another Menu [Y/N] ";yn$
  97. 680    if yn$ = "Y" or yn$ = "y" then run else cls:end
  98. 690 '
  99. 700 '        ***    done file
  100.