Commander X16: Philosophy and Specification – Pagetable.com
Philosophy and Specification – pagetable.com

			I recently got involved in the Commander X16 project. I would like to give an overview of the project and the vision behind it from my perspective.

The Commander X16 is a new 8 bit computer designed by David Murray of the well-known “The 8-Bit Guy” online video channel.
8 bit computers are great for learning about computer architecture, because they are simple enough that they can be fully understood, and they are great for learning to program, because they boot straight into a programming language. But 8 bit computers also have some annoyances like cheap, non-standard keyboards, TV-out and the reliance on floppy disks (or rather expensive SD card adapters).
Therefore, David is designing  a new 8 bit computer in the style of Commodore computers like the VIC-20 and the C64, fixing the annoyances of retro computers by having:

VGA output (in addition to composite)
support for standard PS/2 keyboards (instead of a cheap built-in keyboard with a non-standard layout)
SD card for storage (instead of an additional floppy drive)
RS232 port for efficient cross-developmment
efficient modern power supply

Another problem with retro computers nowadays is the high barrier of entry when developing (semi-)professional software: Since retro computers have been researched for almost 40 years, standards for software are very high. Any credible new game release for the C64 for example will have to come with a fastloader to overcome slow load speeds, and a sprite multiplexer to overcome the 8 sprite limit. The X16 ROM supports fast loading from SD card, and its video chip supports plenty of sprites as well as hardware scrolling of bitmaps. The memory map is kept simple and does not need (or support) complex reconfigurations.
With a rather modest set of hardware features, the X16 targets a lower price point than most comparable projects.
These are the original videos on the topic:

The 8-Bit Guy: My dream computer – Part 1
The 8-Bit Guy: My dream computer – Part 2

Hardware
These are the hardware specs:

65C02 CPU at 8 MHz
40 KB of main RAM
512 KB (or 2 MB) of banked RAM
128 KB of banked ROM
VERA video controller

16-bit class
128 KB of external video RAM
640×480 (or 320×240) pixels
256 colors out of 4096
2 layers supporting tiled and bitmap modes
128 sprites (limit per line based on memory bandwidth)


sound TBD
two 6522 VIA I/O controllers

The computer supports the following connections:

VGA (480p), or Composite/RGB (480i)
PS/2 keyboard
PS/2 mouse
two NES or SNES controllers
SD card
legacy IEC
RS-232

The X16 is not an FPGA-based solution, but uses real, socketed 65C02 and 6522 chips for the same hackability as a retro computer. The video chip is a new design and comes as an FPGA.
Software
From the software side, the Commander X16 feels like a Commodore computer. Its ROM contains the “KERNAL” operating system derived from the C64 version, as well as an enhanced version of Commodore/Microsoft BASIC based on V2.

Consequently, the X16 can be considered a sibling of the computers from the Commodore 8 bit family (PET, VIC-20, C64, CBM2, Plus/4, C128 and C65). It is not meant to be fully compatible with any of these machines, but it is as compatible as a Plus/4 is with a C64: BASIC programs without PEEK and POKE as well as machine code programs that only use the documented KERNAL API (e.g. BSOUT $FFD2) will just work, but existing code that accesses hardware would have to be ported.
The fact that the X16 breaks compatibility with the C64 is what I find particular interesting. Most retro projects try to recreate a classic computer. Users will start their favorite two games and then get bored. The X16 is a new system, with new tricks to discover – but familiar to people who know the C64.
Development
As of October 2019, only a handful of prototype machines exist. If you don’t want to wait for the release hardware, you can use the emulator:
https://github.com/commanderx16/x16-emulator/
There are binary releases for macOS, Windows and Linux on the GitHub releases page, which always include the latest build of the ROM.
The ROM is being developed as open source:
https://github.com/commanderx16/x16-rom/
The reference guide is worked on as an open source project as well:
https://github.com/commanderx16/x16-docs/
And here is a collection of demo/example code contributed to by many people:
https://github.com/commanderx16/x16-demo/
The official forum is unfortunately hosted on Facebook, but there is a lot going on: Users show off programs they have written and discuss programming questions. There is also a forum on David Murray’s website.
The official forum is at commanderx16.com, with people discussing programming questions and showing off new programs.
		