Program windows

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.

Editor / Assembler window

Here is where you can load an existing program or start a new one to generate the assembled code.
The sources, stored in the source Folder, are in plain text, with each field automatically padded with blanks. Every row is composed by 4 fields: Label, Mnemonic, Operand and (optional) Comment:
Labeloptionalcan be up to 8 characters long, with letters and numbers; the first characted must be a letter
MnemonicMandatorya 6502 instruction mnemomic (3 letters) or a directive (*)
Operandoptionala string in addressing format (including labels)
Commentoptionalmust begin with a ';' character; can start in any position

Click any immagine to zoom in

Main window

Main Window

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)

Editor / Assembler windoww

I/O Panel

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.

I/O window

Monitor window

Memory Map window

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.

Memory Map window

Variables watch and breakpoints

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.

Variables window

Kernel Window

The windows in only an auxlium to remember which address is assigned to a pre-define kernel name (label).

Kernel window

Option Window 1

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.

Option window - page 1

Option Window 2

Set the colors used by the program editor. Almost self-explanatory

Option window - page 2

Option Window 3

Set the colors and variants used to draw the I/O controls. Almost self-explanatory

Option window - page 3

Option Window 4

Allow to associate a description (tooltip) to every I/O control

Option window - page 4