HARDWARELE CPC 464GAMESLIST ★ CPC 464 (BYTE) ★

The home computer in the U.K. (Byte)
★ Ce texte vous est présenté dans sa version originale ★ 
 ★ This text is presented to you in its original version ★ 
 ★ Este texto se presenta en su versión original ★ 
 ★ Dieser Text wird in seiner Originalfassung präsentiert ★ 

The Amstrad CPC 464

It's not easy for a U.K. citizen to write about home computers for an American magazine. We use the term to refer to an altogether different object on our side of the Atlantic.

in the U.S.A., an Apple II is a home computer; the IBM PC in its smaller configurations is a home computer; the Macintosh is a home computer. Home computers use floppy disks for mass storage and perform useful functions like word processing and income tax preparation as well as playing games.

In the U.K., those computers would be considered rather expensive as business computers, let alone for home use. Home computers here typically cost less than £200 (about $2 50) and use cassette tape recorders for mass storage. We have various manufacturers of our own, some unheard of in the U.S.A.—Sinclair Spectrum, Acorn Electron, Oric Atmos, Memotech. Enterprise, and Amstrad. Others, like Newbrain, Jupiter, Lynx, and Dragon, are already defunct. Even when we do have machines in common (the Commodore 64). I suspect that the vast majority of U.S. users buy the disk drive, while the majority of U.K. users have only the cassette deck.

A philosophical question that our Sunday newspapers love to debate (once a month on average) is: what are home computers for? The truthful answer (though seldom the one given) is; to play with. The vast majority of home computers are used solely for playing games or learning programming. Until disk drives become the norm rather than the exception, that will remain the case.

The fact that "home computer" has an essentially different meaning in our respective cultures is clearly demonstrated by the relative lack of success of those British models marketed in the U.S.A. (eg the Timex Sinclair 2068). With higher spend ng power and expectations than their British equivalents. U.S. buyers aren't tempted (and might even be repelled) by ultralow prices.

I'm devoting this month's column to a recent British home computer that promises to be more useful than most. My criteria for usefulness include a robust typewriter keyboard, the ability to display the standard 80-column by 24-character text screen (most go up to only 40 columns), a diskdrive option of reasonable capacity and cost, and support for a mainstream operating system such as CP/M or MS-DOS. Only then could i recommend a home computer as a dual-purpose business and pleasure purchase. The Amstrad computer comes the closest yet to filling this bill.

Amstrad CPC 464

The name Amstrad is associated with budget hi-fi in Britain. The firm, part of the giant GEC group, has beaten the Japanese at their own game and captured a lion's share of our home market for low-priced racked systems.

In June 1984, Amstrad entered the home computer market with a machine bearing the unsexy title CPC 464. It was designed wholly in Britain in conjunction with Locomotive Software, a seasoned Z80 systems house. Locomotive produced a neat operating system for the CPC 464; it incorporates so many good ideas that I wish it had emerged four years ago when the Z80 was still hot.

The CPC 464 is based around a 4-MHz Z80A with a full 64K bytes of RAM (random-access read/write memory) and a paged ROM (read-only memory) system of fiendish ingenuity. The computer package is noteworthy for consumer-oriented features that have accrued from Amstrad's hi-fi experience. It's a "ready to go" system, incorporating both a video-display unit (VDU) and a cassette recorder in the basic package. TWo models are available, with either a monochrome or RGB (red-green-blue) color monitor, for £200 or £300 (about $250 or $375), respectively. Most color monitors cost £300 here, without a computer.

The color monitor uses a modified Amstrad television tube and the bandwidth is barely adequate for the computer's 80-column text mode, though it gives good saturated color and a steady display The green-screen monochrome monitor is fine for 80-column work.

A power supply, which is incorporated into both monitors, drives the computer console, so only a single power cord is necessary for the whole system. The console is the size of an IBM keyboard unit (though deeper) and has a cassette recorder built in at the right end. This unit is not fully software-operated though; like the old PET. you must switch the Play, Record.

and Rewind buttons by hand. The keyboard is the best I've found on a home computer and quite adequate for word processing. It has a huge Enter key. a separate numeric pad. and a compass-style cursor group: the keys are brightly color-coded.

