News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu

Open Source, DIY 512KB RAM Expansion

Started by revaldinho, 22:10, 24 April 18

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Kris

Does this tool exist for Amdos ?
It looks pretty nice (and useful).


GUNHED

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
http://futureos.de --> Get the revolutionary FutureOS (Update: 2023.11.30)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

Kris

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.


GUNHED

http://futureos.de --> Get the revolutionary FutureOS (Update: 2023.11.30)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

revaldinho

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








Audronic

@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
Procrastinators Unite,
If it Ain't Broke PLEASE Don't Fix it.
I keep telling you I am Not Pedantic.
As I Live " Down Under " I Take my Gravity Tablets and Wear my Magnetic Boots to Keep me from Falling off.

00WReX

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
The CPC in Australia...
Awa - CPCWiki

Audronic

Procrastinators Unite,
If it Ain't Broke PLEASE Don't Fix it.
I keep telling you I am Not Pedantic.
As I Live " Down Under " I Take my Gravity Tablets and Wear my Magnetic Boots to Keep me from Falling off.

00WReX

The CPC in Australia...
Awa - CPCWiki

GUNHED

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.  :)
http://futureos.de --> Get the revolutionary FutureOS (Update: 2023.11.30)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

revaldinho

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







Vyper68

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.
Paul Woakes - Genius & Programmer

Thank you for Mercenary Paul

LambdaMikel

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!

GUNHED

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:
http://futureos.de --> Get the revolutionary FutureOS (Update: 2023.11.30)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

revaldinho

#64


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) 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 with links to get bare boards from Seeed directly and pointers to the documentation and build instructions on my GitHub 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.

rambler


I have made a 3D printed box.
You can find the stl-files at Thingiverse: 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.


revaldinho

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. PCBs are available directly from SeeedStudio 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.




















GUNHED

http://futureos.de --> Get the revolutionary FutureOS (Update: 2023.11.30)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

Bryce

100 Bonus points from me for "keeping it retro!" - Not a CPLD or FPGA in sight! Respect.

Bryce.

TotO

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.
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

Bryce

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.

VintageAdvantage

I really don't get the negativity that certain folks are displaying here towards anything not invented / designed by them...  >:(

Great job @revaldinho - very useful!

TotO

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. ;)
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

TotO

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...
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

VintageAdvantage

#74
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.

Powered by SMFPacks Menu Editor Mod