Difference between revisions of "CPC old generation"

From CPCWiki - THE Amstrad CPC encyclopedia!
Jump to: navigation, search
m (Other languages)
Line 1: Line 1:
[[Image:Schneider 664 en.jpg|thumb|German CPC 664]]
''The following text was copied from the [http://en.wikipedia.org/wiki/Amstrad_CPC english Wikipedia article].''
''The following text was copied from the [http://en.wikipedia.org/wiki/Amstrad_CPC english Wikipedia article].''

Revision as of 16:10, 14 August 2006

German CPC 664

The following text was copied from the english Wikipedia article.

Hardware description

All CPC models were based on a Zilog Z80 processor clocked at 4 MHz. Because a common pool of RAM is shared with the video circuits, the Z80 may only make a memory accesses every four cycles - which has the effect of rounding all instruction cycle lengths up to the next multiple of four.

The system came with 64 KB or 128 KB of RAM depending on the model (capable of being expanded to 576k). The machines also featured a standard 9-pin Atari-style joystick socket which was able to take two joysticks via a splitter.

Video (graphics): modes, outputs

Underlying the CPCs video output was the Motorola 6845 address generator. This chip was connected to a pixel generator that supported 4 bpp, 2 bpp and 1 bpp output (bits per pixel). The address generator was clocked at a constant rate so the 4 bpp display generated half as many pixels as the 2 bpp and a quarter as many as the 1 bpp.

The ROM featured three built-in display resolutions but many others could be achieved by reprogramming the 6845.

The standard video modes were:

  • Mode 0: 160×200 pixels with 16 colors (4 bpp)
  • Mode 1: 320×200 pixels with 4 colors (2 bpp)
  • Mode 2: 640×200 pixels with 2 colors (1 bpp)

A colour palette of 27 colors was supported, derived from RGB colour space with each component assigned as either off, half on or on. The later Plus models extended this to 4096 colours and added support for hardware sprites.

This hardware compares well with the other 8-bit computers. In particular the CPC lacks the colour clash of the ZX Spectrum and clever programming of the 6845 could produce overscan, different resolutions (although with the same pixel density) and smooth pixel scrolling.

The machine lacked either a RF TV or composite video output and instead shipped with a proprietary 5-pin DIN connector intended for use solely with the supplied Amstrad monitor. An external adapter for RF TV was available to be bought separately.

The five-pin DIN connector is capable of driving a SCART television with a correctly wired lead.

Audio (sound)

The CPC used the General Instrument AY-3-8912 sound chip, providing three channels, each configurable to generate square waves, white noise or both. A small array of hardware volume envelopes are available.

Output was provided in mono by a small (4 cm) built-in loudspeaker with volume control, driven by an unusually powerful amplifier. Stereo output was provided through a 3.5mm headphones jack, not present on some early CPC464 models. In those models, what looked like a standard 3.5" headphone jack was actually used for connecting an external tape recorder, although later models used a five-pin DIN connector for the same purpose.

Playback of digital sound samples at a resolution of a little better than 5-bit, as heard on the title screen of the game RoboCop, was possible through clever programming of the sound chip. This trick was very processor intensive and hard to combine with any other processing.

The 3" floppy disk drives

Amstrad's idiosyncratic choice of Hitachi's 3" floppy disk drive, when the rest of the PC industry was moving to Sony's 3.5" format, is often claimed to be due to Amstrad bulk-buying a large consignment of 3" drive units in Asia. The cheapest drive (built-in in later models) was a single-sided 40-track unit that required the user to physically remove and flip the disk to access both sides. Each side had its own independent write-protect switch. The sides were termed "A" and "B", with each one holding 180KB (178KB in AMSDOS format) for a total of 360KB per disc.

The interface with the drives was a NEC 765 FDC, used for the same purpose in the IBM PC/XT, PC/AT and PS/2 machines. Many of its features were unused in order to cut costs, namely DMA transfers and support for single density disks; they were formatted as double density using Modified frequency modulation.

Disks were shipped in a paper sleeve or a hard plastic case resembling a compact disc "jewel" case. The casing is thicker and more rigid than that of 3.5" diskettes and sliding metal cover to protect the media surface is internal to the casing and latched, unlike the simple external sliding cover of Sony's version (some reviews at the time reported driving over them with no problems). Because of this they were significantly more expensive than both 5.25" and 3.5" alternatives. This, combined with their low nominal capacities and their essentially proprietary nature, lead to the format being discontinued when the CPC itself was discontinued.

Apart from Amstrad's other 3" machines (the PCW and the ZX Spectrum +3), the only other computer systems to use them were the Sega SF-7000 and mostly obscure and exotic CP/M systems such as the Tatung Einstein and Osborne machines.

The data formatting of 3" disks was very similar to that of 5¼" disks, and the Amstrad CPC machines were able to use 5¼" drives through their "external drive" port - either one specially designed for use by the CPC or an adapted IBM-PC drive.

A more popular alternative was to attach an adapted IBM-PC 3½" drive for operation in either single-sided 180 KB or double-sided 360 KB mode, although with the later availability of the PARADOS Disc Operating System, 720k per disc became available.

Serial port adaptor

An official RS-232-C D25 serial port adaptor was produced that attached to the expansion connector at the rear of the machine, and had a through-connector for the CPC464 disk drive or other peripherals. The adaptor came with a "Book of Spells" for facilitating data transfer between other systems using a proprietary protocol in the device's own ROM, as well as terminal software to connect to British Telecom's Prestel service. A separate version of the ROM was created for the U.S. market due to the use of the commands "SUCK" and "BLOW", which were considered unacceptable there.

Similarities to the BBC Micro

The CPC has been termed an "improved Z80 implementation of the (earlier) BBC Micro" due to similarities in firmware and hardware. Both use the Motorola 6845 video address generator and the two have very similar sound output chips - the General Instrument AY-3-8912 in the CPC provides three tone channels each optionally with added noise and the Texas Instruments SN76489 in the BBC offers three tone channels and one exclusive noise channel.

The BBC Micro uses an Intel 8271 floppy disc controller. The CPC uses the Intel 8272, which is similar to the 8271 but contains the addition of a double density (MFM) mode.

The "two cursor" BASIC editing system seen on the Amstrad CPC (whereby holding Shift and using the cursor keys moves a shadow text cursor allowing text to be copied from another area of the screen to the normal cursor) is a lift from BBC BASIC, albeit substantially improved by allowing free movement of the normal cursor.

Both systems provide similar systems of full hardware abstraction through Operating System calls. This saves programs which don't require time critical hardware access from having to touch the underlying machine and provides a level of machine portability for those programs.

It exists a to the graphic and sound capabilities adapted version of BBC BASIC for the CPC.


Built-in BASIC and operating system

Like most home computers at the time, the CPC had its OS and a BASIC interpreter built in as ROM. It used Locomotive BASIC - a variant specifically written for the CPC hardware which as a result was faster, more comfortable and more powerful than the generic but common Microsoft BASIC used by the Commodore 64 and MSX amongst others. It was particularly notable for providing easy access to the machine's video and audio resources in contrast to the arcane POKE commands required on some Microsoft implementations (the MSX implementation of Microsoft Basic being an exception, which even allowed for hardware sprite manipulation and collision detection).

Other languages

Although it was possible to obtain compilers for Locomotive BASIC, BCPL, C, Forth, and Pascal the majority of the CPC's software was written in native Z80a assembly language.

An interpreter for the educational language LOGO was also available.