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!
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.