News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu
avatar_PulkoMandy

Gemini 1MB RAM expansion for Amstrad Plus

Started by PulkoMandy, 20:34, 08 October 22

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

zhulien

#125
Quote from: andycadley on 17:36, 18 February 23@zhulien I can answer the first two questions:

1) Both 64K banks of a 6128+ work correctly, i.e. when the ASIC is paged in, no RAM will see the writes to addresses between #4000 and #7fff regardless of what the memory paging arrangement is.
Does that mean from an unexpanded 6128+ point of view, the ASIC and block 5 somewhat work like ROM over screen RAM at C000 - i.e. you can from ROM and transfer images to the screen by writing to the ROM you are reading from? (I do that in the SUPER.ROM)...  can you run code in the block 5 with preprepared sprite data and basically LDIR it to the same address and it would appear inside ASIC or does ASIC replace the RAM no matter which block - even for reads?  I ask this because it is the RAM you are blocking the writes to, effectively making it readonly like a ROM - but where do the reads come from if both ASIC and block 5 are paged in?

PulkoMandy

They can't be both paged in. The ASIC takes priority over everything else. When the ASIC is mapped you can't access RAM or ROM at the same address.

If you use an external memory extension that doesn't take this into account, writes will go to both the ASIC and the RAM, and reads will be replied by both the ASIC and the RAM or ROM at that address. For writes this is OK, for reads it creates a conflict, and you will probably read corrupted data and cause a short-circuit on the signals, which isn't great for the hardware.

andycadley

Quote from: zhulien on 23:01, 18 February 23
Quote from: andycadley on 17:36, 18 February 23@zhulien I can answer the first two questions:

1) Both 64K banks of a 6128+ work correctly, i.e. when the ASIC is paged in, no RAM will see the writes to addresses between #4000 and #7fff regardless of what the memory paging arrangement is.
Does that mean from an unexpanded 6128+ point of view, the ASIC and block 5 somewhat work like ROM over screen RAM at C000 - i.e. you can from ROM and transfer images to the screen by writing to the ROM you are reading from? (I do that in the SUPER.ROM)...  can you run code in the block 5 with preprepared sprite data and basically LDIR it to the same address and it would appear inside ASIC or does ASIC replace the RAM no matter which block - even for reads?  I ask this because it is the RAM you are blocking the writes to, effectively making it readonly like a ROM - but where do the reads come from if both ASIC and block 5 are paged in?
No, because when the ASIC is paged in all reads and writes between #4000 and #7fff by the CPU are accesses to the ASIC registers and the RAM is hidden. There is no write-through (or read-through) like there is with ROM.

The video hardware (and the DMA processor) never see any of the paging though, all there accesses come directly from the main 64K as if nothing else existed.

zhulien

I get it, it is to stop the memory corruption when the external banks are paged in, but doesn't address the original design  of paging in asic when running from block 5.

Apollo

@PulkoMandy Received my package! Thank you very much, will play with the hardware in my next vacation 8)
CPC - My beloved first computer!

PulkoMandy

Hello,

News from Gemini:

- I can make an Amstrad CPC 6128 version (without the ASIC lock/unlock feature)
- 2MB RAM chips are available again, so I can finally start building the 2MB version

When ordering, please let me know which version you want: Plus or CPC6128, and 1 or 2 MB.

Gemini is still not compatible with CPC464 and 664.

HAL6128

...hm, is the Gemini not supposed to work with a regular CPC6128? I mean, I plugged it for testing purposes in and it work pretty cool on a CPC6128 (and with CP/M, also the Dk'tronics RAM drive works). Might there some problems to be expect a normal CPC?
...proudly supported Schnapps Demo, Pentomino and NQ-Music-Disc with GFX

PulkoMandy

It will work, but if some software attempts to unlock the ASIC, it will not map itself in the memory area that would normally conflict with the ASIC.

I don't think this is very likely to happen, but I can make a version with the ASIC unlock and mapping detection circuit completely removed, since it's not needed in that case.

You will easily notice if you end up in this condition: if both the LEDs light up on a non-Plus machine, you're in this case.

Prodatron

That's an interesting information. It means, that after trying to detect a CPC Plus with no success you should execute one "unmap ASIC" operation just to tell the Gemini, that it can map to this area. Then it should work on a 6128 old generation without problems?

GRAPHICAL Z80 MULTITASKING OPERATING SYSTEM

andycadley

Quote from: Prodatron on 10:18, 27 March 23That's an interesting information. It means, that after trying to detect a CPC Plus with no success you should execute one "unmap ASIC" operation just to tell the Gemini, that it can map to this area. Then it should work on a 6128 old generation without problems?
You could do that, but then you're into the realms of trying to work around supporting a memory expansion that wasn't really designed for the hardware you have. Which is exactly what the Plus version of the Gemini was trying to avoid in the first place.

It's probably easier to just accept that the different models need different RAM expansions (which would be easier if everyone didn't add a RAM expansion to every peripheral they design but hey ho).

Prodatron

That's true, but why shouldn't new software take that into account, as now we know about this.
I am using the current Gemini version for my 6128 oG together with the M4Board, so for me it makes sense, if there is no conflict if software tries to detect a CPC Plus.

GRAPHICAL Z80 MULTITASKING OPERATING SYSTEM

PulkoMandy

Yes, if software re-locks the ASIC after trying to unlock it, you're fine. Or also if it uses some other way to test for a Plus machine, for example detecting CRTC type 3 without unlocking the ASIC.

