CPCWiki forum

General Category => Amstrad CPC hardware => Topic started by: revaldinho on 22:10, 24 April 18

Title: Open Source, DIY 512KB RAM Expansion
Post by: revaldinho on 22:10, 24 April 18




I just wanted to let you all know that I'm working on a DIY 512KByte DK'Tronics compatible RAM expansion.


In fact I have a working version already, but I'm only about half way through the project, more or less.


Now obviously there are a number of RAM cards about, and some much larger than 512KBytes. If you're after a ready made card then this one is probably not for you. What's different about this one is that the logic implementation will be done entirely from standard 74 Series logic chips: no FPGA, no PALs, no CPLDs.  All components will be through-hole types - no surface mount at all. This is very much intended as a DIY project that anyone with the most basic of soldering skills can assemble themselves once they have the PCB.


Now although the goal is to make a 74 Series board, I have cheated a bit and prototyped the card first using a Xilinx XC9572 CPLD. I just wanted to make sure that I had all the logic right to begin with and reprogramming one of these parts is a lot easier and more reliable than breadboarding everything first.


I got my first PCBs back last week and have pretty much finished testing them now using my CPC464. I've run some memory test programs of my own and have been able to load and run the DK'Tronics original RAM expansion software and RSXes. The card works fine running off the CPC supply or with an external PSU, and with the latter I've been able to run all tests between 4.35V and 5.5V and measure about 43mA of current at a nominal 5V. Logic looks good and timing robust, at least for the CPLD version.


So, CPLD version up and running and I have created a netlist and a trial PCB layout for the 74-series version already, mainly to check that it would be doable in the free version of Eagle. And it is. I haven't tried to shrink the layout yet. I need to do a bit of simulation first to check the gates logically vs the CPLD code and get a rough idea of what the new timing will look like. There may be bugs in the 74 series version and some logic may need refactoring if timing looks to be an issue. And I'm sure that there are some improvements to make to the PCB aside from any squeezing and shrinking to reduce the costs. I would guess I'm a few weeks away from ordering any more boards given the amount of time I have to spend on this.


Just one other thing about this project then: as it says in the subject field, it's all open source. All the CPLD and PCB source is available on GitHub (https://github.com/revaldinho/cpc_ram_expansion) under the GPL3 License (https://www.gnu.org/licenses/gpl-3.0.en.html). The Eagle PCB file for the original prototype (with the CPLD) is also available at OSHPark (https://oshpark.com/shared_projects/UwZ7VwqU), so you are free to download that or even order boards from there should you wish. I will put the final 74 series layout up on OSHPark too (assuming I can make a robust implementation), but if more than a few people are interested we could run off a small series of boards much cheaper elsewhere.


So now you know. Hopefully a DIY board will appeal to few people and we can get a small batch of boards made. If not, well, I have a couple of other similar DIY projects in slightly earlier stages of development. More about those some other time perhaps.


R.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: LambdaMikel on 04:16, 25 April 18
Cool stuff!
Can you try getting a assembly quote from seedstudio ?
They are surprisingly inexpensive. I am currently considering their service for one of my projects.



Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: LambdaMikel on 06:10, 25 April 18
https://www.seeedstudio.com/fusion.html (https://www.seeedstudio.com/fusion.html)
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Bryce on 08:18, 25 April 18
Hi revaldinho,
       very nice project and I like the fact that you are doing it in "old school" 74 Series. One comment: looking at the layout, it looks like you have the 50way connector in the opposite orientation to most CPC expansions, whic means that users that have an MX4 board or standard centronics/edge connectors won't be able to use your expansion without an adapter. Maybe you should consider flipping the connector for the final version?

The uneven numbered pins (1,3,5,7...) should be nearest the edge of the PCB with pin 1 on the left when looking at the PCB from the component side. this would make it compatible with all current expansion connectors and adapters.

Bryce.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: revaldinho on 13:45, 25 April 18
Thanks for the comments.

Let me deal with those back to front, which is indeed what I managed to do with the connector on the prototype.

Yes, on the connector I will be swapping things around to be MX4/ribbon cable compatible and I'll make sure all the layouts and photos are updated shortly. 

On my prototype the pins are physically in the 'right' order running from left to right; my blunder was to get the upper and lower rows swapped over. Fortunately I was able to get around this fairly painlessly by just mounting the box connector on the back of the board instead of the front and connecting my ribbon cable/edge connector upside down. It works, but new boards will have the edge connector on the front and follow the usual convention.

I have ordered an MX4 board from TotO but don't have it yet. In the meantime, at the same time as getting my boards done I ordered a couple of LamdaMikel's adapters (thanks for making those so easily available via OSHpark) thinking I could have the RAM card plugged into the box socket and my Zaxon DDI-3 card on the extension edge connector. Unfortunately that doesn't work - the LCD display on the DDI-3 sticks out too much and is too close to the RAM card for them both to fit. I came up with a solution for that last night though. I cut the adapter down to size and soldered it directly on the back of the DDI-3 via the edge connector holes - the DDI-3 pins protrude just far enough to solder on another board behind - leaving the IDC socket holes free to take another box connector. So, now I have a ribbon cable (from an old internal SCSI disk installation) plugged into the back of the DDI-3. And that means I have access to USB disk and the RAM card.  Before that I was using the tape player to get my first BASIC tests up and running - a truly retrotastic experience !

I'll get quotes from a couple of PCB suppliers including seeed for the final boards. Just as an indication though, the OSHPark price would be $1 per sq inch in multiples of 10 boards, so that's likely to be about $12 a board.  Seeed looks like it'd be more like $5 a board, but I'd have to generate a trial Gerber file for them and upload it to get a more accurate quote.

Still, I'm getting a bit ahead of myself here. I haven't finished the 74XX board yet. The current netlist and layout are still work in progress and I have a bit of verification work to do before I'm really sure of the final configuration and size.

R
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Querubin on 22:34, 25 April 18
Excellent project!,
One question. Why not to make the pcb like the original one? With both edge conectors male and female. It will be great to plug the memory expansion and behind it the DDI-1 on a 464 or the M4 board without MX4 needed.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: revaldinho on 09:00, 26 April 18
Thanks Querubin


I haven't gone for the pass through edge connector idea because I thought it would make the build a lot more fiddly - looks like you end up with 2 PCBs at right-angles to each other from the photos in the DK'Tronics RAM card gallery (http://www.cpcwiki.eu/index.php/Dk%27tronics_Memory_Expansion_Gallery). Also the MX4/Ribbon connector seems well established and works with all CPCs regardless of whether they have edge connectors or Centronics plugs.


LambdaMikel's adapter (http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/sharing-is-caring/) would let you use one MX4 board and give you a pass-through for the DDI-1 which is pretty close.


Those DK'Tronics boxes were quite stylish though, especially the original '464 style ones. So if someone were to be able to 3D print a reproduction case then yes, might be nice to try and make a board in the right form factor and with the pass-through edge connector.


R

Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Bryce on 09:18, 26 April 18
Adding a DKTronics type pass through introduces so many problems that you don't want to have:

- Multiple PCBs that need to be placed in a jig to solder reliably.
- Expensive parts (long pin 50way edge connectors) that are very difficult to source.
- Multiple layouts required because the edge connector version won't work on Centronics CPCs.
- Potential failure point, because you are trying to provide mechanical functionality with solder joints.

Bryce.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Querubin on 10:27, 26 April 18
Thanks both. The problem is not MX4 boards available.
I will be interested on one classic pcb.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: GUNHED on 13:35, 26 April 18
Contact Tot0 for MX4 boards.  :)
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Mikes on 14:43, 26 April 18
Interesting ;)

Enviado desde mi MI MAX mediante Tapatalk

Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: revaldinho on 21:38, 03 May 18
Just a quick update on this one.


I finished the 74 series design at the weekend with just enough simulation to be confident it'll match the working CPLD.


I sent the PCB order to Seeedstudio (https://www.seeedstudio.com/fusion.html) and had an email to say that the PCBs went into fab today.


Seeedstudio is very, very cheap - I had to order a 'protopack' of 10 boards, but the entire cost including postage was only about £12.50. Postage isn't quick though, so it'll be the best part of 3 weeks before I get hold of the boards and have a chance to build and test them.


Let's assume the boards are good, or at least I can find and fix any gremlins there may be with a quick spin. I'd like to just quickly gauge how much interest there would be from people actually wanting to build their own RAM boards.


I could probably put together a complete kit including a single board and all components for under £25 including postage to the EU.


Alternatively (and easier for me) I could mail out boards at a flat rate of, say, £5 including P&P and you could source your own components. I've attached an example BOM from digikey (https://www.digikey.co.uk) to give an idea of what this might cost.


If you would be interested in building one of these for yourself, could you post to this thread please and say whether you would prefer a complete kit or just a bare board.


Thanks.


R


PS. Also just to be clear, the board will have an MX4/ribbon cable compatible IDC header so if you're wanting to plug it directly into the CPC edge connector then you would also need an adapter like [size=78%]LambdaMikel's. (https://oshpark.com/shared_projects/3yA33GYO)[/size]



















Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Audronic on 23:40, 03 May 18

@revaldinho (http://www.cpcwiki.eu/forum/index.php?action=profile;u=1776)


I would be interested in 1 (one) Bare Board posted to Australia.
Thanks     Ray
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Bryce on 07:41, 04 May 18
Bare board for me too.

Bryce.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: asertus on 08:36, 04 May 18
Sorry, me too, if still available
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Kris on 09:34, 04 May 18
1 bare board for me too ;)
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Mikes on 12:59, 04 May 18
It is possible to have a board yet? I'm interested in one, please ;)

Enviado desde mi MI MAX mediante Tapatalk

Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: revaldinho on 17:07, 05 May 18
Quote from: Mikes on 12:59, 04 May 18
It is possible to have a board yet? I'm interested in one, please ;)




I will have at least 7, maybe 8, spare in the initial batch after I've assembled a couple for testing. Hopefully all will be well with the first batch but I don't rule out having made some blunder which would mean a fix... :D


So, 5 interested in bare boards should be no problem, but still at least a couple of weeks away from me seeing the boards yet. Easy to get more boards if others are interested.


R.

Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: ungatonipon on 12:59, 07 May 18
[edit] interest withdrawn
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Chinnery on 13:06, 07 May 18
Can you put my name down for a bare board too pls.  ;D
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: LambdaMikel on 21:20, 11 May 18
Quote from: GUNHED on 13:35, 26 April 18
Contact Tot0 for MX4 boards.  :)


Unfortunately, DDI-3 does not work with MX4 mother board on the 464.
My solution to this is to use 2 of my 464 expansions port connectors.
The first one plugs into the 464 and has the memory expansion, then
there is a edge connector to IDE cable to the next 464 expansion port
connector, which is used in reverse (i.e., input = IDC Box Header,
output = edge connector). Then I plug the DDI-3 onto the edge connector
output of the second adapter. That works very well, unlike the MX4 motherboard. Something electrically weird is going on with the MX4 motherboard.

Of course, that's only required if the board is either to heavy, or would be too close to the M4X board in the first adapter (otherwise, it could be plugged directly onto the pass through of first adapter, of course)
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: LambdaMikel on 15:49, 12 May 18
Btw, please put me on the list for a PCB too!
Thanks!  :)
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: revaldinho on 22:07, 17 May 18
Right, time for a brief update on this project because ... the boards have arrived!


I have built one (see the snap attached) and generally it's good news, very good news really. There is one glitch but I'll come to that later.


