As the developer of the Projector-3 graphics viewer one thing I had to consider was the constant requests for features from the CoCo audience. I also wanted to make it possible for users to add decoders and encoders to the system by copying module files to the boot disk. I might as well let them drop in commands as well, right? P-3 progressed into sort of an operating system that allows subprograms to be loaded separately whenever they’re needed.
CODEC modules are responsible for reading the contents of a target file and doing something with the contents. A graphics codec reads the target file and converts the data into a stream of colors that are sent to the Array Driver for rendering and other processing. An audio codec might open a music file and generate a stream of sound through the CoCo’s speakers, although nothing was released for this feature. A command module is loaded when an ALT-key sequence is pressed in the shell/GUI, calling on an external program to take over temporarily. Because each module of the system needs to be assembled using the P-3 definitions file there is a global awareness of many components of the system.
The complete source code for projector-3 is available in the Phoenix IDE as a project you can build with one click. Feel free to use this system to upgrade the viewer or to help create your own software or GUIs.