News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu
avatar_redbox

Plus Cartridges and custom EPROMs

Started by redbox, 19:23, 18 October 10

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

redbox

I want to take a Plus cartridge and solder a socket onto it so I can change the EPROM.  It looks quite easy according to CPC Rulez and CPC Mania (copying GX4000 cartridges).

However, I can't find out how these people above did it without worrying about the LK1 to LK6 bridges.  It appears from the photographs that they left them all open, but on this website the author says you have to set them differently according to the ROM you are using (if I understand correctly, the article is in French)...?

So does anyone know what I do?

Bryce

#1
No, you definitely need to set the correct LKs, otherwise it won't work. The CPCRulez picture where the Pang EPROM is intalled has LK1 and possibly LK6 (under the sticker) bridged, which must obviously be the correct positions for the EPROM they're using.

If you intend using lots of different types of EPROMs, you could put jumpers where the LKs are, but I would suggest just using one type of EPROM, the largest one possible and then set the LKs to suit it. That way you don't need to set anything ever and if the Game doesn't use the entire EPROM then who cares, the price difference between a 128k / 256k / 512k EPROM is minuscule.

Bryce.

Edit: A word of advice. If you try to remove the original EPROM in one piece, you'll probably create so much heat that you destroy the ACID chip in the process, unless you have a special head for your soldering iron to do this. The safest way to remove it, without causing damage to the ACID, is to cut all the legs first, remove the body of the EPROM and then de-solder each leg individually.

fano

"NOP" is the perfect program : short , fast and (known) bug free

Follow Easter Egg products on Facebook !

redbox

Quote from: Bryce on 19:35, 18 October 10
If you intend using lots of different types of EPROMs, you could put jumpers where the LKs are, but I would suggest just using one type of EPROM, the largest one possible and then set the LKs to suit it. That way you don't need to set anything ever and if the Game doesn't use the entire EPROM then who cares, the price difference between a 128k / 256k / 512k EPROM is minuscule.

Ah I see, the LKs determine the size of the EPROM being used.

Quote from: Bryce on 19:35, 18 October 10
  Edit: A word of advice. If you try to remove the original EPROM in one piece, you'll probably create so much heat that you destroy the ACID chip in the process, unless you have a special head for your soldering iron to do this. The safest way to remove it, without causing damage to the ACID, is to cut all the legs first, remove the body of the EPROM and then de-solder each leg individually.

That's a great tip, thanks - I would definitely have done it the other way and wrecked the cartridge  :)

Quote from: fano on 20:40, 18 October 10
About LKs , you can find usefull informations there :
http://cpcwiki.eu/index.php/GX4000_cartridge
http://pulkomandy.ath.cx/projects/ReACID/wiki/HardwareSchematics

Thanks Fano, I hadn't found these resources so far and they're very useful.  So as far as I can see, most cartridges used 128k EPROMs and had LK1 and LK6 set.  I can't find any 128k (or 256/512 either) on Google or eBay, they're all 1Mbit (128 x 8) versions which of course there isn't a LK setting for.  Any ideas where I can get some compatible M27C1001s from...?

jbaudrand

 :( okay it's seems a bit more complicated than I though...

Bryce

#5
You can get the 27C1001 or equivalent (27C010) almost anywhere, here's where I get mine (€2.40):

http://www.reichelt.de/?ACTION=3;GROUP=A321;GROUPID=4510;ARTICLE=1911;SID=22vezn6tS4ARYAADKbObc6073d9b8a75f658e5ba1c07905e75c0b

However, the Cartridge can evidently take ROMs up to 27C4001, which will give you a whole 512K (€4.25):

http://www.reichelt.de/?ACTION=3;GROUP=A321;GROUPID=4510;ARTICLE=1929;SID=22vezn6tS4ARYAADKbObc6073d9b8a75f658e5ba1c07905e75c0b

I'd go for the 4001 with the LKs set permanently for that. A 128k program will still work on the larger chip with the rest of the space just left empty.

Just in case you're not used to buying EPROMs, the ones with OTP in their name means "One Time Programmable", make sure you don't order this type (for obvious reasons) by mistake :D

Bryce.

redbox

Quote from: Bryce on 10:55, 19 October 10
I'd go for the 4001 with the LKs set permanently for that. A 128k program will still work on the larger chip with the rest of the space just left empty.

That's cool, but why do they say 512kb * 8 ?  I assumed this meant  the capacity is 4096kb, does this not matter (i.e. the CPC only sees the first 512kb)?

Quote from: Bryce on 10:55, 19 October 10
Just in case you're not used to buying EPROMs, the ones with OTP in their name means "One Time Programmable", make sure you don't order this type (for obvious reasons) by mistake :D

Yes, I am still very new to this  :)   I thought making a custom cartridge would be a good next step for my electronics development and thankfully you've already helped stop me make two big mistakes...!

Bryce

No, you're confusing bits with bytes.

