CPCWiki forum

General Category => Amstrad CPC hardware => Topic started by: eto on 20:10, 29 September 22

Title: what memory expansion size to choose?
Post by: eto on 20:10, 29 September 22
Does it make sense to add more than 256K or 512K additional RAM to a CPC? I know that FutureOS and SymbOS support more RAM but are there any applications or games that also take advantage of the additional RAM above 512KB?  Anything relevant that will only run with more than 512KB? Or at least be much more convenient with more than 512KB?





Title: Re: what memory expansion size to choose?
Post by: TotO on 20:16, 29 September 22
The 80s standard on CPC was 256K, mostly used by tools like Discology, not games neither demo.
Extra 256K (512K total) was usually used to add a RAM Drive (Silicon Disk), more than real RAM for programs.
Title: Re: what memory expansion size to choose?
Post by: Gryzor on 21:03, 29 September 22
Was there any, say, database program that could load huge files into memory, even with paging? 
Title: Re: what memory expansion size to choose?
Post by: eto on 22:01, 29 September 22
Quote from: Gryzor on 21:03, 29 September 22Was there any, say, database program that could load huge files into memory, even with paging?
Not sure when the Yarek/RAM7 Addressing scheme came up, but I guess it was way after any such program came out. 
Title: Re: what memory expansion size to choose?
Post by: zhulien on 22:08, 29 September 22
Alyssa Database by myself supports 512kb extra RAM.
Title: Re: what memory expansion size to choose?
Post by: Prodatron on 09:33, 30 September 22
E.g. I know about these productions, where I am not sure, if you could call them "relevant":

