Hello User,

We expect you are already getting lots of fun and use out of your Sinclair ZX81 
computer. We think this will grow with the addition of the MEMOPAK 16K as you 
will now be dealing with much bigger programs and arrays. 
You're now in a position to compete with some of the much more expensive 
home, office and workshop computers on the market. 

This version of the MEMOPAK 16K is fully compatible with either the Sinclair 16K 
or another MEMOPAK 16K; or a MEMOPAK 32K; or you can work with it just by itself. 
And later on, if you expand even further, you can part-exchange your MEMOPAK 16K 
for the full MEMOPAK 64K. See the back of this booklet for more details. 
We also hope you like the elegant design. 
Now let's try to answer some of your queries.

How do I set up the MEMOPAK 16K?

Make sure your power supply is not connected to the ZX81 when you attach the pack. 
We recommend that the ZX81 + MEMOPAK configuration should go in this order, 
according to what add-ons you have:

ZX81 + [Commercial Printer l/F] + [HRG] + MasterMemopak16K or 32K + [Sinclair 
Printer] + [Slave Memopak or Sinclair 16K]. We supply a Velcro tab which you can 
cut up and use to get maximum stability on the connections.

What about the switch settings?

There are two possible modes for using the MEMOPAK 16K: MASTER and SLAVE. The 
mode you require depends on which of the possible memory configurations you are 
using. The configurations and modes are as follows:
a) MEMOPAK 16K alone (MASTER)
b) MEMOPAK 16K (MASTER) + MEMOPAK 16K (SLAVE)
c) MEMOPAK 16K (MASTER) + SINCLAIR 16K(SLAVE)
d) MEMOPAK 32K (MASTER) + MEMOPAK 16K (SLAVE)

Now, if your MEMOPAK 16K is being used as a MASTER (alone or with a SLAVE pack 
attached somewhere behind) then switches 2 and 3 should be ON and switches 1 and 4
should be OFF. This is how the pack should reach you. On the other hand, if your 
MEMOPAK 16K is sitting behind a MEMOPAK 32K or another 16K then it should be 
switched into SLAVE mode (1 and 4 ON and 2 and 3 OFF). Remember ON is UP. Now you 
can join up the power supply to your ZX81.

What should I do to use the new, larger memory area?

On powering up, a small K will appear in the bottom left-hand corner of the screen.
This means your system is ready to go. If you only have 16K of RAM you do not need 
to set a higher RAMTOP. If you have a total of 32K RAM then to make the most of it 
you'll need to key in:

   POKE 16389,192

to raise the RAMTOP. For the 48K RAM, you should key in:

   POKE 16388,255
   POKE 16389,255

After that, you must do a NEW statement to activate the new memory limits. 
For a quick check that the memory is now at your finger-tips you can now try the 
following:
 
For 16K RAM key in DIM A(3000). For 32K, key in DIM A(6000>. For 48K, key in 
DIM A(9000>. You should get 0/0 appearing at the bottom of the screen if your 
large array has been accepted by the system .

To check your RAMTOP, type in: 
   PRINT PEEK 16389

you will get back the current RAMTOP. If this does not correspond with what you 
POKED into 16389, then something is wrong. If you did not set RAMTOP, however, 
then it should still be set at the default of 128.

What is where?

As programs are entered into the system the elements are sifted into the 
instruction file and the array file. The instruction file, the display file 
(holding screen data) and the array file lie next to each other in that order 
at the bottom end of memory. 
Gradually, as the instruction file increases, the other files are pushed up 
through memory. Remember,the original 1 K of RAM in the ZX81 (located at 16K+) 
has been disabled and all its functions take place in the MEMOPAK. 
This pushing goes on until either the array file reaches the top of the memory 
or until the display file begins to straddle the 32K mark (by going above 32767). 
Naturally, this last situation won't occur if you've only got 16K of RAM .

Does this mean if I've got 32K or more of RAM, I still can't have more than 
15K or so of instructions?

No. Many people think you are restricted but there is a neat trick where you 
can force your display file to leap the 32K mark in one bound by putting in a 
large, dummy instruction. The important thing is to make sure that the dispiay 
file never straddles the 32K mark. Here is how:

a) On input check from time to time the value in the VARS system variable, 
   as this lies just above the end of the displayfile: 
   PRINT PEEK 16401 * 256 + PEEK 16400

b) When the values of VARS approaches 32767, enter a huge line into the program, 
   like: 
   LET ZERO = 0 + 0 + 0 + 0 etc. 
   with about 100 repetitions of [+0]. 
   This will push the display file entirely above 32768.

c) Check the system variable D-FILE to make sure the display file now begins above 
   32768: 
   PRINT PEEK 16397 * 256 + PEEK 16396
   if it is, then you can carry on programming.

How can I use the Memopak 16K if I've got a white ZX80?

In principle this works, but MEMOTECH cannot guarantee it happening in any 
particular case. The casing and/or boards may have to be altered or separated, and 
the pack will probably stick out to one side! In addition the following hardware 
modifications need to be carried out:

a) Break the connecting track between IC6-Pin7 and IC2-Pin20.
b) Put a 680 ohm resistor between the IC6-Pin7(74LS157N) and IC2-Pin20 (ROM ).
c) Connect IC2-Pin20 to the edge connector plug 23B (ROM C.S.). This is the finger 
   furthest away from the keyway slot and on the underside of the board.

We regret we cannot offer this service ourselves and we cannot accept 
responsibility for malfunction as a result of this modification.
 
Have you any tips for running a full ZX81 system?

Yes. These are the hints buzzing around the users. They may or may not help in 
your situation. You may need to make sure that LOADing takes place with cassette 
recorder volume set at maximum. If possible make sure that your cassette recorder 
and ZX81 are plugged into different mains sockets. 
Maybe you shouldn't have the LOAD (EAR) and SAVE (MIKE) connectors plugged in at 
the same time. LOADing is more likely to be successful if you quote the filename,
rather than null ("") Always clean your connectors. Don't use the first 20 seconds 
of a cassette tape as that's where a lot of LOAD bugs live.

Can I run programs written for the ZX81 alone with the MEMOPAK 16K?

Yes, they should run straight away, but things are a little tricky if you want 
to enlarge your arrays to use the larger memory and you have been SAVEing your 
data. Basically, you have to re-enter all data after you have re-dimensioned, 
to be sure that the right data is going to be accessed. 
What you can do is:

a) LOAD the original program.
b) Edit in a special routine which will list and label the contents of all 
variables on the printer.
c) Run this routine. You now have a hard copy of your data.
d} Re-set your dimensions. Also enter a routine to allow you to reinput all your 
old values plus any new ones.
e) Run your program and enter the values.

It's probably quickest to start afresh ! You may also encounter problems if
you have been using machine code routines with the ZX81 alone.