Author Topic: Open Source, DIY 512KB RAM Expansion  (Read 3993 times)

0 Members and 1 Guest are viewing this topic.

Offline Kris

  • 6128 Plus
  • ******
  • Posts: 526
  • Country: fr
  • Team Impact
  • Liked: 183
Re: Open Source, DIY 512KB RAM Expansion
« Reply #50 on: 19:02, 14 July 18 »
Does this tool exist for Amdos ?
It looks pretty nice (and useful).


Offline GUNHED

  • 6128 Plus
  • ******
  • Posts: 673
  • Country: de
  • Reincarnation of TFM
  • Liked: 310
Re: Open Source, DIY 512KB RAM Expansion
« Reply #51 on: 19:08, 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 (Recent update: 2018.08.23)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Ver.: 2018.08.15)

Offline Kris

  • 6128 Plus
  • ******
  • Posts: 526
  • Country: fr
  • Team Impact
  • Liked: 183
Re: Open Source, DIY 512KB RAM Expansion
« Reply #52 on: 19: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.


Offline GUNHED

  • 6128 Plus
  • ******
  • Posts: 673
  • Country: de
  • Reincarnation of TFM
  • Liked: 310
Re: Open Source, DIY 512KB RAM Expansion
« Reply #53 on: 18:00, 15 July 18 »
Yes, true!  :)
http://futureos.de --> Get the revolutionary FutureOS (Recent update: 2018.08.23)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Ver.: 2018.08.15)

Offline revaldinho

  • CPC664
  • ***
  • Posts: 53
  • Country: gb
  • Liked: 76
Re: Open Source, DIY 512KB RAM Expansion
« Reply #54 on: 01:59, 10 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 ?


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








Offline Audronic

  • 6128 Plus
  • ******
  • Posts: 1.044
  • Country: au
  • I know RST3 . I now know a little More.
  • Liked: 225
Re: Open Source, DIY 512KB RAM Expansion
« Reply #55 on: 02: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
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.

Offline 00WReX

  • 6128 Plus
  • ******
  • Posts: 633
  • Country: au
  • The time you enjoy wasting is not wasted time.
    • index.php?action=treasury
    • CPCwiki
  • Liked: 323
Re: Open Source, DIY 512KB RAM Expansion
« Reply #56 on: 03:56, 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

Offline Audronic

  • 6128 Plus
  • ******
  • Posts: 1.044
  • Country: au
  • I know RST3 . I now know a little More.
  • Liked: 225
Re: Open Source, DIY 512KB RAM Expansion
« Reply #57 on: 05:20, 10 August 18 »
@00WReX


Posted


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.

Offline 00WReX

  • 6128 Plus
  • ******
  • Posts: 633
  • Country: au
  • The time you enjoy wasting is not wasted time.
    • index.php?action=treasury
    • CPCwiki
  • Liked: 323
Re: Open Source, DIY 512KB RAM Expansion
« Reply #58 on: 05:31, 10 August 18 »
Cheers Ray. Appreciate it. :)
The CPC in Australia...
Awa - CPCWiki

Offline GUNHED

  • 6128 Plus
  • ******
  • Posts: 673
  • Country: de
  • Reincarnation of TFM
  • Liked: 310
Re: Open Source, DIY 512KB RAM Expansion
« Reply #59 on: 17:07, 10 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 (Recent update: 2018.08.23)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Ver.: 2018.08.15)

Offline revaldinho

  • CPC664
  • ***
  • Posts: 53
  • Country: gb
  • Liked: 76
Re: Open Source, DIY 512KB RAM Expansion
« Reply #60 on: 21:12, 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


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






 

Offline Vyper68

  • Supporter
  • CPC6128
  • *
  • Posts: 230
  • Country: gb
  • 8-Bit Forever! - You know it makes sense
    • index.php?action=treasury
  • Liked: 94
Re: Open Source, DIY 512KB RAM Expansion
« Reply #61 on: 11: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.
Paul Woakes - Genius & Programmer

Thank you for Mercenary Paul

Offline LambdaMikel

  • 6128 Plus
  • ******
  • Posts: 815
  • Country: us
    • Homepage
  • Liked: 409
Re: Open Source, DIY 512KB RAM Expansion
« Reply #62 on: 09: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!

Offline GUNHED

  • 6128 Plus
  • ******
  • Posts: 673
  • Country: de
  • Reincarnation of TFM
  • Liked: 310
Re: Open Source, DIY 512KB RAM Expansion
« Reply #63 on: 17:49, 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 (Recent update: 2018.08.23)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Ver.: 2018.08.15)

Offline revaldinho

  • CPC664
  • ***
  • Posts: 53
  • Country: gb
  • Liked: 76
Re: Open Source, DIY 512KB RAM Expansion
« Reply #64 on: 23: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) 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.
« Last Edit: 20:59, 02 November 18 by revaldinho »