@@NO HELP No help is available for this selection. Please refer to the TimeStack User's Guide for additional help @@File The File menu lets you manipulate all files in TimeStack. This includes loading the hex file, saving and restoring the node list, and getting and putting the configuration to disk. @@File Load This prompts the name of the hex file. The hex file is given a default extension of .HEX if no extension is entered. If an extension is not desired then enter the name as NAME. with a period on the end. The hex file may be Motorola or Intel hex format. The hex file is automatically loaded if a configuration file is loaded and there is a hex filename specified in its configuration. @@File Save This name is used to write out the special node list file. The node list filename entered here is the same name used in the menu File | Restore. The node list file is given a default extension of .NOD if no extension is entered. If an extension is not desired then enter the name as NAME. with a period on the end. The node list file is automatically loaded if a configuration file is loaded and there is a node list filename specified. @@File Restore The node list filename is entered here. This name is used to read in the special node list file. Any name entered here will also be used by the menu File | Save. The node list file is given a default extension of .NOD if no extension is entered. If an extension is not desired then enter the name as NAME. with a period on the end. The node list file is automatically loaded if a configuration file is loaded and there is a node list filename specified. @@File Get The configuration of TimeStack is read in from here. Any name entered here will also be used by the menu File | Put. The configuration file is given a default extension of .CFG if no extension is entered. If an extension is not desired then enter the name as NAME. with a period on the end. If the configuration file xxxxxx.CFG, where xxxxxx is the name of the program, is found when TimeStack starts up, that configuration is loaded. @@File Put The current TimeStack configuration is saved in this file. The configuration filename entered here is the same name used in the menu File | Get. The configuration file is given a default extension of .CFG if no extension is entered. If an extension is not desired then enter the name as NAME. with a period on the end. @@Analysis The start and stop addresses of the analysis to be done are entered here. The cursor starts out on the top line which is the start address. The hexadecimal start address obtained from a program listing is entered here. Pressing ENTER moves to the stop address on the next line. A hexadecimal stop address determined by inspecting the program listing is entered. If the analysis is on a procedure that finishes with a return from subroutine instruction, enter a hexadecimal value that contains all F's such as FFFF. The analysis will automatically stop when it finds a return from subroutine instruction. Pressing ESC from this line restores the previous value and moves the cursor back up to the start address line. @@Analysis Abort Yes The analysis may be aborted by pressing ESC while it is running. Choosing 'Yes' at this time will stop the analysis from completing. @@Analysis Abort No The analysis may be aborted by pressing ESC while it is running. Choosing 'No' at this time will allow the analysis to continue running. @@Edit Edit the instruction at the address entered. The instruction must be a conditional branch, a jump to subroutine, an indexed jump, or an indexed jump to subroutine. The type of instruction will determine which menu is displayed. @@Edit Take The choices for conditional branches are Take, Fall, Normal, or Clear. This selection asks how many times to take the conditional branch before it is allowed to fall through. A value of zero indicates that the branch should always be taken (ie. it never falls through). Example: LDAA #5 LOOP: NOP DECA BNE LOOP ; TAKE 4 RTS In this example, it is correct for the conditional branch BNE to be set to TAKE 4 times. The fifth time through the loop it falls through. @@Edit Fall The choices for conditional branches are Take, Fall, Normal, or Clear. This selection asks how many times to fall through the conditional branch before it is allowed to be taken. A value of zero indicates that the branch should always fall through (ie. it is never taken). Example: LDAA #6 LOOP: DECA BEQ DONE ; FALL 5 NOP BRA LOOP DONE: RTS In this example, it is correct for the conditional branch BEQ to be set to FALL 5 times. The sixth time through the loop it is taken. @@Edit Normal Treat the conditional branch as you would a normal forward branch. Both paths of the branch are analyzed. @@Edit Delete Delete the branch from the special node list. @@Edit JMP IND The menu for jumps indirect first displays the option to handle the jump indirect exactly as it would a return from subroutine instruction. If this is not chosen then the address that should be jumped to is requested. @@Edit Clear JSR The time and stack that was entered for this jump subroutine may be cleared. Yes - clears this information. No - leaves the information. @@Clear It is possible to clear nodes in the Special Nodes window one at a time using the Edit menu but this is time consuming. This option allows clearing all nodes from the given starting address through the given ending address, inclusive. @@Disasm The Disassembly window needs to know where to start when it disassembles a portion of the program. Enter the starting address for disassembly here. @@Options There are many different options available so that TimeStack may be customized. Look at each option individually to find out more about it. @@Options Type The type of processor can have an effect on what opcodes are illegal and how many clock cycles an opcode uses. Some processor families have a large number of choices. This may mean a difference in timing characteristics or it may just allow that specific name to be chosen for display purposes. Any time a processor is picked, the clock divisor value is reset to a default value for that processor. @@Options Clock This is used to specify the clock rate of the processor. It is used to calculate how many microseconds the maximum and minimum execution times are in the Analysis Results window. The number entered is in megahertz. It must be between 0 and 200 MHz. It is a floating point number with at least five digits of accuracy. It may be entered as a regular number or using scientific notation. @@Options Divisor Every processor has a factor that the external clock input is divided by. The external clock is divided by this value to obtain an internal clock that is referred to as the cycle time. Most processors have a fixed value for this internal divisor but it may be changed here. The number entered must be between 0 and 256. It is a floating point number with at least five digits of accuracy. It may be entered as a regular number of using scientific notation. @@Options Get Gets additional information on the current state of TimeStack. This includes filenames, current processor type, clock rate, clock divisor, and memory available. @@Options Config Auto This allows the configuration to automatically be saved when Quiting. Yes - sets up TimeStack to automatically save the configuration when Quiting. No - does not allow automatic saving of the configuration when Quiting. @@Options Node Auto This allows the node list to automatically be saved when Quiting. Yes - sets up TimeStack to automatically save the node list when Quiting. No - does not allow automatic saving of the node list when Quiting. @@Print The information obtained from the analysis may be saved in a file on disk or sent to a printer. @@Print Comments A line at the top of the printed information may optionally contain a comment. That line is entered here and remains until replaced with another line. @@Print Save Outputs the current analysis results to a file. This file is usually saved for printing later. @@Print Output Outputs the current analysis results to a printer. The output is sent to the DOS print device PRN. Be sure the printer is turned on, loaded with paper, and on-line. @@Print Opening There is a problem opening this file for printing. @@Print Error There is a problem trying to communicate with the printer. This could be caused by a couple of different things. 1. Be sure the printer is plugged in and turned on. Make sure all of the printer cables are connected correctly. 2. Check that it has not run out of paper. 3. Look to see that is it on-line. @@Quit Quit the TimeStack program. If the Special Nodes have been modified in any way and the 'save special nodes automatically' feature is not active, a prompt is given to ask if the information should really be saved. If the special nodes are to be saved and no filename has been entered then it will be prompted. @@Quit Node The current special nodes will be saved if you choose 'Yes' at this time. Any changes made to the special nodes will be lost if 'No' is chosen. @@Quit Configuration The current configuration will be saved if you choose 'Yes' at this time. Any changes made to the configuration will be lost if 'No' is chosen. @@Config Error Reading The configuration file that was entered was not found while trying to open it for the first time. @@Config Header The first line of information in the configuration file is bad. It probably means the file is not a valid TimeStack configuration file. @@Config Version The configuration file version is greater than the program reading it. @@Config Revision The configuration file revision is not the same as the program reading it. @@Config Size The configuration file is too big. This indicates some problem with the file. @@Config Error Writing The configuration file that was entered had an error while trying to open it for writing. @@CPU Error The processor type in the configuration file was not a valid choice for this program. A default will be selected as the processor type. @@CPU Not Found The processor type in the configuration file was not found. A default will be selected as the processor type. @@CPU Selection Choose one of the given processors. These are the only processors this version of the program will recognize. Some of the processors may operate identically but have been given their own entry to allow for more specific documentation. @@Error No help is available. Refer to the TimeStack User's Guide. @@Infinite Loops Infinite loops in the program will eventually cause the analysis to reach an internal limitation and stop. If a memory limitation is reached, it is up to the user to determine if or how the program entered into a large or infinite loop. In general, it is not a good idea to try and time loops that run for more than a couple of hundred iterations. Also, it may be that one of the conditional branches in the program has not been set up or set up correctly. It may be possible to narrow down the area that is the problem by changing the start and stop addresses to analyze a smaller portion. A solution to timing loops that run for a large number of times is to time the loop when it is taken only once. Then time the loop when it is taken twice. Calculate the difference between these results and you have how long each iteration of the loop takes. @@Hex Files Some common problems with hex files are as follows. Not all address ranges are valid. The given address may not exist in the hex file that was loaded. @@Illegal Opcodes An illegal opcode means that the value in memory at the indicated address was not a valid instruction for the current processor type. It may be that the current processor type is set incorrectly or the hex file that was loaded was for another processor or the starting address was incorrectly specified or the program is in error. @@No Time This opcode is not able to be included in the timing analysis for this program. For some reason, the instruction is too difficult to logically be analyzed by TimeStack. @@Indirect Addressing JSR The cycle time and worst stack depth must be entered for a jump subroutine indirect instruction. If this information is not known then do an analysis of the subroutine that is to be the destination of this instruction. @@Indirect Addressing JMP A destination address is needed for a jump indirect instruction. @@Backwards Branching If a backwards branch is encountered it is possible for a loop structure to exist. The option to edit conditional branches is given at this time so that if this is part of a loop it can be set up. @@Stack Mismatch The stack depth when this conditional branch is taken and when it falls through is different. This MIGHT indicate a path where the stack could become unbalanced based on the logic. @@Difficult Structures Some loop structures are too difficult for the analysis to calculate correctly. The conditional branch that should be modified to help the analysis out is indicated. @@Stop Address The stop address that was entered for the analysis was never reached. Probably the address entered was less than the starting address, or it may have been greater than the last return from subroutine instruction in the subroutine. @@Branch Past A branch inside the analysis range branched past the specified stop address. This could mean the stop address indicated was shorter than intended. @@Internal Error An internal error has occurred that should not have happened under normal circumstances. Please report this to BE, Inc. @@Help Files The help files were not found in the search path. The search path is the current directory of the current drive followed by each directory in the PATH environment variable.