HARDWAREMONTAGES ★ AMSTRAD ROM EXPANSION: 96K OF ROM IN ONLY SIX BITS? ★

Amstrad Rom Expansion: 96k of Rom in Only Six Bits (Practical Electronics)Hardware Montages
★ 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 ★ 

One answer to a shortage of memory space in a computer is to add sideways rom expansion. The system describea here can handle up to 252 roms, but for the sake of practicality the design is based around a six-rom unit.

WHEN the Amstrad CPC range of computers were conceived, their designers built in tremendous capabilities. I refer in particular to the provision for adding expansion (sideways) roms to enhance the already powerful operating system. Adding these roms is much simpler and cheaper than most people imagine, and certainly within the abilities of most home constructors. The rom expansion board described here was built for around £14.00 excluding pcb and case and allows up to six external roms to be added.

EXPANSION ROM

An expansion rom is a 16K read only memory chip containing a program (or programs) which can be made to replace the on board Basic rom. It follows from this that all roms are mapped in the area of memory normally occupeid by the Basic rom'ie &C000-&FFFF. Up to 252 roms can theoretically be added to the system, and these can be split into two types

(a) Foreground roms - These usually contain one large program which replaces the Basic rom completely, such as, for example, another high level language like Pascal.
(b) Background roms -These provide additional commands to augment the existing operating system, rather like rsxs (resident system extensions). The disc operating system is one such rom.

Of the 252 possible roms, only seven (15 on 664 and 6128 machines) may be of the background type, the rest must be foreground. It is expected that most users will not require more than six expansion roms, background or otherwise, not least because these tend to be a little expensive, and for this reason and to keep the additional circuitry. simple, only six sockets arc provided on this board.

The main advantage of storing programs in rom is that none (or very little) of the ram of the computer is taken up by the program itself. This is very noticeable with ward processing programs, which if rani based, allow only a small amount of the system's ram to be used to store the text. Rom based word processors (such as Protext - used to write this article!) allow almost all the computer's ram to be used to store text (typically 38K or more). Programs in rom are also instantly available, without having to wait while the program loads.

THE CIRCUIT

The computer chooses which rom is selected by writing the rom select address to I/O location &DF00 If a rom is fitted at that address, all further READ operations from the top 16K of memory will lie from that rom. If no rom is present, then the on-board Basic rom is read.


Fig 1. Control circuit and powerline decoupling for the Amstrad rom expander.

As can be seen in Fig.1, the circuit is quite simple. 1C1a and 1C1b detect the presence of I/O address &DF00 on the bus. and latch the rom select address (present at the time on the data bus), into IC2. Note that because of the way that the Amstrad computers use the I/O space, it is only necessary to detect address line A13 going low to know that the address is &DF00, greatly simplifying the decoding process. Most hardware supported by the system is mapped in this way, each with a different address line in the low slate.


Fig. 2. Extension roms connections.

If the rom select address is between one and seven inclusive, the output of IC5a goes low. enabling decoder IC3. The outputs from this decoder select the respective rom by pulling its OE (output enable) pin low. IC5b provides a high level on the ROMDIS pin to disable the internal rom. The circuit is so arranged to ensure that ROMDIS is asserted before the external rom is selected to avoid contention between internal and external roms as switching takes place.

