Program architecture
As with any good (!) Integrated Develepment Environment the user must be able to start a new project writing
the source code, assemble it and finally execute it, possibly with some sort of visual aid of what is happening.
This is how my project was implemented. It is based on three major sections, which are the Editor/Assembler
, the Simulator and the I/O Panel & Monitor.
The complete process starts writing a text source code with the Editor and then assembling it with the Assembler (in the same
module) which generates some files, one of which is the executable.
The executable, loaded in the Simlator window, runs and interfaces with the I/O panel
The graphic appearence is highly customizable using the Option Panel; preferencies and IDE variables are stored before
quitting the program.
Directories
The program expects to find the necessary files in the following directories which must reside in the
same program (VBP or EXE) directory:
- Resources - contains pictures used to build the program
- Includes - contains the tables and the common labels definitions
- Aux prog - some utility programs (mainly, a kernel label building tool)
- Sources - stores the sources text files
- Codes - stores the executable files generated by Assembler
- Tables - stores the auxiliary files generated by Assembler
Files
The IDE uses and produces a number of files types with these associations:
- .TXT - source files inside Sources
- .HEX - executables produced by Assembler and used by Simulator
- .LST - listing of the assembled file; useful to print for documentation
- .ASS - working files used by Assembler (quite a sort of metalanguage); not to care about
- .TBL - list of defined labels; not to care about
- .VAR - list of defined variables; not to care about
- .TIP - list of defined tooltips; not to care about
Alternative to the Editor
The source files are standard text documents which can be created with any text editor.
To respect the format expected by the Assembler, the user must only follow these guidelines:
- LABELS: must start at the very first position (no blanks allowed before)
- COMMENTS: are recognized by a trailing ';' (semicolon) - they can start anywhere
- INSTRUCTIONS and OPERATOR: there must be 1 blank space (at least) separating the preceeding text
- END: this keyword directive must be present at the end of source code
Performance
Despite of being written in VB, and possibly not very optimized, the execution speed is quite good.
On my Pentium IV 2.4GHz, the compiled version runs at about 500 I/Sec (Instructions per second) with I/O enabled (and used);
disabling the main windows animation (program tracking), it reaches about 32K I/Sec; disabling even the I/O window (which
disables the Memory Map and Variables refresh too), it arrives at about 150K I/sec.