As far as getting the boards done is concerned, I used Seedstudio (https://www.seeedstudio.com/fusion.html) for the first time, sending them a set of files generated by the free version of Eagle and picking the standard prototype service with cheap 10-18 day post. I made the order on the 29th April, had an email to say they were in the fab on May 3rd and the boards arrived this week on May 15th. They look pretty good and that timescale is very reasonable considering the price. I will definitely use them again, and indeed I have an opportunity to do so immediately ! :D


So does the board work ? Yes, it does. How well ? Very well, thank you very much and I mean well in the sense that the board works with a voltage supply well under 4V, much lower than the CPLD based prototype, and appears to draw very little current at all. I even have the IDC connector on the right side of the board this time. I have tested on my CPC464 with just the RAM board connected either to a ribbon cable from the edge connector or using one of LambdaMikel's adapters (https://oshpark.com/shared_projects/3yA33GYO). Tonight I made up another ribbon cable and have tried again with the RAM card connected on the back on my Zaxon DDI-3 board. All fine.


It's all working then, so what's the glitch ?


Well, now there's the thing. Actually to my great disappointment it didn't work first time and I had a bit of debug to do. Obviously I have done the debug to get things working, so that didn't take very long, but I now need to make a couple of changes to the board layout before making boards available for anyone else. I will ship an updated board design to Seeed this weekend, and then based on their turnaround this time I could expect to have boards ready to post out in about 3 weeks time.


If you're interested I can tell you what the issues were.


When the boards didn't work I was a bit stumped. After all, I was confident in the actual logic design since I had prototyped it in the CPLD card and had then simulated the 74 series version to check my mapping. I had even done some basic simulation with timing to be confident that I wouldn't have a timing issue and even if that was a bit imperfect there just seemed to be loads of slack available so a ropey timing issue seemed unlikely too.


If not the logic then most likely the problem was in the layout. How could it happen that the layout would not actually match the original netlist ? This is a bit of a long story, but the gist of it is that I'm using my own Jython/Java code to go directly from a Verilog-like netlist to an Eagle PCB board script in one fell swoop. This works pretty well, for example the CPLD card was right first time, but it does mean that I have to prepare my own component libraries to map from the Eagle libs to a python-based lib format for my own tool. Guess what. I had made an error in the mapping the pin out of 2 of the ICs from Eagle to the python lib: a 7432 quad OR and a 7475 dual latch pair. So, yes I had done the usual checks like write out a netlist from the board design and checked that it matched exactly the original source ... but that doesn't check the internals of the library elements. I should have checked those a little more carefully.


The 7475 error was pretty easy to fix on the board - the enables for the latch pairs were swapped over - and to be fair the 7475 has a pretty weird pin-out for a 74 device anyway. So that was easily corrected and indeed I could fix the remaining boards for that one. Unfortunately the 7432 (mis-)mapping was a bit more complicated. I've resolved that temporarily by just bringing all the socket connections off the RAM board and into a breadboard where I can correct them. I can't see an easy way of fixing this on the board manually. So, a new rev it is then to make a proper job it it, and at these prices it's not exactly a disaster but it will be a little more delay.


I have fixed the library elements and updated my netlister project already. I don't need to change any of the RAM board netlist or component placements so making a new board design is a matter of just rerunning the scripts and then tidying up some of the power trunks and routing manually as I did before. As I say I will probably do that at the weekend and just do a bit more testing of the board in the meantime.


R.



Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Bryce on 07:52, 18 May 18
Very nice work. The PCB could be a lot smaller though.
Bryce.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: revaldinho on 08:23, 18 May 18
Thanks.


Yes, the board could be smaller. There is a lot more vertical signal routing on the back side in fact but I didn't really squeeze the layout at all.


The thing is, ordering from Seeed there isn't much motivation to make it smaller. The board cost (ex. postage) is just $5 for ten 100x100mm boards. There is no discount for going below that size, well not in the kind of quantities I'm looking at anyway.


My other limit is the free Eagle PCB tool which restricts you to 100x80mm and I think that's pretty much what we have here.


So, with that in mind I fixed the size and chose to use trace widths and spacing much larger than the minimum permitted, hoping to eliminate any manufacturing defects and make the circuit more robust. You can see the vdd tracks from space!  :D
R
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Sykobee (Briggsy) on 11:43, 18 May 18
Very nice. Put me down for one (a kit would be great, but I'm sure I can manage a digikey order).


Would it be better to centralise the M4 connector at the bottom, for balance, or maybe that wouldn't work if someone has made an M4 case (are there M4 cases?).


Also I wonder how hard it would be to get to 1MB or 2MB, given you have board space?
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: revaldinho on 21:39, 18 May 18



Would the board route with the connector in the absolute centre ? Actually I think I started off with the connector in the centre and moved things around to where they are now to improve the routing. Here's a snap of the underside of the board (attached) where you can see that having the connector offset to be underneath the RAM IC has allowed the relatively large number of address and data signals to have short paths with few vias. Moving the connector back to the centre would probably work although there would be more horizontal routing and vias and I think a lower quality result although I'm not really a PCB design expert so I don't really know that it would matter at these speeds. Maybe I could avoid the extra routing anyway by splitting some of the 74 logic on either side of the RAM? That's certainly possible. Well, I don't know. I'm not planning to move the connector for the respin though. I would like to minimise the number of changes given I seem to have a solid working part now.


Just for future reference though, is there any well accepted board size or connector layout for expansion modules to aim for, to fit some easily available case ?


(I do quite fancy having a mini -rack mount type box for a motherboard and expansion cards. Has anyone built one of these ?)


And would a larger memory size be possible in the 'old school' style ?


I think probably not in the 100mm x 80 mm limit here. Although the board looks pretty comfortable for the 512K RAM, there is only the one large RAM IC. I can't find any SRAM parts larger that this 1Mbit (512Kx8)  in a DIL package on Mouser or Digi-Key. Everything bigger is in an SMD pack of some sort. So to stick with the all-through-hole style would mean multiple RAM ICs on the board which would use up space very quickly. There's also the additional decoding requirement which might be 2 or 3 or even more 74 series parts. All in all, I suspect it wouldn't fit. Again, I haven't tried it, but I suspect that's just too many components for this DIY kit approach and board size.


There are plenty of other RAM expansions about though including at least one 4MB one in development here (http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/wanted-re-implementation-of-retro-ram-expansion-512-kb-min-dktronics/msg158675/#msg158675). If you're not quite as intimidated by SMD soldering as I am, you might even be able to get one to build yourself  :D




R



Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Duke on 07:41, 19 May 18
Quote from: revaldinho on 21:39, 18 May 18
Just for future reference though, is there any well accepted board size or connector layout for expansion modules to aim for, to fit some easily available case ?
MotherX4 (which many use) plugin boards are normally ~80x50 mm with right angle male IDC connector front and center mounted. See ie. Playcity, Xmem etc cards.
Not that it's very important, but it looks nice maybe :)
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: gerald on 11:32, 19 May 18
Quote from: revaldinho on 21:39, 18 May 18
Here's a snap of the underside of the board (attached) where you can see that having the connector offset to be underneath the RAM IC has allowed the relatively large number of address and data signals to have short paths with few vias.
Having the RAM parallel to the connector would be far better from a routing point of view since data and address are both grouped on the connector and the RAM. Note also that you don't need to match address and data bit on the RAM level, it does not matter. You can shuffle the bits to ease the layout  (ie putting A10 from CPC to A1 on the RAM).
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: revaldinho on 12:24, 20 May 18
Yes, in fact if you look closely you can see that the address lines are out of order going from connector to SRAM, so that's at least one trick I didn't miss  :D


Have done a bit more testing today and yesterday.


I can run the DK'tronics RAM Expansion RSXes and it correctly identifies the 256K portion of the expansion. Typing in the screen swapping demos from the manual (|SAVES, |LOADS) all works fine.


Also this weekend I have assembled a ROM board so now I can try the Silicon Disk software. That works fine too both in AMSDOS and under CPM2.2 (I have a '464).


So that was all looking good.


My ROM board has the option to switch the lower ROM out too, so I used that to switch firmware and BASIC to v1.1 to turn my '464 into a 6128, nearly.  I thought that I would be able to boot into CPM Plus. I just get this message though "This program will not run in this environment. Press any key". Also I thought I should be able to run the original Amstrad CPC6128 bank manager software supplied on the 6128 system disk. I get a "Load failed" if I try that though.


Is it possible to be DK'tronics compatible but not fully supporting something in the way the 6128 handles its internal 64K expansion ? (And of course I have a Zaxon DDI-3 as my disk drive rather than a DDI-1 - is there any known issue with that in a 'fake' 6128?)


R
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: rpalmer on 13:28, 20 May 18
The reason hardware attached to a 464 fails to replicate the 6128 is that for configuration 3 address range &4000 to &7fff is mapped to &C000 to &FFFF (and referenced the default memory), but the original &C000 to &FFFF is mapped to an external memory bank. This is possible only on a 6128 since the internal PAL wont get confused by the re-mapping since there is no address feedback, whereas an external expansion will need to handle address feedback and can get quite difficult to get right (from a timing perspective).

Address feedback is when the original mapping tried to change the internal address to become &Cxxx which it then sees (on feedback) and thinks it is for mapping a external memory segment. The outcome from this is that the default memory from &C000 to &FFFF is no longer visible and causes programs to go awry. It can be overcome with a CPLD/FPGA with some very tricky programming, but again it can be quite arduous to get right.

My 4Mb memory expansion cannot handle this (address feedback) on a 464, but on a 6128 it is not an issue as the internal PAL works in unison with the external expansion.

rpalmer
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: revaldinho on 13:53, 20 May 18
Aha ! OK, I didn't know that. I've been working only from the DK'T Technical Manual. That's definitely not going to happen with a handful of 74 series ICs.


So, that's all good then. In that case the board seems to be fully DK'T compatible which was the original goal, and that's what the final 'old school' version will be.


I'll get on with the layout fix and get the new boards started.


R.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: IanS on 18:37, 20 May 18
Quote from: revaldinho on 13:53, 20 May 18
Aha ! OK, I didn't know that. I've been working only from the DK'T Technical Manual. That's definitely not going to happen with a handful of 74 series ICs.


So, that's all good then. In that case the board seems to be fully DK'T compatible which was the original goal, and that's what the final 'old school' version will be.
The dktronics memory boards do nasty things with mreq to support more of the memory maps. See this thread for more details - http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/464-and-ram-extension/
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Duke on 21:40, 21 May 18
Quote from: IanS on 18:37, 20 May 18
The dktronics memory boards do nasty things with mreq to support more of the memory maps. See this thread for more details - http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/464-and-ram-extension/ (http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/464-and-ram-extension/)
Actually it is the only method to do an external RAM expansion on a 464(*1), afaik (thanks to Gerald). The write-through to main memory cannot be avoided unless MREQ is forced high during the write cycle (RAMDIS has no effect on write).
Simple test, that should reveal the issue:
poke &4000,&55
out &7f00,&c4
poke &4000,&AA
out &7f00,&c0
print peek(&4000)
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: revaldinho on 22:22, 21 May 18
IanS and rpalmer - thanks very much for those pointers. That thread in particular was very, very helpful.I should correct my statement then to say that the newly corrected board layout I have would be fully DK'Tronics compatible on the 6128 and later Plus machines ... but wouldn't work in all modes on a '464. Well, that's ok for 6128 owners but I would like to do a bit better than that for the old '464, especially since it's the only machine I own now, and the one I had originally all those years ago.


So, a bit of a think and some playing with my original CPLD-based prototype tonight and I have a partial solution: 7/8ths of a solution to be precise.


Duke suggests this test


Quote from: Duke on 21:40, 21 May 18
Actually it is the only method to do an external RAM expansion on a 464(*1), afaik (thanks to Gerald). The write-through to main memory cannot be avoided unless MREQ is forced high during the write cycle (RAMDIS has no effect on write).
Simple test, that should reveal the issue:
poke &4000,&55
out &7f00,&c4
poke &4000,&AA
out &7f00,&c0
print peek(&4000)

That make sense, but with a bit of lateral thinking there is a solution for that which doesn't involve overdriving any signals !



If I map one of the external 64K banks so that it is always addressed in parallel with the internal RAM it means that I can basically just keep RAMDIS asserted forever. So all writes to 'internal' memory go to both the internal RAM (don't care, except for the video portion) and the external 'shadow' memory. All reads come only from the shadow memory. We never read internal memory again.


Now, in C4-7 mode, when one of the other external banks is selected we can correctly write protect the shadow memory, so running Duke's test above returns the right answer. Yes the internal machine memory is corrupted, but we don't care. The external shadow bank always replaces that for reads so it doesn't matter.


So with this change what I have working at the moment is a '464 mode where the board appears to provide 392K additional RAM which can either be all RAM expansion or, using the DK'T software, a 128K RAM expansion + 256K silicon disk in AMSDOS. OK, we've given up some RAM but all things considered this looks like a good trade off for a '464. (And also on my first pass I've actually given up 128K but I think I should be able to get it working so that I can claw 64K of that back .. but not tonight...)


C3 is more tricky but even so I have fudged a C3 mode so that the 16K block at &4000 gets mapped to &C000 in the new shadow memory. I can't write protect the internal (video) memory at the directly accessed &C000 block but this works well enough that I can now boot into CPM Plus on my 464 either with the '464 ROM present or the 6128 ROM - in both cases needing to use the DK'T |EMULATE command. There is some screen corruption at different times, which doesn't crash the machine of course, but CPM runs and I could load and run BBC BASIC for example.  As Duke and others in the referenced thread have pointed out, you can't write protect the internal RAM without some of that scary looking overdriving of MREQ* or some other signal on the bus. The screen corruption may make this mode unusable. I need to check a bit more.




So, some possibilities here then. I've arranged to borrow a 6128 so I can just double check the compatibility there for myself before making more boards of any kind. Maybe I'll end up with a simple 'old school' DIY board only for 6128 and Plus machines. However, if I can improve on and simplify the '464 mode logic I have now and remap the whole thing to something like 10-11 74 series gates I feel that would be a much better thing, even if I might not quite get the C3 mode working perfectly on a '464. Well, I think so but if most people are really 6128/Plus owners then maybe I should just release the simpler (and now corrected) original board anyway. So any prospective DIYers, please let me know if the effort/delay to do the  '464 mode (and extra chips) are worth it to you or whether you'd be quite happy with a 6128/Plus only board.



And as for the MREQ* overdriving, well I guess I have to have a go at that for myself at some point. I'm not sure it'll make it (as a link option?) on the DIY board,  but I might bodge it in on my CPLD version. Perhaps after I've laid in a stock of replacement Z80s...  :D

R
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: revaldinho on 15:03, 28 May 18



Right, another not-so-short update here.


I have borrowed a CPC6128 to do a bit more testing with my CPLD based prototype and patched 74 series cards. This has been
a bit of an adventure as the '6128 was less than fully working to start with so it has been a bit of fun to sort it out first.


All up and running now though, so I'll try and summarise what I think the current situation is on my attempt to make a
universal card in this table:



        C0     C1    C2    C3    C4    C5    C6    C7
CPC464  PASS   PASS  PASS  FAIL  PASS  PASS  PASS  PASS
CPC6128 PASS   PASS  PASS  PASS  PASS  PASS  PASS  PASS



Looking at the CPC6128 first, I have made one small change to prefer using the first bank of onboard extension RAM to the external memory and
have tested C3 working properly using CPM+ with TurboPascal/BBC BASIC etc. That change is easily accommodated with the other layout corrections on
the 'old school' 74 series boards. All other modes seemed to be working fine anyway as expected. So, that's looking good. I will get back to
fixing the layout this week and then are just the Seeedstudio fab/delivery time away from a spin which I can start to distribute.


I didn't want to give up on the '464 though. I still like the '464. Mine has a nicer keyboard than the 6128 I've borrowed and
I have noticed it's a lot less fussy about the length of ribbon cable dangling out of the expansion port too! And anyway, getting the
RAM card working without any dodgy electrical overdriving of MREQ and ADR pins on the '464 seemed to be a bit of a challenge which
I couldn't resist.


In the table above you can see that the '464 is working now in almost all of the modes.


The key to this is the 'shadow RAM' scheme where the whole of the CPC internal RAM is effectively replaced with one bank from the
expansion. When the shadow RAM is written, the internal RAM is written in parallel, so they almost always have the same values. When
the internal RAM would normally be read, reads are taken from the external shadow RAM instead.


With this scheme, modes C4-7 worked immediately because there is no more apparent corruption of the internal memory when using banked
memory. Yes, the internal memory is still getting corrupted because the CPC hardware doesn't protect it when using external RAM. It doesn't
matter though because the shadow memory is protected and all reads come from the shadow bank. This passes Duke's simple test above, and
I have a much more comprehensive RAM test in BASIC and BCPL I'm using to test all banks and base memory in this mode. More importantly
the shadow scheme allows use of the DK'T silicon disk software and DK'T bank switching software and runs various of the DK'T demos.


Mode C3 is listed as 'FAIL' in the table above, but in fact it's partially working and is able to boot the '464 into CPM+ using the disk
images taken from here


http://www.cpcwiki.eu/index.php/DkTronics_CPM (http://www.cpcwiki.eu/index.php/DkTronics_CPM)


In the 464 mode C3 the odd mapping of 'internal' &4000 to 'internal' &C0000 to handled in the shadow bank. However, data still goes to the
internal video memory at address &C000 as usual. So,  as you can see in the screenshots the outcome
is that CPM+ runs (and with lots of memory in BBC BASIC where HIMEM=60K), but there is a fair bit of 'snow' on screen. This is not great
but actually it's not as bad as I thought it would be; the snow does get cleared up periodically so typing and running the sphere demo
in BBC BASIC was easy enough for example.


As an aside, I am wondering whether a small motherboard hack might fix this completely - intercept the gate array we* signal to
internal RAM and replace it with we* OR RAMDIS. I looked in the service manual and the track is very easy to find near the gate
array signal and then all the DRAM WE* pins are nicely connected in one long chain. So the track cut and resoldering points
look to be very accessible. Something to look at later maybe, unless someone already know the fatal flaw with this idea.


Back to the current implementation: the 464 'shadow mode' doesn't work with the 6128, so it has to be an link or switch selectable option.


For the 464 mode to work we need to give up one bank of 64K RAM for use as the shadow memory. The DK'Tronics software is a bit fussy
as to which bank you use for this as it stops checking for RAM as soon as it finds one bank aliassed to another (ie missing). In other
words if you select bank 000 as the shadow then the DK'T software gives up and reports no memory extension present at all. On the other
hand if you select bank 111 as the shadow then the bank manager software can correctly find 448K available, but the Silicon Disk software
fails to notice a bank missing and thinks that it still has access to a 256K disk (banks 100-111). That's not going to end well.


So, for 464 mode the choices are


- bank3 as shadow which provides 192K DKT RAM expansion + 256K silicon disk
- bank7 as shadow which provides 448K DKT RAM expansion, no silicon disk


Possibly the second of those options could be revived to be a 256K RAM expansion + 192K silicon disk with a hack to the DKT silicon disk
software. That would seem to be the best mode given that a standard 3inch disk is only 180K anyway, so the 192K is more than enough to help
out with disk copying etc. Another thing to put on the to-do list, but that would be software only. Later. Or maybe, later still.


Right, so all this has been done with changes in my CPLD based prototype where a few lines of code can generate rather inconveniently large
numbers of logic gates when it comes to the old school style. Fixing the layout (actually layout library) issues of the first 'old school' boards
is something I've already done. I want to add the tweak for the 6128 internal extension in too, but that will be fairly easy and I'm sure I can get
another IC on the board without too much trouble if that's what it takes. I am planning to remove the external power connector by the way, because I have
already measured power on the v2.00 boards, and don't really need to do that again. Once I've done this I'll get one batch of 6128-only boards done.
I'll update the thread when those are back and tested and, assuming no new issues  will make them available for some low flat fee which is mainly to cover
postage and packing.


The 'universal' 464/664/6128 board though needs a bit more time. I want to do one of these too with 464/664 and 6128 modes and the switchable shadow bank selection.
I think it can be done in a dozen 74 series devices. I might struggle to fit that many into the 80x100mm limit, but I want to have a go at it anyway.
So, if you have a '464/664 DIY board and are interested in a 448K memory expansion with the limitations described above, then this would be the one to wait for.


R


Screenshots:


IMGP8204 - CPC464 with RAM card running BBC BASIC demo under CPM+, HIMEM = 60928, light dusting of snow
IMGP8205 - CPC464 with RAM card running ED80 under CPM+, free space =53754, no snow !
IMGP8206 - CPC464 with RAM card booting into CPM+, fair amount of snow

Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Duke on 16:22, 28 May 18
128KB games (probably not many) and demos that use &4000 for screen RAM, would suffer from the shadow ram method aswell, even if just using C4-C7 banking and doing writes to those.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: revaldinho on 18:59, 28 May 18
Quote from: Duke on 16:22, 28 May 18
128KB games (probably not many) and demos that use &4000 for screen RAM, would suffer from the shadow ram method aswell, even if just using C4-C7 banking and doing writes to those.



Good point.


Any use of internal video memory either at &4000 or &C000 overlaid with external RAM is going to be compromised on the 464, although no problem on the 6128 and presumably the Plus machines.



I accept that the 464 modes can't be perfect without some electrical shenanigans but that's beyond the scope of this mini-project.


Modes C4-7 work fine on the 464 with the screen in the usual place, and that seems enough to have a lot of functionality including the silicon disk working and I think that in itself is worth having in AMSDOS or CP/M 2.2 on a single disk 464 system.


BTW have you got any demos or games in mind I could have a quick peek at ? Would be handy to have a test case I can look at just in case I might get around to looking for a motherboard mod later...


R
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Duke on 19:14, 28 May 18
Yes, probably most things will work.

Quote from: revaldinho on 18:59, 28 May 18
BTW have you got any demos or games in mind I could have a quick peek at ? Would be handy to have a test case I can look at just in case I might get around to looking for a motherboard mod later...
Not in particular
I would check these Demos tough as they use overscan and 128KB ram (with lotsa tricks):
Still Rising, Onescreen colonies, Batman forever, PHX.
For games:
Xyphoes fantasy, Prehistorik 2.

It's only what comes to mind that could cause corruption of display, if they write to the extended banks, they might not.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: revaldinho on 19:17, 10 June 18
I sent off the corrected 6128/plus PCB design to Seeed a week or so ago. Just waiting now for those to come back. I haven't found any incompatibilities using my borrowed 6128 and the logic for that card implemented in the CPLD-based prototype, so hopefully this will be the final cut.



I'm still tinkering with a 464 version using the shadow memory scheme implemented on one of my CPLD protos and have now done some testing on various 128K only games and demos.


Unfortunately I couldn't run the Batman Forever demo because I seem to have the wrong type of 6845 on my particular CPC464  - "CRTC Type 2 is not supported" - rather than any memory issues.


On the games I tried so far
I will test some more while waiting for the 6128 cards to return, but looking a bit of a mixed bag so far.


The DK'T bank switching software works fine in BASIC and the Silicon disk is good in AMSDOS and (more importantly) CP/M which is all good and perhaps makes the card worthwhile for some users including me !


As it is though the card can only run CP/M Plus or the TPA-expanded version of CP/M 2.2 with varying amounts of snow and clearly it's going to be a lottery as to which other 128K-only games/demos will run acceptably or even at all.


At the moment I think the 464 card with the shadow memory mode is likely to be about 14 or 15 ICs plus the SRAM. I'm not really sure this one is worth pushing on as an old-school DIY project given that it can't be perfect without some electrical overdriving of signals which would surely make the board more complex again. It can be done more easily in a CPLD (as in my prototype) and that's ok for me, but wasn't really the point of this project.


At some point I might explore a simpler card that would look a lot like the 6128 version but would also use the EXP* pin to signal when the Mode 3 internal mapping should occur. I was thinking that a small motherboard mod might make it possible to do the internal remapping and memory protection as required by intercepting ADR15 to the gate array and the WE* pin from the gate array to DRAM. The idea being that with EXP* asserted then ADR15 to the gate array would be set, and EXP* and RAMDIS would be factored into the DRAM WE* signal. Unless there's an obvious flaw there. this will be on the back burner for a bit while I get some other stuff done and I'll get back to it later.


R









Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: revaldinho on 22:29, 04 July 18

A bit belatedly, I have another update on this project.


In fact I got the boards back a couple of weeks ago, but have been a bit distracted with other things in the meantime and have been a bit slow to update the thread.  Also I didn't want to post 'til I'd had a chance to update some of the documentation.


Still I'm here now and the news is that the revised boards are back and working.


I have built up two of the boards, one using all HCT parts and the other using a mix of predominantly (faster) AHCT with a couple of HCT ICs to fill in the gaps. There's no noticeable difference in performance of either even when varying the power to the card all the way down to around 3.5V. I haven't built one up with LS chips, but those should work too.


Now I'm sure that my testing can't be completely comprehensive, but so far I have successfully run at least the following software:
(The 128 games all use the first bank of the 512K expansion rather than the internal 64K expansion).


I had to order a 'protopack' of 10 boards from Seeed so I have 8 left over and I think that there were 8 or 9 people who originally expressed an interest in building the cards themselves. So, if anyone from that cohort still wants a bare board, then please PM me with your postal details. You can consider yourselves Beta testers and I'll foot the bill for postage. If there are any left over then I'll charge a flat rate (incl postage to anywhere) of 5UKP per board and can easily arrange for a second batch if needs be.


Now, this is a totally open project so as well as the source being available on GitHub (https://github.com/revaldinho/cpc_ram_expansion), you can order boards or download the gerbers directly from Seeed using the SeeedFusion Gallery project page (https://www.seeedstudio.com/Amstrad-CPC6128-512K-RAM-Expansion-Card-g-1136535).


Of course having the boards is one thing, but you will need to know what to put in them so I have updated the documentation for the project using the GitHub wiki (https://github.com/revaldinho/cpc_ram_expansion/wiki/CPC-512K-RAM-Expansion) . More details on the project area there, including a full bill of materials (approximate cost 14UKP + postage if buying from Digi-key in the UK). Please do have a look at the Wiki and contact me either here or via the GitHub interface if you have questions or improvements to make to the documentation/instructions.


Just to be clear again, this is a 512KByte DK'Tronics compatible expansion for the CPC6128 and Plus machines only and the board has an MX4 connector, so you will need any one of the multitude of compatible expansion boards to plug it into. Seems that everyone has done one, so pick your favourite but if you really want to build another card yourself then I also have a simple 3 slot offering which you can find via my GitHub or Seeed pages.


R

Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Bryce on 07:57, 05 July 18
Going from LS to AHCT/HCT parts won't improve performance. The speed of your device depends completely on the Z80's timing, nothing else. Even if the chips answer quicker, the CPU still waits the entire "timing window", it doesn't jump to the next step any quicker.


Bryce.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: revaldinho on 10:53, 05 July 18
Well, yes. And I did know that of course. :D  My point was only to say that there doesn't seem to be any timing marginality in the 74 series logic which might show up as one logic family working down to lower supply voltages than others.

R




Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Bryce on 12:48, 05 July 18
No, not really, they all tend to start dropping out from around 4.75V, anything above that and they will all perform identically.

Bryce.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: kawickboy on 08:53, 10 July 18
As far i know double dragon 1&2 floppy releases (Richard Aplin) aren't exactly the same. Double Dragon runs with a 128ko cpc (including 464 or 664+64ko) but Double Dragon seems to really need a true 6128. I evend bought a duchet computer FO.DOS (adding the 6128 rom) and the game ran, but wasn't stable.


What about testing games like xyphoes fantasy, prehistorik 2, orion prime, targhan or zapt'balls AE ?
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: revaldinho on 23:24, 11 July 18
Quote from: kawickboy on 08:53, 10 July 18
As far i know double dragon 1&2 floppy releases (Richard Aplin) aren't exactly the same. Double Dragon runs with a 128ko cpc (including 464 or 664+64ko) but Double Dragon seems to really need a true 6128. I evend bought a duchet computer FO.DOS (adding the 6128 rom) and the game ran, but wasn't stable.


What about testing games like xyphoes fantasy, prehistorik 2, orion prime, targhan or zapt'balls AE ?


I've just tried Zapt'balls and Prehistorik 2 and happy to say 128K versions of both run very well on the '464. There is a very small amount of screen corruption during gameplay but hardly anything and the games are both fully playable. I've attached a screenshot of Prehistorik 2 for you to see what I mean.

Just to be clear though, this is using the shadow RAM mode on the CPLD based prototype card. The 6128-only card which is the main event here has no such problems.

I still have a couple of the 6128 bare boards left for anyone else wanting to build their own 'old school' cards by the way.

On a 464 version, I'm not quite sure whether to do anything more with that or not. The shadow mode works perfectly in modes C4-7, and imperfectly but pretty well in the other modes really. That's certainly good enough for what I want to run on it. Even so, I am thinking of respinning the prototype to let me try some experiments backdriving the MREQ* and ADR15 signals but that's probably just for my own amusement. I don't expect this to result in another DIY 74 series based card, and there are already other pre-built '464 compatible cards around such as ToTO's X-MEM and Y-MEM.

R.



Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: GUNHED on 15:30, 12 July 18
You can use the 'OS-Infos' Tool for FutureOS to check if RAM is properly detected too.  :)
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: revaldinho on 21:38, 13 July 18
Quote from: GUNHED on 15:30, 12 July 18
You can use the 'OS-Infos' Tool for FutureOS to check if RAM is properly detected too.  :)


You mean this one ? (attached)


This is the output from the 74 series card running on a 6128 - all banks and blocks present and correct.


I posted out a few of the bare PCBs last week, so hopefully will hear from other successful builders soon. I still have a few PCBs for this card available so open season on those now - first few to ask for them can have them (PM me with your address) and remember this round is free. And I do mean free as beer not just as in speech. Once the first ones are gone, help yourself to the boards from Seeed (https://www.seeedstudio.com/Amstrad-CPC6128-512K-RAM-Expansion-Card-g-1136535) or the gerbers from GitHub (https://github.com/revaldinho/cpc_ram_expansion/wiki/CPC-512K-RAM-Expansion).


Meanwhile back on the '464 I tried my other CPLD proto card using FutureOS too. It boots fine and shows the desktop, you can enter hot-key commands and run the monitor, for example, and all looks great - no snow on screen like with the games in the last screenshot I showed. There's just one problem. You can't see the cursor. It's a little thing, but I can't help thinking that not being able to see the cursor in a GUI is a fail.  ;D



Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: GUNHED on 15:28, 14 July 18
First of all Congratulations to create your own hardware.  :)  Well, if the mouse-pointer / arrow can not be seen in FutureOS then this is a indicator that RAM banking &C3 doesn't work properly. When you OUT &7FC3,&C3 then the RAM block from &C000 to &FFFF will be banked in at address &4000 (this works on 6128, but not on 464 or 664). Due to the differences some RAM expansions have a 464 mode and a 6128 mode, like the X-MEM from Tot0. Since I'm not an hardware expert I'm sure somebody can explain this better.
However, great to see the advances and it seems to run stable. That's great!  :)
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: revaldinho on 15:42, 14 July 18
Quote from: GUNHED on 15:28, 14 July 18
Well, if the mouse-pointer / arrow can not be seen in FutureOS then this is a indicator that RAM banking &C3 doesn't work properly.


Thanks. I assumed that would be the problem. The 6128 card is super stable and appears to work well in all modes running down to a very low voltage. The 464 version on the other hand supports only mode C4-7 completely at the moment and operation in other modes is a bit variable as discussed earlier in the thread. At some point I'll hack the 464 card to try backdriving the A15 signal which seems to be the only solution for mode C3 short of taking a craft knife to the motherboard (but that remains an option too - after all, does anyone really use the LPEN input these days ?   ;D )


R.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Kris on 17:02, 14 July 18
Does this tool exist for Amdos ?
It looks pretty nice (and useful).

Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: GUNHED on 17:08, 14 July 18
Quote from: Kris on 17:02, 14 July 18
Does this tool exist for Amdos ?
It looks pretty nice (and useful).

No, but there is another one, which can be helpful in few cases, it checks which RAM blocks are actually connected, see there:
http://www.cpcwiki.eu/imgs/2/28/E-RAM_Test_2014.zip
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Kris on 17:28, 14 July 18
Thank you for the link ;)
I already know this tool but I think the one from FutureOS is more "visual" as you have all the informations on the screen at the same time.

Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: GUNHED on 16:00, 15 July 18
Yes, true!  :)
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: revaldinho on 23:59, 09 August 18
Two things.


First of all, on the Old School 74 Series board for the 6128 I've had feedback from a couple of successful builders and users now. No issues reported.


I still have a few bare PCBs left and which are still free for anyone else wanting to build their own cards. You just need to PM me with your postal address to get one while stocks last. When I've run out, more boards are available directly from SeeedStudio at the link address earlier in this thread (I'll collect all the details and put up a page on the Wiki for the card soon too). And alternatively I think I have enough parts to build up 2 or 3 cards so if anyone would like a ready-built DIY card (?) instead then I can do that too but those will be 18 UKP each +postage.


Secondly I didn't give up on the '464 compatible card using my original CPLD proto. I had to take a knife to the PCB and rewire some connections with verowire but I seem to have a fully stable expansion now. It passes all the memory test programs I've found, runs CPM+, ZapTball, ChaseHQ, Hard Drivin', Prehistorik2 and pretty much everything else I've tried except for a couple of things which I think are failing because I have the wrong CRTC type (definitely the case with Batman Forever.)


Of course a memory expansion for the '464 isn't all that remarkable as there are plenty of other and larger RAM cards available already. However, I wonder if this is the only RAM expansion card which fully implements mode C3 on a CPC464 ?


Quote from: GUNHED on 15:28, 14 July 18
Well, if the mouse-pointer / arrow can not be seen in FutureOS then this is a indicator that RAM banking &C3 doesn't work properly


As you can see from the screenshots I have a fully visible cursor in the GUI in FutureOS now and no persistent trail of debris following it around, which I believe is what happens with other '464 RAM cards, including the original DK'Tronics version. The FutureOS documentation specifically says that it doesn't support the 464/664 because of this limitation, so I am wondering is this a first ? And does it really matter since hardly anything else seems to use this mode.


R







Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Audronic on 00:39, 10 August 18
@revaldinho


Hi Revaldinho et All

I have a spare blank board (DIY 512KB RAM Expansion) over here in Australia.
If any body over here wants the Board.
Please PM me and i will post it to you.
Thanks
Ray
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: 00WReX on 01:56, 10 August 18
Quote from: Audronic on 00:39, 10 August 18
@revaldinho


Hi Revaldinho et All

I have a spare blank board (DIY 512KB RAM Expansion) over here in Australia.
If any body over here wants the Board.
Please PM me and i will post it to you.
Thanks
Ray


PM sent
Cheers,Shane
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Audronic on 03:20, 10 August 18
@00WReX


Posted


Ray
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: 00WReX on 03:31, 10 August 18
Cheers Ray. Appreciate it. :)
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: GUNHED on 15:07, 10 August 18
Quote from: revaldinho on 23:59, 09 August 18
As you can see from the screenshots I have a fully visible cursor in the GUI in FutureOS now and no persistent trail of debris following it around, which I believe is what happens with other '464 RAM cards, including the original DK'Tronics version. The FutureOS documentation specifically says that it doesn't support the 464/664 because of this limitation, so I am wondering is this a first ? And does it really matter since hardly anything else seems to use this mode.

Holy lord!!! The is for sure THE VERY FIRST TIME I see a CPC464 with fully working RAM mode &C3!!! This is pure awesomeness!!!

The RAM mode &C3 is also used by some demos, by CP/M Plus and by SymbOS. So yes, that's exactly what was missing for the CPC464 since 34 years!

Do you sell the PCB's? More often people ask my for such a device. If would advice them to contact you.  :)
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: revaldinho on 19:12, 10 August 18
Quote from: GUNHED on 15:07, 10 August 18
Holy lord!!! The is for sure THE VERY FIRST TIME I see a CPC464 with fully working RAM mode &C3!!! This is pure awesomeness!!!


I was hoping for a more enthusiastic response, but this will do ! ;D


Quote from: GUNHED on 15:07, 10 August 18
Do you sell the PCB's? More often people ask my for such a device. If would advice them to contact you.  :)


Not yet, is the answer to that one. Hopefully soon though.


At the moment I have only one hacked and reworked PCB to play with and just one '464 to test with. I'd need to do a bit more testing with a couple of boards and a couple more machines to be confident of making any batches of these, but it's definitely on the cards.


I have just sent off a revised PCB to Seeed to get started with this. It'll be up to 3 weeks before I see them though and probably more like mid-September before I might be ready to invite some beta testers to get hold of boards. As usual all will be open source under the GPL3 on Github but my repository isn't quite up to date with my new code yet - I'll sort that out at the weekend.


Just so there's no mystery here though, how is it that this card appears to work completely in mode C3 when others don't ?


Well I was a bit late to the party here but have now caught up with the fact that unlike the '6128 the '464 doesn't write protect base memory when accessing external expansions. The DK'Tronics solution, and I presume the solution that all other cards are using, is to electrically overdrive the CPU MREQ_B signal to prevent base memory writes happening when writing expansion memory. I resisted this initially but my card does this too now, although actually I chose to overdrive RD_B (which the gate array treats as WriteNotRead signal)which has the same effect. As you all know, this method is good for getting all modes other than C3 running.


The problem with mode C3 is that accesses to the 16K block of base memory at &4000 need to be remapped to base memory at &C000. This is handled internally in the '6128, so no issues for any cards on that machine (even my 74 Series one is untroubled by this detail). Not so in the '464 though. Again the DK'T solution is for the expansion card to overdrive a CPU output: this time the highest address bit, ADR15. As others have patiently explained on this thread and elsewhere already, this works fine for writes but for reads any address with ADR15 set may be seen by the gate array as an access to ROM rather than RAM. Supplying the wrong data is never a recipe for success and this is the cause of the usual persistent trail of crud which follows the FutureOS cursor around amongst other mode C3 maladies.


My solution to this actually comes from some earlier experiments I discussed earlier in the thread when I was trying to avoid having to do any of the electrical overdriving by using on 64K bank of the expansion as a shadow memory. The shadow memory worked to some extent, mainly for modes C4-7, and I was able to run some 128K only games fine. It didn't stop those stray writes to base memory though, so any time expansion memory blocks were overlaid on top of video memory then screen corruption or snow appeared. There are some screenshots earlier in the thread showing this. A lot of stuff would run (including CP/M+) but the screen corruption was definitely not satisfactory.


So, it itself the shadow RAM idea wasn't anything like a total solution for the '464, but it turns out that combining the shadow RAM idea with the signal overdriving may well be the real deal, and this is what's going on now in my hacked proto.


In all modes whenever the CPC writes to base memory it also writes to the same address in the shadow RAM bank. This way the shadow RAM always holds a perfect copy of the base memory.


In mode C3 writes to the base block at &4000 are redirected both to the base block at &C000 and the shadow block at &C000 by backdriving the ADR15 signal as usual.


The difference comes in the reads from &4000. In this new arrangement there is no need to backdrive the ADR15 signal high. Instead, the expansion card detects this event and services the read from the shadow RAM block at &C000, disabling internal RAM. Since ADR15 wasn't high there's no confusion with the gate array trying to service the read with any ROM data either.


BTW I did try a good number of experiments and found that with the shadow RAM enabled I can actually set RAMDIS high and run the entire CPC from the shadow bank. That seems reliable too, and of course there is no logical reason it shouldn't work so long as I got all my timing right. There's no need to do that though, and in fact the one downside of using the shadow RAM is that you have to give up 64K of the expansion. The 512K expansion becomes a 448K one with this feature enabled, but it seems to me that's not such a big deal. And if it is then of course the same technique can be applied to a 1M or 2M or whatever card. We only really need the shadow block at &C000 rather than the full 64K too, so I will do some more trials with that on the new boards. It would free up 48K more memory to the expansion (so long as the software running is able to use it and not just testing for the presence of a banks in 64K chunks) but makes the logic a little more complex and might affect the signal timing for the overdriving.


So, there it is. I have an attachment to the good old '464 as it was my machine back in the day, so I think that it'd be a Good Thing to see it restored to first class citizenship. Hopefully more testing with new boards and more machines will confirm this.


My new boards are on the way, so hopefully in a month or so I will be able to invite any interested beta testers to play.


R






Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Vyper68 on 09:49, 11 August 18
I would be willing to test a 464 Board, I live in the UK and have a 464 + CTM664 desperately in need of a RAM expansion.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: LambdaMikel on 07:13, 12 August 18
Very cool! It would be awesome if I could finally use FutureOS on the 464. I was waiting for such a RAM expansion for a long time!
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: GUNHED on 15:49, 12 August 18
Quote from: LambdaMikel on 07:13, 12 August 18
Very cool! It would be awesome if I could finally use FutureOS on the 464. I was waiting for such a RAM expansion for a long time!
... and I need to buy the '464 back!  :laugh:
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: revaldinho on 21:52, 02 October 18


Just bumping this thread for a mo' to say that I've put some updates on the status of a CPC464 board on LambdaMikel's thread (http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/wanted-working-memory-expansion-for-cpc-464/msg165579/?topicseen#msg165579 (http://www.cpcwiki.eu/forum/amstrad-cpc-hardware/wanted-working-memory-expansion-for-cpc-464/msg165579/?topicseen#msg165579)) to avoid any more confusion with my DIY 6128 card which is the main subject of this thread.


I put a page for the 6128 card on the Wiki at http://www.cpcwiki.eu/index.php/Old_School_512K_RAM_Expansion (http://www.cpcwiki.eu/index.php/Old_School_512K_RAM_Expansion) with links to get bare boards from Seeed directly and pointers to the documentation and build instructions on my GitHub (https://github.com/revaldinho/cpc_ram_expansion/wiki/CPC-512K-RAM-Expansion) site.


I have run out of cards myself and will probably order another batch soon to have a couple of spares handy. Minimum batch size from Seeed is 10 though and I won't need all of them, so if anyone would like a bare PCB directly from me then please send a PM. Although I gave away bare boards the first time round to get some feedback quickly, I'm afraid I can't underwrite that indefinitely. If you're after a bare board then it'll be £5 each including economy postage anywhere.


I don't plan on selling ready assembled cards as a long term thing, but I don't mind making up a few from this batch as a limited run. If you'd like a ready assembled card, then including postage to Europe it would be £25 with Royal Mail International Standard or £30 with Royal Mail International Tracked & Signed delivery. I'd have to check rates for any going further afield. I'm not sure whether that's great value compared with other larger capacity or multi-function cards, but postage + retail component costs (inc VAT) mean that is pretty much what it costs me to build and ship them.


If I order from Seeed this week it takes them about 3 weeks to get boards to me and then I'd need probably another week to assemble and pack any before mailing them on.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: rambler on 17:37, 30 December 18

I have made a 3D printed box.
You can find the stl-files at Thingiverse: https://www.thingiverse.com/thing:3305898 (https://www.thingiverse.com/thing:3305898)
You will need two smaal screws to assemble it.


I have also 9 bare boards, if anyone needs one, just PM me.

Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: revaldinho on 18:51, 30 October 20
Just resurrecting this old thread for a mo' to say that, for no particular reason, I have revised my CPC6128 Old School RAM Card to make an alternative 1MByte version.


Just like the original, the card is made entirely from standard 74 series parts and readily sourced SRAM ICs. There are no PALs or GALs or CPLDs to program and all parts are through-hole soldered, so the project is very easy to build for anyone with a soldering iron.


It's a 6128 and 6128Plus card only, just as the the original was. The card is fully DK'tronics compatible for the first 512KBytes, and uses the Yarek addressing scheme to access the second 512KByte area. The card has been built and tested using a number of different RAM test programs and games/demos. Many of these only exercise the first 512KBytes, but some of the ram tests and FutureOS, for example, are able to see and use/test the full capacity.




This is a fully open source design, licensed under the GPL3 as usual. All project source code is available on GitHub, and a complete BOM and full assembly instructions are available on the project's Github Wiki (https://github.com/revaldinho/cpc_ram_expansion/wiki/'Old-School'-CPC6128-512KB-and-1MB-RAM-Expansion-Cards). PCBs are available directly from SeeedStudio (https://www.seeedstudio.com/Amstrad-CPC6128-1MByte-RAM-Expansion-Card-g-1306677) in batches of 10.


After building a couple up to test I have some spare PCBs from my first batch, so if you don't want to get a job lot from Seeed you could get one from me instead - £5 inc P&P to anywhere in Europe. Drop me a PM if you'd like one.



















Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: GUNHED on 19:11, 30 October 20
Awesome!!!  :) :) :)
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Bryce on 20:03, 30 October 20
100 Bonus points from me for "keeping it retro!" - Not a CPLD or FPGA in sight! Respect.