Sound and color are strongly featured. The CPC 464 has a total of 27 colors, from which a palette of 16, 4, or 2 must be selected according to screen mode. The Gl AY-3-8912 chip provides sound; it supports three voices (in stereo), with both tone and volume envelopes. The operating system allows sophisticated concurrent manipulation of sounds using queues and rendezvous. While this chip lacks the filters and ring modulators of Commodore's sound interface device (SID), you can easily exploit its capabilities through BASIC; I certainly can't say that about the Commodore 64.

As for the CPC 464's other silicon content, a 6845 controls the CRT (cathode-ray tube) display while an 8255 parallel peripheral interface controls the cassette recorder and the built-in Centronics printer port A single Ferranti custom gate array does everything else. Since the memory is in the form of a mere eight 64K-byte chips, the circuit board resembles an underpopulated suburb rather than the usual city center.

The most obvious hardware omission is a serial port; Amstrad will offer one later but only as an add-on.

BASIC

The most interesting features of the CPC 464 are Locomotive's BASIC and the operating system. The BASIC is largely standard Microsoft version 5.X with extensions for graphics, sound, multitasking, and interrupts, and a clean implementation of streamed I/O (input/output). It ran the Sieve of Eratosthenes in 1324 seconds, faster than a grown-up CP/M machine running MS-BASIC.

A SOUND command that takes seven parameters supports sound. Envelopes are declared like arrays with the ENV (volume) and ENT (tone) keywords. You can declare any number of envelopes because only the envelope number is passed to SOUND, which means you can swap envelopes easily.

Listing I: Program to check out interrupt timing on the CPC 464

100 EVERY 10.0 GOSUB 1000
200 EVERY 10,1 GOSUB 2000
300 PRINT “c",;:GOTO 300
1000 FOR x = 1 TO 100:NEXT x:PRlNT “a";:y = y+ 1
1100 RETURN
2000 FOR x=1 TO y :NEXT x:PRINT "b";
2100 RETURN

The graphics commands are unsophisticated by today's standards: only point and line drawing, with no fill or circle draw routines. Amstrad will release an extended graphics set as a ROM expansion.

The multitasking and interrupt facilities use a nice natural syntax, similar to the American National Standards Institute (ANSI) BASIC real-time extensions. Four independent interval timers are provided, prioritized in the order 3 2, 1,0. A task is set in motion by calling its subroutine with either EVERY (repeat at stated intervals) or AFTER (delay for stated period) and a timer number. Such a subroutine then interrupts the main program at the specified times. The time units for specifying intervals are 1/300th-second timer ticks, which allows some pretty fine-grained interleaving of tasks. I used listing 1 to check this function.

Listing 1 uses interrupting routines on timers 0 and 1 and, at first, prints a string of c characters interspersed with an ab combination. As y increases and the b routine takes longer, the main program gets squeezed out (the c characters gradually disappear). Then the a routine is smothered, leaving only a string of bbbbbbbbbbbb. ... If 1 change line 100 to give a the higher priority timer 2, then only aaaaaaaa . . will survive this Darwinian struggle for processor time. This simple scheme of resource allocation ensures that you can't blow up the system and that something will always run (even if it isn't what you intend), an important feature in a system aimed at beginners.

When it s important that some program be allowed to terminate unmolested, you can disable software interrupts with the DI directive and reenable them later with El. The operating system maintains a queue for all interrupt routines, although calls that overflow the queue will be lost. The REMAIN keyword returns the current count from any of the timers and resets it to zero.

I/O is handled by streams with an associated windowing capability. There are 10 streams recognized by the system, 0 to 7 for the screen, 8 for the printer, and 9 for the cassette. They don't have to be declared, opened or closed, and stream 0 to the screen is the default. The WINDOW command links a stream with a screen window whose corner coordinates are optional arguments (whole screen is the default). Then PRINT and INPUT are simply redirected, by specifying the stream number, to the desired window. You can also create a high-resolution graphics window. These ideas aren't new, but the syntax feels cleaner and easier to use than previous attempts I've seen.

In short, the CPC 464's BASIC supports the available hardware to the extent that PEEK and POKE become redundant (though people will use them just the same).

Operating System

