Newbie - Dewoo CPC-400s. Memory prevents running MSX software

Страница 5/11
1 | 2 | 3 | 4 | | 6 | 7 | 8 | 9 | 10

By NYYRIKKI

Enlighted (5918)

Аватар пользователя NYYRIKKI

27-09-2015, 00:54

RetroTechie wrote:

But yes, expanding to a 256KB mapper (in slot 0-2!) should be fairly easy. For >256KB, look at full-blown mapper connected to cartridge or expansion slot.

You got me a bit wrong... The whole idea was to get the mapper to somewhere else than slot 0-2... Does that require some extra logic or could my idea work? This would be much more easy to implement than full mapper outside the case.

maxis wrote:

Having a memory in the expanded slot 0 doesn't violate the MSX standard, right? Does it impose any problem on the legacy SW?

As RetroTechie said, according to standard this is perfectly fine, but in real life we are living, most of the MSX games do not work on this kind of machine... Maybe with Japanese games situation is a bit better, but at least most of European commercial games, hobby games and cracks are broken by design in a way that they can not work in this kind of configuration.

By maxis

Champion (512)

Аватар пользователя maxis

27-09-2015, 01:17

RetroTechie wrote:
NYYRIKKI wrote:

Buy HM628512BLP-7, piggy pack it with some ROM and connect DW64MX1 lines like this:
MA14 -> A14
MA15 -> A15
MA16 -> A16
MA17 -> A17
GND -> A18
/WR -> /WE
/SLT3 -> /OE
/MREQ -> /CE

???

I'd try:
Some /SLTSL -> /CE
/RD -> /OE
/WR -> /WE

But yes, expanding to a 256KB mapper (in slot 0-2!) should be fairly easy. For >256KB, look at full-blown mapper connected to cartridge or expansion slot.

We shouldn't forget that when adding the additional SRAM internally, the memory IC data bus pins should be connected to the expansion connector side (not the CPU side). When reading the Slot3 memory the DW64 thingy thinks, that it's getting the data from the external peripheral, hence turning ON the data buffer and causing the possible bus contention.

Memory mappers internal and external can be mixed and matched, wouldn't cause too much trouble (as long as we use BUSDIR).

Either a simpler hack (re-using MAxx pins) or a complete memory expansion board can be both working for CPC400 slot 3, IMHO.

@RetroTechie & NYYRIKKI
Thank you for clarifying.
Poke -1 is a very sad story indeed.
It would be awesome creating an initiative group within this forum to re-adapt the old SW and make it more universal.

By NYYRIKKI

Enlighted (5918)

Аватар пользователя NYYRIKKI

27-09-2015, 01:20

RetroTechie wrote:

I'd try:
Some /SLTSL -> /CE
/RD -> /OE
/WR -> /WE

But wouldn't this then conflict with I/O requests? Or does /SLTSL take care of that?

By NYYRIKKI

Enlighted (5918)

Аватар пользователя NYYRIKKI

27-09-2015, 01:34

maxis wrote:

We shouldn't forget that when adding the additional SRAM internally, the memory IC data bus pins should be connected to the expansion connector side (not the CPU side). When reading the Slot3 memory the DW64 thingy thinks, that it's getting the data from the external peripheral, hence turning ON the data buffer and causing the possible bus contention.

But is it not on the right side if we have taken the pins from a ROM chip? Or is there a separate bus for each slot? (Sorry, this BUSDIR stuff is unknown to me)

Quote:

Poke -1 is a very sad story indeed.
It would be awesome creating an initiative group within this forum to re-adapt the old SW and make it more universal.

I think it would be hard to find the group... and it would be endless fight anyway... but a beautiful idea.
Maybe more easy to adapt the used hardware anyway Smile (or at least make instructions)

By NYYRIKKI

Enlighted (5918)

Аватар пользователя NYYRIKKI

27-09-2015, 01:45

I found answer to few questions...

HansO wrote:

Look at the MSX Technical Handbook and you will see that for memory access the busbuffers for a slot, including cartridge, are switched by the applicable slot select signal. Indeed SLSLT contains MERQ, since the slot select signals are all about memory access in a slot.
So indeed if a cartridge contains only memory it does not have to manage busdir.

For I/O on a cartridge generation of BUSDIR is required. And that will have to be derived from the I/O port selects, IORQ and RD.

By RetroTechie

Paragon (1563)

Аватар пользователя RetroTechie

27-09-2015, 02:10

NYYRIKKI wrote:

You got me a bit wrong... The whole idea was to get the mapper to somewhere else than slot 0-2...

Ah yes, my bad. For slot 0-2 the DW64MX1 combines DRAM control and slot select logic. But when using an SRAM, it would be easy to move it around the memory map using different slot select signals.

