|★ HARDWARE ★ PERIPHERIQUES ★ All aboard for Memory Lane ★|
|Memoire - All Aboard For Memory Lane|Computing With the Amstrad)||Hardware Peripheriques|
Putting software in a read only memory chip is a good way of having programs permanently and instantly available and programs that run in ROM do not take up large areas of RAM.
Taking Amor's Protext word processor as an example, the disk version leaves around 23k free for text whereas the ROM version gives you approximately 40k and is ready to use at a moment's notice.
The process of transferring software to a blank ROM chip is not difficult provided you have access to the necessary, usually expensive, equipment.
The hobbyist does not need an industrial quality blower designed to program multiple roms so there's scope for a no frills unit. This is the concept behind John Morrison's budget ROM blower reviewed here.
It's housed in a white plastic case which plugs into your Amstrad's expansion port. An external socket takes the eprom to be programmed which can be either 8k or 16k.
Great care must be taken when inserting or removing a ROM because the chip is a push fit and it's easy to end up with bent legs (on the ROM that is). A ZIF (Zero Insertion Force) socket, where the chip is held in place by a clamp actuated by a lever, would have been more practical.
Software written in unprotected Basic is supplied on tape and is easily transferred to disk. There are actually two programs. The first blows the ROM and expects your program to be present as a binary file on disk or tape.
This is loaded into a buffer and the ROM programmed with the buffer's contents. In addition to programming, the software offers various facilities such as copying the contents of ROM into the buffer, saving and loading binary files, veryifying a ROM for erasure and correct programming, and editing single locations.
The other program supplied is a utility that converts Basic programs to a suitable form for blowing. It isn't possible to put a Basic program in ROM and run it.
Firstly, it would be underneath the basic interpreter which is rather like trying to read a book while standing on it at the same time. Secondly, Basic stores numeric variables at the end of the program which is impossible when the program is in read only memory.
Basic installed in a ROM is called up by an RSX command put in by the utility. Your program is then copied down to its normal position in RAM and run. In this case the rem is being treated as a filing system rather than the usual method of writing programs to run in ROM.
As you will read on page 43 in this issue, writing a machine code program to run in rom is not the same as writing the equivalent RAM. If you have existing machine code that you want to transfer to rom, you may find it preferable to write a routine that download the code from ROM to RAM.
Of course, the size of program you can store is limited to the capacity of a 16k eprom.
It's easy to criticise the blower. There's no through connector, which is annoying for 464 owners because they can't use the disk drive. The DIY kit which comes without a case does have the connector, which is fine if you can use a soldering iron. There's also the matter of the ZIF socket, and on a CPC6128 the unit lifts the back of the keyboard by a few millimetres.
For a peripheral that was permanently connected these would be mqjor faults, but the blower is only going to be plugged in when needed.
The documentation was in the form of stapled photocopied sheets. Machine code programmers armed with the firmware manual and our ROM article will have few problems in writing their own roms. Experienced Basic programmers should manage to put their programs on ROM without too much difficulty though the instructions leave something to be desired for less seasoned users.
If you want a blower, don't let the negative aspects put you off. As long as you aren't planning to blow large numbers of roms, it does what it's supposed to do efficiently enough, but lacks finish on the details.
IAN SHARPE, Computing With The Amstrad — October 1987