Bryce.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: TotO on 21:16, 30 October 20
PLD is retro as the CPC and DK'Tronics use PAL/GAL to reduce the logic footprint and the system curant consumption.
Doing a RAM expansion for 6128 (compatible 464/664 w/o C3) is not new (Yarek RAM Box) and less logic IC are required.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Bryce on 22:27, 30 October 20
I never said anything about PALs/GALs, but ok, I'll admit CPLDs are as retro as the CPC. I just prefer pure TTL, it "feels" more retro.

Bryce.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: VintageAdvantage on 23:01, 30 October 20
I really don't get the negativity that certain folks are displaying here towards anything not invented / designed by them...  >:(

Great job @revaldinho (https://www.cpcwiki.eu/forum/index.php?action=profile;u=1776) - very useful!
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: TotO on 23:18, 30 October 20
Quote from: Bryce on 22:27, 30 October 20
I never said anything about PALs/GALs, but ok, I'll admit CPLDs are as retro as the CPC. I just prefer pure TTL, it "feels" more retro.
I understand well. Now, logic gates and/or TTL IC are used to draw the schematics. So, the prototyping process is the same and you finally just reducing the final board size with the PLD integration. No SMD, no 3V3 parts, only "feels" compatible electronic. ;)
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: TotO on 23:21, 30 October 20
Quote from: VintageAdvantage on 23:01, 30 October 20
I really don't get the negativity that certain folks are displaying here towards anything not invented / designed by them...  >:(
Please... Stop to be a negative guy with negative (and wrong) thoughts...
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: VintageAdvantage on 04:36, 31 October 20
Quote from: TotO on 21:16, 30 October 20Doing a RAM expansion for 6128 (compatible 464/664 w/o C3) is not new (Yarek RAM Box) and less logic IC are required.

