News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu

dk'tronics ram, silicon disk and ram 7 2mb ram

Started by arnoldemu, 19:22, 18 June 16

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

arnoldemu

Hi everyone,

I am looking for people who own any of the following:
- 64KB dk'tronics silicon disk
- 256KB dk'tronics silicon disk
- 256KB dk'tronics ram
- RAM7's 2MB Ram expansion

I would like the owners to run some tests on these to confirm the exact I/O port decodings and which ram configurations these devices respond to and repeat. It would not take long :)

Thank you.


My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

Bryce

I own both a 256K RAM and 256K SD from DKTroniks (for the 6128) and a 256K RAM for the 464.

Bryce.

gerald

Quote from: arnoldemu on 19:22, 18 June 16
Hi everyone,

I am looking for people who own any of the following:
- 64KB dk'tronics silicon disk
- 256KB dk'tronics silicon disk
- 256KB dk'tronics ram
- RAM7's 2MB Ram expansion

I would like the owners to run some tests on these to confirm the exact I/O port decodings and which ram configurations these devices respond to and repeat. It would not take long :)

Thank you.


To my knowledge, the dk'tronics interface only use A15/IORQn/WRn /D7/D6 for bank selection.
So every IO address with A15 low and D7/D6 high will write the memory mapping register.

Bryce

Edited to move the text from behind the Quote Expansion tab.

Bryce.

arnoldemu

Quote from: gerald on 20:22, 18 June 16

To my knowledge, the dk'tronics interface only use A15/IORQn/WRn /D7/D6 for bank selection.
So every IO address with A15 low and D7/D6 high will write the memory mapping register.


Yes I think you are correct, but I am also interested in how these decode D5-D3.

I expect the 256KB Ram to decode d4 and d3 only. The silicon disc probably decodes d5 and d4 only.

@Bryce: I will send you a private message.
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

TFM

Quote from: arnoldemu on 19:22, 18 June 16
Hi everyone,

I am looking for people who own any of the following:
- 64KB dk'tronics silicon disk
- 256KB dk'tronics silicon disk
- 256KB dk'tronics ram
- RAM7's 2MB Ram expansion

I would like the owners to run some tests on these to confirm the exact I/O port decodings and which ram configurations these devices respond to and repeat. It would not take long :)
Thank you.


You may like to also check the X-MEM, i found some strange behaviour recently, but I have to look at it more detailed. Use out &7ec4,&c4, then beginning at &4000 you won't find what you expect. Or maybe my unit is broken.
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

gerald

Quote from: TFM on 17:57, 20 June 16
Use out &7ec4,&c4, then beginning at &4000 you won't find what you expect. Or maybe my unit is broken.
What do you expect ?

arnoldemu

Quote from: TFM on 17:57, 20 June 16

You may like to also check the X-MEM, i found some strange behaviour recently, but I have to look at it more detailed. Use out &7ec4,&c4, then beginning at &4000 you won't find what you expect. Or maybe my unit is broken.

Yes I have x-mem and I will also emulate it. I will test that selection.
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

TFM

Quote from: gerald on 18:13, 20 June 16
What do you expect ?


Rennert could confirm the effect! My routine does detect 1 MB, but it has 512 KB:
Dropbox - cpca


So I have to overwork my source. It seems that the 512 KB you address using port &7Fxx are somehow accessible through &7Exx too. I have to check more in detail after work.
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

gerald

Quote from: TFM on 21:00, 20 June 16

Rennert could confirm the effect! My routine does detect 1 MB, but it has 512 KB:
Dropbox - cpca


So I have to overwork my source. It seems that the 512 KB you address using port &7Fxx are somehow accessible through &7Exx too. I have to check more in detail after work.
Is your routine right ? It should detect 576k (512 XMEM + 64k internal extension)
What you see at 7Exx is the internal 64k extension RAM or any extension that maps there.
The XMEM decode A8 as part of the memory mapping. If it's 0, it will not map its RAM.
TotO had plan for a YMEM that would give 512k additional RAM for a total of 1M (but since 640k ought to be enough for anybody, we may never see it  ;D )

SRS

I have DOBBERTIN 512kb (self-expanded from 64k) at Schneider 464 if you need to test that, too.

TFM

Quote from: gerald on 21:34, 20 June 16
Is your routine right ? It should detect 576k (512 XMEM + 64k internal extension)
What you see at 7Exx is the internal 64k extension RAM or any extension that maps there.
The XMEM decode A8 as part of the memory mapping. If it's 0, it will not map its RAM.
TotO had plan for a YMEM that would give 512k additional RAM for a total of 1M (but since 640k ought to be enough for anybody, we may never see it  ;D )