The CPC 464's operating system (OS) and architecture are neat. The OS sits in l6K-byte ROM at the bottom of memory while BASIC is in a 16K-byte ROM at the top of memory. Both ROMs overlap the 64 K bytes of RAM. the upper one overlapping screen memory. They are switched in and out in a most ingenious fashion. Locomotive Software uses five of the Z80 RESTART instructions to effectively extend the processor's instruction set, so that programs bring ROMs into the address space in a way that's transparent to the user. In particular the RST pseudo-instructions guarantee that a write operation always accesses RAM regardless of the ROM switch state. If an operating-system routine is called, the lower ROM will be switched in; the operating system switches out the upper ROM if it needs to access the screen. All operating-system routines restore the previous ROM state when they return. This scheme leaves you with a total of 43,533 bytes free for BASIC programs, which is at least I OK bytes more than on comparable machines.

Furthermore, you can place up to 252 extra 16K-byte ROMs into the upper ROM area, bank-switched via an I/O port and a unique ROM address. Expansion ROMs can be one of two types: background or foreground. BASIC is a foreground program that could be replaced by another, such as FORTH or CP/M. Whichever program is installed at ROM address 0 will take over the machine at boot-up—you don't need to physically replace the on-board ROM.

Background ROMs provide services to the current operating system, such as device drivers for new peripherals or extensions to the graphics routines. Only seven background ROMs can be installed. The operating-system kernel supports a kind of far addressing (a branch via I/O mapping to any one of 252 parallel ROMs in the upper ROM area) that lets a program call subroutines in ROM. In addition, ROM routines can call subroutines in other ROMs. Resident system extensions (RSXs) behave like background ROMs but must be loaded into memory— they are similar to MS-DOS version 2 configurable device drivers. For some applications that don't justify the cost of blowing a ROM, an RSX might be more suitable.

The operating-system software is written in a highly modular fashion. Separate units (called packs) deal with the keyboard, text VDU, graphics VDU cassette, and sound, while a kernel handles interrupts, events, and the ROM selection mechanism. All OS calls are vectored through a RAM-based jump table in proper fashion, so programs can be insulated against future firmware changes.

The Keyboard Manager pack completely defines the interface to the keyboard hardware, so that a program can alter attributes such as which keys repeat and their repeat speed. Joysticks are scanned as part of the keyboard. You can program up to 32 keys (except Escape) to produce user-defined strings or to generate any of the 255 (full 8-bit) characters. The Escape key is given special treatment; pressing it once suspends execution and a second Escape causes a breakout from the program, while any other keypress resumes execution. This global-friendly behavior should be a function of all operating systems, but usually it's left to individual applications and so is inconsistent.

The VDU is handled by two packs for text and graphics, which are coordinated by a third layer, the Screen Manager. All screen output on the CPC 464 is fully bit-mapped (maximum resolution: 640 by 200 pixels). Ttext and pixel graphics use the same 16K-byte buffer. The standard character matrixes are stored in ROM but the user can, as on the Commodore 64, download them into RAM and redefine them.

A special mode of character output called "transparent print" permits superimposing a character shape on the current screen contents (i.e., the cell background is transparent), so graphics can be annotated with text without making holes in the lines.

The CPC 464 supports three screen modes corresponding to 20, 40, and 80 columns, and the graphics pack is cleverly designed so that the plotting coordinates remain the same in all modes. A picture will remain the same size but will have coarser lines as the modes change. The cost of this scheme is that the screen memory map has a nasty, interleaved structure that complicates attempts to bypass the operating system and poke straight into it. On the other hand, the OS offers four graphics write modes (replace, and, or, xor) that allow a combination of the new pixel color with the current color so you can have tricky bit-plane effects if you stay legal.

The Sound Manager is complicated; suffice it to say that it maintains a separate sound queue for each of the three channels, and these are processed concurrently. When a tune requires synchronization, you can force a rendezvous between any or all of the queues. You can also cause a channel to hold until explicitly released.

The kernel is based around an event handler that is driven by a regular timer interrupt synchronized to the VDU frame flyback. Elapsed-time measurement for the BASIC multitasking is provided by a separate counter that counts these timer interrupts and then triggers an event. This avoids the heavy overhead of triggering a timer event every tick

The CPC 464 was
designed to be used
for serious work
as well as for
game playing.

All the foregoing is documented in an impressive programmers technical manual that is clear, intelligent, and comprehensive (more so than those for many supposedly professional operating systems).

CP/M

As I write this column, Amstrad is a few weeks from releasing a disk drive for the CPC 464 based on the Hitachi 3-inch floppy disk, giving 180K bytes per side in "flip-over” two-sided operation. Two drives can be supported by the same interface and cable. At £199.95, the drive is cheaper than the notorious Commodore 1541.

