home *** CD-ROM | disk | FTP | other *** search
/ Frostbyte's 1980s DOS Shareware Collection / floppyshareware.zip / floppyshareware / GLEN / TOPMENU2.ZIP / MENU2DMO.BAS next >
BASIC Source File  |  1989-12-07  |  25KB  |  755 lines

  1. '========================================================================
  2. '  Documentation For:
  3. '                                 Top.Menu
  4. '                                Version 2.0
  5. '
  6. '    Written By:  Glenn Miller (Not The Band Leader)
  7. '                 Route 8 Box 492-A
  8. '                 Asheboro, North Carolina  27203
  9. '
  10. '            On:  September 5, 1989
  11. '
  12. '
  13. '    This Program is " ShareWare "  share it, abuse it, loose-it..etc...
  14. '
  15. '    BUT!...If you can use it...please register it by sending $15.00
  16. '    to me at the address above. Happy Trails!
  17. '
  18. '========================================================================
  19. '
  20. 'Top.Menu was created as an easy means to set up a menu operated system,
  21. 'without having to deal with passing "zillions" of varables to a subroutine.
  22. '
  23. 'It is in NO way intended to replace any of the fine utilities available
  24. 'but to be considered as a simpler (and less definable) substitute.
  25. '
  26. 'The following program "MENU2DMO" was written using Top.Menu so you can
  27. 'see how to setup your data for Top.Menu.
  28. '
  29. 'Okay..Enough of that..Now on to this....
  30. '
  31. '
  32. 'As you can see in the DECLARE statement on the 1st line of this program there
  33. 'are only 11 varables that need to be passed to the subroutine..
  34. '
  35. 'and here they are.....
  36. '
  37. '
  38. '  SEL   Returns containing the number of the selection that was selected.
  39. '
  40. '  SEL$  an arry of strings containing all the menu and submenu selections
  41. '        as well as the help line (line 25)
  42. '
  43. '  FGC ......... Fore Ground Color of the Menus (0-15)
  44. '
  45. '  BGC ......... Back Ground Color of the Menus (0-15)
  46. '
  47. '  HLC ......... High Lite Color of the Menus   (0-31)
  48. '
  49. '  Top.Line .... The Top starting Row Location of the Menu (0-24)
  50. '
  51. '  Dis.Time .... A switch to Turn the Time Display On (1=on)
  52. '                  Time is displayed in a 12 hr format with Am/Pm
  53. '
  54. '  Dis.Date .... A switch to Turn the Date Display On (1=on)
  55. '
  56. '  Scn.Blank ... A switch to enable Automatic Screen Blanking (1=on)
  57. '                  When enabled, the screen will turn off if no keys
  58. '                  are pressed within 3 minutes.
  59. '
  60. '  MSG$ ........ A string that will be centered on the Top Line of the Menu.
  61. '                  If MSG$=""  No Message is displayed on the top line.
  62. '
  63. '  BGC$ ........ The character thats used to clear the screen. (0-255)
  64. '             
  65. '
  66. '
  67. 'Heres the Details..........
  68. '
  69. 'This Menu system is a bar type with sub menus.
  70. 'There can be up to 9 selections per sub menu.
  71. 'There can be as many Selections on the Top Bar That you can fit on it
  72. 'and these DO NOT have to be the same length.
  73. '
  74. '
  75. 'The KEY to this menu system is the SEL$() array.
  76. '
  77. 'This array should be dimensioned as DIM SEL$(x,10) in the start of your
  78. 'program, Where x=number of Top Bar Selections you will have.
  79. '
  80. 'Array SEL$(x,0) needs to contain the Selection Names For the Top Bar.
  81. '
  82. 'Arrays SEL$(x,1) thru SEL$(x,9) contain the Selection Names For the
  83. 'sub menu under the SEL$(x,0) Name.
  84. '
  85. 'Array SEL$(x,10) needs to contain the HELP message that will be displayed
  86. 'on line 25. (if you want one.)
  87. '
  88. '
  89. 'Example:  To Set up a Selection called "DOS" and have 3 sub selections
  90. '          called:
  91. '
  92. '                 Exit To Dos
  93. '                 Shell To Dos
  94. '                 Enter Dos Commands
  95. '
  96. '         with a Help Message of:  What Do You Want!
  97. '
  98. 'The arrays would be:
  99. '
  100. '         SEL$(0,0)=" Dos "
  101. '         SEL$(0,1)=" Exit To Dos "
  102. '         SEL$(0,2)=" Shell To Dos "
  103. '         SEL$(0,3)=" Enter Dos Commands "
  104. '         SEL$(0,4)=""
  105. '         SEL$(0,10)="What Do You Want!"
  106. '
  107. '
  108. ' !!!!! NOTICE !!!!!
  109. '
  110. '       See How SEL$(0,4)=""
  111. '
  112. '       You MUST always define the next array AFTER the last one you want
  113. '       to use as "" (Nul), UNLESS the last one is number 9....
  114. '
  115. '       This makes it work right!..Okay..OK
  116. '
  117. '
  118. 'Define all the Selections you need by this method.
  119. 'Of course you will change to the next array..ie 1,2,3...etc. instead of 0.
  120. '
  121. '
  122. '
  123. 'Running Top.Menu ........
  124. '
  125. 'Once you have setup all the SEL$() your ready to go.
  126. '
  127. 'The Top Bar Selections can be selected by 2 different ways.....
  128. '
  129. ' 1 - Use The Left-Right cursor Keys to move to the desired selection.
  130. ' 2 - Press the Key of the 1st letter of a selection.
  131. '
  132. '     Note: If more than one selection has the same starting letter the
  133. '           program will move to the next selection when that same letter
  134. '           key is pressed again. I call this a "round-robin" display but I
  135. '           really dont know why.
  136. '
  137. '
  138. 'The Sub selections can be selected 2 different ways...
  139. '
  140. ' 1 - Use the Up-Down cursor keys to move to the desired selection and press
  141. '     the Enter Key.
  142. ' 2 - Enter the Number of the selection.(no enter key needed)
  143. '
  144. '
  145. '
  146. '
  147. 'What you get back for all your trouble........
  148. '
  149. 'The SEL variable returns to you with a number containing the Selection that
  150. 'was selected. (wheeeee...)
  151. '
  152. ' If the user pressed the "Esc" Key SEL will be -1. (neg.1)
  153. ' else heres what you get.
  154. '
  155. '
  156. ' The number is determined by: (Top Bar Selection Number *10) + selected sub#
  157. '
  158. 'Example:  If the user selected item# 5 from the first Top Bar selection the
  159. '          number would be: 5.
  160. '
  161. '          First Top Bar number = 0     SEL$(0,x)
  162. '
  163. '          0 * 10 = 0  + 5      = 5
  164. '
  165. '
  166. '    If item# 5 was selected from the 5th Top Bar the number would be: 45
  167. '
  168. '          5th  Top Bar Number  = 4    SEL$(4,x)
  169. '
  170. '          4 * 10 = 40 + 5      = 45
  171. '
  172. '
  173. '
  174. ' To include the Top.Menu routine Source Code in your Program;
  175. '
  176. ' 1st - Create/Load YOUR program into Qbasic.
  177. ' 2nd - Select "Merge..." under the "File" selection of Qbasic.
  178. ' 3rd - Select "TOPMENU2.BAS" as the File Name To Be Merged.
  179. '
  180. ' You should now be able to "View" Top.Menu by viewing the SUBs.
  181. '
  182. ' Example: You can Try this using the "MENU2DMO.bas".
  183. '
  184. ' 1.- Start Quickbasic
  185. ' 2.- Load in MENU2DMO.BAS (do not load the TOPMENU2.QLB library)
  186. ' 3.- Merge TOPMENU2.BAS
  187. ' 4.- The code is now included in MENU2DMO.BAS
  188. ' 5.- Select Top.Menu in "View" SUBs
  189. '
  190. '
  191. '
  192. ' Thats about it for now....so....
  193. ' Waiter!.....TOP.MENU......please!
  194. '========================================================================
  195.  
  196. DECLARE SUB Top.Menu (sel!, sel$(), fgc!, bgc!, hlc!, topline!, dis.time!, dis.date!, scn.blank!, msg$, bgc$)
  197.  
  198. DIM sel$(9, 10)                 'remember this?
  199.  
  200. '=======================================================================
  201. ' * * * * * * * * DEFINE SEL$() ARRAY WITH MENU DATA * * * * * * * * * *
  202. '=======================================================================
  203.  
  204. '=======================================================================
  205. 'Define Top Row Selection Names (x,0)
  206. '=======================================================================
  207. sel$(0, 0) = " Info "
  208. sel$(1, 0) = " Change "
  209. sel$(2, 0) = " Dos "
  210. sel$(3, 0) = " Set Time "
  211. sel$(4, 0) = " HELP! "
  212. sel$(5, 0) = " Set Date "
  213. sel$(6, 0) = " Quit "
  214. sel$(7, 0) = " Directory "
  215. sel$(8, 0) = " Files "
  216.  
  217. '=======================================================================
  218. 'Define Help Messages (x,10)
  219. '=======================================================================
  220. sel$(0, 10) = "Display Information About TOP.MENU"
  221. sel$(1, 10) = "Make Changes In TOP.MENU's Subroutine Program Variables"
  222. sel$(2, 10) = "Select The Dos Function You Want To Do"
  223. sel$(3, 10) = "Press ENTER To Set Time"
  224. sel$(4, 10) = "Press ENTER To Display Help"
  225. sel$(5, 10) = "Press ENTER To Set Date"
  226. sel$(6, 10) = "Press ENTER To Quit This Demo"
  227. sel$(7, 10) = "Select The Directory To Be Displayed"
  228. sel$(8, 10) = "Press ENTER To Display The Files and Description"
  229.  
  230. '=======================================================================
  231. 'Define Sub Selections For Top Selection 'INFO'
  232. '=======================================================================
  233. sel$(0, 1) = " About The Program "
  234. sel$(0, 2) = " How Its Used      "
  235. sel$(0, 3) = " Its Heritage      "
  236. sel$(0, 4) = " HOW TO BUY IT!    "
  237. sel$(0, 5) = ""
  238.  
  239. '=======================================================================
  240. 'Define Sub Selections For Top Selection 'CHANGE'
  241. '=======================================================================
  242. sel$(1, 1) = " Back Ground Color...........(BGC) "
  243. sel$(1, 2) = " Fore Ground Color...........(FGC) "
  244. sel$(1, 3) = " High-Lite Color.............(HLC) "
  245. sel$(1, 4) = " Back Ground Character......(BGC$) "
  246. sel$(1, 5) = " Top Row Message............(MSG$) "
  247. sel$(1, 6) = " Top Position of Menu....(TopLine) "
  248. sel$(1, 7) = " Time Display on/off....(Dis.Time) "
  249. sel$(1, 8) = " Date Display on/off....(Dis.Date) "
  250. sel$(1, 9) = " Screen Blank on/off...(Scn.Blank) "
  251.  
  252. '=======================================================================
  253. 'Define Sub Selections For Top Selection 'DOS'
  254. '=======================================================================
  255. sel$(2, 1) = " Return To Dos       "
  256. sel$(2, 2) = " Shell To Dos        "
  257. sel$(2, 3) = " Show Dos Version    "
  258. sel$(2, 4) = " Enter a Dos Command "
  259. sel$(2, 5) = ""
  260.  
  261. '=======================================================================
  262. 'No Sub Selections For Top Selection 3,4,5,6
  263. '=======================================================================
  264. sel$(3, 1) = ""
  265. sel$(4, 1) = ""
  266. sel$(5, 1) = ""
  267. sel$(6, 1) = ""
  268.  
  269. '=======================================================================
  270. 'Define Sub Selections For Top Selection 'DIRECTORY'
  271. '=======================================================================
  272. sel$(7, 1) = " Display Directory For The Current Drive "
  273. sel$(7, 2) = " Display Directory For Drive C:\         "
  274. sel$(7, 3) = " Display Directory For Drive A:\         "
  275. sel$(7, 4) = " Display Directory For Drive B:\         "
  276. sel$(7, 5) = ""
  277.  
  278. '=======================================================================
  279. 'No Sub Selections For Top Selection 8 'FILES'
  280. '=======================================================================
  281. sel$(8, 1) = ""
  282.  
  283. '=======================================================================
  284. 'Define Top Row Message
  285. '=======================================================================
  286. msg$ = " TOP.MENU ShareWare V2.0 (c) Glenn Miller 1988,89 "
  287.  
  288. '=======================================================================
  289. 'Define Colors
  290. '=======================================================================
  291.        fgc = 1          'fore ground color
  292.        bgc = 7          'back ground color
  293.        hlc = 15         'high lite color
  294.  
  295. '=======================================================================
  296. 'Set Location of Top of Menu to row 2 of the display
  297. '=======================================================================
  298.        topline = 1
  299.  
  300. '=======================================================================
  301. 'Turn ON Time and Date Displays 1=on
  302. '=======================================================================
  303.        dis.time = 1
  304.        dis.date = 1
  305.  
  306. '=======================================================================
  307. 'Turn OFF Automatic Screen Blanking  0=Off
  308. '=======================================================================
  309.        scn.blank = 0
  310.  
  311. '=======================================================================
  312. 'Setup Back ground Character as # 177
  313. '=======================================================================
  314.        bgc$ = CHR$(177)
  315.  
  316.  
  317. '=======================================================================
  318. 'Make CALL to Top.Menu and wait for its return,
  319. 'comes back with selection# in SEL.
  320. '=======================================================================
  321. begin:
  322. CALL Top.Menu(sel, sel$(), fgc, bgc, hlc, topline, dis.time, dis.date, scn.blank, msg$, bgc$)
  323.  
  324.  
  325. '=======================================================================
  326. ' Do the desired Selection
  327. ' if its 'Esc' then loop to begin
  328. ' else do the desired function
  329. '======================================================================='
  330. '
  331.       IF sel = -1 THEN GOTO begin
  332.  
  333.       SELECT CASE sel
  334.  
  335.          CASE IS = 1
  336.                 RESTORE About.pgm1
  337.                 x = 8
  338.                 GOSUB display.data
  339.                 RESTORE About.pgm2
  340.                 x = 8
  341.                 GOSUB display.data
  342.                 GOTO begin
  343.  
  344.          CASE IS = 2
  345.                 RESTORE how1
  346.                 x = 9
  347.                 GOSUB display.data
  348.                 GOTO begin
  349.  
  350.          CASE IS = 3
  351.                 RESTORE her1
  352.                 x = 10
  353.                 GOSUB display.data
  354.                 GOTO begin
  355.  
  356.          CASE IS = 4
  357.                 RESTORE buy1
  358.                 x = 11
  359.                 GOSUB display.data
  360.                 GOTO begin
  361.  
  362.          CASE IS = 11
  363.                 RESTORE bgc1:
  364.                 x = 18
  365.                 GOSUB request
  366.                 LOCATE 19, 45
  367.                 PRINT bgc
  368.                 LOCATE 21, 10
  369.                 INPUT "--> ", a$
  370.                 IF a$ = "" THEN GOTO begin
  371.                 a = VAL(a$)
  372.                 IF a < 0 OR a > 15 THEN GOTO begin
  373.                 bgc = a
  374.                 GOTO begin
  375.  
  376.           CASE IS = 12
  377.                 RESTORE fgc1:
  378.                 x = 18
  379.                 GOSUB request
  380.                 LOCATE 19, 45
  381.                 PRINT fgc
  382.                 LOCATE 21, 10
  383.                 INPUT "--> ", a$
  384.                 IF a$ = "" THEN GOTO begin
  385.                 a = VAL(a$)
  386.                 IF a < 0 OR a > 15 THEN GOTO begin
  387.                 fgc = a
  388.                 GOTO begin
  389.  
  390.           CASE IS = 13
  391.                 RESTORE hlc1:
  392.                 x = 18
  393.                 GOSUB request
  394.                 LOCATE 19, 45
  395.                 PRINT hlc
  396.                 LOCATE 21, 10
  397.                 INPUT "--> ", a$
  398.                 IF a$ = "" THEN GOTO begin
  399.                 a = VAL(a$)
  400.                 IF a < 0 OR a > 31 THEN GOTO begin
  401.                 hlc = a
  402.                 GOTO begin
  403.  
  404.           CASE IS = 14
  405.                 RESTORE back1:
  406.                 x = 18
  407.                 GOSUB request
  408.                 LOCATE 19, 43
  409.                 PRINT CHR$(34) + bgc$ + CHR$(34) + " Character #"; ASC(bgc$);
  410.                 LOCATE 22, 10
  411.                 INPUT "--> ", a$
  412.                 IF a$ = "" THEN GOTO begin
  413.                 a = VAL(a$)
  414.                 IF a < 0 OR a > 255 THEN GOTO begin
  415.                 bgc$ = CHR$(a)
  416.                 GOTO begin
  417.             
  418.           CASE IS = 15
  419.                 RESTORE msg1:
  420.                 x = 18
  421.                 GOSUB request
  422.                 LOCATE 20, 10
  423.                 INPUT "--> ", msg$
  424.                 GOTO begin
  425.  
  426.  
  427.           CASE IS = 16
  428.                 RESTORE top1:
  429.                 x = 18
  430.                 GOSUB request
  431.                 LOCATE 19, 45
  432.                 PRINT topline
  433.                 LOCATE 21, 10
  434.                 INPUT "--> ", a$
  435.                 IF a$ = "" THEN GOTO begin
  436.                 a = VAL(a$)
  437.                 IF a < 0 OR a > 9 THEN GOTO begin
  438.                 topline = a
  439.                 GOTO begin
  440.  
  441.  
  442.           CASE IS = 17
  443.                 RESTORE time1:
  444.                 x = 18
  445.                 GOSUB request
  446.                 LOCATE 19, 55
  447.    IF dis.time <> 0 THEN PRINT "OFF": dis.time = 0 ELSE PRINT "ON ": dis.time = 1
  448.                 a$ = INPUT$(1)
  449.                 GOTO begin
  450.  
  451.           CASE IS = 18
  452.                 RESTORE date1:
  453.                 x = 18
  454.                 GOSUB request
  455.                 LOCATE 19, 55
  456.    IF dis.date <> 0 THEN PRINT "OFF": dis.date = 0 ELSE PRINT "ON ": dis.date = 1
  457.                 a$ = INPUT$(1)
  458.                 GOTO begin
  459.  
  460.           CASE IS = 19
  461.                 RESTORE blkscn1:
  462.                 x = 17
  463.                 GOSUB request
  464.                 LOCATE 18, 59
  465.    IF scn.blank <> 0 THEN PRINT "OFF": scn.blank = 0 ELSE PRINT "ON ": scn.blank = 1
  466.                 a$ = INPUT$(1)
  467.                 GOTO begin
  468.  
  469.           CASE IS = 21, 61
  470.                 CLS
  471.                 LOCATE 10, 25
  472.                 PRINT "Thanks For Trying TOP.MENU !"
  473.                 SYSTEM
  474.  
  475.           CASE IS = 22, 24
  476.                 COLOR 7, 0
  477.                 CLS
  478.                 LOCATE 1, 1
  479.                 PRINT "Enter EXIT To Return To TOP.MENU Demo"
  480.                 SHELL
  481.                 GOTO begin
  482.  
  483.           CASE IS = 23
  484.                 COLOR 7, 0
  485.                 CLS
  486.                 LOCATE 10, 1
  487.                 PRINT "You Current Operating System Is:"
  488.                 SHELL "ver"
  489.                 PRINT
  490.                 PRINT "Press Any Key To Return To TOP.MENU...."
  491.                 a$ = INPUT$(1)
  492.                 GOTO begin
  493.  
  494.           CASE IS = 31
  495.                 COLOR 7, 0
  496.                 CLS
  497.                 LOCATE 10, 1
  498.                 SHELL "time"
  499.                 GOTO begin
  500.                 
  501.           CASE IS = 41
  502.                 RESTORE how1
  503.                 x = 9
  504.                 GOSUB display.data
  505.                 GOTO begin
  506.  
  507.           CASE IS = 51
  508.                 COLOR 7, 0
  509.                 CLS
  510.                 LOCATE 10, 1
  511.                 SHELL "date"
  512.                 GOTO begin
  513.             
  514.             
  515.           CASE IS = 71
  516.                 COLOR 7, 0
  517.                 CLS
  518.                 SHELL "dir /p"
  519.                 COLOR 31, 0
  520.                 PRINT "Press any key..."
  521.                 a$ = INPUT$(1)
  522.                 GOTO begin
  523.             
  524.           CASE IS = 72
  525.                 COLOR 7, 0
  526.                 CLS
  527.                 SHELL "dir c:\*.* /p"
  528.                 COLOR 31, 0
  529.                 PRINT "Press any key..."
  530.                 a$ = INPUT$(1)
  531.                 GOTO begin
  532.             
  533.           CASE IS = 73
  534.                 COLOR 7, 0
  535.                 CLS
  536.                 SHELL "dir a:\*.* /p"
  537.                 COLOR 31, 0
  538.                 PRINT "Press any key..."
  539.                 a$ = INPUT$(1)
  540.                 GOTO begin
  541.             
  542.           CASE IS = 74
  543.                 COLOR 7, 0
  544.                 CLS
  545.                 SHELL "dir b:\*.* /p"
  546.                 COLOR 31, 0
  547.                 PRINT "Press any key..."
  548.                 a$ = INPUT$(1)
  549.                 GOTO begin
  550.             
  551.           CASE IS = 81
  552.                 RESTORE disfiles:
  553.                 x = 9
  554.                 GOSUB display.data
  555.                 GOTO begin
  556.             
  557.             
  558.           CASE ELSE
  559.                 GOTO begin
  560.       END SELECT
  561.  
  562.  
  563.  
  564. display.data:
  565.             p$ = " press a key "
  566.             GOTO dis2:
  567.  
  568. request:    p$ = STRING$(13, "═")
  569.     
  570. dis2:       READ a
  571.             LOCATE x, 8
  572.             COLOR hlc, fgc
  573.             PRINT CHR$(201) + STRING$(63, "═") + CHR$(187);
  574.             
  575.             FOR i = x + 1 TO x + a
  576.              LOCATE i, 7
  577.             COLOR 0, 0
  578.              PRINT " ";
  579.             COLOR hlc, fgc
  580.              PRINT CHR$(186) + SPACE$(63) + CHR$(186);
  581.             NEXT
  582.             LOCATE i, 7
  583.             COLOR 0, 0
  584.              PRINT " ";
  585.             COLOR hlc, fgc
  586.             PRINT CHR$(200) + STRING$(2, "═") + p$ + STRING$(48, "═") + CHR$(188);
  587.             i = i + 1
  588.              LOCATE i, 7
  589.             COLOR 0, 0
  590.              PRINT SPACE$(65);
  591.   
  592.             COLOR bgc, fgc
  593. dis1:       READ a$
  594.          IF a$ = "stop" THEN
  595.          IF p$ = STRING$(13, "═") THEN RETURN
  596.          a$ = INPUT$(1)
  597.          RETURN
  598.           
  599.          END IF
  600.             x = x + 1
  601.             LOCATE x, 10
  602.             PRINT a$;
  603.             GOTO dis1
  604.  
  605. About.pgm1:
  606. DATA   13
  607. DATA   "TOP.MENU is a routine to create a 'Fast' Menu System. Its"
  608. DATA   "designed to be used as a routine in YOUR Quick Basic 4.0 or"
  609. DATA   "later program. (This Demo was created around it.) It allows"
  610. DATA   "YOU to quickly and easily create a MENU driven program"
  611. DATA   "WITHOUT any of the hassle of designing it yourself, leaving"
  612. DATA   "YOU more time to work on the very thing you started writing"
  613. DATA   "your program for in the first place!"
  614. DATA   "             >>>>>    YOUR APPLICATION   <<<<<"
  615. DATA   ""
  616. DATA   "TOP.MENU V2.0. is a complete Shareware version, nothing has
  617. DATA   "been left-out, no surprise messages will show up, and the"
  618. DATA   "program will not self-destruct in 30 days even if you don't"
  619. DATA   "             >>>>>       PAY FOR IT      <<<<<"
  620. DATA   "stop"
  621.  
  622. About.pgm2:
  623. DATA  13
  624. DATA  "TOP.MENU is written in 100% Qbasic. There are no special"
  625. DATA  "routines or machine calls used. The source code can be"
  626. DATA  "included in your code, and modified any way you want."
  627. DATA  "A 'CALL'to TOP.MENU will generate a Menu simiular to the"
  628. DATA  "one shown above. Its simple to interface to TOP.MENU. Your"
  629. DATA  "menu data is setup in an array, and passed to the routine."
  630. DATA  "Variables allow you to define colors, location, top line"
  631. DATA  "message, help messages, display date and/or time, and the"
  632. DATA  "character used as the background behind the menu. When a"
  633. DATA  "selection is made by the user, the routine returns with the"
  634. DATA  "number of that selection. The 'Change' selection above"
  635. DATA  "allows you to change the variables in this Demo so you"
  636. DATA  "can see what effect they have on the menu."
  637. DATA  "stop"
  638.  
  639. how1:
  640. DATA  11
  641. DATA  "TOP.MENU is very 'User Friendly'. The Selections across the"
  642. DATA  "top display can be selected using the left/right cursor"
  643. DATA  "keys, or by pressing the key of the first letter of the"
  644. DATA  "desired selection. If theres more than one selection with"
  645. DATA  "the same starting letter, pressing the same letter again"
  646. DATA  "will move to the next selection."
  647. DATA  "The Sub selections can be selected by using the up/down"
  648. DATA  "cursor keys and pressing the ENTER key, or by pressing the
  649. DATA  "number key for the desired selection. If the number key is"
  650. DATA  "used, no ENTER key is necessary. This method allows almost"
  651. DATA  "any selection to be made with only a couple of key strokes."
  652. DATA  "stop"
  653.  
  654. her1:
  655. DATA  11
  656. DATA  "TOP.MENU was created out of desperation (on my part) to solve"
  657. DATA  "a problem I was facing. Looking around at all the very fine"
  658. DATA  "utilites for Qbasic programmers, I was unable to find a"
  659. DATA  "simple to use menu system. I needed something that could run"
  660. DATA  "on any MS Dos machine without reguard for the type of display"
  661. DATA  "in use. 'Window' routines are nice but there was no way I"
  662. DATA  "could alter the source code to adjust it just the way I like"
  663. DATA  "it! Most other utilites required me to LINK with a HUGE"
  664. DATA  "library file just to get the few routines I wanted, making my"
  665. DATA  "program a MONSTER. TOP.MENU occupies less than 11,000 bytes"
  666. DATA  "when included in YOUR program. So, Waiter!..TOP.MENU...please!"
  667. DATA  "stop"
  668.  
  669. buy1:
  670. DATA  10
  671. DATA  "TOP.MENU V2.0 is ShareWare. Please pass it along!. Take a few"
  672. DATA  "weeks or months to try it out. TRY IT IN YOUR PROGRAMS, see"
  673. DATA  "how it handles the 'turns', kick the tires, etc.. If you"
  674. DATA  "feel it is of use to you, then please register your copy"
  675. DATA  "by sending $15.00 (or whatever you think is fair) to:"
  676. DATA  ""
  677. DATA  " Glenn Miller  *  Route 8 Box 492-A  *  Asheboro, NC  27203"
  678. DATA  ""
  679. DATA  "If you have any questions/comments/etc., please feel free to"
  680. DATA  "contact me at the address above. Happy Trails.
  681. DATA  "stop"
  682.  
  683.  
  684. bgc1:
  685. DATA  3
  686. DATA  "Current Back Ground Color Number is"
  687. DATA  "Enter a NEW Color between 0 and 15, or ENTER for No Change."
  688. DATA  "stop"
  689.  
  690. fgc1:
  691. DATA  3
  692. DATA  "Current Fore Ground Color Number is"
  693. DATA  "Enter a NEW Color between 0 and 15, or ENTER for No Change."
  694. DATA  "stop"
  695.  
  696. hlc1:
  697. DATA  3
  698. DATA  "Current High Light  Color Number is"
  699. DATA  "Enter a NEW Color between 0 and 31, or ENTER for No Change."
  700. DATA  "stop"
  701.  
  702. msg1:
  703. DATA  2
  704. DATA  "Enter a NEW Top Line Message."
  705. DATA  "stop"
  706.  
  707. time1:
  708. DATA  1
  709. DATA  "        Press a Key To turn The TIME Display"
  710. DATA  "stop"
  711.  
  712. date1:
  713. DATA  1
  714. DATA  "        Press a Key To turn The DATE Display"
  715. DATA  "stop"
  716.  
  717. top1:
  718. DATA  3
  719. DATA  "Current Top Position of the Menu is"
  720. DATA  "Enter a NEW Number between 0 and 9, or ENTER for No Change."
  721. DATA  "stop"
  722.  
  723. back1:
  724. DATA  4
  725. DATA  "Current Back Ground Character is"
  726. DATA  "Enter a NEW Character Number, or ENTER for No Change."
  727. DATA  "May I suggest: 176-182, 219-255,"
  728. DATA  "stop"
  729.  
  730. blkscn1:
  731. DATA  5
  732. DATA  "   Press a Key To turn Automatic Screen Blanking "
  733. DATA  " When Screen Blanking is on, the display will turn off if"
  734. DATA  " no key is pressed within 3 minutes. To see this work, turn"
  735. DATA  " Screen Blanking ON, presss a key to return to the menu.."
  736. DATA  " Then set back a relax for 3 minutes.
  737. DATA  "stop"
  738.  
  739.  
  740. disfiles:
  741. DATA  11
  742. DATA  "MENU2DMO.EXE ...This Demo program"
  743. DATA  "MENU2DMO.BAS ...Source Code For MENU2DMO.EXE"
  744. DATA  "TOPMENU2.BAS ...Source Code For TOP.MENU subroutine"
  745. DATA  "TOPMENU2.QLB ...QuickBasic Library File of TOP.MENU"
  746. DATA  "TOPMENU2.LIB ...Linkable Library File of TOP.MENU"
  747. DATA  ""
  748. DATA  "The Documentation For TOP.MENU is located in the Beginning"
  749. DATA  "Comments of MENU2DMO.BAS"
  750. DATA  ""
  751. DATA  "If you 'share' this routine please make sure all of these"
  752. DATA  "Files are included."
  753. DATA  "stop"
  754.  
  755.