I realize that it is long and quite boring to describe every function, method and property for the program's components.
My choice is thus to illustrate here only some basic aspect, leaving to a possible user the job to contact me for additional informations.
|Label||optional||can be up to 8 characters long, with letters and numbers; the first characted must be a letter|
|Mnemonic||Mandatory||a 6502 instruction mnemomic (3 letters) or a directive (*)|
|Operand||optional||a string in addressing format (including labels)|
|Comment||optional||must begin with a ';' character; can start in any position|
This is the Emulator window where the program execution is controlled and displayed.
Furthermore, a set of buttons control which others windows are visualized and whether or not their contents must be updated.
Execution can be in free running or step-by-step mode.
A number of information are updated and displayed for each instruction executed (CPU registers, number of cycles and instructions, instructions per second and average value)
The I/O panel presents a number of interactive controls:
8 switches, 2x8 Leds, 2x4 digits 7-segments display, 2 sliders (0..255 range) with dec/hex dispkay, a 64 keys keyboard with associated display.
Note: each switch, led, counter and slider has a tooltip string associated (saved with the code), to show the meaning assigned.
The key pressed on keyboard save the corresponing value within the Keyboard buffer area located at address $0200 to allow the program to read them.
A separate area (controlled by a specific menu button) presents the 'monitor', a display of 16x16 characters, stored in RAM starting at address $F400, with associated colors starting at $F500. Each characted can have a different color and can be in normal (char code <127) o reverse mode (char code >127).
Few buttons allow to clear the screen, refresh it, set the foreground and background color and perform a self-test.
This windows shows the content of the entire RAM, splitted into 256 pages (a 256 byte window).
The shown page can be selected by using an Up/Down control (the two arrows), a slider or some speific areas buttons (i.e. program space, input buffer,...)
A separated 16 bytes frame shows the last Stack contents, useful to debug the routine calls.
The window can be updated for each executed instruction.
Here are shown all the declared variables, with their dec/hex value and address.
a double click on a row allows to set/reset a program breakpoint for [none, = , NOT = , <, > ] condition.
Note: an unconditional breakpoint can also be set inside the Main window clickin on the left of each row.
The windows in only an auxlium to remember which address is assigned to a pre-define kernel name (label).
The first tab lets select some program option.
The important point is the ability to select a different, custom, defintion file with a personal list of labels and valude, should one frequently uses his own scheme.
Set the colors used by the program editor. Almost self-explanatory
Set the colors and variants used to draw the I/O controls. Almost self-explanatory