View Full Version : MK14, 2716 Eprom Adapter, help...

August 12th, 2014, 02:13 PM
35 year after I have now the time to revive my first "computer", Science of Cambridge MK14.

After some repairs ( 2111 Ram) , and some long evenings it has wake up again. and it works well.

Now, I want to replace the Prom by a 2716 Eprom, loaded with a copy the supermonitor.

So I have designed a piggy board that is plugged into the 8154 Ram/IO socket. (see attached picture)

Unfortunatly, it does not work until now. No display after reset

Attached is the drawing I have designed.

May one of you could help me by checking what I have done ??

I am not fully sure that the address scheme is correct ?

I also search the description of the 1,5k Ram extension ( schematic )

If one of you have a copy ...



August 12th, 2014, 04:18 PM
Pin 18 of EPROM needs to be low when chip is to output data. Ground it or tie it to pin 20.

August 13th, 2014, 02:17 AM
Hi again Jean-Pierre,

Great to see that you posted your question on the forum rather than PM me. As I said, this way you get the full support of the whole community rather than one person's view!

Dave_m nailed the floating pin 18. You should not have any floating inputs at all in your design. I would personally connect pin 18 to pin 20. If you look at the data sheets for the EPROMS you may find that some (all?) EPROMS exhibit a lower power consumption when pin 18 and 20 are both high (not selected). This will be good news for your power supply...

The same thing is true of the unused inputs to IC3 (7404). I would tie these low to prevent them from floating. Floating inputs can sometimes cause chips to draw excessively high currents as they are no longer a digital signal but an analogue antenna! You may also benefit from installing 0.1 uF ceramic disk decoupling capacitors close to the VCC and GROUND pins of the 7404 and the EPROM.

Resistors R1 and R2 are not strictly necessary - but there is no harm if they are there as they would prevent shorting out of the power supply if someone linked the stake pins incorrectly.

Now - as to the decode using the inverted A11 line as an EPROM select. I need to have a little think about this one - but I beleive that your MK14 will stop working if you install your EPROM adapter. I don't think this is the intended behaviour! If I undestand what you are trying to achieve is addressing the EPROM when A11 is high - is this correct? If so, the EPROM would be addressed from 8xx to Fxx. Unfortunately, the keyboard is at 9xx and the RAM and expansion RAM at Fxx and Bxx respectively so the EPROM will interfere with the correct operation of the DISPLAY/KEYBOARD and the RAM.

Where do you actually want the EPROM contents to appear in the MK14 memory map and I should be able to help with the address decoding?


Frank S
August 13th, 2014, 03:16 AM
Hello Jean-Pierre,
the original PROMS are selected when A11 is low (Enables the PROM from 000H on).
Your 2716 is selected when A11 is high. Remove the inverter and tie A11 to pin 20 of the 2716 direct.
As mentioned before, connect pin 18 of the 2716 to GND.

In the Address table the ranges 200-3FF and 400-5FF are interchanged.


August 13th, 2014, 04:45 AM
I partially agree with Frank. This modification (enable the external EPROM when A11 is low) will cause all memory address from 0000-0000-0000 to 0111-1111-1111 (0x000 to 0x7FF) to be mapped into your external EPROM (replacing the on-board PROM) - assuming you remove these devices or physically disable their enable signal. There is then no requirement for IC3 (7404).

I am not too sure about removing A7 and A8 from the EPROM though - this would only decode 128 bytes of EPROM (assuming I am reading the post correctly). A0 through A8 are required to correctly decode 512 bytes.

Unfortunately, you will still only have 512 bytes of ROM shaddowed four times in the MK14. Sure, the switches will permit you to select which 'bank' of memory within the 2716 is physically selected.

Question - why do you not attach your EPROM board to the edge connector. You should then be able to use all 2K of the EPROM directly? Just a thought.


Frank S
August 13th, 2014, 07:18 AM
...I am not too sure about removing A7 and A8 from the EPROM though ...
Yes, you are right. I deleted the sentence in my last post
Leave A7 and A8 as you have them connected.
Then you have the four times mirrored 512 Byte of the Monitor.