I may have missunderstood your point here - why does it matter if it's "new" or not, or if somebody has done something similar before? For the discussion? Maybe it is not meant in a negative way, but it sounds derogatory to me. Anyhow, it might be a language thing.

I personally like and respect the following rule for engagement / discussion, which I try to follow, and not everybody might embrace it (not saying that people should, who am I to dictate that), but the rule is: you are not allowed to say anything "negative" (however we might label it), unless you have said something positive first. 

You don't need to respond to that, I guess it is just a difference in language.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: TotO on 08:55, 31 October 20
@VintageAdvantage (https://www.cpcwiki.eu/forum/index.php?action=profile;u=3600)  If you think that is an insult to remember about the past related CPC projects on a wiki forum, there is a double problem because the CPC has its history and the wiki collect it to not forgot and help serve the future. Adding that he does using less logic circuits can encourage to optimise the TTL design for a future version, at less because handling 1024K here required to add one more IC.

Sorry, I'm not into the "social network" spirit that require to start each sentence by "amazing/great/fantastic ..." (with emoji please)
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: revaldinho on 11:44, 31 October 20



I agree that it's good to be reminded of existing and still supported projects, and Yarek's CPC4MB (http://www.cpcwiki.eu/index.php/CPC4MB) was definitely a trailblazer for extended RAM in the CPC and deserves a lot of kudos for that.


Both Yarek's and my cards are open source, with schematic and PCB layout files freely available. Both are software compatible, with the available RAM passing the ERAM-tst program provided with Yarek's card. So, yes, there are some good comparisons to be made between the two cards, but counting the number of logic chips isn't one of them because they are very different in design and installation.


I'm not claiming any ground-breaking technology in my card, and there are plenty of other RAM cards around these days if wanting to buy a pre-built one. What I'm offering is a very easy to build card  - one PCB, all through-hole components - based on easily sourced standard logic ICs and which fits externally in any expansion board. DIY builds don't get any easier that this.  :D


Yarek's project has fewer logic ICs, but is actually spread over 3 small PCBs, using all SMD components, which need to be installed on the motherboard inside the CPC6128 case. You need to desolder all the RAM chips in one RAM bank and then solder in a couple of larger replacement DRAMs together with a couple of NPN Transistors and resistors in their place. A third board (with 3 SMD logic chips on board) sits in the Z80 socket with the CPU reinserted on top, and finally a connection to the PAL is made to have access to internally generated RAM control. This is all shown in the picture attached (from https://8bit.yarek.pl/upgrade/cpc.cpc4mb/cpc4mb1.jpg) and it's this access to internal DRAM address/control signals which is the reason the logic fits in so few ICs. External cards need to recompute many of the RAM control signals for themselves based on only the signals available at the edge connector. This logic isn't totally trivial and that's why most modern RAM expansions choose to go down the CPLD route for implementation.


Anyway, there is it. I hope some people will find it fun and easy to build my simple 74 series card, and it would be especially good if it might encourage new builders to have a go. I feel that Yarek's project is for slightly more advanced builders, and people happy to modify their 'historic' CPC motherboards, but it's good to have options and of course it does provide a full 4MB.


There must be a lot of RAM expansion cards in circulation these days, but the reality is that very little software takes advantage of the 512KB RAM cards let alone the 1MB+ sizes.


(https://8bit.yarek.pl/upgrade/cpc.cpc4mb/cpc4mb1.jpg)

Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: VintageAdvantage on 16:34, 31 October 20
Quote from: TotO on 08:55, 31 October 20
@VintageAdvantage (https://www.cpcwiki.eu/forum/index.php?action=profile;u=3600)  If you think that is an insult to remember about the past related CPC projects on a wiki forum, there is a double problem because the CPC has its history and the wiki collect it to not forgot and help serve the future. Adding that he does using less logic circuits can encourage to optimise the TTL design for a future version, at less because handling 1024K here required to add one more IC.

Sorry, I'm not into the "social network" spirit that require to start each sentence by "amazing/great/fantastic ..." (with emoji please)
I do not think that it is an insult, but I find the tone of this specific reply suboptimal, since it has a "I have seen it all / know it all" tone.

I am all for giving credit to previous CPC projects that did certain things first! However, I have a problem if this gets used as a weapon to leash out on some CPC community members, and to glorify others.

I think we have to remember that most of the hardware designs are basically straight-forward adaptations of hardware extension projects that were published in the 80s in various books and computer magazines (some with newer components such as CPLDs... but still). 

Reminding people of "prior art" is one things, but to do it in a way that is derogatory is another! You could have said - "nice, it reminds me a bit of Yarek's RAM expansion from back in the day", rather you pointed out that it is "not new". Which is exactly the spirit that I find problematic.

So, I am reminding people to PLEASE be more enthusiastic and friendly and welcoming about other's CPC projects, and not do it only for folks in your CPC clique and circles. I don't see why this is a prolematic request. 

It is not a community if not all members are treated equally...

And wrt Wiki - the Wiki only has what people put it. Many recent projects are absent from the Wiki, and nobody makes an attempt to complete it. Unless the designers themselves put it in (or how does it work). Again, certain folks a "writing CPC history", and others don't. For example - where is Zaxon's 4 MB expansion, DDI3, etc.? Somebody decided to make the effort to represent certain projects, but did NOT make the effort for other projects. Which is biasing CPC history.

I agree, this is highly problematic from many points of view. The CPC Community and Wiki should strive for a true account and representation of the entire CPC community, and not be a clique circle representation of the "creme de la creme". I am not sure where I read this term, but it was from a certain clique here on the forum.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: TotO on 16:45, 31 October 20
Please, don't speak for me. Don't said how I have to write (not my native language) when I see the first page of your posts history.
I was here every days during more than 5 years to update the cpcwiki portal and sometime the wiki content... Thank you.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: VintageAdvantage on 16:49, 31 October 20
Quote from: TotO on 16:45, 31 October 20
I was here every days during more than 5 years to update the cpcwiki portal and sometime the wiki content... Thank you.
I certainly thank you for your service (I have not contributed anything)!
But even CPC community members with great reputation and achievements need a friendly reminder sometimes to be more inclusive I think.. we all need it from time to time.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: VintageAdvantage on 17:07, 31 October 20
Quote from: TotO on 16:45, 31 October 20Please, don't speak for me. Don't said how I have to write (not my native language) when I see the first page of your posts history.

And do you know why I acted that way in some of my older posts? I wanted to set an example... but I have stopped with that, it was a bad idea. The idea was to act as a d*** supreme to unite people against the "I have seen it all / I know it all" attitude and make them think a bit before acting in that way, and be more inclusive. So ok, it was a "social experiment", and it was a bad idea. I appologize for that.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: TotO on 17:23, 31 October 20
I think that nobody his "I have seen it all / I know it all" and it is why the wiki exist around the CPC with not only one contributor.
Now, I apologise that on Internet, since some years (social networks again doesn't help), peoples who are lacking some knowledge goes to denigrate (in group) few peoples having specific knowledges, instead of asking questions. They prefer to destroy the past knowledge to be not annoyed into their vision of the present. This is not specific to the CPC and it is dangerous.

Sorry for the off-topic, now please I think that we can return to the subject. :)
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: VintageAdvantage on 18:36, 31 October 20
I fully agree with you that it is a balancing act:

- people should respect prior art and CPC history and give credit where it is deserved

- at the same token, we must make sure to continue to be inclusive and open and enthusiastic towards new developments and projects, be it newbies (some of which might have extensive CPC experience, but haven't been part of the community!) or oldies / clique members

- all projects that reach a certain level of maturity should be represented equally, even projects that have a problematic history in terms of "community engagement"

- CPC forum and Wiki should strive for an unbiased account of all CPC activity 

Now back to topic!


Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Animalgril987 on 23:39, 04 December 20
Is there 464 fully compatible ( including C3 mode) ram expansion available? Preferably ready made, as I don't have an indoor facility for soldering, and the weather is most definitely not conducive to soldering outdoors.


Also, a source expansion boards such as Mother X4?


Thanks in advance.


Alan.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Skunkfish on 00:03, 05 December 20
Hating to plug my own site, but I sell these at www.cpcstore.co.uk
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Bryce on 08:47, 05 December 20
Quote from: Skunkfish on 00:03, 05 December 20
Hating to plug my own site, but I sell these at www.cpcstore.co.uk (http://www.cpcstore.co.uk)

Yes, I can almost feel the hate from here, but you seem to be conquering it quite well :D

Bryce.


Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: TotO on 11:13, 05 December 20
Quote from: Skunkfish on 00:03, 05 December 20
Hating to plug my own site, but I sell these at www.cpcstore.co.uk (http://www.cpcstore.co.uk)
Hating to do that, but it is a bit overpriced for a 512K RAM expansion only.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Skunkfish on 11:54, 05 December 20
Quote from: TotO on 11:13, 05 December 20Hating to do that, but it is a bit overpriced for a 512K RAM expansion only.

It was originally priced a little high, as I'd just forked out for the programmer for the XC9536 chips...

I've taken £5 off the price, so it's now down to £24.99
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Animalgril987 on 17:28, 05 December 20
Many thanks, Sir.
I shall in all likelihood order 1 of each after Christmas, if that's ok?


Alan.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: RetroCPC on 22:10, 05 December 20
Quote from: TotO on 11:13, 05 December 20
Hating to do that, but it is a bit overpriced for a 512K RAM expansion only.


Really? Think about the sales qtys and the time and effort to order components, order PCB's, build PCB's, program and test PCB's, package the product for shipping.... GPB30!!! BARGAIN if you ask me!!! ? I feel offering hardware for the CPC these days is almost offering a service to the community, nobody's going to make a living manufacturing and selling 512K RAM cards for the CPC!!! especially @ GBP30!

GBP30 is very little these days - consider how much it cost to fill your car with fuel or go out for a few drinks (when we could)... its cost me about GBP100 each time I fill the tank... GBP30 would be gone before I knew it...

Personally I'm happy Skunkfisk is here on the forum with his store... IMO we need more new products to keep the CPC alive!

Skunkfisk - I'll be happy to design you some new CPC hardware (I can also build them for you) once I've dug myself out of a 5 year R&D project thats nearing production... Not interested in profit, but just for fun - to help keep the CPC alive :)
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: TotO on 22:14, 05 December 20
Quote from: RetroCPC on 22:10, 05 December 20
Really? Think about the sales qtys and the time and effort to order components, order PCB's, build PCB's, program and test PCB's, package the product for shipping.... GPB30!!! BARGAIN if you ask me!!! ? I feel offering hardware for the CPC these days is almost offering a services to the community, nobody's going to make a living manufacturing and selling 512K RAM cards for the CPC!!! @ GBP30!
Sure, I can't understand all those things. I'm probably wrong and spoke as a noob.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: RetroCPC on 22:23, 05 December 20
Quote from: TotO on 22:14, 05 December 20
Sure, I can't understand all those things. I'm probably wrong and spoke as a noob.


:D no problem, I'm amazed that anyone would go to so much effort for so little return, as I say it can only be for the love of the CPC and its community then a "real" business... also, IMO the Retro CPC scene is very small (and thus quite) compared to say Commodore or Sinclair range of computers...
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: TotO on 22:26, 05 December 20
Sure. May be a day, I will try to give my little of time for the CPC community... Have fun.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: pelrun on 07:10, 06 December 20
Quote from: RetroCPC on 22:10, 05 December 20
Really? Think about the sales qtys and the time and effort to order components, order PCB's, build PCB's, program and test PCB's, package the product for shipping.... GPB30!!! BARGAIN if you ask me!!! ? I feel offering hardware for the CPC these days is almost offering a service to the community, nobody's going to make a living manufacturing and selling 512K RAM cards for the CPC!!! especially @ GBP30!


TotO is infamous for his stance on hardware pricing; he sells all his stuff with apparently zero margin and believes everyone else should do the same. He's entitled to his principles, but don't mistake his statements for the opinion of the CPC community as a whole. Set your prices at a comfortable level, don't be pressured into something unsustainable. If people value your work they'll want to support you (hell, I have even deliberately overpaid TotO for his products, they're worth it.)
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: TotO on 13:13, 06 December 20
@pelrun (https://www.cpcwiki.eu/forum/index.php?action=profile;u=1106)  I was famous for making the whole CPC community happy to buy new expansions at a good price around the world.

Don't confuse "the parts price", "the selling price" and "the expected price" by the final user. My prices was not too much low. I have won some money used to provide parts to repair CPC, support cpcwiki and other good actions into the real life. Thank you again for your support.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: pelrun on 14:40, 06 December 20
You misunderstand. I am not saying you haven't done fantastic things for the community. But you've definitely got a habit of making your pricing opinions known whenever someone starts to make new CPC hardware, and that has definitely convinced at least one person to give up even trying.


There's definitely a middle ground between your prices and the sort of awful limited-edition exorbitant pricing seen in some other retrocomputing communities (*cough*Vectrex*cough*), and people should be encouraged to set prices that are realistic for them and their financial situation, and not be unduly influenced by someone who could technically be considered a competitor.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Bryce on 15:10, 06 December 20
Whether you think someone elses prices are too high or too low is an opinion, and everyone is entitled to have an opinion. But, commenting publicly on someones pricing is just bad form. If someone wants to sell their time/effort for a high price, then let them, and if someone wants to sell their products for a low price they can do that too. The customer decides whether the price was good or not, not other hardware producers.

An Apple iPhone and the latest Xiaomi phone are almost identical in all ways, including the technology, parts used and where they were built. The customer decides which one they want to buy and I've never heard an Apple Fanboy complain about the price, in fact they defend it.

Bryce.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Dubliner on 16:45, 06 December 20
it amazes me how easily is user support taken out of the price ecuation. The price of a product should not only take in cosideration components price, work and design time and profit, but also have a little margin in case a board breaks or a parcel goes missing, so you can replace or fix the product without losing any money and keeping your users happy.

That is, of course, if you care about user support.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: TotO on 17:10, 06 December 20

@Bryce (https://www.cpcwiki.eu/forum/index.php?action=profile;u=225)  Speaking prices is not something prohibited. It allow to inform peoples about what they bought. Many forums does that.
@Dubliner (https://www.cpcwiki.eu/forum/index.php?action=profile;u=1275) Please... The registered mail include the insurance to refund the parcel when contracted by the buyer. Stop with that.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Dubliner on 17:21, 06 December 20
LOL. I had another infamous guy who doesn't post anymore in this forum in mind when i wrote that. Excusation non petita, accusatio manifesta.

Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: TotO on 17:26, 06 December 20
Quote from: Dubliner on 17:21, 06 December 20
LOL. I had another infamous guy who doesn't post anymore in this forum in mind when i wrote that. Excusation non petita, accusatio manifesta.
You always repeat the same things, so I know your problem... You want that I refund you R-TYPE because you said to have not received it, but you do not wanted to pay neither for a tracking neither for the insurance. You are a joke and again off topic.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Dubliner on 17:29, 06 December 20
Don't put words on my mouth that i didn't said. I was refering to Piotr and his world famous customer service. I don't know why the hell do you feel attacked.
Seriously, get a life.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: TotO on 17:35, 06 December 20
Quote from: Dubliner on 17:29, 06 December 20
I was refering to Piotr and his world famous customer service. I don't know why the hell do you feel attacked.
Because you have wrote "I had another infamous guy" ... Do you understand that mean Piotr and me?
Always the same minority on a forum thinking they are representative of the "cpc community".
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Dubliner on 17:44, 06 December 20
I understand english is not your language.

Another: 2) used to refer to a different person or thing from one already mentioned or known about.

Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: TotO on 17:54, 06 December 20
Quote from: Dubliner on 17:44, 06 December 20I understand english is not your language. Another: 2) used to refer to a different person or thing from one already mentioned or known about.
Nor you... Because that mean a different infamous person from one infamous person already mentioned or know about.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Gryzor on 18:02, 06 December 20
Guys, please cool it. Will clean the thread tomorrow, for now please everyone enjoy your Sunday evening.

As for myself, going to pay some R-Type on my RG350 😊
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Bryce on 18:29, 06 December 20
Quote from: TotO on 17:10, 06 December 20
@Bryce (https://www.cpcwiki.eu/forum/index.php?action=profile;u=225)  Speaking prices is not something prohibited. It allow to inform peoples about what they bought. Many forums does that.
@Dubliner (https://www.cpcwiki.eu/forum/index.php?action=profile;u=1275) Please... The registered mail include the insurance to refund the parcel when contracted by the buyer. Stop with that.

No, many things aren't prohibited, but that still doesn't make them correct or polite. It also doesn't inform anyone, it's the buyers job to decide what and from whom he/she buys. Many people might also consider low-cost devices to be sub-standard. Should the higher priced sellers be "informing" the buyers about this too?


Bryce.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: TotO on 00:32, 07 December 20
@Bryce (https://www.cpcwiki.eu/forum/index.php?action=profile;u=225) I have said the RAM board was a bit expensive and I got the answer: It was to pay the Xilinx programmer and now it is 5£ less... Nice, I got my answer. All things wrote next have no sens.

QuoteShould the higher priced sellers be "informing" the buyers about this too?
I let you answer to that, or ask to Simulent. ;D
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Gryzor on 09:20, 07 December 20
OHHHH-KAY GUYS.

A new day is shining down on us (well, not here in Athens where it's been pouring cats and dogs but anyhow), so can we all take a deep breath and get back on topic?

I understand that it's a stressful period for many of us, like with the whole world. But, if you all go through the posts you'll see some unnecessary animosity and anger. I mean, everyone here up to now has posted things to promote the community and the offerings to it, everyone's has been striving to do something good for all of us. And yet we end up fighting. This is not good, obviously. It's amazing how little by little, comment by comment, so much tension has been built.

So, can we put it all behind us and move on?

Thank you :)
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Animalgril987 on 23:45, 23 January 21
Hi Skunkfish.
I've just received my MX4 compatible and 512k ram (yesterday, but not able to do anything until today).
Is the CPC supposed to indicate that it's attached?


Or is there a simple test program to check the CPC can see the extra memory?


Thanks


Alan.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Skunkfish on 15:03, 24 January 21
Hi Alan,

There's a great ram test program from @SyX (https://www.cpcwiki.eu/forum/index.php?action=profile;u=324) in this thread (https://www.cpcwiki.eu/forum/programming/memory-check/msg32977/#msg32977) that will let you know if your CPC is seeing all 512K.

Let me know how you get on,

Thanks,

James.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Animalgril987 on 18:10, 24 January 21
Hi James.
I should have stated that I have a stock 464, wth no way to download dsk or cdt files.


I did create a program in BASIC to OUT the correct values to &7Fxx, Poke "XX" into &4000 and read it back, but all I get is &C4, which I take to mean internal memory only?


Hopefully it's just muck on my expansion port...


Will let you know after I get time to clean said port.


Alan

Edit: The reset button on the backplane works ok.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Skunkfish on 23:30, 24 January 21
@Animalgril987 (https://www.cpcwiki.eu/forum/index.php?action=profile;u=3936)

In that case, try this listing from TotO:
https://www.cpcwiki.eu/forum/technical-support/testing-the-512kb-expansion/msg171362/#msg171362




Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Animalgril987 on 23:56, 24 January 21
Ok, thanks Skunkfish.
I'll try it it tomorrow.


Alan.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: eto on 11:04, 25 January 21
Just out of curiosity: Can a stock 464 take advantage of the extra RAM? I mean, in theory of course, but which software on tape would use more than 64K?
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Bryce on 11:21, 25 January 21
The only tape software I know of that could use 128K was Mini Office II.

Bryce.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Skunkfish on 11:50, 25 January 21
There are quite a few games that either use or require 128K, this thread covers it quite well:

http://www.cpcwiki.eu/forum/games/amstrad-6128-only128k-games/ (http://www.cpcwiki.eu/forum/games/amstrad-6128-only128k-games/)

(not all are available on tape, but some were like Addams Family and Final Fight)
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: eto on 14:53, 25 January 21
I am aware of the games, and if I have a floppy or Gotek or M4 of course it makes sense. But I was just wondering what benefit I have of 512KB , if I have a stock 464 without extensions or floppy.

So what game or app on tape will take advantage of the additional ram?

Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: GUNHED on 18:08, 25 January 21
Only revaldinho's RAM expansion can provide the RAM mode &C3 for the 464. So for the 464/664 this one is IMHO the best choice.
Well, what can you do without floppy disc? Good question in general.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Skunkfish on 18:16, 25 January 21
As an alternative to a disk drive, ikongr's USIfAC II represents a great budget option for 464 users....

https://www.cpcwiki.eu/forum/amstrad-cpc-hardware/usifac-iimake-your-pc-or-usb-stick-an-hdd-for-amstrad-access-dsk-and-many-more!/
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: GUNHED on 18:18, 25 January 21
Very good point!  :) :) :)
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Animalgril987 on 19:44, 25 January 21
I have ordered an M4 board from Duke ( no rush, Duke, I'm patient :D ). I believe I can run games from the M4?
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Skunkfish on 20:16, 25 January 21
Quote from: Animalgril987 on 19:44, 25 January 21I have ordered an M4 board from Duke ( no rush, Duke, I'm patient :D ). I believe I can run games from the M4?

Yes, you're in for a treat - the M4 is a fantastic device!
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: GUNHED on 20:19, 25 January 21
Yes, Revaldhinos RAM expansion and the M4 card are a great combination for the CPC464.  :)
With this equipment you can run FutureOS too.  ;D
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Animalgril987 on 20:50, 25 January 21
Hi Gunhed.
Yes, I'm looking forward to trying out FutureOS.  :D


Alan


Ps. Do you know what the correct DIP switch settings on the memory card will be for my setup?
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: revaldinho on 22:30, 25 January 21
Quote from: Animalgril987 on 20:50, 25 January 21Ps. Do you know what the correct DIP switch settings on the memory card will be for my setup?



See quick reference card attached.


All the other documentation is on the project wiki (https://github.com/revaldinho/cpc_ram_expansion/wiki/Universal-Amstrad-CPC-RAM-Card).



Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Animalgril987 on 17:39, 30 January 21
I'm afraid that my ram card appears to be dead. Toto's ram test shows 0k CPU ram.
I gave the CPC edge connector a good clean and used a multimeter to check continuity from the CPC traces to the through connector on the backplane ( all lines were good).
So I connected everything up, and it doesn't look like it's working.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Skunkfish on 23:39, 30 January 21
Hi Alan, I'm sorry to hear that!

Is the switch on the backplane card set to CPC or PSU? This should be CPC if there's no PSU connected to the card directly.

Also, have you tried connecting the card directly to the cable rather than via the backplane card? Is the result any different?
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Animalgril987 on 14:36, 31 January 21
I'll try giving the CPC edge another clean. If that doesn't work, I'll try directly connecting the card to cable.
I've tried switch set to CPC and using an external psu ( with switch set to psu).


Alan
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: TotO on 14:51, 31 January 21
Quote from: Animalgril987 on 17:39, 30 January 21
I'm afraid that my ram card appears to be dead. Toto's ram test shows 0k CPU ram.
Please, contact me by email to see how I can solve your problem. :)
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: revaldinho on 16:20, 31 January 21
Quote from: Animalgril987 on 17:39, 30 January 21I'm afraid that my ram card appears to be dead. Toto's ram test shows 0k CPU ram.

If the RAM test shows 0K CPU RAM, is there a possibility that you made an error in typing the program in ?

[EDIT - removed incorrect results for a '464' which would return 0K. Yes, the unexpanded 464 would indeed return CPU RAM: 0K ]

One thing I would check on the board, since you mentioned you had a multimeter, would be the supply voltage. Take a reading from the RAM pins - bottom left is ground, top right should be +5V.

Beyond that, if it is a hardware failure then the vendor (@skunkfish) should have the opportunity to put things right for you.


Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Animalgril987 on 16:35, 31 January 21
Thanks everyone for all suggestions. Yes it would appear to have still been some grime on one of the edge contacts.


All is good! Toto's ram test shows 448k CPU ram ( 464 in full C3 shadow) with both CPC power and external psu.


Alan


;D ;D
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: revaldinho on 16:45, 31 January 21
That's great! You should get the full 512K RAM in DK'tronics mode and for most software that will be fine. FutureOS is on of the very few programs which needs the shadow mode.


(BTW, Sorry I was wrong with the CPU RAM report - I tried that program on a a 6128 and of course it did report CPU RAM 64K since it has the extra bank built-in.  :picard: On a stock 464 it would return 0K. Unfortunately my DDI-3 isn't working with my own '464 to load the program on that at the moment. May well be more edge connector problems...)

Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: SerErris on 14:06, 19 February 22
@revaldinho (https://www.cpcwiki.eu/forum/index.php?action=profile;u=1776)


I am going to build an eightrom today, but thinking of the following question.

Would it be possible to setup a GAL instead of the gates logic for the eight rom, just to minimize the parts?


I know that the objective was to actually do it oldschool and actually use gated logic.


Do you have the schematics available, so I can easier understand the logic behind it?

I also checking the verilog file right now. maybe that is something to understand the logic from as well ...
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: SerErris on 15:54, 19 February 22
Okay, I did build it ... no waiting for my MotherX4 to arrive ...


I can build to more, if anyone is interested in one?






I am in Germany, so postage will apply.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: revaldinho on 16:55, 19 February 22

Quote from: SerErris on 14:06, 19 February 22Would it be possible to setup a GAL instead of the gates logic for the eight rom, just to minimize the parts?

I know that the objective was to actually do it oldschool and actually use gated logic.

Do you have the schematics available, so I can easier understand the logic behind it?

I also checking the verilog file right now. maybe that is something to understand the logic from as well ...


Yes, the eightRom is aimed squarely for people who want the all old-school feel and/or the easy soldering and availability of standard 74 series components without any need for logic programmers and synthesis toolchains.


You could definitely suck most or maybe all of the logic into a GAL.  All the source files for the project are available in GitHub. The original schematic is actually a netlist because I use my own pre-processor (https://github.com/revaldinho/netlister) to prepare the Eagle board scripts. The netlist (PCB source) is this one: cpc_eightrom.v (https://github.com/revaldinho/cpc_ram_expansion/blob/master/cpc_eightrom/pcb/cpc_eightrom.v)


You can also look at the very similar logic for the sixROM board which uses a CPLD for the logic implementation. The functional Verilog (CPLD source) is this one: cpld_sixrom.v (https://github.com/revaldinho/cpc_ram_expansion/blob/master/cpc_sixrom/src/cpld_sixrom.v) 

There's a lot of overlap in functionality between the two boards, but sixRom allows the lower ROM replacement too. I couldn't fit the additional logic for that in through-hole 74 series gates into the limited size of the EightROM board (freeware Eagle limit 80x100mm), but you probably would manage it if using GAL(s) instead.


Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Bryce on 10:50, 20 February 22
Quote from: SerErris on 15:54, 19 February 22
Okay, I did build it ... no waiting for my MotherX4 to arrive ...


I can build to more, if anyone is interested in one?






I am in Germany, so postage will apply.

That's extremely good soldering!

Bryce.

Edit: And good old leaded solder, none of this modern lead-free rubbish!
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: SerErris on 12:21, 20 February 22
Thanks...


Developed my skill over the years :-)
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: SerErris on 09:39, 03 April 22
@revaldinho I want to build a 512k RAM card for my CPC464. Can I use the XC9572 instead of the XC9536? I do see some code parts in the github repository, but as the screenshots all show the XC9536 I just wanted to make sure, that it does not break anything if I use the larger one?
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: revaldinho on 11:05, 03 April 22
Quote from: SerErris on 09:39, 03 April 22@revaldinho I want to build a 512k RAM card for my CPC464. Can I use the XC9572 instead of the XC9536? I do see some code parts in the github repository, but as the screenshots all show the XC9536 I just wanted to make sure, that it does not break anything if I use the larger one?

Yes. XC9572PC44 and XC9536PC44 are totally pin compatible and there is an XC9572 JED file in the releases area (https://github.com/revaldinho/cpc_ram_expansion/tree/master/cpc_ram_expansion/releases/rc-6-fighter) already for you. However, do not use the XL types - these are not the same thing at all.

XC9572PC44s are getting harder (and more expensive) to find these days, but XC9536PC44s are still relatively cheap even if you have to get new-old-stock.

I have wondered about doing some alternate ATF15xx CPLD versions of cards.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: revaldinho on 11:27, 03 April 22
BTW if you have an XC9572PC44 and haven't got the pcbs yet, you might want to build the 1Mb card instead. This is compatible with FutureOS and SymbOS 3.1.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: SerErris on 21:51, 06 April 22
Thanx, I do have the boards already, now just waiting for the SRAM and the CPLDs. I will be alle top do 5 or so, in anyone wants one...
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Fran123 on 13:14, 07 April 22
Quote from: SerErris on 15:54, 19 February 22Okay, I did build it ... no waiting for my MotherX4 to arrive ...


I can build to more, if anyone is interested in one?






I am in Germany, so postage will apply.
What price?
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Rabs on 08:18, 20 May 22
Firstly, I think the old school 512k ram expansion project is excellent. It has been 30+ years since I made anything like this and I love it. Now I think I am nearly there with, all the soldering completed but I would like to continuity check all my connections.

Is there a pdf of the schematic I can follow?

Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: FD on 08:01, 23 May 22
I have tried to get hold of the 464 universal expansion but I can't find one anywhere...
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: revaldinho on 09:02, 23 May 22
Quote from: Rabs55 on 08:18, 20 May 22Firstly, I think the old school 512k ram expansion project is excellent. It has been 30+ years since I made anything like this and I love it. Now I think I am nearly there with, all the soldering completed but I would like to continuity check all my connections.

Is there a pdf of the schematic I can follow?


Thanks for your comments and your interest in my open source projects.

I do get this question a lot, but there are no traditional schematics for any of my PCBs. I come from an ASIC/FPGA background and prefer to work with text netlists, so I made my own netlist -> Eagle PCB script tool (https://github.com/revaldinho/netlister). The actual 'schematic' for the old school board is in this netlist file (https://github.com/revaldinho/cpc_ram_expansion/blob/master/cpc_ram_expansion/pcb/cpc_ram_board_74_v2.01.v) .
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: revaldinho on 09:13, 23 May 22
Quote from: FD on 08:01, 23 May 22I have tried to get hold of the 464 universal expansion but I can't find one anywhere...
If you want to get hold of any of my projects it's always worth PMing me via the Wiki. I don't sell on eBay or anywhere else, but always happy to make up small numbers of boards for CPCWiki users. I usually build an extra one or two when making up boards to order, so I may even have one in stock. If not, I'm pretty sure I do at least have some spare PCBs and a few XC9536s to make up a small number of the 512K Universal boards at the moment - I'll check later.

Just one note - I am in the UK, and will only deliver via a tracked/insured postal service. In the EU the receiver may (probably) need to pay any incoming customs duty on top of that. This can make postage disappointingly expensive for European users, and you may prefer to source boards in the EU in that case. 
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Rabs on 13:00, 23 May 22
Quote from: revaldinho on 09:02, 23 May 22
Quote from: Rabs55 on 08:18, 20 May 22Is there a pdf of the schematic I can follow?

Thanks for your comments and your interest in my open source projects.

I do get this question a lot, but there are no traditional schematics for any of my PCBs. I come from an ASIC/FPGA background and prefer to work with text netlists, so I made my own netlist -> Eagle PCB script tool (https://github.com/revaldinho/netlister). The actual 'schematic' for the old school board is in this netlist file (https://github.com/revaldinho/cpc_ram_expansion/blob/master/cpc_ram_expansion/pcb/cpc_ram_board_74_v2.01.v) .

Great, thanks for getting back to me. I will look at the netlist. Sounds like another learning experience  :).
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: FD on 13:42, 23 May 22
Quote from: revaldinho on 09:13, 23 May 22
Quote from: FD on 08:01, 23 May 22I have tried to get hold of the 464 universal expansion but I can't find one anywhere...
If you want to get hold of any of my projects it's always worth PMing me via the Wiki. I don't sell on eBay or anywhere else, but always happy to make up small numbers of boards for CPCWiki users. I usually build an extra one or two when making up boards to order, so I may even have one in stock. If not, I'm pretty sure I do at least have some spare PCBs and a few XC9536s to make up a small number of the 512K Universal boards at the moment - I'll check later.

Just one note - I am in the UK, and will only deliver via a tracked/insured postal service. In the EU the receiver may (probably) need to pay any incoming customs duty on top of that. This can make postage disappointingly expensive for European users, and you may prefer to source boards in the EU in that case.


Thank you so much. I will PM you.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: aerobaticant on 09:25, 25 May 22
Hi @revaldinho, and everyone. I have succesfully created a DIY version of the universal RAM expansion board on prototype PAD board! I changed the JTAG header to be a single in-line pin strip as this it what I have used on other projects using Xilinx devices.

I used an XC9536-15PC44 as I have a few lying around. Looking at the code, and using a 55ns SRAM, I couldn't see a reason why this shouldn't work, unless I've overlooked something important.

As you can see from the pictures it is detected OK.

Any suggestions of some good (6128?) games to try? ;)

Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: revaldinho on 12:44, 25 May 22
Quote from: aerobaticant on 09:25, 25 May 22Hi @revaldinho, and everyone. I have succesfully created a DIY version of the universal RAM expansion board on prototype PAD board! I changed the JTAG header to be a single in-line pin strip as this it what I have used on other projects using Xilinx devices.

I used an XC9536-15PC44 as I have a few lying around. Looking at the code, and using a 55ns SRAM, I couldn't see a reason why this shouldn't work, unless I've overlooked something important.


Looks great!

You must be a bit of a masochist to build on perf-board, because the project PCBs are easily sourced from many places and also can be had directly from Seeed (https://www.seeedstudio.com/Universal-Amstrad-CPC-512KByte-RAM-Card-g-1190642). Still, it's a nice job. The point to point wiring looks very neat.

Your XC9536-15PC44 should be fine. All the speed grades for the XC9500s should work with all my projects. Even the slowest 15ns ones are way faster than the original LS TTL would have been. 

Quote from: aerobaticant on 09:25, 25 May 22Any suggestions of some good (6128?) games to try? ;)

I think the Batman Forever demo is the first thing to try - assuming that you have the 'right' CRTC  ;D
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: aerobaticant on 14:32, 25 May 22
I agree - there was a bit of masochism, but there's motive in my madness.

I am considering creating an updated version with a schematic (already drawn in KiCad ;) ) and using a newer CPLD.
The Atmel/Microchip ATF15xx family looks to be about the only option currently in production.
I'd also consider moving to an SMD version of the SRAM IC.

Any thoughts?
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: revaldinho on 14:57, 25 May 22
Yes, the ATF15xx seems like the only 5V compatible part available now, so it's a good choice. I have thought of porting some projects to it but haven't got round to it. The tool chain for Verilog looks a bit more convoluted than the Xilinx one.

As to whether to SMD or not, I just preferred to stick to through hole components to make my projects easy for anyone to build.  My more recent projects are mainly using just 74 series parts to avoid the need for any programming equipment altogether as well as being easy to solder. And they are very retro! The 512Kx8 is the largest SRAM available in through-hole though, so if wanting to do the 1MB or a larger card then I can see it makes some sense to move to SMD for that, where you can get the larger capacities in a single chip. 
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Rabs on 17:39, 26 May 22
Hi, @revaldinho , just to say thanks again for the 512k old school ram expansion pack project. It worked :) and I now have a fully functioning 512k ram expansion.

Learnt a lot along the way.

Any recommendations on what next to try?
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: revaldinho on 20:36, 26 May 22
Quote from: Rabs55 on 17:39, 26 May 22Hi, @revaldinho , just to say thanks again for the 512k old school ram expansion pack project. It worked :) and I now have a fully functioning 512k ram expansion.

Learnt a lot along the way.

Any recommendations on what next to try?

Always good to hear about people building these projects for themselves.

If you want to build another in the same vein, then the EightROM (https://github.com/revaldinho/cpc_ram_expansion/wiki/CPC-Eightrom-Card) is all 74 series too but you do need to be able to program your own (E)EPROMs or get hold of them pre-programmed from somewhere else. 

The project I want to recommend though is the CPC-CPLink (https://github.com/revaldinho/cpc-cplink/wiki) card. Again it's all 74 series, so another easy build. It allows you to plug a Raspberry Pi right into the back of the CPC as a co-processor. Possibilities for expanding the CPC via the RPi are enormous and should offer a lot of coding fun. Since the CPlink card takes care of all the interface timing you can code in whatever language you like on the Pi. For example, @biged & I created a very simple GPU application providing the CPC with a second screen using BBC BASIC - see the latest posts in this thread (https://www.cpcwiki.eu/forum/index.php?msg=213804) and the screenshot attached showing the CPC output in a window on the Pi (full screen mode is possible too).

CPLink_2ndScreen_n_Pi.jpg
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Rabs on 21:16, 26 May 22
Great thanks, both projects look interesting.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Rabs on 11:17, 21 July 22
Finally worked out how to upload images.  :)

Here is my trio of cards, the CPC-CPLINK (and just look at the size of the PI model B on the back), the Eightrom card and Old School 512k RAM expansion. All working.

I highly recommend these projects to anybody thinking about building them, the information and support is excellent. I have very little prior experience and found the projects challenging but fun and I have learnt so much along the way.
Trio  of cards.jpg
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: netmercer on 00:01, 25 November 22
Hi,
I'd like to buy a Universal CPC 512K RAM Card (the version with CPLD XC9536), which was developed by revaldinho.
Either a bare PCB or a complet card would be fine, regardless of which. Perhaps someone wants to sell such a device.

Best regards from Germany
netmercer
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Rabs on 09:28, 25 November 22
Quote from: netmercer on 00:01, 25 November 22Hi,
I'd like to buy a Universal CPC 512K RAM Card (the version with CPLD XC9536), which was developed by revaldinho.
Either a bare PCB or a complet card would be fine, regardless of which. Perhaps someone wants to sell such a device.

Best regards from Germany
netmercer

Hi, I could try and send you one of my spare PCBs from the UK, see my post in the classifieds.

Message me if interested.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: revaldinho on 12:12, 25 November 22
Quote from: netmercer on 00:01, 25 November 22Hi,
I'd like to buy a Universal CPC 512K RAM Card (the version with CPLD XC9536), which was developed by revaldinho.
Either a bare PCB or a complet card would be fine, regardless of which. Perhaps someone wants to sell such a device.

Best regards from Germany
netmercer


If you're happy to build your own then please go ahead and take up Rob's offer for one of his spare PCBs.

I still build all my projects to order for CPCWiki members, and often make up one or two extras when I do. Right now I have one 512K universal card built and tested. So if you prefer the ready assembled option that would be £22 for the card and £9 for tracked postage to Germany. PM me for details.

Rev.

Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: GUNHED on 16:06, 25 November 22
Quote from: Rabs on 11:17, 21 July 22Finally worked out how to upload images.  :)

Here is my trio of cards, the CPC-CPLINK (and just look at the size of the PI model B on the back), the Eightrom card and Old School 512k RAM expansion. All working.

I highly recommend these projects to anybody thinking about building them, the information and support is excellent. I have very little prior experience and found the projects challenging but fun and I have learnt so much along the way.
Trio  of cards.jpg
Wow! This really looks awesome!!! 
Well, I also think about getting the CPC-CPLINK one day. How do you like it?
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: revaldinho on 17:47, 25 November 22



Well, if you'd like one I have at least one of those built up too - same deal as the RAM card £22 for the card + £9 for tracked postage to Germany. Pi ZeroW or Pi3A+ cards fit nicely on the back, but getting hold of those is a bit more problematic these days.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: darkhalf on 08:14, 27 January 23

QuoteXC9536-15PC44 should be fine. All the speed grades for the XC9500s should work with all my projects
Unfortunately the only active Xilinx these days are the XL 3.3V series and those are in SMD versions. We use the XC9536XL on our Nistune automotive computer boards, but use a 3.3V drop down regulator to make them work with the 5V power. The IO on these still work with 5V ranges, which is good. 

You would need to rebuild the project to generate XL version JED files for programming with ISE (which is another story, since the Win10 doesn't support it)

I've had very mixed success lately with the older 5V XC9536 versions, with about half DOA or failing to program
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: waltermixxx on 16:46, 02 September 23
Hi there,  I ordered 5 of the CPC 512K Ram Expansion, v1.10 (2018).  I started to solder in the parts I have around like caps and sockets, and I'm about to order the ram, the CPLD and the SIL0 and SIL1 resister networks.  I am having difficulty finding the Bill of Materials and I was wondering what value the SIL resisters are?  also any substitutions on the RAM Chip, incase I have difficulty finding it?   (the CPLD will have to come from ebay as digikey and mouser in canada do not seem to stock it.)   

Cheers. :) Pictures to come. :)

ok I found it in the Netlist: thinking sil0 is a 6.8k x 4 and sil1 is a 3.3k x 4  :)  I read the post on the schematic and how everything was in the netlist. :)  Cheers.   

r6k8_sil5   sil0 (
                    .common(VSS),
                    .p0(dip0),
                    .p1(dip1),
                    .p2(HIADR3),
                    .p3(HIADR4),
                    );
  r3k3_sil5   sil1
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: waltermixxx on 19:17, 02 September 23


SIL0=6.8 K  SIL1=3.3 K    could I use a 10K resister as SIL0 if I use a 4.7K as SIL1?   seems like the same kind of voltage divider?  would this work?  (I have 4.7 and 10 k in 5 pin SIL resister)  :)   

Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: d_kef on 18:47, 03 September 23
Or you can make the resistor networks yourself, with discreet resistors.

d_kef
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: waltermixxx on 14:54, 04 September 23
That's a very good idea, and it did occur to me, but I wanted it to look nicer. :)  I'm in canada and ordering enough parts to make up 3 of these. :)  (now I just have to find a reputable place to get the CPLD :)     Cheers. :)
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: waltermixxx on 01:38, 05 September 23
so I purchased all my parts from digikey.ca except for the 9572 chip, and ordered it from:

https://www.ebay.ca/itm/272453077118 ( 5PCS XC9572-10PC44C Encapsulation:PLCC44,XC9572 In-System Programmable CPLD)

I hope they are reputable and I dont get fakes. :)

Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: waltermixxx on 19:35, 14 September 23
So my CPLD chips arrived.  I Hope they are Good.  :0)
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: waltermixxx on 12:56, 15 September 23
I was able to program the CPLD's and verify,  so looks like they are good.  I'm surprised how quickly they arrived.  I have enough parts to build up 3 boards.  One I will keep, wondering if there is anyone in Canada with a CPC who might wish to buy one cost of parts and canada post. :)     (once i test the boards) :)  
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: waltermixxx on 16:09, 15 September 23
(https://cdn.discordapp.com/attachments/574251483428552705/1152257601141219338/IMG_1825.jpg)
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: waltermixxx on 00:32, 16 September 23
Here is my completed CPC464  :)  The M4 Board is connected also to the back of the Amstrad.  Now I just have to figure out how to run CPM on this. :) Question about the CRTC: 00 is this the good one? or the one that wont let me run batman?  :) very new to the CPC computers. :)

Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: GUNHED on 00:09, 17 September 23
Congratulations! Now you can use advanced CPC OSes.  :) :) :)
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: d_kef on 01:26, 17 September 23
Quote from: waltermixxx on 00:32, 16 September 23Now I just have to figure out how to run CPM on this. :) 


