|★ APPLICATIONS ★ UTILITAIRES RSX/LIGNE DE COMMANDE ★ Switched RAM really means business ★|
|RSX - Switch DK'Tronic Bank|Computing With the Amstrad)||Applications Utilitaires Rsx/ligne De Commande|
ROBIN NIXON assesses a RAM box which promises more memory for your micro
THE DK Tronics bank switched RAM box gives your Amstrad either an extra 64k or 256kof RAM, depending on the version you have. It comes in a small box which plugs into the floppy disc port on the CPC464 or the expansion port on the CPC664 and CPC6128.
The version we received for review would not plug into a CPC 6128 but DK'Tronics tell me that later versions will have a re-designed case which will connect to all models.
There is also a connector on the back of the RAM box so other add-ons can be attached to it.
Because the Z80 cannot handle more than 64k at a time the extra RAM is bank switched. That means that the extra memory is divided up into chunks, or banks. You can switch between these banks of memory, though your Z80 can only talk to one bank at a time.
Although the 64k of the standard CPC464 is a lot of RAM - the standard BBC Micro only has 32k -and is enough for most purposes, there are several applications for which you may need a lot more.
For example, pull down menus in graphics programs require a large amount of memory in which to storethe screen data "behind" the menu. Also the extra RAM could be used to store the information for large databases. These would run much faster in RAM than on disc.
Having the extra memory is one thing, using it is another. If you are an experienced assembly language programmer you can access the extra RAM directly.
However DK'Tronics provide a far easier system for making use of it. With the RAM box you get a cassette of RSX - resident software extension -utilities which give your Amstrad extra Basic commands sucK as |EMULATE which emulates the bank switching of a 128. or |SWAP, which swaps graphic screens instantaneously.
When you run the RSX program the first thing it does is a RAM test to check that the RAM box is present and working. If the test is successful your Amstrad will have an extra 14 commands as detailed in Table I.
Let's have a look at two of the RSX commands in detail. |SAVEW saves the contents of a window to the extension RAM and |LOADW reloads it. Listing I gives an example of how these commands can be used to construct pull-down menus.
This windowing technique doesn't take up any of the Amstrad's normal memory bar the short Basic routine, so features like it could be included in virtually all Basic software.
To access the extra RAM from Basic without using RSXs you use OUT &7F00 in the following manner.
where Bank is the bank to be switched in:
OUT &7FBB, 196+(Bank AND 3)+(Bank AND 28)*2
To select a particular bank from assembly language you would enter the routine in Listing II where A contains the bank to be selected.
Using |EMULATE , CP/M software for the CPC6128 such as Masterfile and Tasword 128 will run on a CPC464, as the CPC6128's bank switching techniques are fully implemented. However it is not a complete CPC6128 upgrade. For a start DK'Tronics says it doesn't envisage releasing CP/M plus with the RAM box and, of course, it won't give your CPC464 the additional Basic commands of the CPC6128.
Also the operating systems of the CPC464 and CPC6128 are quite different, and many programs written on the CPC464 use "illegal" calls which will not work on the CPC664 or CPC6128.
Illegal calls are made directly to memory locations rather than through vectors - which remain in the
same place while the locations they point to may not.
So is it a worthwhile addition? Well, if you find yourself running short of memory when writing software, or would like to take advantage of the animation facilities of |SWAP, then this add-on is for you. Also don't forget that it does give you a larger CP/M environment of 61k.
It is also possible that an amount of business software will be written to take advantage of the extra RAM. If this happens the RAM box is certainly worth keeping an eye on.
The 14 extra commands