August 13th, 2014, 10:13 AM
You were also asking about the 1.5K RAM expansion.

The basic MK14 came which a whopping 256 bytes RAM. This could be expanded by a further 256 bytes by adding the two additional 2111 RAM chips. Adding the I/O RAM chip added a further 128 bytes - making a total of 640 bytes.

The additional 1.5K came from rearranging the address decode logic for the ROM and filling what would have been shadowed ROM with a further 3 pairs of 2111 RAM chips. If you are interested in performing this modification/addition I would be happy to work out the address decoding changes that you would require. It may be possible to add the additional RAM on the same board as your new EPROM if we are smart enough...


PS: Glad to hear that you have got the "0000 00" display on your MK14 once again!

August 13th, 2014, 10:57 AM
I have just sketched out the address decoding for the extra 1.5K of RAM and I think it amounts to a single SN74LS139 device (a dual 2 to 4 decoder).

The solution I have in mind should work for either 3 pairs of 2111 chips or by using something like a 2K*8 CMOS RAM (e.g. the 6116) and loosing 512 bytes of it where the ROM lives. The solution should also cater for adding more ROM of your 2716 (e.g. 1024 bytes) - the amount of RAM will decrease accordingly.

Let me know if you want me to sketch out the circuit for you. It may also be that when I have a look at it tomorrow it may be completely rubbish of course!

By the way - you refer in your PM to a monitor and a super monitor. Are these the standard monitor and revised monitor (the standard monitor displayed '---- --' when it powered up whereas the revised monitor displayed '0000 00' if I remember correctly) - or are they something else that I am not aware of?

You can also extend the memory on the MK14 by adding a 4-bit latch on D0 through D3 (triggered from not NADS) - this produces A12 through A15 (i.e. you can increase the memory capacity of the MK14 from 4K to 64K!!! You have to then decode the MK14 memory map on page '0' of the new scheme.

I have the assembler source code for NIBL BASIC and was slowly modifying it so that it would run on the MK14 - however it will require EPROM/RAM from 0x1000 upwards (and the use of the serial port - or some other sensible user interface - to communicate with the human rather than the seven segment display and hex keypad of course!). Have a look at http://www.dos4ever.com/SCMP/SCMP.html if you are interested.


August 13th, 2014, 01:02 PM
YES !!! It works fine with the 2716 Eprom :+)) See attached picture with the piggy board.

So I want to thank all of you who help me to go back to the rigth track.

1) Pin 18 on my drawing was shown open, but in fact on my printed board, it was already tied to GND.
- I moved it to A11.
- the small table with J1 and J2 jumper was wrong. It is now corrected

2) A11 signal was inverted on my design because I mistinterpreted the MK14 schematic, which shows a circle on A11 input at IC2/IC3

- I removed the inverter, and then MK14 was OK, displaying the "0000 00".

3) My original goal was to remove the proms that I thougth defective: I have to tell you that some years ago I tried to turn the MK14 on, but I made a mistake and connect it directly to a 12 VDC power supply !! Hopefully the power supply went into limitation mode, so may be it protected the electronic ?

I thougth it was the end of itslife, until recently when I wanted to resurrect it. As it did not start, I cheked all others components.

I checked the 2 proms together with a ultra simple prom reader I made with an Arduino (not vintage !). the content of the proms seems to be modified from the original value in many locations.

I found an image of the Supermonitor prom on the Web, so I decided to build the Eprom board and to remove the 74S571 proms., but without success until you helped me.

In the meantime , I did other tries, I also replaced the Ram and tried again with the 74S571 prom and miracle, it worked.

So now I can use the original prom or the 2716 Eprom, in which I am planning to put the standard monitor "---- --" and the Supermonitor "0000 00"

4) I could not attach the prom board to the edge connector as you suggested it , because this connector does not provide D0-D6 nor any address line.