The LED on the Gemini lets you know when the ASIC is unlocked. This leads to some interesting discoveries (or re-discoveries). For example if you run Burnin Rubber and reset the CPC using CTRL SHIFT ESC, the ASIC remains unlocked, and you can access the BASIC with ASIC unlocked. Which means the locking wasn't really effective to begin with. Oops  :laugh:

In later batches of the Gemini I will add a way to change easily from one configuration to the other (with a switch for example). But the non-Plus version has 3 chips on it instead of 5, so maybe I can make a smaller version and maybe also a little bit cheaper (but it may not be a very large price difference). But now that I have said that, no one will want to buy the current boards...

andycadley

Quote from: Prodatron on 10:37, 27 March 23That's true, but why shouldn't new software take that into account, as now we know about this.
I am using the current Gemini version for my 6128 oG together with the M4Board, so for me it makes sense, if there is no conflict if software tries to detect a CPC Plus.
Because it's closing the stable door after the horse has bolted.

There is already software out in the wild that doesn't do that, so trying to use it on a standard CPC will likely cause weird incompatibility issues anyway. Anyone wanting a memory expansion for an old school CPC has plenty of other options that they can spend their money on and get the behaviour they expect.

Ultimately the Plus and CPC models need different implementations of memory expansions. You could do an "all in one device" by adding a switch/jumper that selects what type of device you have (I don't think there is any other way) and if there is a market for such a thing, I'm sure someone will build one. I'm still dubious about that, I suspect just having separate devices and being clear about what they are fully compatible with is a lot easier in the long run.

GUNHED

#138
Hi 6128plus Users! Well, I just intended to drop in an tell how great the 1 MB Gemini board works with my 6128plus computer (and I actually to lots of direct hardware programming, so 'testing' was done the hard way).
And - oh wonderful - there is the 2 MB version. And I want right that what is offered (instead a RAM expansion working on all computers). PM sent of course already.
IMHO it's great to have a RAM expansion specifically made for the 6128plus and I (personally) see not too much need to see it running on other computers, because: I bought it for the Plus, it runs with the Plus, it stays with the Plus.  :) :) :)

2 MB on Plus is an even greater achievement!!! Thank you so much PulkoMandy!!!  :) :) :)

(start dreaming of 4 MB for the Plus now... ;-))
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)

PulkoMandy

Hello,

So, here is a bit of an update. Since I can now offer a 2MB version, it makes sense to offer this for CPC 6128 (non-plus) as well. There were some demands for that. So I'll now make it officially available. And since it allows me to remove some chips and is a bit faster to assemble, it is also a little cheaper.

Important note: this is still only for the CPC6128. For the 464 and 664, a different design is required, which I am not able to test (I don't own any of these machines in an usable state)

The updated price list:

  • 2MB RAM for Amstrad 6128 Plus, 464 Plus - 45€
  • 1MB RAM for Amstrad 6128 Plus, 464 Plus - 35€
  • 2MB RAM for Amstrad CPC 6128 - 42€
  • 1MB RAM for Amstrad CPC 6128 - 32€

As usual, please send me a PM or email first to order and don't pay anything upfront - I will tell you when your hardware is ready to ship. Especially with so many configurations available, I will not assemble boards in advance, and instead wait for orders to assemble exactly the board you want.

GUNHED

Received my 2 MB Gemini and (like the 1 MB version) it works perfectly. 
Thanks for this great expansion  :) :) :)
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)

zhulien

are the 2mb Gemini's compatible with the Symbiface 3 2mb RAM?

PulkoMandy

I don't know how the symbiface III RAM works. Is it compatible with DKTronics and MEMCARD or is it something else?

Prodatron

Symbiface 3 is using the #7fxx (first 512K), #7exx (second 512K) , #7dxx (third), etc. standard (I think this was first defined by Jarek?).
I guess all newer memory expansions are using this standard.

GRAPHICAL Z80 MULTITASKING OPERATING SYSTEM

PulkoMandy

Yes, this is the same scheme used by the MEMCARD so it is compatible. I don't know exacly who (Yarek or RAM7) did it first.

TotO

And it's not important to know, because it's just logical and not the invention of the century. :)
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

GUNHED

Quote from: zhulien on 07:45, 28 April 23are the 2mb Gemini's compatible with the Symbiface 3 2mb RAM?
Nearly, the SF3 RAM can also recognize the activation of the 6128plus memory mapped are, but it does not scan for the activation code. So the SF3 RAM is nearly there but the Gemini does a bit more. (In case of SF3 you do need the recent update though).
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)

GUNHED

Quote from: PulkoMandy on 16:24, 28 April 23Yes, this is the same scheme used by the MEMCARD so it is compatible. I don't know exacly who (Yarek or RAM7) did it first.
In 1992 (iirc) I had email contact with RAM7, who defined it up to 2 MB. Later on the 4 MB expansion was released, which was straightforward from RAM7s 2 MB solution.
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)

zhulien

I received my Gemini today, many thanks 

darkhalf

@PulkoMandy received my board today thanks, but it is showing as 512KB mode with the '2MB' switch set on my CPC464 plus. I will note there are some (but not all) extra banks showing up in Amstrad Diag (see pictures)

Also tested this on a CPC6128 using Symbos and showing 640KB (other memory test programs also showing 512KB)

Any ideas on this one?
CPC464/GT64, CPC464 Plus/CTM640, 2 x CPC6128/CTM644

Powered by SMFPacks Menu Editor Mod