It will consist of the following parts:
- processor in the spirit of the #1 Square Inch TTL CPU
- a simple ALU (described here)
- some address registers (described here)
- at least 256 KByte RAM
- flash-ROM for booting
- VGA video
- PS/2 keyboard input
- user-accessible I/O pins (footprint of Arduino shield)
- a sound system
- serial flash (16 or 32 MByte) for storing all your programs.
- Mode 1, 640 x 480 bitmapped pixels, color. Gives at least 80 x 25 text capability.
- Mode 2, 320 x 240 (or 320 x 480) bitmapped pixels, color, dual layer.
Mode 1 is described in this log.
Mode 2 has two layers, (foreground and background), enabling sprites (see this log).
Video mode 1 or 2 can be selected per line.
Support for fast vertical scrolling.
number of colors: 128
At this moment, the idea is that the CPU and the video part will operate quite independent. The CPU might even be a separate pcb that is placed on top of a "motherboard", that has the memory, video and other I/O.
The instructions will be implemented in microcode (defined HERE). There will be two main instruction sets:
- The native 16-bit Kobold instruction set has highest execution speed and very good code density. The instructions are similar to 68000 and PDP-11 instructions and can handle 8, 16 or 32 bit data size. The instructions can access 1 MByte of memory.
- The K11 instruction set will be binary compatible with the PDP-11 instructions. It is kept in mind, but will only be given full attention after most other goals are reached. It might become a separate project.
The microcode can be easily reprogrammed with a Raspberry Pi as programmer (just as with the 1 Square Inch TTL CPU ). The microcode Flash is large enough to accomodate a lot of microcode.
The CPU will probably be around 35 TTL parts and a microprogram Flash.
A Raspberry Pi can be connected, that can read or write files from or to the serial flash of the Kobold.
When enough supporting software is in place, the programs for Kobold can be developed on the device itself, perhaps first in BASIC and later in C.
- design the CPU
- pcb design of CPU with thru-hole components
- design the motherboard
- pcb design of motherboard
- some simulations
- order boards, and assembly
- hw fault finding
- build an assembler and programming software
- pcb design of a small Kobold CPU in SMD version
- build or adapt a C compiler
- make system software. Might adapt an OS.
This is a work in progress, the logs will show the design steps....