home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / mbug / mbug104.arc / MENU.LBR / MENU.CMD < prev    next >
OS/2 REXX Batch file  |  1979-12-31  |  4KB  |  132 lines

  1. *
  2. *  menu.cmd
  3. *
  4. *  Glenn Story - 6/9/83
  5. *
  6. *  This command will present menus on the screen
  7. *
  8. *  It uses the menu data base
  9. *
  10. use menu index menu
  11. set talk off
  12. set intensity off
  13. store 'MAIN    ' to cur:name
  14. *
  15. *  The following loop is executed once for each menu screen
  16. *
  17. do while 1=1
  18.   erase
  19.   store cur:name+'00' to search:key
  20.   find &search:key
  21.   if #=0
  22.     ? "Invalid menu name"
  23.     ? cur:name
  24.     wait
  25.     store "MAIN    " to cur:name
  26.     loop
  27.   endif
  28.   store trim (desc) to tdescr
  29.   store len (tdescr) to x
  30.   store x/2 to x
  31.   store 40-x to x
  32.   @ 2,70 say cur:name
  33.   @ 3,x say desc
  34. *
  35. *  the following loop is executed once for each menu item
  36. *
  37.   skip
  38.   store 5 to line
  39.   do while (menu:name = cur:name) .and. (.not. eof)
  40.     if .not. *
  41.       @ line, 2 say seq
  42.       @ line, 5 say desc
  43.       store line + 1 to line
  44.     endif
  45.     skip
  46.   enddo
  47. *
  48.   store '??' to cur:seq
  49.   @ line+1, 0 say 'Enter your choice ->' get cur:seq
  50.   read
  51.   if cur:seq = 'GO' .or. cur:seq = 'go'
  52.     erase
  53.     store '        ' to cur:name
  54.     @ 2,10 say "Enter menu name " get cur:name
  55.     read
  56.     store !(cur:name) to cur:name
  57.     loop
  58.   endif
  59.   store cur:name+cur:seq to search:key
  60.   find &search:key
  61.   if (*) .or. (#=0)
  62.     loop
  63.   endif
  64. *
  65.   do case
  66.     case type='M'
  67.       store id to cur:name
  68.       loop
  69.     case type='B'
  70.       do bootscrn
  71.       quit to 'boot'
  72.     case type='E'
  73.       store "'"+id+"'" to xid
  74.       quit to &xid,'dbase redo'
  75.     case type='Q'
  76.       quit
  77.     case type='X'
  78.       set talk on
  79.       set intensity on
  80.       erase
  81.       use
  82.       return
  83.     case type='C'
  84.       store id to xid
  85.       use
  86.       do &xid
  87.       use menu index menu
  88.       set talk off
  89.       set intensity off
  90.       loop
  91.     case type='D'
  92.       do datascrn
  93.       use
  94.       wait
  95.       quit to 'dbase redo'
  96.     case type='I'
  97.       store id to xid
  98.       quit to 'mbasic &xid','dbase redo'
  99.     case type='A'
  100.       store id to maint:cmd
  101.       use
  102.       do maint
  103.       use menu index menu
  104.       set talk off
  105.       set intensity off
  106.       loop
  107.   endcase
  108. enddo
  109. (#=0)
  110.     loop
  111.   endif
  112. *
  113.   do case
  114.     case type='M'
  115.       store id to cur:name
  116.       loop
  117.     case type='B'
  118.       do bootscrn
  119.       quit to 'boot'
  120.     case type='E'
  121.       store "'"+id+"'" to xid
  122.       quit to &xid,'dbase redo'
  123.     case type='Q'
  124.       quit
  125.     case type='X'
  126.       set talk on
  127.       set intensity on
  128.       erase
  129.       use
  130.       return
  131.     case type='C'
  132.       store