Amstrad Schneider CPC
CPC KC Compact (clone)
ams_compactc

The KC Compact 464 clone

The KC Compact is technically not an Amstrad CPC computer, but a soviet era clone. As electronics was hard to get by in the Soviet Union, companies reverse engineered existing architectures from the west and cloned them. The KC Compact is architecturally similar to the CPC 464 and runs almost all of the 464 software without a problem. The biggest difference is that the KC Compact did not come with a built in tape recorder and the user had to provide one for loading games and other software.

Amstrad CPC Computers

Amstrad was known for cheap hi-fi products but had not broken into the home computer market until the CPC 464. Their consumer electronic sales were starting to plateau and owner and founder Alan Sugar stated "We needed to move on and find another sector or product to bring us back to profit growth". Work started on the Amstrad home computer in 1983 with engineer Ivor Spital who concluded that Amstrad should enter the home computer market, offering a product that integrated low-cost hardware to be sold at an affordable "impulse-purchase price". Spital wanted to offer a device that would not commandeer the family TV but instead be an all-in-one computer with its own monitor, thus freeing up the TV and allowing others to play video games at the same time. Bill Poel, General Manager of Amsoft (Amstrad's software division), said during the launch press release that if the computers were not on the shelves by the end of June "I will be prepared to sit down and eat one in Trafalgar Square".

Many programs and peripherals were developed for the CPC computers. Amstrad's Operating System was AMSDOS. This OS is embedded in Basic using so-called RSX commands starting with |, but it could not format disks, for that you needed a special application. The 464 also could use CP/M 2.2 or 3.0 when used with an external Floppy disk unit (3" Hitachi, 180 KB / face). A lot of great CP/M software was adapted for the Amstrad CPC.

About 42 KB RAM was available for the user, the video memory and the ROM were mapped on the same addresses with a dedicated chip to switch the memory banks automatically.

The first Amstrad CPC prototype (called "Arnold", which gave the name ROLAND (Arnold acronym) to several CPC games) was built around a 6502 processor and then changed to a Z80 late in the computer's development. A few months later, the CPC series would be completed with a computer which offered a built-in floppy disk unit: the CPC 664.

The CPC series are powered by the Zilog Z80 processor after the original attempts to use the 6502 processor, being used in the Apple II amongst many other 8-bit computer families, failed. The Z80 runs at 4 MHz, has 64K of memory and runs AMSDOS, Amstrad's own OS. The unit includes a built in tape drive and the choice of a colour or green monochrome monitor.

Normal Video Modes

  • Mode 0 - 160x200 in 16 colors
  • Mode 1 - 320x200 in 4 colors
  • Mode 2 - 640x200 in 2 colors
  • Mode 3 - 160x200 in 4 colors*
(Not an official mode, but a side-effect of the hardware)

Each color can be chosen from a palette of 27 colors total. The dimensions in pixels given could be raised with clever use of FullScreen Trick (often dubbed erronuously as overscan mode). This then allows with a video memory of 24 KB (approximately) to have alternate video modes.

Alternate Video Modes

  • Alt Mode 0 - 192x272 in 16 colors
  • Alt Mode 1 - 384x272 in 4 colors
  • Alt Mode 2 - 768x272 in 2 colors

Amstrad Memory Layout

The Amstrad CPC 464 has a 64 KB Z80 address space, but the way RAM and the video circuitry interact is distinctive. The design routes video fetches directly from the same DRAM that the CPU uses, meaning “video memory” is shared. The CPC line of Amstrad used a 6845-class CRTC for their video. Amstrad sourced multiple pin-compatible variants such as the HD6845S, the UM6845, the UM6845R, and in some units they used the Motorola MC6845. In later models the CPC integrated a compatible 6845-compatible CRTC into the ASIC.

Video RAM Mapping

The CRTC shares memory with the CPU, but has it's own 14-bit "MA" counter (Memory Addresss Counter). The Gate-Array translates the address into a physical DRAM addresss. As a result, the screen memory can be located anywhere in the 64kByte RAM space, in 2kByte chunks. Common default is the 0xC000-0xFFFF area, a 16kByte piece of RAM used for Video. The Video logic uses Z80 cycles to fetch display data, the Z80 and the CRTC share DRAM bandwith on an interleaved cycle basis, effectively reducing the Z80 speed by about 0.7MHz.

Key details

The CRTC generates sequential addresses for each raster line, but because of the CPC's video mode packing (1, 2, or 4 pixels per byte, depending on the mode), the logical line addresses are non-linear. The Gate-Array maps the CRTC address lines into DRAM in a row interleaved way:
  • Bits A00-A02: byte within character row
  • Bits A03-A10: select character row and horizontal position
  • Bits A11-A13: select block of 2kB within the 16kB video region

Video - The Motorola 6845 CRTC

The Motorola 6845 CRT Controller (CRTC), later second-sourced by Hitachi (HD6845), Rockwell, and others, was one of the most influential video timing chips of the late 1970s and 1980s. It was not a graphics generator in itself; instead, it produced the precise timing signals needed to drive a raster display, such as horizontal and vertical sync pulses, row and character addresses, and memory fetch cycles. Systems attached external character generators (ROMs) or pixel logic to interpret the memory data, while the 6845 ensured the scanlines appeared in the correct order and at stable refresh rates. Its programmability, registers controlling horizontal total, vertical total, sync widths, cursor position, and so forth, made it adaptable across a wide range of systems, from text terminals to microcomputers.

The 6845’s flexibility came from its ability to map arbitrary chunks of RAM to display regions using start address registers, row address counters, and cursor control. For instance, a designer could allocate just 2 KB of RAM for a 40×25 text screen, or more for bitmapped graphics, with the 6845 providing the address sequencing. Many early microcomputers such as the BBC Micro, Amstrad CPC, and Commodore PET derivatives used the chip, often combining it with a custom video gate array or ULA to generate the pixel stream. IBM also adopted the 6845 in its original Monochrome Display Adapter (MDA) and Color Graphics Adapter (CGA), cementing its influence on the emerging PC standard.

Although by itself the 6845 did not support modern concepts like sprites or hardware scrolling, its register set was exploited creatively. Programmers discovered that by rewriting registers mid-frame (a technique known as “raster tricks”), they could produce split-screen effects, palette changes, or smooth scrolling beyond the documented capabilities. Over time, more integrated graphics controllers absorbed the 6845’s functionality into larger chips that combined timing, pixel generation, and sometimes even acceleration. Nonetheless, the 6845’s architectural model, separating timing control from pixel memory, shaped early video hardware design and left a strong legacy in the personal computer industry.

The 6845s main function is to properly time access to the display memory, and to calculate the memory address of the next portion to be drawn. Other circuitry in the machine then uses the address provided by the 6845 to fetch the pattern and then draw it. The implementation of that hardware is entirely up to the designer and varied widely among machines. The 6845 is intended for character displays, but could also be used for pixel-based graphics, with some clever programming.

Computers that used the 6845 are, among others:

  • BBC Micro
  • Amstrad CPC
  • Videx VideoTerm display cards for Apple II
The Chip is also used in some of the early PC video cards such as the MDA, the Hercules Graphics Adapter, the Color Graphics Adapter (CGA) and the Plantronics Plus graphcis card. The functionality was later duplicated on EGA and VGA hardware for backward compatibility.

Source: WikiPedia

Sound - The AY-3-8910 PSG

The AY-3-8910 is a 3-voice Programmable Sound Generator, or PSG. It was designed by General Instruments in 1978 for use with their own 8-bit PIC1650 and their 16-bit CP1610 computers.

The PSG is widely used in many arcade cabinets, pinball machines, and many micro-computers. Here is a list of some of the major brands of computer that used the AY-3-8910:

  • Intellivision
  • Vectrex
  • Amstrad CPC range
  • Oric-1
  • Color Genie
  • Elektor TV Games Computer
  • All MSX-1 and MSX-2 computers
  • ZX Spectrum home computers

General Instrument spun of MicroChip Technology in 1987 and the chip was sold under the MicroChip brand, and licensed to Yamaha as the YM2149F which the Atari ST range of computers use. Functionally the PSG is very similar to the Texas Instruments SN76489.

Variants:

  • AY-3-8910
    Comes with 2 general purpose 8-bit parallel I/O ports, used for Keyboard and Joystick in for instance MSX.
  • AY-3-8912
    Same chip, but in a 28-pin package. Parallel port B is not connected to save cost and space.
  • AY-3-8913
    Same chip, but in a 24-pin package. Both parallel ports are not connected.
  • AY-3-8914
    The AY-3-8914 has the same pinout and is in the same 40-pin package as the AY-3-8910, except the control registers on the chip are shuffled around, and the 'expected input' on the A9 pin may be different. It was used in Mattel's Intellivision console and Aquarius computer.
  • AY-3-8930
    Backwards compatible but BC2 pin is ignored
  • YM2149F
    Yamaha Produced chip, same pin-out as the AY-3-8910, but pin 26 could halve the master clock. Can be used to replace the AY-3-8910 if pin 26 is left disconnected.
  • YM3439-D
    CMOS version of the Y2149 in 40-pin DIP
  • YM3439-F
    CMOS version of the Y2149 in 44-pin QFP
  • YMZ294
    Variant of the YM3249 in an 18-pin package. Parallel ports not connected, and all sound channels mixed on 1 port.
  • T7766A
    Toshiba variant of the AY-3-8910, fully compatible. Used in some MSX models.
  • Winbond WF19054, JFC95101, and File KC89C72: Fully compatible versions of the AY-3-8910 produced for slot machines.

CPU - The Zilog Z80

The Z80 quickly became popular in the personal computer market, with many early personal computers, such as the TRS-80 and Sinclair ZX80, using the Z80 as their central processing unit (CPU). It was also widely used in home computers, such as the MSX range, SORD, and the Amstrad CPC, as well as in many arcade games. Additionally, it was also used in other applications such as industrial control systems, and embedded systems. The Z80 was widely used until the mid-1980s, when it was gradually replaced by newer microprocessors such as the Intel 80286 and the Motorola 68000.

The Z80 microprocessor was developed by Zilog, a company founded by Federico Faggin in 1974. The Z80 was released in July 1976, as a successor to the Intel 8080. It was designed to be fully compatible with the 8080, but also included new features such as an improved instruction set, more powerful interrupts, and a more sophisticated memory management system.

Originally the Z80 was intended for use in embedded systems, just as the 8080 CPU. But the combination of compatibility, superior performance to other CPUs of the era, and the affordability led to a widespread use in arcade video game systems, and later in home computers such as the Osborne 1, TRS-80, ColecoVision, ZX Spectrum, MSX, Sega's Master System and many more. The Z-80 ran the original Pac-Man arcade cabinet. The Z-80 was used even in the Game Gear (1990s), and the TI-81 and succeeding graphic calculators.

The Z-80 remained in production until June of 2024, 48 years after its original release. Zilog replaced the processor with its successor the eZ80, an 8-bit microprocessor that features expanded memory addressing up to 16 megabytes, and running up to 50MHz, comparable to a Z80 clocked at 150MHz.

Technical Details
Released 1989
Country Great Britain
Brand VEB Mikroelektronik
Type Amstrad Schneider CPC
Name CPC KC Compact (clone)
Clone Of
CPU Class Z80
CPU Zilog Z80A @3.58MHz
Memory RAM: 64kB
Sound Chip General Instruments AY-3-8912
Sound 3 wave channels + white noise
Display Chip 6845-class CRTC
Display 160x200, 16 colors
320x200, 4 colors
640x200, 2 colors
27 color palette
Best Color 16 out of 27 colors
Graphics 160x200 in 16 out of 27 colors
Sprites none
System OS Amstrad BASIC
Storage External Tape
External Links 🌐
Amstrad CPC 472
Wikipage for the Amstrad CPC 472
Video - Motorola 6845 Display Controller
Wikipage about the Motorola 6845 CRTC Display Controller Chip.
WikiPedia: General Instrument AY-3-8910
Wikipage on the General Instruments AY-3-8910 PSG
Z80 CPU
Wikipedia page on the very popular Z80 8-bit CPU used in many computers of the 1980's era.