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

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

By NYYRIKKI

Enlighted (5938)

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

30-09-2015, 14:57

KURILSHIK wrote:

If you do not very want to change the internal configuration Daewoo (breaking its harmony), it's not a big problem. Maybe even better.

If you think so, then I think I would like to open it, investigate it internally and then put back together without changing any internals. As this is not going to be my primary MSX that I use regularly, it is not that important to modify it. I have also external memory mapper, so in case I like to use it seriously, I can plug it in.

Quote:

What is my problem? A try explain. I just heard (I myself have not tried it yet) that Daewoo not run big games (greater than 32 kb). I heard it on the Russian forums. And many Russian forum users have expressed a bad opinion in this regard (about CPC-400). That's why I had the idea to improve the Daewoo.

Well... there is no rule that would apply, but lot of games have problems with this kind of memory. Cracked games are good example, but many MSX1 cassette games are also broken already from factory. I would say that Japanese games are probably a bit better behaving because over there there was some kind standard documents more easily available. In other parts of the world programming was done more on trial and error method. If the programs worked on the machines that were sold on that country the game was ready for release.

Aackosoft's Paul van Aacken said about compatibility problems in 1986 "As all MSX software houses have discovered, staying within the rules is OK as long as you know what the rules are." He also told that "The intimate support which is usually provided to independent software developers by companies like Atari and Commodore when they release new machines was not forthcoming from the Japanese manufacturers. The twin barriers of distance and language were partially responsible, and another problem was the inexperience of the Japanese consumer electronics giants in dealing with independent companies in a way that was not necessary for televisions or hi-fi units." (Source: MSX Computing magazine April/May 1986)

Quote:

If I understand correctly, what have said the others panelists, the problem is not in Daewoo, not in its compatibility with standard OpenMSS, but with Ruska crack programs? For example, if I take a normal (not break) a game, write it to a floppy disk (I do not have another i/o devices), will it work?

I would say it is 50/50... I think you just have to try. If it does not work, then it is good excuse to start learning a bit of assembly language. Smile The machine HW is not broken or against standard, it is just weird and programmer needs to understand that it can be like this... Not nearly all of them did... Or if they did, they still might have done it wrong as they have had no this kind of machine to test with.

Compatibility issues are explained with greater detail in here

By KURILSHIK

Supporter (6)

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

01-10-2015, 13:52