Try HDCPM (https://www.cpcwiki.eu/index.php/HDCPM) v1.10
It's just been released and supports your lineup.

d_kef
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: llopis on 18:23, 12 October 23
I'm working on a video about a similar RAM upgrade for the CPC and I was wondering what are some of the best demos/games/apps that showcase having more than 128KB of RAM. I already have FutureOS and SymbOS in the list. Anything else that you would say is really cool? Any dev environments (on the CPC itself) that can use that much RAM for something useful?
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: eto on 13:14, 16 October 23
Quote from: llopis on 18:23, 12 October 23I'm working on a video about a similar RAM upgrade for the CPC and I was wondering what are some of the best demos/games/apps that showcase having more than 128KB of RAM. I already have FutureOS and SymbOS in the list. Anything else that you would say is really cool? Any dev environments (on the CPC itself) that can use that much RAM for something useful?
I asked a similar question a year ago, there wasn't a lot of examples that really benefit from more than 128K: https://www.cpcwiki.eu/forum/amstrad-cpc-hardware/what-memory-expansion-size-to-choose/msg220291/#msg220291

Afaik @zhulien is working on some projects that will take advantage of a lot of RAM. 
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: zhulien on 13:34, 16 October 23
yes,

MCP (master control program); currently allows different background tasks in AMSDOS 1 per 16kb bank - this is a POC which is reasonable code that doesn't need throwing away.  The idea is to make hardware drivers available to AMSDOS in a standard manner - in a way that get adopted.  This set of drivers likely will also be compatible with PrimalOS - which isn't specifically AMSDOS, but can run on top of AMSDOS too.

I have already coded POCs of memory allocations and such for support up to 4mb RAM - as in a heap.  This uses 24 bit addressing.  I have designed the virtual memory logic to cater for up to 16mb RAM (4mb physical) - using packed far addresses too, the benefit is not to have 16mb RAM, but to allow 128kb systems run software that requires more RAM but allowing systems with 1mb, 2mb, 4mb to run optimally.  If a compiler or assembler catered for what I need here now, it would be sooner than later, but I need to put support in here for my compiler so that it's easy to write large software that also works on 128kb systems (pretty fast) or 64kb systems (pretty slow - but runs).  I am actually almost settled on 4mb RAM ceiling with 64 byte block size instead of 16mb RAM ceiling with 256 byte block size.  But... I guess it would be relatively easy to make 2 separate builds if we ever got a 16mb RAM expansion.  I can elaborate more later, but you cna read the RAM tab here: https://docs.google.com/spreadsheets/d/1XgRVlh27K_C0-gMtroMhN8lK9mAQxVQg1x-3M42kBYo/edit?usp=sharing  Of all the allocation / deallocation tests I have created and coded, the RAT (RAM Allocation Table) method seems to be the best balance for performance and accessibility for a Z80 system with lots of RAM rather than worrying about the loss of every single byte and catering for 24 bit far addresses and tralling long linked lists to find free blocks.

I have been playing with modified locomotive BASIC to improve the ways it uses RAM too. 

RAM usage: I am looking at a solution that to me is the "right way of doing things" on a CPC.  Goal: plug in memory, run some software (MCP? Primal? which initialises RAM and drivers), run applications or games that use the RAM and drivers in a nice way without trashing everything.

Should every CPC owner have at least 576kb RAM? ABSOLUTLY!!!  YES YES YES x 576 times.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: zhulien on 13:38, 16 October 23
Quote from: llopis on 18:23, 12 October 23I'm working on a video about a similar RAM upgrade for the CPC and I was wondering what are some of the best demos/games/apps that showcase having more than 128KB of RAM. I already have FutureOS and SymbOS in the list. Anything else that you would say is really cool? Any dev environments (on the CPC itself) that can use that much RAM for something useful?
Try Alyssa Database as reviewed in CPC Attack!
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: Anthony Flack on 05:35, 24 October 23
My Bomb Jack remake requires 128k and a disk drive but the eventual intention is to have it detect if 256k is available and load the entire game (title screen, all backgrounds) into memory at once. I don't have 256k of memory to test with but I guess I'll figure it out.

I do have an M4 board and running the game from that is very fast and I like that; using an extra 128k as a ram disk seems like a worthwhile thing to add for people who have it.

Also it should make for a truly epic disk-grinding session when loading the whole thing from the floppy drive.
Title: Re: Open Source, DIY 512KB RAM Expansion
Post by: eto on 10:06, 24 October 23
Quote from: Anthony Flack on 05:35, 24 October 23but I guess I'll figure it out.
You can use Winape to simulate it. 
Or replace the second RAM bank with 256Kbit ICs: https://www.cpcwiki.eu/index.php/CPC_6320_/_CPC_6512_-_internal_320K_/_512K_for_CPC_6128
Powered by SMFPacks Menu Editor Mod