Share a keyboard between 2 MSX machines?


Rookie (17)

RSS's picture

18-04-2016, 13:09

Hello all,

As a hobby project I am building two Phillips VG8020 MSX computers into one (PC) housing. My goals are:
- a connection via the CAS connector for exchanging programs or information between programs.
- a VGA monitor for each of the MSX systems (I have two converters for that purpose).
- a floppy drive that can be shared between the two MSX machines.

The issues that I'm strugling with are:
- the keyboard: I want to use only ONE of the original MSX keyboards, and switch control from one to the other.
- the disk-drive: can I parallel the first slot of each MSX and then connect one drive controller?

It would be great to hear if someone has already done this before, and if not I could really use some pointers from the less electronically challenged people on this forum...


Login or register to post comments

By madscient

Master (177)

madscient's picture

18-04-2016, 13:36

Will both work concurrently?

By Wild_Penguin

Hero (530)

Wild_Penguin's picture

18-04-2016, 15:32

I'm slightly electronically challenged, as are you - but the first thought that comes into my mind is a question: why???

I don't mean to sound discouraging, but compared to the gain, it just seems too much hassle, even if it was feasible. There are better ways to achieve communication between two MSXes. Remember, the standard is designed so that it is expandable. For example, get a network cartridge and communicate with it, and two MFRSCC+SDs. Or an IDE + RS-232 cartridge(s). In any case, for any serious work, a floppy drive is just way worse than any HD/SDcard emulation of HD (also: a tape signal CMTOUT is not feedable as such into another MSX CMTIN - you need to amplify it somewhat - not to mention it will be SLLLLOOOOOOWWWW - way slower than changing an µSD card, for example).

I don't think you can connect slots "in parallel" to two MSXes, or at least that would probably be something no one has done before (AFAIK!). I see here a memory based device and doing this is like asking for trouble (I can think of several technical reasons why this seems infeasible to me, but being somewhat electronically challenged my self, I'm not going to comment on the details but leave it to the more professional people Smile ). Also, it is just something that makes no sense, as it would achieve little compared to the alternatives above in my eyes.

If you have two disk drive interfaces, you could make a switch that will change which interface has a connected drive even while the MSX(s) are running (I think) - since the drive itself is quite "dumb". But if you want to use just one interface, you can only switch (effectively unslot/unplug and reslot the interface) if both MSXes are switched off. Make precautions as to not make it possible to change this switch if the system is powered on, if you are going to take this route!

Otherwise, I think it is an interesting idea in that you can have two MSXes in a compact space. Other than that - is there some specific reason to do what you are trying to do?

EDIT: I was only discussing sharing the floppy drive above. Sharing the keyboard should be as "simple" as just wiring the keyboard twice, in theory, and is certainly feasible. As I'm electronically challenged, I'm not sure how to make that safe for long-term usage - as in not frying the MSX-engine or whatever is responsible for the keyboard input.


Rookie (17)

RSS's picture

19-04-2016, 07:45

As to the why: I'm trying to create an adventure game that plays on multiple islands, and seeing that the game is growing quite big, I thought that it would be an interesting idea to have each "island" run on a different computer.

As for communication speed via the CAS port: speed isn't an issue as there will be limited data transfer in the game (basically just when characters m,ove from one Island to another).

The Diskdrive "share" was just a nice-to-have in case it could be realised relatively easilly (I have only one controler, zo the two-controller idea that Wild Penguin suggested is sadly not in the cards.

That leaves only the keyboard question; any ideas?
Keep in mind that the control switches from one MSX to another, so no simultaneous control is needed.
Any ideas?

By pitpan

Prophet (3131)

pitpan's picture

19-04-2016, 10:01

To transfer such information from one computer to another, I think it would be better to use a Joylink cable (from one joystick port to another, bidirectional). By doing so, you could also "transfer" keyclicks from one keyboard to the other computer using the right transmission protocol. Does it sound right? Use one computer as "server" and let it communicate everything that is needed to the "client" computer.

By RetroTechie

Paragon (1512)

RetroTechie's picture

19-04-2016, 10:05

Sharing floppy drive or keyboard hasn't been done before afaik - and with good reason. Short answer: forget it. Long answer: work out the details, and you'll see why. Tongue

As for the why, it becomes even more puzzling:

RSS wrote:

I'm trying to create an adventure game that plays on multiple islands, and seeing that the game is growing quite big, I thought that it would be an interesting idea to have each "island" run on a different computer.

What's the limitation there? CPU speed? Move to KUN Basic, assembly. Throw in a 7 MHz board or go find a Turbo-R. All easier than what you're proposing.

Out of memory? Add in a memory mapper. Use an MSX(2) that's got more RAM built in. Or better: re-design the game's data structures. There's plenty of programmers on here that could help with that.

Adventure games with HUUUUGGGGE playfields have been done on more limited machines than a 64K MSX. So I'm not buying "1 MSX can't handle it". More likely: limitation is not the hardware, but design of data structures / your programming skills.

My MSX profile