X16 Assembly Environment
assembly programming on the Commander 16 computer
When David Murray ("The 8-Bit Guy") envisioned the X16 he was thinking of including a "Super Monitor". This would allow a programmer to interactively enter assembly instructions and debug the program within a single environment. The result of this is X16 Assembly Environment (X16AE for short, although the name may change in the future). The intention is to enable a programming experience that is as interactive as BASIC.
I'm a veteran software engineer and enjoy messing around with old and modern computers. When I'm not writing code, I'm either sailing or working on home maintenance.
You can contact me regarding this work at: firstname.lastname@example.org. - Mike Allison
Design Goals (and anti-Goals)
The X16AE is intended to:
- Allow interactive entry of instructions
- Support for labels and symbols
- Pre-load symbols for the X16 kernel calls
- Traditional monitor capabilities
- Examine memory and code listings
- Watch specific values
- Run, break, step, and stop execution of your program
- Load and save (binary and text)
The X16AE is not intended to:
- Be a full scale assembler
- Very complex assembly time expressions not supported
- No relocatable objects (e.g. no linker capabilities)
- Full assembler functionality (e.g. macros)
This rough map will provide you with some idea of the implementation versions:
- 0.4 - UI test, early feedback from testers
- 0.5 - Step & Break functionality, support display modes, refactored instruction decoder, support emulator R34
- 0.61 - Interactive entry of instructions, save functionality
- 0.7 - Save, code relocation, data statement entry, show breaks, support other drives.
- 0.8 - Preload X16 symbols, provide code / data range limits to view.
- 1.0 - In ROM ship with units.
Possible future extensions, but not planned for 1.0 (not committed by development team):
- Standalone assembler module
- Callable from BASIC, in some form.
- ISO character mode.
- Native basic assembler, run from disk to have native development possible.
- You should make this open source!
- Yes, it will be, once we've realized David's vision
- I've got some code for you to include...
- Great! Let's talk, once it's been open sourced.
- I don't understand what this opcode does
- Good news: There are lots of excellent 65c02 tutorials on the interwebs
- How come it doesn't work with the 65816?
- Future option, we're keeping our options open.
- Why do you use Acme assembler?
- This is what several of us use, and was chosen for compatibility.
- Support to save in other assembler variants could be done in the future.
- I'm ready to start messing about
- Click the link to select a versions (above) and read more there.