Project Machine Extensible: Extensiblity, Backward Compatibility and I/O
The so-called "simple" 8-bit machine actually isn't purely 8-bit—it has the potential to be extended with add-ons or expansions. In its original design, which is known as the MX architecture, there's a register called the DAR (Device Address Register). This register was defined, but it wasn't actually used in the basic version of the system, this is where we use it.
eXtensible Access Interface (IAX)
In the MX architecture, the extensions work by essentially taking control away from the main unit. This helps cut down on the overhead on the main ROM that holds the system’s instruction set (ISA), because each extension comes with its own ROM containing its specific instruction set or some other way to interact with the system. To choose which extension to activate, the system uses the DAR. A value of 0 in the DAR is reserved for the main unit, while other values select the different extensions(a total of 255 unique extensions). Additionally, the DSEL instruction is used to pick the specific device or extension you want to work with, by referring to the value stored in the D register within the architecture.
This allows programmes for the extensions to be written with the main application. Since, these extensons can be separate entities from the main unit, you could, in theory have another processor as an extension. This solves 2 problems, first the extensions are no longer architecture dependend and second, I can just add the older architecture as an extensions to newer architecture, backward compatibility.
领英推荐
All extensions have the access to the register bank and can access values as well as write then. Extensions need to have some method to set the value of D to 0 to send control back to the main unit.
Extensible I/O
Since extensions are indepnedent of the architecture, anything can be an extensions, which also includes I/O devices. What that means you can possiblie have a programmatic approach to I/O devices. This can be really great for network architecture, video and audio devices and anything that relies on interrupts, they can now be controlled by programmes rather than a memory map. I still haven't thought why that would be usefull but it seemed cool to that you could control paramaters your display from a prgramme rather than writing something at a memory location.