DIY 2MB and 4MB memory mapper

DIY 2MB and 4MB memory mapper

by HansO on 06-09-2018, 20:25
Topic: Hardware
Languages:

Andrey Koryakin has designed an internal memory mapper of 2M and 4MB for MSX2 and MSX2+ computers with a real physical Z80 chip. The processor has to be moved from the mainboard to the memory mapper PCB. After that this complete PCB will be put back to the place where the Z80 came from.

Memory registers and back annotation are supported.

This PCB has been tested on Sony HB-F1XD, HB-F1XD MK2, HB-F1XDJ, HB-F1XV, Panasonic FS-A1 MK2 and FS-A1F.
It should work on any MSX2 or MSX2+ where a physical Z80 IC is used as CPU.

You can find the full article on the MSX Info Pages with a circuit diagram, an Eagle PCB design and many images. Also note the other regular updates on this page.

Relevant link: Internal memory mapper

Comments (13)

By gdx

Prophet (2314)

gdx's picture

09-09-2018, 11:48

On the linked page, the start screen displays 2048KB. Why are internal 64K ignored?

By Giangiacomo Zaffini 2

Expert (77)

Giangiacomo Zaffini 2's picture

09-09-2018, 13:15

Pretty lovely. And impressive.
A question: - would It work with a MSX-DOS2 rom or NEXTOR rom on a plain old MSX 1?

By gdx

Prophet (2314)

gdx's picture

09-09-2018, 14:01

Giangiacomo Zaffini 2 wrote:

would It work with a MSX-DOS2 rom or NEXTOR rom on a plain old MSX 1?

Theoretically, yes. If the MSX hardware supports this extension and if there is room around the CPU and if the MSX has a free signal /SLTSL, it should work with NEXTOR. MSX-DOS2 requires a patch to work on MSX1. Without Nextor the main Rom requires a patch to put the pages of Memory Mapper in order at start.

By lintweaker

Expert (88)

lintweaker's picture

09-09-2018, 15:27

Nice! Neat 'trick' using the 74373 for back annotation!

By kansaizine

Supporter (13)

kansaizine's picture

10-09-2018, 09:12

It seems that the built-in 64 KB RAM is removed.

By Meits

Scribe (5178)

Meits's picture

10-09-2018, 10:52

Is it removed or is the new mapper put in the same slot?

By roadfighter

Champion (368)

roadfighter's picture

14-11-2018, 06:06

Would it matter if the 74hc chips were replaced by 74ls series?
Signal and timing wise ?

By Edevaldo

Expert (74)

Edevaldo's picture

15-11-2018, 02:59

Quote:

Would it matter if the 74hc chips were replaced by 74ls series?
Signal and timing wise ?

You should not use HC devices on MSX machines. HCT should be used instead. When a real TTL device drives a signal it drives it with a voltage in the order of ~3.5V (this varies a lot). CMOS (HC) devices need about 3.5V to recognize a high logic level reliably. So while this may work most of the time, over time you will see unreliable behavior.

TTL devices are guaranteed to drive the high level > 2.4V and they recognize high level as ben >2V. So CMOS can drive TTL reliably, the opposite is not true. Adding a pullup resistor helps. But it is better just to use HCT or regular TTL (LS, S, AS, F...).

HCT devices have their input levels tweaked so theu can recognize TTL levels reliably.

By gdx

Prophet (2314)

gdx's picture

16-11-2018, 00:56

Edevaldo wrote:

You should not use HC devices on MSX machines..

It depends on the use. We can see HC chips in various MSX hardware without causing any problem.

https://en.wikipedia.org/wiki/7400-series_integrated_circuits

By Edevaldo

Expert (74)

Edevaldo's picture

16-11-2018, 05:16

Quote:

It depends on the use. We can see HC chips in various MSX hardware without causing any problem.

We can analyze those cases if you have one. In most cases mixing NMOS & TTL level devices with HC CMOS or CD4000 CMOS devices requires extra circuitry to not result in unreliable behavior. Just use real TTL parts or HCT parts and you will never have an issue.

Even the original NMOS z80 cannot drive HC devices reliably.

On the other side if all parts in a machine are CMOS, including Z80 etc. HC parts can be used with no problem. But the device that connect the the inputs and receive the data bus on the cartridge slots still need to recognize TTL levels. Otherwise some cartridges may simply not work on that machine. Same for printer port busy input and other interfaces.

The schematic of this Mapper is a good example of circuit that will have problems. The Z80 in the picture is an NMOS device driving all those HC control devices. The memory has proper TTL level inputs and will be driven reliably by the Z80. But the HC devices will not be too happy with the the Z80 signals. A slightly hotter day, a slightly higher load on the bus and the circuit will eventually fail to read or write the memory, or access the wrong address. Change to HCT devices and it will perform flawlessly.

HCT and HC devices can be mixed freely, by the way. Just don't drive HC parts with NMOS or TTL devices and it will be ok.

By gdx

Prophet (2314)

gdx's picture

17-11-2018, 00:35

There are some HC chips in the Turbo R for example. The problem with DIY hardware is it is often done by hobbyists. In addition, many people choose the most economical or simplest method and sacrifice optimal functioning. So yes, there are some differences to be taken into account to use the HC chips but do not say "Do not use it".

PS: Many MSX support CMOS Z80. I put it in my HX-10.

By Edevaldo

Expert (74)

Edevaldo's picture

17-11-2018, 02:00

Quote:

PS: Many MSX support CMOS Z80. I put it in my HX-10.

CMOS Z80 would work on any MSX without issues. They are compatible with TTL levels.
The same is true for V9938/58, 82C55, and possibly all MSX engines. They are CMOS but compatible with TTL levels as HCT/ACT devices are.

By Edevaldo

Expert (74)

Edevaldo's picture

17-11-2018, 02:42

Quote:

So yes, there are some differences to be taken into account to use the HC chips but do not say "Do not use it".

Particularly if somebody has to ask, I'll repeat, never use an HC device on an MSX or it may bite you back. There is no guarantee an HC device can understand TTL voltage levels. If you are lucky, the delays will be longer and consumption will be higher or it will not work at all. If you are unlucky you may be left with an intermittent problem.

Let's say you want to design a cartridge to work on MSX machines... The later models will have MSX engine devices driving the buses. They will provide CMOS levels and unsderstand TTL levels, life is easy. Most MSX1 machines and many MSX2 machines are not like that. They are all TTL and your cartridge will not be guaranteed to work. So if you want your cartridge to work on different machines, don't use HC.

HC & HCT devices cost the same. One of them will always work. There are book chapters written on it, many application notes. Even the Wikipedia link you sent talks about TTL-compatible voltage levels.

Turbo-R is a good design in that regard. They use many HC and a few TTL LS where they absolutely have to.

My MSX profile