AuthorTopic: M-Slot (MSX cartridge adapter) (Read 7598 times)

I'm going to put here my thoughts about how to connect a MSX cartridge to the Enterprise expansion connector(Bridge or bus expander).

But first of all we must know what are the main facts, similarities, differences and lacks of the connectors and architectures:

Something about MSX interfacing has been written on the SymbOS thread, so I will put here only a link.

-We have been very fortunate that the Z80 ports used by the most interesting MSX I/O cartridges have not been used on Enterprise expansion projects, so there would be no collision there. Also, just because of this, Zozo says that 14 bit address could be used on this special case to preserve the Enterprise ports left of the bottom 256. We must return to think about this more deeply.

-The Enterprise uses a card style edge connector of 74(37x2) pins at 2,54mm pitch, while the MSX slot uses the very same connector but with only 50(25x2) pins. The original Enterprise bus expander had a 4 pin code on every bus slot to deal with Z80 ports collision, but it was never released nor its information distributed, so the Hungarian developers created their own parallel standard, similar to the PC slots arrangement or the MSX I/O slots. Curiously, the MSX cartridge slots are also coded, but only for memory, up to 4MB, the same limit as the Enterprise.

-Both connectors have the complete Z80 bus(address, data) and signals on them, so it is only a mater of rearranging the pins, but to have a working MSX slot we must also deal with the specificities.

For example, the Hungarians developers based their bus expander on the EXDOS card, that doesn't make use of +12v and -12v(commonly used on amplifiers on audio cards), so they didn't populated pins A37 and B37 as was mandatory on the lost&found original project. But these are necessary for the MSX audio cartridges, so these voltages have to be implemented on a new project.

Also, every audio MSX cartridge returns mono sound to the main-board by a pin. We know that the EP has been provided with two pins for stereo audio return(and mix?), but, ¿does somebody know the level of the sound and how to protect the Enterprise?

-The pins on the two connectors are numbered differently, as you know, on the Enterprise they go from 1 to 37 and A or B depending on the side of the card, but on the MSX slot they are numbered from 1 to 50 alternating sides, starting from the back and right side of the cartridge.

-Another difference is a protection on the MSX cartridge+slot for an accidental extraction while the computer is on. Pin 44 and 46 are joined internally on the cartridge, making a thick bridge track. Then pin 44 is about two mm shorter than the rest. All the 5v that feed the card are first passed by the two pins bridge, so before pin 44 connects to the PCB connector all the other 49 pins have been inserted at least 2mm.

The Enterprise cartridges also have a protection, the 4(2+2) GND and 5v pins at the sides are longer than the rest, to assure that the cartridge is feed before being connected. But the Enterprise expansions don't need protection, because they aren't made for constant extraction, as the cartridges.

-Pin 42 of the MSX slot brings the MSX CPU clock(3.579545MHz), needed by some of the video and sound cartridges.

The Enterprise doesn't have a similar signal, it uses the 8Mhz(system) signal instead. I don't know what is the solution to this on the AMSDAP(MSX slots for CPC), but that clock signal has to be created for the Enterprise.

Observing the AMSDAP picture, it seems that TMTLogic have used a IH0512D, a 5v DC/DC converter for the +12v/-12v lines.

Also, they have used an 74hcxxx chip for buffering some Z80 lines.

I don't see the 3.579545MHz oscillator. Can it be they have used the CPC 4MHZ processor signal?.

I have absolutely no experience with these, but by just guessing, things "should" work on 4MHz too, unless if it's time critical for whatever reason. A stupid example: on PC, classic ISA bus has many bus frequencies and most card works just fine still. However, some cards (like what I had experience with - AdLib) uses a very precise frequency source needed for the correct audio to be generated for the OPL2 chip (YM3812). The ISA bus provides a 14.318Mhz signal (if I remember correctly) which is always that frequency regardless of the bus frequency itself, and it's used by the AdLib card to create the clock signal for the OPL2 chip (with dividing by 4, if I am right here). _MAYBE_ the situation is similar here, in most cases it does not matter too much, if 4MHz bus frequency is used instead of ~3.58MHz, but there can be cards which behaves "strangely" when a precise clock signal is needed for a special purpose like with my stupid PC example. Interstingly, 14.318 divided by 4 it's that 3.579, and divided by 3 is the "famous" 4.77Mhz used by default clock on old PCs, but anyway, it does not matter here too much, just an example, nothing PC is involved too much for sure (it's just a comment, that 4/3 of the colour burst frequency of NTSC is about 4.77MHz, and about 3.5795 is exactly that, maybe that is the reason of that clock used on MSX?).

Btw, some V9938 video chip interfaced with EP bus would be superb (and that chip requires only two I/O ports, and has private video RAM, not shared with CPU at all unlike Nick), so some SymbOS port can use "advanced" graphics, and also some ported MSX games for EP would be possible. Surely that would need an extra monitor connection then

There are some MSX cartridges that need that frequency, something to do with colour carrier on NTSC video.

Yes, that was my (rather stupid, I admit) example with the OPL2/PC, etc.

Quote

Adding that frequency isn't as difficult, I have ordered some oscillators. Maybe a jumper can be provided to switch from 3.58MHz to the real Z80 frequency if needed.

My only problem here, that I am not sure, if a card want to "align" Z80 signals (like RD, WR, MREQ etc) with clock signal, if any card do this, it won't work, if you "fake" another clock but leave the EP's Z80 do things on another clock rate. Though I think, this scenario sounds quite strange, if anybody would do this at all ... Worth to try

Quote

Today it is easier to buy a V9990 VDP based cartridge. But my dream is a way to inject that video using the colour inputs all Enterprise computers have.

Well, yes, but it's kinda hard. Especially if you want to explore the >16 colours stuff. With V9990 you can have even 32K colours (if I know well ...) but you have only four bits colour input. The other hard thing, I guess, is to keep V9990 and Nick in sync, you must force V9990 somehow to "follow" Nick's timing exactly at pixel precision. I would be even happy to do this with a very specific LPT for Nick, but surely, it cannot be done easily with the "freedom of LPT" of Nick when somebody uses a bit longer or shorter frame which more or less works with TVs/monitors but out of sync, strictly speaking ....

Hans Tillema [TMTLOGIC] , the builder of the CPC MSX slot(AMSDAP) has confirmed he directly use the 4 or 8MHz Z80 clock on his approach, and says that only a few cartridges use the exact 3.579545MHz frequency.

Hans Tillema [TMTLOGIC] , the builder of the CPC MSX slot(AMSDAP) has confirmed he directly use the 4 or 8MHz Z80 clock on his approach, and says that only a few cartridges use the exact 3.579545MHz frequency.