Now it’s time to start making some decisions for the 8-bit computer. One of the hardest decisions is what CPU to use, because any option would leave out half of the potential coders. Most of the coders with asm abilities are skilled in only one of the two most popular processors, the 6502 or the Z80 depending on what region they grew up or with which machine they started coding.
But, if there are no production costs involved, why not including both processors? YES! The idea is not something too radical, in fact, that is what the C128 designer(s) did. They put a 6502 for C64 compatibility mode and a Z80 for the ones that wanted to use the new video chip and run productivity apps based on CP/M. They booted with any of the two processors each time the computer was turned on.
So this will be the same. The computer will be started with one of the two processors, but the rest of the architecture will keep the same. So one will be able to code in the assembly that feels more familiar and the audio and video hardware, bank switching, input/output will be the same for all the programs running on this computer.
This open a window where the computer that you learned how to code will not matter, you will be able to quickly start programming on this new computer using the tools that already exists and you are familiar with. And more interesting yet… people will be able to easily port existing games as they did in the early days between computers that shared the same CPU type. It will be like porting games between Atari and C64 (6202) or between MSX, Spectrum and Amstrad (Z80).
Kernel / Basic
Given that the system is targeted to games mainly, there will be no need to have compatibility with printers or strange I/O devices, so at least at the beginning the operating system will be minimalist.
The operating system will boot the system and do these tasks:
- Audio initialization
- Video initialization
- Handle the interrupts: scanline interrupt, vertical interrupt, NMI interrupt and others that may be required.
- Handle input / output operations with the storage (SD card).
With a minimalist system like this there will be plenty of free RAM, and at the same time it shouldn’t be hard to make the two versions required because of the dual CPU availability.
In a following stage, more functions could be added. These will be oriented to help implement programming languages like: text display, math operations (division, multiply, trigonometric), line drawing and more. These functions will be called by the BASIC language written for each processor.
A similar criteria is applicable to the video modes. Why create a whole new system if we can take the best of every chip and with this, making it easier to port an existing game to the new system. Something similar was made with the MSX where there was a video mode similar of what the Spectrum had, then if there were no enough resources to make a full port to MSX, they just took most of the Spectrum code and used this video mode. It wasn’t the best in any case, but now this could be done as a first approach to have a game working and later move from there to adapt it to the new hardware.
Here the Display Lists idea from Atari has an important role. These are a set of instructions that the video chip reads to create the display line by line. This instructions allow the developer to mix several video modes, several color palettes, several scroll positions and several sprites per line. For example if we want to create a game with tiled graphics, smooth scrolling and at the bottom of the screen have a score / energy display but using a bitmap mode with another color palette, it can be easily done with a display list.
This new computer will have video modes that are compatible with the computers that already exist and it will also add new more powerful video modes, and they will be allowed to be mixed on a same screen using the display lists.
Proposed name: CLC-88 Compy
With the title on this entry you already know that this 8 bit computer has a name: CLC-88 Compy. One can’t say that the name is what a work of creativity (*) but I think that it represents very well the idea that first, this is an 8 bit computer and second, it is a computer that could have been designed in 1988. The CLC prefix comes from Catrin Labs Computers and at the same time it is the famous CLear Carry instruction of the 6502 that you have to use before start adding numbers.
For the 16 bit computer – if it is done one day – it will follow a similar logic with CLC-92 Compu. In this case it doesn’t say anything about 16 bit, but it is a computer that could have been designed in 1992. Also these computers were hybrid 16/32 bits so using the number 16 would not make enough justice… I came with this just after writing this, in reality I only wanted to use the number 92, but it sounds plausible!
(*) “No es que bruto que original el nombre” in latinamerican spanish