home *** CD-ROM | disk | FTP | other *** search
/ Media Share 9 / MEDIASHARE_09.ISO / clarion / tkmengen.zip / BUILD.CLA < prev    next >
Text File  |  1990-03-23  |  20KB  |  673 lines

  1.            MEMBER('MAKEMENU')
  2.  
  3.  
  4. BUILDING    PROCEDURE
  5.  
  6. TLINE           STRING(80)
  7. LROW           STRING(2)
  8. LCOL           STRING(2)
  9. LSHADOW           STRING(2)
  10. LCOUNT           BYTE
  11. LSUBCNT           BYTE
  12. LMENUNO           BYTE
  13. LMENUTITLE     STRING(25)
  14. LMCHOICE       STRING(15)
  15. LMMENU           STRING(15)
  16. LMAXLEN           BYTE,DIM(15)
  17. LCOLNO           BYTE
  18. LCOLLOC           BYTE,DIM(15)
  19. ibMaxNo           BYTE
  20. s2MaxNo           STRING(2)
  21.  
  22.  
  23. SCREEN         SCREEN      WINDOW(1,80),AT(25,1),HUE(9,7)
  24. PLINE1           ROW(1,1)      STRING(80)
  25.          .
  26.  
  27.  
  28. DosFile           DOS,ASCII,NAME(s12DFName)
  29.          RECORD
  30. PLINE          STRING(255)
  31.          END
  32.            END
  33.  
  34.   CODE
  35.   IF s8DFName ='' OR s12DFName = '' THEN
  36.     SHOW(2,1,'You must first design your menu details ........')
  37.     BEEP(400,30)
  38.     BEEP(200,50)
  39.     BEEP(300,20)
  40.     BEEP(550,50)
  41.     BEEP(250,150)
  42.     RETURN
  43.   END
  44.   s12dfname=CLIP(s12DFName)&'.CLA'
  45.   OPEN(DosFile)
  46.   IF ERRORCODE() = 2         !IF NOT FOUND, THEN CREATE
  47.     CREATE(DosFile)
  48.   ELSE
  49.     EMPTY(DosFile)
  50.   END
  51.  
  52.   SHOW(2,1,'Building Pulldown Menu according to your design ...........')
  53.   OPEN(SCREEN)
  54.   OPEN(MENU)
  55.   PLINE='!=========================================== PULLDOWN MENU ======'
  56.   ADD(DosFile)
  57.   PLINE1=PLINE
  58.  
  59.   PLINE='           MEMBER(' & CHR(39)& CLIP(MEM:PROGNAME) & CHR(39)& ')' !'\CLARION\DEVELOP\BEST' & CHR(39) & ' )'
  60.   ADD(DOSFile)
  61.   PLINE1=PLINE
  62.   PLINE=CLIP(s8dfName)
  63.   IF LEN(CLIP(PLINE))>=14
  64.      PLINE=CLIP(PLINE)&'  '&'PROCEDURE'
  65.   ELSE
  66.      PLINE=CLIP(PLINE)&ALL(' ',14-LEN(CLIP(PLINE)))&'PROCEDURE'
  67.   END
  68.   ADD(DosFile)
  69.   PLINE1=PLINE
  70.   PLINE=''
  71.   ADD(DosFile)
  72.   PLINE1=PLINE
  73.  
  74.   PLINE='Esc_Key       EQUATE(256)                         ! Escape'
  75.    ADD(DosFile)
  76.   PLINE1=PLINE
  77.   PLINE='eTrue         EQUATE(1)                           ! Logical eTrue'
  78.    ADD(DosFile)
  79.   PLINE1=PLINE
  80.   PLINE='eFalse        EQUATE(0)                           ! Logical eFalse'
  81.    ADD(DosFile)
  82.   PLINE1=PLINE
  83.   PLINE='Left_key      EQUATE(265)                         ! Cursor left'
  84.    ADD(DosFile)
  85.   PLINE1=PLINE
  86.   PLINE='Right_Key     EQUATE(266)                         ! Cursor right'
  87.    ADD(DosFile)
  88.   PLINE1=PLINE
  89.  
  90.   PLINE=''
  91.   ADD(DosFile)
  92.   PLINE1=PLINE
  93.   PLINE=ALL(' ',30)&'!================= Screen for MainMenu'
  94.   ADD(DosFile)
  95.   PLINE1=PLINE
  96.  
  97.   PLINE='mainmenu     SCREEN    WINDOW(25,80),AT(1,1),PRE(mai),HUE(15,1)'
  98.   ADD(DosFile)
  99.   PLINE1=PLINE
  100. ! PLINE='   INCLUDE('&CHR(39) & '\CLARION\DEVELOP\drsMENU.CLA' & CHR(39) & ')'
  101.   PLINE='   INCLUDE('&CHR(39) & CLIP(MEM:SCRNAME) & '.CLA'&CHR(39) &')'
  102.   ADD(DosFile)
  103.   PLINE1=PLINE
  104.   PLINE=ALL(' ',16)&'ROW(1,1)   PAINT(1,80),HUE(0,3)'
  105.   ADD(DosFile)
  106.   PLINE1=PLINE
  107.  
  108.  
  109.   PLINE=ALL(' ',16)&'ROW(25,1) PAINT(1,80),HUE(0,3)'
  110. ! PLINE='ScrTitle         COL(1)   STRING(80)'
  111.   ADD(DosFile)
  112.   PLINE1=PLINE                 !     '                                '
  113.   PLINE=ALL(' ',16) & 'ROW(25,9)STRING(<39>' & '│<123>5<125>│<123>50<125>│<123>9<125>│<39>'& ')'
  114.   ADD(DosFile)
  115.  
  116.   PLINE1=PLINE
  117.   PLINE=ALL(' ',16)&'ROW(25,16) MENU(@S50),USE(s80MainCh),SEL(0,3),HUE(0,3),IMM,REQ'
  118.   ADD(DosFile)
  119.   PLINE1=PLINE
  120.   SET(MENU,1)
  121.   LMENUNO = 0
  122.   LCOLNO = 2
  123.   LOOP UNTIL EOF(MENU)
  124.     NEXT(MENU)
  125.     LMENUNO += 1
  126.     LMAXLEN[LMENUNO] = LEN(' '&CLIP(MEN:MAINMENU)&' ')
  127.     LCOLLOC[LMENUNO] = LCOLNO
  128.     LCOUNT=1
  129.     LOOP WHILE CLIP(SUBMENU[LCOUNT])>'!'
  130.       IF LMAXLEN[LMENUNO] < LEN(' '&CLIP(SUBMENU[LCOUNT])&' ')
  131.     LMAXLEN[LMENUNO] = LEN(' '&CLIP(SUBMENU[LCOUNT])&' ')
  132.       END
  133.       LCOUNT += 1
  134.     END
  135.     TLINE=' '&CLIP(MEN:MAINMENU)&' '
  136.     LCOL=FORMAT(LCOLNO,@P##P)
  137.     PLINE=ALL(' ',16)&'ROW(1,'&LCOL&')    STRING('&'<39>'&CLIP(TLINE)&' <39>), SEL(15,4)             |'
  138.     ADD(DosFile)
  139.   PLINE1=PLINE
  140.     TLINE=' '&CLIP(MEN:MDESC)&' '
  141.     PLINE=ALL(' ',31)&'DESC('&'<39>'&CLIP(TLINE)&' <39>)'
  142.     ADD(DosFile)
  143.   PLINE1=PLINE
  144.     LCOLNO = LCOLNO+2+LMAXLEN[LMENUNO]
  145.   END
  146.  
  147.   PLINE=ALL(' ',18)&'END'
  148.   ADD(DosFile)
  149.   PLINE1=PLINE
  150.   PLINE=ALL(' ',16)&'END'
  151.   ADD(DosFile)
  152.   PLINE1=PLINE
  153.   PLINE=''
  154.   ADD(DosFile)
  155.   PLINE1=PLINE
  156.  
  157.   ibMaxNo = LMENUNO
  158.   s2MaxNo = FORMAT(ibMaxNo,@P##P)
  159.  
  160.   LMENUNO = 0
  161.   SET(MENU,1)
  162.   LOOP UNTIL EOF(MENU)
  163.     NEXT(MENU)
  164.     LMENUNO += 1
  165.     LMCHOICE='s80'&LEFT(MEN:MAINMENU,4)&'Ch'
  166.     LCOUNT=1
  167.     LOOP WHILE CLIP(SUBMENU[LCOUNT])>'!'
  168.       LCOUNT += 1
  169.     END
  170.     LCOUNT -= 1
  171.     LROW = FORMAT(4+LCOUNT,@P##P)
  172.  
  173.     PLINE=ALL(' ',30)&'!==================== Screen for '&CLIP(MEN:MAINMENU)&' ====='
  174.     ADD(DosFile)
  175.     PLINE1=PLINE
  176.  
  177.     PLINE=CLIP(LEFT(MEN:MAINMENU,6))&'Menu'
  178.     IF LEN(CLIP(PLINE))>=14
  179.      !PLINE=CLIP(PLINE)&'  '&'SCREEN       WINDOW('&LROW&',80),AT(1,1),TRN'
  180.       PLINE=CLIP(PLINE)&'  '&'SCREEN       WINDOW(25,80),AT(1,1),TRN'
  181.  
  182.     ELSE
  183.       PLINE=CLIP(PLINE)&ALL(' ',14-LEN(CLIP(PLINE)))&'SCREEN       WINDOW(25,80),AT(1,1),TRN'
  184.     END
  185.     ADD(DosFile)
  186.     PLINE1=PLINE
  187.     LCOL = FORMAT(LCOLLOC[LMENUNO]+2,@P##P)
  188.     LSHADOW = FORMAT(LMAXLEN[LMENUNO],@P##P)
  189.     PLINE=ALL(' ',16)&'ROW('&LROW&','&LCOL&')  PAINT(1,'&LSHADOW&'),HUE(7,0),TRN'
  190.     ADD(DosFile)
  191.     PLINE1=PLINE
  192.     LCOL = FORMAT(LCOLLOC[LMENUNO]+LMAXLEN[LMENUNO]+2,@P##P)
  193.     IF LCOUNT >=10
  194.       LROW = FORMAT(3+LCOUNT,@P##P)
  195.     ELSE
  196.       LROW = FORMAT(3+LCOUNT,@P##P)
  197.     END
  198.     PLINE = ALL(' ',16)&'ROW(2,'&LCOL&')  PAINT('&LROW&',2),HUE(7,0),TRN'
  199.     ADD(DosFile)
  200.     PLINE1=PLINE
  201.     LCOL = FORMAT(LCOLLOC[LMENUNO],@P##P)
  202.     LSHADOW = FORMAT(LMAXLEN[LMENUNO],@P##P)
  203.  
  204.     PLINE = ALL(' ',16)&'ROW(1,' & LCOL & ')   STRING(<39>│ <123>'&LSHADOW&'<125>│<39>),HUE(0,3)'
  205.     ADD(DosFile)
  206.   PLINE1=PLINE
  207.     PLINE = ALL(' ',16)&'ROW(2,' & LCOL & ')   STRING(<39>├─<123>'&LSHADOW&'<125>┤<39>),HUE(0,3)'
  208.     ADD(DosFile)
  209.   PLINE1=PLINE
  210.     LROW = FORMAT(LCOUNT,@P##P)
  211.     PLINE = ALL(' ',16) & 'ROW(3,' & LCOL & ')   REPEAT(' & LROW & '),EVERY(1);STRING(<39>│ <123>'&LSHADOW&'<125>│<39>),HUE(0,3) .'
  212.     ADD(DosFile)
  213.   PLINE1=PLINE
  214.     LROW = FORMAT(3+LCOUNT,@P##P)    !I CHANGED 4 TO 3
  215.     PLINE = ALL(' ',16)&'ROW('&LROW&','&LCOL&')   STRING(<39>└─<123>'&LSHADOW&'<125>┘<39>),HUE(0,3)'
  216.     ADD(DosFile)
  217.     PLINE1=PLINE
  218.     LCOL = FORMAT(1+LCOLLOC[LMENUNO],@P##P)
  219.     LMENUTITLE=MEN:MAINMENU
  220.     PLINE = ALL(' ',16)&'ROW(1,'&LCOL&')   STRING(<39> '&LEFT(LMENUTITLE,LMAXLEN[LMENUNO]-2)&' <39>),HUE(0,3)'
  221.     ADD(DosFile)
  222.     PLINE1=PLINE
  223.     LCOL = FORMAT(1+LCOLLOC[LMENUNO],@P##P)
  224.     PLINE=ALL(' ',16)&'ROW(25,16) MENU(@S50),USE('&CLIP(LMCHOICE)&'),HUE(0,3),SEL(0,3),IMM,REQ'
  225.     ADD(DosFile)
  226.     PLINE1=PLINE
  227.  
  228.     LCOUNT =1
  229.     LOOP WHILE CLIP(SUBMENU[LCOUNT])>'!'
  230.       TLINE=CLIP(MEN:SUBMENU[LCOUNT])
  231.       LROW=FORMAT(2+LCOUNT,@P##P) !was 3
  232.       LCOL = FORMAT(1+LCOLLOC[LMENUNO],@P##P)
  233.       PLINE=ALL(' ',16)&'ROW('&LROW&','&LCOL&')    STRING('&'<39> '&LEFT(TLINE,LMAXLEN[LMENUNO]-2)&' <39>), HUE(0,3), SEL(15,4)             |'
  234.       ADD(DosFile)
  235.       PLINE1=PLINE
  236.       TLINE=' '&CLIP(MEN:SDESC[LCOUNT])&' '
  237.       PLINE=ALL(' ',31)&'DESC('&'<39>'&CLIP(TLINE)&' <39>)'
  238.       ADD(DosFile)
  239.       PLINE1=PLINE
  240.       LCOUNT += 1
  241.     END
  242.  
  243.     PLINE=ALL(' ',18)&'END'
  244.     ADD(DosFile)
  245.   PLINE1=PLINE
  246.     PLINE=ALL(' ',16)&'END'
  247.     ADD(DosFile)
  248.   PLINE1=PLINE
  249.     PLINE=''
  250.     ADD(DosFile)
  251.   PLINE1=PLINE
  252.  
  253.   END
  254.  
  255.  
  256.   PLINE='s80SaveCh       STRING(80)'
  257.   ADD(DosFile)
  258.   PLINE1=PLINE
  259.  
  260.   LMENUNO = 0
  261.   SET(MENU,1)
  262.   LOOP UNTIL EOF(MENU)
  263.     NEXT(MENU)
  264.     PLINE='s80'&LEFT(MEN:MAINMENU,4)&'Ch       STRING(80)'
  265.     ADD(DosFile)
  266.   PLINE1=PLINE
  267.   END
  268.   PLINE='s80LastCh       STRING(80)                          ! Main menu choice for save'
  269.   ADD(DosFile)
  270.   PLINE1=PLINE
  271.   PLINE='s80MainCh       STRING(80)                          ! Current choice string'
  272.   ADD(DosFile)
  273.   PLINE1=PLINE
  274.   PLINE='s25Date         STRING(25)'
  275.   ADD(DosFile)
  276.   PLINE1=PLINE
  277.   PLINE='ibSaveCh        BYTE'
  278.   ADD(DosFile)
  279.   PLINE1=PLINE
  280.   PLINE='MenuRight       BYTE                                ! eTrue if right arrow pressed'
  281.   ADD(DosFile)
  282.   PLINE1=PLINE
  283.   PLINE='MenuLeft        BYTE                                ! eTrue if left   arrow pressed'
  284.   ADD(DosFile)
  285.   PLINE1=PLINE
  286.   PLINE='PullDown        BYTE                                ! Which choice made by arrow'
  287.   ADD(DosFile)
  288.   PLINE1=PLINE
  289.   PLINE='Quit            BYTE                                ! Flag to halt program'
  290.   ADD(DosFile)
  291.   PLINE1=PLINE
  292.  
  293.   PLINE=ALL(' ',30)&'!==================== Code for MainMenu ====='
  294.   ADD(DosFile)
  295.   PLINE1=PLINE
  296.  
  297.   PLINE='    CODE'
  298.   ADD(DosFile)
  299.   PLINE1=PLINE
  300.  ! PLINE='    HELP(,'& CHR(39) &'TRANMENU' & CHR(39) &') '
  301.  ! ADD(DOSFILE)
  302.  ! PLINE1=PLINE
  303.   PLINE='    OPEN(MainMenu)                               ! Display Main Menu'
  304.   ADD(DosFile)
  305.   PLINE1=PLINE
  306. !  PLINE=' SYSTRAN (S) PTE LTD'
  307. !  PLINE=CLIP(PLINE)&ALL(' ',79-LEN(CLIP(PLINE))-LEN(CLIP(FORMAT(TODAY(),@D4))))&CLIP(FORMAT(TODAY(),@D4))
  308. !  PLINE=' SYSTRAN (S) PTE LTD                                              PULLDOWN MENU '
  309. !  PLINE='  s25Date = CLIP(FORMAT(TODAY(),@D4))'
  310. !  ADD(DosFile)
  311. ! PLINE1=PLINE
  312. !  PLINE='    INCLUDE(<39>'&'\CLARION\DEVELOP\SETUP.INC<39>'&')'
  313.    PLINE='    INCLUDE(<39>'&CLIP(MEM:SET_UP) &'.INC'&CHR(39)&')'
  314.    ADD(DosFile)
  315.    PLINE1=PLINE
  316. !  PLINE='     IDLE(DISP_CLOCK)'
  317. !  PLINE='  MAI:SCRTITLE=<39>'&CLIP(PLINE)&' <123>'&FORMAT(46-LEN(CLIP(PLINE)),@P##P)&'<125><39>&RIGHT(S25DATE,25)&<39> <39>'
  318. !  PLINE='    MAI:SCRTITLE=<39>'&CLIP(PLINE)&' <39>'
  319. !  PLINE='    MAI:SCRTITLE=<39> THE CONNECTION <32{52}> AUG 9 1989 <39>'
  320.   PLINE='    ALERT                                        ! Clear alerts'
  321.   ADD(DosFile)
  322.   PLINE1=PLINE
  323.   PLINE='    s80LastCh = <39><39>                                  ! Init main menu choice'
  324.   ADD(DosFile)
  325.   PLINE1=PLINE
  326.   PLINE='    LOOP                                         ! Begin accept loop'
  327.   ADD(DosFile)
  328.   PLINE1=PLINE
  329.    PLINE='     IDLE('& MEM:IDLENAME&')'
  330.   ADD(DosFile)
  331.   PLINE1=PLINE
  332.   PLINE='      ALERT(Esc_Key)                              !  Alert Esc Key'
  333.   ADD(DosFile)
  334.   PLINE1=PLINE
  335.   PLINE='      s80MainCh = s80LastCh                            !  Set to last menu selection'
  336.   ADD(DosFile)
  337.   PLINE1=PLINE
  338.   PLINE='      ACCEPT                                     !  Get keyboard input'
  339.   ADD(DosFile)
  340.   PLINE1=PLINE
  341.   PLINE='      IF KEYCODE() = Esc_Key                      !  If Esc Key'
  342.   ADD(DosFile)
  343.   PLINE1=PLINE
  344.   LCOL=FORMAT(LCOLNO,@P##P)
  345.   PLINE='        PullDown = '&s2MaxNo&'                             !   Set choice to maximum (quit)'
  346.   ADD(DosFile)
  347.   PLINE1=PLINE
  348.   PLINE='        GOTO PullLoop                            !   Goto pull down section'
  349.   ADD(DosFile)
  350.   PLINE1=PLINE
  351.   PLINE='      END                                          !  End Esc Key test'
  352.   ADD(DosFile)
  353.   PLINE1=PLINE
  354.   PLINE='      IF KEYCODE() <60><62> Enter_Key'
  355.   ADD(DosFile)
  356.   PLINE1=PLINE
  357.   PLINE='        CYCLE'
  358.   ADD(DosFile)
  359.   PLINE1=PLINE
  360.   PLINE='      END'
  361.   ADD(DosFile)
  362.   PLINE1=PLINE
  363.   PLINE='      s80LastCh = s80MainCh                            !  Save menu choice string'
  364.   ADD(DosFile)
  365.   PLINE1=PLINE
  366.   PLINE='      PullDown = CHOICE()                        !  Make choice = choice()'
  367.   ADD(DosFile)
  368.   PLINE1=PLINE
  369.   PLINE='PullLoop                                         !  Just a GOTO Tag'
  370.   ADD(DosFile)
  371.   PLINE1=PLINE
  372.   PLINE='      DO SubMenu                                 !  Do Sub Routine'
  373.   ADD(DosFile)
  374.   PLINE1=PLINE
  375.   PLINE=''
  376.   ADD(DosFile)
  377.   PLINE1=PLINE
  378.   PLINE='      IF Quit                                    !  If Quit selected'
  379.   ADD(DosFile)
  380.   PLINE1=PLINE
  381.   PLINE='        CLOSE(MainMenu)                          !   Close main menu'
  382.   ADD(DosFile)
  383.   PLINE1=PLINE
  384.   PLINE='        RETURN                                   !   Get outta here'
  385.   ADD(DosFile)
  386.   PLINE1=PLINE
  387.   PLINE='      END                                          !  End IF quit test'
  388.   ADD(DosFile)
  389.   PLINE1=PLINE
  390.   PLINE=''
  391.   ADD(DosFile)
  392.   PLINE1=PLINE
  393.   PLINE='      IF NOT MenuLeft AND NOT MenuRight          !  If not to move left/right'
  394.   ADD(DosFile)
  395.   PLINE1=PLINE
  396.   PLINE='        CYCLE                                    !   Back to main menu'
  397.   ADD(DosFile)
  398.   PLINE1=PLINE
  399.   PLINE='      END                                          !  End left/right test'
  400.   ADD(DosFile)
  401.   PLINE1=PLINE
  402.   PLINE=''
  403.   ADD(DosFile)
  404.   PLINE1=PLINE
  405.   PLINE='      IF MenuLeft                                !  If left pressed'
  406.   ADD(DosFile)
  407.   PLINE1=PLINE
  408.   PLINE='        PullDown -= 1                            !   Decrement menu choice'
  409.   ADD(DosFile)
  410.   PLINE1=PLINE
  411.   PLINE='        IF PullDown = 0                          !   If now below range'
  412.   ADD(DosFile)
  413.   PLINE1=PLINE
  414.   PLINE='          PullDown = '&s2MaxNo&'                           !    Set to 5'
  415.   ADD(DosFile)
  416.   PLINE1=PLINE
  417.   PLINE='        END                                        !   End if zero test'
  418.   ADD(DosFile)
  419.   PLINE1=PLINE
  420.   PLINE='      ELSE                                       !  Otherwise, must be right'
  421.   ADD(DosFile)
  422.   PLINE1=PLINE
  423.   PLINE='        PullDown += 1                            !   Increment menu choice'
  424.   ADD(DosFile)
  425.   PLINE1=PLINE
  426.   s2MaxNo = FORMAT(ibMaxNo+1,@P##P)
  427.   PLINE='        IF PullDown = '&s2MaxNo&'                          !   If 6 (above # of items)'
  428.   ADD(DosFile)
  429.   PLINE1=PLINE
  430.   s2MaxNo = FORMAT(ibMaxNo,@P##P)
  431.   PLINE='          PullDown = 1                           !    Set to 1'
  432.   ADD(DosFile)
  433.   PLINE1=PLINE
  434.   PLINE='        END                                        !   End if 6 test'
  435.   ADD(DosFile)
  436.   PLINE1=PLINE
  437.   PLINE='      END                                          !  End left/right test'
  438.   ADD(DosFile)
  439.   PLINE1=PLINE
  440.   PLINE=''
  441.   ADD(DosFile)
  442.   PLINE1=PLINE
  443.   PLINE='      MenuLeft = eFalse                           !  Re-init left flag'
  444.   ADD(DosFile)
  445.   PLINE1=PLINE
  446.   PLINE='      MenuRight= eFalse                           !  Re-init right flag'
  447.   ADD(DosFile)
  448.   PLINE1=PLINE
  449.   PLINE=''
  450.   ADD(DosFile)
  451.   PLINE1=PLINE
  452.   PLINE='      GOTO PullLoop                              !  Loop to menu selections'
  453.   ADD(DosFile)
  454.   PLINE1=PLINE
  455.   PLINE='    END                                            ! End LOOP'
  456.   ADD(DosFile)
  457.   PLINE1=PLINE
  458.   PLINE=''
  459.   ADD(DosFile)
  460.   PLINE1=PLINE
  461.   PLINE='    RETURN                                         !EXIT TO DOS'
  462.   ADD(DosFile)
  463.   PLINE1=PLINE
  464.  
  465.   PLINE=''
  466.   ADD(DosFile)
  467.   PLINE1=PLINE
  468.   PLINE = ALL(' ',30)&'!======================= ROUTINE SubMenu ====='
  469.   ADD(DosFile)
  470.   PLINE1=PLINE
  471.  
  472.   PLINE='SubMenu    ROUTINE'
  473.   ADD(DosFile)
  474.   PLINE1=PLINE
  475.   PLINE='    EXECUTE PullDown                           !  Test CHOICE()'
  476.   ADD(DosFile)
  477.   PLINE1=PLINE
  478.   SET(MENU,1)
  479.   LOOP UNTIL EOF(MENU)
  480.      NEXT(MENU)
  481.      PLINE=ALL(' ',6)&'OPEN('&CLIP(LEFT(MEN:MAINMENU,6))&'Menu)'
  482.      ADD(DosFile)
  483.   PLINE1=PLINE
  484.   END
  485.   PLINE='    END                                            ! End LOOP'
  486.   ADD(DosFile)
  487.   PLINE1=PLINE
  488.   PLINE=''
  489.   ADD(DosFile)
  490.   PLINE1=PLINE
  491.   PLINE='    ALERT'
  492.   ADD(DosFile)
  493.   PLINE1=PLINE
  494.   PLINE='    s80SaveCh      = <39><39>'
  495.   ADD(DosFile)
  496.   PLINE1=PLINE
  497.   PLINE='    LOOP                                         ! Begin accept loop'
  498.   ADD(DosFile)
  499.   PLINE1=PLINE
  500.   PLINE='      ALERT(Left_key)'
  501.   ADD(DosFile)
  502.   PLINE1=PLINE
  503.   PLINE='      ALERT(Right_Key)'
  504.   ADD(DosFile)
  505.   PLINE1=PLINE
  506.   PLINE='      ALERT(Esc_Key)'
  507.   ADD(DosFile)
  508.   PLINE1=PLINE
  509.   PLINE='      IF s80SaveCh <60><62> <39><39>'
  510.   ADD(DosFile)
  511.   PLINE1=PLINE
  512.   PLINE='        EXECUTE PullDown                           !  Test CHOICE()'
  513.   ADD(DosFile)
  514.   PLINE1=PLINE
  515.  
  516.   SET(MENU,1)
  517.   LOOP UNTIL EOF(MENU)
  518.      NEXT(MENU)
  519.      LMCHOICE='s80'&LEFT(MEN:MAINMENU,4)&'Ch'
  520.      PLINE='          '&CLIP(LMCHOICE)&' = s80SaveCh                        ! Set to last menu selection'
  521.      ADD(DosFile)
  522.   PLINE1=PLINE
  523.   END
  524.  
  525.   PLINE='        END'
  526.   ADD(DosFile)
  527.   PLINE1=PLINE
  528.  
  529.   PLINE='      END'
  530.   ADD(DosFile)
  531.   PLINE1=PLINE
  532.   PLINE='      ACCEPT'
  533.   ADD(DosFile)
  534.   PLINE1=PLINE
  535.   PLINE='      If CHOICE() <60><62> 0'
  536.   PLINE1=PLINE
  537.   ADD(DosFile)
  538.   PLINE1=PLINE
  539.  
  540.   PLINE='        ibSaveCh = Choice()'
  541.   ADD(DosFile)
  542.   PLINE1=PLINE
  543.  
  544.   PLINE='      END'
  545.   ADD(DosFile)
  546.   PLINE1=PLINE
  547.  
  548.   PLINE='      IF KEYCODE() = Esc_Key                      !  If ESC, quit to main menu'
  549.   ADD(DosFile)
  550.   PLINE1=PLINE
  551.  
  552.   PLINE='        EXECUTE PullDown                           !  Test CHOICE()'
  553.   ADD(DosFile)
  554.   PLINE1=PLINE
  555.  
  556.   SET(MENU,1)
  557.   LOOP UNTIL EOF(MENU)
  558.      NEXT(MENU)
  559.      PLINE='          s80LastCh = <39> '&CLIP(MEN:MAINMENU)&' <39>'                     !   Init choice for main'
  560.      ADD(DosFile)
  561.   PLINE1=PLINE
  562.   END
  563.  
  564.     PLINE='        END'
  565.     ADD(DosFile)
  566.   PLINE1=PLINE
  567.     PLINE='        BREAK'
  568.     ADD(DosFile)
  569.   PLINE1=PLINE
  570.     PLINE='      END'
  571.     ADD(DosFile)
  572.   PLINE1=PLINE
  573.  
  574.     PLINE='      IF KEYCODE() = Left_key                     !  If left arrow'
  575.     ADD(DosFile)
  576.   PLINE1=PLINE
  577.     PLINE='        MenuLeft = eTrue                          !   Set on Left flag'
  578.     ADD(DosFile)
  579.   PLINE1=PLINE
  580.     PLINE='        BREAK                                   !   Return to main menu'
  581.     ADD(DosFile)
  582.   PLINE1=PLINE
  583.     PLINE='      END                                          !  End if left arrow test'
  584.     ADD(DosFile)
  585.   PLINE1=PLINE
  586.     PLINE='      IF KEYCODE() = Right_Key                    !  If right arrow'
  587.     ADD(DosFile)
  588.   PLINE1=PLINE
  589.     PLINE='        MenuRight = eTrue                         !   Set on Right flag'
  590.     ADD(DosFile)
  591.   PLINE1=PLINE
  592.     PLINE='        BREAK                                   !   Return to main menu'
  593.     ADD(DosFile)
  594.   PLINE1=PLINE
  595.     PLINE='      END                                       !  End if right arrow test'
  596.     ADD(DosFile)
  597.   PLINE1=PLINE
  598.  
  599.       PLINE='      CASE PULLDOWN'
  600.     ADD(DosFile)
  601.   PLINE1=PLINE
  602.     LMENUNO = 0
  603.     SET(MENU,1)
  604.     LOOP UNTIL EOF(MENU)
  605.       NEXT(MENU)
  606.       LMENUNO += 1
  607.       PLINE='        OF '&FORMAT(LMENUNO,@P##P)
  608.       ADD(DosFile)
  609.   PLINE1=PLINE
  610.       IF UPPER(CLIP(MEN:MAINMENU)) = 'QUIT'
  611.       PLINE='         Quit = eTrue'
  612.       ADD(DosFile)
  613.   PLINE1=PLINE
  614.       PLINE='         BREAK'
  615.       ADD(DosFile)
  616.   PLINE1=PLINE
  617.  
  618.     ELSE
  619.       PLINE='          s80SaveCh = '&LMCHOICE&'                    !  Save menu choice'
  620.       ADD(DosFile)
  621.   PLINE1=PLINE
  622.       PLINE='          EXECUTE ibSaveCh                               !  Test CHOICE()'
  623.       ADD(DosFile)
  624.   PLINE1=PLINE
  625.       LCOUNT=1
  626.       LOOP WHILE CLIP(SUBMENU[LCOUNT])>'!'
  627.     PLINE=ALL(' ',12)&CLIP(MEN:SUBPROC[LCOUNT])
  628.     ADD(DosFile)
  629.   PLINE1=PLINE
  630.     LCOUNT += 1
  631.       END
  632.       PLINE='          END                                        !  End EXECUTE'
  633.       ADD(DosFile)
  634.   PLINE1=PLINE
  635.     END
  636.  
  637.     PLINE=''
  638.     ADD(DosFile)
  639.   PLINE1=PLINE
  640.   END
  641.      PLINE='     END                                          ! End Case'
  642.     ADD(DosFile)
  643.   PLINE1=PLINE
  644.      PLINE='   END                                          ! End LOOP'
  645.     ADD(DosFile)
  646.   PLINE1=PLINE
  647.  
  648.     PLINE=''
  649.     ADD(DosFile)
  650.   PLINE1=PLINE
  651.     PLINE='    ALERT'
  652.     ADD(DosFile)
  653.   PLINE1=PLINE
  654.  
  655.  
  656.  
  657.   PLINE='      EXECUTE PullDown                           !  Test CHOICE()'
  658.   ADD(DosFile)
  659.   PLINE1=PLINE
  660.   SET(MENU,1)
  661.   LOOP UNTIL EOF(MENU)
  662.      NEXT(MENU)
  663.      PLINE=ALL(' ',8)&'CLOSE('&CLIP(LEFT(MEN:MAINMENU,6))&'Menu)'
  664.      ADD(DosFile)
  665.   PLINE1=PLINE
  666.   END
  667.   PLINE='    END                                            ! End Execute'
  668.   ADD(DosFile)
  669.   PLINE1=PLINE
  670.   CLOSE(DOSFILE)          !I ADDED THIS ON 12/15
  671.   CLOSE(SCREEN)
  672.  
  673.