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.

TFM

Quote from: gerald on 17:25, 11 October 12
But no mouse, as Bryce adapter solution seem more compatible than the SF2 one.

Sure, PS2 is really outdated today  :laugh: :)
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

TotO

Quote from: TFM/FS on 17:27, 11 October 12PS2 is really outdated today  :laugh: :)
But perfectly does it's job... Like a CPC...
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

TFM

#27
Sure, but where to buy a PS2 mouse? (No, no link to ebay for USED ones please  :laugh: ).

The point is: If you do in new, then really do it well 8) ;)  However, to have a mouse which provides delta-X and -Y values instead of up, down, left, right is surely appreciable.
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

TotO

#28
Quote from: TFM/FS on 19:44, 11 October 12
Sure, but where to buy a PS2 mouse? (No, no link to ebay for USED ones please  :laugh: )

On Amazon for exemple...
A great NEW Logitech S96 optical PS/2 mouse (3 buttons / wheel), for 6€.  :laugh:



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

Bryce

The MegaFlash uses a very simple Flash and manual write control, but my goal was a "Low-cost" ROMBoard that lots of people would use, so certain decisions were influenced by this, but I think it reached its goal and a lot of people are very happy with it.

Regarding the mouse, AMX standard was the only mouse standard that was really supported with software back in the 80's, so even if a new PS/2 mouse solution is possible, like on the SFII, it isn't as useful as a 100% AMX solution, because the software to support old software isn't there. That's why I stuck to 100% AMX, even if it's not the best solution using todays technology.

Bryce.

TotO

Quote from: gerald on 14:38, 11 October 12Ability to remap 1s 64K of the extension to a new location, so 6128 2nd bank is still used and CPC can access the full 640K. I plan to use the additional 64K for file system cache.
That mean the 6128 only get the FS cache ?
To get all CPC definitively "compatible", I though that it will be better to lose this embedded 64K and using 64K from the expansion as FS cache for 464/664 too.

So, you finally get 512K RAM and 64K for the FS:
- Main : 64K
- Extended : 448K
- Buffer : 64K

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

TFM

I remember the Inicron 512 KB RAM expansion. It had some excellent features, which makes me using it still.

- It's using battery buffered S-RAM and so you have a real RAM disc, which hold data for a year or even longer. So my CPC can be used as real disc-less station.

- Now, they added a switch which allows to switch between the 64 KB from the external 512 KB and the 64 KB from the 6128. And this feature *IS* quite usefull for a variety of applications  :D
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

gerald

Quote from: TotO on 14:43, 14 October 12
That mean the 6128 only get the FS cache ?
To get all CPC definitively "compatible", I though that it will be better to lose this embedded 64K and using 64K from the expansion as FS cache for 464/664 too.

So, you finally get 512K RAM and 64K for the FS:
- Main : 64K
- Extended : 448K
- Buffer : 64K

No? :)

Yes  :)
The idea was to have the 64K cache whatever the CPC is.
But there is a small issue :
  if the CPC has only 64K base (464/664), the extension has to cover bank 0 to 30, bank 31 become the cache
  if the CPC has 64k base and 64k extension (6128), the extension has to cover bank 1 to 31, bank 0 become the cache

This can be done either by a configuration switch or a SW switch. What is the best solution ?

I would use a SW solution, which is activated by the FS ROM after HW detection.

About the cache :
The current implementation of FAT FS does not use any cache except for one sector for FAT structure manipulation and one general purpose sector (mainly for directory entry parsing). The not yet implemented DIR command will also requires a quite big buffer.
Also, support for long name and directory requires buffer to store those long name (256bytes).

My target is to have a transparent AMSDOS integration so SW can be used as is (if they used AMSDOS for file IO). However, buffers reserved by AMSDOS are too small for FAT. Here comes the 64K as a FS reserved memory for all these buffers.
For SW not using amsdos, i plan to have ROMed support lib for emulating sector/track access. But these SW will need to be patched in order to use these function.

Unused space in this buffer can then be used as cache, but it may be counterproductive :
  - when doing a uncached read, data is put at target place
  - when doing a cached read, initial access will be put in cache and then copied to target place. Reread will only copy from cache. This will surely slow down read, as the only real gain is the media access time, not the throughput.

fkey

Hi gerald,


Great piece of hardware you've got there  :o
I wish I had enough electro skills to do the same.

TotO

#34
Quote from: gerald on 18:58, 14 October 12
The idea was to have the 64K cache whatever the CPC is. But there is a small issue
I though that is better to lost the 6128's extended 64K to get the same computer when upgraded, else some programs will again not work on 464/664.
About the disk cache, using the same bank for all. (0 for exemple)
At end, everyone will get 512K.
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

TFM

Quote from: TotO on 14:14, 16 October 12
I though that is better to lost the 6128's extended 64K to get the same computer when upgraded, else some programs will again not work on 464/664.

That's a good ideology, but sadly it will never work. Because the 464/664 will never be able to use RAM configuration &C3. This one needs a PAL in the 6128, and this PAL is missing in the 464/664.

So we can use all 640 KB with good conscience.
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

IanS

