Low Level Developer Tools

From C256 Foenix Wiki
Jump to navigation Jump to search


Foenix IDE

The Foenix IDE is a full-featured emulator and board manager tool written in C#. The bulk of the Foenix IDE is an emulator of the C256 Foenix which emulates several key systems of the C256 and allows for breakpoints in the code, examination of memory, and so on. The IDE can also connect to the physical C256 through the USB debug interface. It can use the interface to upload data from a BIN file, an Intel HEX file, or the IDE emulator's memory into the C256, download memory from the C256 into the emulator's memory to be examined through the IDE, or to reprogram the C256's flash memory. Although a GUI application by default, the IDE can be used as a command line tool. The IDE also includes a character set / font editor tool, allowing you to design your own characters to use in your C256 programs. The source code for the IDE as well as the latest binary can be found at: https://github.com/Trinity-11/FoenixIDE.

64Tass

Although any assembler that can produce 65816 code can be used to write code for the C256, the kernel, BASIC interpreter, and much of the sample code are written using 64Tass, which can be found at: https://sourceforge.net/projects/tass64/.

WDC816CC

Assembly seems to be the language of choice. But for those looking for something more portable, WDC provides a C-compiler. It's not necessarily more easy to use than assembly as Foenix programming is very close to the metal and it has some quirks. But if you have any skill using C on other platforms it will make you feel right at home and it does not require you to learn 65816 specific opcodes. Good assembly will always be the better performer however. You can even mix both if you want to. For some pointers on using the compile see C-compiler use

The Monitor

The bundled C256 BASIC816 includes a monitor; simply type MONITOR <ENTER> at the READY prompt!

The commands are as follows; see the sources for more details:

Cmd Command Params
A ASSEMBLE [Start] [Assembly code]
C COMPARE Start1 Start2 [Len (1 if blank)]
D DISASSEMBLE Start [End]
F FILL Start End Byte
G GO [Address]
J JUMP [Address]
H HUNT (find) Start End Byte [Byte]...
L LOAD "File" [Device] [Start]
M MEMORY [Start] [End]
R REGISTERS Register [Value] (A 1234, F 00100011)
S SAVE "File" Device Start End
T TRANSFER Start End Destination
V VERIFY "File" [Device] [Start]
X EXIT
> MODIFY Start Byte [Byte]...
@ DOS [Command] Returns drive status if no params.
? HELP Display a short help screen