16k cartridge to 64k expansion

Page 2/6
1 | | 3 | 4 | 5 | 6

By Grauw

Enlighted (6262)

Grauw's picture

19-10-2017, 19:55

Not really… It depends on the FFFFH subslot register value what subslot is seen in each of the 4 pages. Only if the subslot register’s value is 00H. If the subslot register’s value is 55H, subslot 1 is seen, etc. The BIOS touches it, so I wouldn’t assume it is 00H by default. In fact, software shouldn’t assume anything wrt subslots and just do proper slot selection which includes subslot selection (but some do).

By NYYRIKKI

Enlighted (4743)

NYYRIKKI's picture

19-10-2017, 23:37

I think this discussion has exploded to total new tracks since the first questions... I try to narrow it a bit back to basics:

Yes indeed the memory area that is seen by the CPU is divided to 4 and by default your machines 32KB RAM is seen in memory area #8000-#FFFF. If I'm correct you have 16KB extenal memory that can be seen as memory in area #4000-#7FFF.

If my assumptions are correct so far, then yes indeed you have now MSX that can run software made for 48KB MSX in theory... Why in theory?.. because the standard tells all the nifty little details about how memory should be handled, searched and used but in real life those who made the games newer saw those standard documents and so the real life™ is quite a different from the glory specs. (Some more details here) Today we know how things SHOULD be done but yet many times we still tend to ignore the nasty facts since doing things correctly mostly just causes major head ache while people like you trying to use RAM splitted to multiple slots are really minority among the active users. What I'm trying to say is that although your setup is perfectly fine by the standard, it has been voted as non viable by the software developers. Software tends to assume that all of the RAM is in same slot and if it is not, then you most likely end up to crash situation.

The talk about how slots and subslots work is very nice to know from software point of view, but it has nothing to do with your hardware questions as all this slot / subslot decoding is done before any signal is sent to your cartridge. -> From hardware point of view you don't need to know how the computer maps the RAM to slots. The slot location depends simply to what slot you inserted the cartridge. On typical MSX your choices are slot 1 or 2, but as you have noticed each of them can be expanded as well... Feel free to ignore this fact as irrelevant.

What comes to changing 4416 chips with 4464... Yes you can do that and connect the missing A14 & A15 lines to the memories. How ever after the change the RAM still looks like 16KB RAM extension. To make it look like 64KB RAM you need to cut the wire going to /CS1 pin and connect it to /SLTSL instead to make all of the memory visible.

By Alexey

Paragon (1233)

Alexey's picture

20-10-2017, 00:04

According to my experience with a few 49kb games they start from 0x0000 and occupy 3 first pages. So with a 16kb RAM cartridge and a 32kb computer's RAM you still won't be able to play those games because such games + last RAM page with system variables require at least 64kb of RAM and preferably all of it in one slot. But even if you have 32kb in a cartridge and 32kb on-board it's still not guaranteed that the game will "see" RAM in different slots and will be able to use it.

By Grauw

Enlighted (6262)

Grauw's picture

20-10-2017, 02:36

NYYRIKKI wrote:

Yes indeed the memory area that is seen by the CPU is divided to 4 and by default your machines 32KB RAM is seen in memory area #8000-#FFFF. If I'm correct you have 16KB extenal memory that can be seen as memory in area #4000-#7FFF.

As shown by the RAM test screenshot, the memory is in area 8000H-BFFFH. So the problem is not software compatibility. Do 16K memory expansions in the range 4000H-7FFFH even exist? As I mentioned, 16K expansions were aimed as upgrade for 16K computers to 32K…

By NYYRIKKI

Enlighted (4743)

NYYRIKKI's picture

20-10-2017, 07:15

Alexey wrote:

According to my experience with a few 49kb games they start from 0x0000

48K games <> games that require 48K RAM

Grauw wrote:

As shown by the RAM test screenshot, the memory is in area 8000H-BFFFH.

Sorry, I missed the screenshot.

Edit: Forget what I wrote earlier about the /CS signals... I tend to forget that they include /RD signal as well... The RAM area logic must be done inside the cartridge, so you need to figure out how the logic works in order to expand the cartridge to 64K

Quote:

So the problem is not software compatibility.

Well... technically this is a valid hardware setup as well... There is no reason why software could not use the RAM in current setup as well, but from software developer point of view supporting this kind of setup would be even more awkward. Fixing a software that someone else has made to this kind of setup would be impossible, but making new software from scratch that could use this kind of RAM setup would be possible at least on paper, so technically it is still software compatibility problem although thinking like this is a bit nit picking.

By tvalenca

Paladin (674)

tvalenca's picture

20-10-2017, 14:49

NYYRIKKI wrote:

Edit: Forget what I wrote earlier about the /CS signals... I tend to forget that they include /RD signal as well... The RAM area logic must be done inside the cartridge, so you need to figure out how the logic works in order to expand the cartridge to 64K

Actually anything bigger than 32k should have its own logic inside the cartridge. /CS signals can't be used to reach anything on pages 0 and 3.

By NYYRIKKI

Enlighted (4743)

NYYRIKKI's picture

20-10-2017, 15:08

tvalenca wrote:

Actually anything bigger than 32k should have its own logic inside the cartridge. /CS signals can't be used to reach anything on pages 0 and 3.

AFAIK You can attach 64KB ROM by connecting /EO and /CS signals to /RD and /SLTSL

By tvalenca

Paladin (674)

tvalenca's picture

20-10-2017, 15:10

NYYRIKKI wrote:
tvalenca wrote:

Actually anything bigger than 32k should have its own logic inside the cartridge. /CS signals can't be used to reach anything on pages 0 and 3.

AFAIK You can attach 64KB ROM by connecting /EO and /CS signals to /RD and /SLTSL

You're right. I didn't made myself clear, but when I said /CS signals, I was talking about MSX BUS signals /CS1, /CS2 and /CS12.

By NYYRIKKI

Enlighted (4743)

NYYRIKKI's picture

20-10-2017, 15:19

tvalenca wrote:

You're right. I didn't made myself clear, but when I said /CS signals, I was talking about MSX BUS signals /CS1, /CS2 and /CS12.

Yes, I understood, but they are not needed at all for 64K ROMs, so no need for extra logic either. For 64K RAM you should skip the existing address logic, but keep the refresh logic...

By marcoexo

Resident (39)

marcoexo's picture

20-10-2017, 15:31

Thank you all for the interesting info and considerations... NYYRIKKI I'm tracing down the logic behind chip selection in my expansion card, I'm a at a good point , I think that I can easily change it to fit the 4464 and select them by direct access to /SLTSL signal correctly driving the CAS0 and CAS1 signals for each chip... I'll soon post the status of my efforts here

Page 2/6
1 | | 3 | 4 | 5 | 6
My MSX profile