5) Yes I have a a set of IC2-IC3 with the monitor delivered with my MK14 Issue iV and I also have a set of IC2-IC3 I purchased a little bit later with the Supermonitor(revised monitor) , including sofware for the cassette.

I also have the cassette interface board and a some board I made for single step operation. My MK14 has 512 byte of ram + the RamIO INS8154

Back in 1978, I used my private MK14 at work to show my boss how to test connections to high accuracy (8 1/2 digits) voltmeter which had only a" BCD" interface. I was the beginning of my career in test instruments (Fluke)

6) Next now is to connect the cassette interface to the sound recorder on my Windows PC

7) For Dave, I will be interested to see your schematic for a 1.5Kram extension.
In fact , I think it will be interesting to use Eprom space from the 2716 to permanently save some user programs, without having to load them from the cassette.
It means of course to get full access to the 2 Kbytes of eprom

Thank again

August 13th, 2014, 10:14 PM
I have posted a long message yesterday evening , to inform you that my 2716 board was running well now, but when I posted it, I got a windows saying that my message needed to be checked by a moderator before to be visible. So wait and see...
In the meantime thank again to everybody for your messages.

August 14th, 2014, 09:15 AM
Today, I have connected the A9 line from the CPU to the A9 line on the 2716. I got now 1024 byte PROM space. available.

I have burnt a new Eprom with some data between address 0x200 and 0x3FF and I can read them with the monitor.

Next step: burn a program in this area and check if it runs .

I am having a lot of fun with this board !!

August 29th, 2014, 11:40 AM
You can try a small eerom, earom, or eeprom and use it to store data directly by writing to it instead of removing the chip and putting it in an eraser and programmer.

Maybe an X2816C? :)

Oh, and 2114 RAMs for memory. Use 2 for adding 1K of RAM.

August 29th, 2014, 01:46 PM
FRAM would also be a good choice.

August 29th, 2014, 02:45 PM
FRAM would also be a good choice....or an NVSRAM:

August 30th, 2014, 01:22 AM

Glad to hear you're having fun!

Sorry I haven't posted my memory addressing decoder yet. Unfortunately, I have been running about for the last two weeks for work - and it is going to go on for at least another week. I will get to do it for you...

As an aside (whilst I was double checking the interconnections to the MK14 for the address decoding logic) I came up with the possibility of adding even more RAM to the MK14 by removing all of the shadow copies of the display/keyboard and I/O ports. What I am now thinking is to add 4K of RAM (2*6116 chips) and to disable their accessing when something else is being accessed itself (i.e. ROM, display/keyboard or I/O ports). This should permit the maximum amount of RAM on the MK14 and the minimum of space for the other none-RAM functions. Let me think about this one whilst I am in the hotel...

Another thought, by adding a 4-bit latch to the data bus, you can decode a further 4 address lines giving a maximum of 64 KBytes of memory available. In this mode the existing MK14 memory would be addressed as page 0 only.

Now, we can add an SD card (running in SPI mode) to some of the flag and sense lines of the CPU (with a 3.3V supply and voltage translators), add a rudimentary filing system to your EPROM in the range 0x0200 to 0x03FF and we have ourselves some fast non-volatile backing store! CP/M on an MK14 anyone!

The possibilities are endless...


August 30th, 2014, 01:24 AM
The NVSRAM also reminds me of the variant containing a real time clock for added functionality to go with the CP/M!


August 31st, 2014, 01:55 AM
I am back as well.

So thank you for all suggestions I received. I have some 6116, 2Kx8 SRam in stock.

In fact my main goal is to show to my friends what such a kit could in those years.
I want to keep it as close as possible to the orginal, with minimum hardware modification on the main PCB itself.
The missing addresses are not available from the Ram I/O socket, so I have to find a clean way to make them available (and removable) to my piggy board,

The Eprom will be used to permanently save the application programs which are in the booklet from Sciences of Cambridge, and to reload them quickly in ram, as they were not designed to run from Eprom.
I am in the process to write a short relocator program that I will also load in Eprom as a header before each application program.
This header will contain also the source address, destination address( 0F20H) and the number of byte to move.
Last time I wrote assembler program was a long time ago, I have to work a little bit ...

