Computer architecture for CRISS CP/M
Please note that it is Google-translated text, sorry for the inconinience!
The general premise of the development: to make a simple computer with a classical architecture, easy to repeat even at home, but at the same time possessing all the properties of a computer. The real possibilities of such a device, in fact, are not so few.
As a computing base, a line of microcontrollers of the AVR family (Atmel / Microchip) was chosen, as a reliable and honest 8-bit platform, the interfaces are implemented on the basis of standard specialized microcircuits.
The computer is built according to the standard scheme: the central processor is implemented on the basis of the ATMEGA1284P MK, the peripheral controller on the ATMEGA328 MK, the VGA controller on the two ATMEGA328 and ATTINY14 MKs, the Ethernet controller on the specialized ENC28J60 microcircuit (Microchip), the real time clock on the DS1305. External RAM 64Kx8 type W24512 (Winbond). Internal SPI bus.
The computer is powered directly from a 230 V 50 Hz household network from a modular converter installed on the board. As a result, no additional power supplies are needed.
System RAM is designed as a separate 64K 8-bit static RAM chip. It seems a little, but expanding RAM for "non-gaming" tasks does not make much sense: 64 KB is quite enough for the CP / M software to work, there are no difficulties with choosing pages, and besides, this computer actually has much more memory at the developer's disposal than on standard CP / M device.
A standard SD card drive is used for data storage. The SD-storage controller supports all types of cards, the data is recorded in the form of floppy disk images through a special program.
For convenience, the board has a real-time clock with a backup battery.
The external device controller solves the following tasks:
- work in an external COM-port RS-232 (through a level converter);
- formation of the AF signal of a one-tone synthesizer of melodies;
- work with a standard PS / 2 keyboard;
- work with optional external devices of the GPIO block;
An external RS-232 COM port can be used to connect a serial printer.
The keyboard is used as standard with a PS / 2 interface, all standard functions and two alternative layouts (RUS and LAT in the basic version) are supported.
Support for GPIO (General Purpose I/O Block) is provided through an external expander block, in total up to 128 I/O channels can be implemented without cascading and 8 times more when using a specialized multiplexer.
For the displaying a video controller (VC) is implemented in the device, which operates in full compliance with the Industrial VGA standards, generates a monochrome (green on black background) image of constant brightness, supports the output of alphanumeric information up to 25 lines of 80 characters each, pseudographics 160 * 96 points, hardware cursor display. VK supports up to 6 fixed character generator tables.
This option is optimal in terms of simplicity / functionality: full-fledged graphics requires a large amount of video RAM and requires more to display special characters ("Microsha" is immediately remembered), which in this case is decided by several tables of the ZG, and monochrome, in fact, is strong simplifies the programmer's work while reducing code and improving productivity. For a simple computer, just what you need.
All external devices are conveniently connected via external connectors.
The central processing unit (CPU) is based on the ATmega1284P (Microchip) MCU with a software emulator of the Z80 microprocessor (Zilog) microprocessor command system and combines the functions of a microprocessor, an SD card storage controller with DMA, an Ethernet controller software with DMA, etc. tasks.
The Z80 microprocessor emulator executes instructions in the amount of officially documented commands with minor additions. The task of accurately reproducing the behavior of the Z80 processor was not set; the task was to ensure the operability of standard programs for the CP / M OS.
The speed of execution of operations of the "write register - register" type is 1 μs, which is equivalent to the speed of the Z80 processor at 4 MHz, which is its standard frequency. And many computers even ran at 2.8 MHz. Therefore, the computer provides sufficient performance for comfortable work for the corresponding software.
The emulator correctly executes all Z80 Instruction Exerciser tests in the zexdoc scope.
To ensure comfortable operation, there is a layer of ensuring "hardware" compatibility at the level of I / O ports and codes of characters and keyboard, due to which most programs for Robotron 1715 and Kaypro II run on the computer. Support for other platforms can be easily added. CP / M OS version 2.2 is currently supported.
For a detailed description, see the magazines Radio Nos. 1-3 for 2021.