News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu

CPC+ RAM extension ?

Started by gerald, 20:48, 09 October 12

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

gerald

Quote from: IanS on 19:42, 16 October 12
I've just opened my dktronics memory expansion.

There is a transistor (BF240) that pulls A15 to +5v. I think that explains it, when the CPU is trying to read &4000-&7FFF, the memory expansion pulls A15 high, which means the reads will actually be from &C000-&FFFF.

Seem like quite a hack, but I guess it works.
:o :o :o

How can the expansion know that the access is in 0x4000-0x7FFF range if A15 is pulled high ? Well, just guessing,  address setup time can be used for that, and A15 is forced only during the actual rd/wr access (RDn/WRn low) ?
This would explain the ROM beeing visible as well : gate array see A15 high.
But this create a short circuit on A15 pad of the Z80. :'(

gerald

Quote from: Bryce on 20:06, 16 October 12
I also have a 464 and several DKTronics RAM expansions. I can try a few things too when I get time. A question to the other hardware guys here: RAMDIS seems to be connected on the 464 to something although it should technically have no function on a 464, at least not the function found on a 6128. There's a track on the PCB, but it's not mentioned on the schematics (as far as I can see). I think I remember testing it at one time and discovering that it was attached to an address line, but I don't remember which one. So the hardware "trickery" might be on both sides. Have any of you looked at this?

Bryce.

Too much beer already  ;) : look on the middle left side of the ASIC in the 464 schematics.

RAMDIS does the same as on the 6128. It disable the 74LS373 buffer that latch the data from the DRAM. RAMDIS is ORed (IC112) with the RAMRDn signal from gate array. The latch also isolate Z80 bus from data read by the gate array.


Bryce

My CPC doesn't have an ASIC, I'm talking about a classic 464 here.

Bryce.

Haven't started on the beer yet, but you've just given me a great idea :)

gerald

Quote from: Bryce on 20:21, 16 October 12
My CPC doesn't have an ASIC, I'm talking about a classic 464 here.

Bryce.

Haven't started on the beer yet, but you've just given me a great idea :)

Ok, you got me. My brain was thinking gate array, and my finger seems to have they own brain.





Bryce

#54
Too much beer already? :D

Edit: Maybe my memory is going. I was try to figure out how C3 worked on a 464 (about 10 years ago) and I'm sure I found some very strange undocumented connection to the expansion bus on the 464. I thought it was the RAMDIS signal, but maybe it wasn't. I'll have to see if I took any notes on it.

Bryce.

MacDeath

QuoteToo much beer already?
For once it's not me... ;D :P

TotO

#56
That don't explain why a 256K DK'Tronics RAM expansion work as well on 464 as 6128 (disabling the 64K).
It will be interesting to know how to do the same with the 512K RAM expansion.
I though that C3 work on all CPC...
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

SyX

#57
And Pac-Man use all the modes except $C2, if a ram expansion doesn't support those modes you get a nice guru meditation ;)

00WReX

#58
Sorry if this is totally irrelevant but I noticed this the other day when I ran the SyX ramtest program.

On a normal 6128 you see this...

[attachimg=1]

On a 664 with DK'Tronics 64K expansion you see this...

[attachimg=2]

Not sure how the program works, but anyway that's what it reports.

Cheers,
Shane
The CPC in Australia...
Awa - CPCWiki

Bryce

After pondering a while last night as to whether I really am going mad, I got out my notes from back then. I can't find anything regarding what I mentioned earlier, the expansion ports on the 464 and 6128 were deemed to be identical. The only differences I've noted (other than the presence of the PAL and the "D7 AND D6" Signal) were that A4 of the RAM ICs has a pull-up resistor connecting it to /CASADDR (680R) and A5 of the RAMs has a pull-up resistor (680R) directly connected to the 5V rail. Neither of these are present on the 464. They also wouldn't be of any help in achieving &C3 though. So after enjoying the beer that gerald kindly suggested I consume, I sat back and began to accept that fact that I probably am going mad, but it doesn't seem as bad as I thought it would be :D And I've still no idea how I'd achieve &C3 on a 464.

Bryce.

arnoldemu

Quote from: gerald on 18:34, 16 October 12
A15/A14 are cannot exchanged on 464, but the move is physically possible because of way the ROM is connected to the bus.
Only A[14:0] are connected to the ROM. The gate array then enable the ROM according to the rom configuration register and A15 state.
Seeing the upper ROM at 0x4000-0x7FFF mean that the gate array enable the ROM when A15 is low and upper rom is enabled.

The gate array are different on 464 (40007/40008/40010) and 6128 (40010). They behaviour can be different.

@arnoldemu : did you test it on a 40007 / 40008 / 40010 or even on cost reduced version ?
I tested it on a costdown 464. I think I also tested it on a classic 464.

I couldn't test it on a 664 or 6128 because of the position of the cables relative to the expansion port.
I needed an extension to do that, but mine doesn't work currently :(
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

arnoldemu

Quote from: IanS on 18:19, 16 October 12
Can you publish the code that you used to test the &c3 mode.
I will later.

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

arnoldemu

Quote from: arnoldemu on 09:40, 17 October 12
I will later.
Attached is a zipped file containing a dsk with "ramcheck" on it.
Run it.
It will say "succeeded" or "failed.. got .. expected ..".
The test waits for a keypress when the screen is full of text. it will then say if all the tests are done, and the final press of the key will reset back to basic.

On 6128 it will all pass. It has been setup this way.

On 464 (at least my 464 with it's dk'tronics ram) it will fail when using c3 config and upper ROM *ENABLED*, but the C3 config without ROM will PASS.

The "expected" numbers. 01,02,03,04 for main ram &0000-&3fff, &4000-&7ffff, &8000-&bfff, &c000-&ffff.
5,6,7,8 for 64k ram pages normally accessed at &4000-&7fff using c4,c5,c6,c7.

All combinations are checked, c0,c1,c2,c3,c4,c5,c6,c7.

Extra ram above 64k is not checked, this test is only to check that c0,c1,c2,c3,c4,c5,c6,c7 are successful.

If needed I can write a test to check that the other combinations work as expected with 256k and 512k ram expansions.

The test will fail with C3 and ROM enabled on 464. ROM is read from &4000-&7ffff. Extra ram is read at &C000-&ffff.
Look for the "got" byte, and look it up in the rom at offset &1000.

Tests on other systems (664, other dk'tronics ram expansions and other compatible expansions will be interesting to see).
thanks.
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

SyX

Quote from: 00WReX on 23:22, 16 October 12
Sorry if this is totally irrelevant but I noticed this the other day when I ran the SyX ramtest program.

On a normal 6128 you see this...
.
.
.

On a 664 with DK'Tronics 64K expansion you see this...
.
.
.

Not sure how the program works, but anyway that's what it reports.

Cheers,
Shane
Really strange result 00WReX, jajaja. It looks that i have a one or two gremlins in the code :P , i will check the next time that i go to see the Madrid people, because i don't have any 64 kbs computer, neither ram expansions to check, and my 6128s and winape always give the correct result.

TFM

Can somebody give OS-Infos a try? That shall work. If not, then we see a strange behaviour of the hardware.
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