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 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 (i.e. colors and tips) and IDE variables are stored in the 'ASMSIM.ini' file before quitting the program.
The program expects to find the necessary files in the following directories which must reside in the
same folder of program (VBP or EXE) directory:
The IDE uses and produces a number of files types with these associations:
The program accepts all the 6502 mnemonic codes and translate all this instructions but the 'SED', 'CLD', 'SEI' and 'RTI'.
These will not generate any code.
These are accepted directives:
The program recognizes the following operators inside an addressing scheme or label definition
(here blank separated for clarity): * $ , ' # < > + - ( X Y )
The '*' means 'current address'
The '#' means 'decimal value'
The '< >' mean 'lower byte' and 'higher byte'
Inside the 'Includes' folder there is a file called 'Kernel.txt'; this is text file with some common labels and addresses.
The ones beginning with 'IO' refers to the IO Panel elements (i.e. leds and switches); your program can access these elements by mean of their defined names.
(see the example)
Other important definitions, beginning with 'k' are for routines executed by your host (not the emulator) to speed up the execution (i.e. 'kPrint' or 'kInput')
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:
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.