How does MSX1 or MSX2 detect main RAM bank ?

By marcoexo

Resident (62)

marcoexo's picture

21-11-2017, 15:42

I'm facing a issue with an NMS 8250, I'm going to desolder ram because I believe it's faulty (black screen, but apparently all crtical signals are present on board)
If I completely remove just first bank (CAS0) should it be enough to make it start through a 64k slot 1 or 2 expansion ?
I don't exaclty understand how msx detects ram, if it's by testing specific ram locations by writing and reading at boot phase, or by some other methods... Can someone explain it in brief ? Thanks

Login or register to post comments

By Manuel

Ascended (13538)

Manuel's picture

21-11-2017, 22:09

Indeed, by writing and reading.

By Grauw

Enlighted (6368)

Grauw's picture

21-11-2017, 23:03

Looping through all the slots until it finds it.

By Louthrax

Paragon (1746)

Louthrax's picture

21-11-2017, 23:08

I never had a look at the function that does that search, but it should be interesting (no CALLs, PUSHs or POPs !).

By zeilemaker54

Master (213)

zeilemaker54's picture

21-11-2017, 23:21

Louthrax wrote:

I never had a look at the function that does that search, but it should be interesting (no CALLs, PUSHs or POPs !).

https://sourceforge.net/p/msxsyssrc/git/ci/master/tree/base200/bios.mac
Line 944

By gdx

Paragon (1684)

gdx's picture

22-11-2017, 01:04

Quote:

If I completely remove just first bank (CAS0) should it be enough to make it start through a 64k slot 1 or 2 expansion ?

I think with /W joined to GND (with a resistor) is OK.

MSX detects ram looking for slot 0-0 to slot 3-0 using addesses 0000h, 4000h, 8000h and c000h for the tests.
Memory Mapper are not taken into account when searching. A different routine is used to display the available memory, the method is different for it and depending on the model. On Turbo R, this is the internal memory that is selected (except in certain cases)

By marcoexo

Resident (62)

marcoexo's picture

22-11-2017, 09:06

gdx wrote:
Quote:

If I completely remove just first bank (CAS0) should it be enough to make it start through a 64k slot 1 or 2 expansion ?

I think with /W joined to GND (with a resistor) is OK.

Thanks, you mean it's not enough to remove the chips ? Should I also set /W to ground to make it work ?

By gdx

Paragon (1684)

gdx's picture

22-11-2017, 10:31

No, either you remove the RAMs or you connect /W pins to GND (with a 4.7k resistor I think).

By marcoexo

Resident (62)

marcoexo's picture

22-11-2017, 10:44

ah, ok now I understand you mean the ram pin... putting /W line to gnd seemed quite odd :-)

By Eugeny_Brychkov

Paladin (880)

Eugeny_Brychkov's picture

24-11-2017, 10:09

marcoexo wrote:

I'm facing a issue with an NMS 8250, I'm going to desolder ram because I believe it's faulty

marcoexo wrote:

If I completely remove just first bank (CAS0) should it be enough to make it start through a 64k slot 1 or 2 expansion ?

If the built-in RAM is really faulty, and it is the cause of machine not able to start, then you do not need to desolder onboard chips, just inserting RAM expansion cart must make machine start finding operational RAM at inserted cart location.

My MSX profile