EPROM part No.s usually refer to how many single BITS the chip can store, not BYTES. The 27C4001 stores 4096 bits, but because the chip has an 8 bit wide data bus, this is referred to as 8x 512k. The 512k is how many 8bit bytes the chip stores.

Another example, the 27C4002 can also store 4096 bits, but it has a 16bit Data bus, so this would be referred to as 16x256k.

So the CPC is using all 4096 bits, but it needs eight bits for each address.

Bryce.

redbox

So does anyone know if it's possible to use the extra space available on the EPROM (lets take 128kb as an example) to fill with other software or even existing ROMs with a Plus Cartridge?

For example, I know that you can get an image for BASIC and Parados to replace the BASIC/Burnin' Rubber ROM.  But Parados just replaces the whole AMSDOS so this doesn't really answer my question...

Can the rest of the space be used for other stuff?  So could you have BASIC, AMSDOS/Parados, Maxam, Protext etc etc in one cartridge?  Or is this not possible?

If it is not possible, I guess the only other solution would be to use the wasted space used by AMSDOS (if I remember correctly it has a lot of CP/M Logo routines or something in there) in the same way Parados does and squeeze your own software into this space...?

Bryce

Technically, there should be no problem putting Maxam, Protext or whatever in the extra space as long as you put each program at the start of a 16K block, but it won't be automatically activated like it normally would be on a simple ROMBoard. At start-up the CPC only probes ROMs 15 to 0 (in fact only 7 to 0 on the original 464). So the CPC won't know that Maxam is there because the cartridge ROMs are mapped to ROM 128 onwards. A simple routine or even a patched ROM 0 could change this though.

Bryce.

redbox

#10
Quote from: Bryce on 14:29, 31 October 10
A simple routine or even a patched ROM 0 could change this though.

This is very interesting Bryce.  Has anyone every actually attempted to do this?

I have finally managed to open my cartridge and the hairdryer trick did make it much easier and more malleable.

I have a Robocop 2 cartridge and none of the LKs are visably linked with solder.  Vieuzordiland's website says that Robocop 2 is a 512kb cartridge, but the ROM in mine is a M27C1001 (it also says -20XF1 after it)  which I am sure is a 128kb?  Also, the CPC Wiki says that on some cartridges no LKs are linked but they are hardwired, and it has an example at the top of the pictures in the article - problem is, I can't tell on the picture or my cartridge how to see which are hardwired...?!

Anyone got any ideas as to what size ROM my cartridge has and what LKs are set?!  I am going to buy some EPROMs for my burner and want to get the right ones so I don't have to mess about too much or run into problems thinking its not working as it's just because I got the LKs wrong.

OCT

