Changes

MegaROM

2,349 bytes added, 21:37, 5 March 2013
Undo revision 86635 by [[Special:Contributions/EBO|EBO]] ([[User talk:EBO|talk]])
The MegaROM is a low-cost replacement for a standard ROMBoard, but rather than using an array of 16k 16 kb EPROMs as traditional ROMBoards use, the MegaROM uses a single 8x128k (1Mbit) or 8x256k (2Mbit) EPROM (or Flash EPROM) divided into 16k 16 kb blocks. This not only reduces the size of the device significantly, but due to the fact that 16k 16 kb EPROMs are a dying breed, it is much easier and cheaper to find a single 8x256k EPROM than buy sixteen 16k 16 kb EPROMs.
The complete hardware of the MegaROM was developed by [[User:Bryce|Bryce]] of [[FutureSoft]]. The original idea came from discussions with [[TFM]] of [[FutureSoft]]. The main goals being that it would offer up to 16 ROM positions, be very low cost and be a single-sided PCB design so that it could be easily built by most electronic hobbyists.
The original idea for It is the MegaROM came from discussions with TFM/FS. The main goals being that it would offer up to 16 predecessor of the Flash ROM positions, be very low cost and be a single-sided PCB design so that it could be easily built by most electronic hobbyistsbased [[MegaFlash]].
If you have any further questions regarding this project contact [[User:Bryce|Bryce]] through the Wiki Forum.
== Warning / Disclaimer ==
The main component on the PCB is the EPROM itself. This may be any pin compatible 8x128k (8 virtual ROMs) or 8x256k (16 virtual ROMs) part such as the 27C1001 (8x128k UV EPROM), 27C2001 (8x256k UV EPROM), 28F020 (8x 256k Flash EPROM)see the list of compatible tested EPROMs below. The EPROM should have a response time of 200ns or less. The five other ICs are standard TTL Logic devices and only need to be of the type 74LSxx (74HCTxx, 74Fxx etc will also work but are not necessary in this application). The unconnected pins on the EPROM in the schematic above, should be connected to the associated Address and Data bus pins of the 50way connector. I just left them out for clarity.
== Parts List ==
As always, one of my priorities is to keep the price as low as possible, the cost of the entire board should come in at under 11€around 10€. Here’s the Parts list (including a an 8x256k UV EPROM) and their approximate prices for a (Centronics version):
{|{{Prettytable|width: 700px; font-size: 2em;}}
|''Component''||''Quantity''||''Price''||''Total''
|-
|27C200127C-2001-100 EPROM||1||3.90€||3.90€
|-
|74LS374||1||0.25€||0.25€
|1K 1/4W Resistor||1||0.05€||0.05€
|-
|1N4148Diode||1||0.02€||0.02€
|-
|32 Pole IC Socket||1||0.50€||0.50€
|}
Note: In the picture above and also in the price list, I have chosen to use a header connector on the PCB. I did this because I intend using the MegaROM on both a UK CPC464 and a German CPC6128 and by using a header connector I can swap the connection cable to suit which CPC I'm connecting to. You may choose a direct connection to the PCB if you don't need this feature, dropping the price another few cents.
 
[[Image:MegaROM_Cables.png|400px|centre]]
 
 
The Following EPROMs have been tested and are compatible with the MegaROM:
 
{|{{Prettytable|width: 700px; font-size: 2em;}}
|''Size''||''Type''||''Part No.s''
|-
|8x 128k||UV||27C1001, 27C010
|-
|8x 128k||Flash||28F010, 29C010
|-
|8x 256k||UV||27C2001, 27C020
|-
|8x 256k||Flash||28F020, 29C020
|-
|}
== Construction Tips ==
The finished PCB is 73mm x 73mm. The four holes (M3) in each corner can be used for mounting within a housing or as I have done here, adding legs to keep the PCB off the desk. If you use metal parts as I did, you will need to add plastic isolation insulators beneath the metal parts to avoid short circuits, as or damaging the tracks that are routed under the metal.
Closing an IDC connector on a 50way flat cable can be a difficult task and if not done properly, may cost you a connector or two. I recommend first putting the cable in position and pushing it slightly closed to keep the cable in place, then place the connector in a bench vice with rubber between the metal of the vice and the connector, then slowly closing the vice on the connector until it reaches it's home position. You may have to re-position the connector a few times until it's completely closed. Bad connections with these connectors are the cause of many peripherals not working, the pins in the centre cause the most issues, so turn the connector 90° in the vice for a final squeeze to make sure these pins are properly connected. Don't try closing an IDC connector with a hammer, pliers or other tool that only applies pressure to a tiny area of the connector, it will break!
== Using The MegaROM ==
Using your favourite EPROM Programmer, you can burn the ROM images to the locations shown below. You can either do this ROM for ROM or compile one single ROM file to burn in one go. You should set the EPROM programmer to only write to the area required, in case you want to add additional ROMs later, any unwritten area will be regarded as empty by the CPC. Below you can see the memory allocation for each virtual ROM within the EPROM. This file is also available below in PDF Format.
 
A full list of available ROMs can be found [[ROM|here]].
The MegaROM is compatible with all 464, 664 and 6128s. It may also be compatible with the CPC plus, but this has not yet been tested[[Image:MegaROM_Screenshot.png|400px|centre]]
The MegaROM is compatible with all 464, 664, 6128, 464+ and 6128+ and can be used to host standard ROM images such as [[AMSDOS]], [[BCPL]], [[FutureOS]], [[MAXAM]], [[Protext]], [[QuickCMD]], [[Utopia]], [[VDOS]], [[XD-DOS]]. A full list of available ROMs can be found [[ROM|here]].
 
CPC Specific Limitations:
 
* CPC464/664 - The 464 and 664 only scan and initialise ROMs 7 to 0 at start-up. ROMs 15 to 8 are only accessable if manually initialised.
* CPC6128 - Classic CPC6128 can not overwrite the internal ROM 7 with an external device, to make use of the external ROM 7 the CPC must be modified to allow the internal ROM 7 to be disabled (eg: By adding a switch to the internal ROMs Chip Enable pin)
 
 
The MegaROM fully decodes the Address and Data buses, so it should not clash with any other official expansions installed in parallel or plus cartridges. However, adding two or more ROMBoards to a CPC in Parallel will cause crashes in some circumstances.
== Resources ==
== Further development ==  I am currently working on a PLCC (that's those even smaller EPROMs with pins on all four sides) version of the MegaROM. The functionality is identical, it's just smaller. If 73mm x 73mm is too big for you, then wait a bit, the new layout will be along soon.  If you have any further questions regarding this project, please contact me through the Wiki Forum.  Bryce. [[Category:HardwareDIY]] [[Category:PeripheralsExpansion ROM]] [[Category:DIYFutureOS]] [[Category:Peripherals]]