- Shinings Bad Apple demo (https://www.youtube.com/watch?v=q1GitTUPdsg) requires 1MB ram
- a lot of Devilmarkus musik sample demos, using my AY stereo sample player, support up to 4MB
- CPC Word (https://www.cpcwiki.eu/index.php/CPC_Word) supports up to 576K :D
Title: Re: what memory expansion size to choose?
Post by: zhulien on 09:36, 30 September 22
Is that 4mb or 4mb plus the 64k?
Title: Re: what memory expansion size to choose?
Post by: Gryzor on 09:37, 30 September 22
Ooh yes CPC Word is a nice one!
Title: Re: what memory expansion size to choose?
Post by: eto on 10:05, 30 September 22
Quote from: Prodatron on 09:33, 30 September 22E.g. I know about these productions, where I am not sure, if you could call them "relevant":

- Shinings Bad Apple demo (https://www.youtube.com/watch?v=q1GitTUPdsg) requires 1MB ram
- a lot of Devilmarkus musik sample demos, using my AY stereo sample player, support up to 4MB
- CPC Word (https://www.cpcwiki.eu/index.php/CPC_Word) supports up to 576K :D

thanks a lot. "Relevance" is of course a matter of opinion and personal preferences, so I'm happy to see examples.

Are there any games that run only with >128K or work better with >128K?

Since you are probably the best person to ask: In SymbOS, what works only/better with 1MB than with 512K?








Title: Re: what memory expansion size to choose?
Post by: Prodatron on 10:24, 30 September 22
Quote from: eto on 10:05, 30 September 22Since you are probably the best person to ask: In SymbOS, what works only/better with 1MB than with 512K?
Nothing. You just have more ram and can load more stuff and run more applications at the same time. It's all dynamic like on a modern PC and operating system.
IMHO 576K is fine for most things. But with 1 MB you can e.g. start the browser 15times :D
symcpc1mb2.gif

Quote from: eto on 10:05, 30 September 22Are there any games that run only with >128K or work better with >128K?
Outside SymbOS I don't know of any. In SymbOS there are several applications and games which won't run on a naked 128K system, as SymbOS already requires around 80K by itself.

Title: Re: what memory expansion size to choose?
Post by: Prodatron on 10:28, 30 September 22
Quote from: zhulien on 09:36, 30 September 22Is that 4mb or 4mb plus the 64k?
The first 64K are always seperate. So total RAM is 64K + memory expansion size (for those with 512K or more).
Title: Re: what memory expansion size to choose?
Post by: GUNHED on 12:16, 30 September 22
Well, the 4 MB Exp-RAM size is getting to be a standard (hopefully one day), but very slowly sadly.
Some software I did supporting 4 MB, but it would be great if there would be much more support for it.
Title: Re: what memory expansion size to choose?
Post by: zhulien on 20:07, 01 October 22
we are lucky we have a CPC that can load fast from drives - I love this video from 19mins in, how it is sped up 50x loading from mass storage - on the C64 and it STILL takes a minute!  Imagine loading for 50 minutes from sdcard or similar :D
Title: Re: what memory expansion size to choose?
Post by: TotO on 20:26, 01 October 22
Quote from: GUNHED on 12:16, 30 September 22Well, the 4 MB Exp-RAM size is getting to be a standard, but very slowly sadly. Some software I did supporting 4 MB, but it would be great if there would be much more support for it.
While many users do not want to use more than 64KB since 30 years ago and few programs really use 512KB since 10 years ago, I'm not sure that will be a big step to require 4MB RAM. In fact, using ROM cartridges or a mass storage for new programs tend to reduce the real RAM usage today.
Title: Re: what memory expansion size to choose?
Post by: zhulien on 03:37, 03 October 22
On a single real cpc we can now have 2 hxc drives with 64gb storage each (maybe bigger haven't tested), a 512mb x-mass (any success with larger yet @TotO), m4 with 64gb, and i guess 2 Albieros with huge amount of remote storage. Then all can be used at once with unidos (except the hxc currently need floppies images for now, not native) plus a massive remote ftp site.  I guess I can put a massive movie collection now on cpc - just need a movie player for it to make it a media centre.
Title: Re: what memory expansion size to choose?
Post by: XeNoMoRPH on 06:09, 03 October 22
Programs that use 256 kb of ram:
-----------
Discology
Orgams assembler
Punishment v1.0
Alyssa Database
Pyradev is a complete utility from Discovery Software.
Hackit ROM
JL-Copy Utilities COPY Utilities v2
Disc'O'Magic v4.1

Games:
--------
ChibiAkumas Episode 2

 

 




Title: Re: what memory expansion size to choose?
Post by: TotO on 09:01, 03 October 22
@zhulien If you remember, 32-bit 100MHz+ 486/Pentium PC running Doom was using 80/120MB HDD. Pentium III with 500MHz+ running Quake 3 was using 512MB/1TB HDD. All the CPC games/tools fit into around 200MB. Using at less only one 64GB storage on a 8-bit 4MHz CPC looks to me so supernatural. How long to fill and read them at 150kB/s ? 25 years no-stop? ;D
Title: Re: what memory expansion size to choose?
Post by: roudoudou on 09:56, 03 October 22
Quote from: XeNoMoRPH on 06:09, 03 October 22Programs that use 256 kb of ram:
-----------
Discology
Orgams assembler
Punishment v1.0
Alyssa Database
Pyradev is a complete utility from Discovery Software.
Hackit ROM
JL-Copy Utilities COPY Utilities v2
Disc'O'Magic v4.1

Games:
--------
ChibiAkumas Episode 2

Demo:
---------
Onescreen Colonies #2 patched for CRTC 3 ;D

Title: Re: what memory expansion size to choose?
Post by: zhulien on 20:19, 03 October 22
Pyradev is debatably the best old assembler suite for CPC, Maxam 1.5 is pretty good too for a 16kb ROM.  Both are now well out of date when compared to modern assemblers.  Still, if I could patch Pyradev to work properly on an M4, the monitor is excellent. 
Title: Re: what memory expansion size to choose?
Post by: eto on 09:32, 04 October 22
Based on all the comments I would draw this conclusion:


I guess I'll skip the idea of adding a 4MB SIMM to the CPC.
Title: Re: what memory expansion size to choose?
Post by: TotO on 10:18, 04 October 22
2x256K for a DRAM. 1x 512K for a SRAM. (allows 512K or 256K + 256K drive from BASIC & CP/M)
In both cases, the base address is the CPC standard &7Fxx. That is compatible with everything.

If the idea is to provide an internal upgrade, I like the fact to have 256K for the second bank.
If you would like to support a 1024K SIMM-30 on socket, does the memory refresh is enough fast?

Title: Re: what memory expansion size to choose?
Post by: eto on 11:09, 04 October 22
Quote from: TotO on 10:18, 04 October 222x256K for a DRAM. 1x 512K for a SRAM. (allows 512K or 256K + 256K drive from BASIC & CP/M)
In both cases, the base address is the CPC standard &7Fxx. That is compatible with everything.

If the idea is to provide an internal upgrade, I like the fact to have 256K for the second bank.
If you would like to support a 1024K SIMM-30 on socket, does the memory refresh is enough fast?


I read a couple of specs and it seems the bigger RAM chips need to refresh less often - at least for those specs I found, the refresh cycles grow with the number of rows of their internal matrix. For most RAM chips that matrix is 9x9, 10x10 or 11x11, so we would need 3 additional refresh rows compared to the 8 rows, the CPC already provides. If I continue to use the CRTC lines for refresh and mix them with normal RAM access exactly like the CPC does, I should be able to meet the refresh demands of those RAM chips. 

But it would require lots of soldering inside the CPC - and as much as it tempts me to give it a try just for the sake of it, it's nothing I would see generally as a good idea.

Getting 256KB as the second bank in a 6128 is much easier by replacing the 4164 chips with 41256 chips. They provide the Data IN and OUT pins, use a 8x10 matrix (so no additional refresh row required) and you will only need 3 standard ICs to properly control A8 of the Ram chips. I'll document this as soon as I have finished the prototype and tested it thoroughly. 

But still lots of soldering required, so unless you have to change your RAM anyway because it's fried, I would not do it. 

With all I learned over the last weeks, I think(hope/guess) it should also be possible to produce a simple extension that can be plugged into the CPU socket and only needs 2 lines to the board. With 512KB max, it should be small enough to fit into most CPCs. (Only Plus and 464 cost reduced would need a different PCB).
Title: Re: what memory expansion size to choose?
Post by: TotO on 11:19, 04 October 22
Sure. About an internal expansion on the CPU socket, I have designed one that use two thin 32K SRAM IC. The idea was to upgrade a 464/664 to be the same base as the 6128. Next, peoples are free to use an external expansion board.
Title: Re: what memory expansion size to choose?
Post by: WacKEDmaN on 18:25, 05 October 22
ill just throw in my 2c worth....
it would be alot easier to use a single SRAM (512k/1mb) chip, less wiring up/soldering..no refresh circuit needed..
Title: Re: what memory expansion size to choose?
Post by: GUNHED on 21:08, 05 October 22
ROM and mass storage is no replacement for RAM btw.
Title: Re: what memory expansion size to choose?
Post by: eto on 09:00, 06 October 22
Quote from: WacKEDmaN on 18:25, 05 October 22ill just throw in my 2c worth....
it would be alot easier to use a single SRAM (512k/1mb) chip, less wiring up/soldering..no refresh circuit needed..
Let me put it this way: 6 weeks ago I thought it would be a great idea to put a SIMM into my CPC. After working on the internal upgrade for the 6128 and finally (somehow) understanding how everything works together, an internal upgrade with a SIMM seems feasible but too much work with little benefit. The logic isn't that complex and I have a PCB already laid out, but even once it works, you need to do a lot of soldering and it will create a huge mess in the CPC. Definitely over 30 cables that need to be soldered. Which means, if you are a bloke like me, who spends more time debugging because of stupid little mistakes than actual soldering, you should not even try it.

While I still think it would be a fun (or frustrating - depending on my actual soldering skills) project for me, it's not of much use for anybody else. Even if properly documented, I doubt a lot of people would try to replicate it, if you can get a "good enough" external RAM extension for 30€.

But I still think that I am not the only one who dislikes the external extensions, if it's not required to have them externally. I have replaced the second bank with 256MBit chips and that's already fine to upgrade the 6128 to 320KB but it's still a lot of soldering work. Unless you have to change (many) RAM chips anyway, I would not recommend it.

I'm now considering to build an internal upgrade board that can be plugged into the CPU socket. That was actually the root cause for my question here, if it's even worth to think about a PCB that can hold more than 512KB. 512KB simplifies things a lot - and if my idea is correct, I will only need a FlipFlop, a GAL and of course the SRAM chip, which all are available in DIP packages, so most people that know how to solder should be able to deal with it.
Title: Re: what memory expansion size to choose?
Post by: TotO on 09:12, 06 October 22
Quote from: GUNHED on 21:08, 05 October 22ROM and mass storage is no replacement for RAM btw.
The ROM is read only memory. While the data do not need to be updated, that perfectly does the job of a filled RAM from any media. About mass storage, it is enough faster on CPC for direct to disc usages.
Title: Re: what memory expansion size to choose?
Post by: GUNHED on 11:19, 07 October 22
Yes, ROM is read only as you say. So if I need to work with 4 MB of data (f.e. the genome of S. cerevisiae) ROM is of NO use!
To access data on a modern mass storage is still 100 times slower than access to RAM directly. 
And I just don't wan't to have applications run 100 times slower.

If somebody just uses games, fine. But not everybody uses the CPC as game machine only.
Title: Re: what memory expansion size to choose?
Post by: eto on 11:47, 07 October 22
Quote from: GUNHED on 11:19, 07 October 22Yes, ROM is read only as you say. So if I need to work with 4 MB of data (f.e. the genome of S. cerevisiae) ROM is of NO use!

You are dealing with the genome data on a CPC?
Title: Re: what memory expansion size to choose?
Post by: GUNHED on 12:41, 07 October 22
Quote from: eto on 11:47, 07 October 22
Quote from: GUNHED on 11:19, 07 October 22Yes, ROM is read only as you say. So if I need to work with 4 MB of data (f.e. the genome of S. cerevisiae) ROM is of NO use!

You are dealing with the genome data on a CPC?
Yes, I did. Actually you can fit 16 Mbp (mega base pairs) into 4 MB of RAM (2 bit for each base pair, features separated). The CPC was used for some of my research publications.
However, this is for sure not of common interest, but an working example.

In general RAM is gold. And few MB can't be a sin - as soon as you do some serious work. There would be more examples.
Title: Re: what memory expansion size to choose?
Post by: TotO on 13:23, 07 October 22
Quote from: GUNHED on 11:19, 07 October 22Yes, ROM is read only as you say. So if I need to work with 4 MB of data (f.e. the genome of S. cerevisiae) ROM is of NO use
ROM is for solfwares with their own data, not the user data. (that allows to save RAM in any case)

Quote from: GUNHED on 11:19, 07 October 22To access data on a modern mass storage is still 100 times slower than access to RAM directly.
RAM is around 150K per second on CPC. Reading you, we have to understand that mass storage is around 1.5K per second... In fact it is enough close to the ROM/RAM speed. Anyway, if you have 4MB of data, you have to load them from the mass-storage (not a floppy disc) to the RAM. Finally, no need to load all when you can do it step by step, using less memory.
Title: Re: what memory expansion size to choose?
Post by: eto on 15:28, 07 October 22
Quote from: GUNHED on 12:41, 07 October 22However, this is for sure not of common interest, but an working example.

In general RAM is gold. And few MB can't be a sin - as soon as you do some serious work. There would be more examples.
Of course they won't be a sin. The good thing is: there is an extension out there that supports 4MB. So whoever needs it, can get one.

If it would have the same complexity/price/space requirement, it would be a no-brainer. A 2/4MB extension will be about 3x more expensive, bigger and more complex than a 64-512K extension.



Title: Re: what memory expansion size to choose?
Post by: Prodatron on 10:42, 08 October 22
Beside ram discs, nearly all examples, where huge amount of RAM is used, are streaming stuff. Either video streams or audio samples, see the examples mentioned some posts above. But all this has to be loaded from a mass storage first, which is nearly as fast as the RAM itself, as you just load it sequentially anyway (100times slower is maybe loading from tape).

Handling big data (>=512K) in RAM in a random way is a very rare thing on CPC. Using big ram expansions for executing code in all parts of the RAM is even more rare (the only example I know is SymbOS, I wonder if there are any more?).

So I agree with Toto, the use-cases for having 1/2/4MB ram expansions are pretty little.
Title: Re: what memory expansion size to choose?
Post by: zhulien on 16:53, 10 October 22
Quote from: Prodatron on 10:42, 08 October 22Handling big data (>=512K) in RAM in a random way is a very rare thing on CPC. Using big ram expansions for executing code in all parts of the RAM is even more rare (the only example I know is SymbOS, I wonder if there are any more?).

So I agree with Toto, the use-cases for having 1/2/4MB ram expansions are pretty little.
MCP also executes background tasks from the extra banks.  My dev machine is configured to use 512kb which gives up to 32 16kb tasks running in the background of BASIC.  In reality this is quite a lot of load for a CPC to run them all concurrently - I plan to add 64kb tasks too which means between 8 64kb tasks and up to 32 16kb tasks in 512k.  Double that for 1mb which is a lot.  I see the potential not so much for concurrent tasks, but a mix of concurrent driver tasks and applications running from the external memory - such as text editor, monitor (and target object code to run - and crash when developing) and all the rest surviving a reset.  This currently works well with POCs and should make development on CPC must more friendly.  Of course the crashed code doesn't survive the reset, or it will likely be a crash loop.

I have worked out a virtual memory scheme also which works with my context switcher to allow up to 4mb virtual memory on a 464 (slowly) or on a 128kb+ machine quite acceptably.  But it really works best with large programs that do not context switch but need tons of RAM.
Title: Re: what memory expansion size to choose?
Post by: GUNHED on 17:44, 12 October 22
Of course the use-cases for any kind of RAM expansion are very little.
Let's stay honest: More than 90% of the available software runs with 64 KB only very well.
So, the argument of use-cases is not helpful in this regard.
Title: Re: what memory expansion size to choose?
Post by: eto on 18:17, 12 October 22
Quote from: GUNHED on 17:44, 12 October 22Of course the use-cases for any kind of RAM expansion are very little.
Let's stay honest: More than 90% of the available software runs with 64 KB only very well.
So, the argument of use-cases is not helpful in this regard.

Of course it is... It's THE part that we are missing.

If there would be an interesting use-case for 4MB, people would start to get interested in it. Even if it would just be an idea, developers would maybe pick up the idea. But there is nothing. Not a single idea came up over the last couple of years, since 4MB are available, that more than a few people really are interested in. 

Technology becomes widely adopted, when it there is a "demand" and the technology is "good enough" to meet that demand. Demand is nothing else but a popular use-case, a "I want/need that" moment. The Iphone did not become popular because of the technology. It did become popular, because Apple identified use-cases - and then delivered technology that is good enough for those use-cases. 
Title: Re: what memory expansion size to choose?
Post by: GUNHED on 18:56, 12 October 22
I'm using 4 MB of expansion RAM in two of my CPC6128 since years (on internally, one externally) and I have quite some great use-cases for it. And of course my use-case are not automatically true for somebody else.

But it's the old story of hen and egg? Which was there first?
Here I sometimes have the feeling that people want to stop development by telling: Oh there is no hen / no egg - so we don't need the other.

As researcher I think the way around: Let's have one of them and we will have the other too.

BTW: Do you guys out there know how much(!) software Devilmarkus made for 4 MB's or RAM?
It's plenty!
Title: Re: what memory expansion size to choose?
Post by: GUNHED on 19:03, 12 October 22
Quote from: Prodatron on 10:42, 08 October 22Handling big data (>=512K) in RAM in a random way is a very rare thing on CPC. Using big ram expansions for executing code in all parts of the RAM is even more rare (the only example I know is SymbOS, I wonder if there are any more?).
Well, the multi tasking manager for FutureOS (called Caruh) allows to have working tasks using up to 4 MB for applications. I did show that on the XzentriX 2022 meeting actually. The maximum number of tasks is 255 in theory (in reality it's around 253-254, some RAM get's lost for buffering).
Title: Re: what memory expansion size to choose?
Post by: Gryzor on 19:11, 12 October 22
If I'm not mistaken Markus' 4MB software is all about streaming media? 
Title: Re: what memory expansion size to choose?
Post by: GUNHED on 19:34, 12 October 22
Some yes, some sound, some video, some others. I lost oversight.

The same is true for most 128 KB software (just having some wallpapers or pictures in the expansion RAM most of the time - but hey! At least :-))
Title: Re: what memory expansion size to choose?
Post by: martin464 on 12:12, 30 October 22
Guys there's something i don't understand
i found a 512kb expansion in the loft from Yarek it says 6128 on it, why won't this work on a 464?

Secondly, I'm going to acquire a Zaxon 512kb which definately will work
What I'd like is to use 64kb so i can run cp/m3 (patched) I know that works
But can I use the remainder as a ram disk and get 448kb say C: drive in cp/m like the PC/W's have
For me the ram disk is really a requirement for a project i got... 


Title: Re: what memory expansion size to choose?
Post by: TotO on 14:23, 30 October 22
Quote from: martin464 on 12:12, 30 October 22Guys there's something i don't understand i found a 512kb expansion in the loft from Yarek it says 6128 on it, why won't this work on a 464?
Because it is printed 6128 on it. ;D

The CPC 464 was originaly not expected to receive a RAM expansion. (only ROM)
It is mandatory to handle extra electronics stuffs, not required on a CPC 6128 to make it working.

Quote from: martin464 on 12:12, 30 October 22Secondly, I'm going to acquire a Zaxon 512kb which definately will work
What I'd like is to use 64kb so i can run cp/m3 (patched) I know that works. But can I use the remainder as a ram disk and get 448kb say C: drive in cp/m like the PC/W's have. For me the ram disk is really a requirement for a project i got...
The Zaxon expansion is a dk'tronics clone that handle the missing electronic to run on a CPC 464.
Now, it will require extra software in ROM to add the RAM Drive support. (need CP/M patched for the usage)

The X-MEM offer the RAM Drive for CP/M (shared with the BASIC), but I'm currently not building them.


Title: Re: what memory expansion size to choose?
Post by: martin464 on 11:03, 02 November 22
Yes TotO but I wonder what the 464 lacks, after all it bank switches already the ROM! Is there some mod that could make the 6128 expansions work? I'm thinking of building my own RAM pack cause I don't know if I can obtain the Zaxon one

Title: Re: what memory expansion size to choose?
Post by: eto on 12:27, 02 November 22
Quote from: martin464 on 11:03, 02 November 22Yes TotO but I wonder what the 464 lacks, after all it bank switches already the ROM! Is there some mod that could make the 6128 expansions work? I'm thinking of building my own RAM pack cause I don't know if I can obtain the Zaxon one


The 6128 has an additional PAL that the 464 doesn't have. It adds behaviour that is crucial for proper expanded RAM handling: 

1) the RAMDIS signal in the 6128 also protects internal RAM from being written
2) the PAL controls A15 and A14 of the RAM which then realises the banking. 

When you start developing a new RAM expansion it's much simpler to create an extension for a 6128 first. If everything works there, you can go for the 464 and either overdrive some lines or manipulate the board of the 464 in hardware.

I would expect that this was either an early or just a simple RAM expansion of Yarek which didn't deal with the manipulations that are required for a 464.

Title: Re: what memory expansion size to choose?
Post by: martin464 on 14:18, 02 November 22
ah thanks i may be ok cause i ordered a zaxon from cpcstore.co.uk. after a few beers i forgot i ordered it, now i see it went to spam and they are posting it. the last few days i've been trying to figure out what the heck i ordered, if anything and from whom. So it is looking promising. the last few days have been trying to work out what i did after those beers it was a mystery, I know I ordered something, but what? I think I need my own personal ram extension!
Powered by SMFPacks Menu Editor Mod