SImple Slot extender

Simple slot extender for MSX

Hans Otten, 2002/2005

The two slots of a normal MSX are quickly filled when you need
a hard disk controller, a GFX9000, a Moonsound, a modem, too much
to fit. And a slot expander is rare and expensive. In that case:
build a slot extender! Cheap and nearly as good!

Slotextender

Circuit diagram of the slotextender

Slot extender? What is the difference with a slot
expander?

Slot expanders are convenient extensions for the MSX. With an
external box a cartridge port is trransformed into four cartridge
ports, and each slot accepts nealry all types of cartridges. A
well designed slot expander does not allow to insert a cartridge
the wrong way, preventing a premature death of both MSX and
cartridge.

Many types of slot expanders have been produced. To name a
few: MK Pblic Domain sold the first version on the market. The
engineer who made it work right and kept improving it is Kees
Folst a.k.a. Digital KC. The last variant with four slots and two
I/O slots can be bought on order by Hans Oranje. Sunrise alos
mentions slotexpanders for sale on a waitinglist.

What is an I/O slot

The slot expanders made by Sunrise and Hans Oranje have some
extra I/O slots. An I/O slot can be used for MSX cartridges only
requiring I/O ports. Some examples are the GFX9000, Moonsound and
modems like Telcom, NMS1250. Cartrdiges with builtin ROM (games)
or RAM or certainly no I/O cartridges. But also hardware working
with memory mapped I/O are not, like many floppy disk
controllers.
Examples of cartridges not working in an I/O slot are:

– ROM cartridges
– SCC cartridges (even with the switch to turn off the game)
– memory mappers
– Harddisk controllers
– FM-PAC
– floppy disk controllers

The slot extender

A slot extender makes it possible to add one or more I/O slots
to the MSX in a cheap and simple way while allowing the full use
of the original slot. With a switch (SLOT SELECT) one can switch
the cartridge in the original slot off or on. That can be used to
dump a ROM cartridge: start the MSX with SLOT SELECT in the OFF
position and, after boot, switch to ON.

Build a slot extender

The slot extender is quite a simple device,. In fact it is not
more than parallel wired connectors. SLOT SELECT is only
connected to the first connector. The job requires a lot of wires
to be soldered and needs to be done carefully: a short circuit
between wires means always damage to the internals of the MSX
with fatal results. Check all connections before testing the
device!

Picture 2. The three extender, originally
made by Ries Vriend and extended with the BUSDIR circuit

Several of these slot extenders have been built:
– the Zemina 2 slot extender, a device that does not work with
all alle MSX hardware werkt (see the discussion onBUSDIR en INT
why) and therefore adpted to the slot extender recepy.
– A three slot extender build by Ries Vriend (see picture 2) .
Also here the BUSDIR problems with for example the NMS8250/55/80
and therefore enhanced with the 74LS21 BUSDIR circuit.
– a quick to built version with crim-pon conenctors on flatcable,
see poicture 3. A bit difficult to find a suitable case, the
74LS21 circuit is underneath.
– a four slot version with a backplane, a good case and a
cartridge connector..

All these slot extenders work as expected. The 2 and 3 slots
variants work fine on 7 MHz. The four slot version has a long
cable and since no buffering of the signals is done it may have
problems at standard speed or 7 MHz and with the drain on the
power supply if all slots are used by powerhungry cartridges.

How to build

This howto is for a four slots slot extender.

The required parts are:

Number Part Description
50 cm 50 wire flatcable To connect the extender with the slot, dont make it
too long (30 cm is fine)
1 Cartridge case A standard MSX cartridge case is the best, but a
audio cassette case has the right dimensions
1 50 pins edge connector The cartridge connector of the MSX has a 2.54 mm
spacing and is double sided, HArd to find, an old PC ISA
card has a suitbale connector connector with gold plated
connectors. See picture 4 how with some work it can be
used.
1 Case Not to hard to find. An old modem case is a good
example. Make sure the cartridges cannot be inserted the
wrong way!
2 of 3 50 pins connectors The slot connector. In the Netherlands:
Voor print montage, printkonnektor Display Elektronica
nr:05.33.2.258 2×25 polig print straight
Conrad nr 74 26 35-60 2×25 connector page. 772
For a flatcable: Conrad nr 74 19 06-60 snijklemuitvoering
voor platte band
1 74LS21 TTL IC for BUSDIR en INT
1 Switch two pole switch
  Wire Thin isolated wire, the thinner the better!
2 of 3 Resistor 2k2 To mix the audio, experment for the best balance
between audio devices
12 Resistor 10k  
1 Circuit Tester Check the connections, also for short circuits, never
with a MSX switched on!
3 Capacitor 0.1 uF To decouple the powerlines
1 Capacitor 47 uF 16V Elco, for the +5V decoupling

 

Step 1: Connector for the MSX slot

The first step is to built a cartridge to feed all
signals via a flatcable to the actual slot extender. In picture 1
and example is shown of a conenctor found in the junkbox with
goldplated print edge connector from an old ISA card, adapted to
the right size of 2×25 pins.


Picture 4 A connector made from an old PC ISA card

Step 2 Construction of the slot
extender

Take a perf board/experimenters board, for example of
eurocard format and solder the edge connectors in place, see
picture 1). Then connect all pins via the following tables, a lot
of work!.


See the pictures for the location of pin 1, 25, 2 and 50!


Alternative way of using a flatcable and crimp-on connectors
Circuit
diagram of the slotexpander

Step 3 Active components

Solder the 74LS21 and resistors in plave according the
circuit diagram. Also connect the SLOT SELECT switch. The
capacitors are to be placed between the powerlines and ground,
mind the polarity!

Step 4. Case

Place the extender print in the case. Finish the case to
your wishes, but make sure it is done in such a way that
inserting cartridges the wrong way around is impoosible!

