MSX1 Memory Mapper

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

By blackmsx

Expert (77)

blackmsx's picture

12-02-2016, 11:13

Hello everyone, Im looking to build a memory mapper to use on my MSX1 machines.
Would this design be suitable for MSX1?
http://msx.hansotten.com/uploads/msxdocs/msx1mb.pdf

Is there some other RAM mapper DIY designs for MSX1?

Thanks!

Login or register to post comments

By zPasi

Champion (499)

zPasi's picture

12-02-2016, 13:37

Looks Ok, but if you want to use that as the main RAM (no linear 32K or 64K) you'll need some mechanism to initialize the pages. MSX2 BIOS does that, but MSX1 BIOS does not. If all pages remain 0 at boot, MSX will eventually crash.

Also, that one misses so called back annotation feature. I'm not sure how important it is anyway. I've read that any software should not rely on that, but some still do.

By gdx

Enlighted (6213)

gdx's picture

12-02-2016, 14:39

Only some Memory Mappers based on CPLD (or FPGA) fully work on MSX1. (like Musical Memory Mapper cartridge, MegaFlashROM SCC + SD + 512Ko, Padial Mapper, and a few others)

By blackmsx

Expert (77)

blackmsx's picture

12-02-2016, 15:23

What I was looking for is to be able to run MSXDOS2 (NEXTOR actually) on a MSX1 machine, so I need at least 128K for that...

By RetroTechie

Paragon (1563)

RetroTechie's picture

12-02-2016, 17:06

zPasi wrote:

Looks Ok,

No it doesn't. If you're gonna use RAM chip(s) with SRAM/EPROM-like pinout, then at least use a proper SRAM, not a pseudo-SRAM that has NO practical advantage.

Quote:

but if you want to use that as the main RAM (no linear 32K or 64K) you'll need some mechanism to initialize the pages. MSX2 BIOS does that, but MSX1 BIOS does not. If all pages remain 0 at boot, MSX will eventually crash.

No it won't. An MSX will still boot even with the same 16K RAM block selected in all pages. From there on, you can manually initialize the mapper with a few BASIC commands, and reset the MSX. Granted, that's a hassle. But it does work that way.
If you don't want that hassle, then for MSX1 you're looking at modified system ROM or a CPLD-based mapper (@blackmsx: have you checked out my 512K one? Wink Quite diy-able).

Quote:

Also, that one misses so called back annotation feature. I'm not sure how important it is anyway.

Not too important. Especially not for well-written / standards-compliant software. But there's a lot of crap out there, and people still want to run that... LOL! That's why having back annotation is preferred.

By Fabf

Champion (266)

Fabf's picture

12-02-2016, 17:34

If you only need 128KB mapped RAM you can buid a simple Gouget mapper with only 3 discret components.

Like RetroTechie said you should manually initialize the mapper but I'm not sure you must restart the MSX.

By zPasi

Champion (499)

zPasi's picture

12-02-2016, 19:05

RetroTechie wrote:
zPasi wrote:

Looks Ok,

No it doesn't. If you're gonna use RAM chip(s) with SRAM/EPROM-like pinout, then at least use a proper SRAM, not a pseudo-SRAM that has NO practical advantage.

Oh, that. Indeed. Well, it should be pretty ok if you replace those with SRAM and strip off the refresh-logic, those 32 and 08 chips. Also, if 512 K is enough, will leave the second ram off. Would look much simpler...

This one should be pretty ok, if 256 K is enough. The other 670 is used for back annotation in this one. But leave off those diodes, and ignore the page with many small SRAMs.

Quote:

(@blackmsx: have you checked out my 512K one? Wink Quite diy-able).

Yes, that is, for someone who is into CPLD / FPGA or interested in them, like me :)

By zPasi

Champion (499)

zPasi's picture

12-02-2016, 19:18

I think it should be possible to make a little autoexec program that initializes the mapper.

By blackmsx

Expert (77)

blackmsx's picture

13-02-2016, 00:04

RetroTechie wrote:

No it won't. An MSX will still boot even with the same 16K RAM block selected in all pages. From there on, you can manually initialize the mapper with a few BASIC commands, and reset the MSX. Granted, that's a hassle. But it does work that way.
If you don't want that hassle, then for MSX1 you're looking at modified system ROM or a CPLD-based mapper (@blackmsx: have you checked out my 512K one? Wink Quite diy-able).

I haven check yours, could you point me to it?
How do you initialize the mapper from basic? (sorry guys, Im new in MSX)

By gdx

Enlighted (6213)

gdx's picture

13-02-2016, 01:52

To initialize the mapper from Basic (Enter each line one after the other in direct mode):

OUT&HFE,1
POKE&H8000,0 : OUT&HFD,2 : OUT&HFC,3

To boot on DOS1 you also need this:

POKE&HF346,1 : CALL SYSTEM

Input it at each start is boring.

zPasi wrote:

I think it should be possible to make a little autoexec program that initializes the mapper.

Yes.

10 IF PEEK(&HFC49)=&H80 THEN POKE&HFC49,&HC0:RUN"AUTOEXEC.BAS"
20 FOR P=1TO3:OUT&HFF-P,P:NEXT:POKE&HFC49,&H80:POKE&H8000,0:RUN"YOURPRG.BAS

Save it with the name "AUTOEXEC.BAS"

However, many MSX1 does not select the memory extension by default because the internal RAM is in a inferior slot. You'll need a other program in language machine for it or boot on DOS2 (a DOS2 patched for MSX1 or Nextor). Otherwise a lot of games do not work.
It's easier to take you a adequate Memory Mapper.

By l_oliveira

Hero (534)

l_oliveira's picture

13-02-2016, 01:38

256KB DRAM memory mapper installed on VG8020/00

I also modded the BIOS to auto init the mapper. I use a modded MEGASCSI with it (DOS2 patched to skip MSX2 detection works fine with this computer).


Original and new RAM chips before install.

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