@maxis: thx for pointing out that data bus buffer issue.

For most MSX machines that include a data bus buffer, the logic is something like:
Switched direction to read from external slots if ((memory read from slot 1) OR (memory read from slot 2) or (/BUSDIR signal active on any of those cartridge slots)). So for memory reads, cartridges don't have to do anything. For I/O reads, /BUSDIR must be controlled if a cartridge contains I/O ports that are read from. In all other cases, reads come from internal IC's / memory chips. For writes, data bus buffer is also switched to internal -> external direction.

With an internal RAM expansion that (logically) sits in an 'external' slot, picking up data lines elsewhere is probably easier than messing with that /BUSDIR logic. Either way wouldn't be too difficult though.

NYYRIKKI wrote:

But wouldn't this then conflict with I/O requests? Or does /SLTSL take care of that?

For all MSX machines I've ever seen, a /SLTSL includes Z80 /MREQ. Anyway I've used and tested this in the 512K CPLD based mapper that's on my site, so it's known working as external mapper on a wide range of machines. What works externally, usually works internally too (not necessarily the other way around Wink ).

By maxis

Champion (512)

Аватар пользователя maxis

27-09-2015, 02:12

@NYYRIKKI excellent.

For I/O access and BUSDIR matter, you can use the following expression:

BUSDIR_n = ~(~IORQ_n & M1_n & ~RD_n & (ADDR[7 : 0] == xx))

where xx is your port address range. M1_n must be inactive (logic HIGH) to avoid erratically sending the interrupt vector on Z80 interrupt acknowledge (SFG05 uses IM2 and wouldn't like that)

By Grauw

Ascended (10581)

Аватар пользователя Grauw

27-09-2015, 14:13

maxis wrote:

BTW, what is really horrible is Yamaha CX11, where you have the standard 32K (8000-FFFE) in the non-expanded slot 0 (atop of the BIOS) and the lower 32K of RAM is in unexpanded slot 3 to get the full 64 KB of memory.

Oh, like the Sony HB-F500P? That’d be an interesting machine to get emulated in openMSX…

Does it have a memory mapper, or is it unmapped memory? Given the split memory I’d expect the latter, but… (For some reason, I am under the impression that memory mappers must always have the full 64K in the same slot, but maybe that’s a bad assumption.)

RetroTechie wrote:

Guess I should re-write (the English version of) that page one of these days... LOL! Say, with a nice table showing which feature(s) is included in which MSX engine IC.

Oh, please!

By KURILSHIK

Supporter (6)

Аватар пользователя KURILSHIK

27-09-2015, 15:29

NYYRIKKI wrote:

If you have an extra Daewoo CPC-400s I might be interested in buying it from you, if the price is good. I could then do the testing my self and send you back detailed instructions with pictures. If this sound like a good plan, please make me an offer.

My Daewoo has name "CPC-400." Without the "S":

Is price 50$ а good?

RetroTechie wrote:

CPC-400 or CPC-400S ? AFAIK these machines should be very similar, apart from that the -S has superimpose function built in. But I've only ever seen CPC-400S inside, so I can't say for sure. Either model is probably very rare outside Korea or Russia.

CPC-400. Indeed. 200% of indeed.

maxis wrote:

@KURILSHIK You can remove the RAS signal from the built-in memories and hook-up the 256 RAM extension to the slot connector on the BACK of the machine (actually this is 100mil double row 50pin connector, like single-ended SCSI).

If I understand correctly, you are proposing to use an external cartridge additional memory (with mapper)? I do not have such. Unfortunately.
So I must do it myself. But, need circuit.

Guys, you've written a lot of interesting things, but I'm a little confused, to put it mildly.
I have only understand, that cutting and soldering two wire is drop out . Is bad news.
So, is simple solution far, far away?

By Grauw

Ascended (10581)

Аватар пользователя Grauw

27-09-2015, 16:02

Well, you mention games like Knightmare, Vampire Killer and Zanac 2 don’t run. Are you running these as a ROM cartridge, as they were originally distributed (or via a MegaFlashROM or similar)? Because I would think these should work just fine, even with RAM in slot 0.

However if you’re trying to run a cracked disk version (Basic loader + a couple of binary files), then yes those often have problems with slot layouts different from the machine they were originally cracked on. You could try a different version (sometimes there are multiple versions of cracks), or ideally try the original cartridge or load the .rom on a flash cartridge.

In essence there is nothing wrong with your machine, just some software which ignores subslot selection has problems with it, especially cracks.

Страница 5/11
1 | 2 | 3 | 4 | | 6 | 7 | 8 | 9 | 10