Quote from: TFM/FS on 15:31, 16 October 12

Because the 464/664 will never be able to use RAM configuration &C3.
The dktronics expansion supports &c3 (no idea how, see this thread Memory Expansion - Code 3 )

TotO

In this case, how a 464/664 can manage the existing external RAM expansion ?
Let the 6128 do the same ???
"You make one mistake in your life and the internet will never let you live it down" (Keith Goodyer)

TFM

#38
Quote from: IanS on 17:07, 16 October 12
The dktronics expansion supports &c3 (no idea how, see this thread Memory Expansion - Code 3 )

That's an urban legend! It can not alter the internal memory management of the CPC motherboard. Not even Dobbertin could do that.


Quote from: TotO on 17:45, 16 October 12
In this case, how a 464/664 can manage the existing external RAM expansion ?
Let the 6128 do the same ???

The point is that RAM configuration &C3 relocates block 3 from &C000-&FFFF to area &4000-&7FFF. And the logic needed for that must be on the motherboard. Since an external card can NOT alter the PCB's RAM configuration.
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

arnoldemu

Quote from: TFM/FS on 18:05, 16 October 12

That's an urban legend! It can not alter the internal memory management of the CPC motherboard. Not even Dobbertin could do that.
I have a 64k dk'tronics ram expansion for my 464.
I tested it and c3 works with it.

It is truth. :)
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

TFM

Quote from: arnoldemu on 18:07, 16 October 12
I have a 64k dk'tronics ram expansion for my 464.
I tested it and c3 works with it.

It is truth. :)

Does it bank the Video-RAM to &4000? How did you verify that &C3 works?
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

arnoldemu

#41
Quote from: TFM/FS on 18:09, 16 October 12

Does it bank the Video-RAM to &4000? How did you verify that &C3 works?
Yes it does.
It works the same as the cpc6128 with 1 difference.

If you enable the upper rom, on 464 it will move when you use configuration c3. On 6128 it doesn't.
So it seems A15/A14 is exchanged.

I have sent a PM to IanS. He is welcome to borrow my 64k ram expansion and find out how it works :)

How did I test?

I made a test program that writes a byte into each 16k page.
0,1,2,3 for main ram.
4,5,6,7 for c4,c5,c6,c7.

Then I changed each configuration, c0,c1,c2,c3,c4,c5,c6,c7 and I read the values the z80 can see.
I checked result on 464 + 64k dk'tronics ram, 6128 and I tried 6128 with 64k dk'tronics ram (I wanted to see does dk'tronics take priority over internal ram).

I have attached the test code (it needs other files to make a binary, but you can read it here).

in the code
"has_ram" does a test as if no extra ram was connected.
"external_ram" does the test to check for 64k dk'tronics ram on 464.



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

TFM

Quote from: arnoldemu on 18:10, 16 October 12
Yes it does.
It works the same as the cpc6128 with 1 difference.

If you enable the upper rom, on 464 it will move when you use configuration c3. On 6128 it doesn't.

No, sorry. If a 6128 would work like you say, then FutureOS would not be able to display it's mouse-arrow sprite on a 6128. But it does! Because it uses RAM config &C3 and the ROM is switched on!

No offense dear friend. But I can't agree with you here.
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

arnoldemu

Quote from: TFM/FS on 18:15, 16 October 12

No, sorry. If a 6128 would work like you say, then FutureOS would not be able to display it's mouse-arrow sprite on a 6128. But it does! Because it uses RAM config &C3 and the ROM is switched on!

No offense dear friend. But I can't agree with you here.
It is ok for us to disagree.

Perhaps you will believe me when somebody else prooves me to be correct?
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

IanS

Quote from: arnoldemu on 18:10, 16 October 12
I have sent a PM to IanS. He is welcome to borrow my 64k ram expansion and find out how it works :)
I also have a 64K expansion (upgraded to 256K), I've not tested it in &c3 mode.

I've traced a few PCB's, it's dull and tedious, so unless someone else has traced the dktronics PCB, it will have to remain a mystery as far as I'm concerned, for now. (I may get curious, but not in the near future)

IanS

Quote from: arnoldemu on 18:18, 16 October 12
Perhaps you will believe me when somebody else prooves me to be correct?
Can you publish the code that you used to test the &c3 mode.


gerald

#46
Quote from: arnoldemu on 18:10, 16 October 12
If you enable the upper rom, on 464 it will move when you use configuration c3. On 6128 it doesn't.
So it seems A15/A14 is exchanged.

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 ?

IanS

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.


TFM

Quote from: arnoldemu on 18:18, 16 October 12
It is ok for us to disagree.

Perhaps you will believe me when somebody else prooves me to be correct?

There would be an easy way to do that (And I already apologise for coming to that ...).
If you run FutureOS on a 464 then the mouse pointer leaves a smear, because RAM config &C3 does not work.

In case your dk'tronics RAM expansion can make &C3 working, then there would be no smear (it would run like on an 6128).

If you could check that, we would know if &C3 can be really enabled on 464/664 by using such a kind of RAM expansion.
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

Bryce

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.

Powered by SMFPacks Menu Editor Mod