Step 5 Test

Use an ohnmmeter or circuit tester for all conections on
all connections. Not only the expected connectiosn should be
checked, also adjacent lines for short circuits.

Step 6 Test, test , test!

Connect the slot extender to the MSX without a cartridge
present. Then switch the MSX on and see if all is fine. Bad
connections or short circuits are the danger here!

Step 7 The first cartridge

Insert a good cartridge and check the SLOT SELECT switch

Slot pins 1-49 connections

Name MSX
Slot connector
Slot 1 I/O
slot 2
I/O
slot 3
CS1 1 1 1 1
CS12 3 3 3 3
Reserve 5
WAIT 7 7 7 7
M1 9 9 9 9
IORQ 11 11 11 11
WR 13 13 13 13
RESET 15 15 15 15
A9 17 17 17 17
A11 19 19 19 19
A7 21 21 21 21
A12 23 23 23 23
A14 25 25 25 25
A1 27 27 27 27
A3 29 29 29 29
A5 31 31 31 31
D1 33 33 33 33
D3 35 35 35 35
D5 37 37 37 37
D7 39 39 39 39
GND 41 41 41 41
GND 43 43 43 43
+5V 45 45 45 45
+5V 47 47 47 47
SOUND 49 * * *

* see text and circuit diagram

Slot connector pins 2-50

Name MSX Slot connector Slot 1 I/O slot 2 I/O slot
CS2 2 2 2 2
SLTSL 4 4 * *
RFSH 6 6 6 6
INT 8 ** ** **
BUSDIR 10 *** *** ***
MERQ 12 12 12 12
RD 14 14 14 14
Reserve 16 option option option
A15 18 18 18 18
A10 20 20 20 20
A6 22 22 22 22
A8 24 24 24 24
A13 26 26 26 26
A0 28 28 28 28
A2 30 30 30 30
A4 32 32 32 32
D0 34 34 34 34
D2 36 36 36 36
D4 38 38 38 38
D6 40 40 40 40
CLOCK 42 42 42 42
SW1 44,46
SW2 46, 44
+12V 48 48 48 48
-12V 50 50 50 50

* SLTSL only connect to one slot

** INT see text and circuit diagram

***BUSDIR see text and circuit diagram

Technical background

I/O in two ways

The way the Z80 cpu addresses I/O devices is important for the
concept of I/O slot and the slot extender/expander.

I/O is performed in a computer by special ICs for the
communication with the outside world. These ICs show to to the
cpu socalled registers that allow via read/write operations I?O
to take place. A good example is the PSG sound generator.

I/O based

The Z80 uses port mapped I/O to address I/O devices in the
form of special ICs. The Z80 has special instructions to do I/O
read and writes to the ports (the registers of the I/O device
like IN and OUT and some more specialised ones. The RD (read) and
WR (Write) signals of the CPU indicate, together with the
address, which opertion on what port to perform. MThe MSX machine
is filled with these ports (see the Ports map in the MSX Info
pages) like PSG, VDP etc. DO not mix the I/O port mechanism and
the slot concept!

Memory mapped I/O

Port mapped I/O is one way of doing I/O and standard in the
Intel/Zilog world. But an I/O device register can also be
accessed as normal memory location. Advantages are that no
special I/O instructions are required and the limit of 256 I/O
ports is gone. It does take away part of the 64K memory space
available in the MSX, but this already is solved with the slot
mechanism and memory mapper concept.This is done in complex MSX
machines, for example disk controllers are mostly memory based,
the device gets its own page.

Cartridges in a MSX slot and SLOT SELECT

An external MSX slot (one is required by the standard) is a
socalled primay slot in the memory map, slot 1 (and 2) usually.
This means the SLOT SELECT on the slot connector is activated if
the slot is selected by the program. SLOT SELECT is therefore
essential for merory based activities. When SLOT SELCT becomes
low it means memory (or memory mapped I/O) access is possible for
the cartridge present in that slot. When a primary slot is
expanded the most important feature of the expander is to
generate SLOT SELCT signals for each expanded slot.

Cartridges in a MSX slot and memory mapped I/O

On the cartridge connector no signal is present to indicate
the equivalent of SLOT SELECT for memory access. This means every
cartridge and all MSX internal devices will see an I/O request
from the processor. Only the port address determines if a device
feels addressed.
This means:
– only 256 I/O ports in total are available on the standard MSX
– an I/O based slot does not need SLOT SELECT and is unaware of
primary or secunday slot

BUSDIR and INT

Some MSX computers like the VG8235 or NMS8245 and nearly all
MSX 1 computers do not require the BUSDIR signal, because the
databus is not buffered inside the MSX. BUSDIR is a signal that
indicates during read operations that the (bidirectional) data
buffer needs to send data to to cpu. External cartridges need to
assert BUSDIR when they are want to send data to the CPU. In the
circuit diagram therefore an OR circuit is used to combine the
BUSDIR’s from all slots.

INT is a signaal activated by a cartridge when it has a
hardware interrupt to report. In the circuit diagram therefore an
OR circuit is used to combine also the INTs from all slots in the
extender.

Future developments

The slot extender presented here is a convenient addition. Not
as convenient as a slot expander but it can be made more close
with still a limited amount of hardware:
– better sound. The resistor circuit is quite simple to mix sound
from the slots. A better solution, also for slot expanders, is to
feed the audio acpins to an external mixing panel. Or built a
simple mixing circuit with a opamp.
– add a real complete slot (see also the Third slot article). For
example the MSX machines with the S3527 or S1985 MSX engines have
at least one expanded slot signal available. On the S3527 slot
301 is available, see the IC description and the service manual.
– use a rotary swicth to enable any of the slots as a full slot
with SLOT SELECT.