home *** CD-ROM | disk | FTP | other *** search
/ Share Gallery 1 / share_gal_1.zip / share_gal_1 / UT / UT070.ZIP / MENUS.EXE / MARXMENU.DOC < prev    next >
Text File  |  1991-04-22  |  304KB  |  8,181 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.     ===================================================================
  23.  
  24.  
  25.  
  26.                       <*> Computer Tyme MarxMenu <*>
  27.  
  28.                              Reference Manual
  29.  
  30.                    Copyright 1989 - 1991 by Marc Perkel
  31.  
  32.         All Rights Reserved * Version 2.27 * Release Date: 04-22-91
  33.  
  34.     Computer Tyme * 411 North Sherman Suite 300 * Springfield Mo. 65802
  35.  
  36.                  (417) 866-1222 voice * (417) 866-1665 bbs
  37.  
  38.                            Fax: (417) 866-0135
  39.                           CompuServe 76505,1120
  40.  
  41.  
  42.  
  43.     ===================================================================
  44.  
  45.  
  46.  
  47.    Computer Tyme MarxMenu * Table of Contents              Page 1
  48.    _______________________________________________________________
  49.  
  50.  
  51.  
  52.        Copyright .........................................  1
  53.        License ...........................................  1
  54.        Warranty ..........................................  1
  55.        Acknowledgments ...................................  2
  56.        Trademarks ........................................  2
  57.        The MarxMenu Name .................................  2
  58.        Technical Support .................................  3
  59.        Overview of the MarxMenu System ...................  3
  60.        -- What MarxMenu Does .............................  5
  61.        -- For the POWER User .............................  6
  62.        Installation ......................................  7
  63.        Installing the Network Survival Kit ...............  7
  64.        The MARX.BAT File .................................  8
  65.        -- DROPTO.BAT .....................................  10
  66.        -- Support for early DOS versions .................  11
  67.        -- About Environment Variables ....................  12
  68.        -- Dealing with Multiple DOS Shells ...............  13
  69.        -- MarxMenu and TSR Control .......................  14
  70.        Network Users .....................................  15
  71.        -- Novell Users ...................................  15
  72.        ---- The Novell Menu Translator ...................  16
  73.        ---- Logging out under Menu Control ...............  16
  74.        ---- Logging in with MarxMenu .....................  17
  75.        ------ The CONFIG.SYS File ........................  18
  76.        ------ The AUTOEXEC.BAT File ......................  18
  77.        ------ The SHELL.CFG File .........................  20
  78.        ------ Using a Menu File to Log In ................  20
  79.        ---- Novell Semaphores ............................  21
  80.        Running a MarxMenu ................................  22
  81.        Customizing MarxMenu Sample Files .................  22
  82.        Menu Analysis .....................................  23
  83.        Onkey Statements ..................................  24
  84.        Popup Menus .......................................  24
  85.        The Console .......................................  26
  86.        Repositioning the Top Window ......................  26
  87.        Mouse Support .....................................  27
  88.        Starting off the Easy Way .........................  27
  89.        About Variables ...................................  27
  90.        -- Dates ..........................................  29
  91.        -- Real Numbers ...................................  29
  92.        -- Local Variables ................................  30
  93.        -- Passing Parameters to Procedures ...............  30
  94.        About Constants ...................................  32
  95.        About Arrays ......................................  32
  96.        About Qualifiers ..................................  33
  97.        Comments in Menu Files ............................  34
  98.        The MarxMenu Compiler .............................  35
  99.        Compiler Compatibility ............................  35
  100.        A word about DOS versions .........................  36
  101.        A word about BUGS .................................  36
  102.        Tips From the Master ..............................  37
  103.  
  104.  
  105.  
  106.    Computer Tyme MarxMenu * Table of Contents              Page 2
  107.    _______________________________________________________________
  108.  
  109.  
  110.        -- Computers do Simple Tasks ......................  37
  111.        -- Complex Tasks are made of Simple Tasks .........  38
  112.        -- Learning Good Programming Habits ...............  38
  113.        -- Use Long Names .................................  39
  114.        -- Use Comments Liberally .........................  40
  115.        -- Indent Your code ...............................  41
  116.        -- For Duplicate Tasks, Use Procedures ............  42
  117.        -- Don't Program Yourself into a Corner ...........  42
  118.        A word to Writers and Reviewers ...................  43
  119.        Using MarxHelp ....................................  44
  120.        Printing the Example Files ........................  44
  121.        Security Issues ...................................  44
  122.        MarxMenu Commands .................................  45
  123.        -- | ..............................................  46
  124.        -- ( ..............................................  46
  125.        -- ) ..............................................  46
  126.        -- * ..............................................  46
  127.        -- + ..............................................  47
  128.        -- - ..............................................  47
  129.        -- / ..............................................  47
  130.        -- < ..............................................  47
  131.        -- <= .............................................  47
  132.        -- <> .............................................  47
  133.        -- = ..............................................  47
  134.        -- > ..............................................  47
  135.        -- >= .............................................  47
  136.        -- %MenuFileName ..................................  48
  137.        -- Abs ............................................  48
  138.        -- Alias ..........................................  48
  139.        -- And ............................................  48
  140.        -- ApplicationMemory ..............................  49
  141.        -- Apr ............................................  49
  142.        -- ArcTan .........................................  49
  143.        -- Aug ............................................  49
  144.        -- BadDate ........................................  49
  145.        -- Bat ............................................  49
  146.        -- BatFileName ....................................  50
  147.        -- BigShadow ......................................  50
  148.        -- Black ..........................................  50
  149.        -- Blanked ........................................  50
  150.        -- BlankMessage ...................................  50
  151.        -- BlankTime ......................................  50
  152.        -- Blink ..........................................  51
  153.        -- BlockBox .......................................  51
  154.        -- Blue ...........................................  51
  155.        -- BoxBorderColor .................................  51
  156.        -- BoxHeader ......................................  52
  157.        -- BoxHeaderColor .................................  52
  158.        -- BoxHeaderLeft ..................................  52
  159.        -- BoxHeaderRight .................................  52
  160.        -- BoxFooter ......................................  53
  161.        -- BoxFooterLeft ..................................  53
  162.  
  163.  
  164.  
  165.    Computer Tyme MarxMenu * Table of Contents              Page 3
  166.    _______________________________________________________________
  167.  
  168.  
  169.        -- BoxFooterRight .................................  53
  170.        -- BoxInsideColor .................................  53
  171.        -- Brown ..........................................  53
  172.        -- BW40 ...........................................  54
  173.        -- BW80 ...........................................  54
  174.        -- CapsColor ......................................  54
  175.        -- CapsLock .......................................  54
  176.        -- Chain ..........................................  54
  177.        -- Char ...........................................  55
  178.        -- ChDir ..........................................  55
  179.        -- CleanFileName ..................................  55
  180.        -- ClearLine ......................................  55
  181.        -- ClearScreen ....................................  55
  182.        -- ClearScreenFirst ...............................  56
  183.        -- ClearScreenOnExit ..............................  56
  184.        -- ClockColor .....................................  56
  185.        -- ClockMode ......................................  56
  186.        -- ClockPos .......................................  57
  187.        -- ClosePrinter ...................................  57
  188.        -- ClusterSize ....................................  57
  189.        -- CmdLine ........................................  57
  190.        -- CO40 ...........................................  58
  191.        -- CO80 ...........................................  58
  192.        -- ColorScreen ....................................  58
  193.        -- Comment ........................................  58
  194.        -- Console ........................................  58
  195.        -- ConsoleBorderColor .............................  59
  196.        -- ConsoleHeaderColor .............................  59
  197.        -- ConsoleInsideColor .............................  59
  198.        -- ConsolePos .....................................  59
  199.        -- Const ..........................................  59
  200.        -- Cos ............................................  59
  201.        -- CurrentEnvironment .............................  60
  202.        -- CurrentWindow ..................................  60
  203.        -- Cursor .........................................  60
  204.        -- CustomBox ......................................  60
  205.        -- Cyan ...........................................  60
  206.        -- DateString .....................................  60
  207.        -- Day ............................................  60
  208.        -- DayOf ..........................................  61
  209.        -- DayOfWeek ......................................  61
  210.        -- DayOfWeekOf ....................................  61
  211.        -- Dec ............................................  61
  212.        -- Delete .........................................  62
  213.        -- DelFile ........................................  62
  214.        -- Dispose ........................................  63
  215.        -- DosVersion .....................................  63
  216.        -- DosVersionString ...............................  63
  217.        -- DosWindow ......................................  63
  218.        -- DoubleLineBox ..................................  64
  219.        -- DrawBox ........................................  64
  220.        -- Drives .........................................  64
  221.  
  222.  
  223.  
  224.    Computer Tyme MarxMenu * Table of Contents              Page 4
  225.    _______________________________________________________________
  226.  
  227.  
  228.        -- DvAppNumber ....................................  64
  229.        -- DvFrame ........................................  64
  230.        -- DvFreeze .......................................  65
  231.        -- DvHide .........................................  65
  232.        -- DvKillTask .....................................  65
  233.        -- DvLastHandle ...................................  65
  234.        -- DvLoaded .......................................  65
  235.        -- DvMoveWindow ...................................  65
  236.        -- DvMyHandle .....................................  65
  237.        -- DvPifExecute ...................................  66
  238.        -- DvResizeWindow .................................  66
  239.        -- DvSetBottom ....................................  66
  240.        -- DvSetTop .......................................  66
  241.        -- DvUnFreeze .....................................  67
  242.        -- DvUnHide .......................................  67
  243.        -- Else ...........................................  67
  244.        -- EndComment .....................................  67
  245.        -- Endif ..........................................  67
  246.        -- EndLoop ........................................  67
  247.        -- EndOfFile ......................................  68
  248.        -- EndProc ........................................  68
  249.        -- EndWhile .......................................  68
  250.        -- EnvFree ........................................  68
  251.        -- EnvSize ........................................  68
  252.        -- EraseTopWindow .................................  68
  253.        -- EraseWindow ....................................  69
  254.        -- Execute ........................................  69
  255.        -- ExistDir .......................................  70
  256.        -- ExistFile ......................................  70
  257.        -- ExistOnPath ....................................  70
  258.        -- ExitCode .......................................  70
  259.        -- ExitMenu .......................................  70
  260.        -- Exp ............................................  71
  261.        -- Explode ........................................  71
  262.        -- ExplodeDelay ...................................  71
  263.        -- Extension ......................................  71
  264.        -- False ..........................................  71
  265.        -- Feb ............................................  71
  266.        -- FileAppend .....................................  71
  267.        -- FileAssign .....................................  72
  268.        -- FileAttr .......................................  72
  269.        -- FileClose ......................................  72
  270.        -- FileCreate .....................................  72
  271.        -- FileDate .......................................  72
  272.        -- FileFlush ......................................  72
  273.        -- FileLog ........................................  72
  274.        -- FileOpen .......................................  73
  275.        -- FilePart .......................................  73
  276.        -- FilePos ........................................  73
  277.        -- FileReadln .....................................  73
  278.        -- FileRename .....................................  73
  279.        -- FileResult .....................................  74
  280.  
  281.  
  282.  
  283.    Computer Tyme MarxMenu * Table of Contents              Page 5
  284.    _______________________________________________________________
  285.  
  286.  
  287.        -- FileSeek .......................................  74
  288.        -- FileSize .......................................  74
  289.        -- FileWrite ......................................  74
  290.        -- FileWriteln ....................................  74
  291.        -- FixPath ........................................  74
  292.        -- Floppies .......................................  74
  293.        -- ForceExplosion .................................  74
  294.        -- ForceExtension .................................  75
  295.        -- Fraction .......................................  75
  296.        -- FreeDiskSpace ..................................  75
  297.        -- FreeEms ........................................  75
  298.        -- FreeMemory .....................................  75
  299.        -- Fri ............................................  75
  300.        -- GotoXY .........................................  75
  301.        -- Green ..........................................  76
  302.        -- Grey ...........................................  76
  303.        -- Hour ...........................................  76
  304.        -- HourOf .........................................  76
  305.        -- Hundredth ......................................  76
  306.        -- IdelProgram ....................................  76
  307.        -- If .............................................  77
  308.        -- InactiveBox ....................................  78
  309.        -- InactiveBoxColor ...............................  78
  310.        -- Include ........................................  78
  311.        -- InputString ....................................  79
  312.        -- Insert .........................................  79
  313.        -- InsertMode .....................................  79
  314.        -- Int ............................................  79
  315.        -- Integer ........................................  79
  316.        -- InverseColor ...................................  80
  317.        -- Jan ............................................  80
  318.        -- Jul ............................................  80
  319.        -- Jun ............................................  80
  320.        -- Jump ...........................................  80
  321.        -- KbdReady .......................................  80
  322.        -- KeySave ........................................  80
  323.        -- KeyFromMouse ...................................  80
  324.        -- KillMusic ......................................  81
  325.        -- LastKey ........................................  81
  326.        -- LBlue ..........................................  81
  327.        -- LCyan ..........................................  81
  328.        -- Left ...........................................  81
  329.        -- Length .........................................  81
  330.        -- LGreen .........................................  81
  331.        -- LGrey ..........................................  82
  332.        -- LMag ...........................................  82
  333.        -- LMagenta .......................................  82
  334.        -- Ln .............................................  82
  335.        -- Loc ............................................  82
  336.        -- LockWord .......................................  82
  337.        -- Logoff .........................................  82
  338.        -- LogoffTime .....................................  83
  339.  
  340.  
  341.  
  342.    Computer Tyme MarxMenu * Table of Contents              Page 6
  343.    _______________________________________________________________
  344.  
  345.  
  346.        -- Loop ...........................................  83
  347.        -- LoopIndex ......................................  84
  348.        -- LoopLimit ......................................  84
  349.        -- LRed ...........................................  84
  350.        -- MachineName ....................................  84
  351.        -- Mag ............................................  84
  352.        -- Magenta ........................................  84
  353.        -- Mar ............................................  84
  354.        -- MarxVersion ....................................  85
  355.        -- MasterEnvironment ..............................  85
  356.        -- Max ............................................  85
  357.        -- May ............................................  85
  358.        -- Mem ............................................  85
  359.        -- MemL ...........................................  85
  360.        -- MemSize ........................................  85
  361.        -- MemW ...........................................  86
  362.        -- MenuKeyBuffer ..................................  86
  363.        -- Mid ............................................  86
  364.        -- Min ............................................  86
  365.        -- MinorDosVersion ................................  86
  366.        -- Minute .........................................  86
  367.        -- MinuteOf .......................................  87
  368.        -- Mod ............................................  87
  369.        -- ModifyPath .....................................  87
  370.        -- Mon ............................................  87
  371.        -- Mono ...........................................  87
  372.        -- Month ..........................................  87
  373.        -- MonthOf ........................................  87
  374.        -- Mouse ..........................................  88
  375.        -- MouseHorizontal ................................  88
  376.        -- MouseVertical ..................................  88
  377.        -- MoveWindow .....................................  88
  378.        -- MxCmd ..........................................  89
  379.        -- NamePart .......................................  89
  380.        -- NetworkVersion .................................  89
  381.        -- NextWord .......................................  89
  382.        -- No .............................................  89
  383.        -- NoBoxBorder ....................................  90
  384.        -- NoExit .........................................  90
  385.        -- Not ............................................  90
  386.        -- NotesLeft ......................................  90
  387.        -- NotesPlayed ....................................  90
  388.        -- Nov ............................................  90
  389.        -- NovAccountExpDate ..............................  90
  390.        -- NovAttach ......................................  91
  391.        -- NovChangePassword ..............................  91
  392.        -- NovCloseSemaphore ..............................  91
  393.        -- NovConnection ..................................  91
  394.        -- NovConsoleOperator .............................  91
  395.        -- NovDefaultServer ...............................  91
  396.        -- NovDetach ......................................  91
  397.        -- NovGroupMembers ................................  91
  398.  
  399.  
  400.  
  401.    Computer Tyme MarxMenu * Table of Contents              Page 7
  402.    _______________________________________________________________
  403.  
  404.  
  405.        -- NovGroups ......................................  92
  406.        -- NovInGroup .....................................  92
  407.        -- NovLogin .......................................  92
  408.        -- NovLoginName ...................................  92
  409.        -- NovLogout ......................................  92
  410.        -- NovMapDrive ....................................  93
  411.        -- NovMyLoginName .................................  93
  412.        -- NovMyPassword ..................................  93
  413.        -- NovOpenSemaphore ...............................  93
  414.        -- NovPasswordExpDate .............................  93
  415.        -- NovPreferredServer .............................  93
  416.        -- NovPrimaryServer ...............................  93
  417.        -- NovPrintQueues .................................  94
  418.        -- NovReadGroups ..................................  94
  419.        -- NovReadSecurityEquals ..........................  94
  420.        -- NovResult ......................................  94
  421.        -- NovSemaphoreTimeOut ............................  94
  422.        -- NovSemaphoreUsers ..............................  94
  423.        -- NovSemaphoreValue ..............................  94
  424.        -- NovServers .....................................  94
  425.        -- NovScanProperties ..............................  95
  426.        -- NovSetPreferredServer ..........................  95
  427.        -- NovSetPrimaryServer ............................  95
  428.        -- NovSignalSemaphore .............................  95
  429.        -- NovStationAddress ..............................  96
  430.        -- NovUserInGroup .................................  96
  431.        -- NovUsers .......................................  96
  432.        -- NovUsersLoggedIn ...............................  96
  433.        -- NovWaitOnSemaphore .............................  96
  434.        -- NumberOfElements ...............................  96
  435.        -- Now ............................................  97
  436.        -- NumLock ........................................  97
  437.        -- Oct ............................................  97
  438.        -- Off ............................................  97
  439.        -- On .............................................  97
  440.        -- OnKey ..........................................  98
  441.        -- OnScreenOnly ...................................  98
  442.        -- OpenPrinter ....................................  99
  443.        -- OptionSwitch ...................................  99
  444.        -- Or .............................................  99
  445.        -- Ord ............................................  99
  446.        -- OverKey ........................................  99
  447.        -- Overlay ........................................  100
  448.        -- ParallelPorts ..................................  100
  449.        -- ParamStr .......................................  100
  450.        -- ParentEnvironment ..............................  100
  451.        -- Password .......................................  101
  452.        -- Path ...........................................  101
  453.        -- PathPart .......................................  101
  454.        -- PauseAfterExecute ..............................  101
  455.        -- Pi .............................................  101
  456.        -- PickFile .......................................  102
  457.  
  458.  
  459.  
  460.    Computer Tyme MarxMenu * Table of Contents              Page 8
  461.    _______________________________________________________________
  462.  
  463.  
  464.        -- PickMany .......................................  102
  465.        -- PickOne ........................................  102
  466.        -- PickPosition ...................................  103
  467.        -- Port ...........................................  103
  468.        -- Pos ............................................  103
  469.        -- Power ..........................................  103
  470.        -- Pred ...........................................  103
  471.        -- Print ..........................................  103
  472.        -- PrinterName ....................................  103
  473.        -- Println ........................................  104
  474.        -- PrintScreen ....................................  104
  475.        -- Procedure ......................................  104
  476.        -- PullMenu .......................................  104
  477.        -- Qualifier ......................................  104
  478.        -- Random .........................................  105
  479.        -- ReadEnv ........................................  105
  480.        -- ReadEnvironment ................................  105
  481.        -- ReadKey ........................................  106
  482.        -- Readln .........................................  106
  483.        -- ReadTextFile ...................................  106
  484.        -- Real ...........................................  107
  485.        -- Reboot .........................................  107
  486.        -- Red ............................................  107
  487.        -- ReleaseDate ....................................  107
  488.        -- Repeat .........................................  107
  489.        -- ResizeWindow ...................................  108
  490.        -- Return .........................................  108
  491.        -- ReturnCode .....................................  108
  492.        -- Right ..........................................  108
  493.        -- RollWindow .....................................  109
  494.        -- Run ............................................  109
  495.        -- Sat ............................................  110
  496.        -- SavePosition ...................................  110
  497.        -- ScreenHeight ...................................  110
  498.        -- ScreenWidth ....................................  110
  499.        -- ScrollLock .....................................  110
  500.        -- ScrollMove .....................................  111
  501.        -- Second .........................................  111
  502.        -- SecondOf .......................................  111
  503.        -- SecondInDay ....................................  111
  504.        -- SecondInHour ...................................  111
  505.        -- Security .......................................  111
  506.        -- SelectPath .....................................  111
  507.        -- Sep ............................................  112
  508.        -- SerialPorts ....................................  112
  509.        -- SetArraySize ...................................  112
  510.        -- SetEnv .........................................  112
  511.        -- SetTopWindow ...................................  113
  512.        -- SetWindowUnder .................................  113
  513.        -- Shadow .........................................  113
  514.        -- ShadowColor ....................................  113
  515.        -- ShadowPosition .................................  113
  516.  
  517.  
  518.  
  519.    Computer Tyme MarxMenu * Table of Contents              Page 9
  520.    _______________________________________________________________
  521.  
  522.  
  523.        -- Shared .........................................  114
  524.        -- ShellEnvironment ...............................  114
  525.        -- Shl ............................................  114
  526.        -- Shr ............................................  114
  527.        -- Sin ............................................  114
  528.        -- SingleLineBox ..................................  114
  529.        -- SmallShadow ....................................  115
  530.        -- SortArray ......................................  115
  531.        -- Sound ..........................................  115
  532.        -- Sqr ............................................  115
  533.        -- StandardIO .....................................  115
  534.        -- Str ............................................  115
  535.        -- StuffAKey ......................................  116
  536.        -- StuffKBD .......................................  116
  537.        -- StuffKeyboardNow ...............................  116
  538.        -- Succ ...........................................  116
  539.        -- Suggest ........................................  116
  540.        -- Sun ............................................  116
  541.        -- TextBackground .................................  116
  542.        -- TextColor ......................................  117
  543.        -- TextMode .......................................  117
  544.        -- TextPos ........................................  117
  545.        -- TextSeek .......................................  117
  546.        -- Then ...........................................  117
  547.        -- Thu ............................................  117
  548.        -- TimeOf .........................................  118
  549.        -- Timer ..........................................  118
  550.        -- TimeString .....................................  118
  551.        -- Today ..........................................  118
  552.        -- Tone ...........................................  118
  553.        -- TotalDiskSpace .................................  119
  554.        -- TotalEms .......................................  119
  555.        -- Trim ...........................................  119
  556.        -- True ...........................................  119
  557.        -- Tue ............................................  119
  558.        -- UniqueFileName .................................  119
  559.        -- Until ..........................................  119
  560.        -- UpperCase ......................................  119
  561.        -- UpperCaseOnly ..................................  120
  562.        -- UseArrows ......................................  120
  563.        -- UseCommand .....................................  120
  564.        -- UsedDiskSpace ..................................  121
  565.        -- UseNovPassword .................................  121
  566.        -- Value ..........................................  121
  567.        -- Var ............................................  121
  568.        -- VideoMode ......................................  121
  569.        -- VideoPage ......................................  121
  570.        -- ViewArray ......................................  122
  571.        -- ViewTextFile ...................................  122
  572.        -- Volume .........................................  122
  573.        -- Wait ...........................................  122
  574.        -- WaitOrKbdReady .................................  122
  575.  
  576.  
  577.  
  578.    Computer Tyme MarxMenu * Table of Contents              Page 10
  579.    _______________________________________________________________
  580.  
  581.  
  582.        -- Wed ............................................  122
  583.        -- WhereX .........................................  122
  584.        -- WhereXAbs ......................................  123
  585.        -- WhereY .........................................  123
  586.        -- WhereYAbs ......................................  123
  587.        -- While ..........................................  123
  588.        -- White ..........................................  123
  589.        -- WindowHeight ...................................  123
  590.        -- WindowWidth ....................................  123
  591.        -- Write ..........................................  123
  592.        -- WriteCenter ....................................  124
  593.        -- Writeln ........................................  124
  594.        -- WriteTextFile ..................................  124
  595.        -- WriteVertical ..................................  124
  596.        -- Xor ............................................  124
  597.        -- Year ...........................................  124
  598.        -- YearOf .........................................  125
  599.        -- Yellow .........................................  125
  600.        -- Yes ............................................  125
  601.        String and Character Constants ....................  125
  602.        Conditional Statements ............................  127
  603.        Environment Variables used by MarxMenu ............  128
  604.        Command Categories ................................  129
  605.        -- Misc Commands ..................................  129
  606.        -- Math Commands ..................................  129
  607.        -- Float Commands .................................  130
  608.        -- String Commands ................................  131
  609.        -- Boolean Commands ...............................  132
  610.        -- Memory Commands ................................  132
  611.        -- Time Commands ..................................  133
  612.        -- Execution Commands .............................  134
  613.        -- Display Commands ...............................  134
  614.        -- Color Commands .................................  136
  615.        -- Video Commands .................................  136
  616.        -- System Commands ................................  137
  617.        -- File Commands ..................................  137
  618.        -- Printer Commands ...............................  138
  619.        -- Environment Commands ...........................  138
  620.        -- Array Commands .................................  138
  621.        -- DesqView Commands ..............................  139
  622.        -- Conditional Commands ...........................  139
  623.        -- Keyboard Commands ..............................  139
  624.        -- MouseControl Commands ..........................  140
  625.        -- Music Commands .................................  140
  626.        -- Novell Commands ................................  140
  627.        -- Variable Commands ..............................  141
  628.  
  629.  
  630.  
  631.    Computer Tyme MarxMenu Users Manual                     Page 1
  632.    _______________________________________________________________
  633.  
  634.  
  635.    COPYRIGHT   COPYRIGHT   COPYRIGHT
  636.  
  637.    This manual is copyrighted material and all rights are reserved.
  638.    MarxMenu is a programming language which describes to the computer what
  639.    it is supposed to do. Even though some of the individual words in
  640.    MarxMenu are used in other programming languages, I claim a copyright on
  641.    the collection of words which make up the MarxMenu language. I therefore
  642.    consider it an infringement of my CopyRight to create a software product
  643.    which uses the MarxMenu language, or translates MarxMenu source code,
  644.    without purchasing a license to do so.
  645.  
  646.    The combinations of definitions of commands in this manual constitute a
  647.    copyrighted work. Any publication which describes a computer language
  648.    for which the MarxMenu command set is a subset is a violation of the
  649.    copyright of this software and this written manual.
  650.  
  651.    In other words, don't try to clone MarxMenu.
  652.  
  653.    LICENSE AGREEMENT:   LICENSE AGREEMENT:   LICENSE AGREEMENT:
  654.  
  655.    You are licensed to use this program on a single CPU or workstation. If
  656.    you are running on a network, you are required to license a separate
  657.    copy for each workstation or a file server license for each file server.
  658.    If you are running on a multiuser operating system such as Concurrent
  659.    DOS, you are required to license a copy for each workstation. Everyone
  660.    who uses this menu, must license a copy unless several people share the
  661.    same workstation.
  662.  
  663.    This software is licensed and not sold. The license begins when Computer
  664.    Tyme recieves payment in full. You may not transfer, sell, sublease or
  665.    rent this software without the written consent of Computer Tyme. You are
  666.    not allowed to distribute MarxMenu in runtime form with software you
  667.    developed unless it is in combination with a paid for copy of MarxMenu,
  668.    or you have made special arrangements in writing with Computer Tyme to
  669.    do so.
  670.  
  671.    Use of this product constitutes your acceptance of the terms and
  672.    conditions of this license and of my copyright and your agreement to
  673.    abide by these terms and conditions.
  674.  
  675.    WARRANTY:   WARRANTY:   WARRANTY:
  676.  
  677.    The warranty is limited to the diskettes to be machine readable for a
  678.    period of 30 days after purchase. Although we try hard to write perfect
  679.    software that has no bugs, we do not guarantee that. We also do not
  680.    guarantee that this product is fit for every purpose and we are not
  681.    liable for any damages that might occur from use of this product. This
  682.    agreement is governed by the laws of the State of Missouri.
  683.  
  684.  
  685.  
  686.    Computer Tyme MarxMenu Users Manual                     Page 2
  687.    _______________________________________________________________
  688.  
  689.  
  690.    ACKNOWLEDGMENTS:   ACKNOWLEDGMENTS:   ACKNOWLEDGMENTS:
  691.  
  692.    I would like to thank the following people for making this product
  693.    possible:
  694.  
  695.    Joe Smith and Kevin Moore for helping write this manual. My wife Vicki
  696.    for being good to me and helping with revisions and editing.
  697.  
  698.    The Computer Tyme staff for being the best employees in the world.
  699.  
  700.    Borland International for writing Turbo Pascal and keeping it bug free
  701.    and well supported.
  702.  
  703.    TurboPower Software for their very powerful extensions to Turbo Pascal
  704.    and their well written, well supported product.
  705.  
  706.    Semware for TEdit and QEdit, their full screen editors.
  707.  
  708.    All users who actually paid for this product so that we may continue to
  709.    eat.
  710.  
  711.    Those of you who have pointed out bugs and made suggestions to improve
  712.    our product.
  713.  
  714.    TRADEMARKS   TRADEMARKS   TRADEMARKS
  715.  
  716.    MarxMenu, DOS ToolBox, Directory Master, and The Network Survival Kit
  717.    are trademarks of Computer Tyme.
  718.  
  719.     QEdit and TEdit are trademarks of SemWare.
  720.     Lotus is a registered trademark of Lotus Development.
  721.     Wordstar is a registered trademark of MicroPro International.
  722.     Smart Software is a trademark of Informix.
  723.     MS-DOS is a trademark of Microsoft.
  724.     Concurrent DOS and DR-DOS are trademarks of Digital Research.
  725.     Turbo Pascal is a trademark of Borland International.
  726.     OPRO and TPRO are trademarks of TurboPower Software
  727.     Netware and Novell are trademarks of Novell
  728.     DesqView and QEMM are trademarks of Quarterdeck
  729.     IBM is a trademark of International Business Machines
  730.  
  731.     Created using Turbo Pascal
  732.     Copyright 1983-90 by Borland International
  733.  
  734.    THE MARXMENU NAME   THE MARXMENU NAME   THE MARXMENU NAME
  735.  
  736.    When I first wrote this program my friends referred to it as Marc's
  737.    Menu. That's where the name MarxMenu came from. It has nothing to do
  738.    with either Carl or Groucho Marx.
  739.  
  740.  
  741.  
  742.    Computer Tyme MarxMenu Users Manual                     Page 3
  743.    _______________________________________________________________
  744.  
  745.  
  746.    TECHNICAL SUPPORT   TECHNICAL SUPPORT   TECHNICAL SUPPORT
  747.  
  748.    Technical support for MarxMenu is provided several ways. The first is by
  749.    calling our voice line 1-417-866-1222. We would ask that you not call
  750.    the 800 number as that is for orders and ordering information only.
  751.  
  752.    We have several support staff and will try to answer your questions as
  753.    quickly and efficiently as possible. We at Computer Tyme look at
  754.    technical support as an opportunity to improve our product.
  755.  
  756.    We also have a 24 hour BBS system. This allows users with modems to
  757.    leave messages about support issues. There are several user uploaded
  758.    menus here and it serves as a forum for MarxMenu users to share ideas
  759.    and techniques.
  760.  
  761.    Our BBS number is 1-417-866-1665. Supports 2400 baud but is 1200 baud
  762.    compatible. Use 8 bits, no parity, 1 stop bit (8N1). You will also need
  763.    to set your terminal emulation mode to ANSI or VT100.
  764.  
  765.    On our BBS are additional sample menu files that other MarxMenu users
  766.    like yourself have uploaded. We encourage you to share your work with
  767.    others so that yet more MarxMenu users can benefit.
  768.  
  769.    We are also available on Compuserve ID 76505,1120.
  770.  
  771.    We also offer a Fast Update Service which includes regular upgrades sent
  772.    to you automatically as we come out with them. This doesn't mean every
  773.    version of MarxMenu, but every so often after making several
  774.    improvements and the product is at a stable point. The Fast Update
  775.    Service includes special access to our support BBS.
  776.  
  777.    This service is for the very fierce MarxMenu user who has to have the
  778.    "Latest and Greatest" all the time.
  779.  
  780.    OVERVIEW OF THE MARXMENU SYSTEM   OVERVIEW OF THE MARXMENU SYSTEM   OVERVIEW OF THE MARXMENU SYSTEM
  781.  
  782.    MarxMenu is not just another fill-in-the-blank menu system. It is a menu
  783.    programming language and job control language. It gives you total
  784.    freedom to do whatever you want, but total freedom has a price. You will
  785.    need to know and understand how to use a text editor. This isn't
  786.    difficult if you are familiar with using a word processor. And you will
  787.    need to have a basic understanding of DOS and how batch files work.
  788.  
  789.    With a text editor you can create a menu file which is a text file with
  790.    an MNU extension. Or, you can copy and then modify the text file
  791.    SAMPLE2.MNU which displays the menus you see when MarxMenu is executed.
  792.    This text file contains a set of instructions for MarxMenu to follow.
  793.    MarxMenu will then read your menu file and run the instructions.
  794.  
  795.     A menu file might look as follows:
  796.  
  797.  
  798.  
  799.    Computer Tyme MarxMenu Users Manual                     Page 4
  800.    _______________________________________________________________
  801.  
  802.  
  803.     DrawBox 31 5 18 4
  804.     UseArrows
  805.     Writeln   '  W - WordStar'
  806.     Write     '  L - Lotus'
  807.  
  808.     OnKey 'W'
  809.        CD\WORDSTAR
  810.        WS
  811.  
  812.     OnKey 'L'
  813.        CD\LOTUS
  814.        LOTUS
  815.  
  816.    The above example is a fully working MarxMenu program. Just because
  817.    MarxMenu has 500 commands doesn't mean you have to use them all. The
  818.    reason there are so many commands is that people keep calling me up and
  819.    asking if I can add such and such. Most of the time I do. That's why the
  820.    manual gets behind sometimes.
  821.  
  822.    The instructions must be from the vocabulary of words that MarxMenu
  823.    understands. These words make up the command list included in this
  824.    manual. They must be used precisely as the instructions in this manual
  825.    tell you to use them. This process is called programming.
  826.  
  827.    I know that for many of you the word programming is a scary word. Put
  828.    your fears at ease, MarxMenu is one of the easiest programming languages
  829.    there is. It is a little harder than writing batch files and a lot
  830.    easier than Basic. It requires a working knowledge of DOS and an
  831.    understanding of writing batch files as explained in your DOS manual.
  832.  
  833.    The point that I want to make is, do not let the fear of learning and
  834.    the fear of programming prevent you from learning to write your own
  835.    menus. If you have never touched a computer before and are sitting down
  836.    with your first PC, read the manuals first. Become familiar with the
  837.    MS-DOS operating system. Learn how to write batch files, make
  838.    subdirectories, copy files, format floppies, etc. If you don't
  839.    understand something, ask a friend. All of us had to learn sometime, and
  840.    there is no such thing as a stupid question.
  841.  
  842.    After you have mastered some of the basic concepts of the operating
  843.    system, then learn either TEDIT or MarxEdit. These are text editors
  844.    included with your MarxMenu program. Use it to write your own batch
  845.    files. Then attempt to write your own menus by modifying the sample
  846.    menus (files with a MNU extension) which come with MarxMenu. Print these
  847.    menus and study them, referring to this manual for help on command
  848.    definitions. You do not have to completely understand them to start
  849.    making changes. Programming is a trial and error process.
  850.  
  851.  
  852.  
  853.    Computer Tyme MarxMenu Users Manual                     Page 5
  854.    _______________________________________________________________
  855.  
  856.  
  857.    A computer, like a musical instrument, is only as good as the player.
  858.    The more you learn about it the more you'll find it can do. In fact, a
  859.    computer can help raise your effective IQ as you learn the disciplines
  860.    of logic and reason. As a hammer is a tool of the hand, enhancing your
  861.    physical strength, a computer is a tool of the mind, enhancing your
  862.    mental strength. You will learn that as you develop a relationship with
  863.    your computer, that you will be able to process information in ways you
  864.    never dreamed.
  865.  
  866.    MarxMenu is an excellent learning tool. By the time you become
  867.    proficient with the menu language, you will have learned the fundamental
  868.    concepts behind the MS-DOS operating system. You will find yourself
  869.    going back and forth between this manual and the DOS manual that came
  870.    with your computer. When you master the language, you will have enough
  871.    computing skills to be a real resource in your office environment. In
  872.    this day and age, knowing how to "make the damn things work" is a key in
  873.    moving up the corporate ladder.
  874.  
  875.    If you have sufficient excess income to afford a personal computer, or
  876.    are in a job that provides you with a workstation, you are smart enough
  877.    to learn this program. All it requires is that you take the time. You
  878.    can do it. It is worth your time, and you will make up the time spent in
  879.    the results you'll get. Good luck and enjoy.
  880.  
  881.    WHAT MARXMENU DOES   WHAT MARXMENU DOES   WHAT MARXMENU DOES
  882.  
  883.    So with hundreds of menus on the market, what makes this one so great.
  884.    Well, let me tell you about it. MarxMenu is a menu language rather than
  885.    a fill in the blank kind of menu. MarxMenu gives you total control of
  886.    your computer system.
  887.  
  888.    It is also a job control language allowing you to program processes too
  889.    difficult to do with batch files. MarxMenu can be used to do anything
  890.    from overnight batch job processing to generating control scripts for
  891.    mainframes.
  892.  
  893.    Because of it's simple syntax, MarxMenu makes an excellent teaching
  894.    language putting more programming power in the hands of the student
  895.    programmer than any other programming language.
  896.  
  897.    As a menu, MarxMenu can be as simple or as complex as you want. If you
  898.    want simple, nothing is easier. If you want POWER, nothing is more
  899.    powerful. If you want to get really weird, MarxMenu can do really wierd.
  900.  
  901.    So if you want the menu to remind you to go vote, MarxMenu knows when
  902.    the first Teusday after the first Monday in November on even years is.
  903.    If you are into Astrology, and you want certain menu items to appear
  904.    only if Mars is in the right place in the sky, MarxMenu can calculate
  905.    the orbit of Mars for you.
  906.  
  907.  
  908.  
  909.    Computer Tyme MarxMenu Users Manual                     Page 6
  910.    _______________________________________________________________
  911.  
  912.  
  913.    MarxMenu can be used to program games, write running software demos and
  914.    online tutorial programs. It can be used to write testing programs. It
  915.    can be used to write custom software installation programs. It can be
  916.    used to assist other applications to make other software more network
  917.    friendly.
  918.  
  919.    MarxMenu has a compiler for high speed execution. Even very large menus
  920.    come up in under 4 seconds on a 4.77mhz IBM XT on an ArcNet lan. The
  921.    compiler also provides security in that you can keep your source files
  922.    separate so no one can alter the menu files.
  923.  
  924.    FOR THE POWER USER:   FOR THE POWER USER:   FOR THE POWER USER:
  925.  
  926.    I originally wrote MarxMenu on a dare. I said that in one afternoon I
  927.    could write a better menu system than one of the most popular menu
  928.    systems. I met the challenge and then found that there is a lot of
  929.    demand for power in a menu system. Friends started asking for this and
  930.    that feature and this program has gone far beyond what I ever intended.
  931.  
  932.    The demand for more features has outpaced my ability to keep up with the
  933.    documentation standards that I expect from other software packages that
  934.    I buy. Please bear with me. If you find any errors in the manual, or
  935.    bugs in the program, please let me know and I'll try to correct any
  936.    problems.
  937.  
  938.    I also appreciate your suggestions for improvements. Many of the
  939.    features included are a result of requests you have made. Many of you
  940.    are using this program in ways I never dreamed.
  941.  
  942.    The main design philosophy behind this product is POWER and Flexibility.
  943.    I am also committed to keeping the source code as readable as possible.
  944.    I am loyal to the concept of using NO RAM. None of MarxMenu stays
  945.    resident. Because of this I can claim that if you are having some kind
  946.    of problem, it's not the fault of MarxMenu being resident, because
  947.    MarxMenu is not resident. Also, using NO RAM allows loading of TSR's
  948.    (memory resident programs) from the menu.
  949.  
  950.    For computer consultants, MarxMenu is an excellent way to make money.
  951.    You can provide your clients with professional looking menu systems
  952.    customized (by you) to fit their needs. You can provide complex menu
  953.    structures not possible with any other menu system. And, because
  954.    MarxMenu uses NO RAM, you don't have to worry about conflicts between
  955.    MarxMenu and any other software product.
  956.  
  957.    Although MarxMenu is copyrighted, the program is not copy protected.
  958.    There is nothing to prevent you from making hot copies and giving them
  959.    away to all your clients. I would like to point out that when you give
  960.    away something you should be selling you lose respect from your clients
  961.    and attract those who expect you to work for free. You will make more
  962.    money if you play by the rules. My best and most profitable clients use
  963.    no hot software whatsoever. Think about it.
  964.  
  965.  
  966.  
  967.    Computer Tyme MarxMenu Users Manual                     Page 7
  968.    _______________________________________________________________
  969.  
  970.  
  971.    INSTALLATION   INSTALLATION   INSTALLATION
  972.  
  973.    You may wish to copy the MarxMenu system into it's own subdirectory
  974.    called MARX to keep the files better organized. However, this is not
  975.    necessary. Copy all the disks that come with MarxMenu into a directory
  976.    on your hard disk or network.
  977.  
  978.    If you do put the menu system in a subdirectory, it must be path
  979.    accessible. That is, you must have a path statement in your autoexec.bat
  980.    file that includes the directory where the menu system resides. A
  981.    typical path statement might look like this:
  982.  
  983.     PATH=C:\;C:\DOS;C:\MARX;
  984.  
  985.    Copy all your Computer Tyme disks to the hard disk or network and type
  986.    MARXINST. When it gets done, you can run some of the sample menus by
  987.    typing MARX <menu>.
  988.  
  989.    -------------------- V E R Y * I M P O R T A N T ----------------------
  990.  
  991.    MarxMenu requires up to 100 bytes of free environment space. It won't
  992.    run properly without it. The way you get more environment space is to
  993.    add a SHELL command to your CONFIG.SYS file.
  994.  
  995.     SHELL=COMMAND.COM /P /E:nnn
  996.  
  997.    Where NNN is the number of bytes for the environment to reserve. Note
  998.    that if you are running DOS that is earlier than 3.3 then NNN is the
  999.    number of 16 byte blocks to allocate for the environment.
  1000.  
  1001.    For DOS 3.3 or later:
  1002.  
  1003.     SHELL=COMMAND.COM /P /E:400
  1004.  
  1005.    For DOS earlier than 3.3:
  1006.  
  1007.     SHELL=COMMAND.COM /P /E:25
  1008.  
  1009.    If MarxMenu gives you an environment space error, this is where you go
  1010.    to fix it.
  1011.  
  1012.    INSTALLING THE NETWORK SURVIVAL KIT   INSTALLING THE NETWORK SURVIVAL KIT   INSTALLING THE NETWORK SURVIVAL KIT
  1013.  
  1014.    The Network Survival Kit is installed by copying the distribution disk
  1015.    into a directory on your server and typing INSTALL. It will unpack into
  1016.    about 2.5 megs of programs and documentation. Be sure to print out the
  1017.    DOC files on any programs you are interested in and print out the
  1018.    MARXREAD.ME and MARXREAD.ME2 files.
  1019.  
  1020.    Make sure you do not run the install from the floppy disk.
  1021.  
  1022.  
  1023.  
  1024.    Computer Tyme MarxMenu Users Manual                     Page 8
  1025.    _______________________________________________________________
  1026.  
  1027.  
  1028.    THE MARX.BAT FILE   THE MARX.BAT FILE   THE MARX.BAT FILE
  1029.  
  1030.    In order for MarxMenu to work, a MARX.BAT file must be created. This is
  1031.    done by typing MARXINST. The first thing that MARXINST does is unpack
  1032.    the compressed menu files and documentation files. Then it will bring up
  1033.    the installation menu.
  1034.  
  1035.    The MARX.BAT file looks like this:
  1036.  
  1037.     @ECHO OFF
  1038.     C:\MARX\MARXMENU.EXE %1
  1039.     %MXCMD%
  1040.     %0 %1
  1041.  
  1042.    The first line of MARX.BAT turns the echo off. This may be changed to
  1043.    ECHO ON for debugging purposes. PAUSE commands can be inserted to debug
  1044.    a menu. This allows you to see what's going on.
  1045.  
  1046.    The second line of MARX.BAT runs MARXMENU.EXE. The second parameter %1
  1047.    is the name of the menu file to run. A third parameter can be added to
  1048.    tell MarxMenu to use a specific directory for creating temporary batch
  1049.    files. Otherwise MarxMenu will create temporary batch files in the same
  1050.    directory as MARXMENU.EXE.
  1051.  
  1052.    When the user selects a program to run, MarxMenu writes a temporary
  1053.    batch file which contains within it the commands to run the program.
  1054.    Then MarxMenu writes a command to the environment variable MXCMD to
  1055.    execute the temporary batch file and exits.
  1056.  
  1057.    What it writes depends on the version of DOS you are running. If you are
  1058.    running DOS 3.3 or later, MXCMD is set to CALL <batch>. If you are
  1059.    running an earlier version of DOS then MXCMD is set to COMMAND /C
  1060.    <batch>.
  1061.  
  1062.    Whatever command is written to MXCMD is executed in line 3. This usually
  1063.    calls the temporary batch file that MarxMenu created. This executes your
  1064.    program and returns to MARX.BAT.
  1065.  
  1066.    Line four jumps back to the beginning of the batch file and starts all
  1067.    over. %0 is MARX.BAT and %1 is the name of the menu you are running.
  1068.  
  1069.             MARX.BAT
  1070.             --------   +--MarxMenu Creates--+
  1071.      +----> @ECHO OFF  |                    |
  1072.      |      MARXMENU.EXE %1                 |
  1073.      |      %MXCMD% >--+                    +-> $MX00000.BAT
  1074.      | +--> %0 %1 --+  |                        ------------
  1075.      | |            |  +----------------------> CD\WORDSTAR
  1076.      +-|------<-----+                           WS --+
  1077.        |                                             |
  1078.        +-------------------------------------------<-+
  1079.  
  1080.  
  1081.  
  1082.    Computer Tyme MarxMenu Users Manual                     Page 9
  1083.    _______________________________________________________________
  1084.  
  1085.  
  1086.     Note: MarxMenu sets MXCMD = CALL $MX00000.BAT
  1087.  
  1088.    You can also tell MarxMenu where to put it's temporary batch files by
  1089.    setting an environment variable TEMP to point to a temporary file
  1090.    directory.
  1091.  
  1092.     Example: SET TEMP=F:\TMPFILES
  1093.  
  1094.    This is compatible with the way DOS 5 and Windows uses temp files.
  1095.  
  1096.    When you exit the menu system. MarxMenu sets MXCMD to MXSTOP. This jumps
  1097.    to a batch file called MXSTOP which gets you out of MARX.BAT. MXSTOP.BAT
  1098.    can be modified to control what happens when MarxMenu is exited.
  1099.  
  1100.    The default MXSTOP.BAT file is as follows.
  1101.  
  1102.     SET MXCMD=
  1103.     SET KSV=
  1104.     REM You can control menu exiting with this file!
  1105.  
  1106.    Note that by adding your own commands to MXSTOP that you can control
  1107.    what happens when you exit. You could loop right back to the menu if you
  1108.    want. Or, you could force a controlled network logoff.
  1109.  
  1110.    I strongly recommend upgrading to DOS 3.3 or later whenever it is
  1111.    possible to do so.
  1112.  
  1113.    The name of the temporary batch file is as follows:
  1114.  
  1115.                      $MX00000.BAT
  1116.                          ||||
  1117.            Shells--------+|++--------Network Station (Hex)
  1118.                      Task Number
  1119.  
  1120.    The 5 zeros are used for single user versions of MarxMenu. On a network
  1121.    they change as follows:
  1122.  
  1123.    The last 2 zeros is the station number on the network. This is either
  1124.    read directly from the shell, if you are using Novell, or from the
  1125.    environment variable STATION if you are on another network. The third
  1126.    zero is the task number if you are running DesqView, or from an
  1127.    environment variable TASK if you are running some other multitasker.
  1128.  
  1129.    The second zero is replaced by one less than the number of COMMAND.COM
  1130.    shells you are running. This way if you run COMMAND.COM under MarxMenu
  1131.    and then run MarxMenu again under that, it doesn't get lost when you
  1132.    exit.
  1133.  
  1134.    The first zero is for future expansion. In case something comes along
  1135.    that I haven't thought of.
  1136.  
  1137.  
  1138.  
  1139.    Computer Tyme MarxMenu Users Manual                     Page 10
  1140.    _______________________________________________________________
  1141.  
  1142.  
  1143.    If you want to do custom tricks, MarxMenu has an internal variable
  1144.    called MxCmd. Setting this to your own command overrides the way
  1145.    MarxMenu would normally use it.
  1146.  
  1147.    But now you ask, does MarxMenu leave a trail of batch files that will
  1148.    clutter up my drive or network? Not at all. MarxMenu keeps using the
  1149.    same names over and over again. If a user crashed his system, it might
  1150.    leave a batch file but it would be overwritten the next time he used the
  1151.    menu. Not only that, all batch files can be kept in the same directory
  1152.    so cleaning up is as simple as typing DEL $MX*.BAT!
  1153.  
  1154.    By writing to the MxCmd variable you can run an EXE or COM file directly
  1155.    without having to create another batch file.
  1156.  
  1157.     Example:
  1158.        OnKey 'M'
  1159.           |MxCmd = 'RAMMAP'
  1160.  
  1161.    This runs RamMap directly from the MARX.BAT file.
  1162.  
  1163.    Another trick is to run another batch file without the CALL statement.
  1164.    This creates a one way jump to another batch file.
  1165.  
  1166.    Another debugging feature. You can change the first line of the MARX.BAT
  1167.    file as follows:
  1168.  
  1169.     @ECHO %MXECHO%
  1170.  
  1171.    This allows you to turn the echo on for debugging purposes by typing:
  1172.  
  1173.     SET MXECHO=ON
  1174.  
  1175.    This way you don't have to change the MARX.BAT file to debug. If you use
  1176.    this, make sure that MXECHO is set to either ON or OFF.
  1177.  
  1178.    DROPTO.BAT   DROPTO.BAT   DROPTO.BAT
  1179.  
  1180.    If you are going to run a shell like COMMAND.COM under MarxMenu it is
  1181.    sometimes better to use DROPTO.BAT which is created during the install
  1182.    process. DropTo allows you to jump from the temporary batch file that
  1183.    MarxMenu creates to DropTo, which deletes the temporary batch file and
  1184.    executes the rest of the command line.
  1185.  
  1186.     Usage: DROPTO %0 COMMAND.COM
  1187.  
  1188.    If you are using DropTo inside a MarxMenu, the %0 is automatically added
  1189.    for you.
  1190.  
  1191.     Example:
  1192.        OnKey 'C'
  1193.           DropTo COMMAND.COM
  1194.  
  1195.  
  1196.  
  1197.    Computer Tyme MarxMenu Users Manual                     Page 11
  1198.    _______________________________________________________________
  1199.  
  1200.  
  1201.     DROPTO.BAT
  1202.     ----------
  1203.     DEL %1
  1204.     SET KSV=
  1205.     SET MXCMD=
  1206.     %2 %3 %4 %5 %6 %7 %8 %9
  1207.  
  1208.    Here's how it works:
  1209.  
  1210.         $MX00000.BAT <------deletes this file--------+
  1211.         ------------                                 |
  1212.         DROPTO %0 COMMAND.COM ------------> DEL %1 >-+
  1213.                                             SET KSV=
  1214.                                             SET MXCMD=
  1215.                  %2 executes COMMAND.COM--> %2 %3 %4 %5 %6 %7 %8 %9
  1216.  
  1217.    The advantages are that the temporary batch file is eliminated so if the
  1218.    user never returns to the menu, it leaves no temporary file to clutter
  1219.    up the drive. Also, DROPTO.BAT becomes the pending batch file that is
  1220.    running rather than the temporary file.
  1221.  
  1222.    SUPPORT FOR EARLY DOS VERSIONS   SUPPORT FOR EARLY DOS VERSIONS   SUPPORT FOR EARLY DOS VERSIONS
  1223.  
  1224.    There are two main differences between DOS versions earlier than 3.3 and
  1225.    versions 3.3 and above. One is the CALL command for batch files and the
  1226.    other is the way you specify environment space when using COMMAND.COM.
  1227.  
  1228.    I have enhanced the support for early DOS versions (3.0, 3.1, 3.2).
  1229.    MarxMenu executes COMMAND /C /E:nn (batchfile) >NUL to have one batch
  1230.    file call another. The first two lines of the batch files created are as
  1231.    follows:
  1232.  
  1233.     ECHO OFF
  1234.     CTTY CON
  1235.     ....
  1236.  
  1237.    This eliminates the ECHO OFF from being seen.
  1238.  
  1239.    Also whenever possible, when MarxMenu loads up a copy of COMMAND.COM, it
  1240.    adds the /E:nnn command to set the environment space to the same as that
  1241.    of the Master Environment. In versions earlier then 3.3 it is translated
  1242.    to paragraphs instead of bytes.
  1243.  
  1244.    One thing to note in early versions of DOS. If you run a batch file
  1245.    under COMMAND /C and your batch file has SET commands to set environment
  1246.    variables, the changes you make will disappear as soon as you get back
  1247.    to MARX.BAT. Why? Because you loaded another COMMAND.COM and the SET
  1248.    commands set its environment. When this COMMAND.COM ends, it takes its
  1249.    environment with it. Under DOS 3.3 or later, which uses CALL instead of
  1250.    another shell, the SET commands live. (Yet another reason to upgrade).
  1251.  
  1252.  
  1253.  
  1254.    Computer Tyme MarxMenu Users Manual                     Page 12
  1255.    _______________________________________________________________
  1256.  
  1257.  
  1258.    ABOUT ENVIRONMENT VARIABLES   ABOUT ENVIRONMENT VARIABLES   ABOUT ENVIRONMENT VARIABLES
  1259.  
  1260.    I've been talking a lot about environment variables. Some of you out
  1261.    there in novice land don't know what an environment variable is. Many
  1262.    others don't know the intricate secrets handed down from the Great DOS
  1263.    Masters who know all the intricate undocumented features of DOS.
  1264.  
  1265.    Your DOS shell, COMMAND.COM owns an area of memory called the Master
  1266.    Environment. It contains strings in the form Name=Value. Included among
  1267.    those strings are your COMSPEC and your PATH. Your COMSPEC tells DOS and
  1268.    other programs where to find COMMAND.COM. Your PATH tells DOS and other
  1269.    programs what directories to search when loading programs. Another
  1270.    common environment variable is your PROMPT. This controls what your DOS
  1271.    prompt will look like.
  1272.  
  1273.    Environment variables are commonly set using the SET command. This is
  1274.    done by typing SET NAME=VALUE.
  1275.  
  1276.     Example:
  1277.        SET COLOR=BLUE
  1278.  
  1279.    So what does this actually do? Actually nothing, unless you have a
  1280.    program that reads the environment variables that is looking for one
  1281.    called COLOR. This way, environment variables can be used to leave
  1282.    messages to other programs and control how they behave.
  1283.  
  1284.    Besides leaving messages, environment variables can be accessed by batch
  1285.    files. If you use %NAME% in a batch file, DOS will substitute the VALUE
  1286.    of the variable for the %NAME% expression. And this feature is important
  1287.    to MarxMenu's operation.
  1288.  
  1289.    MarxMenu uses an environment variable called MXCMD. In the MARX.BAT file
  1290.    the third line is %MXCMD%. So MarxMenu controls MARX.BAT by writing
  1291.    values to MXCMD.
  1292.  
  1293.    In order to do this, there must be enough room in the environment for
  1294.    the command to fit. That is why you need to make sure that you have a
  1295.    SHELL command in your CONFIG.SYS to set space for MarxMenu to use.
  1296.  
  1297.    Now so far I've only talked about the Master Environment. That's the one
  1298.    that the first COMMAND.COM owns. Each program that is loaded, including
  1299.    TSRs, gets a copy of the Master Environment in its own environment. This
  1300.    is called the CURRENT Environment.
  1301.  
  1302.    One interesting feature of the Current Environment is that it is smaller
  1303.    than the Master Environment. DOS only creates enough space to hold a
  1304.    copy of the space used in the Master Environment and a little more to
  1305.    store the name of the program that is running.
  1306.  
  1307.  
  1308.  
  1309.    Computer Tyme MarxMenu Users Manual                     Page 13
  1310.    _______________________________________________________________
  1311.  
  1312.  
  1313.    If one program executes another program, the environment of the parent
  1314.    program is called the Parent Environment. You will probable never need
  1315.    to deal with the Parent Environment but MarxMenu can access it in case
  1316.    you do.
  1317.  
  1318.    Another environment is the SHELL ENVIRONMENT. This is the one that THEY
  1319.    never talk about. The one you'll never read about in any books. The one
  1320.    you'll never learn about in any DOS classes. This is the one your
  1321.    parents never mentioned.
  1322.  
  1323.    The Shell Environment is normally the same as the Master Environment.
  1324.    But, if you are running more that one level of COMMAND.COM, the Shell
  1325.    Environment is the environment of the last COMMAND.COM in memory. This
  1326.    environment is the most important environment to MarxMenu.
  1327.  
  1328.    So why load up two or more COMMAND.COMs? There are several cases where
  1329.    this could occur. One case is when you want to run COMMAND.COM as a
  1330.    program under MarxMenu. This way you can type EXIT to get back to the
  1331.    menu. If you do this and then run MarxMenu again, you have two levels of
  1332.    COMMAND.COM. In this case, the first COMMAND.COM is the Master
  1333.    Environment and the second COMMAND.COM is the Shell Environment.
  1334.  
  1335.    Another place where more than one COMMAND.COM is used is if you are
  1336.    running Microsoft Windows 3 or DesqView. Both of these programs are able
  1337.    to run a DOS shell. When you do, this is a second level of COMMAND.COM.
  1338.  
  1339.    What is important is that SET commands and %NAME% commands in batch
  1340.    files deal only with the Shell Environment and not the Master
  1341.    Environment.
  1342.  
  1343.    DEALING WITH MULTIPLE DOS SHELLS   DEALING WITH MULTIPLE DOS SHELLS   DEALING WITH MULTIPLE DOS SHELLS
  1344.  
  1345.    If you are running more than one level of COMMAND.COM (Shelling from
  1346.    Windows, DesqView, Word Perfect Office) and having environment space
  1347.    problems here's a trick. Before you load up your fancy shells, put this
  1348.    in a batch file like your AUTOEXEC.BAT.
  1349.  
  1350.     SET MXCMD=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  1351.  
  1352.    This variable will be trashed by MarxMenu thus freeing up the
  1353.    environment space it occupied. This will not only allow MarxMenu to run
  1354.    but may solve problems with other programs you are running that need
  1355.    environment space as well.
  1356.  
  1357.  
  1358.  
  1359.    Computer Tyme MarxMenu Users Manual                     Page 14
  1360.    _______________________________________________________________
  1361.  
  1362.  
  1363.    MARXMENU AND TSR CONTROL   MARXMENU AND TSR CONTROL   MARXMENU AND TSR CONTROL
  1364.  
  1365.    MarxMenu along with the TSR utilities that come with MarxMenu, can load
  1366.    and unload TSRs under menu control. This is handy when you want to run a
  1367.    big application and need to free up some memory to do it. Since MarxMenu
  1368.    is a 0k menu system, unloading TSRs is possible but it has it's tricks.
  1369.  
  1370.    The problem you run into is that when one batch file calls another batch
  1371.    file, the way MarxMenu normally runs, DOS creates a small batch file
  1372.    control block in memory. This control block stays in memory after the
  1373.    TSR is released creating a region of trapped memory. Although this
  1374.    memory is freed, it isn't usable.
  1375.  
  1376.    The way around it is to jump to the batch file that releases memory
  1377.    instead of calling it. This is done by setting MXCMD to the name of the
  1378.    batch file you want to run. The only problem is that when you jump to
  1379.    the other batch file, it won't automatically return to MARX.BAT. You
  1380.    must therefore end your batch file with a command bringing you back to
  1381.    MARX.BAT.
  1382.  
  1383.     MEMHOG.BAT
  1384.     -----------
  1385.     Rem UnLoad SideKick
  1386.     RELEASE SK
  1387.     CD\MEMHOG
  1388.     MEMHOG
  1389.     MARK SK
  1390.     SK
  1391.     MARX MAIN
  1392.  
  1393.    In your MAIN menu:
  1394.  
  1395.     OnKey 'H'
  1396.        |MxCmd = MEMHOG
  1397.  
  1398.    See the documentation file on the TSR utilities disk for more
  1399.    information on how to use MARK and RELEASE.
  1400.  
  1401.  
  1402.  
  1403.    Computer Tyme MarxMenu Users Manual                     Page 15
  1404.    _______________________________________________________________
  1405.  
  1406.  
  1407.    NETWORK USERS:   NETWORK USERS:   NETWORK USERS:
  1408.  
  1409.    The main thing you have to worry about on a network is to make sure that
  1410.    when MarxMenu creates a temporary batch file, that it is a different one
  1411.    for each user on the network.
  1412.  
  1413.    This is handled several ways. If you are on a Novell network, MarxMenu
  1414.    uses your station number as part of the name for the temporary batch
  1415.    file. If you are not using Novell, then you will need to set an
  1416.    environment variable STATION for each workstation on your net. Each one
  1417.    has to be a different number.
  1418.  
  1419.     Example:
  1420.        SET STATION=5
  1421.  
  1422.    You must ensure that the user has enough access rights to create
  1423.    temporary batch files in the directory selected for temporary batch
  1424.    files. One solution is to create a batch file directory and give all the
  1425.    users full access rights to it.
  1426.  
  1427.    MarxMenu has been run on about every DOS based network that exists. If
  1428.    the network runs at all it will generally run MarxMenu. Among the
  1429.    networks that come to mind are Novell, Lantastic, Banyan, 3COM, Lan
  1430.    Manager, IBM, DECNET, ConCurrent DOS, and SCO VPIX. MarxMenu is running
  1431.    on networks as small as two users to as large as 20,000 users. In fact,
  1432.    the bigger your network, the more you need MarxMenu.
  1433.  
  1434.    NOVELL USERS:   NOVELL USERS:   NOVELL USERS:
  1435.  
  1436.    Novell is the most popular network on the market. We have added many
  1437.    enhancements for Novell networks to support things like logging in and
  1438.    logging out, drive mapping, group support, software metering, and status
  1439.    information.
  1440.  
  1441.    Although Novell is a high quality solid product it has its own
  1442.    "Personality" and many undocumented features otherwise known as bugs.
  1443.    Most people who are having trouble with MarxMenu under Novell are really
  1444.    having trouble with Novell. Quite frankly, we do more Novell support
  1445.    than we do MarxMenu support.
  1446.  
  1447.    Having said that, I own two Novell networks. One at the lab and one at
  1448.    home and I love my networks. But, I have spent hundreds of hours
  1449.    learning all the tricks. And to save you a phone call, and me a lot of
  1450.    time, I've decided to share these tricks here in my manual.
  1451.  
  1452.    Some of these tricks are from the Great Network Gurus themselves who are
  1453.    so advanced that they no longer exist in physical form. These people
  1454.    live in another dimension of total mental existence and can only be
  1455.    reached my modem. Some of them hang out on Compuserve.
  1456.  
  1457.  
  1458.  
  1459.    Computer Tyme MarxMenu Users Manual                     Page 16
  1460.    _______________________________________________________________
  1461.  
  1462.  
  1463.    I therefore strongly recommend that if you are a serious Novell user
  1464.    that you join Compuserve and hang out in the Novell section. And just
  1465.    because not everyone on Compuserve is a real person doesn't mean that
  1466.    you should feel uncomfortable asking them any question about your
  1467.    network that you need to ask.
  1468.  
  1469.    THE NOVELL MENU TRANSLATOR   THE NOVELL MENU TRANSLATOR   THE NOVELL MENU TRANSLATOR
  1470.  
  1471.    One nice bonus with Novell networks is that MarxMenu can translate your
  1472.    Novell menus to MarxMenu. This saves you the time of having to recode
  1473.    your system. What you do is type:
  1474.  
  1475.     MARXMENU NOVTRANS <menu>
  1476.  
  1477.    This translates your Novell MNU file to a MarxMenu MRX file. Your MNU
  1478.    file is unchanged. MarxMenu creates a TMP file containing the source
  1479.    code for the MRX file. Once you are satisfied with the MarxMenu file,
  1480.    you just delete the MNU file and rename the TMP file to MNU and forget
  1481.    that you ever had a Novell menu.
  1482.  
  1483.    Once the menu is translated you run it by typing MARX <menu> instead of
  1484.    MENU <menu>. MarxMenu can run Novell's menu better than Novell runs
  1485.    their own.
  1486.  
  1487.    LOGGING OUT UNDER MENU CONTROL   LOGGING OUT UNDER MENU CONTROL   LOGGING OUT UNDER MENU CONTROL
  1488.  
  1489.    Logging out under menu control is one of the trickiest things to do. The
  1490.    problem is that as soon as LOGOUT executes, you no longer have access to
  1491.    the network. This means that if you are in a batch file, you are going
  1492.    to get a "Missing Batch File" error, unless the batch file is in the
  1493.    \LOGIN directory.
  1494.  
  1495.    Another problem with logging out is making sure that your COMSPEC is
  1496.    pointing to a COMMAND.COM that is either on the local drive or in the
  1497.    \LOGIN directory. Otherwise you will get a "Cannot load COMMAND.COM"
  1498.    error.
  1499.  
  1500.    Another problem that you need to deal with is that your PATH command
  1501.    needs to be changed so that it doesn't refer to mapped drives that are
  1502.    no longer accessable.
  1503.  
  1504.    What you need to do is create a batch file in the \LOGIN directory
  1505.    called OFF.BAT.
  1506.  
  1507.     Example: F:\LOGIN\OFF.BAT
  1508.  
  1509.     CD\LOGIN
  1510.     SET COMSPEC=C:\COMMAND.COM
  1511.     LOGOUT
  1512.     C:
  1513.     PATH=C:\DOS
  1514.  
  1515.  
  1516.  
  1517.    Computer Tyme MarxMenu Users Manual                     Page 17
  1518.    _______________________________________________________________
  1519.  
  1520.  
  1521.    Setting up an OFF.BAT file is compatible with MarxMenu's automatic
  1522.    network logoff feature. This is where you can set the amount of time to
  1523.    wait at a menu before it automatically logs you off the network.
  1524.  
  1525.    Another way to logout under MarxMenu is to stuff the LOGOUT command into
  1526.    the keyboard buffer and exit MarxMenu.
  1527.  
  1528.     Example:
  1529.        OnKey ESC
  1530.          |StuffKBD 'LOGOUT' + CR
  1531.          |ExitMenu
  1532.  
  1533.    This is the cleanest way when possible.
  1534.  
  1535.    Another logout trick is to use the LOGOFF utility from the Computer Tyme
  1536.    Network Survival Kit. This program automatically fixes your PATH and
  1537.    COMSPEC after the logoff occurs.
  1538.  
  1539.    LOGGING IN WITH MARXMENU   LOGGING IN WITH MARXMENU   LOGGING IN WITH MARXMENU
  1540.  
  1541.    If there is any one thing that's trickier than logging out of a Novell
  1542.    network, is logging in. I have spent MANY hours struggling with Novell
  1543.    trying to get it right and I have finally figured it out. Much of this
  1544.    comes from the Novell gurus who hang out on Compuserve and know
  1545.    everything there is to know about Novell.
  1546.  
  1547.    The first thing you need to do is make up your mind that you are going
  1548.    to do it right. The technique here might seem somewhat cumbersome, but
  1549.    it works well and will keep you out of trouble.
  1550.  
  1551.    MarxMenu has the ability to log you into a network, map your drives, and
  1552.    set your environment strings without having to touch a Novell utility to
  1553.    do so. MarxMenu can completely eliminate the need for Novell login
  1554.    scripts. The advantage to using MarxMenu in the login is that you have
  1555.    the power of 500 commands to work with instead of just 25 or so.
  1556.  
  1557.  
  1558.  
  1559.    Computer Tyme MarxMenu Users Manual                     Page 18
  1560.    _______________________________________________________________
  1561.  
  1562.  
  1563.    THE CONFIG.SYS FILE   THE CONFIG.SYS FILE   THE CONFIG.SYS FILE
  1564.  
  1565.    The place to start is the place where DOS start when DOS boots. You MUST
  1566.    create a CONFIG.SYS file on your boot disk. The CONFIG.SYS tells DOS how
  1567.    many files and buffers to create, what device drivers to load, and the
  1568.    size of the Master Environment.
  1569.  
  1570.    Unless you are using special drivers, BUFFERS=40 and FILES=40 is a good
  1571.    place to start. STACKS 0,0 will gain you an extra 3k of ram. But the
  1572.    most important command is the shell statement. A CONFIG.SYS file might
  1573.    look like this:
  1574.  
  1575.     SHELL=COMMAND.COM /P /E:400
  1576.     BUFFERS=40
  1577.     FILES=40
  1578.     DEVICE=ANSI.SYS
  1579.  
  1580.    This sets up enough environment space to allow MarxMenu and DOS SET
  1581.    commands to work properly. You will also want to load any other device
  1582.    drivers like QEMM386.SYS or 386MAX.SYS to take advantage of other
  1583.    features of your computer. If you don't know about CONFIG.SYS files,
  1584.    read the DOS manual.
  1585.  
  1586.    Note: If you don't have a local hard disk and are booting from a floppy
  1587.    drive, set BUFFERS=4. If you are booting from a diskless workstation,
  1588.    set BUFFERS=1. BUFFERS are used for local drives only and have no effect
  1589.    on network drives. You save 1k of memory for every 2 buffers you don't
  1590.    use.
  1591.  
  1592.    THE AUTOEXEC.BAT FILE   THE AUTOEXEC.BAT FILE   THE AUTOEXEC.BAT FILE
  1593.  
  1594.    After the CONFIG.SYS is loaded the AUTOEXEC.BAT runs next. Here you load
  1595.    up your TSRs and network drivers. There are some important tricks to be
  1596.    used here as well.
  1597.  
  1598.    First of all, never load your network shell from your AUTOEXEC.BAT file.
  1599.    Always have it branch to another batch file called LOADNET to load the
  1600.    network shell. Use the autoexec.bat only to load special TSRs and the
  1601.    IPX. An autoexec.bat might look like this:
  1602.  
  1603.     @Echo Off
  1604.     Cls
  1605.     IPX
  1606.     SET NET=NET4.COM
  1607.     SET COMSPEC=X:COMMAND.COM
  1608.     LOADNET
  1609.  
  1610.  
  1611.  
  1612.    Computer Tyme MarxMenu Users Manual                     Page 19
  1613.    _______________________________________________________________
  1614.  
  1615.  
  1616.    The two SET commands are very important. The first sets a variable
  1617.    called NET to NET4.COM. This will be used later in LOADNET.BAT. By using
  1618.    this variable, you can have users running many different versions of DOS
  1619.    and still use the same LOADNET.BAT file. You could also use a command
  1620.    SET NET=LOADHI EMSNET4.EXE to take advantage of advanced memory manager
  1621.    software.
  1622.  
  1623.    Another trick is to run BESTNET from the Network Survival Kit. BestNet
  1624.    will automatically pick the best network shell and set the NET
  1625.    environment variable for you. You would use the command BESTNET instead
  1626.    of SET NET=NET4.COM in the AUTOEXEC.BAT file.
  1627.  
  1628.    The SET COMSPEC=X:COMMAND.COM is important if you are booting off of
  1629.    either a floppy drive or a diskless workstation. This assumes that X:
  1630.    will eventually be mapped to a directory on the network that has a valid
  1631.    COMMAND.COM in it.
  1632.  
  1633.    It is important to set the comspec BEFORE loading your NET shell. This
  1634.    prevents a problem where Netware wants to go back to the boot disk even
  1635.    after you change the comspec. I don't know why this works but it does.
  1636.    Trust Me. If you are going to use COMMAND.COM on drive C:, ignore this
  1637.    paragraph.
  1638.  
  1639.    Now we go to the LOADNET.BAT file.
  1640.  
  1641.     @Echo Off
  1642.     %NET%
  1643.     SET NET=
  1644.     F:
  1645.     STARTUP
  1646.  
  1647.    The big concept behind LOADNET is that this file is NEVER CHANGED. You
  1648.    put in on all your workstations and in the LOGIN directory and it is
  1649.    EXACTLY THE SAME for every computer in your network. Any changes to
  1650.    individual computers are made in the AUTOEXEC.BAT file.
  1651.  
  1652.    So why is this important. Because if you are running diskless
  1653.    workstations what happens is that while you are booting you have a
  1654.    mythical drive A:. As soon as your NET shell loads this drive
  1655.    dissappears out from under you and you end up in F:\LOGIN. If you are
  1656.    running LOADNET.BAT when this happens you drop out of A:LOADNET.BAT and
  1657.    land in the middle of F:\LOADNET.BAT. And if your LOADNET.BAT is exactly
  1658.    the same file as the LOADNET.BAT in the \LOGIN directory, you take off
  1659.    running like the transition never occured.
  1660.  
  1661.    Even if you are not running on diskless workstations now, you might go
  1662.    to it someday. It also creates good programming habits and helps you
  1663.    boot up cleanly.
  1664.  
  1665.  
  1666.  
  1667.    Computer Tyme MarxMenu Users Manual                     Page 20
  1668.    _______________________________________________________________
  1669.  
  1670.  
  1671.    Lets see what LOADNET does. The first line is @ECHO OFF, that's easy.
  1672.    The second line %NET% executes the network shell that you specified with
  1673.    the SET NET=NET4 command. This actually loads the network shell. The
  1674.    third line clears the NET variable freeing up space for other
  1675.    environment variables. F: switches you to drive F if you aren't there
  1676.    already. And finally STARTUP is the name of yet another batch file you
  1677.    jump to.
  1678.  
  1679.    The STARTUP.BAT file controls what happens AFTER LOADNET runs. This file
  1680.    can be freely changed so that LOADNET.BAT can stay the same. This lets
  1681.    you modify what happens AFTER the network shell is loaded.
  1682.  
  1683.    If you are using Novell's login program STARTUP.BAT might look like
  1684.    this:
  1685.  
  1686.     @Echo Off
  1687.     LOGIN
  1688.  
  1689.    THE SHELL.CFG FILE   THE SHELL.CFG FILE   THE SHELL.CFG FILE
  1690.  
  1691.    The SHELL.CFG file is used by Netware to configure the Netware shell.
  1692.    You should read the manuals on this to see if you need any of the many
  1693.    option available. I suggest you at least have the following commands in
  1694.    your SHELL.CFG file.
  1695.  
  1696.     cache buffers=4
  1697.     show dots=on
  1698.  
  1699.    The master network gurus tell me that cache buffers are just a waste of
  1700.    memory and do not provide any better performance. Every 2 cache buffers
  1701.    not used saves you 1k of memory. Show dots makes your network compatible
  1702.    with more software utilities and should be set on unless you have some
  1703.    other reason not to.
  1704.  
  1705.    USING A MENU FILE TO LOG IN   USING A MENU FILE TO LOG IN   USING A MENU FILE TO LOG IN
  1706.  
  1707.    If you are going to use MarxMenu to log in instead of Novell's
  1708.    utilities, you will want to print out the sample file LOGIN.MNU on your
  1709.    MarxMenu disk and study it. Your STARTUP.BAT file might look like this:
  1710.  
  1711.     @Echo Off
  1712.     SET BOOTUP=LOGIN
  1713.     MarxMenu Login
  1714.     %BOOTUP%
  1715.  
  1716.    If MarxMenu works correctly, it will change the environment variable
  1717.    %BOOTUP% to point to a file that it creates. If for some reason it fails
  1718.    (you make a mistake in the login), it will execute Novell's login and
  1719.    let you get in and fix it.
  1720.  
  1721.  
  1722.  
  1723.    Computer Tyme MarxMenu Users Manual                     Page 21
  1724.    _______________________________________________________________
  1725.  
  1726.  
  1727.    One word of caution. After modifing this menu, always run MARXCOMP LOGIN
  1728.    to compile it. Otherwise, if you boot up into it you won't have enough
  1729.    access rights to recompile automatically.
  1730.  
  1731.    NOVELL SEMAPHORES   NOVELL SEMAPHORES   NOVELL SEMAPHORES
  1732.  
  1733.    For a detailed explanation of Novell Semaphores, read the Novell
  1734.    manuals. What I've done is to export these functions to MarxMenu. I have
  1735.    implemented them slightly different than Novell did and have hidden all
  1736.    the nasties from you such as semaphore handles. All semaphores are
  1737.    accessed by name only.
  1738.  
  1739.    Here's a brief overview of semaphores. Semaphores are names of shared
  1740.    resources that the server keeps track of. Semaphores have three
  1741.    properties. They have a name, value and number of users. The name can be
  1742.    anything up to 48 characters long. The value is a number from -128 to
  1743.    127. If the value is less than 0, the resource the semaphore represents
  1744.    is considered used up.
  1745.  
  1746.    By opening a semaphore, you increase the number of users by one. By
  1747.    closing it, you decrease the number by one. If a single user opens a
  1748.    semaphore many times, it is only counted as one. When you log out, your
  1749.    semaphores are closed. This is also true if you turn your computer off,
  1750.    but it takes 15 minutes for the server to give up on you.
  1751.  
  1752.    The first user to open a semaphore creates it. The last user to close a
  1753.    semaphore deletes it. When a semaphore is created, a value can be
  1754.    assigned. If a semaphore is opened that already exists, the initial
  1755.    value is ignored.
  1756.  
  1757.    When NovWaitOnSemaphore is called by any user, the value is decremented.
  1758.    If the value is not below zero, NovWaitOnSemaphore returns true.
  1759.    Otherwise it returns false and the value is unchanged. The amount of
  1760.    time that NovWaitOnSemaphore will wait is controlled by the variable
  1761.    NovSemaphoreTimeOut.
  1762.  
  1763.    When NovSignalSemaphore is called by any user, the value is incremented.
  1764.    This allows other users to call NovWaitOnSemaphore and get a True value.
  1765.  
  1766.    NovSemaphoreUsers and NovSemaphoreValue are used to read the status of a
  1767.    semaphore without changing it's value.
  1768.  
  1769.    One of the major differences between how MarxMenu uses semaphores and
  1770.    the way Novell uses them is that normally a semaphore dies when the
  1771.    application finishes. This would normally prevent a 0k menu system from
  1772.    being able to use them. MarxMenu uses an interesting trick where it
  1773.    fools Netware into thinking that the semaphore belongs to another task.
  1774.    This allows the semaphore to live.
  1775.  
  1776.  
  1777.  
  1778.    Computer Tyme MarxMenu Users Manual                     Page 22
  1779.    _______________________________________________________________
  1780.  
  1781.  
  1782.    Semaphores can be tracked using FCONSOLE. Some versions of Netware have
  1783.    a bug in FCONSOLE that reports an open count that is 256 times the real
  1784.    count. Just divide by 256 for the right number.
  1785.  
  1786.    Semaphores can be used for software metering. This allows MarxMenu to be
  1787.    aware of what other users on the network are doing. Here are the basic
  1788.    tools, what you do with them is only limited by your imagination.
  1789.  
  1790.    RUNNING A MARXMENU   RUNNING A MARXMENU   RUNNING A MARXMENU
  1791.  
  1792.    MarxMenus are run by typing MARX and the name of a menu file such as
  1793.    SAMPLE.MNU. As discussed earlier, the menu file is a text file created
  1794.    with a text editor such as TEDIT.
  1795.  
  1796.     Usage: MARX <Menu Filename>
  1797.  
  1798.     Example:
  1799.        MARX SAMPLE
  1800.  
  1801.    In the above example, if SAMPLE.MRX doesn't exist, or is older than
  1802.    SAMPLE.MNU then MarxMenu will automatically load the complier,
  1803.    MARXCOMP.EXE to create a new SAMPLE.MRX file.
  1804.  
  1805.    In the never ending quest for more speed, MarxMenu is somewhat faster to
  1806.    load if you include the MRX extension.
  1807.  
  1808.     Example:
  1809.        MARX SAMPLE2.MRX
  1810.  
  1811.    By specifying the MRX extension, no test is made to compare the file
  1812.    date with the source file. Thus if you have changed the MNU file, you
  1813.    will still be running the old version. In order to force a recompile,
  1814.    type MARXCOMP SAMPLE.
  1815.  
  1816.    CUSTOMIZING MARXMENU SAMPLE FILES   CUSTOMIZING MARXMENU SAMPLE FILES   CUSTOMIZING MARXMENU SAMPLE FILES
  1817.  
  1818.    Included in the MarxMenu package are menu files which you can easily
  1819.    modify to execute your programs and perform other functions you desire.
  1820.    Using TEdit, the text editor included in this package, you can modify
  1821.    and customize these menu files.
  1822.  
  1823.    Also included to demonstrate the power and versatility of the menu
  1824.    system is a menu labeled NIM.MNU. This is a game written in the menu
  1825.    system that demonstrates some of the logic functions and programmability
  1826.    of the system. Use it for reference.
  1827.  
  1828.  
  1829.  
  1830.    Computer Tyme MarxMenu Users Manual                     Page 23
  1831.    _______________________________________________________________
  1832.  
  1833.  
  1834.     Here's a simple example of a menu file:
  1835.     ===================================
  1836.     ClearScreen
  1837.     DrawBox 30 9 25 8
  1838.     Writeln ' 1) Lotus'
  1839.     Writeln ' 2) dBase'
  1840.     Writeln ' 3) Wordstar'
  1841.     Writeln
  1842.     Write 'Select: '
  1843.  
  1844.     OnKey '1'
  1845.        cd\lotus
  1846.        123
  1847.  
  1848.     OnKey '2'
  1849.        cd\db3
  1850.        db3
  1851.  
  1852.     OnKey '3'
  1853.        cd\wordstar
  1854.        ws
  1855.  
  1856.     ====================================
  1857.  
  1858.    Notice in looking at the "OnKey" statements that all I have to do is
  1859.    tell MarxMenu how to get to the program. Although, MarxMenu takes care
  1860.    of reloading itself after exiting a selected program, its does not
  1861.    return to its own subdirectory as many other menu programs do.
  1862.  
  1863.    That means that if you execute a program in another subdirectory, when
  1864.    you come back to the menu, you remain in that subdirectory. If you
  1865.    normally run your applications with a batch file, consider having
  1866.    MarxMenu change directories and execute the program for you. This will
  1867.    eliminate debugging problems caused by the actions of your batch files.
  1868.  
  1869.    MENU ANALYSIS   MENU ANALYSIS   MENU ANALYSIS
  1870.  
  1871.    Let's start a simple analysis of the example menu file shown
  1872.    above. The ClearScreen statement simply clears the screen to
  1873.    give us a fresh workspace for the menu. DrawBox is the command to
  1874.    draw a box on the screen to contain some menu text. The Writeln
  1875.    command writes a line of text to the screen within the box, then
  1876.    positions the cursor on the next line. The menu text shows the
  1877.    available selection keys that the user has access to.
  1878.  
  1879.  
  1880.  
  1881.    Computer Tyme MarxMenu Users Manual                     Page 24
  1882.    _______________________________________________________________
  1883.  
  1884.  
  1885.    ONKEY STATEMENTS   ONKEY STATEMENTS   ONKEY STATEMENTS
  1886.  
  1887.    The OnKey statements control what is actually executed. OnKey
  1888.    statements also allow you to execute hidden commands when you do
  1889.    not want them to appear on the menu screen. One trick I use is to
  1890.    have an OnKey statement define a key that runs TEDIT on my
  1891.    personal menu file. I don't show this key on the menu to keep
  1892.    others from poking around in the file. For additional security
  1893.    a password can also be set up on this key.
  1894.  
  1895.    Normally you enter a line of text as if you were creating a BAT
  1896.    file to run your application. Like batch files, if one of your
  1897.    commands is a batch file, all the statements after it will not
  1898.    execute. To prevent this you can use the CALL command to call a
  1899.    batch file in DOS 3.3 or later, or COMMAND /C in DOS 3.0, 3.1 and
  1900.    3.2.
  1901.  
  1902.    Normally, text displayed under an OnKey statement is the same
  1903.    text as the batch file created by MarxMenu. There are some
  1904.    exceptions. If a line starts with a "|" (vertical bar), the line
  1905.    will be interpreted by MarxMenu instead of being written to a
  1906.    batch file. This allows commands such as "PASSWORD" to be used.
  1907.    String variables can be passed as part of a batch command if the
  1908.    name of the string variable starts with a "%" symbol.
  1909.  
  1910.    The spaces preceding the commands under the OnKey statement are
  1911.    for clarity only. They are not necessary for MarxMenu to function
  1912.    properly.
  1913.  
  1914.    POPUP MENUS   POPUP MENUS   POPUP MENUS
  1915.  
  1916.    If you want to create a popup menu within a menu you can do so by
  1917.    using a "label". A label is a keyword preceded by a colon. To
  1918.    call the popup menu, place the keyword on a line by itself
  1919.    preceded by a carat (Shift 6). The label will precede the popup
  1920.    menu definition.
  1921.  
  1922.    For example if you have a popup menu to load Smart Software, you could
  1923.    name the PopUpMenu Smart. To bring up the Smart PopUpMenu, define a key
  1924.    in your main menu for Smart like this:
  1925.  
  1926.     OnKey 'S'
  1927.        ^Smart
  1928.  
  1929.    The Smart menu itself might look something like this:
  1930.  
  1931.  
  1932.  
  1933.    Computer Tyme MarxMenu Users Manual                     Page 25
  1934.    _______________________________________________________________
  1935.  
  1936.  
  1937.     :Smart
  1938.     BoxHeaderColor ForeColor BackColor
  1939.     BoxBorderColor Yellow Green
  1940.     BoxInsideColor LCyan Green
  1941.     InverseColor Yellow Red
  1942.     BoxHeader = ' Smart Menu '
  1943.     DrawBox 45 16 20 6
  1944.     UseArrows 2 2 16 3
  1945.     ClearLine 205
  1946.     Writeln
  1947.     Writeln '  Data Base'
  1948.     Writeln '  Spread Sheet'
  1949.     Write   '  Word Processor'
  1950.  
  1951.     OnKey 'D'
  1952.       SM D
  1953.  
  1954.     OnKey 'S'
  1955.       |BoxHeaderColor ForeColor BackColor
  1956.       |BoxBorderColor Yellow Green
  1957.       |BoxInsideColor White Green
  1958.       |%1 = PickFile('C:\SMART\SPREAD\*.WS',4,5,17)
  1959.       SM S -ALOAD %1
  1960.  
  1961.     OnKey 'W'
  1962.       |BoxHeaderColor ForeColor BackColor
  1963.       |BoxBorderColor Yellow Green
  1964.       |BoxInsideColor White Green
  1965.       |%1 = PickFile('C:\SMART\WORD\*.DOC',4,5,17)
  1966.       SM W -ALOAD %1
  1967.  
  1968.    While developing the menu, program one of the keys to run your favorite
  1969.    editor on the menu file that you are creating. This way, as soon as the
  1970.    change is made, the results will show when you exit your editor. Since
  1971.    MarxMenu allows versatility in creating the look of your menus, a little
  1972.    trial and error will be required to make things look right.
  1973.  
  1974.  
  1975.  
  1976.    Computer Tyme MarxMenu Users Manual                     Page 26
  1977.    _______________________________________________________________
  1978.  
  1979.  
  1980.    THE CONSOLE   THE CONSOLE   THE CONSOLE
  1981.  
  1982.            +---| Console Functions |---+
  1983.            | 1 - Blank Screen          |
  1984.            | 2 - Set Blank Message     |
  1985.            | 3 - Lock Keyboard         |
  1986.            | 4 - Set Blank Time        |
  1987.            +---------------------------+
  1988.  
  1989.    The Console is a popup menu of built-in functions. To activate the
  1990.    console, press the TAB key. A menu will pop-up in the upper left hand
  1991.    corner of the screen. You can change the position of this popup menu
  1992.    with the ConsolePos function.
  1993.  
  1994.    The first command on the Console screen is Blank Screen. Enter 1 and the
  1995.    screen will blank immediately. It will remain blanked until a key is
  1996.    pressed. Enter 2 on the Console menu and you can change the message
  1997.    displayed on the Blank Screen display.
  1998.  
  1999.    Enter 3 and you will be prompted for a word to lock the keyboard. After
  2000.    you enter the lock word the screen will blank and the keyboard will be
  2001.    locked until the exact lock word is typed. Enter 4 to set the number of
  2002.    minutes to wait before blanking the screen.
  2003.  
  2004.    The lock word feature is handy for times when you must leave the
  2005.    keyboard but don't want menu commands displayed for all to see. It also
  2006.    effectively locks the keyboard so someone can't escape to DOS and test
  2007.    the format command on your hard disk. We run this menu on a Novell
  2008.    Network and don't want to let everyone have access to the Supervisors'
  2009.    power at the touch of the escape key should we leave the keyboard.
  2010.  
  2011.    REPOSITIONING THE TOP WINDOW   REPOSITIONING THE TOP WINDOW   REPOSITIONING THE TOP WINDOW
  2012.  
  2013.    One nice feature you can use to get the windows right is to turn on the
  2014.    scroll lock. This lets you move the top window around the screen using
  2015.    the arrow keys so you can see how it looks. Then you can go into your
  2016.    menu code and set it permanently.
  2017.  
  2018.    Set Scroll Lock to "on". On most keyboards, a scroll lock LED will light
  2019.    up. Now use the arrow keys to move the top window to any position on the
  2020.    screen. Neat Huh?
  2021.  
  2022.  
  2023.  
  2024.    Computer Tyme MarxMenu Users Manual                     Page 27
  2025.    _______________________________________________________________
  2026.  
  2027.  
  2028.    MOUSE SUPPORT   MOUSE SUPPORT   MOUSE SUPPORT
  2029.  
  2030.    If you have a standard mouse driver, MarxMenu will detect it and use it
  2031.    automatically. The left button on the mouse is the same as pressing
  2032.    return. The right button on the mouse is the same as pressing escape.
  2033.    Pressing both buttons on the mouse is the same as pressing the tab key.
  2034.    As of now, I'm not yet using the center button on the mouse for
  2035.    anything.
  2036.  
  2037.    The sensitivity of the mouse can be controlled using the MouseHorizontal
  2038.    and MouseVertical commands.
  2039.  
  2040.    STARTING OFF THE EASY WAY   STARTING OFF THE EASY WAY   STARTING OFF THE EASY WAY
  2041.  
  2042.    For those of you who want to just get a menu going and don't want
  2043.    anything complicated we have included a menu called the LEVEL1 menu.
  2044.    This menu is a fill in the blank type of menu that will get you going
  2045.    quickly and easilly.
  2046.  
  2047.    This menu requires no programming and explains itself. You run it by
  2048.    typing the command:
  2049.  
  2050.     MARX LEVEL1
  2051.  
  2052.    The first thing it does is scan your drive to find the directories. Then
  2053.    you just answer the questions and fill in the menu. This isn't as
  2054.    powerful as programming your own menu, but if you want something quick
  2055.    and dirty, this may be the answer for you.
  2056.  
  2057.    ABOUT VARIABLES   ABOUT VARIABLES   ABOUT VARIABLES
  2058.  
  2059.    One of the most unusual things about MarxMenu is its variables. MarxMenu
  2060.    handles variables differently than any other programming language. For
  2061.    the experienced programmer, this may require some adjustment since it's
  2062.    like getting used to driving a Cadillac after driving a VW Beetle.
  2063.  
  2064.    All variables in MarxMenu are like an empty box that can contain
  2065.    anything. A variable can be a number, boolean, string, file, array, etc.
  2066.    The type of variable is controlled internally and the user need not
  2067.    declare variable types.
  2068.  
  2069.    Variables are created with the VAR command:
  2070.  
  2071.     Var X Y Z
  2072.  
  2073.    If the word VAR is on a line by itself, the following lines, up to a
  2074.    blank line, are considered variable names.
  2075.  
  2076.  
  2077.  
  2078.    Computer Tyme MarxMenu Users Manual                     Page 28
  2079.    _______________________________________________________________
  2080.  
  2081.  
  2082.     Var
  2083.       MyAge
  2084.       YourAge
  2085.       HisAge
  2086.       HerAge
  2087.  
  2088.    Variables are initialized to null values; 0 for Numbers, False for
  2089.    Booleans, and '' for strings. Initial values can be set when the
  2090.    variable is created.
  2091.  
  2092.     Var
  2093.       X = 6
  2094.       MyName = 'Marc'
  2095.       Programmer = True
  2096.  
  2097.    Variables can change variable types. If you write a number to a string
  2098.    variable, the variable changes to a number.
  2099.  
  2100.     X = '234'
  2101.     X = Value(X)
  2102.  
  2103.    This is valid in MarxMenu. X now is a number and contains the value 234.
  2104.  
  2105.    Number variables are 32-bit integers ranging between plus or minus
  2106.    2,147,483,647.
  2107.  
  2108.    Boolean variables are True or False.
  2109.  
  2110.    String variables are limited to 255 characters.
  2111.  
  2112.    In MarxMenu, string literals are delimited by either single or double
  2113.    quotes.
  2114.  
  2115.     "This can't be yogurt!"
  2116.     'Lincoln said "Four score and seven years ago ..." '
  2117.  
  2118.    Numbers beginning with a '$' indicate base 16 or hex numbers.
  2119.  
  2120.    When choosing variable names, it is good programming practice to choose
  2121.    long meaningful names. This allows yourself and others to be able to
  2122.    read menus and follow the logic more easily.
  2123.  
  2124.  
  2125.  
  2126.    Computer Tyme MarxMenu Users Manual                     Page 29
  2127.    _______________________________________________________________
  2128.  
  2129.  
  2130.    DATES   DATES   DATES
  2131.  
  2132.    Dates in MarxMenu are stored as the number of seconds since Junuary 1st
  2133.    1980. This gives MarxMenu a Date range of 68 years. By subtracting two
  2134.    dates, you get the number of seconds between two peroids of time.
  2135.  
  2136.    MarxMenu has several commands that convert text strings to dates. Here
  2137.    are some examples of how MarxMenu sees text dates.
  2138.  
  2139.     Examples:
  2140.       '4-7-91'                 ;04-07-1991 00:00:00
  2141.       'April 7th, 1991 4:35pm' ;04-07-1991 16:35:00
  2142.       '12:35:23a'              ;04-07-1991 00:35:23
  2143.       '3:15'                   ;04-07-1991 03:15:00
  2144.  
  2145.    If the string can't be converted, then BadDate is set to true.
  2146.  
  2147.    REAL NUMBERS   REAL NUMBERS   REAL NUMBERS
  2148.  
  2149.    So what's the difference between ordinary numbers and real numbers?
  2150.    Ordinary numbers in MarxMenu are 32 bit integers. These are numbers
  2151.    whose range is about plus or minus two billion. Integers are whole
  2152.    numbers and do not include any fractions.
  2153.  
  2154.    This is why MarxMenu has included REAL numbers (also known as Floating
  2155.    Point numbers). Real numbers in MarxMenu use BCD (Binary Coded Decimal)
  2156.    with 18 digits of accuracy. They have a range of 10 to the plus or minus
  2157.    63rd power, which means up to 63 zeros either side of the decimal point.
  2158.    This lets you work with very big and very small numbers.  MarxMenu has
  2159.    smart rounding algorithms so that 1.0 / 3 * 3 = 1.0 and not
  2160.    0.999999999999999999 like in most languages.
  2161.  
  2162.    Real numbers are specified by using a decimal point. Thus 5.0 specifies
  2163.    a real number. Most normal MarxMenu functions still require the standard
  2164.    32 bit integers. If you get the error: 'REAL found where INTEGER
  2165.    expected.' You need to use an integer.
  2166.  
  2167.    If an integer is passed where a real is expected, the integer is
  2168.    automatically converted to a real. Thus:
  2169.  
  2170.     6.0 * 3 = 18.0
  2171.  
  2172.    The Value function returns real numbers if a decimal point is used in
  2173.    the string. All the relevant math functions will work with reals as well
  2174.    as comparison operators.
  2175.  
  2176.    MarxMenu supports a variety of functions for real numbers. It has trig
  2177.    functions, log functions, and exponential functions. So why do you need
  2178.    real numbers in a menu program? I don't know. I had a library and
  2179.    threw them in. I figure someone will need them someday.
  2180.  
  2181.  
  2182.  
  2183.    Computer Tyme MarxMenu Users Manual                     Page 30
  2184.    _______________________________________________________________
  2185.  
  2186.  
  2187.    With real numbers you can do trigonometry calculations like those
  2188.    discovered by the ancient Indian chief Pythagoras who discovered what is
  2189.    now know as Pythagoras's triangle.
  2190.  
  2191.    Now I know that a lot of you were taught in Math class that Pythagoras
  2192.    was Greek. Well, it's just not so. Let me tell you the real story:
  2193.  
  2194.    Pythagoras was an Indian chief that had three wives. Two of the wives
  2195.    were twins and weighed 120 pounds each. And they sat next to Pythagoras
  2196.    on a pair of twin deer hides.
  2197.  
  2198.    But Pythagoras also had a third wife who was a large fat woman who sat
  2199.    across from Pythagoras on a hypopotamus hide. This wife weighed 240
  2200.    pounds.
  2201.  
  2202.    What Pythagoras discovered was that the squaw on the hypopotamus was
  2203.    equal to the sum of the squaws on the other two hides!
  2204.  
  2205.    LOCAL VARIABLES   LOCAL VARIABLES   LOCAL VARIABLES
  2206.  
  2207.    MarxMenu also supports local variables. Variables declared within
  2208.    procedures become local variables. Local variables are just like global
  2209.    variables in that you can use them as multidimensional arrays. When the
  2210.    procedure finishes, all local variables are disposed.
  2211.  
  2212.    If a local variable has the same name as a global variable, the local
  2213.    variable will be used.
  2214.  
  2215.    PASSING PARAMETERS TO PROCEDURES   PASSING PARAMETERS TO PROCEDURES   PASSING PARAMETERS TO PROCEDURES
  2216.  
  2217.    Procedures can accept parameters by declaring variable names on the same
  2218.    line as the name of the procedure.
  2219.  
  2220.    Procedures can return variables by using the Return command. Return
  2221.    exits the procedure returning the parameters on the same line as the
  2222.    Return statement.
  2223.  
  2224.     Example:
  2225.  
  2226.     Procedure Factorial (X)
  2227.     var Y Z
  2228.        Y = 1
  2229.        Z = 1
  2230.        while Y <= X
  2231.           Z = Y * Z
  2232.           Y = Y + 1
  2233.        endwhile
  2234.        Writeln X ' factorial is ' Z
  2235.     endproc
  2236.  
  2237.    In this example, if you were to use Factorial (5) you would get:
  2238.  
  2239.  
  2240.  
  2241.    Computer Tyme MarxMenu Users Manual                     Page 31
  2242.    _______________________________________________________________
  2243.  
  2244.  
  2245.     5 factorial is 120
  2246.  
  2247.     Another Example:
  2248.  
  2249.     Procedure AskYesNo (Question)
  2250.     var YesNo
  2251.        DrawBox (34 - (Length(Question) / 2)) 21 Length(Question) + 14 3
  2252.        TextColor LCyan Blue
  2253.        UseArrows Off
  2254.        Write ' ',Question,' (Y/N) '
  2255.        YesNo = UpperCase(ReadKey)
  2256.        YesNo = YesNo = 'Y'
  2257.        if YesNo
  2258.           Write 'Yes'
  2259.        else
  2260.           Write 'No'
  2261.        endif
  2262.        Wait 50
  2263.        EraseTopWindow
  2264.        Return (YesNo)
  2265.     EndProc
  2266.  
  2267.     if AskYesNo 'Do you want to continue? ' then Continue
  2268.  
  2269.    In this example, MarxMenu draws a box and asks a question and waits for
  2270.    a Yes or No answer.
  2271.  
  2272.    Arrays can be passed as parameters. Parameters are passed by value not
  2273.    by reference. This means that any changes to the passed parameter do not
  2274.    affect the original value.
  2275.  
  2276.    You can copy an array by assigning it equal to another array.
  2277.  
  2278.     Example:
  2279.  
  2280.     Array1 = Array2
  2281.  
  2282.    This creates Array1 with a copy of all the elements of Array2. The
  2283.    previous contents of Array1 are overwritten.
  2284.  
  2285.  
  2286.  
  2287.    Computer Tyme MarxMenu Users Manual                     Page 32
  2288.    _______________________________________________________________
  2289.  
  2290.  
  2291.    ABOUT CONSTANTS   ABOUT CONSTANTS   ABOUT CONSTANTS
  2292.  
  2293.    Constants are used to give values meaningful names. By using constants a
  2294.    value can be assigned once and the constant name used throughout the
  2295.    menu program. This way, if you change the value of the constant, all the
  2296.    places where that constant is used automatically change.
  2297.  
  2298.    This is good programming practice.
  2299.  
  2300.     Examples:
  2301.  
  2302.     Const States = 50 CPU = '80386 SX' WeekEnd = True
  2303.  
  2304.     or
  2305.  
  2306.     Const
  2307.        States = 50
  2308.        CPU = '80386 SX'
  2309.        WeekEnd = True
  2310.  
  2311.    Using the word STATES is just like using 50. Using CPU is just like
  2312.    using '80386 SX'. But if throughout my menu I use CPU, and then I get a
  2313.    new computer with a 80486, I can just change one line:
  2314.  
  2315.     Const CPU = '80486'
  2316.  
  2317.    And all the places I used CPU changes to '80486'. This is the correct
  2318.    way to program.
  2319.  
  2320.    ABOUT ARRAYS   ABOUT ARRAYS   ABOUT ARRAYS
  2321.  
  2322.    MarxMenu supports multidimensional arrays up to 31 dimensions. Unlike
  2323.    other programming languages, arrays need not be declared. MarxMenu
  2324.    creates arrays "on the fly" and automatically takes care of the array
  2325.    size and number of dimensions.
  2326.  
  2327.    Another unusual feature of MarxMenu arrays is that they are an array of
  2328.    MarxMenu variables. This means that elements of MarxMenu arrays need not
  2329.    be of the same type. Element 1 can be a number, element 2 can be a
  2330.    string and element 3 can be another array.
  2331.  
  2332.    This type of variable management leads to the easy creation of very
  2333.    powerful data structures as you will see.
  2334.  
  2335.     Var X
  2336.  
  2337.     X[1] = 'Element 1'
  2338.     X[2] = 3
  2339.     X[3] = True
  2340.     X[4,6] = 9
  2341.     X[4,7] = 'Ten'
  2342.  
  2343.  
  2344.  
  2345.    Computer Tyme MarxMenu Users Manual                     Page 33
  2346.    _______________________________________________________________
  2347.  
  2348.  
  2349.    These are all valid statements. MarxMenu creates a two dimensional array
  2350.    here. If we now execute the following statement:
  2351.  
  2352.     X[4] = X[4,6] + X[2]
  2353.  
  2354.    X[4] becomes equal to 12 but variables X[4,6] and X[4,7] are lost. This
  2355.    is because we have changed an array into a number. MarxMenu
  2356.    automatically handles the deallocation of memory used by this array and
  2357.    its elements and returns the space the used to the memory pool.
  2358.  
  2359.    ABOUT QUALIFIERS   ABOUT QUALIFIERS   ABOUT QUALIFIERS
  2360.  
  2361.    Qualifiers are named indexes into arrays. They are used to make the
  2362.    source menu file more readable and more organized.
  2363.  
  2364.    Suppose we are creating a data structure to deal with places in the
  2365.    United States. First we will need an array for States.
  2366.  
  2367.     Var States
  2368.  
  2369.     We want to store some facts about the states.
  2370.  
  2371.     Qualifier
  2372.        Population
  2373.        Bird
  2374.        Motto
  2375.        County
  2376.  
  2377.     State[3].Population = 10000000
  2378.     State[3].Bird = 'Chicken'
  2379.     State[3].Motto = 'Best politicians money can buy!'
  2380.  
  2381.    Now states have counties and counties have county seats, sheriffs, and
  2382.    cities.
  2383.  
  2384.     Qualifer
  2385.        Sheriff
  2386.        Seat
  2387.        City
  2388.  
  2389.     State[3].County[7].Sheriff = 'Buck InBred'
  2390.     State[3].County[7].Seat = 'Possum Trot'
  2391.  
  2392.    Now counties have cities and cities have schools, mayors, churches, and
  2393.    taxes.
  2394.  
  2395.     Qualifier
  2396.        Schools
  2397.        Mayor
  2398.        Churches
  2399.        Taxes
  2400.  
  2401.  
  2402.  
  2403.    Computer Tyme MarxMenu Users Manual                     Page 34
  2404.    _______________________________________________________________
  2405.  
  2406.  
  2407.     State[3].County[7].City[9].Schools = 8
  2408.     State[3].County[7].City[9].Mayor = 'Virgil Collins'
  2409.     State[3].County[7].City[9].Churches = 120
  2410.     State[3].County[7].City[9].Taxes = '$100,000,000'
  2411.  
  2412.    The above line is the same as:
  2413.  
  2414.     State[3,4,7,3,9,4] = '$100,000,000'
  2415.  
  2416.    As you can see with qualifiers, it is easy to create multidimensional
  2417.    arrays in a way that is organized and readable.
  2418.  
  2419.    In this example, the qualifier Population became equal to 1. Bird became
  2420.    equal to 2. The variable references, State[3].Bird and State[3,2] are
  2421.    the same. It's just that one is more readable than the other. Qualifiers
  2422.    normally begin by assigning 1 to the first name and 2 to the second
  2423.    etc. This can be modified.
  2424.  
  2425.     Qualifier
  2426.        Color = 7
  2427.        Size
  2428.        Shape
  2429.  
  2430.    In this case Color becomes the number 7; Size becomes the number 8; and
  2431.    Shape becomes the number 9.
  2432.  
  2433.    COMMENTS IN MENU FILES   COMMENTS IN MENU FILES   COMMENTS IN MENU FILES
  2434.  
  2435.    MarxMenu has three ways to add comments to a menu file. The first way is
  2436.    with the Comment command.
  2437.  
  2438.     Comment
  2439.     ========================
  2440.     This is a comment block.
  2441.     ========================
  2442.     EndComment
  2443.  
  2444.    All lines up to EndComment are ignored.
  2445.  
  2446.    The second way is with a ';'. All text to the right of the ';'
  2447.    (semicolon) is ignored.
  2448.  
  2449.     BlankTime = 20  ;this is where we set the blank time.
  2450.  
  2451.    The third way is using {} or curly braces. Anything inside the curly
  2452.    braces is ignored. Curly braces can be nested.
  2453.  
  2454.     {All of {this} is a comment.}
  2455.  
  2456.  
  2457.  
  2458.    Computer Tyme MarxMenu Users Manual                     Page 35
  2459.    _______________________________________________________________
  2460.  
  2461.  
  2462.    Comments are ignored by the compiler and cost you nothing in execution
  2463.    speed. Comments can save you a lot of time if you have to come back
  2464.    later and work on your menu, or if someone else has to work on it.
  2465.    Therefore, I encourage you to use comments as much as possible.
  2466.  
  2467.    THE MARXMENU COMPILER   THE MARXMENU COMPILER   THE MARXMENU COMPILER
  2468.  
  2469.    MarxMenu reads your MNU files and creates MRX files. These MRX files are
  2470.    a highly digested form of the MNU file that you created. MRX files are
  2471.    the compiled files.
  2472.  
  2473.    When you run MarxMenu, the interpreter MARXMENU.EXE looks for the menu
  2474.    file with the MRX extension. If it doesn't find it, MARXMENU.EXE will
  2475.    automatically load MARXCOMP.EXE and compile the menu. MARXMENU.EXE also
  2476.    compares the file dates of the MNU and the MRX files. If the MNU file is
  2477.    newer than the MRX file, the complier will be loaded.
  2478.  
  2479.    MarxMenu will also force a compile if the MRX file was not complied by
  2480.    the same version and release date of the MarxMenu you are using. MRX
  2481.    files are not compatible from one version of MarxMenu to the next.
  2482.  
  2483.    You can also force a compile from the command line by typing MARXCOMP
  2484.    <menu>. If you are on a network and using MarxMenu to log you in, make
  2485.    sure you run the complier if you change your login menu file.
  2486.  
  2487.    Once your menus are written, you can remove the MNU file and
  2488.    MARXCOMP.EXE from the system. This prevents anyone from modifying your
  2489.    menus. The MRX files are scrambled for security. This prevents probing
  2490.    eyes from reading strings in the MRX files.
  2491.  
  2492.    COMPILER COMPATIBILITY   COMPILER COMPATIBILITY   COMPILER COMPATIBILITY
  2493.  
  2494.    The MarxMenu compiler is fully compatible with earlier versions of
  2495.    MarxMenu with a few exceptions. The new compiler does a lot more error
  2496.    checking than earlier versions of MarxMenu and will catch errors that
  2497.    you used to get away with. Other than that, the only difference you
  2498.    should notice will be a speed increase.
  2499.  
  2500.    Earlier versions of MarxMenu had separate names for variable types. The
  2501.    names $VAR, BVAR, #VAR, and FILEVAR act the same as typing VAR.
  2502.  
  2503.    Very early versions of MarxMenu had a different form of the USEARROWS
  2504.    command that required 4 to 5 numbers after it. If you run into this
  2505.    error, just get rid of the numbers after USEARROWS and it will work
  2506.    fine.
  2507.  
  2508.  
  2509.  
  2510.    Computer Tyme MarxMenu Users Manual                     Page 36
  2511.    _______________________________________________________________
  2512.  
  2513.  
  2514.    A WORD ABOUT DOS VERSIONS .....   A WORD ABOUT DOS VERSIONS .....   A WORD ABOUT DOS VERSIONS .....
  2515.  
  2516.    Versions of DOS below 3.3 will cause MarxMenu to use 3.5k of ram where
  2517.    3.3 DOS and above use no memory. 3.2 DOS is very buggy and should be
  2518.    replaced. 3.1 DOS isn't too bad for bugs but if you're using the BACKUP
  2519.    and RESTORE programs that came with it, you're in trouble. They don't
  2520.    work on large files. You'll find that out if you try to restore one of
  2521.    them.
  2522.  
  2523.    MS-DOS 4.01 seems to be pretty clean provided you have the April-89
  2524.    release or later. To determine if you do, check the file date on
  2525.    COMMAND.COM. Earlier versions of DOS 4.01 have SERIOUS BUGS. If you are
  2526.    running any DOS 4 earlier than April-89 you should upgrade immediately.
  2527.  
  2528.    We are happy to announce that MarxMenu runs under DOS 5.0 with no
  2529.    problems and requiring no modifications. We are in the process of adding
  2530.    hooks to take advantage of new features of DOS 5. One feature
  2531.    implemented is the Idle Loop call which allows MarxMenu to conserve CPU
  2532.    power when it's not doing anything. This makes it work better under
  2533.    DesqView and Windows.
  2534.  
  2535.    DR-DOS or EZ-DOS are pretty good also. It is very compatible as long as
  2536.    you don't get too strange with it. I recommend version 3.4 or later.
  2537.    4DOS is also pretty good but sometimes some of the advanced features in
  2538.    this product can cause it to behave differently than DOS. This requires
  2539.    extra care when writing your menus.
  2540.  
  2541.    MarxMenu should work correctly on 386 type multiuser operating systems
  2542.    such as Digital Research's Concurrent DOS 386 or SCO VPIX DOS emulators.
  2543.  
  2544.    MarxMenu will not run correctly under DesqView 2.26. It will run under
  2545.    2.25 or 3.21. So if you are running 2.26, it needs to be upgraded.
  2546.    MarxMenu contains several support functions for DesqView.
  2547.  
  2548.    If you are running under some weird DOS and are having problems, try it
  2549.    under "regular" DOS and see if it goes away. If it does, try to find out
  2550.    what it is about your weird DOS that makes it not work right. I am
  2551.    interested in being compatible with as many systems as I can. Let me
  2552.    know if you are having problems. But also, try to get your wierd DOS
  2553.    vendors to clean up their act.
  2554.  
  2555.    A WORD ABOUT BUGS .....   A WORD ABOUT BUGS .....   A WORD ABOUT BUGS .....
  2556.  
  2557.    Although I try to create perfect bug free software, every now and then
  2558.    even I make a mistak. If you find one, let me know and I'll fix it.
  2559.  
  2560.  
  2561.  
  2562.    Computer Tyme MarxMenu Users Manual                     Page 37
  2563.    _______________________________________________________________
  2564.  
  2565.  
  2566.    TIPS FROM THE MASTER   TIPS FROM THE MASTER   TIPS FROM THE MASTER
  2567.  
  2568.    Since MarxMenu is a programing language, I want to talk about what
  2569.    programing is and how it is accomplished. I want to dispel some myths
  2570.    and fears relating to it and introduce you to techniques that will help
  2571.    you write code neatly, quickly, and efficiently. From the outside,
  2572.    programming looks like magic; but once you know a few of the tricks, its
  2573.    really not too hard.
  2574.  
  2575.    Many of us who were raised on 50s and 60s science fiction television
  2576.    learned that it is the brainy types who deal with computers. It almost
  2577.    gives you the impression that the computer is smart and you are dumb. As
  2578.    you use the computer, it is evaluating you, and if it figures out that
  2579.    its smarter than you, it can get your job and replace you.
  2580.  
  2581.    COMPUTERS DO SIMPLE TASKS   COMPUTERS DO SIMPLE TASKS   COMPUTERS DO SIMPLE TASKS
  2582.  
  2583.    A computer is a simple device. It does simple tasks. It just does them
  2584.    very fast and accurately. Computers don't even know basic things like
  2585.    how to write letters on the screen or how to read the keyboard. These
  2586.    are programs that the computer runs. Someone had to program your
  2587.    computer to do even the simplest of tasks.
  2588.  
  2589.    As you learn to use MarxMenu start with the simple menus. The SAMPLE.MNU
  2590.    is a very easy program. Study it and understand how it works. Make a
  2591.    copy of it and change one selection to run one of your programs.
  2592.  
  2593.    Once you have changed one selection, change several more. Now MarxMenu
  2594.    is running your programs, and you have made it work. Then try something
  2595.    new. Add more selections. Change the size and position of the box to fit
  2596.    your needs.
  2597.  
  2598.    Take the time to play with it. Try new commands. Build up your menu. Be
  2599.    artistic. The more you work with it, the more you will learn.
  2600.  
  2601.  
  2602.  
  2603.    Computer Tyme MarxMenu Users Manual                     Page 38
  2604.    _______________________________________________________________
  2605.  
  2606.  
  2607.    COMPLEX TASKS ARE MADE OF SIMPLE TASKS   COMPLEX TASKS ARE MADE OF SIMPLE TASKS   COMPLEX TASKS ARE MADE OF SIMPLE TASKS
  2608.  
  2609.    As you learn more about MarxMenu, move on to SAMPLE2.MNU. Here we use
  2610.    more of the power of the MarxMenu language. As you study this menu, you
  2611.    will notice something. Even though it looks complex, it is really a
  2612.    collection of simple tasks. Understand how the moving windows work.
  2613.    Understand that the pop-up menus are just like the main menu. You will
  2614.    see that it is really not a complex menu at all. It is a lot of simple
  2615.    processes hooked together.
  2616.  
  2617.    That is one of the main concepts behind programming. Complex tasks are
  2618.    built out of simple tasks. As you learn the simple tasks, you will
  2619.    quickly understand how to connect them to accomplish complex tasks.
  2620.  
  2621.    When one sees a castle, one can't help but to be impressed. But castles
  2622.    are made of stones. And you can't build castles until you understand how
  2623.    stones work. Then you realize that a castle is just a bunch of stones
  2624.    hooked together. Programming is just like that.
  2625.  
  2626.    To successfully understand MarxMenu, start at the bottom and work your
  2627.    way up. Each little trick you learn becomes another building block for
  2628.    the next trick. What you start with becomes the foundation for the work
  2629.    that you will eventually produce.
  2630.  
  2631.    LEARNING GOOD PROGRAMMING HABITS   LEARNING GOOD PROGRAMMING HABITS   LEARNING GOOD PROGRAMMING HABITS
  2632.  
  2633.    Programming has its pitfalls, here I hope to give you some tips that
  2634.    will help you avoid common mistakes. This, I hope will give you a head
  2635.    start on the road to MarxMenu being done right.
  2636.  
  2637.    The first concept is patience. Rome wasn't built in a day. You may not
  2638.    be able to write grand and glorious menus the first try. In fact, you
  2639.    may have trouble getting the damn thing to work at all. As you have
  2640.    probably already noticed, no program is perfect. Sometimes there are
  2641.    errorrs in the manual. Sometimes it just doesn't work like you expected,
  2642.    or does not work the same way as other programs that are familiar to
  2643.    you.
  2644.  
  2645.    But, once you complete the installation, give it some time and realize
  2646.    that there is a lot of potential here. Approach all challenges with a
  2647.    good attitude.
  2648.  
  2649.  
  2650.  
  2651.    Computer Tyme MarxMenu Users Manual                     Page 39
  2652.    _______________________________________________________________
  2653.  
  2654.  
  2655.    USE LONG NAMES   USE LONG NAMES   USE LONG NAMES
  2656.  
  2657.    I learned computers the hard way. Out on the streets. Hanging around
  2658.    with other computer nerds in the late 70s who never went to college
  2659.    either. I was known as a Bit Wit. My first real computer was an IMSAI
  2660.    kit. Actually, it wasn't all IMSAI, it was a combination of several kits
  2661.    where no two boards came from the same supplier. It was in an IMSAI box,
  2662.    so I call it an IMSAI.
  2663.  
  2664.    It was all supposed to work together the salesman told me the day before
  2665.    they went out of business. And it all did after some redesigning. I was
  2666.    tired of fixing CB radios for a living and decided that computers were
  2667.    here to stay and that I was going to learn about them.
  2668.  
  2669.    With that in mind, everything that went wrong became an opportunity for
  2670.    growth. Not that I looked forward to things not working. I programmed
  2671.    the thing from scratch, loading binary codes into memory from an array
  2672.    of switches on the front panel.
  2673.  
  2674.    The first program I wrote ran the EPROM burner, which was the only
  2675.    storage device I had. After I saved this program on a chip, I used it to
  2676.    load the second program onto the chip.
  2677.  
  2678.    Eventually I wrote enough software to talk to the screen and keyboard.
  2679.    Now I could type hex codes on the screen and save them to a chip.
  2680.    Eventually I wrote a tape driver and could save stuff on tape. Later, I
  2681.    traded for a North Star disk drive and had a disk system. One 90k
  2682.    floppy. I thought I was in heaven.
  2683.  
  2684.    I was intimately familiar with my computer. All my programs were in
  2685.    object code with no documentation whatsoever. At that point, a friend of
  2686.    mine, Rufus, turned me on to a language called FORTH.
  2687.  
  2688.    Being an interesting language and very powerful, I typed in the whole
  2689.    compiler in hex and adapted it to work on my system. Once I got Forth
  2690.    up, I wrote a line editor in it. I then used the line editor to write a
  2691.    screen editor. With the screen editor, I rewrote Forth in Forth. The
  2692.    language compiled itself.
  2693.  
  2694.    From working with Forth (which is as much a religion as a programming
  2695.    language) I learned both good and bad habits. Forth is a write only
  2696.    language and is almost impossible to read even with the best of
  2697.    documentation. On the other hand, it is as close to the machine as you
  2698.    can get in a high level language.
  2699.  
  2700.  
  2701.  
  2702.    Computer Tyme MarxMenu Users Manual                     Page 40
  2703.    _______________________________________________________________
  2704.  
  2705.  
  2706.    After opening up a computer store in 1984, it became time to make the
  2707.    jump from CP/M to the DOS world. Turbo Pascal offered an interesting
  2708.    solution. They had both a CP/M and DOS compiler. This meant that
  2709.    programs I wrote would run on both machines. The thing that struck me
  2710.    about Pascal was that I could read it better than Forth, and I didn't
  2711.    even know the language. Not only that, but I could follow the programs
  2712.    that other people wrote and incorporate their code into my programs.
  2713.  
  2714.    The more programs I wrote, the more I came to appreciate a language that
  2715.    was reader friendly. I could manage my programs much easier without
  2716.    having to remember so much. Other people could follow what I was doing
  2717.    easier.
  2718.  
  2719.    The important thing I learned was that readability is very important in
  2720.    a program. The more complex the program, the more important readability
  2721.    becomes.
  2722.  
  2723.    One of the main design factors in the MarxMenu language is readability.
  2724.    I could have used short names for my commands and it's not like I like
  2725.    to type. I'm still on just two fingers here. Its just that descriptive
  2726.    names are so much more meaningful when putting simple processes together
  2727.    to create complex processes.
  2728.  
  2729.    The point (finally) is, when creating variable names, or procedure
  2730.    names, use long meaningful names. It may take more typing, but it takes
  2731.    a lot less thinking and remembering later on. Consider the following
  2732.    example in choosing variable names.
  2733.  
  2734.     Var KlingonsDestroyedInBattle
  2735.     Var K
  2736.  
  2737.    In the above example, it is obvious which one tells you more about what
  2738.    information is stored in the variable.
  2739.  
  2740.    USE COMMENTS LIBERALLY   USE COMMENTS LIBERALLY   USE COMMENTS LIBERALLY
  2741.  
  2742.    Even though MarxMenu is easy to read, it still should be commented. The
  2743.    examples that come with this disk do not have as many comments as they
  2744.    should. Don't do as I do, do as I say. I'm lazy and a bad example.
  2745.  
  2746.    Comments are not compiled in your MRX files and cost you nothing at
  2747.    execution time. In order to make commenting easy, I have provided three
  2748.    separate comment commands. Learn these commands first.
  2749.  
  2750.    Every menu should include a title comment. This should include the name
  2751.    and phone number of the person who wrote it. If you have a problem with
  2752.    a menu and you send it to me, I expect a title comment. That way I can
  2753.    call you about it.
  2754.  
  2755.     Comment
  2756.     ====================================================================
  2757.  
  2758.  
  2759.  
  2760.    Computer Tyme MarxMenu Users Manual                     Page 41
  2761.    _______________________________________________________________
  2762.  
  2763.  
  2764.     This comment was created by Marc Perkel 1-417-866-1222
  2765.  
  2766.     Last Updated: 01-28-90
  2767.  
  2768.     This form of comment block is better than using ';' because not using ;
  2769.     allows you to turn your word wrap feature on and do some professional
  2770.     looking editing in the comment block. This kind of comment block should
  2771.     be at the beginning of each and every menu you create.
  2772.  
  2773.     The top and bottom bars are for looks only and are not necessary to the
  2774.     comment. I strongly encourage you to use bars and do things for looks
  2775.     in source code. Looks are very important and you should put as much
  2776.     care into your comments as you do in writing a business letter.
  2777.  
  2778.     If you learn MarxMenu well, your source code may be part of your next
  2779.     job interview as you move up the corporate ladder. So you want it to
  2780.     look good.
  2781.  
  2782.     By the way, if you upload your menus to my bulleten board, I expect a
  2783.     comment block at the top of your menu with your phone number so I can
  2784.     get back to you.
  2785.  
  2786.     ====================================================================
  2787.     EndComment
  2788.  
  2789.    INDENT YOUR CODE   INDENT YOUR CODE   INDENT YOUR CODE
  2790.  
  2791.    As programs get more complex, it gets harder to match the IFs with the
  2792.    ELSEs and the ENDIFs. This is where indenting comes in. It creates a
  2793.    logical grouping of statements and you can easily see what goes with
  2794.    what.
  2795.  
  2796.     Procedure IfDemo
  2797.        IF <condition>
  2798.           <statement>
  2799.           <statement>
  2800.        ELSE
  2801.           <statement>
  2802.           <statement>
  2803.           WHILE <condition>
  2804.              <statement>
  2805.              <statement>
  2806.           ENDWHILE
  2807.           <statement>
  2808.        ENDIF
  2809.        <statement>
  2810.     EndProc
  2811.  
  2812.  
  2813.  
  2814.    Computer Tyme MarxMenu Users Manual                     Page 42
  2815.    _______________________________________________________________
  2816.  
  2817.  
  2818.    You can easily see how this helps you follow what you are writing. Now
  2819.    here's a new trick. If you are using an IF, and plan to use an ELSE and
  2820.    an ENDIF, on the line under the IF statement, type in your ELSE and
  2821.    ENDIF lines. Then go back and insert your statements in between these
  2822.    lines. This will help you avoid forgetting the ENDIF or getting mixed up
  2823.    as to which IF matches which ELSE.
  2824.  
  2825.    A similar trick can be done with parens and brackets. When typing a left
  2826.    paren, type the matching right paren with it. Then fill in the code you
  2827.    want to put inside the parens or brackets.
  2828.  
  2829.    FOR DUPLICATE TASKS, USE PROCEDURES   FOR DUPLICATE TASKS, USE PROCEDURES   FOR DUPLICATE TASKS, USE PROCEDURES
  2830.  
  2831.    As menus become longer and more complex, many times you are duplicating
  2832.    a process that you already have written. Although it is easy to copy a
  2833.    block of code, it is better to create a procedure.
  2834.  
  2835.    With procedures, the process is put in one place and is given a name.
  2836.    Preferably a long meaningful name. Once this procedure is defined and
  2837.    named, it can be used as if it were part of the MarxMenu language. This
  2838.    makes menus smaller and easier to read. It is also a way for you to
  2839.    combine small processes into large processes. Procedures can be built
  2840.    using other procedures.
  2841.  
  2842.    Once you have a process figured out and working in a procedure, the
  2843.    whole process becomes a black box with a name that you can use
  2844.    elsewhere. The whole process is reduced down to a name that just works!
  2845.  
  2846.    Another advantage of procedures is that if circumstances change and the
  2847.    procedure needs to be modified, you only make a change one place in your
  2848.    menus, and everything that uses that procedure is automatically changed.
  2849.    This makes menu maintenance easier.
  2850.  
  2851.    DON'T PROGRAM YOURSELF INTO A CORNER   DON'T PROGRAM YOURSELF INTO A CORNER   DON'T PROGRAM YOURSELF INTO A CORNER
  2852.  
  2853.    Using the above techniques will allow you to write very complex menu
  2854.    systems. Failing to use these techniques can limit what you can
  2855.    accomplish. There is a term called "programming yourself into a corner"
  2856.    which refers to a program that is so poorly written, that it can't be
  2857.    modified to accommodate changes and improvements.
  2858.  
  2859.    The height of your programming abilities depends on the foundation on
  2860.    which they are built. You must avoid rushing to the top without first
  2861.    creating a firm foundation on which to build. Good technique is the
  2862.    foundation for good programming. You will have to learn it eventually,
  2863.    it is more efficient to do it right than it is to do it over.
  2864.  
  2865.    Adopting good programming habits reminds me of my favorite light bulb
  2866.    joke:
  2867.  
  2868.    Q. How many psychologists does it take to change a light bulb?
  2869.  
  2870.  
  2871.  
  2872.    Computer Tyme MarxMenu Users Manual                     Page 43
  2873.    _______________________________________________________________
  2874.  
  2875.  
  2876.    A. Only one, but the light bulb has to want to change.
  2877.  
  2878.    A WORD TO WRITERS AND REVIEWERS   A WORD TO WRITERS AND REVIEWERS   A WORD TO WRITERS AND REVIEWERS
  2879.  
  2880.    MarxMenu is a multi-level product fulfilling the needs of a large
  2881.    variety of computer users. It is difficult to compare this product on a
  2882.    feature to feature basis. This is because MarxMenu has about 10 times as
  2883.    many features as any other menu system. These features allow this
  2884.    product to target a very broad variety of computer users, from the
  2885.    novice user, who will only use the LEVEL1 menu, to large companies with
  2886.    hundreds of file servers controlled through the MarxMenu language.
  2887.  
  2888.    One common mistake that writers make when evaluating MarxMenu, is in the
  2889.    area of ease of use. If you are looking for ease of use, stick with the
  2890.    simple menus and the self-configuring menus such as the LEVEL1 example.
  2891.    By looking at it this way, MarxMenu will be as easy to use as any other
  2892.    menus system out there and can be compared for similar features. Even
  2893.    though MarxMenu supports complex commands, it is not necessary to use
  2894.    them in simple menus.
  2895.  
  2896.    If you are doing a comparative review, please let me know on what basis
  2897.    you are making comparisons. This way I can assist you by providing you
  2898.    accurate information in the area of your interest. If you are looking
  2899.    for simple, I can show you simple; if you are looking for power, I can
  2900.    show you power.
  2901.  
  2902.    On the other hand, if you are reviewing power tools and network
  2903.    utilities, you might want to look at the Network Survival Kit and not
  2904.    just MarxMenu. So if you have a copy of only this program, give me a
  2905.    call and I'll get you the latest and greatest.
  2906.  
  2907.    In addition to our software, we also have color prints and color slides
  2908.    available as well as product literature and sample reviews. These are
  2909.    available to make your job easier and help you make those deadlines.
  2910.  
  2911.    MarxMenu tends to be best reviewed as a long article rather than a short
  2912.    one. It is very good if you have a lot of space to fill. With a long
  2913.    article, you can get really in depth with what MarxMenu is able to do.
  2914.  
  2915.    Any publication which reviews any of my products gets a site license to
  2916.    that product whether I like the review or not. Our position is that if
  2917.    you are using MarxMenu yourself, you will get to know it better.
  2918.  
  2919.    So far, as of the date I write this, no writer has written an article
  2920.    about MarxMenu that I feel covered what this product is really capable
  2921.    of doing. Consider this a challenge.
  2922.  
  2923.    Any questions you have about any of my products, feel free to call. The
  2924.    main thing I ask is that you get the product name, price, our address,
  2925.    and our phone number right.
  2926.  
  2927.  
  2928.  
  2929.    Computer Tyme MarxMenu Users Manual                     Page 44
  2930.    _______________________________________________________________
  2931.  
  2932.  
  2933.    USING MARXHELP   USING MARXHELP   USING MARXHELP
  2934.  
  2935.    MarxHelp is a TSR pop-up help program for MarxMenu. It acts as an online
  2936.    reference guide to all of the MarxMenu commands. MarxHelp only takes 8k
  2937.    of ram and is very useful while writing your MarxMenu applications.
  2938.  
  2939.    To load MarxHelp type MARXHELP at the command line. Then if you want to
  2940.    pop-up an index press Shift-F3. The Shift-F2 key will repeat your last
  2941.    help topic and Shift-F1 will look up the word your cursor is on.
  2942.  
  2943.    To get more help on MarxMenu type MarxHelp /?. If you need to unload
  2944.    MarxHelp from memory, type MarxHelp /U.
  2945.  
  2946.    MarxHelp comes with the Computer Tyme Network Survival Kit. It can also
  2947.    be downloaded from our support BBS. It does not come bundled with the
  2948.    single user version.
  2949.  
  2950.    PRINTING THE EXAMPLE FILES   PRINTING THE EXAMPLE FILES   PRINTING THE EXAMPLE FILES
  2951.  
  2952.    MarxMenu comes with several example programs from simple to complex. The
  2953.    first thing to do is print the sample menus and study them. Start with
  2954.    the easy ones. You may never need to use any of the more complex ones,
  2955.    but if you do, a large variety of advanced techniques are demonstrated.
  2956.  
  2957.    By studying the sample menus, and comparing them to this manual, it
  2958.    should be fairly easy to become productive writing your own menus.
  2959.  
  2960.    SECURITY ISSUES   SECURITY ISSUES   SECURITY ISSUES
  2961.  
  2962.    Different users have different security need that range from none to
  2963.    extreme. If you are in the nine category, then you can skip this
  2964.    chapter. But if you need all the security you can get, then read on.
  2965.  
  2966.    First of all, DOS is not a secure operating system. There are various
  2967.    third party programs out there but what I'm going to cover here is how
  2968.    to make DOS secure as possible working with what you get with DOS.
  2969.  
  2970.    The first thing to do is add the command BREAK=OFF to your CONFIG.SYS
  2971.    file. This prevents programs from breaking out of batch files. Avoid
  2972.    using commands that are internal DOS commands like DIR from inside a
  2973.    menu or inside batch files. Use the D.EXE program instead.
  2974.  
  2975.    Use the LockWord option in the screen blanker so that if a menu is left
  2976.    unattended, it will not be accessable to just anyone walking up to a
  2977.    machine. The LockWord command requires the user type a password to
  2978.    release the screen blanker. If you are on a Novell network, you can use
  2979.    the UseNovPassword command. This forces the user to type their Novell
  2980.    password to unblank the screen.
  2981.  
  2982.  
  2983.  
  2984.    Computer Tyme MarxMenu Users Manual                     Page 45
  2985.    _______________________________________________________________
  2986.  
  2987.  
  2988.    If a menu choice access sensitive materials, then put a password on it.
  2989.    Also, make sure the SUPERVISOR user has a password. There are many times
  2990.    I've walked up to a server and logged in as supervisor and got right in.
  2991.    Make sure that intruder detection is set on. If you don't know what
  2992.    intruder detection is, read the Novell manuals.
  2993.  
  2994.    You can also use the LogoffTime command to log users off the network
  2995.    after a given amount of inactivity. This also helps kick people off so
  2996.    that you can upgrade MarxMenu from time to time. (MARXMENU.EXE can't be
  2997.    copied over on a network unless all users are out of the menu.)
  2998.  
  2999.    If you have applications that allow you to shell to DOS, you can prevent
  3000.    them from getting to DOS by changing your COMSPEC to point to something
  3001.    other than COMMAND.COM. You could also rename COMMAND.COM in case a
  3002.    program is looking for this file by name.
  3003.  
  3004.    Another defense is to lock the door to the computer room at night and
  3005.    teach employees security policies and make sure they use them.
  3006.  
  3007.    If you are on a network, buy diskless workstations. People can't copy
  3008.    files on or off a network that doesn't have a disk drive. It helps keep
  3009.    viruses off your server and lets the network administrators control what
  3010.    is and isn't on the network.
  3011.  
  3012.    MARXMENU COMMANDS   MARXMENU COMMANDS   MARXMENU COMMANDS
  3013.  
  3014.    MarxMenu contains a rich set of commands. They are listed here
  3015.    alphabetically and by command category. You don't have to learn them all
  3016.    so don't let the size of the list scare you.
  3017.  
  3018.    In the following command list, words contained within ( ) are command
  3019.    parameters that must be included after the menu command. If the
  3020.    parameter is not required, it will be contained in [ ]. The numeric
  3021.    range for the <column> parameter is 1 - 80 decimal, and for the <row>
  3022.    parameter the range is 1 - 25, 43, or 50 decimal depending on how many
  3023.    lines your monitor displays.
  3024.  
  3025.  
  3026.  
  3027.    Computer Tyme MarxMenu Users Manual                     Page 46
  3028.    _______________________________________________________________
  3029.  
  3030.  
  3031.    | (Vertical Bar)   | (Vertical Bar)   | (Vertical Bar)
  3032.    Forces MarxMenu interpretation under an OnKey Command. If not for the |
  3033.    (Vertical Bar), the command under an OnKey would be written to a batch
  3034.    file. The | is only used under OnKey commands.
  3035.  
  3036.     Example:
  3037.       OnKey 'S'
  3038.         |password 'hello' 3 4
  3039.         ECHO Type EXIT to return to menu
  3040.         COMMAND.COM
  3041.  
  3042.       OnKey 'X'
  3043.         |if UpperCase(ReadEnv('USERNAME')) = 'SUPERVISOR'
  3044.           SYSCON
  3045.         |else
  3046.         |  SecurityBreach('You do not have access to this function!')
  3047.         |endIf
  3048.  
  3049.    Category: Misc
  3050.  
  3051.    ( : Operator   ( : Operator   ( : Operator
  3052.    Starts logical interpreter grouping.
  3053.  
  3054.    Used to force evalution of an expression.
  3055.  
  3056.     Example:
  3057.       2 * 3 + 2     evaluates to  8
  3058.       2 * ( 3 + 2 ) evaluates to  10
  3059.  
  3060.    Category: Misc
  3061.  
  3062.    ) : Operator   ) : Operator   ) : Operator
  3063.    Ends logical interpreter grouping.
  3064.  
  3065.    See Also: (
  3066.  
  3067.    Category: Misc
  3068.  
  3069.    * : Operator   * : Operator   * : Operator
  3070.    Multiplies two numbers.
  3071.  
  3072.    Category: Math, Float
  3073.  
  3074.  
  3075.  
  3076.    Computer Tyme MarxMenu Users Manual                     Page 47
  3077.    _______________________________________________________________
  3078.  
  3079.  
  3080.    + : Operator   + : Operator   + : Operator
  3081.    Adds two numbers or two strings.
  3082.  
  3083.     Example:
  3084.       "Hello" + " " + "World" = "Hello World"
  3085.       2 + 2 = 4
  3086.  
  3087.    Category: Math, String, Float
  3088.  
  3089.    - : Operator   - : Operator   - : Operator
  3090.    Subtracts two numbers.
  3091.  
  3092.    Category: Math, Float
  3093.  
  3094.    / : Operator   / : Operator   / : Operator
  3095.    Divides two numbers.
  3096.  
  3097.    Category: Math, Float
  3098.  
  3099.    < : Operator   < : Operator   < : Operator
  3100.    Less Than - Compares two numbers or strings.
  3101.  
  3102.    Category: Math, String, Float
  3103.  
  3104.    <= : Operator   <= : Operator   <= : Operator
  3105.    Less Than or Equal - Compares two numbers or strings.
  3106.  
  3107.    Category: Math, String, Float
  3108.  
  3109.    <> : Operator   <> : Operator   <> : Operator
  3110.    Not Equal - Compares two numbers or strings.
  3111.  
  3112.    Category: Math, String, Float
  3113.  
  3114.    = : Operator   = : Operator   = : Operator
  3115.    Equal - Compares two numbers or strings.
  3116.  
  3117.    Category: Math, String, Float
  3118.  
  3119.    > : Operator   > : Operator   > : Operator
  3120.    Greater Than - Compares two numbers or strings.
  3121.  
  3122.    Category: Math, String, Float
  3123.  
  3124.    >= : Operator   >= : Operator   >= : Operator
  3125.    Greater Than or Equal - Compares two numbers or strings.
  3126.  
  3127.    Category: Math, String, Float
  3128.  
  3129.  
  3130.  
  3131.    Computer Tyme MarxMenu Users Manual                     Page 48
  3132.    _______________________________________________________________
  3133.  
  3134.  
  3135.    %MenuFileName : String   %MenuFileName : String   %MenuFileName : String
  3136.    This returns the name of the current menu file including the complete
  3137.    path. It can be used under an OnKey statement to edit the current menu
  3138.    as follows:
  3139.  
  3140.     Example:
  3141.       OnKey 'E'
  3142.         EDIT %MenuFileName
  3143.  
  3144.    Category: String
  3145.  
  3146.    Abs : Number   Abs : Number   Abs : Number
  3147.    Returns the absolute value of a number. The absolute value is the value
  3148.    of the number without the sign.
  3149.  
  3150.     Example:
  3151.        Abs(-6) returns 6
  3152.  
  3153.    Category: Math, Float
  3154.  
  3155.    Alias   Alias   Alias
  3156.    Alias <name> = <string>
  3157.    This is a compiler level text substitution command. When <name> is
  3158.    defined as <string> whenever you use <name> its the same to the compiler
  3159.    as if <string> were typed there.
  3160.  
  3161.     Example:
  3162.       Alias TwoPlusThree = "(2 + 3)"
  3163.       .
  3164.       .
  3165.       .
  3166.       2 * TwoPlusThree = 10
  3167.       .
  3168.       Writeln TwoPlusThree
  3169.  
  3170.    Writeln TwoPlusThree is the same as Writeln (2 + 3)
  3171.  
  3172.    Category: Misc
  3173.  
  3174.    And : Operator   And : Operator   And : Operator
  3175.    Returns logical And if operators are boolean; or bitwise And if
  3176.    operators are numeric.
  3177.  
  3178.    Category: Math, Boolean
  3179.  
  3180.  
  3181.  
  3182.    Computer Tyme MarxMenu Users Manual                     Page 49
  3183.    _______________________________________________________________
  3184.  
  3185.  
  3186.    ApplicationMemory : Number   ApplicationMemory : Number   ApplicationMemory : Number
  3187.    Returns the number of bytes of memory available to an application when
  3188.    MarxMenu exits out to the MARX.BAT file. This is the actual amount of
  3189.    ram available to your application.
  3190.  
  3191.    See Also: FreeMemory
  3192.  
  3193.    Category: Memory
  3194.  
  3195.    Apr : Number   Apr : Number   Apr : Number
  3196.    April, returns the number 4.
  3197.  
  3198.    Category: Time
  3199.  
  3200.    ArcTan (Radians) : Real   ArcTan (Radians) : Real   ArcTan (Radians) : Real
  3201.    Returns the ArcTangent of a real.
  3202.  
  3203.    Category: Math, Float
  3204.  
  3205.    Aug : Number   Aug : Number   Aug : Number
  3206.    August, returns the number 8.
  3207.  
  3208.    Category: Time
  3209.  
  3210.    BadDate : Boolean   BadDate : Boolean   BadDate : Boolean
  3211.    Set to true if you try to convert a string to a date and the date is
  3212.    invalid.
  3213.  
  3214.    See Also: TimeOf
  3215.  
  3216.    Category: Time
  3217.  
  3218.    Bat (string)   Bat (string)   Bat (string)
  3219.    Used to write a line to the batch file the same way OnKey does. All the
  3220.    same rules apply. The batch file is created when the menu exits.
  3221.    MarxMenu exits with ErrorLevel 0 unless some other value has been
  3222.    specified using the ExitCode command.
  3223.  
  3224.     Example:
  3225.       OnKey 'D'
  3226.         |BAT "command /c dir a:"
  3227.         |ExitMenu
  3228.  
  3229.    See Also: OnKey
  3230.  
  3231.    Category: Execution
  3232.  
  3233.  
  3234.  
  3235.    Computer Tyme MarxMenu Users Manual                     Page 50
  3236.    _______________________________________________________________
  3237.  
  3238.  
  3239.    BatFileName : String   BatFileName : String   BatFileName : String
  3240.    Returns the name of the batch file that MarxMenu would create if
  3241.    MarxMenu were to create a batch file automatically.
  3242.  
  3243.    Category: String
  3244.  
  3245.    BigShadow   BigShadow   BigShadow
  3246.    Selects big shadow type. This is the default shadow.
  3247.  
  3248.    See Also: SmallShadow, ShadowPosition, ShadowColor
  3249.  
  3250.    Category: Display
  3251.  
  3252.    Black : Number   Black : Number   Black : Number
  3253.    Returns the number 0.
  3254.  
  3255.    Category: Color
  3256.  
  3257.    Blanked : Boolean   Blanked : Boolean   Blanked : Boolean
  3258.    Returns true if the screen blanker has kicked it. This lets you alter
  3259.    your idel program based on if the screen blanker is active.
  3260.  
  3261.    Category: Display
  3262.  
  3263.    BlankMessage (string)   BlankMessage (string)   BlankMessage (string)
  3264.    When the screen blanks out, this one line message is displayed. If
  3265.    BlankMessage is not set, the date and time will be displayed.
  3266.  
  3267.    See Also: ConsolePos
  3268.  
  3269.    Category: String
  3270.  
  3271.    BlankTime (minutes)   BlankTime (minutes)   BlankTime (minutes)
  3272.    Sets the number of minutes before the screen blanks out to prevent
  3273.    screen burn. Since this is not a resident program, screen blanking is
  3274.    only active while the menu system is active. Setting BlankTime to 0
  3275.    prevents screen blanking.
  3276.  
  3277.     Example:
  3278.       Set ConsolePos
  3279.  
  3280.    Category: Display
  3281.  
  3282.  
  3283.  
  3284.    Computer Tyme MarxMenu Users Manual                     Page 51
  3285.    _______________________________________________________________
  3286.  
  3287.  
  3288.    Blink : Boolean   Blink : Boolean   Blink : Boolean
  3289.    Blink is a boolean variable that when set to true allows you to specify
  3290.    colors that will blink. To make a color that blinks, set the background
  3291.    color to a bright color. A bright color is a color from 8 to 15.
  3292.  
  3293.    Normally, when Blink is off, MarxMenu strips the high bit of the colors.
  3294.    When Blink is on, high bit stripping is disabled.
  3295.  
  3296.     Example:
  3297.        Blink
  3298.        TextColor Green LRed
  3299.  
  3300.    Because the background color is light red, the text will blink.
  3301.  
  3302.    Warning: Blinking characters can cause headaches and eye strain. I
  3303.    resisted adding this feature for a long time because I personally hate
  3304.    excessive blinking characters on the screen. I now recognize that
  3305.    blinking can be very effective when used correctly. Please use blinking
  3306.    sparingly.
  3307.  
  3308.    Category: Color
  3309.  
  3310.    BlockBox   BlockBox   BlockBox
  3311.    Selects block type box for menu borders.
  3312.  
  3313.    See Also: SingleLineBox, DoubleLineBox, CustomBox, NoBoxBorder
  3314.  
  3315.    Category: Display
  3316.  
  3317.    Blue : Number   Blue : Number   Blue : Number
  3318.    Returns the number 1.
  3319.  
  3320.    Category: Color
  3321.  
  3322.    BoxBorderColor (forecolor,backcolor)   BoxBorderColor (forecolor,backcolor)   BoxBorderColor (forecolor,backcolor)
  3323.    Sets colors for box border.
  3324.  
  3325.    Category: Color
  3326.  
  3327.  
  3328.  
  3329.    Computer Tyme MarxMenu Users Manual                     Page 52
  3330.    _______________________________________________________________
  3331.  
  3332.  
  3333.    BoxHeader (string)   BoxHeader (string)   BoxHeader (string)
  3334.    Sets the center header message for the next box displayed. This command
  3335.    is used before the DrawBox command.
  3336.  
  3337.     Example:
  3338.        BoxHeader ' Main Choices '
  3339.        DrawBox (25,6,30,9)
  3340.  
  3341.    See Also: BoxHeaderLeft, BoxHeaderRight
  3342.    See Also: BoxFooter, BoxFooterLeft, BoxFooterRight
  3343.  
  3344.    Category: Display
  3345.  
  3346.    BoxHeaderColor (forecolor,backcolor)   BoxHeaderColor (forecolor,backcolor)   BoxHeaderColor (forecolor,backcolor)
  3347.    Sets colors for the box headers and box footers.
  3348.  
  3349.    Category: Color
  3350.  
  3351.    BoxHeaderLeft (string)   BoxHeaderLeft (string)   BoxHeaderLeft (string)
  3352.    Sets the left header message for the next box displayed. This command is
  3353.    used before the DrawBox command.
  3354.  
  3355.     Example:
  3356.        BoxHeaderLeft ' Main Choices '
  3357.        DrawBox (25,6,30,9)
  3358.  
  3359.    See Also: BoxHeader, BoxHeaderRight
  3360.    See Also: BoxFooter, BoxFooterLeft, BoxFooterRight
  3361.  
  3362.    Category: Display
  3363.  
  3364.    BoxHeaderRight (string)   BoxHeaderRight (string)   BoxHeaderRight (string)
  3365.    Sets the right header message for the next box displayed. This command
  3366.    is used before the DrawBox command.
  3367.  
  3368.     Example:
  3369.        BoxHeaderRight ' Main Choices '
  3370.        DrawBox (25,6,30,9)
  3371.  
  3372.    See Also: BoxHeader, BoxHeaderLeft
  3373.    See Also: BoxFooter, BoxFooterLeft, BoxFooterRight
  3374.  
  3375.    Category: Display
  3376.  
  3377.  
  3378.  
  3379.    Computer Tyme MarxMenu Users Manual                     Page 53
  3380.    _______________________________________________________________
  3381.  
  3382.  
  3383.    BoxFooter (string)   BoxFooter (string)   BoxFooter (string)
  3384.    Sets the center footer message for the next box displayed. This command
  3385.    is used before the DrawBox command.
  3386.  
  3387.     Example:
  3388.        BoxFooter ' Main Choices '
  3389.        DrawBox (25,6,30,9)
  3390.  
  3391.    See Also: BoxHeader, BoxHeaderLeft, BoxHeaderRight
  3392.    See Also: BoxFooterLeft, BoxFooterRight
  3393.  
  3394.    Category: Display
  3395.  
  3396.    BoxFooterLeft (string)   BoxFooterLeft (string)   BoxFooterLeft (string)
  3397.    Sets the left footer message for the next box displayed. This command is
  3398.    used before the DrawBox command.
  3399.  
  3400.     Example:
  3401.        BoxFooterLeft ' Main Choices '
  3402.        DrawBox (25,6,30,9)
  3403.  
  3404.    See Also: BoxHeader, BoxHeaderLeft, BoxHeaderRight
  3405.    See Also: BoxFooter, BoxFooterRight
  3406.  
  3407.    Category: Display
  3408.  
  3409.    BoxFooterRight (string)   BoxFooterRight (string)   BoxFooterRight (string)
  3410.    Sets the right footer message for the next box displayed. This command
  3411.    is used before the DrawBox command.
  3412.  
  3413.     Example:
  3414.        BoxFooterRight ' Main Choices '
  3415.        DrawBox (25,6,30,9)
  3416.  
  3417.    See Also: BoxHeader, BoxHeaderLeft, BoxHeaderRight
  3418.    See Also: BoxFooter, BoxFooterLeft
  3419.  
  3420.    Category: Display
  3421.  
  3422.    BoxInsideColor (forecolor,backcolor)   BoxInsideColor (forecolor,backcolor)   BoxInsideColor (forecolor,backcolor)
  3423.    Sets colors for box interior.
  3424.  
  3425.    Category: Color
  3426.  
  3427.    Brown : Number   Brown : Number   Brown : Number
  3428.    Returns the number 7.
  3429.  
  3430.    Category: Color
  3431.  
  3432.  
  3433.  
  3434.    Computer Tyme MarxMenu Users Manual                     Page 54
  3435.    _______________________________________________________________
  3436.  
  3437.  
  3438.    BW40 : Number   BW40 : Number   BW40 : Number
  3439.    Returns the number 0. Relates to the DOS Mode BW40 command.
  3440.  
  3441.    Category: Video
  3442.  
  3443.    BW80 : Number   BW80 : Number   BW80 : Number
  3444.    Returns the number 2. Relates to the DOS Mode BW80 command.
  3445.  
  3446.    Category: Video
  3447.  
  3448.    CapsColor (forecolor,backcolor)   CapsColor (forecolor,backcolor)   CapsColor (forecolor,backcolor)
  3449.    Setting CapsColor allows capital letters and numbers to be a different
  3450.    color than the rest of the text. This is used with the UseArrows command
  3451.    to show which character is the one that selects the options in the
  3452.    window. CapsColor is reset after any TextColor command, so be sure to
  3453.    use CapsColor AFTER TextColor commands.
  3454.  
  3455.    For this option the numbers 0 - 9 and some punctuation characters are
  3456.    considered capitals.
  3457.  
  3458.    See Also: DrawBox
  3459.  
  3460.    Category: Color
  3461.  
  3462.    CapsLock : Boolean   CapsLock : Boolean   CapsLock : Boolean
  3463.    Returns true if Caps Lock is on. This command can also set the Caps Lock
  3464.    on and off.
  3465.  
  3466.     Example:
  3467.       if CapsLock then Write 'CapsLock is On'
  3468.  
  3469.       CapsLock On  ;Turns CapsLock On
  3470.       CapsLock Off ;Turns CapsLock Off
  3471.  
  3472.       CapsLock (by itself) turns CapsLock On.
  3473.  
  3474.    See Also: ScrollLock, NumLock
  3475.  
  3476.    Category: System
  3477.  
  3478.    Chain (MenuName)   Chain (MenuName)   Chain (MenuName)
  3479.    This command will load a new menu. Unlike Jump, MarxMenu stays in
  3480.    memory. The screen is not cleared. If the new menu has exactly the same
  3481.    global variables, the contents of all global variables is retained.
  3482.    Chain allows for a very quick transfer from one menu to another.
  3483.  
  3484.     Example:
  3485.       Chain ('USER')  ;Chains to USER.MNU
  3486.  
  3487.    Category: Execution
  3488.  
  3489.  
  3490.  
  3491.    Computer Tyme MarxMenu Users Manual                     Page 55
  3492.    _______________________________________________________________
  3493.  
  3494.  
  3495.    Char (number) : String   Char (number) : String   Char (number) : String
  3496.    Converts a number into a one character string.
  3497.  
  3498.     Example:
  3499.       Write (Char(65)) ;This will display 'A'
  3500.  
  3501.    Category: String
  3502.  
  3503.    ChDir (string)   ChDir (string)   ChDir (string)
  3504.    Changes directories. The variable FileResult can be tested to see if it
  3505.    was successful. ChDir can also be used to change drives.
  3506.  
  3507.     Example:
  3508.       ChDir( 'C:\HOME\MARXMENU' )
  3509.       ChDir( 'B:' )                ; Will make drive B: the current drive
  3510.  
  3511.    Category: File
  3512.  
  3513.    CleanFileName (string) : String   CleanFileName (string) : String   CleanFileName (string) : String
  3514.    Returns the full path name or directory name of a string. It also
  3515.    removes occurrences of a '\\' in the string. Thus the command: String =
  3516.    CleanFileName('a:\' + '\main.mnu') sets String to 'A:\MAIN.MNU'.
  3517.    CleanFileName also removes extra ending '\' and capitalizes the path.
  3518.  
  3519.    Category: String
  3520.  
  3521.    ClearLine [char]   ClearLine [char]   ClearLine [char]
  3522.    Clears the current line in the current window. The optional parameter is
  3523.    for the decimal number of the IBM graphics character. If [char] is
  3524.    present, the line will be filled with the character.
  3525.  
  3526.     Examples:
  3527.        ClearLine       ;Clears screen with blanks
  3528.        ClearLine 205   ;Clears screen with char 205
  3529.  
  3530.    Category: Display
  3531.  
  3532.    ClearScreen [char]   ClearScreen [char]   ClearScreen [char]
  3533.    Clears the screen. The optional parameter is the decimal number
  3534.    equivalent for an IBM graphics character. If [char] is present, the
  3535.    screen will be filled with [char].
  3536.  
  3537.     Examples:
  3538.        ClearScreen       ;Clears screen with blanks
  3539.        ClearScreen 177   ;Clears screen with char 177
  3540.  
  3541.    Category: Display
  3542.  
  3543.  
  3544.  
  3545.    Computer Tyme MarxMenu Users Manual                     Page 56
  3546.    _______________________________________________________________
  3547.  
  3548.  
  3549.    ClearScreenFirst (on/off)   ClearScreenFirst (on/off)   ClearScreenFirst (on/off)
  3550.    Used in conjunction with Execute. If on, will clear the screen before
  3551.    running the program.
  3552.  
  3553.     Example:
  3554.       OnKey 'D'
  3555.         |ClearScreenFirst On
  3556.         |Execute 'C:\DM.COM'
  3557.  
  3558.    The default is ON.
  3559.  
  3560.    Category: Execution
  3561.  
  3562.    ClearScreenOnExit (on/off)   ClearScreenOnExit (on/off)   ClearScreenOnExit (on/off)
  3563.    Controls whether or not the screen is cleared on menu exit. Default on.
  3564.  
  3565.    Category: Display
  3566.  
  3567.    ClockColor (forecolor,backcolor)   ClockColor (forecolor,backcolor)   ClockColor (forecolor,backcolor)
  3568.    Sets colors for the on screen clock.
  3569.  
  3570.    Category: Color
  3571.  
  3572.    ClockMode   ClockMode   ClockMode
  3573.    ClockMode is a variable whose bits control the format of the on screen
  3574.    clock when it is used.
  3575.  
  3576.     ClockMode Bits:
  3577.     ---------------
  3578.     0 24 hour mode
  3579.     1 AmPm On
  3580.     2 Show Seconds
  3581.     3 UpperCase
  3582.     4 3 char month
  3583.     5 3 char Day of Week
  3584.     6 Show Day of Week
  3585.     7 Dash = 0 Slash = 1 MM-DD-YY or MM/DD/YY
  3586.     8 Long Date
  3587.  
  3588.     Bit 0 on sets hours display to 24 hour mode.
  3589.     Bit 1 turns on the Am/Pm display.
  3590.     Bit 2 on controls if time is shown as HH:MM:SS or just HH:MM.
  3591.     Bit 3 shows date in only upper case.
  3592.     Bit 4 on shows month in 3 characters.
  3593.     Bit 5 shows Day of week as 3 characters.
  3594.     Bit 6 controls if Day of week is displayed.
  3595.     Bit 7 controls if date is shown as MM-DD-YY or MM/DD/YY.
  3596.     Bit 8 shows date in text. (October 3, 1990).
  3597.  
  3598.    The default ClockMode is 326.
  3599.  
  3600.  
  3601.  
  3602.    Computer Tyme MarxMenu Users Manual                     Page 57
  3603.    _______________________________________________________________
  3604.  
  3605.  
  3606.    Category: Display
  3607.  
  3608.    ClockPos (column,row)   ClockPos (column,row)   ClockPos (column,row)
  3609.    Puts a clock on the screen at location (column,row). The command
  3610.    ClockPos 0 0 turns the clock off.
  3611.  
  3612.    Category: Display
  3613.  
  3614.    ClosePrinter   ClosePrinter   ClosePrinter
  3615.    In MarxMenu the printer is just another text file. Closing the printer
  3616.    is not required for ordinary printing. If you are changing printers you
  3617.    need to run ClosePrinter before changing the printer name. The printer
  3618.    is automatically opened by MarxMenu any time you print anything.
  3619.  
  3620.    If you are running Windows or DesqView, closing the printer allows other
  3621.    programs to access the printer. So if you are running under any
  3622.    multitasking shell, be sure to close the printer when you are done with
  3623.    it.
  3624.  
  3625.    If you are using a network like Novell, ClosePrinter will end the print
  3626.    job and send it to the print queue. This avoids the need to wait for
  3627.    print capture timouts to take effect.
  3628.  
  3629.    Closing the printer is good programming practice and will help you stay
  3630.    out of trouble. It's like what your mother taught you. "When you're done
  3631.    with something, put it away."
  3632.  
  3633.    See Also: OpenPrinter, PrinterName
  3634.  
  3635.    Category: Printer
  3636.  
  3637.    ClusterSize <drive> : Number   ClusterSize <drive> : Number   ClusterSize <drive> : Number
  3638.    Returns cluster size in bytes.
  3639.  
  3640.     Example:
  3641.        Writeln (ClusterSize 'C')
  3642.  
  3643.    ClusterSize only looks at the first character of the string for the
  3644.    drive letter.
  3645.  
  3646.    Category: System
  3647.  
  3648.    CmdLine : String   CmdLine : String   CmdLine : String
  3649.    System string variable that returns the rest of the command line after
  3650.    the menu name.
  3651.  
  3652.    Category: String
  3653.  
  3654.  
  3655.  
  3656.    Computer Tyme MarxMenu Users Manual                     Page 58
  3657.    _______________________________________________________________
  3658.  
  3659.  
  3660.    CO40 : Number   CO40 : Number   CO40 : Number
  3661.    Returns the number 1. Relates to the DOS Mode CO40 command.
  3662.  
  3663.    Category: Video
  3664.  
  3665.    CO80 : Number   CO80 : Number   CO80 : Number
  3666.    Returns the number 3. Relates to the DOS Mode CO80 command.
  3667.  
  3668.    Category: Video
  3669.  
  3670.    ColorScreen : Boolean   ColorScreen : Boolean   ColorScreen : Boolean
  3671.    Returns true if screen is a color screen. Note: Running MODE BW80 will
  3672.    cause ColorScreen to return false.
  3673.  
  3674.     Example:
  3675.       If ColorScreen
  3676.           ;Color
  3677.         TextColor( White, Blue )
  3678.       Else
  3679.           ;Monochrome
  3680.         TextColor( White, Black )
  3681.       EndIf
  3682.  
  3683.    Category: Video
  3684.  
  3685.    Comment   Comment   Comment
  3686.    Starts a Comment Block. All text is ignored until EndComment is
  3687.    encountered.
  3688.  
  3689.     Example:
  3690.       Comment
  3691.       =======================================
  3692.  
  3693.       Everything between Comment and EndComment is ignored.
  3694.  
  3695.       =======================================
  3696.       EndComment
  3697.  
  3698.    See Also: EndComment
  3699.  
  3700.    Category: Misc
  3701.  
  3702.    Console (On/Off)   Console (On/Off)   Console (On/Off)
  3703.    The command Console Off will disable access to the console.
  3704.  
  3705.    Category: Display
  3706.  
  3707.  
  3708.  
  3709.    Computer Tyme MarxMenu Users Manual                     Page 59
  3710.    _______________________________________________________________
  3711.  
  3712.  
  3713.    ConsoleBorderColor (Color,Color)   ConsoleBorderColor (Color,Color)   ConsoleBorderColor (Color,Color)
  3714.    Sets the color of the console border.
  3715.  
  3716.     Example:
  3717.       See Also: ConsolePos
  3718.  
  3719.    Category: Color
  3720.  
  3721.    ConsoleHeaderColor (Color,Color)   ConsoleHeaderColor (Color,Color)   ConsoleHeaderColor (Color,Color)
  3722.    Sets the color of the console header.
  3723.  
  3724.    See Also: ConsolePos
  3725.  
  3726.    Category: Color
  3727.  
  3728.    ConsoleInsideColor (Color,Color)   ConsoleInsideColor (Color,Color)   ConsoleInsideColor (Color,Color)
  3729.    Sets the color of the console inside.
  3730.  
  3731.    See Also: ConsolePos
  3732.  
  3733.    Category: Color
  3734.  
  3735.    ConsolePos (column,row)   ConsolePos (column,row)   ConsolePos (column,row)
  3736.    Sets the coordinates of the pop-up console menu.
  3737.  
  3738.     Example:
  3739.       ConsoleBorderColor( White,Blue )
  3740.       ConsoleHeaderColor( Yellow,Blue )
  3741.       ConsoleInsideColor( Yellow,Blue )
  3742.       ConsolePos( 5,5 ) ; Column 5, Row 5
  3743.  
  3744.    Category: Display
  3745.  
  3746.    Const   Const   Const
  3747.    Creates a constant.
  3748.  
  3749.    See Also: Var, Shared, Qualifier
  3750.  
  3751.    Category Variable
  3752.  
  3753.    Cos (Radians) : Real   Cos (Radians) : Real   Cos (Radians) : Real
  3754.    Returns the CoSine of a real.
  3755.  
  3756.    Category: Math, Float
  3757.  
  3758.  
  3759.  
  3760.    Computer Tyme MarxMenu Users Manual                     Page 60
  3761.    _______________________________________________________________
  3762.  
  3763.  
  3764.    CurrentEnvironment   CurrentEnvironment   CurrentEnvironment
  3765.    CurrentEnvironment selects the current environment for use with
  3766.    environment access commands.
  3767.  
  3768.    See Also: ReadEnv SetEnv ReadEnvironment ShellEnvironment
  3769.    See Also: ParentEnvironment MasterEnvironment
  3770.  
  3771.    Category: Environment
  3772.  
  3773.    CurrentWindow : Number   CurrentWindow : Number   CurrentWindow : Number
  3774.    Returns the number of the current window. All windows are given a unique
  3775.    number.
  3776.  
  3777.    See Also: SetTopWindow
  3778.  
  3779.    Category: Display
  3780.  
  3781.    Cursor (On/Off)   Cursor (On/Off)   Cursor (On/Off)
  3782.    MarxMenu automatically turns the cursor on for certain kinds of input.
  3783.    Using Cursor Off prevents MarxMenu from turning the cursor on. Cursor On
  3784.    reverses this and allows MarxMenu to turn the cursor on when needed.
  3785.  
  3786.    Category: Display
  3787.  
  3788.    CustomBox (String)   CustomBox (String)   CustomBox (String)
  3789.    Selects a Box border using an 8 character string to define the sides and
  3790.    the corners.
  3791.  
  3792.     Example:
  3793.       CustomBox ('12345678') ;This will help you figure out what
  3794.                              ;position matches which side.
  3795.  
  3796.    See Also: SingleLineBox, DoubleLineBox, BlockBox, NoBoxBorder
  3797.  
  3798.    Category: Display
  3799.  
  3800.    Cyan : Number   Cyan : Number   Cyan : Number
  3801.    Returns the number 3.
  3802.  
  3803.    Category: Color
  3804.  
  3805.    DateString : String   DateString : String   DateString : String
  3806.    Returns the current date in MM-DD-YY format.
  3807.  
  3808.    Category: Time, String
  3809.  
  3810.    Day : Number   Day : Number   Day : Number
  3811.    Returns the day of the month.
  3812.  
  3813.    Category: Time
  3814.  
  3815.  
  3816.  
  3817.    Computer Tyme MarxMenu Users Manual                     Page 61
  3818.    _______________________________________________________________
  3819.  
  3820.  
  3821.    DayOf (Date) : Number   DayOf (Date) : Number   DayOf (Date) : Number
  3822.    Returns the day of a date. If Date is passed as a string it is
  3823.    converted automatically.
  3824.  
  3825.    See Also: TimeOf, BadDate
  3826.  
  3827.    Category: Time
  3828.  
  3829.    DayOfWeek : Number   DayOfWeek : Number   DayOfWeek : Number
  3830.    Returns the day of the week.
  3831.  
  3832.      0=SUNDAY
  3833.      1=MONDAY
  3834.      2=TUESDAY
  3835.      3=WEDNESDAY
  3836.      4=THURSDAY
  3837.      5=FRIDAY
  3838.      6=SATURDAY
  3839.  
  3840.    Category: Time
  3841.  
  3842.    DayOfWeekOf (Date) : Number   DayOfWeekOf (Date) : Number   DayOfWeekOf (Date) : Number
  3843.    Returns the DayOfWeek of a date. If Date is passed as a string it is
  3844.    converted automatically.
  3845.  
  3846.    See Also: TimeOf, BadDate
  3847.  
  3848.    Category: Time
  3849.  
  3850.    Dec : Number   Dec : Number   Dec : Number
  3851.    December, Returns the number 12.
  3852.  
  3853.    Category: Time
  3854.  
  3855.  
  3856.  
  3857.    Computer Tyme MarxMenu Users Manual                     Page 62
  3858.    _______________________________________________________________
  3859.  
  3860.  
  3861.    Delete (string,pos,count)   Delete (string,pos,count)   Delete (string,pos,count)
  3862.    Deletes characters from string starting at pos for count.
  3863.  
  3864.     Example:
  3865.       String = 'ABCDEFGH'
  3866.       Delete(String,2,3)
  3867.  
  3868.    This leaves a String containing 'ABFGH'
  3869.  
  3870.    If count exceeds the length of the string, the string is truncated at
  3871.    pos.
  3872.  
  3873.    Another use of Delete is to delete elements of an array.
  3874.  
  3875.    Delete (Array,Position,Count)
  3876.    This works exactly like the delete command for strings. It delete
  3877.    elements of an array beginning at Position for Count elements. The
  3878.    NumberOfElements is adjusted accordingly.
  3879.  
  3880.     Example:
  3881.       MyArray[1] = "ONE"
  3882.       MyArray[2] = "TWO"
  3883.       MyArray[3] = "THREE"
  3884.       MyArray[4] = "FOUR"
  3885.       Delete( MyArray,2,2 )
  3886.  
  3887.     ;MyArray now contains..
  3888.       MyArray[1] = "ONE"
  3889.       MyArray[2] = "FOUR"
  3890.  
  3891.    Category: String, Array
  3892.  
  3893.    DelFile (Name)   DelFile (Name)   DelFile (Name)
  3894.    Deletes a file by name. FileResult returns a 0 if the file existed and
  3895.    the delete was successful.
  3896.  
  3897.     Example:
  3898.       DelFile( 'C:\NOTES\READ.ME' )
  3899.       If FileResult = 0
  3900.         Writeln( 'C:\NOTES\READ.ME was succesfully deleted!' )
  3901.       Else
  3902.         Writeln( 'C:\NOTES\READ.ME was un-succesfully deleted!' )
  3903.       EndIf
  3904.  
  3905.    Category: File
  3906.  
  3907.  
  3908.  
  3909.    Computer Tyme MarxMenu Users Manual                     Page 63
  3910.    _______________________________________________________________
  3911.  
  3912.  
  3913.    Dispose (Variable)   Dispose (Variable)   Dispose (Variable)
  3914.    This command reclaims memory used by a string variable, file variable,
  3915.    or an array. If you are doing a lot of data manipulation, you might want
  3916.    to reclaim memory space used by arrays you are done with. The disposed
  3917.    variable becomes an untyped variable.
  3918.  
  3919.     Example:
  3920.       Loop( 20 )
  3921.         MyArray[LoopIndex] = LoopIndex
  3922.  
  3923.         ;Check to See Also: if number is odd or even
  3924.         If (MyArray[LoopIndex] Mod 2) = 0
  3925.           Writeln('MyArray[' + Str(LoopIndex) + '] is an EVEN number.' );
  3926.         Else
  3927.           Writeln('MyArray[' + Str(LoopIndex) + '] is an EVEN number.' );
  3928.         EndIf
  3929.       EndLoop
  3930.  
  3931.       ;We're finished with the array so reclaim its memory space.
  3932.       Dispose(MyArray)
  3933.  
  3934.    Category: Memory, Array
  3935.  
  3936.    DosVersion : Number   DosVersion : Number   DosVersion : Number
  3937.    Returns the major DOS version number.
  3938.  
  3939.    See Also: DosVersionString, MinorDosVersion
  3940.  
  3941.    Category: System
  3942.  
  3943.    DosVersionString : String   DosVersionString : String   DosVersionString : String
  3944.    Returns the DOS version number as a 4 character string. This function
  3945.    always returns 2 places past the decimal point. The form of the string
  3946.    is: #.##
  3947.  
  3948.     Example
  3949.        Writeln DosVersionString   ;prints 4.01
  3950.  
  3951.    See Also: DosVersion, MinorDosVersion
  3952.  
  3953.    Category: System, String
  3954.  
  3955.    DosWindow (on/off)   DosWindow (on/off)   DosWindow (on/off)
  3956.    When you set DosWindow on, MarxMenu will not drop out of the menu system
  3957.    when you use the Execute command. It will give you a display of the DOS
  3958.    screen within the current window. The program you execute must be a
  3959.    well-behaved program like DIR or COPY or some of the other DOS commands
  3960.    that talk to the screen through standard file handles.
  3961.  
  3962.    Category: Execution
  3963.  
  3964.  
  3965.  
  3966.    Computer Tyme MarxMenu Users Manual                     Page 64
  3967.    _______________________________________________________________
  3968.  
  3969.  
  3970.    DoubleLineBox   DoubleLineBox   DoubleLineBox
  3971.    Selects double line box.
  3972.  
  3973.    See Also: SingleLineBox, BlockBox, CustomBox, NoBoxBorder
  3974.  
  3975.    Category: Display
  3976.  
  3977.    DrawBox (column,row,width,height)   DrawBox (column,row,width,height)   DrawBox (column,row,width,height)
  3978.    Draws a box on the screen. The (column) and (row) are the upper left
  3979.    corner, (width) and (height) is the box size.
  3980.  
  3981.     Example:
  3982.       Explode On
  3983.       Shadow On
  3984.       DoubleLineBox
  3985.       BoxHeaderColor( Yellow,Red )
  3986.       BoxBorderColor( White, Red )
  3987.       BoxInsideColor( Yellow,Red )
  3988.       InverseColor( Black, Gray )
  3989.       CapsColor( Black, Red )
  3990.       BoxHeader = ' << Main Menu >> '
  3991.       DrawBox( 30,10,40,8 )
  3992.  
  3993.    DrawBox also creates a logical layer for several display variables.
  3994.    These variable include TextColor, InverseColor, CapsColor. It is
  3995.    important to use these color control commands AFTER the DrawBox command
  3996.    in order to properly restore the colors of the previous DrawBox.
  3997.  
  3998.    If you call up a box and when it finishes it messes up the colors of the
  3999.    previous box, you probably used color control commands BEFORE the
  4000.    DrawBox instead of AFTER.
  4001.  
  4002.    Category: Display
  4003.  
  4004.    Drives : Number   Drives : Number   Drives : Number
  4005.    Returns the number of drives. This includes drive names that can be
  4006.    substituted. Most of the time the answer is 5. This relates to your
  4007.    LastDrive = command in your CONFIG.SYS file.
  4008.  
  4009.    Category: System
  4010.  
  4011.    DvAppNumber : Number   DvAppNumber : Number   DvAppNumber : Number
  4012.    Returns the DesqView application number or window number.
  4013.  
  4014.    Category: DesqView
  4015.  
  4016.    DvFrame (Handle,On/Off)   DvFrame (Handle,On/Off)   DvFrame (Handle,On/Off)
  4017.    Turns the DesqView border frame on or off.
  4018.  
  4019.    Category: DesqView
  4020.  
  4021.  
  4022.  
  4023.    Computer Tyme MarxMenu Users Manual                     Page 65
  4024.    _______________________________________________________________
  4025.  
  4026.  
  4027.    DvFreeze (Handle)   DvFreeze (Handle)   DvFreeze (Handle)
  4028.    Freezes a program. The program stops executing.
  4029.  
  4030.    See Also: DvUnFreeze, DvPifExecute, DvLastHandle
  4031.  
  4032.    Category: DesqView
  4033.  
  4034.    DvHide (Handle)   DvHide (Handle)   DvHide (Handle)
  4035.    Hides all output from program making it invisible. The program still
  4036.    continues to run.
  4037.  
  4038.    See Also: DvUnHide
  4039.  
  4040.    Category: DesqView
  4041.  
  4042.    DvKillTask (Handle)   DvKillTask (Handle)   DvKillTask (Handle)
  4043.    Kills a program running under DesqView. The handle is the one returned
  4044.    be DvPifExecute in DvLastHandle.
  4045.  
  4046.    See Also: DvPifExecute
  4047.  
  4048.    Category: DesqView
  4049.  
  4050.    DvLastHandle : Number   DvLastHandle : Number   DvLastHandle : Number
  4051.    Returns a number that is associated with a program running under
  4052.    DesqView. This number is used to control other programs running under
  4053.    DesqView. It is set by DvPifExecute.
  4054.  
  4055.    See Also: DvPifExecute
  4056.  
  4057.    Category: DesqView
  4058.  
  4059.    DvLoaded : Boolean   DvLoaded : Boolean   DvLoaded : Boolean
  4060.    Returns true if DesqView is loaded.
  4061.  
  4062.    Category: DesqView
  4063.  
  4064.    DvMoveWindow (Handle,X,Y)   DvMoveWindow (Handle,X,Y)   DvMoveWindow (Handle,X,Y)
  4065.    Moves DesqView window upper left corner to position X,Y.
  4066.  
  4067.    Category: DesqView
  4068.  
  4069.    DvMyHandle : Number   DvMyHandle : Number   DvMyHandle : Number
  4070.    Returns the DesqView handle of the current process.
  4071.  
  4072.    See Also: DvLastHandle
  4073.  
  4074.    Category: DesqView
  4075.  
  4076.  
  4077.  
  4078.    Computer Tyme MarxMenu Users Manual                     Page 66
  4079.    _______________________________________________________________
  4080.  
  4081.  
  4082.    DvPifExecute (Pif File)   DvPifExecute (Pif File)   DvPifExecute (Pif File)
  4083.    Executes another program under DesqView in another window. MarxMenu
  4084.    stays resident in its original window. The window executes according to
  4085.    the contents of the DesqView PIF file. The PIF file can be specified by
  4086.    using the full name. If you leave of the extension, MarxMenu assumes the
  4087.    extension DVP. If you pass a two character name, like the two characters
  4088.    in the DesqView menus, then MarxMenu will add -PIF.DVP to the name. If
  4089.    the PIF file is on the path, MarxMenu will find it.
  4090.  
  4091.    Warning! DesqView must be loaded to run this command.
  4092.  
  4093.     Example:
  4094.       DvPifExecute 'BD'
  4095.       DvPifExecute 'BD-PIF'       ;These all execute Big DOS
  4096.       DVPifExecute 'BD-PIF.DVP'
  4097.  
  4098.    The task handle is loaded into a variable named DvLastHandle. When the
  4099.    program starts, it becomes the current top program.
  4100.  
  4101.    See Also: DvLoaded, DvLastHandle
  4102.  
  4103.    Category: DesqView
  4104.  
  4105.    DvResizeWindow (Handle,Width,Height)   DvResizeWindow (Handle,Width,Height)   DvResizeWindow (Handle,Width,Height)
  4106.    Changes the size of a DesqView window.
  4107.  
  4108.    Category: DesqView
  4109.  
  4110.    DvSetBottom (Handle)   DvSetBottom (Handle)   DvSetBottom (Handle)
  4111.    Sets the program associated with the handle to the bottom of the task
  4112.    stack.
  4113.  
  4114.    See Also: DvSetTop
  4115.  
  4116.    Category: DesqView
  4117.  
  4118.    DvSetTop (Handle)   DvSetTop (Handle)   DvSetTop (Handle)
  4119.    Sets the program associated with the handle to be the top running task.
  4120.    Using DvMyHandle allows MarxMenu to regain control after starting
  4121.    another task.
  4122.  
  4123.     Example:
  4124.        DvSetTop (DvMyHandle)
  4125.  
  4126.    See Also: DvSetBottom, DvLastHandle
  4127.  
  4128.    Category: DesqView
  4129.  
  4130.  
  4131.  
  4132.    Computer Tyme MarxMenu Users Manual                     Page 67
  4133.    _______________________________________________________________
  4134.  
  4135.  
  4136.    DvUnFreeze (Handle)   DvUnFreeze (Handle)   DvUnFreeze (Handle)
  4137.    UnFreezes a program. The program starts executing again.
  4138.  
  4139.    See Also: DvFreeze, DvPifExecute, DvLastHandle
  4140.  
  4141.    Category: DesqView
  4142.  
  4143.    DvUnHide (Handle)   DvUnHide (Handle)   DvUnHide (Handle)
  4144.    Reverses the effect of DvHide making program output visable again.
  4145.  
  4146.    See Also: DvHide
  4147.  
  4148.    Category: DesqView
  4149.  
  4150.    Else   Else   Else
  4151.    Starts lines executed if a condition is not true.
  4152.  
  4153.    See Also: If Then Endif
  4154.  
  4155.    Category: Conditional
  4156.  
  4157.    EndComment   EndComment   EndComment
  4158.    Ends a comment block.
  4159.  
  4160.    See Also: Comment
  4161.  
  4162.    Category: Misc
  4163.  
  4164.    EndIf   EndIf   EndIf
  4165.    Ends an if statement.
  4166.  
  4167.    See Also: If Else Then
  4168.  
  4169.    Category: Conditional
  4170.  
  4171.    EndLoop   EndLoop   EndLoop
  4172.    Ends a loop statement.
  4173.  
  4174.    See Also: Loop LoopIndex LoopLimit
  4175.  
  4176.    Category: Conditional
  4177.  
  4178.  
  4179.  
  4180.    Computer Tyme MarxMenu Users Manual                     Page 68
  4181.    _______________________________________________________________
  4182.  
  4183.  
  4184.    EndOfFile (FileVar) : Boolean   EndOfFile (FileVar) : Boolean   EndOfFile (FileVar) : Boolean
  4185.    Returns True if you are at the end of the file.
  4186.  
  4187.     Example:
  4188.       Var In
  4189.  
  4190.       FileAssign (In,'C:\NOTES\READ.ME')
  4191.       FileOpen (In)
  4192.       While not EndOfFile (In)
  4193.          Writeln (FileReadLn (In))
  4194.       EndWhile
  4195.       FileClose (In)
  4196.  
  4197.    Category: File
  4198.  
  4199.    EndProc   EndProc   EndProc
  4200.    Ends a Procedure.
  4201.  
  4202.    See Also: Procedure Return
  4203.  
  4204.    Category: Misc
  4205.  
  4206.    EndWhile   EndWhile   EndWhile
  4207.    Ends a While statement.
  4208.  
  4209.    See Also: While
  4210.  
  4211.    Category: Conditional
  4212.  
  4213.    EnvFree : Number   EnvFree : Number   EnvFree : Number
  4214.    Returns the free space in the selected environment.
  4215.  
  4216.    Category: Environment
  4217.  
  4218.    EnvSize : Number   EnvSize : Number   EnvSize : Number
  4219.    Returns the size of the selected environment.
  4220.  
  4221.     Example:
  4222.       if EnvSize < 20
  4223.          Writeln ('Your envrionment size is less than 20 bytes!!')
  4224.       endif
  4225.  
  4226.    Category: Environment
  4227.  
  4228.    EraseTopWindow   EraseTopWindow   EraseTopWindow
  4229.    Erases the last window created with DrawBox.
  4230.  
  4231.    See Also: EraseWindow
  4232.  
  4233.    Category: Display
  4234.  
  4235.  
  4236.  
  4237.    Computer Tyme MarxMenu Users Manual                     Page 69
  4238.    _______________________________________________________________
  4239.  
  4240.  
  4241.    EraseWindow (Number)   EraseWindow (Number)   EraseWindow (Number)
  4242.    Erases a window by number. This allows you to erase a window that is not
  4243.    the top window.
  4244.  
  4245.    See Also: CurrentWindow, SetTopWindow, EraseTopWindow
  4246.  
  4247.    Category: Display
  4248.  
  4249.    Execute (command string)   Execute (command string)   Execute (command string)
  4250.    This allows you to execute a program without dropping out of MarxMenu.
  4251.    MarxMenu remains resident in memory and takes up approximately 50k. No
  4252.    batch file will be created by MarxMenu.
  4253.  
  4254.    This is handy if you have a small program you want to run from the menu
  4255.    but don't want to allow for the time required by MarxMenu to create and
  4256.    run a batch file. You can also execute some programs in a MarxMenu
  4257.    window (See Also: DosWindow). You can also execute a program and examine
  4258.    the return code.
  4259.  
  4260.    This command can be placed in a progression of menu commands without any
  4261.    special handling. Under an OnKey statement, you will need to enclose the
  4262.    command between a begin and end statement.
  4263.  
  4264.     Example:
  4265.       OnKey 'D'
  4266.       |UseCommand Off
  4267.       |Execute 'C:\DM.COM'  ;Note the COM extension is required here.
  4268.  
  4269.    Note: If UseCommand is True or On, MarxMenu will load COMMAND.COM to
  4270.    execute your command. If UseCommand is False, MarxMenu will execute your
  4271.    file directly without COMMAND.COM. Using COMMAND.COM will execute
  4272.    slightly slower, use 3.5k more ram, and allow you to use command lines
  4273.    just like you would from the DOS prompt.
  4274.  
  4275.    If you set UseCommand to off, you will have to include the COM or EXE
  4276.    extension in the name. If you don't include the extension, MarxMenu will
  4277.    automatically override UseCommand and load the command processor.
  4278.  
  4279.    COMMAND.COM is required when running internal DOS commands like COPY or
  4280.    DIR. It is also required to run batch files.
  4281.  
  4282.    When UseCommand is off, MarxMenu will search the PATH for the executable
  4283.    file if it isn't in the current directory.
  4284.  
  4285.    Not using COMMAND.COM allows you to use the ReturnCode variable to get
  4286.    the ERRORLEVEL from the subprogram. If COMMAND.COM is loaded, the
  4287.    ERRORLEVEL of the subprogram is lost.
  4288.  
  4289.    The ClearScreenFirst (On/Off) controls whether MarxMenu will clear the
  4290.    screen before you execute.
  4291.  
  4292.  
  4293.  
  4294.    Computer Tyme MarxMenu Users Manual                     Page 70
  4295.    _______________________________________________________________
  4296.  
  4297.  
  4298.    The PauseAfterExecute (On/Off) allows you to have a pause like the Pause
  4299.    command in batch files. That way you can read the screen before it
  4300.    restores the MarxMenu screen. MarxMenu will display "Press any key to
  4301.    return to MarxMenu."
  4302.  
  4303.    Category: Execution
  4304.  
  4305.    ExistDir (directory) : Boolean   ExistDir (directory) : Boolean   ExistDir (directory) : Boolean
  4306.    Used to test whether or not a DIRECTORY exists.
  4307.  
  4308.    See Also: UseCommand, DosWindow, PauseAfterExecute, ClearScreenFirst
  4309.  
  4310.    Category: File
  4311.  
  4312.    ExistFile : Boolean   ExistFile : Boolean   ExistFile : Boolean
  4313.    Used to test whether or not a FILE exists.
  4314.  
  4315.    Category: File
  4316.  
  4317.    ExistOnPath (string) : String   ExistOnPath (string) : String   ExistOnPath (string) : String
  4318.    Used to search the existing paths for the command to be executed by
  4319.    Execute or other function. The program variable must include the full
  4320.    filename.
  4321.  
  4322.     Example:
  4323.       OnKey 'D'
  4324.       |Execute(ExistOnPath('DM.COM'))
  4325.  
  4326.    If the file is not found, a null string is returned.
  4327.  
  4328.    Category: File
  4329.  
  4330.    ExitCode   ExitCode   ExitCode
  4331.    This can be set so MarxMenu will return an ErrorLevel that can be used
  4332.    in a batch file.
  4333.  
  4334.     Example:
  4335.        ExitCode = 100
  4336.  
  4337.    When MarxMenu exits it will use ErrorLevel 100.
  4338.  
  4339.    Category: Execution
  4340.  
  4341.    ExitMenu   ExitMenu   ExitMenu
  4342.    Causes MarxMenu to exit.
  4343.  
  4344.    Category: Execution
  4345.  
  4346.  
  4347.  
  4348.    Computer Tyme MarxMenu Users Manual                     Page 71
  4349.    _______________________________________________________________
  4350.  
  4351.  
  4352.    Exp (Real) : Real   Exp (Real) : Real   Exp (Real) : Real
  4353.    Returns the Exponential of a real. Inverse of Ln.
  4354.  
  4355.    Category: Math, Float
  4356.  
  4357.    Explode (on/off)   Explode (on/off)   Explode (on/off)
  4358.    Turn exploding windows on/off.
  4359.  
  4360.    Category: Display
  4361.  
  4362.    ExplodeDelay (number)   ExplodeDelay (number)   ExplodeDelay (number)
  4363.    Sets the speed of exploding windows. Use this command to adjust the
  4364.    speed of the exploding windows. Default is 15.
  4365.  
  4366.    Category: Display
  4367.  
  4368.    Extension (String) : String   Extension (String) : String   Extension (String) : String
  4369.    Returns the Extention of a file name.
  4370.  
  4371.     Example:
  4372.       Extension('MARXMENU.EXE')  ;returns EXE
  4373.  
  4374.    See Also: NamePart, PathPart, FilePart
  4375.  
  4376.    Category: String
  4377.  
  4378.    False : Boolean   False : Boolean   False : Boolean
  4379.    Returns boolean False.
  4380.  
  4381.    Category: Boolean
  4382.  
  4383.    Feb : Number   Feb : Number   Feb : Number
  4384.    February, Returns the number 2.
  4385.  
  4386.    Category: Time
  4387.  
  4388.    FileAppend (FileVar)   FileAppend (FileVar)   FileAppend (FileVar)
  4389.    Opens a file for access and moves the file pointer to the end of the
  4390.    file. File writes will start at the end of the file.
  4391.  
  4392.    Category: File
  4393.  
  4394.  
  4395.  
  4396.    Computer Tyme MarxMenu Users Manual                     Page 72
  4397.    _______________________________________________________________
  4398.  
  4399.  
  4400.    FileAssign (FileVar,String)   FileAssign (FileVar,String)   FileAssign (FileVar,String)
  4401.    Assigns a file variable to a file name. Files must be given a name
  4402.    before they can be accessed.
  4403.  
  4404.     Example: FileAssign(BatFile,'MARX.BAT')
  4405.  
  4406.    BatFile is a variable and after the FileAssign, it becomes a file
  4407.    variable. All access to the file is done using the file variable.
  4408.  
  4409.    If an empty string is passed as the file name, MarxMenu will use the
  4410.    standard console file handles.
  4411.  
  4412.    Category: File
  4413.  
  4414.    FileAttr (string) : Number   FileAttr (string) : Number   FileAttr (string) : Number
  4415.    Returns file attribute. Can be used on directories also.
  4416.  
  4417.    Category: File
  4418.  
  4419.    FileClose (FileVar)   FileClose (FileVar)   FileClose (FileVar)
  4420.    Closes a file and deallocates the memory space used by the file
  4421.    variable.
  4422.  
  4423.    See Also: FileOpen
  4424.  
  4425.    Category: File
  4426.  
  4427.    FileCreate (FileVar)   FileCreate (FileVar)   FileCreate (FileVar)
  4428.    Creates a new file. If the file exists, it overwrites the old one.
  4429.    FileCreate opens the file for output. Do not use FileOpen with
  4430.    FileCreate.
  4431.  
  4432.    Category: File
  4433.  
  4434.    FileDate (string) : Number   FileDate (string) : Number   FileDate (string) : Number
  4435.    Returns file date as 32 bit integer. See Also: DOS manual for date
  4436.    structure.
  4437.  
  4438.    Category: File
  4439.  
  4440.    FileFlush (FileVar)   FileFlush (FileVar)   FileFlush (FileVar)
  4441.    Writes any information that is in the file buffers to disk.
  4442.  
  4443.    Category: File
  4444.  
  4445.    FileLog (FileVar,String)   FileLog (FileVar,String)   FileLog (FileVar,String)
  4446.    This is like FileWriteln except that it always seeks the end of the file
  4447.    and flushes its buffers after each write. Used for usage tracking.
  4448.  
  4449.    Category: File
  4450.  
  4451.  
  4452.  
  4453.    Computer Tyme MarxMenu Users Manual                     Page 73
  4454.    _______________________________________________________________
  4455.  
  4456.  
  4457.    FileOpen (FileVar)   FileOpen (FileVar)   FileOpen (FileVar)
  4458.    Opens a file for access. FileOpen is not needed if you are using the
  4459.    ReadTextFile command. The following example copies a text file.
  4460.  
  4461.       var Inp Out St
  4462.  
  4463.       FileAssign(Inp,'INPUT.TXT')
  4464.       FileOpen(Inp)
  4465.       FileAssign(Out,'OUTPUT.TXT')
  4466.       FileCreate(Out)
  4467.       while not EndOfFile(Inp)
  4468.          FileReadln(Inp,St)
  4469.          FileWriteln(Out,St)
  4470.       endwhile
  4471.       FileClose(Inp)
  4472.       FileClose(Out)
  4473.  
  4474.    Category: File
  4475.  
  4476.    FilePart (String) : String   FilePart (String) : String   FilePart (String) : String
  4477.    Returns the file part of a file name.
  4478.  
  4479.     Example:
  4480.       NamePart ('C:\MARX\MARXMENU.EXE') ;returns MARXMENU.EXE
  4481.  
  4482.    See Also: Extension, PathPart, NamePart
  4483.  
  4484.    Category: String
  4485.  
  4486.    FilePos (FileVar) : Number   FilePos (FileVar) : Number   FilePos (FileVar) : Number
  4487.    Returns the current file position in bytes.
  4488.  
  4489.    Category: File
  4490.  
  4491.    FileReadln (FileVar) : String   FileReadln (FileVar) : String   FileReadln (FileVar) : String
  4492.    Reads one line of an open file returning that line as a string.
  4493.  
  4494.     Example:
  4495.       Line3 = FileReadln(BatFile)
  4496.  
  4497.    See Also: FileOpen
  4498.  
  4499.    Category: File
  4500.  
  4501.    FileRename (Old,New)   FileRename (Old,New)   FileRename (Old,New)
  4502.    Renames a file from old name to new. A file may be moved to a new
  4503.    directory with this command.
  4504.  
  4505.    Category: File
  4506.  
  4507.  
  4508.  
  4509.    Computer Tyme MarxMenu Users Manual                     Page 74
  4510.    _______________________________________________________________
  4511.  
  4512.  
  4513.    FileResult : Number   FileResult : Number   FileResult : Number
  4514.    Returns result code from last file IO. Result codes are the same as
  4515.    Turbo Pascal IOResult codes. These codes usually match the errors
  4516.    returned in the AX register of DOS commands. 0 indicates no problem.
  4517.  
  4518.    Category: File
  4519.  
  4520.    FileSeek (FileVar,Number)   FileSeek (FileVar,Number)   FileSeek (FileVar,Number)
  4521.    Moves the file pointer to a specified place in the file.
  4522.  
  4523.    Category: File
  4524.  
  4525.    FileSize (string) : Number   FileSize (string) : Number   FileSize (string) : Number
  4526.    Returns size of file in bytes.
  4527.  
  4528.    Category: File
  4529.  
  4530.    FileWrite (FileVar,String)   FileWrite (FileVar,String)   FileWrite (FileVar,String)
  4531.    Writes text to a file.
  4532.  
  4533.    Category: File
  4534.  
  4535.    FileWriteln (FileVar,String)   FileWriteln (FileVar,String)   FileWriteln (FileVar,String)
  4536.    Writes text to a file with a carriage return and a line feed.
  4537.  
  4538.    See Also: FileOpen
  4539.  
  4540.    Category: File
  4541.  
  4542.    FixPath   FixPath   FixPath
  4543.    This command reads your path command and verifies that all the paths are
  4544.    accessable. Any path that isn't accessable is removed from the master
  4545.    environment. This can be used on network drives to eliminate searching
  4546.    paths on fileservers that are no longer accessable.
  4547.  
  4548.    Category: Environment
  4549.  
  4550.    Floppies : Number   Floppies : Number   Floppies : Number
  4551.    Returns number of floppy drives.
  4552.  
  4553.    Category: System
  4554.  
  4555.    ForceExplosion (On/Off)   ForceExplosion (On/Off)   ForceExplosion (On/Off)
  4556.    This changes the explosion status of a window that already exists. This
  4557.    allows windows to implode that didn't explode.
  4558.  
  4559.    Category: Display
  4560.  
  4561.  
  4562.  
  4563.    Computer Tyme MarxMenu Users Manual                     Page 75
  4564.    _______________________________________________________________
  4565.  
  4566.  
  4567.    ForceExtension (String,Ext) : String   ForceExtension (String,Ext) : String   ForceExtension (String,Ext) : String
  4568.    This command forces a file extension on a string.
  4569.  
  4570.     Example:
  4571.       St = ForceExtension('MAIN.MNU','MRX')
  4572.  
  4573.    This sets St equal to MAIN.MRX
  4574.  
  4575.    Category: String
  4576.  
  4577.    Fraction (Real) : Real   Fraction (Real) : Real   Fraction (Real) : Real
  4578.    Returns the fractional part of a real.
  4579.  
  4580.    Category: Math, Float
  4581.  
  4582.    FreeDiskSpace <drive> : Number   FreeDiskSpace <drive> : Number   FreeDiskSpace <drive> : Number
  4583.    Returns free disk space in bytes.
  4584.  
  4585.     Example:
  4586.       Writeln (FreeDiskSpace 'C')
  4587.  
  4588.    FreeDiskSpace only looks at the first character of the string for the
  4589.    drive letter.
  4590.  
  4591.    Category: System
  4592.  
  4593.    FreeEMS : Number   FreeEMS : Number   FreeEMS : Number
  4594.    Returns free EMS memory in bytes.
  4595.  
  4596.    Category: Memory
  4597.  
  4598.    FreeMemory : Number   FreeMemory : Number   FreeMemory : Number
  4599.    Returns the amount of free memory still available. This is the memory
  4600.    available to MarxMenu or the amount you would have using the Execute
  4601.    command.
  4602.  
  4603.    See Also: ApplicationMemory
  4604.  
  4605.    Category: Memory
  4606.  
  4607.    Fri : Number   Fri : Number   Fri : Number
  4608.    Friday, Returns the number 5.
  4609.  
  4610.    Category: Time
  4611.  
  4612.    GotoXY (column,row)   GotoXY (column,row)   GotoXY (column,row)
  4613.    Move cursor to location column,row in current box.
  4614.  
  4615.    Category: Display
  4616.  
  4617.  
  4618.  
  4619.    Computer Tyme MarxMenu Users Manual                     Page 76
  4620.    _______________________________________________________________
  4621.  
  4622.  
  4623.    Green : Number   Green : Number   Green : Number
  4624.    Returns the number 2.
  4625.  
  4626.    Category: Color
  4627.  
  4628.    Grey : Number   Grey : Number   Grey : Number
  4629.    Returns the number 7.
  4630.  
  4631.    Category: Color
  4632.  
  4633.    Hour : Number   Hour : Number   Hour : Number
  4634.    Return the current hour. 24 hour format.
  4635.  
  4636.    Category: Time
  4637.  
  4638.    HourOf (Date) : Number   HourOf (Date) : Number   HourOf (Date) : Number
  4639.    Returns the hour of a date. If Date is passed as a string it is
  4640.    converted automatically.
  4641.  
  4642.    See Also: TimeOf, BadDate
  4643.  
  4644.    Category: Time
  4645.  
  4646.    Hundredth : Number   Hundredth : Number   Hundredth : Number
  4647.    Returns the 1/100 of a second from the system clock. Note that the
  4648.    system clock timer tick is 1/18 second so don't expect a lot of accuracy
  4649.    here.
  4650.  
  4651.    Category: Time
  4652.  
  4653.    IdelProgram : Procedure   IdelProgram : Procedure   IdelProgram : Procedure
  4654.    IdelProgram is a variable that when set to the location of a procedure
  4655.    allows the procedure to run while waiting at the keyboard. This is done
  4656.    by writing a procedure that will run while waiting for input.
  4657.  
  4658.    The way you use this is to set an internal variable named IdelProgram to
  4659.    the Loc of the procedure you want to run as follows:
  4660.  
  4661.     Example:
  4662.       IdelProgram = Loc MyProcedure
  4663.  
  4664.    Note: Do not use parentheses around MyProcedure.
  4665.  
  4666.    When writing MyProcedure make it as short and quick as possible. As of
  4667.    now, MyProcedure is called continously while there is no keyboard input.
  4668.    You can also use a loop in it as follows.
  4669.  
  4670.  
  4671.  
  4672.    Computer Tyme MarxMenu Users Manual                     Page 77
  4673.    _______________________________________________________________
  4674.  
  4675.  
  4676.     Procedure MyProcedure
  4677.        SetItUp
  4678.        while not KBDReady
  4679.           {do your thing}
  4680.        endwhile
  4681.        PutItBack
  4682.     EndProc
  4683.  
  4684.    MarxMenu doesn't automatically exit your procedure or save and restore
  4685.    anything. If you're writing to the screen you have to put everything
  4686.    back the way it was.
  4687.  
  4688.    If you want to run a program at a specific time, here's how it can be
  4689.    done:
  4690.  
  4691.     Procedure MyProcedure
  4692.        if Now = TimeOf('11:00pm')
  4693.           Bat 'NIGHT'             ;run NIGHT.BAT
  4694.           ExitMenu
  4695.        endif
  4696.        if Now = TimeOf('5:00')
  4697.           Bat 'MORNING'           ;run MORNING.BAT
  4698.           ExitMenu
  4699.        endif
  4700.     EndProc
  4701.  
  4702.    See Also: Run, Loc
  4703.  
  4704.    Category: Execution
  4705.  
  4706.    If   If   If
  4707.    Used for program control.
  4708.  
  4709.     Usage:
  4710.  
  4711.     IF (condition) THEN (statement)
  4712.  
  4713.     IF (condition)
  4714.        (statement)
  4715.        (statement)
  4716.     ELSE
  4717.        (statement)
  4718.        (statement)
  4719.     ENDIF
  4720.  
  4721.    Category: Conditional
  4722.  
  4723.  
  4724.  
  4725.    Computer Tyme MarxMenu Users Manual                     Page 78
  4726.    _______________________________________________________________
  4727.  
  4728.  
  4729.    InactiveBox (BoxType)   InactiveBox (BoxType)   InactiveBox (BoxType)
  4730.    This is used to select the type of box border to use when a window is
  4731.    not the current window. If any inactive box type is specified, then when
  4732.    you execute another DrawBox, the old window's border changes to the
  4733.    inactive box type. The inactive window also loses its headers and
  4734.    shadows.
  4735.  
  4736.    Note that InActiveBox must be used BEFORE the DrawBox command.
  4737.  
  4738.     Example:
  4739.       InActiveBox (SingleLineBox) ;switches to single line box if
  4740.                                    inactive.
  4741.  
  4742.       InactiveBox (NoBoxBorder)   ;disables InActive effect.
  4743.  
  4744.    See Also: InactiveBoxColor
  4745.  
  4746.    Category: Display
  4747.  
  4748.    InactiveBoxColor (foreground,background)   InactiveBoxColor (foreground,background)   InactiveBoxColor (foreground,background)
  4749.    Selects the color of the inactive box window. If Black on Black is
  4750.    selected, (default), the inactive box color is the same as the active
  4751.    box color.
  4752.  
  4753.     Example:
  4754.       BoxBorderColor Yellow Blue
  4755.       InActiveBoxColor Brown Blue
  4756.  
  4757.    See Also: InactiveBox BoxBorderColor
  4758.  
  4759.    Category: Color
  4760.  
  4761.    Include (MenuName)   Include (MenuName)   Include (MenuName)
  4762.    This is used to insert the menu code from another file into the menu
  4763.    that you are compiling.
  4764.  
  4765.     Example:
  4766.       Include 'DOS.MNU'
  4767.  
  4768.    This will compile DOS.MNU into your present menu as if that whole file
  4769.    were part of the menu you are working on.
  4770.  
  4771.    This is useful if you have several menus that share common code. By
  4772.    moving this common code to a separate file, and using an Include
  4773.    statement, you can change the common code and update several menus at
  4774.    once. If you are using overlays, it is a good idea to put your shared
  4775.    variables in an include file. This asures that the shared variables will
  4776.    be the same for all overlays.
  4777.  
  4778.  
  4779.  
  4780.    Computer Tyme MarxMenu Users Manual                     Page 79
  4781.    _______________________________________________________________
  4782.  
  4783.  
  4784.    Changing an include file does not cause MarxMenu to recompile
  4785.    automatically like changing the MNU does. You will have to force it to
  4786.    compile your menus.
  4787.  
  4788.    This can be done several ways. You can type MARXCOMP (menu) or you can
  4789.    just type DEL *.MRX which will cause all the menus to recompile the next
  4790.    time they are run.
  4791.  
  4792.    Category: Misc
  4793.  
  4794.    InputString (String)   InputString (String)   InputString (String)
  4795.    Preloads a string for the Readln command. The next Readln will have the
  4796.    InputString on the screen for you to edit or accept. Once Readln
  4797.    executes, InputString is cleared to a blank string.
  4798.  
  4799.     Example:
  4800.       InputString = ReadEnv('USERNAME')
  4801.       YourName = Readln
  4802.  
  4803.    Category: Keyboard, String
  4804.  
  4805.    Insert (InsString,OrigString,Pos)   Insert (InsString,OrigString,Pos)   Insert (InsString,OrigString,Pos)
  4806.    Inserts a string into a string.
  4807.  
  4808.     Example:
  4809.       St = 'ABCDEF'
  4810.       Insert('123',St,3)
  4811.  
  4812.    St will become 'ABC123DEF'
  4813.  
  4814.    Category: String
  4815.  
  4816.    InsertMode (On/Off)   InsertMode (On/Off)   InsertMode (On/Off)
  4817.    Turns insert mode on and off for Readln commands.
  4818.  
  4819.    Category: Keyboard
  4820.  
  4821.    Int (Real) : Real   Int (Real) : Real   Int (Real) : Real
  4822.    Returns the integer part of a real as a real.
  4823.  
  4824.    Category: Math, Float
  4825.  
  4826.    Integer (Real) : Number   Integer (Real) : Number   Integer (Real) : Number
  4827.    Returns the integer part of a real as an integer. The fractional part is
  4828.    truncated.
  4829.  
  4830.    Category: Math, Float
  4831.  
  4832.  
  4833.  
  4834.    Computer Tyme MarxMenu Users Manual                     Page 80
  4835.    _______________________________________________________________
  4836.  
  4837.  
  4838.    InverseColor (forecolor,backcolor)   InverseColor (forecolor,backcolor)   InverseColor (forecolor,backcolor)
  4839.    Sets colors for inverse bar used with UseArrows command.
  4840.  
  4841.    Category: Color
  4842.  
  4843.    Jan : Number   Jan : Number   Jan : Number
  4844.    January, Returns the number 1.
  4845.  
  4846.    Category: Time
  4847.  
  4848.    Jul : Number   Jul : Number   Jul : Number
  4849.    July, Returns the number 7.
  4850.  
  4851.    Category: Time
  4852.  
  4853.    Jun : Number   Jun : Number   Jun : Number
  4854.    June, Returns the number 6.
  4855.  
  4856.    Category: Time
  4857.  
  4858.    Jump (menu)   Jump (menu)   Jump (menu)
  4859.    Jumps to another menu and does not return to original menu.
  4860.  
  4861.    Category: Execution
  4862.  
  4863.    KbdReady : Boolean   KbdReady : Boolean   KbdReady : Boolean
  4864.    Returns true if Key is pressed.
  4865.  
  4866.    Category: Keyboard
  4867.  
  4868.    KeySave : String   KeySave : String   KeySave : String
  4869.    Stores your keystrokes that you pressed to get to the menu level where
  4870.    you are at. KeySave is passed to DOS using the SET KSV= command to store
  4871.    your position in the menu system. To make this work, you must execute
  4872.    SavePosition On.
  4873.  
  4874.    This variable can be set by you to force MarxMenu to return to a place
  4875.    in the menu other than where you are. This allows MarxMenu to suggest a
  4876.    next step.
  4877.  
  4878.    See Also: SavePosition
  4879.  
  4880.    Category: String, Environment, Execution
  4881.  
  4882.    KeyFromMouse : Boolean   KeyFromMouse : Boolean   KeyFromMouse : Boolean
  4883.    Normally mouse activity is translated into keystrokes. This variable is
  4884.    set to true if the keystroke came from the mouse.
  4885.  
  4886.    Category: MouseControl
  4887.  
  4888.  
  4889.  
  4890.    Computer Tyme MarxMenu Users Manual                     Page 81
  4891.    _______________________________________________________________
  4892.  
  4893.  
  4894.    KillMusic   KillMusic   KillMusic
  4895.    This command stops the music and de-allocates the memory used by the
  4896.    music buffer.
  4897.  
  4898.    Category: Music
  4899.  
  4900.    LastKey : String   LastKey : String   LastKey : String
  4901.    LastKey returns the last key that was typed at the keyboard. This can be
  4902.    used after a Readln to determine if the ESC key was pressed or perhaps
  4903.    the up or down arrow keys.
  4904.  
  4905.    Sometimes after the press of an ESC key, MarxMenu wants to exit more
  4906.    levels than you want it to. This can be controlled by setting LastKey =
  4907.    ' ' to stop the abort process.
  4908.  
  4909.    See Also: Readln
  4910.  
  4911.    Category: String
  4912.  
  4913.    LBlue : Number   LBlue : Number   LBlue : Number
  4914.    Light Blue, Returns the number 9.
  4915.  
  4916.    Category: Color
  4917.  
  4918.    LCyan : Number   LCyan : Number   LCyan : Number
  4919.    Light Cyan, Returns the number 11.
  4920.  
  4921.    Category: Color
  4922.  
  4923.    Left (string,count) : String   Left (string,count) : String   Left (string,count) : String
  4924.    Returns string starting at the beginning for count characters.
  4925.  
  4926.     Example: Left('ABCDEF',3) returns 'ABC'
  4927.  
  4928.    Category: String
  4929.  
  4930.    Length (string) : Number   Length (string) : Number   Length (string) : Number
  4931.    Returns the length of the string.
  4932.  
  4933.     Example: Length('ABCD') returns 4.
  4934.  
  4935.    Category: String
  4936.  
  4937.    LGreen : Number   LGreen : Number   LGreen : Number
  4938.    Light Green, Returns the number 10.
  4939.  
  4940.    Category: Color
  4941.  
  4942.  
  4943.  
  4944.    Computer Tyme MarxMenu Users Manual                     Page 82
  4945.    _______________________________________________________________
  4946.  
  4947.  
  4948.    LGrey : Number   LGrey : Number   LGrey : Number
  4949.    Light Grey, Returns the number 8.
  4950.  
  4951.    Category: Color
  4952.  
  4953.    LMag : Number   LMag : Number   LMag : Number
  4954.    Light Magenta, Returns the number 13.
  4955.  
  4956.    Category: Color
  4957.  
  4958.    LMagenta : Number   LMagenta : Number   LMagenta : Number
  4959.    Light Magenta, Returns the number 13.
  4960.  
  4961.    Category: Color
  4962.  
  4963.    Ln (Real) : Real   Ln (Real) : Real   Ln (Real) : Real
  4964.    Returns the Natural Logarithm of a real.
  4965.  
  4966.    Category: Math, Float
  4967.  
  4968.    Loc (Procedure)   Loc (Procedure)   Loc (Procedure)
  4969.    This returns the location of a procedure for storing in a variable. The
  4970.    variable is later executed using the Run command.
  4971.  
  4972.    See Also: Run
  4973.  
  4974.    Category: Misc
  4975.  
  4976.    LockWord (word)   LockWord (word)   LockWord (word)
  4977.    Sets a default word for the console activated keyboard lock. When the
  4978.    screen goes blank, the user has to type the LockWord to unblank the
  4979.    screen. This is a security feature so that if a user leaves the menu
  4980.    unattended, it prevents others from tampering with the system.
  4981.  
  4982.    See Also: LogoffTime, BlankTime
  4983.  
  4984.    Category: Display
  4985.  
  4986.    Logoff   Logoff   Logoff
  4987.    Logoff logs you off the network the same way that LogoffTime does except
  4988.    it does it immediately. See LogoffTime for details as to how.
  4989.  
  4990.    See Also: LogoffTime
  4991.  
  4992.    Category: Execution
  4993.  
  4994.  
  4995.  
  4996.    Computer Tyme MarxMenu Users Manual                     Page 83
  4997.    _______________________________________________________________
  4998.  
  4999.  
  5000.    LogoffTime : Number   LogoffTime : Number   LogoffTime : Number
  5001.    MarxMenu supports automatic logoff after a number of minutes of
  5002.    inactivity set by LogoffTime. This only has effect while you are in the
  5003.    menu and not while an application is running. It is set as follows:
  5004.  
  5005.     LogoffTime = 5 ;sets time to 5 minutes
  5006.  
  5007.    Setting LogoffTime to 0 disbles this feature.
  5008.  
  5009.    When the time to logoff occurs, MarxMenu will first look for a batch
  5010.    file in the \LOGIN directory called OFF.BAT. If it doesn't find it,
  5011.    MarxMenu will look for OFF.BAT on the PATH. If this isn't found,
  5012.    MarxMenu will look for LOGOFF.EXE. If this isn't found, then MarxMenu
  5013.    will look for LOGOUT.COM.
  5014.  
  5015.    LOGOFF.EXE and LOGOUT.COM are executed by stuffing the keyboard buffer.
  5016.  
  5017.    The best way to use this feature is to create an OFF.BAT file in your
  5018.    \LOGIN directory or on the PATH.
  5019.  
  5020.    See Also: LockWord
  5021.  
  5022.    Category: Execution
  5023.  
  5024.    Loop   Loop   Loop
  5025.    MarxMenu has a looping structure that lets you execute a piece of code a
  5026.    specific number of times. It is used as follows:
  5027.  
  5028.     Example:
  5029.       Loop 8
  5030.          Writeln 'Pass Number ' LoopIndex
  5031.       EndLoop
  5032.  
  5033.    You start with LOOP (Number) which specifies the number of times to
  5034.    execute the code between LOOP and ENDLOOP. There are 2 variables
  5035.    available here for loop control. LoopIndex starts at 1 and is
  5036.    incremented at each EndLoop. When LoopIndex becomes greater than
  5037.    LoopLimit, the loop exits. LoopIndex and LoopLimit refer to the
  5038.    innermost loop.
  5039.  
  5040.    As loops are nested LoopIndexes and LoopLimits are kept in two arrays;
  5041.    LoopIndexStack and LoopLimitStack. There is also a variable called
  5042.    LoopLevel which points to the current loop parameters.
  5043.  
  5044.     Thus:
  5045.       LoopIndex is the same as LoopIndexStack[LoopLevel]
  5046.       LoopLimit is the same as LoopLimitStack[LoopLevel]
  5047.  
  5048.    You may therefore access outer loop parameters through the loop stacks.
  5049.    For instance LoopIndexStack[LoopLevel - 1] would refer to the second
  5050.    innermost loop index. LoopIndexStack[1] refers to the outermost loop.
  5051.  
  5052.  
  5053.  
  5054.    Computer Tyme MarxMenu Users Manual                     Page 84
  5055.    _______________________________________________________________
  5056.  
  5057.  
  5058.    The loop variables can be read and written to so you can adjust the
  5059.    looping parameters while inside the loop. You can even adjust the
  5060.    parameters of outer loops.
  5061.  
  5062.    See Also: EndLoop LoopIndex LoopLimit
  5063.  
  5064.    Category: Conditional
  5065.  
  5066.    LoopIndex   LoopIndex   LoopIndex
  5067.    Returns the loop you are in.
  5068.  
  5069.    See Also: Loop EndLoop LoopLimit
  5070.  
  5071.    Category: Conditional
  5072.  
  5073.    LoopLimit   LoopLimit   LoopLimit
  5074.    Returns the upper limit of the loop you are in.
  5075.  
  5076.    See Also: Loop EndLoop LoopIndex
  5077.  
  5078.    Category: Conditional
  5079.  
  5080.    LRed : Number   LRed : Number   LRed : Number
  5081.    Light Red returns the number 12.
  5082.  
  5083.    Category: Color
  5084.  
  5085.    MachineName : String   MachineName : String   MachineName : String
  5086.    This reads or sets the MachineName for NetBios networks.
  5087.  
  5088.     Example:
  5089.        MachineName = IBM   ;sets the MachineName
  5090.        Writeln MachineName ;displays the MachineName
  5091.  
  5092.    Category: Novell
  5093.  
  5094.    Mag : Number   Mag : Number   Mag : Number
  5095.    Magenta, Returns the number 5.
  5096.  
  5097.    Category: Color
  5098.  
  5099.    Magenta : Number   Magenta : Number   Magenta : Number
  5100.    Magenta, Returns the number 5.
  5101.  
  5102.    Category: Color
  5103.  
  5104.    Mar : Number   Mar : Number   Mar : Number
  5105.    March, Returns the number 3.
  5106.  
  5107.    Category: Time
  5108.  
  5109.  
  5110.  
  5111.    Computer Tyme MarxMenu Users Manual                     Page 85
  5112.    _______________________________________________________________
  5113.  
  5114.  
  5115.    MarxVersion : String   MarxVersion : String   MarxVersion : String
  5116.    Returns the version number of the MarxMenu you are running.
  5117.  
  5118.    Category: String
  5119.  
  5120.    MasterEnvironment   MasterEnvironment   MasterEnvironment
  5121.    MasterEnvironment selects the Master Environment for use with
  5122.    environment access commands.
  5123.  
  5124.    See Also: ReadEnv SetEnv ReadEnvironment ShellEnvironment
  5125.    See Also: CurrentEnvironment ParentEnvironment
  5126.  
  5127.    Category: Environment
  5128.  
  5129.    Max (Num,Num) : Num   Max (Num,Num) : Num   Max (Num,Num) : Num
  5130.    Returns the largest of two numbers or strings.
  5131.  
  5132.    Category: Math, String, Float
  5133.  
  5134.    May : Number   May : Number   May : Number
  5135.    May, Returns the number 5.
  5136.  
  5137.    Category: Time
  5138.  
  5139.    Mem (seg,ofs) : Number   Mem (seg,ofs) : Number   Mem (seg,ofs) : Number
  5140.    Returns the byte at memory location seg:ofs or lets you write to the
  5141.    byte at seg:ofs.
  5142.  
  5143.     Example:
  5144.       X = Mem(40,5)  ;reads memory into X
  5145.       Mem(40,5) = X  ;writes X into memory
  5146.  
  5147.    Category: Memory
  5148.  
  5149.    MemL (seg,ofs) : Number   MemL (seg,ofs) : Number   MemL (seg,ofs) : Number
  5150.    Returns the long integer at memory location seg:ofs or lets you write to
  5151.    the byte at seg:ofs.
  5152.  
  5153.     Example:
  5154.       X = MemL(40,5)  ;reads memory into X
  5155.       MemL(40,5) = X  ;writes X into memory
  5156.  
  5157.    Category: Memory
  5158.  
  5159.    MemSize : Number   MemSize : Number   MemSize : Number
  5160.    Returns total memory size in K. (640 = 640k)
  5161.  
  5162.    Category: Memory
  5163.  
  5164.  
  5165.  
  5166.    Computer Tyme MarxMenu Users Manual                     Page 86
  5167.    _______________________________________________________________
  5168.  
  5169.  
  5170.    MemW (seg,ofs) : Number   MemW (seg,ofs) : Number   MemW (seg,ofs) : Number
  5171.    Returns the word at memory location seg:ofs or lets you write to the
  5172.    byte at seg:ofs.
  5173.  
  5174.     Example:
  5175.       X = MemW(40,5)  ;reads memory into X
  5176.       MemW(40,5) = X  ;writes X into memory
  5177.  
  5178.    Category: Memory
  5179.  
  5180.    MenuKeyBuffer   MenuKeyBuffer   MenuKeyBuffer
  5181.    This is an internal MarxMenu variable. It is where the environment
  5182.    variable KSV= is read. Characters in this string variable are treated as
  5183.    if someone had typed them from the keyboard.
  5184.  
  5185.    This variable can be set to blank in order to override the effects of
  5186.    SET KSV= or can be set to a different value in order to automatically
  5187.    make selections as if they were typed in.
  5188.  
  5189.    See Also: SavePosition, KeySave
  5190.  
  5191.    Category: Keyboard
  5192.  
  5193.    Mid (string,pos,count) : String   Mid (string,pos,count) : String   Mid (string,pos,count) : String
  5194.    Returns a string starting at pos for count.
  5195.  
  5196.     Example:
  5197.        Mid('ABCDEFG',2,3) returns 'CDE'
  5198.  
  5199.    Category: String
  5200.  
  5201.    Min (Num,Num) : Num   Min (Num,Num) : Num   Min (Num,Num) : Num
  5202.    Returns the smallest of two numbers or strings.
  5203.  
  5204.    Category: Math, String, Float
  5205.  
  5206.    MinorDosVersion : Number   MinorDosVersion : Number   MinorDosVersion : Number
  5207.    Returns the minor DOS version number.
  5208.  
  5209.    See Also: DosVersion, DosVersionString
  5210.  
  5211.    Category: System
  5212.  
  5213.    Minute : Number   Minute : Number   Minute : Number
  5214.    Returns the current minute.
  5215.  
  5216.    Category: Time
  5217.  
  5218.  
  5219.  
  5220.    Computer Tyme MarxMenu Users Manual                     Page 87
  5221.    _______________________________________________________________
  5222.  
  5223.  
  5224.    MinuteOf (Date) : Number   MinuteOf (Date) : Number   MinuteOf (Date) : Number
  5225.    Returns the minute of a date. If Date is passed as a string it is
  5226.    converted automatically.
  5227.  
  5228.    See Also: TimeOf, BadDate
  5229.  
  5230.    Category: Time
  5231.  
  5232.    Mod : Operator   Mod : Operator   Mod : Operator
  5233.    Returns the remainder of the division of two numbers.
  5234.  
  5235.    Category: Math
  5236.  
  5237.    ModifyPath   ModifyPath   ModifyPath
  5238.    The MarxMenu directory should be in the search path. This is because if
  5239.    you change directories, MarxMenu may not be able to find the menu files.
  5240.    MarxMenu will now test the PATH= environment variable before it writes
  5241.    the batch file to execute a program. If the MarxMenu path is not
  5242.    included, MarxMenu will add the path to the Master Environment if it
  5243.    can.
  5244.  
  5245.    If for some reason you don't want to allow MarxMenu to modify the master
  5246.    environment, use the command:
  5247.  
  5248.     ModifyPath Off
  5249.  
  5250.    Category: Environment
  5251.  
  5252.    Mon : Number   Mon : Number   Mon : Number
  5253.    Monday, Returns the number 1.
  5254.  
  5255.    Category: Time
  5256.  
  5257.    Mono : Number   Mono : Number   Mono : Number
  5258.    Returns the number 7. Relates to the DOS Mode MONO command.
  5259.  
  5260.    Category: Video
  5261.  
  5262.    Month : Number   Month : Number   Month : Number
  5263.    Returns current month.
  5264.  
  5265.    Category: Time
  5266.  
  5267.    MonthOf (Date) : Number   MonthOf (Date) : Number   MonthOf (Date) : Number
  5268.    Returns the month of a date. If Date is passed as a string it is
  5269.    converted automatically.
  5270.  
  5271.    See Also: TimeOf, BadDate
  5272.  
  5273.    Category: Time
  5274.  
  5275.  
  5276.  
  5277.    Computer Tyme MarxMenu Users Manual                     Page 88
  5278.    _______________________________________________________________
  5279.  
  5280.  
  5281.    Mouse   Mouse   Mouse
  5282.    MarxMenu normally uses the mouse if present. If you don't want to use
  5283.    the mouse you can use the command:
  5284.  
  5285.     Mouse Off
  5286.  
  5287.    To turn the mouse back on type:
  5288.  
  5289.     Mouse On
  5290.  
  5291.    The mouse is actually switched on and off at the point when MarxMenu
  5292.    waits at the keyboard for a keypress.
  5293.  
  5294.    Mouse Sensitivity can be set for individual workstations on a network by
  5295.    setting environment variables MouseX and MouseY as follows:
  5296.  
  5297.     Set MouseX=15
  5298.     Set MouseY=25
  5299.  
  5300.    See Also: MouseHorizontal, MouseVertical
  5301.  
  5302.    Category: MouseControl
  5303.  
  5304.    MouseHorizontal (Number)   MouseHorizontal (Number)   MouseHorizontal (Number)
  5305.    Controls the horizontal sensitivity of the mouse. The larger the number,
  5306.    the less sensitive the mouse. Default is 25.
  5307.  
  5308.    See Also: MouseVertical, Mouse
  5309.  
  5310.    Category: MouseControl
  5311.  
  5312.    MouseVertical (Number)   MouseVertical (Number)   MouseVertical (Number)
  5313.    Controls the vertical sensitivity of the mouse. The larger the number,
  5314.    the less sensitive the mouse. Default is 15.
  5315.  
  5316.    See Also: MouseHorizontal, Mouse
  5317.  
  5318.    Category: MouseControl
  5319.  
  5320.    MoveWindow (Horizontal,Vertical)   MoveWindow (Horizontal,Vertical)   MoveWindow (Horizontal,Vertical)
  5321.    Moves top window. If (Horizontal) is negative motion is left. If
  5322.    <Vertical> is negative, motion is up.
  5323.  
  5324.     Example:
  5325.       MoveWindow -3 4 ;moves window 3 spaces left and 4 down
  5326.  
  5327.    Category: Display
  5328.  
  5329.  
  5330.  
  5331.    Computer Tyme MarxMenu Users Manual                     Page 89
  5332.    _______________________________________________________________
  5333.  
  5334.  
  5335.    MxCmd : String   MxCmd : String   MxCmd : String
  5336.    This is an internal string variable that it written to the environment
  5337.    variable MXCMD. This variable can be written to control what MarxMenu
  5338.    will write to the Shell Environment. If this variable is written to, it
  5339.    overrides anything that MarxMenu automatically writes.
  5340.  
  5341.     Example:
  5342.       OnKey 'A'
  5343.         |MxCmd = 'SHUTDOWN.BAT'
  5344.         |ExitMenu
  5345.  
  5346.    Category: Environment, String, Execution
  5347.  
  5348.    NamePart (String) : String   NamePart (String) : String   NamePart (String) : String
  5349.    Returns the name part of a file name.
  5350.  
  5351.     Example:
  5352.       NamePart ('C:\MARX\MARXMENU.EXE') ;returns MARXMENU
  5353.  
  5354.    See Also: Extension, PathPart, FilePart
  5355.  
  5356.    Category: String
  5357.  
  5358.    NetworkVersion : Boolean   NetworkVersion : Boolean   NetworkVersion : Boolean
  5359.    Returns true if you are running the network version of MarxMenu.
  5360.  
  5361.    Category: Misc
  5362.  
  5363.    NextWord (String) : String   NextWord (String) : String   NextWord (String) : String
  5364.    This command returns the next logical word of a string variable and
  5365.    removes the string from the original string.
  5366.  
  5367.     Example:
  5368.       StringA = 'one two three'
  5369.       StringB = NextWord(StringA)
  5370.  
  5371.       StringB contains 'one'
  5372.       StringA contains 'two three'
  5373.  
  5374.    Category: String
  5375.  
  5376.    No : Boolean   No : Boolean   No : Boolean
  5377.    Returns the boolean false.
  5378.  
  5379.    Category: Boolean
  5380.  
  5381.  
  5382.  
  5383.    Computer Tyme MarxMenu Users Manual                     Page 90
  5384.    _______________________________________________________________
  5385.  
  5386.  
  5387.    NoBoxBorder   NoBoxBorder   NoBoxBorder
  5388.    Use this command if you don't want a border around the menus.
  5389.  
  5390.    See Also: SingleLineBox, DoubleLineBox, BlockBox, CustomBox
  5391.  
  5392.    Category: Display
  5393.  
  5394.    NoExit   NoExit   NoExit
  5395.    Prevents ESC key from allowing you to exit menu. To exit, you must
  5396.    execute the ExitMenu command. This could be password protected.
  5397.  
  5398.    See Also: ExitMenu
  5399.  
  5400.    Category: Execution
  5401.  
  5402.    Not : Operator   Not : Operator   Not : Operator
  5403.    Returns logical Not if operators are boolean; or bitwise Not if
  5404.    operators are numeric.
  5405.  
  5406.    Category: Math, Boolean
  5407.  
  5408.    NotesLeft : Num   NotesLeft : Num   NotesLeft : Num
  5409.    NotesLeft returns the number of notes left in the music buffer to play.
  5410.    The music buffer is self adjusting and can store days worth of music.
  5411.  
  5412.    Category: Music
  5413.  
  5414.    NotesPlayed : Num   NotesPlayed : Num   NotesPlayed : Num
  5415.    Returns the number of notes played. If NotesLeft ever reaches 0,
  5416.    NotesPlayed also is set to 0.
  5417.  
  5418.    Category: Music
  5419.  
  5420.    Nov : Number   Nov : Number   Nov : Number
  5421.    November, Returns the number 11.
  5422.  
  5423.    Category: Time
  5424.  
  5425.    NovAccountExpDate (UserName) : Date   NovAccountExpDate (UserName) : Date   NovAccountExpDate (UserName) : Date
  5426.    Returns the Novell account expiration date. You must be logged in to be
  5427.    able to read this.
  5428.  
  5429.     Example:
  5430.        DaysToExpire = NovAccountExpDate(UserName) - Today / SecondsInDay
  5431.  
  5432.    Category: Novell, Time
  5433.  
  5434.  
  5435.  
  5436.    Computer Tyme MarxMenu Users Manual                     Page 91
  5437.    _______________________________________________________________
  5438.  
  5439.  
  5440.    NovAttach (Server)   NovAttach (Server)   NovAttach (Server)
  5441.    NovAttach is used to create a software link between you and a server,
  5442.    usually a second server. It must be followed by a NovLogin command to
  5443.    log you into the server.
  5444.  
  5445.    See Also: NovDetach
  5446.  
  5447.    Category: Novell
  5448.  
  5449.    NovChangePassword (OldPassword,NewPassword)   NovChangePassword (OldPassword,NewPassword)   NovChangePassword (OldPassword,NewPassword)
  5450.    Changes the novell users password from OldPassword to NewPassword.
  5451.  
  5452.    Category: Novell
  5453.  
  5454.    NovCloseSemaphore (Name)   NovCloseSemaphore (Name)   NovCloseSemaphore (Name)
  5455.    This closes semaphore Name. If there are no other users using this
  5456.    semaphore, it is deleted.
  5457.  
  5458.    Category: Novell
  5459.  
  5460.    NovConnection : Number   NovConnection : Number   NovConnection : Number
  5461.    This returns the logical connection number to the network. A zero
  5462.    indicates that you are not connected.
  5463.  
  5464.    Category: Novell
  5465.  
  5466.    NovConsoleOperator : Boolean   NovConsoleOperator : Boolean   NovConsoleOperator : Boolean
  5467.    This returns true if the user has Console Operator priviledges. This can
  5468.    come in handy when you are trying to determine who gets access to the
  5469.    command line.
  5470.  
  5471.    Category: Novell
  5472.  
  5473.    NovDefaultServer : String   NovDefaultServer : String   NovDefaultServer : String
  5474.    Returns the name of the default file server.
  5475.  
  5476.    Category: Novell
  5477.  
  5478.    NovDetach (Server)   NovDetach (Server)   NovDetach (Server)
  5479.    This is used to drop the connection to a server.
  5480.  
  5481.    See Also: NovAttach
  5482.  
  5483.    Category: Novell
  5484.  
  5485.    NovGroupsMembers (Group,Array)   NovGroupsMembers (Group,Array)   NovGroupsMembers (Group,Array)
  5486.    This reads all the members of Group and puts them into an array.
  5487.  
  5488.    Category: Novell, Array
  5489.  
  5490.  
  5491.  
  5492.    Computer Tyme MarxMenu Users Manual                     Page 92
  5493.    _______________________________________________________________
  5494.  
  5495.  
  5496.    NovGroups (Array)   NovGroups (Array)   NovGroups (Array)
  5497.    Fills array with list of all groups.
  5498.  
  5499.    See Also: NovUsersLoggedIn, NovUsers, NovPrintQueues, NovServers
  5500.  
  5501.    Category: Novell
  5502.  
  5503.    NovInGroup (Group) : Boolean   NovInGroup (Group) : Boolean   NovInGroup (Group) : Boolean
  5504.    Return true if you are in the group.
  5505.  
  5506.    Category: Novell
  5507.  
  5508.    NovLogin (Name,Password)   NovLogin (Name,Password)   NovLogin (Name,Password)
  5509.    This logs you into a file server. It is different than the Novell's
  5510.    login program in that it doesn't execute any login scripts. It merely
  5511.    gets you in. You can include the preferred server with the name.
  5512.  
  5513.     Example:
  5514.        NovLogin ('MARC','PASSWORD')
  5515.  
  5516.    The variable NovResult is set to 0 if sucessful.
  5517.  
  5518.    Note: If you are using Netware 3.0 or 3.1 you will have to go to the
  5519.    server console and type:
  5520.  
  5521.     SET ALLOW UNENCRYPTED PASSWORDS = ON
  5522.  
  5523.    Category: Novell
  5524.  
  5525.    NovLoginName (Connection) : String   NovLoginName (Connection) : String   NovLoginName (Connection) : String
  5526.    This returns the login name of the user at any specified connection.
  5527.    This can also be used to see who else is on the network.
  5528.  
  5529.    Category: Novell
  5530.  
  5531.    NovLogout   NovLogout   NovLogout
  5532.    This logs you off the server. Warning! Make sure that you are running
  5533.    MarxMenu from a local drive and not the server you are logging out of.
  5534.    MarxMenu needs access to overlays within MARXMENU.EXE and a Logout can
  5535.    cut off access. This command automatically runs FixPath.
  5536.  
  5537.    See Also: FixPath, Logoff, LogoffTime
  5538.  
  5539.    Category: Novell
  5540.  
  5541.  
  5542.  
  5543.    Computer Tyme MarxMenu Users Manual                     Page 93
  5544.    _______________________________________________________________
  5545.  
  5546.  
  5547.    NovMapDrive (Drive,Directory)   NovMapDrive (Drive,Directory)   NovMapDrive (Drive,Directory)
  5548.    This will map a drive letter to a directory like the Novell MAP
  5549.    command does. You may specify volume names and server names.
  5550.  
  5551.     Example:
  5552.       NovMapDrive ('J','TYME2/SYS:PUBLIC\DOS')
  5553.  
  5554.    Mapping a drive to a nul string ('') deletes the drive map.
  5555.  
  5556.    Category: Novell
  5557.  
  5558.    NovMyLoginName : String   NovMyLoginName : String   NovMyLoginName : String
  5559.    This returns the login name of the user.
  5560.  
  5561.    Category: Novell
  5562.  
  5563.    NovMyPassword (Password) : Boolean   NovMyPassword (Password) : Boolean   NovMyPassword (Password) : Boolean
  5564.    Novell won't let you read the password, but it will let you guess and
  5565.    tell you if you're right. This routine returns true if the password
  5566.    passed is the correct password.
  5567.  
  5568.    Category: Novell
  5569.  
  5570.    NovOpenSemaphore (Name,Value)   NovOpenSemaphore (Name,Value)   NovOpenSemaphore (Name,Value)
  5571.    This opens semaphore Name and assigns it an initial value. If the
  5572.    semaphore already exists, it does nothing.
  5573.  
  5574.    Category: Novell
  5575.  
  5576.    NovPasswordExpDate (UserName) : Date   NovPasswordExpDate (UserName) : Date   NovPasswordExpDate (UserName) : Date
  5577.    Returns the Novell password expiration date. You must be logged in to be
  5578.    able to read this.
  5579.  
  5580.     Example:
  5581.        DaysToExpire = NovPasswordExpDate(UserName) - Today / SecondsInDay
  5582.  
  5583.    Category: Novell, Time
  5584.  
  5585.    NovPreferredServer : String   NovPreferredServer : String   NovPreferredServer : String
  5586.    Returns the name of the preferred file server. This is set with the
  5587.    NovSetPreferredServer command.
  5588.  
  5589.    Category: Novell
  5590.  
  5591.    NovPrimaryServer : String   NovPrimaryServer : String   NovPrimaryServer : String
  5592.    Returns the name of the primary file server. This is the one you first
  5593.    logged into.
  5594.  
  5595.    Category: Novell
  5596.  
  5597.  
  5598.  
  5599.    Computer Tyme MarxMenu Users Manual                     Page 94
  5600.    _______________________________________________________________
  5601.  
  5602.  
  5603.    NovPrintQueues (Array)   NovPrintQueues (Array)   NovPrintQueues (Array)
  5604.    Fills array with list of all print Queues.
  5605.  
  5606.    See Also: NovUsersLoggedIn, NovUsers, NovGroups, NovServers
  5607.  
  5608.    Category: Novell, Array, Printer
  5609.  
  5610.    NovReadGroups (Name,Array)   NovReadGroups (Name,Array)   NovReadGroups (Name,Array)
  5611.    This reads all the groups that Name belongs to and puts them into an
  5612.    array.
  5613.  
  5614.    Category: Novell, Array
  5615.  
  5616.    NovReadSecurityEquals (Name,Array)   NovReadSecurityEquals (Name,Array)   NovReadSecurityEquals (Name,Array)
  5617.    This reads all the security equivalences that Name belongs to and puts
  5618.    them into an array. (This includes groups).
  5619.  
  5620.    Category: Novell, Array
  5621.  
  5622.    NovResult : Number   NovResult : Number   NovResult : Number
  5623.    NovResult is a variable like FileResult that returns the success status
  5624.    of the previous Novell system call. A zero generally indicates success.
  5625.  
  5626.    Category: Novell
  5627.  
  5628.    NovSemaphoreTimeOut   NovSemaphoreTimeOut   NovSemaphoreTimeOut
  5629.    This variable controls the amount of time (in 1/18 seconds) that
  5630.    MarxMenu will wait for the value of a semaphore to become not negative.
  5631.    The initial value is 50.
  5632.  
  5633.    Category: Novell
  5634.  
  5635.    NovSemaphoreUsers (Name) : Number   NovSemaphoreUsers (Name) : Number   NovSemaphoreUsers (Name) : Number
  5636.    This returns the number of users that have the semaphore open.
  5637.  
  5638.    Category: Novell
  5639.  
  5640.    NovSemaphoreValue (Name) : Number   NovSemaphoreValue (Name) : Number   NovSemaphoreValue (Name) : Number
  5641.    This returns the value of a semaphore.
  5642.  
  5643.    Category: Novell
  5644.  
  5645.    NovServers (Array)   NovServers (Array)   NovServers (Array)
  5646.    This command returns a string array of the file servers you are
  5647.    connected to.
  5648.  
  5649.    Category: Novell, Array
  5650.  
  5651.  
  5652.  
  5653.    Computer Tyme MarxMenu Users Manual                     Page 95
  5654.    _______________________________________________________________
  5655.  
  5656.  
  5657.    NovScanProperties (Array, Object, ObjectType)   NovScanProperties (Array, Object, ObjectType)   NovScanProperties (Array, Object, ObjectType)
  5658.    NovScanProperties reads the properties (not the values) into an array.
  5659.    You also have to pass the object type.
  5660.  
  5661.     Novell Object Types:
  5662.       1 - User
  5663.       2 - Group
  5664.       3 - Print Queue
  5665.       4 - File Server
  5666.       5 - Job Server
  5667.       6 - Gateway
  5668.       7 - Print Server
  5669.  
  5670.     Example:
  5671.       var Properties
  5672.       NovScanProperties (Properties,NovMyLoginName,1)
  5673.  
  5674.       Loop NumberOfElements(Properties)
  5675.          Writeln(Properties[LoopIndex])
  5676.       EndLoop
  5677.  
  5678.  
  5679.    Category: Novell, Array
  5680.  
  5681.    NovSetPreferredServer (Server)   NovSetPreferredServer (Server)   NovSetPreferredServer (Server)
  5682.    Sets the preferred file server. Passing a '' will switch you back to the
  5683.    default or primary file server.
  5684.  
  5685.    See Also: NovSetPrimaryServer
  5686.  
  5687.    Category: Novell
  5688.  
  5689.    NovSetPrimaryServer (Server)   NovSetPrimaryServer (Server)   NovSetPrimaryServer (Server)
  5690.    The primary file server is the one that execures your login scripts. It
  5691.    can also be set using the NovSetPrimaryServer command.
  5692.  
  5693.    See Also: NovSetPreferredServer
  5694.  
  5695.    Category: Novell
  5696.  
  5697.    NovSignalSemaphore (Name)   NovSignalSemaphore (Name)   NovSignalSemaphore (Name)
  5698.    This increments the value of a semaphore. It is used to indicate that
  5699.    you are done with a resource and makes it available for the next user.
  5700.  
  5701.    Category: Novell
  5702.  
  5703.  
  5704.  
  5705.    Computer Tyme MarxMenu Users Manual                     Page 96
  5706.    _______________________________________________________________
  5707.  
  5708.  
  5709.    NovStationAddress (Connection) : String   NovStationAddress (Connection) : String   NovStationAddress (Connection) : String
  5710.    This returns the stations internetwork address at connection.
  5711.  
  5712.     Example:
  5713.       NovStationAddress (NovConnection)
  5714.          Returns the address of the users workstation.
  5715.  
  5716.       NovStationAddress (1)
  5717.          Returns the address of station 1.
  5718.  
  5719.       254:41 where 254 is the network number and 41 is the node number.
  5720.  
  5721.    Category: Novell
  5722.  
  5723.    NovUserInGroup (Name,Group) : Boolean   NovUserInGroup (Name,Group) : Boolean   NovUserInGroup (Name,Group) : Boolean
  5724.    This is used to test if other users are in a group. Returns true is the
  5725.    specified user is in the specified group.
  5726.  
  5727.    Category: Novell
  5728.  
  5729.    NovUsers (Array)   NovUsers (Array)   NovUsers (Array)
  5730.    Fills array with list of all users.
  5731.  
  5732.    See Also: NovUsersLoggedIn, NovGroups, NovPrintQueues, NovServers
  5733.  
  5734.    Category: Novell, Array
  5735.  
  5736.    NovUsersLoggedIn (Array)   NovUsersLoggedIn (Array)   NovUsersLoggedIn (Array)
  5737.    Fills array with list of all users that are currently logged in.
  5738.  
  5739.    See Also: NovUsers, NovGroups, NovPrintQueues, NovServers
  5740.  
  5741.    Category: Novell, Array
  5742.  
  5743.    NovWaitOnSemaphore (Name) : Boolean   NovWaitOnSemaphore (Name) : Boolean   NovWaitOnSemaphore (Name) : Boolean
  5744.    This decrements the value of a semaphore and if the value is zero or
  5745.    more, returns true. If the value of the semaphore is negative, it
  5746.    returns false. This is used to indicate that you are out of whatever you
  5747.    are testing for.
  5748.  
  5749.    Category: Novell
  5750.  
  5751.    NumberOfElememts (array) : Number   NumberOfElememts (array) : Number   NumberOfElememts (array) : Number
  5752.    This function returns the number of elements in the array.
  5753.  
  5754.    Category: Array
  5755.  
  5756.  
  5757.  
  5758.    Computer Tyme MarxMenu Users Manual                     Page 97
  5759.    _______________________________________________________________
  5760.  
  5761.  
  5762.    Now : Date   Now : Date   Now : Date
  5763.    Returns the current moment as a date.
  5764.  
  5765.    Category: Time
  5766.  
  5767.    NumLock : Boolean   NumLock : Boolean   NumLock : Boolean
  5768.    Returns true if Num Lock is on. This command can also set the Num Lock
  5769.    on and off.
  5770.  
  5771.     Example:
  5772.       if NumLock then Write 'NumLock is On'
  5773.  
  5774.       NumLock On  ;Turns NumLock On
  5775.       NumLock Off ;Turns NumLock Off
  5776.  
  5777.       NumLock (by itself) turns NumLock On.
  5778.  
  5779.    See Also: CapsLock, ScrollLock
  5780.  
  5781.    Category: System
  5782.  
  5783.    Oct : Number   Oct : Number   Oct : Number
  5784.    October, Returns the number 10.
  5785.  
  5786.    Category: Time
  5787.  
  5788.    Off : Boolean   Off : Boolean   Off : Boolean
  5789.    Returns False.
  5790.  
  5791.    Category: Boolean
  5792.  
  5793.    On : Boolean   On : Boolean   On : Boolean
  5794.    Returns True.
  5795.  
  5796.    Category: Boolean
  5797.  
  5798.  
  5799.  
  5800.    Computer Tyme MarxMenu Users Manual                     Page 98
  5801.    _______________________________________________________________
  5802.  
  5803.  
  5804.    OnKey (char)   OnKey (char)   OnKey (char)
  5805.    When char is selected, the line(s) following are executed up to the next
  5806.    OnKey or end of file. This means that they are written to a BATCH file.
  5807.  
  5808.     Example:
  5809.       Onkey 'W'
  5810.       cd\wordstar
  5811.       ws
  5812.       cd\menu
  5813.  
  5814.    In the above example if 'W' is selected, MarxMenu will create a
  5815.    temporary batch file containing all the lines under the OnKey command.
  5816.    All the lines under an OnKey are written literally to the batch file
  5817.    with few exceptions. All leading and trailing blanks are stripped.
  5818.    String variables are evaluated and their value passed if the name of the
  5819.    string variable starts with a '%'.
  5820.  
  5821.    If a line begins with a '|' (vertical bar), the line is interpreted
  5822.    rather than written to a batch file. If a '^Label' is used under an
  5823.    OnKey, a jump is made to the 'Label' and interpretation is resumed. This
  5824.    is commonly used to jump to a submenu.
  5825.  
  5826.    Any OnKey statement that causes a batch file to be written to will cause
  5827.    the menu to exit. MarxMenu normally will exit with ErrorLevel 0 unless
  5828.    an ExitCode is set.
  5829.  
  5830.    The first blank line under an OnKey ends what that OnKey command does.
  5831.  
  5832.    Category: Conditional
  5833.  
  5834.    OnScreenOnly (On/Off)   OnScreenOnly (On/Off)   OnScreenOnly (On/Off)
  5835.    This allows you to restrict selections to only what is actually on the
  5836.    screen. Hidden OnKey commands will not execute if this is set on. This
  5837.    allows you to limit user selection to the choices on the screen.
  5838.  
  5839.    See Also: OnKey
  5840.  
  5841.    Category: Conditional
  5842.  
  5843.  
  5844.  
  5845.    Computer Tyme MarxMenu Users Manual                     Page 99
  5846.    _______________________________________________________________
  5847.  
  5848.  
  5849.    OpenPrinter   OpenPrinter   OpenPrinter
  5850.    This command opens the printer device. It is not necessary to use this
  5851.    command in that it is done automatically whenever you print. But, if you
  5852.    are running under a multitasking shell like Windows, it will reserve the
  5853.    printer for your task.
  5854.  
  5855.    If the printer is locked, or if you have specified a file name that
  5856.    can't be created, the variable FileResult will contain the DOS error
  5857.    code (usually 5 for access denied). A FileResult of 0 indicates success.
  5858.  
  5859.    See Also: ClosePrinter, FileResult
  5860.  
  5861.    Category: Printer
  5862.  
  5863.    OptionSwitch (String1,String2) : Boolean   OptionSwitch (String1,String2) : Boolean   OptionSwitch (String1,String2) : Boolean
  5864.    This command tests if String1 contains the option switch String2. If it
  5865.    does, it will remove the switch from String1.
  5866.  
  5867.     Example:
  5868.       String1 = 'Test /A/B/C'
  5869.       HasB = OptionSwitch(String1,'B')
  5870.  
  5871.     HasB will be true.
  5872.     String1 will contain 'Test /A/C'
  5873.  
  5874.    Category: String
  5875.  
  5876.    Or : Operator   Or : Operator   Or : Operator
  5877.    Returns logical Or if operators are boolean; or bitwise Or if operators
  5878.    are numeric.
  5879.  
  5880.    Category: Math, Boolean
  5881.  
  5882.    Ord (Char) : Number   Ord (Char) : Number   Ord (Char) : Number
  5883.    Returns the numeric value of an ascii character.
  5884.  
  5885.    Category: String
  5886.  
  5887.    OverKey : String   OverKey : String   OverKey : String
  5888.    When using UseArrows, OverKey returns the character that selects the
  5889.    item that the inverse bar is over.
  5890.  
  5891.    This can be used with IdelProgram to display context sensitive help as
  5892.    you move the inverse bar over different selections.
  5893.  
  5894.    Category: String
  5895.  
  5896.  
  5897.  
  5898.    Computer Tyme MarxMenu Users Manual                     Page 100
  5899.    _______________________________________________________________
  5900.  
  5901.  
  5902.    OverLay (MenuName)   OverLay (MenuName)   OverLay (MenuName)
  5903.    Overlay loads another menu as if that menu were a procedure of the
  5904.    current menu. After the overlaid menu exits, control is returned to the
  5905.    calling menu at the next line after the overlay command.
  5906.  
  5907.    Like the Chain command, Overlay is very fast and doesn't require
  5908.    MarxMenu to be reloaded.
  5909.  
  5910.     Example:
  5911.       Overlay 'SUBMENU'
  5912.  
  5913.    When using overlays, all variables declared as shared are accessable to
  5914.    the main program and all overlays. The shared variables have to be the
  5915.    same for all overlays.
  5916.  
  5917.    See Also: Shared, Chain
  5918.  
  5919.    Category: Execution
  5920.  
  5921.    ParallelPorts : Number   ParallelPorts : Number   ParallelPorts : Number
  5922.    Returns number of parallel ports.
  5923.  
  5924.    Category: System
  5925.  
  5926.    ParamStr (Num) : String   ParamStr (Num) : String   ParamStr (Num) : String
  5927.    Returns the DOS parameter string from the command line. The 0 parameter
  5928.    is MARXMENU.EXE. The 1 parameter is the name of the menu file you are
  5929.    using. This is like the %1 %2 %3 ... in batch file parameters.
  5930.  
  5931.    Category: String
  5932.  
  5933.    ParentEnvironment   ParentEnvironment   ParentEnvironment
  5934.    ParentEnvironment selects the parent environment for use with
  5935.    environment access commands.
  5936.  
  5937.    See Also: ReadEnv SetEnv ReadEnvironment ShellEnvironment
  5938.    See Also: CurrentEnvironment MasterEnvironment
  5939.  
  5940.    Category: Environment
  5941.  
  5942.  
  5943.  
  5944.    Computer Tyme MarxMenu Users Manual                     Page 101
  5945.    _______________________________________________________________
  5946.  
  5947.  
  5948.    Password (Pswd,column,row)   Password (Pswd,column,row)   Password (Pswd,column,row)
  5949.    This command opens up a password box at row and column. The user must
  5950.    type the password correctly before the command will execute. The
  5951.    password is case sensitive.
  5952.  
  5953.     Example:
  5954.       OnKey 'X'
  5955.          |PassWord('shell',4,3)
  5956.          COMMAND.COM
  5957.  
  5958.    Category: Conditional
  5959.  
  5960.    Path : String   Path : String   Path : String
  5961.    Returns the current path.
  5962.  
  5963.    Category: String
  5964.  
  5965.    PathPart (String) : String   PathPart (String) : String   PathPart (String) : String
  5966.    Returns the path part of a file name.
  5967.  
  5968.     Example:
  5969.       PathPart ('C:\MARX\MARXMENU.EXE') ;returns C:\MARX
  5970.  
  5971.    See Also: Extension, NamePart, FilePart
  5972.  
  5973.    Category: String
  5974.  
  5975.    PauseAfterExecute (On/Off)   PauseAfterExecute (On/Off)   PauseAfterExecute (On/Off)
  5976.    If on, this command causes the message "Press any key to return to
  5977.    MarxMenu..." to appear after an execute command is executed.
  5978.  
  5979.    See Also: Execute:
  5980.  
  5981.    Category: Execution
  5982.  
  5983.    Pi : Real   Pi : Real   Pi : Real
  5984.    Returns the value of Pi to 18 digits.
  5985.  
  5986.    Category: Math, Float
  5987.  
  5988.  
  5989.  
  5990.    Computer Tyme MarxMenu Users Manual                     Page 102
  5991.    _______________________________________________________________
  5992.  
  5993.  
  5994.    PickFile (FileSpec,column,row,height) : String   PickFile (FileSpec,column,row,height) : String   PickFile (FileSpec,column,row,height) : String
  5995.    Allows you to display a directory of files on the screen from a menu.
  5996.    Normally used to display a list of files for the user to choose from.
  5997.    Could be used in a command to load a word processor or database. Allows
  5998.    selection of the file to be loaded by the word processor or database
  5999.    program. The filename can be passed to a percent variable placed in the
  6000.    batch file executing the application. See example files on MarxMenu
  6001.    distribution disk.
  6002.  
  6003.     Example: %FileName = PickFile('C:\WORDSTAR\*.DOC',3,4,17)
  6004.  
  6005.    Notice: The use of a variable with a name that starts with a '%' allows
  6006.    the choice to be passed to a batch file for execution.
  6007.  
  6008.    The three numbers represent the column and row of the upper left corner
  6009.    of the box and the height of the box. All DrawBox commands can be used
  6010.    here to control the looks of the PickFile window. This includes the
  6011.    BoxHeader command.
  6012.  
  6013.    Category: String
  6014.  
  6015.    PickMany(SourceArray,DestinationArray)   PickMany(SourceArray,DestinationArray)   PickMany(SourceArray,DestinationArray)
  6016.    PickMany displays a string array in the current window and allows you to
  6017.    choose as many lines as you want. The chosen lines go into
  6018.    DestinationArray.
  6019.  
  6020.    When the window appears, the space bar toggles the marked status of the
  6021.    line. The right arrow sets the marked status and the left arrow resets
  6022.    the marked status. Ctrl-Right-Arrow marks all lines, Ctrl-Left-Arrow
  6023.    unmarks all lines. The return key accepts the selection and exits. The
  6024.    ESC key aborts.
  6025.  
  6026.    If using a mouse, the left button toggles the mark on the current line.
  6027.    The right button accepts and exits.
  6028.  
  6029.    If no selections are made, the DestinationArray is empty. If ESC is
  6030.    pressed, the DestinationArray is left unchanged. You can test LastKey to
  6031.    see what was pressed.
  6032.  
  6033.    Category: String, Array
  6034.  
  6035.    PickOne (Array) : String   PickOne (Array) : String   PickOne (Array) : String
  6036.    This command displays an array in the current window and lets you pick a
  6037.    line and returns the chosen line.
  6038.  
  6039.    Category: String, Array
  6040.  
  6041.  
  6042.  
  6043.    Computer Tyme MarxMenu Users Manual                     Page 103
  6044.    _______________________________________________________________
  6045.  
  6046.  
  6047.    PickPosition : Number   PickPosition : Number   PickPosition : Number
  6048.    The variable PickPosition works with the PickOne command. PickPosition
  6049.    returns the number of which element in the array was picked.
  6050.  
  6051.    Category: String, Array
  6052.  
  6053.    Port (number) : Number   Port (number) : Number   Port (number) : Number
  6054.    Returns the value at the port or writes a number to a port.
  6055.  
  6056.     Example:
  6057.       X = Port(20)   ;Reads port 20 into X
  6058.       Port(20 = X    ;Writes X to Port 20
  6059.  
  6060.    Category: Memory
  6061.  
  6062.    Pos (substring,string) : Number   Pos (substring,string) : Number   Pos (substring,string) : Number
  6063.    Finds position of substring in string. If substring isn't found, Pos
  6064.    returns 0.
  6065.  
  6066.     Example:
  6067.        pos('CD','ABCDE') returns 2
  6068.  
  6069.    Category: String
  6070.  
  6071.    Power (Real,Real) : Real   Power (Real,Real) : Real   Power (Real,Real) : Real
  6072.    Raises a real to a given power.
  6073.  
  6074.    Category: Math, Float
  6075.  
  6076.    Pred (number) : Number   Pred (number) : Number   Pred (number) : Number
  6077.    Returns number minus 1.
  6078.  
  6079.    Category: Math
  6080.  
  6081.    Print (string)   Print (string)   Print (string)
  6082.    Prints string to the printer with no CR or LF. If there is an error
  6083.    printing, the error is returned in FileResult.
  6084.  
  6085.    Category: Printer
  6086.  
  6087.    PrinterName (string)   PrinterName (string)   PrinterName (string)
  6088.    Sets the file name for the printer to use. The default name is PRN.
  6089.    Other common printer names include: LPT1, LPT2, LPT3, and AUX. You can
  6090.    also use filenames to direct printer output to a file.
  6091.  
  6092.    See Also: ClosePrinter
  6093.  
  6094.    Category: Printer
  6095.  
  6096.  
  6097.  
  6098.    Computer Tyme MarxMenu Users Manual                     Page 104
  6099.    _______________________________________________________________
  6100.  
  6101.  
  6102.    Println (String)   Println (String)   Println (String)
  6103.    Prints string to the printer with CR and LF.
  6104.  
  6105.    See Also: Print
  6106.  
  6107.    Category: Printer
  6108.  
  6109.    PrintScreen (On/Off)   PrintScreen (On/Off)   PrintScreen (On/Off)
  6110.    Turns the print screen function on and off. Turning the print screen off
  6111.    disables the print screen key. This can be used to prevent a computer
  6112.    from locking up when the user kits the Print Screen key with no printer
  6113.    attached.
  6114.  
  6115.    Category: Printer
  6116.  
  6117.    Procedure (name)   Procedure (name)   Procedure (name)
  6118.    This word begins the definition of a newly named procedure. A procedure
  6119.    is like a subroutine. Once the procedure is defined, all you have to do
  6120.    to call the procedure is use its name. The procedure definition is
  6121.    terminated by the command EndProc.
  6122.  
  6123.     Example:
  6124.  
  6125.     Procedure SelectFile
  6126.       BoxHeaderColor ForeColor BackColor
  6127.       BoxBorderColor Cyan Mag
  6128.       BoxInsideColor Yellow Mag
  6129.       InverseColor Yellow Red
  6130.       %ExecSt = PickFile FileType 4 5 17
  6131.     EndProc
  6132.  
  6133.    Whenever we use the word SelectFile in the menu, all the lines of the
  6134.    procedure SelectFile will execute.
  6135.  
  6136.    See Also: EndProc, Return
  6137.  
  6138.    Category: Misc
  6139.  
  6140.    PullMenu (on/off)   PullMenu (on/off)   PullMenu (on/off)
  6141.    Controls the behavior of pull down menus. Set to on if using
  6142.    them. Default is Off.
  6143.  
  6144.    Category: Display
  6145.  
  6146.    Qualifier   Qualifier   Qualifier
  6147.    Used to create qualifiers.
  6148.  
  6149.    See Also: Var, Constant, Shared
  6150.  
  6151.    Category: Variable
  6152.  
  6153.  
  6154.  
  6155.    Computer Tyme MarxMenu Users Manual                     Page 105
  6156.    _______________________________________________________________
  6157.  
  6158.  
  6159.    Random : Number   Random : Number   Random : Number
  6160.    The Random command returns random numbers between 0 and +2,147,483,647.
  6161.    (2^31). The algorithm has been checked for good uniformity and takes
  6162.    advantage of re-seeding itself from random events like the timer
  6163.    interrupt and keyboard input.
  6164.  
  6165.    Category: Math
  6166.  
  6167.    ReadEnv (string) : String   ReadEnv (string) : String   ReadEnv (string) : String
  6168.    Returns the environment string specified.
  6169.  
  6170.     Example: PathString = ReadEnv('PATH')
  6171.  
  6172.    See Also: SetEnv ReadEnvironment ShellEnvironment
  6173.    See Also: CurrentEnvironment ParentEnvironment MasterEnvironment
  6174.  
  6175.    Category: Environment
  6176.  
  6177.    ReadEnvironment (array)   ReadEnvironment (array)   ReadEnvironment (array)
  6178.    Reads all environment variables into an array.
  6179.  
  6180.     Example:
  6181.       Var Env
  6182.       ReadEnvironment( Env )
  6183.         ;Env[1] will be the first environment string and
  6184.         ;Env[NumberOfElememts(Env)] will be the last. A variable that is
  6185.         ;set is LongestLine. LongestLine contains the length of the
  6186.         ;longest string variable read.
  6187.       Writeln( 'Your current environment variables are:' )
  6188.       Loop( NumberOfElements( Env ) )
  6189.         Writeln( Env[LoopIndex] )
  6190.       EndLoop
  6191.       Writeln
  6192.       Writeln('Your Environment Size is :',Str(EnvSize))
  6193.       Writeln('You are using            :',Str(EnvSize-EnvFree),' bytes.')
  6194.       Writeln('You have                 :,'Str(EnvFree),' bytes free.')
  6195.  
  6196.    See Also: SetEnv ReadEnv ShellEnvironment
  6197.    See Also: CurrentEnvironment ParentEnvironment MasterEnvironment
  6198.  
  6199.    Category: Environment, Array
  6200.  
  6201.  
  6202.  
  6203.    Computer Tyme MarxMenu Users Manual                     Page 106
  6204.    _______________________________________________________________
  6205.  
  6206.  
  6207.    ReadKey : String   ReadKey : String   ReadKey : String
  6208.    Returns the character that is input from the keyboard.
  6209.  
  6210.     Example:
  6211.       Var Key
  6212.  
  6213.       Repeat
  6214.         Writeln( 'Press the <ESC> key to exit this program.' )
  6215.         Key = ReadKey
  6216.       Until Key = Esc
  6217.  
  6218.    Category: Keyboard
  6219.  
  6220.    Readln : String   Readln : String   Readln : String
  6221.    Reads a string from the keyboard.
  6222.  
  6223.     Example:
  6224.       Customer.Name   = Readln
  6225.       Customer.Number = Value (Readln) ;Converts to an numerical value
  6226.       Customer.State  = UpperCase (ReadLn)
  6227.  
  6228.    Category: Keyboard, String
  6229.  
  6230.    ReadTextFile (FileName,Array)   ReadTextFile (FileName,Array)   ReadTextFile (FileName,Array)
  6231.    This command reads a text file into a string array. It also sets the
  6232.    variable LongestLine to the length of the longest line in the file.
  6233.  
  6234.     Example:
  6235.       Var Docs
  6236.  
  6237.       ReadTextFile('MARXMENU.DOC',Docs)
  6238.         ;After the read, Docs[1] becomes the first line of the file.
  6239.         ;Docs[NumberOfElements(Docs)] becomes the last line.
  6240.       Loop NumberOfElements(Docs)
  6241.           ; Convert each line to its uppercase equivalent
  6242.         Docs[LoopIndex] = UpperCase Docs[LoopIndex]
  6243.       EndLoop
  6244.         ;Save the newly formatted array
  6245.       WriteTextFile ('NEWMM.DOC',Docs)
  6246.  
  6247.    Do not use FileOpen with ReadTextFile.
  6248.  
  6249.    The power of the ReadTextFile and WriteTextFile have expanded. You can
  6250.    now load and save arrays of any variable types, multidimensional arrays,
  6251.    and mixed array types. This includes strings, numbers, and booleans.
  6252.    File variables are also stored. When a file variable is stored and
  6253.    reloaded the FileAssign command is not necessary.
  6254.  
  6255.    Category: File, Array
  6256.  
  6257.  
  6258.  
  6259.    Computer Tyme MarxMenu Users Manual                     Page 107
  6260.    _______________________________________________________________
  6261.  
  6262.  
  6263.    Real (Integer) : Real   Real (Integer) : Real   Real (Integer) : Real
  6264.    Returns the real equivalent of an integer.
  6265.  
  6266.    Category: Math, Float
  6267.  
  6268.    Reboot   Reboot   Reboot
  6269.    Causes the computer to do a warm reboot.
  6270.  
  6271.    Category: Execution
  6272.  
  6273.    Red : Number   Red : Number   Red : Number
  6274.    Returns the number 4.
  6275.  
  6276.    Category: Color
  6277.  
  6278.    ReleaseDate : String   ReleaseDate : String   ReleaseDate : String
  6279.    Returns the MarxMenu Release Date.
  6280.  
  6281.    Category: String
  6282.  
  6283.    Repeat   Repeat   Repeat
  6284.    Used for program control. Usage:
  6285.  
  6286.     REPEAT
  6287.        (statement)
  6288.        (statement)
  6289.     UNTIL (condition)
  6290.  
  6291.     Example:
  6292.       Var Key
  6293.  
  6294.       Repeat
  6295.         Key = ReadKey
  6296.         If Key = 'A'
  6297.           Bat( 'DOLIST.EXE' )
  6298.           ExitMenu
  6299.         EndIf
  6300.         If Key = F1 Then Help
  6301.       Until Key = Esc
  6302.  
  6303.    Category: Conditional
  6304.  
  6305.  
  6306.  
  6307.    Computer Tyme MarxMenu Users Manual                     Page 108
  6308.    _______________________________________________________________
  6309.  
  6310.  
  6311.    ResizeWindow (Horizontal Vertical)   ResizeWindow (Horizontal Vertical)   ResizeWindow (Horizontal Vertical)
  6312.    Changes the size of the top window. The horizontal and vertical numbers
  6313.    are added to the current size. Use negative numbers to shrink the
  6314.    window. The top left corner stays in the same place.
  6315.  
  6316.     Example:
  6317.       DrawBox 15 5 30 15
  6318.       ResizeWindow 15 5
  6319.  
  6320.    See Also: MoveWindow
  6321.  
  6322.    Category: Display
  6323.  
  6324.    Return (param,param,...)   Return (param,param,...)   Return (param,param,...)
  6325.    Exits a procedure and optionally returns parameters to the calling
  6326.    procedure. It can return as many parameters as you want as long as the
  6327.    calling program uses the same number of parameters. Otherwise, you will
  6328.    get an "Invalid number of parameters" error.
  6329.  
  6330.     Example:
  6331.  
  6332.     Procedure SmallRandomNumber
  6333.     {Returns a random number between 1 and 100}
  6334.     var SmallRand
  6335.        SmallRand = Random mod 100
  6336.        Return (SmallRand + 1)
  6337.     EndProc
  6338.  
  6339.    See Also: Procedure, EndProc
  6340.  
  6341.    Category: Misc
  6342.  
  6343.    ReturnCode : Number   ReturnCode : Number   ReturnCode : Number
  6344.    When you use the Execute function, a ReturnCode value is fed into this
  6345.    variable when you return to the menu. The code returned is the same as
  6346.    what the DOS ErrorLevel would be. This will not work if you use the
  6347.    UseCommand On function because COMMAND.COM would have been loaded and
  6348.    the returncode would be lost.
  6349.  
  6350.    Category: Execution
  6351.  
  6352.    Right (string,count) : String   Right (string,count) : String   Right (string,count) : String
  6353.    Returns right characters of string for length count.
  6354.  
  6355.     Example: Right('ABCDEF',3) returns 'DEF'
  6356.  
  6357.    Category: String
  6358.  
  6359.  
  6360.  
  6361.    Computer Tyme MarxMenu Users Manual                     Page 109
  6362.    _______________________________________________________________
  6363.  
  6364.  
  6365.    RollWindow (number)   RollWindow (number)   RollWindow (number)
  6366.    Windows can be looked at as a stack. RollWindow will roll a previous
  6367.    window to the top of the stack making the previous window the current
  6368.    window.
  6369.  
  6370.     Example:
  6371.         ;Make the Third window on the stack the active window
  6372.       RollWindow 3
  6373.         ;Write out message
  6374.       Writeln 'You have mail waiting!'
  6375.         ;Now put the windows back
  6376.       PushBackWindow (3)
  6377.  
  6378.       Procedure PushBackWindow (N)
  6379.  
  6380.       ;Will roll a window back to its original position on the stack
  6381.       ;The parameter should be the same as the parameter for the call
  6382.       ;to RollWindow. If you use RollWindow(3) then use PushBackWindow(3)
  6383.  
  6384.         Loop N
  6385.           RollWindow N
  6386.         EndLoop
  6387.       EndProc ;PushBackWindow
  6388.  
  6389.    See Also: CurrentWindow, SetTopWindow
  6390.  
  6391.    Category: Display
  6392.  
  6393.    Run variable (parameters)   Run variable (parameters)   Run variable (parameters)
  6394.    This runs a procedure that was stored in a variable.
  6395.  
  6396.     var Y
  6397.  
  6398.     Procedure WriteSquared (X)
  6399.        Writeln (X * X)
  6400.     EndProc
  6401.  
  6402.     Example:
  6403.        Y = Loc(WriteSquared)
  6404.        Run Y(3)   ; This will write a 9 on the screen
  6405.  
  6406.    Warning! Don't put the variable you are running in parentheses.
  6407.  
  6408.        Run (Y,3)  ; this won't work
  6409.  
  6410.    See Also: Loc
  6411.  
  6412.    Category: Misc
  6413.  
  6414.  
  6415.  
  6416.    Computer Tyme MarxMenu Users Manual                     Page 110
  6417.    _______________________________________________________________
  6418.  
  6419.  
  6420.    Sat : Number   Sat : Number   Sat : Number
  6421.    Saturday, Returns the number 6.
  6422.  
  6423.    Category: Time
  6424.  
  6425.    SavePosition (On/Off)   SavePosition (On/Off)   SavePosition (On/Off)
  6426.    If SavePosition is On, MarxMenu will return to the last menu selection
  6427.    you made when MarxMenu is re-entered. As you select menu layers your
  6428.    keystrokes are stored in an internal string variable called KeySave. On
  6429.    exit, MarxMenu writes KeySave to an environment variable KSV. On return
  6430.    to MarxMenu, this variable is retrieved. The return point may be altered
  6431.    by using the command KeySave = (string).
  6432.  
  6433.    Another thing this points out is that environment variables can be used
  6434.    to store information and allow MarxMenu to remember things from one
  6435.    selection to another. Since MarxMenu doesn't stay memory resident, this
  6436.    is the only way I have found to store information.
  6437.  
  6438.    Category: Keyboard, Environment
  6439.  
  6440.    ScreenHeight : Number   ScreenHeight : Number   ScreenHeight : Number
  6441.    Returns number of rows of character on your screen.
  6442.  
  6443.    Category: Display
  6444.  
  6445.    ScreenWidth : Number   ScreenWidth : Number   ScreenWidth : Number
  6446.    Returns number of columns of character on your screen.
  6447.  
  6448.    Category: Display
  6449.  
  6450.    ScrollLock : Boolean   ScrollLock : Boolean   ScrollLock : Boolean
  6451.    Returns true if Scroll Lock is on. This command can also set the Scroll
  6452.    Lock on and off.
  6453.  
  6454.     Example:
  6455.       if ScrollLock then Write 'ScrollLock is On'
  6456.  
  6457.       ScrollLock On  ;Turns ScrollLock On
  6458.       ScrollLock Off ;Turns ScrollLock Off
  6459.  
  6460.       ScrollLock (by itself) turns ScrollLock On.
  6461.  
  6462.    See Also: CapsLock, NumLock
  6463.  
  6464.    Category: System
  6465.  
  6466.  
  6467.  
  6468.    Computer Tyme MarxMenu Users Manual                     Page 111
  6469.    _______________________________________________________________
  6470.  
  6471.  
  6472.    ScrollMove (On/Off)   ScrollMove (On/Off)   ScrollMove (On/Off)
  6473.    This allows you to control whether or not the ScrollLock will allow you
  6474.    to move the top window. Default is On.
  6475.  
  6476.    Category: Display
  6477.  
  6478.    Second : Number   Second : Number   Second : Number
  6479.    Returns the current second.
  6480.  
  6481.    Category: Time
  6482.  
  6483.    SecondOf (Date) : Number   SecondOf (Date) : Number   SecondOf (Date) : Number
  6484.    Returns the second of a date. If Date is passed as a string it is
  6485.    converted automatically.
  6486.  
  6487.    See Also: TimeOf, BadDate
  6488.  
  6489.    Category: Time
  6490.  
  6491.    SecondsInDay : number   SecondsInDay : number   SecondsInDay : number
  6492.    Returns 86400
  6493.  
  6494.    Category: Time
  6495.  
  6496.    SecondsInHour : Number   SecondsInHour : Number   SecondsInHour : Number
  6497.    Returns 3600
  6498.  
  6499.    Category: Time
  6500.  
  6501.    Security (on/off)   Security (on/off)   Security (on/off)
  6502.    When security is on, Readln echos '*' instead of the letters that are
  6503.    being typed. This is used for such things as entering passwords other
  6504.    than using the password command.
  6505.  
  6506.    Category: String
  6507.  
  6508.    SelectPath : String   SelectPath : String   SelectPath : String
  6509.    This command uses another program in the Computer Tyme DOS TOOLBOX
  6510.    called Pick Directory to read a text into a variable. You must have
  6511.    Computer Tyme Pick Directory for this feature to work.
  6512.  
  6513.     Example:
  6514.       OnKey 'B'
  6515.       |%BackPath = SelectPath
  6516.       cd %BackPath
  6517.       backup c: a:
  6518.  
  6519.    Category: String
  6520.  
  6521.  
  6522.  
  6523.    Computer Tyme MarxMenu Users Manual                     Page 112
  6524.    _______________________________________________________________
  6525.  
  6526.  
  6527.    Sep : Number   Sep : Number   Sep : Number
  6528.    September, Returns the number 9.
  6529.  
  6530.    Category: Time
  6531.  
  6532.    SerialPorts : Number   SerialPorts : Number   SerialPorts : Number
  6533.    Returns number of serial ports.
  6534.  
  6535.    Category: System
  6536.  
  6537.    SetArraySize (Array,Size)   SetArraySize (Array,Size)   SetArraySize (Array,Size)
  6538.    If the array is larger than Size the array is truncated. If it is
  6539.    smaller, memory is allocated for the array.
  6540.  
  6541.    Category: Array
  6542.  
  6543.    SetEnv (String)   SetEnv (String)   SetEnv (String)
  6544.    This is used to set environment strings. It can be used on the Current,
  6545.    Parent, Master or Shell environment.
  6546.  
  6547.     Example:
  6548.  
  6549.       SetEnv ('PATH=C:\')
  6550.       SetEnv ('COMSPEC=X:COMMAND.COM')
  6551.  
  6552.    MarxMenu also allows you to select which environment you are working
  6553.    with. This is done with the following commands.
  6554.  
  6555.     CurrentEnvironment
  6556.     ParentEnvironment
  6557.     MasterEnvironment
  6558.     ShellEnvironment
  6559.  
  6560.    See Also: ReadEnv ReadEnvironment ShellEnvironment
  6561.    See Also: CurrentEnvironment ParentEnvironment MasterEnvironment
  6562.  
  6563.    Category: Environment
  6564.  
  6565.  
  6566.  
  6567.    Computer Tyme MarxMenu Users Manual                     Page 113
  6568.    _______________________________________________________________
  6569.  
  6570.  
  6571.    SetTopWindow (Number)   SetTopWindow (Number)   SetTopWindow (Number)
  6572.    Selects a window by number making it the current window and moves it to
  6573.    the top.
  6574.  
  6575.     Example:
  6576.       DrawBox ....
  6577.       ThisWindow = CurrentWindow
  6578.       DrawBox ....
  6579.       DrawBox ....
  6580.       SetTopWindow (ThisWindow)
  6581.  
  6582.    See Also: CurrentWindow, RollWindow, SetWindowUnder
  6583.  
  6584.    Category: Display
  6585.  
  6586.    SetWindowUnder (Window1,Window2)   SetWindowUnder (Window1,Window2)   SetWindowUnder (Window1,Window2)
  6587.    This command moves Window1 underneath Window2. This can be used to put a
  6588.    window back in the stack after you use SetTopWindow.
  6589.  
  6590.    See Also: CurrentWindow, SetTopWindow, RollWindow
  6591.  
  6592.    Category: Display
  6593.  
  6594.    Shadow (on/off)   Shadow (on/off)   Shadow (on/off)
  6595.    Turn window shadows on/off.
  6596.  
  6597.    Category: Display
  6598.  
  6599.    ShadowColor (ForeColor,BackColor)   ShadowColor (ForeColor,BackColor)   ShadowColor (ForeColor,BackColor)
  6600.    Sets the color of the shadow. There are actually two shadow colors.
  6601.    MarxMenu stores different values for big shadows and small shadows.
  6602.  
  6603.    See Also: BigShadow, SmallShadow, ShadowPosition, Shadow
  6604.  
  6605.    Category: Color
  6606.  
  6607.    ShadowPosition (number)   ShadowPosition (number)   ShadowPosition (number)
  6608.    Selects the shadow position around the window. A zero (default) sets the
  6609.    shadow position to the bottom right side. A one sets the shadow position
  6610.    to the bottom left. Using ShadowPosition turns shadowing on so a Shadow
  6611.    On command is not required.
  6612.  
  6613.    See Also: Shadow, ShadowColor, BigShadow, SmallShadow
  6614.  
  6615.    Category: Display
  6616.  
  6617.  
  6618.  
  6619.    Computer Tyme MarxMenu Users Manual                     Page 114
  6620.    _______________________________________________________________
  6621.  
  6622.  
  6623.    Shared   Shared   Shared
  6624.    The key word SHARED can be used to define variables just like VAR. Any
  6625.    variable defined with SHARED is passed globally to and from overlays.
  6626.  
  6627.    The important thing is that the Shared variables must be defined exactly
  6628.    the same way between the overlays. There is also a pre-defined variable
  6629.    called COMMON. Technically, Shared variables are qualifiers off of
  6630.    COMMON.
  6631.  
  6632.    See Also: Var, Constant, Qualifier
  6633.  
  6634.    Category: Variable
  6635.  
  6636.    ShellEnvironment   ShellEnvironment   ShellEnvironment
  6637.    ShellEnvironment selects the environment of the last COMMAND.COM in
  6638.    memory for use with environment access commands. This is usually the
  6639.    same as the Master Environment.
  6640.  
  6641.    More than one COMMAND.COM is loaded when you are running a shell under
  6642.    WINDOWS or DESQVIEW. When using these programs, you will want to access
  6643.    the Shell Envoronment instead of the Master Environment. The Shell
  6644.    Environment is the one that will run batch files.
  6645.  
  6646.    See Also: ReadEnv SetEnv ReadEnvironment MasterEnvironment
  6647.    See Also: CurrentEnvironment ParentEnvironment
  6648.  
  6649.    Category: Environment
  6650.  
  6651.    Shl : Operator   Shl : Operator   Shl : Operator
  6652.    Shift left, does a binary 32 bit shift left.
  6653.  
  6654.    Category: Math
  6655.  
  6656.    Shr : Operator   Shr : Operator   Shr : Operator
  6657.    Shift right, does a binary 32 bit shift right.
  6658.  
  6659.    Category: Math
  6660.  
  6661.    Sin (Radians) : Real   Sin (Radians) : Real   Sin (Radians) : Real
  6662.    Returns the Sine of a real.
  6663.  
  6664.    Category: Math, Float
  6665.  
  6666.    SingleLineBox   SingleLineBox   SingleLineBox
  6667.    Selects single line box for menu borders.
  6668.  
  6669.    See Also: DoubleLineBox, BlockBox, CustomBox, NoBoxBorder
  6670.  
  6671.    Category: Display
  6672.  
  6673.  
  6674.  
  6675.    Computer Tyme MarxMenu Users Manual                     Page 115
  6676.    _______________________________________________________________
  6677.  
  6678.  
  6679.    SmallShadow   SmallShadow   SmallShadow
  6680.    Selects small shadow type.
  6681.  
  6682.    See Also: BigShadow, ShadowPosition, ShadowColor
  6683.  
  6684.    Category: Display
  6685.  
  6686.    SortArray (Array)   SortArray (Array)   SortArray (Array)
  6687.    SortArray will do an alphabetical sort on an array of strings.
  6688.  
  6689.     Example: Sort a Text File
  6690.  
  6691.       Usage: DIR|MARXMENU SORT|MORE
  6692.              MARXMENU SORT INFILE OUTFILE
  6693.  
  6694.       var SortBuf
  6695.       ClearScreenOnExit Off
  6696.       ReadTextFile  (ParamStr(2),SortBuf)
  6697.       SortArray(SortBuf)
  6698.       WriteTextFile (ParamStr(3),SortBuf)
  6699.  
  6700.    Category: Array
  6701.  
  6702.    Sound (on/off)   Sound (on/off)   Sound (on/off)
  6703.    Turn sound effects on/off.
  6704.  
  6705.    Category: Display
  6706.  
  6707.    Sqr (Real) : Real   Sqr (Real) : Real   Sqr (Real) : Real
  6708.    Returns the Square Root of a real.
  6709.  
  6710.    Category: Math, Float
  6711.  
  6712.    StandardIO   StandardIO   StandardIO
  6713.    This tells MarxMenu to use standard Input and Output file handles for
  6714.    reading the keyboard and writing to the screen.
  6715.  
  6716.    Category: Display
  6717.  
  6718.    Str (number) : String   Str (number) : String   Str (number) : String
  6719.    Turns a number into a string.
  6720.  
  6721.    Category: String
  6722.  
  6723.  
  6724.  
  6725.    Computer Tyme MarxMenu Users Manual                     Page 116
  6726.    _______________________________________________________________
  6727.  
  6728.  
  6729.    StuffAKey (String or Number)   StuffAKey (String or Number)   StuffAKey (String or Number)
  6730.    Stuffs a single key into the DOS keyboard buffer when MarxMenu exits.
  6731.    The limit is 16 characters.
  6732.  
  6733.     Example:
  6734.       StuffAKey($3F00) ;stuff the F5 key
  6735.       StuffAKey F5     ;same thing
  6736.  
  6737.    Do not mix StuffAKey with StuffKBD. Use one or the other.
  6738.  
  6739.    Category: Execution, Keyboard, String
  6740.  
  6741.    StuffKBD (String)   StuffKBD (String)   StuffKBD (String)
  6742.    Stuffs the string into the DOS keyboard buffer when MarxMenu exits. The
  6743.    limit is 16 characters.
  6744.  
  6745.     Example:
  6746.        StuffKBD 'LOGOUT' + CR
  6747.  
  6748.    Category: Execution, Keyboard, String
  6749.  
  6750.    StuffKeyboardNow   StuffKeyboardNow   StuffKeyboardNow
  6751.    Normally the keyboard stuffing is done as MarxMenu quits. This forces
  6752.    the keyboard to be stuffed immediately.
  6753.  
  6754.    Category: Keyboard
  6755.  
  6756.    Succ (number) : Number   Succ (number) : Number   Succ (number) : Number
  6757.    Returns number plus 1.
  6758.  
  6759.    Category: Math
  6760.  
  6761.    Suggest (Char)   Suggest (Char)   Suggest (Char)
  6762.    Normally the UseArrows command will start in the upper left hand corner.
  6763.    By using the Suggest command, you can set it to start on any menu
  6764.    selection.
  6765.  
  6766.     Example:
  6767.        Suggest 'E'
  6768.  
  6769.    Category: Display
  6770.  
  6771.    Sun : Number   Sun : Number   Sun : Number
  6772.    Sunday, Returns the number 0.
  6773.  
  6774.    Category: Time
  6775.  
  6776.    TextBackground (color)   TextBackground (color)   TextBackground (color)
  6777.    Sets text background color.
  6778.  
  6779.    Category: Color
  6780.  
  6781.  
  6782.  
  6783.    Computer Tyme MarxMenu Users Manual                     Page 117
  6784.    _______________________________________________________________
  6785.  
  6786.  
  6787.    TextColor (forecolor,backcolor)   TextColor (forecolor,backcolor)   TextColor (forecolor,backcolor)
  6788.    Sets the color of text to be displayed on the screen. TextColor resets
  6789.    the value of CapsColor.
  6790.  
  6791.    Category: Color
  6792.  
  6793.    TextMode (num)   TextMode (num)   TextMode (num)
  6794.    Sets the video text mode.
  6795.  
  6796.     0 = 40 column BW
  6797.     1 = 40 column COLOR
  6798.     2 = 80 column BW
  6799.     3 = 80 column COLOR
  6800.     258 = 43/50 line EGA BW
  6801.     259 = 43/50 line EGA COLOR
  6802.  
  6803.     Example:
  6804.       TextMode BW80
  6805.  
  6806.    Category: Video
  6807.  
  6808.    TextPos : Number   TextPos : Number   TextPos : Number
  6809.    TextPos returns the current position in a text file. This can be saved
  6810.    so that you can go to the same place using TextSeek.
  6811.  
  6812.    See Also: TextSeek
  6813.  
  6814.    Category: File
  6815.  
  6816.    TextSeek (Number)   TextSeek (Number)   TextSeek (Number)
  6817.    TextSeek moves to a specific byte in a text file.
  6818.  
  6819.    See Also: TextPos
  6820.  
  6821.    Category: File
  6822.  
  6823.    Then   Then   Then
  6824.    Conditional control.
  6825.  
  6826.    See Also: If
  6827.  
  6828.    Category: Conditional
  6829.  
  6830.    Thu : Number   Thu : Number   Thu : Number
  6831.    Thursday, Returns the number 4.
  6832.  
  6833.    Category: Time
  6834.  
  6835.  
  6836.  
  6837.    Computer Tyme MarxMenu Users Manual                     Page 118
  6838.    _______________________________________________________________
  6839.  
  6840.  
  6841.    TimeOf (String) : Number   TimeOf (String) : Number   TimeOf (String) : Number
  6842.    Converts a string representing a date to a date number.
  6843.  
  6844.     Examples:
  6845.       '4-7-91'                 ;04-07-1991 00:00:00
  6846.       'April 7th, 1991 4:35pm' ;04-07-1991 16:35:00
  6847.       '12:35:23a'              ;04-07-1991 00:35:23
  6848.       '3:15'                   ;04-07-1991 03:15:00
  6849.  
  6850.    If the string can't be converted, then BadDate is set to true.
  6851.  
  6852.    Category: Time
  6853.  
  6854.    Timer : Number   Timer : Number   Timer : Number
  6855.    Returns the system timer.
  6856.  
  6857.    Category: Time
  6858.  
  6859.    TimeString : String   TimeString : String   TimeString : String
  6860.    Returns the time in HH:MM:SS format. 24 hour.
  6861.  
  6862.    Category: String, Time
  6863.  
  6864.    Today : Date   Today : Date   Today : Date
  6865.    Returns the current day as a date. The date returned has the time set to
  6866.    midnight or 00:00:00.
  6867.  
  6868.    Category: Time
  6869.  
  6870.    Tone (Frequency,Duration)   Tone (Frequency,Duration)   Tone (Frequency,Duration)
  6871.    This command plays a note at Frequency cycles per second for a period of
  6872.    Duration 1/18 of a second. The reason it is in 1/18 seconds is because
  6873.    there is a standard interrupt that gives me that time period. The IBM
  6874.    series computers are not music oriented machines so don't throw away
  6875.    your Compact Disk player.
  6876.  
  6877.    The maximum duration is 255 1/18 of a second. Normally, MarxMenu will
  6878.    create a break in between notes equal to 1/8 of the duration of the
  6879.    note. If you want to eliminate the break and create a 'slur' (music
  6880.    term), add 256 to the duration. This tells MarxMenu to connect the notes
  6881.    without a break.
  6882.  
  6883.    Category: Music
  6884.  
  6885.  
  6886.  
  6887.    Computer Tyme MarxMenu Users Manual                     Page 119
  6888.    _______________________________________________________________
  6889.  
  6890.  
  6891.    TotalDiskSpace <drive> : Number   TotalDiskSpace <drive> : Number   TotalDiskSpace <drive> : Number
  6892.    Returns total disk space in bytes.
  6893.  
  6894.     Example:
  6895.       Writeln (TotalDiskSpace 'C')
  6896.  
  6897.    TotalDiskSpace only looks at the first character of the string for
  6898.    the drive letter.
  6899.  
  6900.    Category: System
  6901.  
  6902.    TotalEMS : Number   TotalEMS : Number   TotalEMS : Number
  6903.    Returns total EMS memory in bytes.
  6904.  
  6905.    Category: Memory
  6906.  
  6907.    Trim (string)   Trim (string)   Trim (string)
  6908.    Trims white space from both ends of a string. White space is
  6909.    blank characters and lower.
  6910.  
  6911.    Category: String
  6912.  
  6913.    True : Boolean   True : Boolean   True : Boolean
  6914.    Returns boolean true.
  6915.  
  6916.    Category: Boolean
  6917.  
  6918.    Tue : Number   Tue : Number   Tue : Number
  6919.    Tuesday, Returns the number 2.
  6920.  
  6921.    Category: Time
  6922.  
  6923.    UniqueFileName : String   UniqueFileName : String   UniqueFileName : String
  6924.    Uses the create new file call to get a filename that is different than
  6925.    any other file name. It is tied to the DOS call that is used to create a
  6926.    unique file name according to the rules of your operating system.
  6927.  
  6928.    Category: File, String
  6929.  
  6930.    Until   Until   Until
  6931.    Conditional control.
  6932.  
  6933.    See Also: Repeat.
  6934.  
  6935.    Category: Conditional
  6936.  
  6937.    UpperCase (String) : String   UpperCase (String) : String   UpperCase (String) : String
  6938.    Return UpperCase of String
  6939.  
  6940.    Category: String
  6941.  
  6942.  
  6943.  
  6944.    Computer Tyme MarxMenu Users Manual                     Page 120
  6945.    _______________________________________________________________
  6946.  
  6947.  
  6948.    UpperCaseOnly : Boolean   UpperCaseOnly : Boolean   UpperCaseOnly : Boolean
  6949.    Setting UpperCaseOnly to on forces text entered with Readln or ReadKey
  6950.    to upper case.
  6951.  
  6952.    Category: String
  6953.  
  6954.    UseArrows   UseArrows   UseArrows
  6955.    UseArrows tells MarxMenu that the selection will be made by moving an
  6956.    inverse video bar over the selections. No parameters are required for
  6957.    this command to work. It will pick the first line with a capital letter
  6958.    as the first menu selection. All text in the window must be indented at
  6959.    least one space and there must be one space between the end of the line
  6960.    and the right wall of the window. Multiple items on the same line must
  6961.    be separated by two or more spaces.
  6962.  
  6963.    The OnKey selection is triggered by either the first capital letter in
  6964.    the selection or by a number from 0 - 9 or some punctuation characters.
  6965.    This number or letter will be a different color if you use the CapsColor
  6966.    command. (See Also: PULL.MNU for an example).
  6967.  
  6968.    UseArrows Off will disable this feature.
  6969.  
  6970.    See Also: ReadKey
  6971.  
  6972.    Category: Display
  6973.  
  6974.    UseCommand (on/off)   UseCommand (on/off)   UseCommand (on/off)
  6975.    Used with Execute. UseCommand will load COMMAND.COM before running the
  6976.    specified program. Its not as fast, because the system has to find and
  6977.    load COMMAND.COM, then the specified program. The advantage is if
  6978.    COMMAND.COM is loaded, it will allow you to run batch files and internal
  6979.    DOS commands. It also doesn't require you to specify the COM or EXE
  6980.    extension.
  6981.  
  6982.     Example:
  6983.       OnKey 'D'
  6984.       |UseCommand On
  6985.       |Execute 'DM'
  6986.  
  6987.    The default is OFF.
  6988.  
  6989.    See Also: Execute
  6990.  
  6991.    Category: Execution
  6992.  
  6993.  
  6994.  
  6995.    Computer Tyme MarxMenu Users Manual                     Page 121
  6996.    _______________________________________________________________
  6997.  
  6998.  
  6999.    UsedDiskSpace <drive> : Number   UsedDiskSpace <drive> : Number   UsedDiskSpace <drive> : Number
  7000.    Returns used disk space in bytes.
  7001.  
  7002.     Example:
  7003.       Writeln (UsedDiskSpace 'C')
  7004.  
  7005.    UsedDiskSpace only looks at the first character of the string for the
  7006.    dirve letter.
  7007.  
  7008.    Category: System
  7009.  
  7010.    UseNovPassword : Boolean   UseNovPassword : Boolean   UseNovPassword : Boolean
  7011.    If UseNovPassword is set to true then the screen blanker will require
  7012.    that the user type his Novell password to unblank the screen. Full
  7013.    Novell security and intruder detection is active here. If Novell's
  7014.    intruder detection is active, then if an intruder fails to type in the
  7015.    password after a number of attempts, then Netware will not accept the
  7016.    correct password until intruder detection allows it.
  7017.  
  7018.    If you don't know what intruder detection is, read the Netware manuals
  7019.    on the subject. It is something you should use.
  7020.  
  7021.    Category: Novell
  7022.  
  7023.    Value (string) : Number   Value (string) : Number   Value (string) : Number
  7024.    Converts String to Number. Leading $ indicates Hex.
  7025.  
  7026.    Category: String, Math
  7027.  
  7028.    Var   Var   Var
  7029.    Used to create variables.
  7030.  
  7031.    See Also: Constant, Shared, Qualifier
  7032.  
  7033.    Category: Variable
  7034.  
  7035.    VideoMode : Number   VideoMode : Number   VideoMode : Number
  7036.    Returns Current Video Mode.
  7037.  
  7038.    Category: Video
  7039.  
  7040.    VideoPage : Number   VideoPage : Number   VideoPage : Number
  7041.    Returns Current Video Page.
  7042.  
  7043.    Category: Video
  7044.  
  7045.  
  7046.  
  7047.    Computer Tyme MarxMenu Users Manual                     Page 122
  7048.    _______________________________________________________________
  7049.  
  7050.  
  7051.    ViewArray (Array)   ViewArray (Array)   ViewArray (Array)
  7052.    Allows you to view an array of strings in the current window. Works just
  7053.    like ViewTextFile.
  7054.  
  7055.    See Also: ViewTextFile
  7056.  
  7057.    Category: Display, Array
  7058.  
  7059.    ViewTextFile (Name)   ViewTextFile (Name)   ViewTextFile (Name)
  7060.    This command lets you view a text file in the current window.
  7061.  
  7062.    See Also: ViewArrayFile
  7063.  
  7064.    Category: Display, File
  7065.  
  7066.    Volume (drive)   Volume (drive)   Volume (drive)
  7067.    Returns the volume label of the specified drive.
  7068.  
  7069.    Category: System
  7070.  
  7071.    Wait (number)   Wait (number)   Wait (number)
  7072.    Delay for a number of 1/100 seconds. Wait 250 delays 2 1/2 seconds.
  7073.  
  7074.    If you are running a multi-tasker like Windows 3 or DesqView, and the
  7075.    delay is over 1/4 second, MarxMenu will release time slices back to DOS
  7076.    and not bog down the CPU power on long waits. MarxMenu also releases CPU
  7077.    cycles while idel at the keyboard.
  7078.  
  7079.    See Also: WaitOrKbdReady
  7080.  
  7081.    Category: Misc
  7082.  
  7083.    WaitOrKbdReady (Number)   WaitOrKbdReady (Number)   WaitOrKbdReady (Number)
  7084.    This command is just like the WAIT command except the wait is aborted by
  7085.    pressing any key. Time to wait is in hundredths of a second. This
  7086.    command is useful when using MarxMenu to write a running demo.
  7087.  
  7088.    See Also: Wait
  7089.  
  7090.    Category: Keyboard
  7091.  
  7092.    Wed : Number   Wed : Number   Wed : Number
  7093.    Wednesday, Returns the number 3.
  7094.  
  7095.    Category: Time
  7096.  
  7097.    WhereX : Number   WhereX : Number   WhereX : Number
  7098.    Returns the horizontal position of the cursor within the current window.
  7099.  
  7100.    Category: Display
  7101.  
  7102.  
  7103.  
  7104.    Computer Tyme MarxMenu Users Manual                     Page 123
  7105.    _______________________________________________________________
  7106.  
  7107.  
  7108.    WhereXAbs : Number   WhereXAbs : Number   WhereXAbs : Number
  7109.    Returns the horizontal screen position of the cursor.
  7110.  
  7111.    Category: Display
  7112.  
  7113.    WhereY : Number   WhereY : Number   WhereY : Number
  7114.    Returns the vertical position of the cursor within the current window.
  7115.  
  7116.    WhereYAbs : Number   WhereYAbs : Number   WhereYAbs : Number
  7117.    Returns the vertical screen position of the cursor.
  7118.  
  7119.    Category: Display
  7120.  
  7121.    While   While   While
  7122.    Used for program control. Usage:
  7123.  
  7124.     WHILE (condition)
  7125.        (statement)
  7126.        (statement)
  7127.     ENDWHILE
  7128.  
  7129.    Execution stays in the while loop as long as the condition is true.
  7130.  
  7131.    See Also: EndWhile
  7132.  
  7133.    Category: Conditional
  7134.  
  7135.    White : Number   White : Number   White : Number
  7136.    Returns the number 15.
  7137.  
  7138.    Category: Color
  7139.  
  7140.    WindowHeight : Number   WindowHeight : Number   WindowHeight : Number
  7141.    Returns number of rows in current window.
  7142.  
  7143.    Category: Display
  7144.  
  7145.    WindowWidth : Number   WindowWidth : Number   WindowWidth : Number
  7146.    Returns number of columns in current window.
  7147.  
  7148.    Category: Display
  7149.  
  7150.    Write (string)   Write (string)   Write (string)
  7151.    Writes (string) on the screen at the current cursor position.
  7152.  
  7153.    Category: Display
  7154.  
  7155.  
  7156.  
  7157.    Computer Tyme MarxMenu Users Manual                     Page 124
  7158.    _______________________________________________________________
  7159.  
  7160.  
  7161.    WriteCenter (string)   WriteCenter (string)   WriteCenter (string)
  7162.    Writes (string) centered in current window.
  7163.  
  7164.    Category: Display
  7165.  
  7166.    Writeln (string)   Writeln (string)   Writeln (string)
  7167.    Writes (string) on the screen followed by a CR-LF (carriage
  7168.    return-line feed).
  7169.  
  7170.    Category: Display
  7171.  
  7172.    WriteTextFile (FileName,Array)   WriteTextFile (FileName,Array)   WriteTextFile (FileName,Array)
  7173.    This command writes a string array to a text file. Do not use FileCreate
  7174.    of any other file commands with this. This command does it all.
  7175.  
  7176.    See Also: ReadTextFile
  7177.  
  7178.    Category: File, Array
  7179.  
  7180.    WriteVertical (string)   WriteVertical (string)   WriteVertical (string)
  7181.    Writes (string) vertically on the screen from the current cursor
  7182.    position.
  7183.  
  7184.     Example:
  7185.       WriteVertical( 'Hello' )
  7186.  
  7187.         ;This would display
  7188.           H
  7189.           e
  7190.           l
  7191.           l
  7192.           o
  7193.  
  7194.    Category: Display
  7195.  
  7196.    Xor : Operator   Xor : Operator   Xor : Operator
  7197.    Returns logical Xor if operators are boolean; or bitwise Xor if
  7198.    operators are numeric.
  7199.  
  7200.    Category: Math, Boolean
  7201.  
  7202.    Year : Number   Year : Number   Year : Number
  7203.    Returns current Year.
  7204.  
  7205.    Category: Time
  7206.  
  7207.  
  7208.  
  7209.    Computer Tyme MarxMenu Users Manual                     Page 125
  7210.    _______________________________________________________________
  7211.  
  7212.  
  7213.    YearOf (Date) : Number   YearOf (Date) : Number   YearOf (Date) : Number
  7214.    Returns the year of a date. If Date is passed as a string it is
  7215.    converted automatically.
  7216.  
  7217.    See Also: TimeOf, BadDate
  7218.  
  7219.    Category: Time
  7220.  
  7221.    Yellow : Number   Yellow : Number   Yellow : Number
  7222.    Returns the number 14.
  7223.  
  7224.    Category: Color
  7225.  
  7226.    Yes : Boolean   Yes : Boolean   Yes : Boolean
  7227.    Returns True.
  7228.  
  7229.    STRING AND CHARACTER CONSTANTS   STRING AND CHARACTER CONSTANTS   STRING AND CHARACTER CONSTANTS
  7230.  
  7231.       BKSP = #8
  7232.       CR   = #13
  7233.       CRLF = #13#10
  7234.       ESC  = #27
  7235.       FF   = #12
  7236.       LF   = #10
  7237.  
  7238.       F1   = #0#59
  7239.       F2   = #0#60
  7240.       F3   = #0#61
  7241.       F4   = #0#62
  7242.       F5   = #0#63
  7243.       F6   = #0#64
  7244.       F7   = #0#65
  7245.       F8   = #0#66
  7246.       F9   = #0#67
  7247.       F10  = #0#68
  7248.       F11  = #0#133
  7249.       F12  = #0#134
  7250.  
  7251.       SF1  = #0#84
  7252.       SF2  = #0#85
  7253.       SF3  = #0#86
  7254.       SF4  = #0#87
  7255.       SF5  = #0#88
  7256.       SF6  = #0#89
  7257.       SF7  = #0#90
  7258.       SF8  = #0#91
  7259.       SF9  = #0#92
  7260.       SF10 = #0#93
  7261.       SF11 = #0#135
  7262.       SF12 = #0#136
  7263.  
  7264.  
  7265.  
  7266.    Computer Tyme MarxMenu Users Manual                     Page 126
  7267.    _______________________________________________________________
  7268.  
  7269.  
  7270.       CF1  = #0#94
  7271.       CF2  = #0#95
  7272.       CF3  = #0#96
  7273.       CF4  = #0#97
  7274.       CF5  = #0#98
  7275.       CF6  = #0#99
  7276.       CF7  = #0#100
  7277.       CF8  = #0#101
  7278.       CF9  = #0#102
  7279.       CF10 = #0#103
  7280.       CF11 = #0#137
  7281.       CF12 = #0#138
  7282.  
  7283.       AF1  = #0#104
  7284.       AF2  = #0#105
  7285.       AF3  = #0#106
  7286.       AF4  = #0#107
  7287.       AF5  = #0#108
  7288.       AF6  = #0#109
  7289.       AF7  = #0#110
  7290.       AF8  = #0#111
  7291.       AF9  = #0#112
  7292.       AF10 = #0#113
  7293.       AF11 = #0#139
  7294.       AF12 = #0#140
  7295.  
  7296.       ALT1 = #0#120
  7297.       ALT2 = #0#121
  7298.       ALT3 = #0#122
  7299.       ALT4 = #0#123
  7300.       ALT5 = #0#124
  7301.       ALT6 = #0#125
  7302.       ALT7 = #0#126
  7303.       ALT8 = #0#127
  7304.       ALT9 = #0#128
  7305.       ALT0 = #0#129
  7306.  
  7307.  
  7308.  
  7309.    Computer Tyme MarxMenu Users Manual                     Page 127
  7310.    _______________________________________________________________
  7311.  
  7312.  
  7313.    CONDITIONAL STATEMENTS   CONDITIONAL STATEMENTS   CONDITIONAL STATEMENTS
  7314.  
  7315.    MarxMenu has a full complement of conditional statements. They are as
  7316.    follows:
  7317.  
  7318.     IF->ELSE->ENDIF        Where, IF [condition]
  7319.                                      statement
  7320.                                      statement
  7321.                                   ELSE
  7322.                                      statement
  7323.                                      statement
  7324.                                   ENDIF
  7325.  
  7326.     IF->THEN               Where, IF [condition] THEN statement
  7327.  
  7328.     REPEAT->UNTIL          Where, REPEAT
  7329.                                      statement
  7330.                                      statement
  7331.                                   UNTIL [condition]
  7332.  
  7333.     WHILE->ENDWHILE        Where, WHILE [conditon]
  7334.                                      statement
  7335.                                      statement
  7336.                                   ENDWHILE
  7337.  
  7338.  
  7339.     PROCEDURE->ENDPROC     PROCEDURE (name)
  7340.                                      statement
  7341.                                      statement
  7342.                            ENDPROC
  7343.  
  7344.  
  7345.     LOOP->ENDLOOP          LOOP (number)
  7346.                                      statement
  7347.                                      statement
  7348.                            ENDLOOP
  7349.  
  7350.  
  7351.  
  7352.    Computer Tyme MarxMenu Users Manual                     Page 128
  7353.    _______________________________________________________________
  7354.  
  7355.  
  7356.    ENVIRONMENT VARIABLES USED BY MARXMENU   ENVIRONMENT VARIABLES USED BY MARXMENU   ENVIRONMENT VARIABLES USED BY MARXMENU
  7357.  
  7358.    MarxMenu uses a variety of environment variables to control various
  7359.    MarxMenu functions. Many of these variables are optional.
  7360.  
  7361.     Set MouseX=(Number)
  7362.  
  7363.    Sets the horizontal sensitivity of the mouse. Default is 15.
  7364.  
  7365.     Set MouseY=(Number)
  7366.  
  7367.    Sets the vertical sensitivity of the mouse. Default is 25.
  7368.  
  7369.     Set MxEcho=(On/Off)
  7370.  
  7371.    If you set the first line of MARX.BAT to @ECHO %MXECHO% then by setting
  7372.    the environment variable MxEcho to ON or OFF, you can control the echo
  7373.    in the MARX.BAT file without having to edit it. This allows you to do
  7374.    diagnostics on a network without messing up other users.
  7375.  
  7376.     Set Temp=(Directory)
  7377.  
  7378.    Normally, MarxMenu creates temporary batch files in the same directory
  7379.    as MARXMENU.EXE. If you set TEMP to a directory, MarxMenu will use this
  7380.    directory instead. This complies with Windows / DOS 5.0 standards.
  7381.  
  7382.     Set MxCmd=(Command)
  7383.  
  7384.    MarxMenu uses MXCMD to control what the MARX.BAT file executes. You must
  7385.    have enough environment space available for MarxMenu to use.
  7386.  
  7387.     Set KSV=
  7388.  
  7389.    MarxMenu stores a series of keystrokes in the KSV variable when
  7390.    SavePosition is On.
  7391.  
  7392.     Set STATION=(Number)
  7393.  
  7394.    If you are on a network that is not Novell, then you should set this
  7395.    variable to a unique number for each station between 0 and 255.
  7396.  
  7397.     Set TASK=(Number)
  7398.  
  7399.    If you are running a multi-tasking operating system other than DesqView,
  7400.    and MarxMenu is running more than one task, then set an environment
  7401.    variable TASK to a unique number for each task.
  7402.  
  7403.    MarxMenu also accesses your COMSPEC variable and your PATH variable when
  7404.    executing programs.
  7405.  
  7406.  
  7407.  
  7408.    Computer Tyme MarxMenu Users Manual                     Page 129
  7409.    _______________________________________________________________
  7410.  
  7411.  
  7412.    COMMAND CATEGORIES   COMMAND CATEGORIES   COMMAND CATEGORIES
  7413.  
  7414.    Here is a breakdown of MarxMenu commands by command category. Many
  7415.    MarxMenu commands are in several categories. These are the same
  7416.    categories as in the MarxHelp utility.
  7417.  
  7418.    MISC COMMANDS   MISC COMMANDS   MISC COMMANDS
  7419.  
  7420.     |                       | (Vertical Bar)
  7421.     (                       ( : Operator
  7422.     )                       ) : Operator
  7423.     Alias                   Alias
  7424.     Comment                 Comment
  7425.     EndComment              EndComment
  7426.     EndProc                 EndProc
  7427.     Include                 Include (MenuName)
  7428.     Loc                     Loc (Procedure)
  7429.     NetworkVersion          NetworkVersion : Boolean
  7430.     Procedure               Procedure (name)
  7431.     Return                  Return (param,param,...)
  7432.     Run                     Run variable (parameters)
  7433.     Wait                    Wait (number)
  7434.  
  7435.    MATH COMMANDS   MATH COMMANDS   MATH COMMANDS
  7436.  
  7437.     *                       * : Operator
  7438.     +                       + : Operator
  7439.     -                       - : Operator
  7440.     /                       / : Operator
  7441.     <                       < : Operator
  7442.     <=                      <= : Operator
  7443.     <>                      <> : Operator
  7444.     =                       = : Operator
  7445.     >                       > : Operator
  7446.     >=                      >= : Operator
  7447.     Abs                     Abs : Number
  7448.     And                     And : Operator
  7449.     ArcTan                  ArcTan (Radians) : Real
  7450.     Cos                     Cos (Radians) : Real
  7451.     Exp                     Exp (Real) : Real
  7452.     Fraction                Fraction (Real) : Real
  7453.     Int                     Int (Real) : Real
  7454.     Integer                 Integer (Real) : Number
  7455.     Ln                      Ln (Real) : Real
  7456.     Max                     Max (Num,Num) : Num
  7457.     Min                     Min (Num,Num) : Num
  7458.     Mod                     Mod : Operator
  7459.     Not                     Not : Operator
  7460.     Or                      Or : Operator
  7461.     Pi                      Pi : Real
  7462.     Power                   Power (Real,Real) : Real
  7463.     Pred                    Pred (number) : Number
  7464.  
  7465.  
  7466.  
  7467.    Computer Tyme MarxMenu Users Manual                     Page 130
  7468.    _______________________________________________________________
  7469.  
  7470.  
  7471.     Random                  Random : Number
  7472.     Real                    Real (Integer) : Real
  7473.     Shl                     Shl : Operator
  7474.     Shr                     Shr : Operator
  7475.     Sin                     Sin (Radians) : Real
  7476.     Sqr                     Sqr (Real) : Real
  7477.     Succ                    Succ (number) : Number
  7478.     Value                   Value (string) : Number
  7479.     Xor                     Xor : Operator
  7480.  
  7481.    FLOAT COMMANDS   FLOAT COMMANDS   FLOAT COMMANDS
  7482.  
  7483.     *                       * : Operator
  7484.     +                       + : Operator
  7485.     -                       - : Operator
  7486.     /                       / : Operator
  7487.     <                       < : Operator
  7488.     <=                      <= : Operator
  7489.     <>                      <> : Operator
  7490.     =                       = : Operator
  7491.     >                       > : Operator
  7492.     >=                      >= : Operator
  7493.     Abs                     Abs : Number
  7494.     ArcTan                  ArcTan (Radians) : Real
  7495.     Cos                     Cos (Radians) : Real
  7496.     Exp                     Exp (Real) : Real
  7497.     Fraction                Fraction (Real) : Real
  7498.     Int                     Int (Real) : Real
  7499.     Integer                 Integer (Real) : Number
  7500.     Ln                      Ln (Real) : Real
  7501.     Max                     Max (Num,Num) : Num
  7502.     Min                     Min (Num,Num) : Num
  7503.     Pi                      Pi : Real
  7504.     Power                   Power (Real,Real) : Real
  7505.     Real                    Real (Integer) : Real
  7506.     Sin                     Sin (Radians) : Real
  7507.     Sqr                     Sqr (Real) : Real
  7508.  
  7509.  
  7510.  
  7511.    Computer Tyme MarxMenu Users Manual                     Page 131
  7512.    _______________________________________________________________
  7513.  
  7514.  
  7515.    STRING COMMANDS   STRING COMMANDS   STRING COMMANDS
  7516.  
  7517.     +                       + : Operator
  7518.     <                       < : Operator
  7519.     <=                      <= : Operator
  7520.     <>                      <> : Operator
  7521.     =                       = : Operator
  7522.     >                       > : Operator
  7523.     >=                      >= : Operator
  7524.     %MenuFileName           %MenuFileName : String
  7525.     BatFileName             BatFileName : String
  7526.     BlankMessage            BlankMessage (string)
  7527.     Char                    Char (number) : String
  7528.     CleanFileName           CleanFileName (string) : String
  7529.     CmdLine                 CmdLine : String
  7530.     DateString              DateString : String
  7531.     Delete                  Delete (string,pos,count)
  7532.     DosVersionString        DosVersionString : String
  7533.     Extension               Extension (String) : String
  7534.     FilePart                FilePart (String) : String
  7535.     ForceExtension          ForceExtension (String,Ext) : String
  7536.     InputString             InputString (String)
  7537.     Insert                  Insert (InsString,OrigString,Pos)
  7538.     KeySave                 KeySave : String
  7539.     LastKey                 LastKey : String
  7540.     Left                    Left (string,count) : String
  7541.     Length                  Length (string) : Number
  7542.     MarxVersion             MarxVersion : String
  7543.     Max                     Max (Num,Num) : Num
  7544.     Mid                     Mid (string,pos,count) : String
  7545.     Min                     Min (Num,Num) : Num
  7546.     MxCmd                   MxCmd : String
  7547.     NamePart                NamePart (String) : String
  7548.     NextWord                NextWord (String) : String
  7549.     OptionSwitch            OptionSwitch (String1,String2) : Boolean
  7550.     Ord                     Ord (Char) : Number
  7551.     OverKey                 OverKey : String
  7552.     ParamStr                ParamStr (Num) : String
  7553.     Path                    Path : String
  7554.     PathPart                PathPart (String) : String
  7555.     PickFile                PickFile (FileSpec,column,row,height) : String
  7556.     PickMany                PickMany(SourceArray,DestinationArray)
  7557.     PickOne                 PickOne (Array) : String
  7558.     PickPosition            PickPosition : Number
  7559.     Pos                     Pos (substring,string) : Number
  7560.     Readln                  Readln : String
  7561.     ReleaseDate             ReleaseDate : String
  7562.     Right                   Right (string,count) : String
  7563.     Security                Security (on/off)
  7564.     SelectPath              SelectPath : String
  7565.     Str                     Str (number) : String
  7566.     StuffAKey               StuffAKey (String or Number)
  7567.  
  7568.  
  7569.  
  7570.    Computer Tyme MarxMenu Users Manual                     Page 132
  7571.    _______________________________________________________________
  7572.  
  7573.  
  7574.     StuffKBD                StuffKBD (String)
  7575.     TimeString              TimeString : String
  7576.     Trim                    Trim (string)
  7577.     UniqueFileName          UniqueFileName : String
  7578.     UpperCase               UpperCase (String) : String
  7579.     UpperCaseOnly           UpperCaseOnly : Boolean
  7580.     Value                   Value (string) : Number
  7581.  
  7582.    BOOLEAN COMMANDS   BOOLEAN COMMANDS   BOOLEAN COMMANDS
  7583.  
  7584.     And                     And : Operator
  7585.     False                   False : Boolean
  7586.     No                      No : Boolean
  7587.     Not                     Not : Operator
  7588.     Off                     Off : Boolean
  7589.     On                      On : Boolean
  7590.     Or                      Or : Operator
  7591.     True                    True : Boolean
  7592.     Xor                     Xor : Operator
  7593.  
  7594.    MEMORY COMMANDS   MEMORY COMMANDS   MEMORY COMMANDS
  7595.  
  7596.     ApplicationMemory       ApplicationMemory : Number
  7597.     Dispose                 Dispose (Variable)
  7598.     FreeEms                 FreeEMS : Number
  7599.     FreeMemory              FreeMemory : Number
  7600.     Mem                     Mem (seg,ofs) : Number
  7601.     MemL                    MemL (seg,ofs) : Number
  7602.     MemSize                 MemSize : Number
  7603.     MemW                    MemW (seg,ofs) : Number
  7604.     Port                    Port (number) : Number
  7605.     TotalEms                TotalEMS : Number
  7606.  
  7607.  
  7608.  
  7609.    Computer Tyme MarxMenu Users Manual                     Page 133
  7610.    _______________________________________________________________
  7611.  
  7612.  
  7613.    TIME COMMANDS   TIME COMMANDS   TIME COMMANDS
  7614.  
  7615.     Apr                     Apr : Number
  7616.     Aug                     Aug : Number
  7617.     BadDate                 BadDate : Boolean
  7618.     DateString              DateString : String
  7619.     Day                     Day : Number
  7620.     DayOf                   DayOf (Date) : Number
  7621.     DayOfWeek               DayOfWeek : Number
  7622.     DayOfWeekOf             DayOfWeekOf (Date) : Number
  7623.     Dec                     Dec : Number
  7624.     Feb                     Feb : Number
  7625.     Fri                     Fri : Number
  7626.     Hour                    Hour : Number
  7627.     HourOf                  HourOf (Date) : Number
  7628.     Hundredth               Hundredth : Number
  7629.     Jan                     Jan : Number
  7630.     Jul                     Jul : Number
  7631.     Jun                     Jun : Number
  7632.     Mar                     Mar : Number
  7633.     May                     May : Number
  7634.     Minute                  Minute : Number
  7635.     MinuteOf                MinuteOf (Date) : Number
  7636.     Mon                     Mon : Number
  7637.     Month                   Month : Number
  7638.     MonthOf                 MonthOf (Date) : Number
  7639.     Nov                     Nov : Number
  7640.     NovAccountExpDate       NovAccountExpDate (UserName) : Date
  7641.     NovPasswordExpDate      NovPasswordExpDate (UserName) : Date
  7642.     Now                     Now : Date
  7643.     Oct                     Oct : Number
  7644.     Sat                     Sat : Number
  7645.     Second                  Second : Number
  7646.     SecondOf                SecondOf (Date) : Number
  7647.     SecondInDay             SecondsInDay : number
  7648.     SecondInHour            SecondsInHour : Number
  7649.     Sep                     Sep : Number
  7650.     Sun                     Sun : Number
  7651.     Thu                     Thu : Number
  7652.     TimeOf                  TimeOf (String) : Number
  7653.     Timer                   Timer : Number
  7654.     TimeString              TimeString : String
  7655.     Today                   Today : Date
  7656.     Tue                     Tue : Number
  7657.     Wed                     Wed : Number
  7658.     Year                    Year : Number
  7659.     YearOf                  YearOf (Date) : Number
  7660.  
  7661.  
  7662.  
  7663.    Computer Tyme MarxMenu Users Manual                     Page 134
  7664.    _______________________________________________________________
  7665.  
  7666.  
  7667.    EXECUTION COMMANDS   EXECUTION COMMANDS   EXECUTION COMMANDS
  7668.  
  7669.     Bat                     Bat (string)
  7670.     Chain                   Chain (MenuName)
  7671.     ClearScreenFirst        ClearScreenFirst (on/off)
  7672.     DosWindow               DosWindow (on/off)
  7673.     Execute                 Execute (command string)
  7674.     ExitCode                ExitCode
  7675.     ExitMenu                ExitMenu
  7676.     IdelProgram             IdelProgram : Procedure
  7677.     Jump                    Jump (menu)
  7678.     KeySave                 KeySave : String
  7679.     Logoff                  Logoff
  7680.     LogoffTime              LogoffTime : Number
  7681.     MxCmd                   MxCmd : String
  7682.     NoExit                  NoExit
  7683.     Overlay                 OverLay (MenuName)
  7684.     PauseAfterExecute       PauseAfterExecute (On/Off)
  7685.     Reboot                  Reboot
  7686.     ReturnCode              ReturnCode : Number
  7687.     StuffAKey               StuffAKey (String or Number)
  7688.     StuffKBD                StuffKBD (String)
  7689.     UseCommand              UseCommand (on/off)
  7690.  
  7691.    DISPLAY COMMANDS   DISPLAY COMMANDS   DISPLAY COMMANDS
  7692.  
  7693.     BigShadow               BigShadow
  7694.     Blanked                 Blanked : Boolean
  7695.     BlankTime               BlankTime (minutes)
  7696.     BlockBox                BlockBox
  7697.     BoxHeader               BoxHeader (string)
  7698.     BoxHeaderLeft           BoxHeaderLeft (string)
  7699.     BoxHeaderRight          BoxHeaderRight (string)
  7700.     BoxFooter               BoxFooter (string)
  7701.     BoxFooterLeft           BoxFooterLeft (string)
  7702.     BoxFooterRight          BoxFooterRight (string)
  7703.     ClearLine               ClearLine [char]
  7704.     ClearScreen             ClearScreen [char]
  7705.     ClearScreenOnExit       ClearScreenOnExit (on/off)
  7706.     ClockMode               ClockMode
  7707.     ClockPos                ClockPos (column,row)
  7708.     Console                 Console (On/Off)
  7709.     ConsolePos              ConsolePos (column,row)
  7710.     CurrentWindow           CurrentWindow : Number
  7711.     Cursor                  Cursor (On/Off)
  7712.     CustomBox               CustomBox (String)
  7713.     DoubleLineBox           DoubleLineBox
  7714.     DrawBox                 DrawBox (column,row,width,height)
  7715.     EraseTopWindow          EraseTopWindow
  7716.     EraseWindow             EraseWindow (Number)
  7717.     Explode                 Explode (on/off)
  7718.     ExplodeDelay            ExplodeDelay (number)
  7719.  
  7720.  
  7721.  
  7722.    Computer Tyme MarxMenu Users Manual                     Page 135
  7723.    _______________________________________________________________
  7724.  
  7725.  
  7726.     ForceExplosion          ForceExplosion (On/Off)
  7727.     GotoXY                  GotoXY (column,row)
  7728.     InactiveBox             InactiveBox (BoxType)
  7729.     LockWord                LockWord (word)
  7730.     MoveWindow              MoveWindow (Horizontal,Vertical)
  7731.     NoBoxBorder             NoBoxBorder
  7732.     PullMenu                PullMenu (on/off)
  7733.     ResizeWindow            ResizeWindow (Horizontal Vertical)
  7734.     RollWindow              RollWindow (number)
  7735.     ScreenHeight            ScreenHeight : Number
  7736.     ScreenWidth             ScreenWidth : Number
  7737.     ScrollMove              ScrollMove (On/Off)
  7738.     SetTopWindow            SetTopWindow (Number)
  7739.     SetWindowUnder          SetWindowUnder (Window1,Window2)
  7740.     Shadow                  Shadow (on/off)
  7741.     ShadowPosition          ShadowPosition (number)
  7742.     SingleLineBox           SingleLineBox
  7743.     SmallShadow             SmallShadow
  7744.     Sound                   Sound (on/off)
  7745.     StandardIO              StandardIO
  7746.     Suggest                 Suggest (Char)
  7747.     UseArrows               UseArrows
  7748.     ViewArray               ViewArray (Array)
  7749.     ViewTextFile            ViewTextFile (Name)
  7750.     WhereX                  WhereX : Number
  7751.     WhereXAbs               WhereXAbs : Number
  7752.     WhereYAbs               WhereYAbs : Number
  7753.     WindowHeight            WindowHeight : Number
  7754.     WindowWidth             WindowWidth : Number
  7755.     Write                   Write (string)
  7756.     WriteCenter             WriteCenter (string)
  7757.     Writeln                 Writeln (string)
  7758.     WriteVertical           WriteVertical (string)
  7759.  
  7760.  
  7761.  
  7762.    Computer Tyme MarxMenu Users Manual                     Page 136
  7763.    _______________________________________________________________
  7764.  
  7765.  
  7766.    COLOR COMMANDS   COLOR COMMANDS   COLOR COMMANDS
  7767.  
  7768.     Black                   Black : Number
  7769.     Blink                   Blink : Boolean
  7770.     Blue                    Blue : Number
  7771.     BoxBorderColor          BoxBorderColor (forecolor,backcolor)
  7772.     BoxHeaderColor          BoxHeaderColor (forecolor,backcolor)
  7773.     BoxInsideColor          BoxInsideColor (forecolor,backcolor)
  7774.     Brown                   Brown : Number
  7775.     CapsColor               CapsColor (forecolor,backcolor)
  7776.     ClockColor              ClockColor (forecolor,backcolor)
  7777.     ConsoleBorderColor      ConsoleBorderColor (Color,Color)
  7778.     ConsoleHeaderColor      ConsoleHeaderColor (Color,Color)
  7779.     ConsoleInsideColor      ConsoleInsideColor (Color,Color)
  7780.     Cyan                    Cyan : Number
  7781.     Green                   Green : Number
  7782.     Grey                    Grey : Number
  7783.     InactiveBoxColor        InactiveBoxColor (foreground,background)
  7784.     InverseColor            InverseColor (forecolor,backcolor)
  7785.     LBlue                   LBlue : Number
  7786.     LCyan                   LCyan : Number
  7787.     LGreen                  LGreen : Number
  7788.     LGrey                   LGrey : Number
  7789.     LMag                    LMag : Number
  7790.     LMagenta                LMagenta : Number
  7791.     LRed                    LRed : Number
  7792.     Mag                     Mag : Number
  7793.     Magenta                 Magenta : Number
  7794.     Red                     Red : Number
  7795.     ShadowColor             ShadowColor (ForeColor,BackColor)
  7796.     TextBackground          TextBackground (color)
  7797.     TextColor               TextColor (forecolor,backcolor)
  7798.     White                   White : Number
  7799.     Yellow                  Yellow : Number
  7800.  
  7801.    VIDEO COMMANDS   VIDEO COMMANDS   VIDEO COMMANDS
  7802.  
  7803.     BW40                    BW40 : Number
  7804.     BW80                    BW80 : Number
  7805.     CO40                    CO40 : Number
  7806.     CO80                    CO80 : Number
  7807.     ColorScreen             ColorScreen : Boolean
  7808.     Mono                    Mono : Number
  7809.     TextMode                TextMode (num)
  7810.     VideoMode               VideoMode : Number
  7811.     VideoPage               VideoPage : Number
  7812.  
  7813.  
  7814.  
  7815.    Computer Tyme MarxMenu Users Manual                     Page 137
  7816.    _______________________________________________________________
  7817.  
  7818.  
  7819.    SYSTEM COMMANDS   SYSTEM COMMANDS   SYSTEM COMMANDS
  7820.  
  7821.     CapsLock                CapsLock : Boolean
  7822.     ClusterSize             ClusterSize <drive> : Number
  7823.     DosVersion              DosVersion : Number
  7824.     DosVersionString        DosVersionString : String
  7825.     Drives                  Drives : Number
  7826.     Floppies                Floppies : Number
  7827.     FreeDiskSpace           FreeDiskSpace <drive> : Number
  7828.     MinorDosVersion         MinorDosVersion : Number
  7829.     NumLock                 NumLock : Boolean
  7830.     ParallelPorts           ParallelPorts : Number
  7831.     ScrollLock              ScrollLock : Boolean
  7832.     SerialPorts             SerialPorts : Number
  7833.     TotalDiskSpace          TotalDiskSpace <drive> : Number
  7834.     UsedDiskSpace           UsedDiskSpace <drive> : Number
  7835.     Volume                  Volume (drive)
  7836.  
  7837.    FILE COMMANDS   FILE COMMANDS   FILE COMMANDS
  7838.  
  7839.     ChDir                   ChDir (string)
  7840.     DelFile                 DelFile (Name)
  7841.     EndOfFile               EndOfFile (FileVar) : Boolean
  7842.     ExistDir                ExistDir (directory) : Boolean
  7843.     ExistFile               ExistFile : Boolean
  7844.     ExistOnPath             ExistOnPath (string) : String
  7845.     FileAppend              FileAppend (FileVar)
  7846.     FileAssign              FileAssign (FileVar,String)
  7847.     FileAttr                FileAttr (string) : Number
  7848.     FileClose               FileClose (FileVar)
  7849.     FileCreate              FileCreate (FileVar)
  7850.     FileDate                FileDate (string) : Number
  7851.     FileFlush               FileFlush (FileVar)
  7852.     FileLog                 FileLog (FileVar,String)
  7853.     FileOpen                FileOpen (FileVar)
  7854.     FilePos                 FilePos (FileVar) : Number
  7855.     FileReadln              FileReadln (FileVar) : String
  7856.     FileRename              FileRename (Old,New)
  7857.     FileResult              FileResult : Number
  7858.     FileSeek                FileSeek (FileVar,Number)
  7859.     FileSize                FileSize (string) : Number
  7860.     FileWrite               FileWrite (FileVar,String)
  7861.     FileWriteln             FileWriteln (FileVar,String)
  7862.     ReadTextFile            ReadTextFile (FileName,Array)
  7863.     TextPos                 TextPos : Number
  7864.     TextSeek                TextSeek (Number)
  7865.     UniqueFileName          UniqueFileName : String
  7866.     ViewTextFile            ViewTextFile (Name)
  7867.     WriteTextFile           WriteTextFile (FileName,Array)
  7868.  
  7869.  
  7870.  
  7871.    Computer Tyme MarxMenu Users Manual                     Page 138
  7872.    _______________________________________________________________
  7873.  
  7874.  
  7875.    PRINTER COMMANDS   PRINTER COMMANDS   PRINTER COMMANDS
  7876.  
  7877.     ClosePrinter            ClosePrinter
  7878.     NovPrintQueues          NovPrintQueues (Array)
  7879.     OpenPrinter             OpenPrinter
  7880.     Print                   Print (string)
  7881.     PrinterName             PrinterName (string)
  7882.     Println                 Println (String)
  7883.     PrintScreen             PrintScreen (On/Off)
  7884.  
  7885.    ENVIRONMENT COMMANDS   ENVIRONMENT COMMANDS   ENVIRONMENT COMMANDS
  7886.  
  7887.     CurrentEnvironment      CurrentEnvironment
  7888.     EnvFree                 EnvFree : Number
  7889.     EnvSize                 EnvSize : Number
  7890.     FixPath                 FixPath
  7891.     KeySave                 KeySave : String
  7892.     MasterEnvironment       MasterEnvironment
  7893.     ModifyPath              ModifyPath
  7894.     MxCmd                   MxCmd : String
  7895.     ParentEnvironment       ParentEnvironment
  7896.     ReadEnv                 ReadEnv (string) : String
  7897.     ReadEnvironment         ReadEnvironment (array)
  7898.     SavePosition            SavePosition (On/Off)
  7899.     SetEnv                  SetEnv (String)
  7900.     ShellEnvironment        ShellEnvironment
  7901.  
  7902.    ARRAY COMMANDS   ARRAY COMMANDS   ARRAY COMMANDS
  7903.  
  7904.     Delete                  Delete (string,pos,count)
  7905.     Dispose                 Dispose (Variable)
  7906.     NovGroupMembers         NovGroupsMembers (Group,Array)
  7907.     NovPrintQueues          NovPrintQueues (Array)
  7908.     NovReadGroups           NovReadGroups (Name,Array)
  7909.     NovReadSecurityEquals   NovReadSecurityEquals (Name,Array)
  7910.     NovServers              NovServers (Array)
  7911.     NovScanProperties       NovScanProperties (Array, Object, ObjectType)
  7912.     NovUsers                NovUsers (Array)
  7913.     NovUsersLoggedIn        NovUsersLoggedIn (Array)
  7914.     NumberOfElements        NumberOfElememts (array) : Number
  7915.     PickMany                PickMany(SourceArray,DestinationArray)
  7916.     PickOne                 PickOne (Array) : String
  7917.     PickPosition            PickPosition : Number
  7918.     ReadEnvironment         ReadEnvironment (array)
  7919.     ReadTextFile            ReadTextFile (FileName,Array)
  7920.     SetArraySize            SetArraySize (Array,Size)
  7921.     SortArray               SortArray (Array)
  7922.     ViewArray               ViewArray (Array)
  7923.     WriteTextFile           WriteTextFile (FileName,Array)
  7924.  
  7925.  
  7926.  
  7927.    Computer Tyme MarxMenu Users Manual                     Page 139
  7928.    _______________________________________________________________
  7929.  
  7930.  
  7931.    DESQVIEW COMMANDS   DESQVIEW COMMANDS   DESQVIEW COMMANDS
  7932.  
  7933.     DvAppNumber             DvAppNumber : Number
  7934.     DvFrame                 DvFrame (Handle,On/Off)
  7935.     DvFreeze                DvFreeze (Handle)
  7936.     DvHide                  DvHide (Handle)
  7937.     DvKillTask              DvKillTask (Handle)
  7938.     DvLastHandle            DvLastHandle : Number
  7939.     DvLoaded                DvLoaded : Boolean
  7940.     DvMoveWindow            DvMoveWindow (Handle,X,Y)
  7941.     DvMyHandle              DvMyHandle : Number
  7942.     DvPifExecute            DvPifExecute (Pif File)
  7943.     DvResizeWindow          DvResizeWindow (Handle,Width,Height)
  7944.     DvSetBottom             DvSetBottom (Handle)
  7945.     DvSetTop                DvSetTop (Handle)
  7946.     DvUnFreeze              DvUnFreeze (Handle)
  7947.     DvUnHide                DvUnHide (Handle)
  7948.  
  7949.    CONDITIONAL COMMANDS   CONDITIONAL COMMANDS   CONDITIONAL COMMANDS
  7950.  
  7951.     Else                    Else
  7952.     Endif                   EndIf
  7953.     EndLoop                 EndLoop
  7954.     EndWhile                EndWhile
  7955.     If                      If
  7956.     Loop                    Loop
  7957.     LoopIndex               LoopIndex
  7958.     LoopLimit               LoopLimit
  7959.     OnKey                   OnKey (char)
  7960.     OnScreenOnly            OnScreenOnly (On/Off)
  7961.     Password                Password (Pswd,column,row)
  7962.     Repeat                  Repeat
  7963.     Then                    Then
  7964.     Until                   Until
  7965.     While                   While
  7966.  
  7967.    KEYBOARD COMMANDS   KEYBOARD COMMANDS   KEYBOARD COMMANDS
  7968.  
  7969.     InputString             InputString (String)
  7970.     InsertMode              InsertMode (On/Off)
  7971.     KbdReady                KbdReady : Boolean
  7972.     MenuKeyBuffer           MenuKeyBuffer
  7973.     ReadKey                 ReadKey : String
  7974.     Readln                  Readln : String
  7975.     SavePosition            SavePosition (On/Off)
  7976.     StuffAKey               StuffAKey (String or Number)
  7977.     StuffKBD                StuffKBD (String)
  7978.     StuffKeyboardNow        StuffKeyboardNow
  7979.     WaitOrKbdReady          WaitOrKbdReady (Number)
  7980.  
  7981.  
  7982.  
  7983.    Computer Tyme MarxMenu Users Manual                     Page 140
  7984.    _______________________________________________________________
  7985.  
  7986.  
  7987.    MOUSECONTROL COMMANDS   MOUSECONTROL COMMANDS   MOUSECONTROL COMMANDS
  7988.  
  7989.     KeyFromMouse            KeyFromMouse : Boolean
  7990.     Mouse                   Mouse
  7991.     MouseHorizontal         MouseHorizontal (Number)
  7992.     MouseVertical           MouseVertical (Number)
  7993.  
  7994.    MUSIC COMMANDS   MUSIC COMMANDS   MUSIC COMMANDS
  7995.  
  7996.     KillMusic               KillMusic
  7997.     NotesLeft               NotesLeft : Num
  7998.     NotesPlayed             NotesPlayed : Num
  7999.     Tone                    Tone (Frequency,Duration)
  8000.  
  8001.    NOVELL COMMANDS   NOVELL COMMANDS   NOVELL COMMANDS
  8002.  
  8003.     MachineName             MachineName : String
  8004.     NovAccountExpDate       NovAccountExpDate (UserName) : Date
  8005.     NovAttach               NovAttach (Server)
  8006.     NovChangePassword       NovChangePassword (OldPassword,NewPassword)
  8007.     NovCloseSemaphore       NovCloseSemaphore (Name)
  8008.     NovConnection           NovConnection : Number
  8009.     NovConsoleOperator      NovConsoleOperator : Boolean
  8010.     NovDefaultServer        NovDefaultServer : String
  8011.     NovDetach               NovDetach (Server)
  8012.     NovGroupMembers         NovGroupsMembers (Group,Array)
  8013.     NovGroups               NovGroups (Array)
  8014.     NovInGroup              NovInGroup (Group) : Boolean
  8015.     NovLogin                NovLogin (Name,Password)
  8016.     NovLoginName            NovLoginName (Connection) : String
  8017.     NovLogout               NovLogout
  8018.     NovMapDrive             NovMapDrive (Drive,Directory)
  8019.     NovMyLoginName          NovMyLoginName : String
  8020.     NovMyPassword           NovMyPassword (Password) : Boolean
  8021.     NovOpenSemaphore        NovOpenSemaphore (Name,Value)
  8022.     NovPasswordExpDate      NovPasswordExpDate (UserName) : Date
  8023.     NovPreferredServer      NovPreferredServer : String
  8024.     NovPrimaryServer        NovPrimaryServer : String
  8025.     NovPrintQueues          NovPrintQueues (Array)
  8026.     NovReadGroups           NovReadGroups (Name,Array)
  8027.     NovReadSecurityEquals   NovReadSecurityEquals (Name,Array)
  8028.     NovResult               NovResult : Number
  8029.     NovSemaphoreTimeOut     NovSemaphoreTimeOut
  8030.     NovSemaphoreUsers       NovSemaphoreUsers (Name) : Number
  8031.     NovSemaphoreValue       NovSemaphoreValue (Name) : Number
  8032.     NovServers              NovServers (Array)
  8033.     NovScanProperties       NovScanProperties (Array, Object, ObjectType)
  8034.     NovSetPreferredServer   NovSetPreferredServer (Server)
  8035.     NovSetPrimaryServer     NovSetPrimaryServer (Server)
  8036.     NovSignalSemaphore      NovSignalSemaphore (Name)
  8037.     NovStationAddress       NovStationAddress (Connection) : String
  8038.     NovUserInGroup          NovUserInGroup (Name,Group) : Boolean
  8039.  
  8040.  
  8041.  
  8042.    Computer Tyme MarxMenu Users Manual                     Page 141
  8043.    _______________________________________________________________
  8044.  
  8045.  
  8046.     NovUsers                NovUsers (Array)
  8047.     NovUsersLoggedIn        NovUsersLoggedIn (Array)
  8048.     NovWaitOnSemaphore      NovWaitOnSemaphore (Name) : Boolean
  8049.     UseNovPassword          UseNovPassword : Boolean
  8050.  
  8051.    VARIABLE COMMANDS   VARIABLE COMMANDS   VARIABLE COMMANDS
  8052.  
  8053.     Qualifier               Qualifier
  8054.     Shared                  Shared
  8055.     Var                     Var
  8056.  
  8057.  
  8058.    Other Computer Tyme Software:
  8059.    ======================================================
  8060.  
  8061.    The Computer Tyme Dos ToolBox... Makes DOS easier for the novice,
  8062.    more powerful for the professional.
  8063.  
  8064.    DIRECTORY MASTER is a powerful hard disk managment utility. It
  8065.    brings up your hard disk files and allows you to mark selected
  8066.    files so you can copy them, delete them, or move them. It also
  8067.    allows you to rename files, change dates, and change attributes.
  8068.    You can also run programs or set up your function keys to run
  8069.    programs on selected files.
  8070.  
  8071.    DOLIST makes being at DOS easier. It gives you full line editing,
  8072.    like a word processor, for your commands. It also stores commands
  8073.    so that you can re-execute them. It remembers subdirectories and
  8074.    allows you to go back to them by pressing the TAB key. It offers
  8075.    programmable function keys, DOS extensions, multiple execution,
  8076.    and many more features you have got to have.
  8077.  
  8078.    PICK DIRECTORY allows you to move through the directory system by
  8079.    displaying a graphic tree and letting you use your arrow keys to
  8080.    move around. It also lets you create, delete, rename, and hide
  8081.    directories.
  8082.  
  8083.    TEDIT (from SemWare) is a powerful, easy to use full screen
  8084.    editor.
  8085.  
  8086.    MARXTSR is a set of memory and TSR management utilities that let
  8087.    you load and unload TSRs (Terminate and stay resident programs)
  8088.    from memory. Utilities to list menory allocation and turn TSR's
  8089.    on and off.
  8090.  
  8091.    And many more ... Also includes is D, a fancy directory listing
  8092.    program; WHEREIS, for finding stuff on you hard disk, SORT, MOVE,
  8093.    FIND, FREE, PIPEDIR, VERSION, and many more.
  8094.  
  8095.    The Dos Toolbox sells for $59.95.
  8096.  
  8097.    ======================================================
  8098.  
  8099.    We are also selling QEdit from Semware. QEdit is a professional
  8100.    editor from Semware. TEdit is a mini version of QEdit. If you
  8101.    like TEdit, You'll love QEdit.
  8102.  
  8103.    1-800-548-5353 Order Line
  8104.    1-417-866-1222 Voice Line
  8105.    1-417-866-1665 BBS Data line * 1200/2400 * 8N1 * ANSI or VT100
  8106.  
  8107.    MarxMenu comes with MarxEdit and MARXTSR manager and a few goodies out of
  8108.    the DOS ToolBox. The Network Survival Kit is a network version of almost
  8109.    every utility I've ever written. It's sold on a per fileserver basis.
  8110.  
  8111.                  _______
  8112.             ____|__     |               (tm)
  8113.          --|       |    |-------------------
  8114.            |   ____|__  |  Association of
  8115.            |  |       |_|  Shareware
  8116.            |__|   o   |    Professionals
  8117.          -----|   |   |---------------------
  8118.               |___|___|    APPROVED VENDOR
  8119.  
  8120.       ==========================================
  8121.  
  8122.  
  8123.  
  8124.  
  8125.  
  8126.  
  8127.  
  8128.         Make Check            Computer Tyme            Order Form 2.26
  8129.         Payable To:    411 North Sherman Suite 300
  8130.                           Springfield Mo. 65802
  8131.                      (417) 866-1222  (800) 548-5353
  8132.  
  8133.         Please send me Computer Tyme Software.
  8134.  
  8135.         =============================================================
  8136.  
  8137.         Name:        ________________________________________________
  8138.  
  8139.         Address:     ________________________________________________
  8140.  
  8141.         City/St/Zip: ________________________________________________
  8142.  
  8143.         Phone:       ________________________________________________
  8144.  
  8145.         Computer:    ________________________________________________
  8146.  
  8147.         Got From:    ________________________________________________
  8148.  
  8149.         Comments:    ________________________________________________
  8150.  
  8151.                      ________________________________________________
  8152.  
  8153.  
  8154.         Single User Version:
  8155.  
  8156.         ___ Enclosed is $59.95 for MarxMenu.
  8157.  
  8158.         ___ Enclosed is $59.95 for the DOS ToolBox.
  8159.  
  8160.         ___ Enclosed is $99.95 for MarxMenu, the Dos ToolBox and DM3.
  8161.  
  8162.  
  8163.         Network Version (1 per file server):
  8164.  
  8165.         ___ Enclosed is $495 for Network Survival Kit.
  8166.  
  8167.         ___ Add $3.00 for Shipping and Handling.
  8168.  
  8169.         ___ I need 3 1/2 Inch Media.
  8170.  
  8171.  
  8172.         Credit Card Number: _______________ Expiration Date: ________
  8173.  
  8174.         Signature: __________________________________________________
  8175.  
  8176.         Master Card __   Visa __   Discover __
  8177.  
  8178.                     * We do not take American Express *
  8179.  
  8180.         =============================================================
  8181.