Whenever (he operating system is using the firmware (lower) rom, all other roms (including external roms) must be disabled. This is achieved simply by including address lines A15 in the external rom enable/disable circuitry on the expansion board. Whenever the lower rom is in use, A15 will be low; since the rom occupies address 0000-3FFFH, this low level disables external rom decoder IC3 via IC5a.

By now. some of you may have realised that the disc rom is normally rom seven, and that the computer will receive a response both from this rom and from our expansion board when a rom search takes place. This will not cause any problems in practice since the computer cannot actually tell that ROMDIS has been asserted by more than one device, but obviously a rom must not be fitted at this address.

CONSTRUCTION

The expansion box may be wired on a prototyping board, although in view of the large number of connections, and beta use wiring errors can prove fatal to the computer, the use of the double sided printed circuit board in Fig.2 is strongly recommended. The component layout is shown in Fig.3. Care should be taken to ensure that the transparencies used to expose the board are accurately aligned, since errors could result in the pads being drilled away on one side of the board. All holes arc 0.8mm except for the 50 way pcb header connector holes which are 1.0mm.



Fig.3. Component layout derails (only top tracking is shown).

If the board is not plated through, it will be necessary to use pins, or short lengths of tinned copper wire soldered both sides. Where a change of layer occurs, in all, 99 pins are required. Some of these soldered joints arc very close together, so great care will be needed to avoid shorts between adjacent conductors. IC1 to IC5 may be soldered directly into the board, but 28 pin dil sockets should be used for the six roms since these will probably be removed and re-inserted from time to time. The wires of decoupling capacitors C1-C6 should be soldered on both sides of the board, since in some cases they are used to connect the layer together.

COMPONENTS

RESISTORS
R1 680Ω 0.25W

CAPACITORS
C1-C6 100n ceramic (six off)
C7 22µ elect

SEMICONDUCTORS
IC1 74LS32
IC2 74LS373
IC3 74LS138
IC4 74LS02
IC5 74LS20
D1 IN4148 or similar

MISCELLANEOUS

Printed circuit board, 28pin ie sockets (6 off), 50-way pcb mounting header, 50 way female socket connector (idc), 50 way card edge connector, 75mm length of 50 way ribbon cable approx 100 pcb pins (see text).

The board is fitted with a 50-way pcb header allowing connection to the computer to be quickly and neatly made. A short length (approximately 2-3 inches) of 50-way ribbon cable is required, fitted with a matching female socket connector at one end and a 50-way card edge connector at the other (to fit the Amstrad's expansion connector). This method of connection is not the cheapest way to connect the board to the computer, but it makes further expansion of the system very neat and simple. The card edge connector should ideally be fitted with a locating peg in the position shown in the Amstrad user instructions, to make it impossible to insert the connector into the expansion socket upside down. Users of the DD1 disk interface will unfortunately have to provide a through connection of the bus to allow both units to be used simultaneously.

TESTING

Remove any roms from the board, and connect it to the computer's expansion connector with the power switched off. Switch on the computer, and watch for the normal Amstrad start up message.

Program 1

10 REM Expansion Board Test Program
20 DEFINT a,b
30 MODE 1
40 b=0
50 MEMORY &9FFF
60 FOR A=&A000 TO &A010
70 READ D:POKE A,D
80 NEXT
90 DATA &DD,&4E,0,&CD,&15,&B9,&DD,&6E,2,&DD,&66,3,&77, &23,&36,0,&C9
100 PRINT "Expansion ROM Test Program”: PRINT
110 FOR a=1 TO 7
120 CALL &A000,@b,a
130 PRINT a; IF b=0 THEN PRINT".. Foreground'' ELSE IF b=1 THEN PRINT "Background" ELSE IF b<>80 THEN PRINT".. Empty"
140 NEXT

If no power-up message appears or random patterns appear on the screen, switch off immediately and check all wiring and joints carefully. When all appears to be well, type in Program 1 and save it.The program calls jumpblock entry &B915 - KL PROBE ROM for each of the six sockets, and tests the result to decide which type of rom, if any. is present.

RUN the program, and the following message should appear on the screen:-
If a ready programmed rom is available, it can now be inserted (remember to switch off the power whenever roms are fitted or removed). If the power is then applied, the normal power up message should appear, and if Program 1 is re-loaded and run, the rom type should appear against the socket number in which the rom is fitted. You may wish to try' the rom in each socket to test the board fully. All that remains is to type in the command(s) required to activate the ROM, and make use of your new found power!

PRACTICAL ELECTRONICS JUNE 1988

★ YEAR: 1988
★ AUTHOR: SIMON DEAN / PRACTICAL ELECTRONICS

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

Lien(s):
» Hardware » Peritel Avec Alimentation 12v (CPC Revue)
» Hardware » Informatique amusante - Le Discassette
» Hardware » Informatique pratique - Commandons la vitesse d'un moteur (Science&Vie)
» Hardware » AMSCOM : ou comment échanger des fichiers de CPC à CPC, par Minitel (Radio-Plans n°486, 488)
» Hardware » GEOS-Mouse am Joystick-Port (CPC Amstrad International)
» Hardware » Einbau der VORTEX-Speichererweiterungs-platine in das Tastaturgehäuse des CPC 464 vonstatten geht (Schneider Aktiv)
Je participe au site:

» 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.7-desktop/c
Page créée en 248 millisecondes et consultée 870 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.