Amstrad will supply CP/M free with the drive. A foreground ROM in the drive contains a special BIOS (basic input/output system) that actually works through the Amstrad OS ROM routines. When you boot a disk, the BDOS (basic disk operating system) and CCP (console command processor) will load into memory from disk as usual. You can also use the disk from Amstrad BASIC via a stream, and the file format will be the same as CP/M's to avoid introducing two different disk formats.

Although the CPC 464 will be the cheapest CP/M system available by a comfortable margin (just £400 or about $500 for a single-disk, monochrome system), it has limitations. CP/M was not designed to cope with the memory-mapped video of typical home computers, but for systems with a serial terminal. Because the CPC 464 has its screen buffer fixed in the upper 16K bytes of memory, it can support only a 43.5K-byte CP/M system, which leaves a transient program area (TPA) of some 36K bytes. Some CP/M software (including standard WordStar) needs more space. However, since 48K-byte CP/M systems were quite common until recently, a lot of older packages should work.

Overview

The technical problem posed to designers of low-cost home computers is: how can you support the color graphics, complex sound capabilities, acceptable speed, and adequate working store that the market demands, by using a cheap 8-bit processor with only a 64K-byte address space? The most obvious solution is not to try, but to use a 16-bit processor. The prices of 16-bit components and the relative lack of design and programming experience for them have delayed this natural step, although the picture will change drastically if Commodore drops the launch price of the Amiga to the rumored level.

The Amstrad approach might be the best compromise I've seen so far, providing fast (for an interpreter) and usable BASIC with more than average free workspace. The ROM paging system allows virtually unlimited expansion or reconfiguration of the firmware. Its closest competitors are the Commodore 64 and the proposed machines based on Microsoft's MSX standard. The operating firmware and BASIC are better thought out than the ad hoc jumble supplied by Commodore, while MSX is likely to be slower and offer less free workspace. On the other hand, both competitors offer sprites, and MSX has more powerful graphics commands (including a graphics macro language). The Amstrad compromise allows for the possibility that the CPC 464 will be used for serious work as well as game playing, although time will tell whether the marketplace agrees.

Heeding the dismal experiences of other U.K. manufacturers, Amstrad has no plans at present to launch the CPC 464 in the U.S.A.

Byte ,Dick Pountain

★ PAYS:
★ YEAR: 1985
★ PUBLISHERS: Amstrad Consumer Electronics

★ AMSTRAD CPC ★ DOWNLOAD ★

Adverts/Publicités:
» Amstrad  CPC  464-6128    (Awa-Thorn-Amstrad-Australian)    ENGLISHDATE: 2022-07-15
DL: 321
TYPE: image
SiZE: 416Ko
NOTE: w1554*h2117

» Amstrad  CPC  464-664    (The  Computer  Spot-Australian)    ENGLISHDATE: 2022-07-13
DL: 296
TYPE: image
SiZE: 1085Ko
NOTE: w2438*h3250

» Amstrad  CPC  464    (180  Mph)    ENGLISHDATE: 2015-01-08
DL: 3658
TYPE: image
SiZE: 217Ko
NOTE: w1280*h925

» Amstrad  CPC  464    (Awa-Thorn-Amstrad-Australian)    ENGLISHDATE: 2022-07-14
DL: 417
TYPE: image
SiZE: 630Ko
NOTE: w2393*h1614

» Amstrad  CPC  464    (Awa-Thorn-Australian)    ENGLISHDATE: 2022-07-13
DL: 297
TYPE: image
SiZE: 547Ko
NOTE: w1577*h2117

» Amstrad  CPC  464    (The  Complete  Home  Computer)    ENGLISHDATE: 2015-01-08
DL: 1850
TYPE: image
SiZE: 220Ko
NOTE: w1455*h701

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Hardware » CPC 464 Plus Memory Upgrade (Amstrad Action)
» Hardware » Montage Drive - Ajouter un Drive sur CPC 464 (CPC Revue)
» Games » Dossier Bd Acpc - P08 - Captain America
» Games » Pub Amstrad Marche Americain
» Hardware » Amstrad 464 ali 664? (Moj Micro)
» Hardware » CPC 6128: New Amstrad Computer Launched in America
Je participe au site:
» Vous avez des infos personnel, des fichiers que nous ne possédons pas concernent ce programme ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.73-desktop/c
Page créée en 150 millisecondes et consultée 914 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.