NYYRIKKI][quote=KURILSHIK wrote:

If you do not very want to change the internal configuration Daewoo (breaking its harmony), it's not a big problem. Maybe even better.

If you think so, then I think I would like to open it, investigate it internally and then put back together without changing any internals. As this is not going to be my primary MSX that I use regularly, it is not that important to modify it. I have also external memory mapper, so in case I like to use it seriously, I can plug it in.

Quote:
Ok. Maybe I shall get an external memory mapper too.

Today I am weighed Daewoo. The weight of system block Daewoo is ~ 5,5kg, keyboard is ~1,3kg. Total 6,8kg. Expected that with package will weigh ~ 8kg. Delivery price (tariff mail-of-Russia) of such goods is 30$. Good?

By NYYRIKKI

Enlighted (5938)

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

01-10-2015, 13:59

KURILSHIK wrote:

Today I am weighed Daewoo. The weight of system block Daewoo is ~ 5,5kg, keyboard is ~1,3kg. Total 6,8kg. Expected that with package will weigh ~ 8kg. Delivery price (tariff mail-of-Russia) of such goods is 30$. Good?

Yes, very good. Please send me private mail to exchange payment & address information.

By adxx

Rookie (18)

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

21-12-2015, 21:39

nice reading about Daewoo hardware.
And it'd be great if someone can draw CPC-400 memory mapping schematics. What I hear that CPC-400 can be easily extended up to 256KB by just adding extre 4x 41464. I want to try this on CPC-300e after upgrading it 64KB -> 128KB.

By RetroTechie

Paragon (1563)

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

22-12-2015, 07:47

Welcome to MSX.org, adxx! Smile2

CPC-400 uses a DW64MX1 as MSX "engine" IC, which includes a 256 KB memory mapper (MA14...MA17 in the pinout).

If I'm not mistaken, CPC-300(e?) uses that IC too? If so, that should make it fairly easy to expand to 256 KB.

Problem with machines based on this engine is that slot 0 is expanded, and RAM sits in a 0-x slot. Perfectly okay with MSX standard, but much software has trouble with that. For example the infamous "POKE -1,..." (even the 'universal' version) would most likely crash the machine. So if you run software that does just that, you might want to check if such a POKE is in there (and if so: remove, and re-try).

By adxx

Rookie (18)

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

22-12-2015, 08:27

Thanks for welcome, RetroTechie Smile
The machine does have DW64MX1 engine, so 256kb should be pretty easy.
I just got the toy in y hands, so still to learn a lot.

By adxx

Rookie (18)

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

24-12-2015, 12:32

OK, here one question I have so far.
In CPC-300 memory schematics is known. What needs to be modified in order to expand it to 128KB? Is it enough just to connect M17 with B input of 74ls139, connect 4 extra 41464 to Y2&Y3, and parallel data/address with the existing RAM?

By RetroTechie

Paragon (1563)

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

24-12-2015, 17:05

I'd think so, yes. Especially since the 74LS139 is wired up in a nice way to do the mod.
Disclaimer: not tested, but this procedure should work:

Verify using a good mapper test program (or several ones) that memory mapper, and the RAM chips currently in there are working 100% okay. If there's any issues you want to fix that now, not after you've done some modifications.
Verify that what's in the machine now, matches above schematic. (not necessarily a 100% safe assumption!)

Run some tests in BASIC to verify that values 0-15 written to I/O port FEh produce the following mapper blocks in page 2: (8000-BFFFh)

# written  mapper block selected
 0  0
 1  1
 2  2
 3  3
 4  4
 5  5
 6  6
 7  7
 8  0
 9  1
10  2
11  3
12  4
13  5
14  6
15  7

(values 16 and up should repeat the above pattern)

Connect pin 3 of U33 (the "B" input of 74LS139) to MA17 (DW64MX1 pin 6) instead of GND. No further changes right away.
Now run some tests in BASIC to verify that mapping has changed into:

# written  mapper block selected
 0  0
 1  1
 2  2
 3  3
 4  4
 5  5
 6  6
 7  7
 8  empty = usually value FFh returned
 9  empty
10  empty
11  empty
12  empty
13  empty
14  empty
15  empty

Take 2 pcs 64k*4 DRAM (4464 or equivalent type), and bend pin 16 of those (/CAS input) sideways. Solder "piggyback" onto 4464's (of the main RAM! not VRAM Smile2 ) already in the machine. One on top of a RAM IC that connects to D0..D3, the other on top of a RAM IC that connects to D4..D7.
Solder both pins 16 of the DRAMs together with a wire, and connect to U33 pin 6 (74LS139 /Y2 output). Most elegant is to do this with a single wire, by stripping a bit of isolation in the middle of the wire (and on the ends, of course).
Run some tests in BASIC to verify that mapping has changed into:

# written  mapper block selected
 0   0
 1   1
 2   2
 3   3
 4   4
 5   5
 6   6
 7   7
 8   8
 9   9
10  10
11  11
12  empty
13  empty
14  empty
15  empty

Now do the same with another pair of 4464's (on top of the remaining 4464's that don't have a chip piggy-backed yet). But this time connect their /CAS inputs to U33 pin 7 (74LS139 /Y3 output).
Run some tests in BASIC to verify that mapping has changed into:

# written  mapper block selected
 0   0
 1   1
 2   2
 3   3
 4   4
 5   5
 6   6
 7   7
 8   8
 9   9
10  10
11  11
12  12
13  13
14  14
15  15

If that's okay, run some mapper test programs to verify that the (now 256K! Big smile ) mapper is working 100% correct. Post results here!

If any step fails: find out what's going on before proceeding. If necessary, revert the last change(s). RAM chips can be disabled temporarily by wiring their /CAS input to +5V (easier than removing a piggy-backed IC).

And of course: power off machine and unplug from peripherals before soldering inside. And take the usual precautions against static discharge.

There's 2 other ways I can think of to do this expansion:

  • Solder a 512K*8 bit static RAM on top of a ROM in the machine. But this may or may not work using that /CAS02 signal as chip select. /SLT01 or /SLT03 may be in use (or read only!). And using /SLT1..3 may sacrifice an external cartridge slot (or also used internally Question ). It would help to know the current memory layout.
  • Use 2 pcs 256K*4 bit DRAMs (44256 type or equivalent) rather than 8 pcs 4464. More elegant, but this would require a very different circuit. If machine in factory state already has 4x 4464 as main RAM, then the above is definitely the easier way to go.

If there's other hw modders on here who'd like to check this procedure: please do! Same goes for anyone who knows inside of this machine.

By adxx

Rookie (18)

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

25-12-2015, 22:00

That's a good write-up, RetroTechie!!!
But now I'm in a sort of a blind path - cpc-300e has only 64KB RAM. And Sunrise IDE (which I already ordered) will be of no help, until I throw couple of 41464 in (which I already ordered as well).
Thus I am unable to load any ram test. I tried to convert TestRAM to WAV with no luck.

So far - just got prepared for extra 2x 41464

Next steps are:
- cut out IC33 and solder dip bed for 74LS139. Install new 74LS139
- make prototype board, which can be inserted in these beds (RAM and IC33) and wired to DW64MX1 pin M17.
- ...test

Unfortunately, due to lack of free time, it'll take some time to complete.

By RetroTechie

Paragon (1563)

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

26-12-2015, 12:44

Seriously - find a mapper test program that works in 64K. And you could still run some BASIC tests, to determine how block numbers written to port FEh and actual RAM blocks relate to each other. Could be a 64K mapper, could be a 128K mapper with one half empty (like in Philips NMS8220).

If you didn't get past step 2 Wink I'd say it's obvious that CPC-300 and CPC-300e memory circuits are different (or schematic above is wrong). Next step would be to check how existing circuit IS wired. Understand first, build later. (I should use that phrase more often... LOL! )

Just soldering sockets is fine. But keep vertical space in mind if you're going to insert 2-high stacks of 4464 in there. Also keep in mind the space between IC socket and 4464 next to it. Getting a soldering iron in there (to solder a 4464 on top of those DRAMs in photo) isn't made easier by having an IC socket right next to it. Not saying you shouldn't have, but the order in which to do things could have been chosen better.

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