In order to maintain this MK14, I already purchased some spare parts:
2 x SCMP processor INS8060
1 x RamI/O 8154
6 x 2111 Ram
2 x 74S571, blank, of course
2 x 7445 decoder
2 x 74LS157

I could almost built another MK14....

I have also to make a PCB to received small keyboard keys. I puchased a set of new keys, but they have pins to big to fit into the main PCB :+((

And now , back to my bench !


September 9th, 2014, 10:40 AM
I must have got confused with the edge connector on the MK14 verses that on the ZX81/2... You are right, the MK14 edge connector only carries the I/O lines from the 8154.

The ROM area is 2K. How much of this are you actually planning to fill with EPROM? If you are going to use the full 2K for the EPROM - then there is no space left for the RAM. If you are planning to use the lower 512 bytes for the default monitor program and a further 512 bytes for your extended loader - then there could be 1K of RAM expansion possible at the most.

When you added your EPROM to the 8154 socket - did you include the 8154 on your EPROM expansion card or not? If not, you should be able to utilise the 256 bytes of memory space as RAM on your expansion board.

You should be able to interface an SD card to the SC/MP processor either through the FLAG and SENSE lines (3 FLAGS out and 1 SENSE in) or four bits of the I/O on the 8154. When coupled with a bit of expansion ROM for a dead simple filing system should make a potent loader. You should be able to 'load' the programs onto the SD card via a PC (using FAT-16) and then load them (via some form of very simple user interface on the LED's) from the SD card into RAM. This may be a bit more flexible/expandable than the EPROM idea possibly?


September 9th, 2014, 03:05 PM
If you mount the SC/MP chip on a daughter board, it could also carry the memory chips, if you are definately going to have an SD card, you could arrange the operating system like CP/M did, have just a few routines in rom and the other routines loaded into ram as needed from "disk".

P.S the SC/MP chip can be used in a multi-processor system, 2 or 3 SC/MPs can share the processing load.

October 16th, 2014, 03:40 PM
I must have got confused with the edge connector on the MK14 verses that on the ZX81/2... You are right, the MK14 edge connector only carries the I/O lines from the 8154.

Before about issue IV this was true, but on MK14s from issue IV onwards the system buses were made available on the rear edge connector on the underside of the board - in other words, what had previously been a single sided connector on the rear edge became a double sided connector from that point on - it would have made connection of the VDU a great deal tidier.

At about the same time, the keypad area of the PCB was altered to allow installation of (optional) button-switches of the same type provided for the reset switch.

October 16th, 2014, 04:12 PM
I have posted a long message yesterday evening , to inform you that my 2716 board was running well now, but when I posted it, I got a windows saying that my message needed to be checked by a moderator before to be visible. So wait and see...
In the meantime thank again to everybody for your messages.

Jpdn - only just found this MK14 related thread. I have an old device programmer which can program the original 74S571 PROMs, which amazingly are still obtainable (although they are quite expensive). If you can obtain a blank pair, I will be happy to program them for you - I already have the 'improved' OS code (with the "0000 00" prompt) backed up as files just in case one of my own PROMs fails.

If you would rather do it yourself, you can find the circuit diagram and support software in the manual for Science of Cambridge's official PROM programmer add-on for the MK14 in the 'manuals' section of the mymk14.co.uk website. Build the circuit, type the support software in, type in the code you want to program into the PROM in as well, check everything five times and hopefully you end up with a correctly programmed PROM. (Actually this would take four steps, as due to memory limitations the support software can only program blocks of 256 nibbles at a time. Since each PROM contains 2* 256 nibbles and there are two PROMs, the operation would have to be repeated four times).

If I did not already have a suitable programmer, I think I would build the SOC PROM blower hardware but then hook it up to an Arduino or PIC, which would allow programming of one PROM chip in one go. Plus, you could include a known good binary or intel hex image of the monitor code into the arduino / PIC project so the operation wouldn't be prone to critical data entry errors.