#11
Quote from: redbox on 19:23, 31 October 10
I have a Robocop 2 cartridge and none of the LKs are visably linked with solder.  Vieuzordiland's website says that Robocop 2 is a 512kb cartridge, but the ROM in mine is a M27C1001 (it also says -20XF1 after it)  which I am sure is a 128kb?
This site also says it's not uncommon to have the same cartridge contents dumped several times in sequence into one image:
Quoteen réalité l'eprom est une 27C1001 donc 128ko maxi sur la cartouche. [...]
comparons une image trouvée sur le net et un dump propre à partir de l'eprom de la cartouche [...]
Ainsi dans la rom de 512k d'internet il y a juste 4 fois l'image du jeu (+ les flags cbxx [qui indiquent sans doute le changement de banque lors du dump. Cela va de cb00 à cb31]). [...]
Car la personne qui dumperai la cartouche sans démonter et dessouder l'eprom, c'est à dire en fabriquant par exemple un adaptateur cartouche pour brancher sur un lecteur eprom ou en dumpant par le biais du CPC+, se retrouverai alors par exemple avec un dump de 512K car les LK cablés sur la cartouche tromperait le hardware en donnant des adresses qui vont au delà de ce que gère l'eprom contenant le code original.
To make an attempt at approximately translating these excerpts for the less froggily inclined ;D (native speakers who'll hopefully approve of how this is conveyed to English will no doubt concede that starting even with its very own name and logo, that site has made misspelling into a form of art ;) ),
Quotethe EPROM actually is a 27C1001, hence a maximum of 128 kilobytes in the cartridge. [...]
Let's compare an image found on the Internet to a correct dump from the cartridge's EPROM. [...]
So the 512 kilobyte ROM from the Internet simply holds 4 times the image of the game (and the CBxx flags [telltale signs without a doubt of the bank switch during the dump. These go from CB00 through CB31]). [...]
This is because anyone going to dump the cartridge without disconnecting and desoldering the EPROM, i.e. by making e.g. a cartridge adapter to connect [it] to a EPROM reader or by dumping through a CPC+, would get for instance a 512 kilobyte dump as the LKs wired on the cartridge would mislead the hardware by yielding addresses that go beyond what is stored in the EPROM holding the original code.

redbox

Thank you for the translation, I can't always understand the French correctly.

So my Robocop 2 cartridge is 128kb but has the LKs wired as if it was a 512kb cartridge, which according to the wiki page means that LK2, 4 and 6 are wired.  This would suggest that you can actually use a 128kb (i.e. M27C1001) ROM and have the LKs are wired for 512kb it will still work?!

Also, I still can't see the 'hardwired' connections on the PCB even though I now should know which ones to look for  :-[

robcfg

Have you taken a look at the cartridge PCB pictures here?

redbox

Quote from: robcfg on 22:52, 31 October 10
Have you taken a look at the cartridge PCB pictures here?

Yes, but I still can't see where LK1 and LK6 are hardwired, for example on Board: 2700-023P-1.

And it doesn't tell me if I can use a M27C1001 (128kb) ROM when my cartridge has the LK settings for a 512kb ROM. The configuration for Robocop 2 would suggest that you can do this?

Bryce

They're not soldered on bridges you should be looking for, they're part of the PCBs tracks. Have a look at the pictures below, I've highlighted the bridge tracks...

Bryce.

redbox

Thanks Bryce, I can see them now.

So my Robocopy 2 cartridge has LK1 and LK6 hardwired and is a M27C1001 128kb EPROM.  It's definitely not the 512kb one that's mentioned elsewhere which is odd as it is an original.

I'm not going to mess with the LKs for now, I shall just order some 128kb EPROMs and see if I can get them working first!

Gryzor

So why would they do that? Copy protection mechanism?

robcfg

I'm not 100% sure but I think the pinouts for the MC27... is the same regardless the capacity of the eprom so, in case of need, you could use a 512kb one if you don't have 128kb ones.

Bryce

#19
The capacity isn't directly what's important, the physical size of the IC is the reason the LKs are needed. A 128K EPROM has 28pins, the 1Mbit / 2Mbit ICs have 32pins. The shorter 28pin EPROM needs 5V on a pin that is used as an address pin on the 32pin IC, so the LKs are used to disconnect the address pin and connect it to the 5V line.

Bryce.

Edit: Here's the pinouts, as you can see if you start from the bottom, the pins are identical on both ICs, the larger IC just adds the new address lines, but shifts the 5V Vcc in the process. Pin 30 (NC) is A17 on larger EPROMs.

redbox

Quote from: Bryce on 21:56, 02 November 10
The capacity isn't directly what's important, the physical size of the IC is the reason the LKs are needed. A 128K EPROM has 28pins, the 1Mbit / 2Mbit ICs have 32pins. The shorter 28pin EPROM needs 5V on a pin that is used as an address pin on the 32pin IC, so the LKs are used to disconnect the address pin and connect it to the 5V line.

That makes sense (even to me) but doesn't explain why on the wiki page it says that different LKs are needed for different capacity EPROMs even though these (128kb/256kb/512kb) all have 32 pins...?

I'm just glad my Robocop 2 is a 128kb ROM with LKs to match as I've been able to buy some cheap EPROMs on eBay.  Can't wait for them to turn up.

Bryce

The chart on the Wiki Page only shows what's 100% NEEDED, for example, LK4 on an 128K EPROM could be connected if you wanted, it wouldn't do any harm, but because the 27C1001 doesn't have an A17 you don't need to connect it.

With LK2 it's a little different, whereas most EPROMs have a PGM pin, the 27C4001 doesn't because it needs an A18 pin and they ran out of pins. The PGM pin gets pulled low to signify that the EPROM is to be programmed, but NEEDS to be held high otherwise. Because of this 27C4001 has a different programming sequence and if this pin was left connected to the CPCs A18 on a 27C1001 or 2001, the EPROM would keep switching to program mode (not a good thing).

Bryce.

redbox

So I finally have some time to have a go at making my custom EPROM cartridge (my second ever hardware project).

I bought a solder sucker, EPROM socket, EPROMs and EPROM programmer and have undertaken the first step of removing the Robocop 2 ROM and putting the socket into the PCB.  It went better than I thought it would, but I did manage to break a PIN off the Robocop 2 ROM when removing it  >:(

Now I have to program an EPROM to see if it worked (I was hoping just to put the old one in the socket for my first test) and am currently setting up my EPROM programmer.

Here are some pictures:

Bryce

I wouldn't worry too much about breaking the pin off. If you de-soldered the entire EPROM pin for pin with the desoldering pump, then it has probably been internally damaged anyway.

Otherwise, it looks like you did a very neat job, hope it all works fine.

Bryce.

redbox

#24
Well, I programmed an EPROM (when I found one that was actually blank - damn Chinese eBay sellers!).

And guess what.  I doesn't work.

So I guess I'm going to have to check all the solder connections on my board?
Or have I fecked the ASIC like Bryce said I would?  I only used a 12w soldering iron as per the CPC Rulez.  But I didn't cut the legs of the original ROM (as they didn't either).  :(

I get nothing on Plus boot-up, just black screen of the pink with lines that you get when ASIC doesn't connect.

::)

Powered by SMFPacks Menu Editor Mod