Well, I don't see an mirror of the internal 64k as you suggested, but I will look into this again. I haven't seen the same effect with any other 512 KB expansion (Inicron, dk'tronics, Dobbertin, Yarek f.e). Sadly I ran out of time yesterday, so I couldn't do anything after work, but I will check details soon and let you all know.

However your information of A8 probably directs me to the right way I guess. Shouldn't X-MEM be active when A8 = 1 (means port &7Fxx instead of &7Exx for example)?

I got one Y-MEM, just ask TotO to make one for you.  :)
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

gerald

#12
Quote from: TFM on 16:01, 21 June 16
However your information of A8 probably directs me to the right way I guess. Shouldn't X-MEM be active when A8 = 1 (means port &7Fxx instead of &7Exx for example)?

an IOREQ with A15 = 0, D7 = 1, D6 = 1 will write the RAM configuration to the XMEM.
The XMEM configuration takes A8 in addition to D[5:0].

A8, D5, D4, D3 address one of the 16 possible 64k block.
The XMEM will only handle the 8 block addressed with A8 at 1.
The YMEM does the same, but with A8 at 0.


arnoldemu

Quote from: SRS on 21:58, 20 June 16
I have DOBBERTIN 512kb (self-expanded from 64k) at Schneider 464 if you need to test that, too.
@SRS: I got your pictures. :)

I/O port decoding is the same as Dk'tronics. A15=0, all other address bits can be any value.

Dobbertin supports all ram configs as expected.

On a 464 with ROMs enabled and config 3 (c3 etc) is chosen we see:

&0000-&3fff: base ram &0000-&3fff
&4000-&7fff: upper rom
&8000-&bfff: base ram &8000-&cfff
&c000-&ffff: upper rom

I think this is different to Dk'tronics with 464. I will check.

The result are great :)
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

TFM

Quote from: gerald on 17:29, 21 June 16
an IOREQ with A15 = 0, D7 = 1, D6 = 1 will write the RAM configuration to the XMEM.
The XMEM configuration takes A8 in addition to D[5:0].

A8, D5, D4, D3 address one of the 16 possible 64k block.
The XMEM will only handle the 8 block addressed with A8 at 1.
The YMEM does the same, but with A8 at 0.


I did some testing yesterday and I guess the most easy way to explain is that the 512 KB RAM of the X-MEM can be addressed using port &7Fxx, while the original 64 KB expansion RAM of a 6128 get 'moved' to port &7ECx. So the CPC has 640 KB all together. Which is an advantage over all other 512 KB expansions.
Ok, and there are some mirrors of this RAM at other ports like &78xx to &7Dxx.


Did I get it eventually?  :-X ;D :)

TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

TotO

The X-MEM is addressed like a 1MB memory expansion and provide 512K through the &7Fxx port.
So, it allow to upgrade the RAM up to 1MB. (the CPC 6128 already provide 64K to reach 640K).

Please, avoid to use mirror address into your code. It is quick and dirty and against the CPC evolution.
Why? Because, what you see as mirror are free space to add things and not to do lazy optimisations.

"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

TFM

Quote from: TotO on 09:23, 23 June 16
The X-MEM is addressed like a 1MB memory expansion and provide 512K through the &7Fxx port.
So, it allow to upgrade the RAM up to 1MB. (the CPC 6128 already provide 64K to reach 640K).

How can the RAM of the X-MEM being upgraded to be 1 MB?


Quote from: TotO on 09:23, 23 June 16Please, avoid to use mirror address into your code. It is quick and dirty and against the CPC evolution.Why? Because, what you see as mirror are free space to add things and not to do lazy optimisations.

Nobody wants to use these mirrors, but they are very confusing to software. It would have been better to omit them at hardware level. But ok, it is like it is.  :)
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

gerald

Quote from: TFM on 15:41, 23 June 16
How can the RAM of the X-MEM being upgraded to be 1 MB?
With the YMEM  :laugh:
Quote from: TFM on 15:41, 23 June 16
Nobody wants to use these mirrors, but they are very confusing to software. It would have been better to omit them at hardware level. But ok, it is like it is.  :)
These mirror also exist with DKtronics extension. You just need to have a bit clever extension memory detection.
Uniquely tag each of the possible 64k bank with a unique number from higher bank to lower bank (ie from 78xx to 7Fxx), then tag the base RAM.
Now read back the tags from 7Fxx to 78xx and check the tags. If it's the expected one, you have a valid extension block. If not, forget it.
Doing so will just ignore the mirrors.

You also want to check that writing to the extension does not corrupt the base ram. This will happen with a symbifaceII on a 464/664 or an wrongly configured XMEM .

TFM

For 4 MB one would have 256 blocks of 16 KB or 64 blocks of 64 KB. I always checked for full 512 KB blocks, now I will check in addition for 64 KB at &7EC4-7, so it's fine. But for advanced memory management it would be nice to have an (from the software side) easy to use structure. Guess I got that in FutureOS, now with an additional bit telling if this 'special' 64 KB are there or not.  :)


I thought TotO was talking about a way to extend the X-MEM itself, of course there is the Y-MEM which is nice.  :)
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

Powered by SMFPacks Menu Editor Mod