Signetics 2650 & 2636 programming/WinArcadia

WinArcadia is a multi-emulator, assembler, disassembler and debugger for a large range of 2650-based video game consoles, arcade machines and computers. It has many features and we will limit our discussion to the basics that will enable Interton/APVS programmers to get started using it. The built in Help menu is equally extensive. Further examples of its use will be shown in the Tutorials, particularly with reference to the debugger.

Download and install
WinArcadia can be downloaded from https://amigan.yatho.com/#software. It should be unpacked from its RAR format and the files and folders moved to a folder of your own naming. Here it shown in a desktop folder WinArcadia. From here the .exe file can be pinned to the taskbar or a shortcut can be placed on the desktop. You should also make a new folder in this directory called Projects. This sub-directory is where the assembler will look for files to assemble.

Set up
The Options menu leads to a few items that need to be set up. There are many others to explore, but these should be sufficient to get started:

The Machine option leads to a list of all the machines that WinArcadia can emulate. For our purposes select Interton VC 4000.

The Left and Right controller options allow you to select between mouse/trackball, gamepad or keyboard. If the keyboard is chosen, the Input and Redefine keys will show which keys are mapped to certain functions and allows them to be changed if desired.

Play
Dumped ROMs of most, if not all, known cartridges are available for download at Emerson Arcadia 2001 Central, amigan.yatho.com. Look in the Packs section and download the Games link. This has games for many machines, so look for the Interton folder. This has the binaries of all the cartridges, and they can be run on WinArcadia using the File, Open menu option.

For information about each game, and links to manuals where they are available, use the Help > Gaming Guide....

Assemble
To assemble a program, it should be saved in the Projects file with the .asm extension. Simply type asm filename in the command line at the bottom of the WinArcadia window. A new window will open and tell you if the assembly was successful of if there were errors. In the screenshot shown here, the tutorial Programming Colours has been successfully assembled and the program automatically run.

Debug
The WinArcadia debugger allows the programmer to track the execution of their program and examine the state of variables, processor status, and PVI registers. Some of the more common commands are listed here, but a full list and instructions can be found within WinArcadia (Help > Manual > Debugger).


 * Pause / Unpause
 * View CPU / PVI / RAM
 * Set / Clear Breakpoints and Watchpoints, which may be conditional
 * Step next instruction
 * Trace execution
 * Run to:
 * end of loop
 * end of subroutine
 * next interrupt
 * next rasterline
 * next frame
 * Step over subroutine
 * Examine memory addresses
 * Change memory addresses
 * Generate an interrupt

A breakpoint is triggered when the Instruction Address Register (program counter) reaches the breakpoint address. A watchpoint is triggered when the specified address is accessed.

The screenshot here shows the output of the debugger as it steps through three instructions as indicated by >s in white. For each instruction, the following information is shown:
 * the instruction, clock cycle count, the number of clock cycles the instruction will take to run, the number of bytes in the instruction, the instruction address and the code byte(s).
 * a description of the instruction
 * the state of the processor upon completion:
 * the new clock cycle count, value of registers R0, R1, R2, R3 and PSU
 * X and Y coordinates currently being output to the screen (negative values of X mean the horizontal blanking period), registers R4, R5, R6 (the second bank of R1, R2, R3) and PSL
 * the eight values stored in the Return Address Stack, and the Instruction Address Register.
 * information about the next instruction

In the last instruction shown here, an unconditional return from subroutine, notice how the third item in the Return Address Stack is transferred to the Instruction Address Register, and the Stack Pointer (SP in the PSU) is decremented.

Settings
There is a multitude of settings in WinArcadia and some may cause the emulator to behave in unexpected ways. Here is a list of some of them and their effect.