Philips MSX2 NMS 8250 Faulty RAM: TestRAM shows only 64KB's of (128 KB's expected) mapper memory. Any hint?

Page 1/3
| 2 | 3

By friguron

Resident (44)

friguron's picture

12-03-2017, 22:43

Hi all

Many years ago, a friend of mine just gave his MSX-2 to me. It was such a precious present... From then I've been keeping it like a nice machine to keep and enjoy.
It's the typical Philips MSX 2: NMS 8250, fixed SCC/PSG balance circuitry, no physical disk drive (it got smashed),
a fried (but then fixed(!!)) GR8NET LAN adapter, etc... Conclusion: I'm more than happy with it.

But I think its memory is showing some symptoms it might be somehow broken...

MANY years ago (when I still know how to look for and hack with these kind of things), I can remember I determined some of the memory chips were fried, because some parts of the mapped memory returned all 1111's (that is the high nibble, all 1's, from the bytes of some RAM regions). Anyway, as many software still was working I really never looked more into it, so I "forgot" about it... Until nowadays.

As a happy owner of GR8NET, I'm starting to test all kind of advanced .dsk programs I never had the chance to test in the old times. And here comes my issue: Many of these programs don't work, don't boot, randomly crash or just act weirdly.

Trying to determine if my suspicions about faulty RAM were true, I tried some testram.rom utility I found somewhere on the Internet, and as I feared, the memory mapper test yields something strange (and lower) for a 8250:

slot 3.2, 0064 KB size (where it should return 128 KB).

From BASIC, reading inp ff, fe, fd and fc yields the expectable (as far as I can remember) values of 248, 249, 250 and 251.

But that's all. It's 2017 and I'm stuck. I can't remember all the things I should perform to accurately determine where the faulty RAM might be located (logically and phisically). Trying to determine it from BASIC should be more than ideal, I'm not that proficient writing MSX assembler anymore.

I know there's something wrong with my RAM, but I would really like to know what is it (some memory chip, some controller chip, etc...) because I really want to fix it by myself (getting new chips from the internet, etc...) I don't fear using my soldering iron.

As I said before, I'll try to write some BASIC program to test if I can determine which mapped pages are the wrong ones.
But OTOH, any other hint from this forum (and its Philips 8250) experts that can lead my investigations faster and further to the actual broken memory chips, will be more than welcome.

Any quick hint about where to look for first? (I have some multimeter with me, I don't have an oscilloscope).

BTW: I know there are some projects to upgrade a 8250 ram to 256 and or even 512 KB's, but these involve somehow more advanced soldering and rewiring. As of today I'm just interested into fixing my faulty original memory onto it's pristine status of "128 KB proper mapped ram". Then, if 128 KB's are not enough for me, I'll try these upgrade projects with my MSX2.

Greetings and thanks.

Login or register to post comments

By friguron

Resident (44)

friguron's picture

13-03-2017, 01:58

I've found the official NMS 8250 Schematics and service manual PDF file.

http://www.msxarchive.nl/pub/msx/docs/service_manuals/philip...

Main memory is within IC133, IC134, IC135, IC136 chips (page 12/40)
As soon as I discover the faulty chip/component, a simple desoldering/substitution/resoldering might do the trick?

By Jipe

Paragon (1269)

Jipe's picture

13-03-2017, 12:06

if you desold memories sold DIL sockets for easy remove

By friguron

Resident (44)

friguron's picture

13-03-2017, 12:20

Jipe wrote:

if you desold memories sold DIL sockets for easy remove

Sure!

First though, I have to determine which faulty component is the culprit of all this... Maybe I have a broken C, R or previous ram IC controller which invalidates otherwise properly working 41464 memory chips.

Greetings

By Jipe

Paragon (1269)

Jipe's picture

13-03-2017, 13:08

first switch the rams bank1 and bank2
IC 134 with IC 136
IC 135 with IC 137
if the same result is not a broken memory
check R127 R128 (test value and solder)
if it's ok change the 74LS670 IC149

By friguron

Resident (44)

friguron's picture

13-03-2017, 13:35

Seems an achievable plan. Somewhat scary, but I'll probably try it whenever I have the time.
I'll ask for the DIL sockets also, as I might (afterwards) try some 256 or 512 KB upgrade. They will never hurt.

Thanks!!

By friguron

Resident (44)

friguron's picture

16-03-2017, 11:31

Hi, I finally created an ASM program to test the behaviour of all 8 pages of my MSX-2 memory mapper.
Using GR8NET, I just loaded and tested it (piece of cake), and my suspicions were right, as this is the output I got:

Every row means every page of the 8 pages my 128 KB's memory mapper has.
The ASM program I've created just lives in page 1 (0x4000 to 0x7fff), and then it just loops switching z80 page 2 through all 8 pages of the memory mapper, from 0 to 7.
Once I set each page of the memory mapper onto z80 page 2, I just write 4 bytes to address 0x8000 and read them back.
0xAA, 0x55, 0x00, 0xFF.
Proper working ram returns the same byte being written (that's the one I print onto the screen) (for example, OpenMSX).
Broken ram returns 0x1111xxxx for the high nibble (and that's what I'm also printing onto the screen) (my NMS 8250)

Conclusion: The high 4 nibbles (d4..d7) of IC135 / IC137 are always 1 when reading them, no matter what.

Now I should do what Jipe suggested:
1.- Swap these 2 chips and see what happens.

2a.- If MSX just doesn't work (I can imagine faulty lower RAM would make MSX not work at all !!) then the culprit is one of the swapped chips. Which one is the chip in charge of pages 4..7 ? (it's not so clear reading the specs I uploaded some posts before)

2b.- If MSX just boots as before, and my ASM test yields the same result, then some controller circuitry is making one of these 2 memory chips return always 0x1111xxxx. I should go for IC149 then...

Am I right?

Thanks

By Jipe

Paragon (1269)

Jipe's picture

16-03-2017, 12:50

for speed testing the 2nd bank of memory
desold r127 r128
cross the resistor for swap /CAS1 /CAS2 signal
run yout test

By friguron

Resident (44)

friguron's picture

16-03-2017, 13:06

Nice approach, I'll do it on friday.

What will the expected result be if I run my .rom test?
In fact, changing ram CAS lines that way wouldn't render my MSX somehow unbootable?
(mainly if lower ram has swapped CAS lines?)
In case it boots and GR8NET can run my .rom tester, the expected result (if some chip is broken) would be something like:

aa,55,00,ff
aa,55,00,ff
aa,55,00,ff
aa,55,00,ff
af,5f,0f,ff
af,5f,0f,ff
af,5f,0f,ff
af,5f,0f,ff

?

Greetings and thanks.

By Jipe

Paragon (1269)

Jipe's picture

16-03-2017, 14:18

if the MSX don't boot first search the problem on IC135 bits D4 D7 of /CAS2
check all common wire /RAS /WE /CAS

By NYYRIKKI

Enlighted (4759)

NYYRIKKI's picture

16-03-2017, 19:09

I would say the problem is on IC135... but it is possible the the problematic chip is also IC133... I don't think you need to swap the signals... Just disconnect /CAS2 and see if the computer boots... If it does then it must be IC135...

Page 1/3
| 2 | 3
My MSX profile