This file contains descriptions for files in this directory and its
subdirectories. The aim is to make navigation through the code easier. Lines in
this file might be very long.

Last update: December 8, 2011
Notes:
	* List of files was generated by "tree" command
	* This file might be incomplete
	* Some file from 1.4.x version are not mentined here

lib                                                  | Source files of the IDE
├── bottompanel                                      | Bottom panel in the main window
│   ├── bottomnotebook.tcl                           | "Root component" of the bottom panel
│   ├── calculator.tcl                               | Tab: Calculator
│   ├── cvarsview.tcl                                | Tab: C variables
│   ├── find_in_files.tcl                            | Tab: Find in files
│   ├── graph.tcl                                    | Tab: IO ports
│   ├── graph_wdg.tcl                                | Graph widget used in the tab "IO ports"
│   ├── messages.tcl                                 | Tab: Messages
│   ├── terminal.tcl                                 | Tab: Terminal emulator
│   └── todo.tcl                                     | Tab: Notes
├── cli.tcl                                          | Implementation of the command line interface (CLI)
├── compiler                                         | Built-in assembler and interfaces for cooperation with external assemblers and SDCC compiler
│   ├── assembler.tcl                                | Built-in assembler: Processes preprocessed code to generate object file and to instruct code listing generator
│   ├── codelisting.tcl                              | Built-in assembler: Code listing generator
│   ├── compilerconsts.tcl                           | Built-in assembler: Instruction set definition, etc. used by the assembler and other components of the IDE
│   ├── compiler.tcl                                 | Built-in assembler: Manages assembler settings, serves as entry point to assembler and prints some messages
│   ├── disassembler.tcl                             | 8051 disassembler
│   ├── external_compiler.tcl                        | Interface for cooperation with external assemblers and SDCC compiler
│   └── preprocessor.tcl                             | Built-in assembler: Assembler pre-processor
├── configdialogues                                  | Graphical configuration dialogues
│   ├── configdialogues.tcl                          | Root part of the configuration dialogues
│   ├── compiler_config.tcl                          | Assembler and compiler configuration dialog
│   ├── custom_commands_config.tcl                   | Configuration of user defined commands
│   ├── editor_config.tcl                            | Source code editor configuration
│   ├── global_config.tcl                            | "MCU 8051 IDE configuration dialog"
│   ├── rightpanel_config.tcl                        | Settings for the right panel
│   ├── shortcuts_config.tcl                         | Configuration dialog for key shortcuts
│   ├── simulator_config.tcl                         | MCU simulator configuration dialog
│   ├── terminal_config.tcl                          | Configuration of embedded terminal emulator (urxvt)
│   └── toolbar_config.tcl                           | Configuration of the main toolbar
├── custom_command.tcl                               | Implementation of user defined commands
├── dialogues                                        | Various GUI dialogues commonly used in the IDE
│   ├── errorhandler.tcl                             | Reports internal program errors, bugs in the IDE
│   ├── fsd.tcl                                      | File selection dialog
│   ├── my_tk_messageBox.tcl                         | Replacement for tk_messageBox
│   ├── selectmcu.tcl                                | Dialog for MCU selection and tools for reading "database" of supported MCUs
│   └── tips.tcl                                     | Dialog "Tip of the Day" along with every functionality whit the dialog needs, see also file data/tips.xml
├── editor                                           | Built-in source code editor with all its components including support for external embedded editors like vim, etc.
│   ├── editor.tcl                                   | Root component of the editor
│   ├── autocompletion.tcl                           | Auto-completion and dynamic generation of table of symbols used in the code
│   ├── commandline.tcl                              | Editor command line
│   ├── eventhandlers.tcl                            | Handlers for GUI events in the editor
│   ├── exports.tcl                                  | Export to XHTML and LaTeX
│   ├── generalproc.tcl                              | General functions used by or provided by the editor
│   ├── spell_check.tcl                              | Interface to the spell checker used by the IDE, Hunspell
│   ├── ASMsyntaxhighlight.tcl                       | Syntax highlight for assembly language
│   ├── Csyntaxhighlight.tcl                         | Syntax highlight for C language
│   ├── LSTsyntaxhighlight.tcl                       | Syntax highlight for code listing
│   └── R_ASMsyntaxhighlight.tcl                     | Syntax highlight for SDCC generated code for relocatable assembler
├── environment.tcl                                  | Root component of the entire GUI
├── external_command.tcl                             | Interface for communication with an external program, like compiler or bash
├── leftpanel                                        | Left panel in the main window
│   ├── filelist.tcl                                 | Root component and tab "List of opened files" and tab "List of project files"
│   ├── fsbrowser.tcl                                | Tab: File system browser
│   └── sfrwatches.tcl                               | Tab: SFR watches
├── lib                                              | Things useful for this IDE and written for this IDE
│   ├── hexeditor.tcl                                | Hexadecimal editor
│   ├── ihextools.tcl                                | Tools for manipulating with Intel 8 Hex files
│   ├── innerwindow.tcl                              | Implementation of MDI (Multiple document interface) in the IDE, for instance "Base Converter" tool use it
│   ├── Math.tcl                                     | Conversions between numeral systems and angle units in floating point arithmetic
│   └── settings.tcl                                 | Manipulation with IDE configuration file
├── list_of_files.txt                                | This file
├── maintab.tcl                                      | Root component the GUI representing one opened project ...
├── main.tcl                                         | Main file of the entire IDE
├── pale                                             | "PALE" stands for Peripheral Abstraction Layer Engine, which essentially means nothing, but it implements the "Virtual HW"
│   ├── pale.tcl                                     | The PALE. This simulator component implements MCU simulation from point of view of electrical device
│   ├── virtual_hw_component.tcl                     | Base class for all "Virtual HW" instances
│   ├── leddisplay.tcl                               | Single LED display
│   ├── multiplexedleddisplay.tcl                    | Multiplexed LED display
│   ├── ledmatrix.tcl                                | LED matrix
│   ├── ledpanel.tcl                                 | LED panel
│   ├── simplekeypad.tcl                             | Array of buttons
│   ├── matrixkeypad.tcl                             | Matrix keypad
│   ├── lcd_hd44780.tcl                              | Simulator of LCD character display controlled by HD44780.
│   ├── hd44780_cgrom.tcl                            | Font definitions for HD44780 display driver simulator
│   ├── ds1620.tcl                                   | Simulator of DS1620 digital thermometer
│   ├── virtual_uart_term.tcl                        | Simulated UART interface
│   └── file_interface.tcl                           | File R/W interface to PALE
├── project.tcl                                      | Manages project files (extension .mcu8051ide), writing to them and reading from them
├── rightpanel                                       | Right panel in the main window
│   ├── rightpanel.tcl                               | Root component of the panel
│   ├── hwmanager.tcl                                | Tab: "Hardware plug-ins manager"
│   ├── instructiondetails.tcl                       | Tab: "Instruction details"
│   ├── regwatches.tcl                               | Tab: "register watches"
│   └── subprograms.tcl                              | Tab: "Subprograms monitor"
├── simulator                                        | MCU Simulator
│   ├── engine                                       | Simulator engine
│   │   ├── engine_auxiliary_alo_functions.tcl       | Auxiliary ALO functions
│   │   ├── engine_backward_stepping.tcl             | Backward stepping related procedures
│   │   ├── engine_control.tcl                       | Control procedures
│   │   ├── engine_core.tcl                          | Simulator engine core
│   │   ├── engine_external_interface_management.tcl | External interface management procedures
│   │   ├── engine_hibernation.tcl                   | Hibernation related procedures
│   │   ├── engine_initialization_cleanup.tcl        | Initialization & cleanup related procedures
│   │   ├── engine_instructions.tcl                  | Instruction procedures
│   │   ├── engine_mcu_configuration.tcl             | MCU configuration related procedures
│   │   ├── engine_memory_management.tcl             | Memory management related procedures
│   │   ├── engine_opcodes.tcl                       | Opcode procedures
│   │   ├── engine_text_based_interface.tcl          | Command line interface for the simulator engine
│   │   └── engine_virtual_hw_controller.tcl         | Virtual hw controller procedures
│   ├── simulator.tcl                                | Main part of the simulator
│   ├── hibernate.tcl                                | Program hibernation functionality
│   ├── bitmap.tcl                                   | GUI tool: Bit addressable area viewer
│   ├── interruptmonitor.tcl                         | GUI tool: Interrupt monitor
│   ├── sfrmap.tcl                                   | GUI tool: Map of SFR area
│   ├── simulator_gui.tcl                            | GUI tool: Main simulator panel (displayed on the bottom panel)
│   ├── stackmonitor.tcl                             | GUI tool: MCU stack monitor
│   ├── stopwatch.tcl                                | GUI tool: Stopwatch timer
│   └── uart_monitor.tcl                             | GUI tool: Monitor of simulated UART operations
├── utilities                                        | Other GUI tools which might be useful during the development for 8051
│   ├── asciichart.tcl                               | ASCII chart viewer
│   ├── table_of_instructions.tcl                    | Interactive table of 8051 instructions
│   ├── baseconverter.tcl                            | Base converter
│   ├── eightsegment.tcl                             | 8-segment editor
│   ├── hexeditdlg.tcl                               | Project independent hexadecimal editor
│   ├── notes.tcl                                    | Scribble notepad
│   ├── rs232debugger.tcl                            | RS-232/UART debugger
│   ├── speccalc.tcl                                 | Special calculator
│   └── symbol_viewer.tcl                            | Assembly language symbol table viewer
└── X.tcl                                            | Well ... a little of everything, callback functions for the main menu, etc. dialogues like "Find", "Go to" and "Replace" and so on ...

--------------------------------------------------------------------------------

12 directories, 133 files
135k lines of code, 4.1M of source code
