Author
| Yamaha YIS-805/128R2 hardware problems
|
tnt23 msx lover Posts: 107 | Posted: April 10 2005, 13:56   |
Quote:
| Quote:
|
If you're interested in having NETROM [disassembled] sources, let me know
|
sure, this is very interesting, please share the sources.
|
Will put the listing on the same page tomorrow.
Quote:
|
BTW, I have a cable that connects PC soundcard gameport to the MIDI IN and MIDI OUT of my synthesizer. If you are saying MSX NET can work using pure MIDI SysEx messages, is it possible to make PC and MSX exchange data using this cable ?
|
That was exactly what I first thought when I saw those DIN-5 sockets. Unfortunately, simply plugging MIDI cable didn't work for me - either due to difference in speed (38400 in MSX Net, 31250 in MIDI), or pinouts didn't match, or both.
(It occured to me that I could have tried setting my PC's MIDI port into 38400, but a bit late - I've got MSX-Link).
So the answer probably would be no - unless someone proves the opposite
Quote:
|
And if yes, does it mean we can convert, for example, binary file we want to send into .mid or .syx format and just play it over the cable ?
|
Exactly! Neat usage for someone's old portable sequencer I think.
|
|
cax
 msx master Posts: 1028 | Posted: April 10 2005, 15:24   |
It's very strange they used 38400 for sending MIDI messages instead of standard 31250.
I didn't find any reference about gameport programming and whether it's possible or not to change the PC's MIDI port speed - can anybody help with that ?
|
|
tnt23 msx lover Posts: 107 | Posted: April 11 2005, 13:10   |
cax - NETROM disassembly is available at my updated page.
|
|
cax
 msx master Posts: 1028 | Posted: April 11 2005, 14:17   |
tnt23, 10x a lot.
What do you think, is it possible to reprogram midi port on a soundcard to 38400 ?
I didn't find any reference to such a possibility neither in midi software nor in Linux drivers sources. I afraid it cannot be configured - can you confirm this ?
Another question.
I've spent a lot of time on DivX DVD forums and from there I know it's possible to use some PC-to-mobile phone cables to reprogram flash memory on the board of DVD.
There are also many various schemes for this purpose that are very similar to your MSX-Link scheme - they use MAX232 as well.
The question is:
do you think such a mobile phone cable can be used instead of MSX-Link ?
My knowledge in electronics is very limited, and I am sorry if this question is stupid.
|
|
tnt23 msx lover Posts: 107 | Posted: April 11 2005, 17:59   |
I can't tell if it is possible to set the sound card's MIDI port to 38400, I haven't found no information on it either. Maybe it could be easier to try to change port speed on MSX side, I will have to look into the YM3802 manual.
As for the phone cables mod, you'd still need to do some soldering with them, depending on the schematics and components used.
If you happen to have a friend who is good at electronics, it probably would be better to ask him to build MSX-Link for you. The schematics is quite simple, the components are readily available at your local Radio Shack incarnation. You may even wish to model it yourself using one of those breadboards that don't require soldering iron and all that stuff, just plug components and wires (see www.iguanalabs.com/breadboard.htm for nice tutorial). |
|
cax
 msx master Posts: 1028 | Posted: April 12 2005, 19:12   |
After reading disassembled code of NET ROM (thank you, tnt23) and YM3802 manual, I finally understand how MSX talks to the chip via ports.
First of all, I have to explain the numeration of YM3802 registers - it's not linear !
Registers are divided into 10 groups.
There are 4 special registers R00-R03 that don't belong to any group (or, in other words, belong to all groups - see explanation below).
Each register has a 2-digit number XY, where 0<=X<=9 is a number of a group and 4<=Y<=7 is a number of a register in a group
(now you can see that in fact we can access registers R00-R03 from any group, because no other register has 0<=Y<=3)
Using this naming scheme we can address 4+4*10=44 registers, but, in fact, YM3802 has only 38 of them (the following 6 registers does not exist: R07, R37, R46, R47, R57, R97).
Now, how MSX reads/writes register RXY:
1) you have to select the group of registers - this is done by writing X to the port 0x09 (in fact, you are writing into register R01. Registers R00-R03 are always mapped onto ports 08h-0Bh, so if you want to access them, you don't need to set group). If you want to access more than one register in the same group, no need to select the same group twice.
2) use the port number 8+Y to read from (using IN) or write into (using OUT) register.
Example - read R54, check some bits and then write value of A to R56:
push af
START:
ld a, 5
out (9), a ; group 5
in a, (0Ch) ; 8 + 4 = 0Ch (reg num in a group = 4 => we read from R54)
bit 0, a
jr nz, START
bit 6, a
jr z, START
pop af
out (0Eh), a ; 8 + 6 = 0Eh (group = 5, reg num in a group = 6 => we write into R56)
=================================
Now I'd like to know whether YM3802 sends any interrupts to Z80 and how exactly it sends them - I think it does, because there were many programs that didn't work with network enabled, and there should be reason for it.
Another thing I'd like to know is whether exists any other piece of MSX hardware that uses ports 08h-0Fh.
|
|
tnt23 msx lover Posts: 107 | Posted: April 13 2005, 07:54   |
Quote:
| in a, (0Ch) ; 8 + 4 = 0Ch (reg num in a group = 4 => we read from R54)
|
Actually, this has to be commented on.
This was only my theory that the YM3802 chip in Network Module is addressed starting from 0x08 - so that outing to 0x09 would correspond to R01, etc.
The theory works well, but hasn't been proved 'in hardware' since we don't know whether the YM3802 is indeed CSed starting from 0x08. |
|
tnt23 msx lover Posts: 107 | Posted: April 13 2005, 08:00   |
Quote:
|
Now I'd like to know whether YM3802 sends any interrupts to Z80 and how exactly it sends them - I think it does, because there were many programs that didn't work with network enabled, and there should be reason for it.
|
YM3802 doesn't send interrupts to Z80 itself, instead it uses its own rather complex Interrupt Manager. There's a bunch of registers and register bits in the chip you should consult.
The NETBIOS does its work by HOOKing via the keyboard interrupt (or is it VDP?) 50 or 60 times a second. There even seem to be a special 'hook' within NETBIOS' interrupt handling routine; I wonder if it could be used to build some fancy 'Loading Progress' indicator or something. |
|
Jazzy msx addict Posts: 411 | Posted: April 14 2005, 12:29   |
Thanks for your e-mail by the way.  |
|
tnt23 msx lover Posts: 107 | Posted: April 14 2005, 12:35   |
Silly me  I've just ran across someone's Yamaha Network page where the guy asked for help, and responded immediately! |
|
Jazzy msx addict Posts: 411 | Posted: April 14 2005, 13:31   |
Never mind, you did the right thing.  |
|
cax
 msx master Posts: 1028 | Posted: April 14 2005, 14:19   |
Now we have almost everything for connecting real Yamaha MSX with network module to emulated MSX running on PC:
- tnt23's MSX Link that connects PC's serial port to Yamaha MSX2 network module
- knowledge of how Z80 talks to YM3802 chip via ports
- YM3802 emulation code can be taken from XM6 - it's sources can be found at http://www.ipc-tokai.or.jp/%7Eytanaka/x680x0/xm6.shtml
(well, not for MSX emulator, but it looks pretty good to be ported for use within MSX emulator)
- YM3802 manual
- Network manual in both Russian and English
- Networking software running on MSX - for testing and for using when everything will work
To be implemented, it needs not too much: a person who wants to program it and has all the mentioned hardware for testing - Yamaha MSX2 with network module and MSX Link. Too bad, we all are splitted - some of us have the mentioned MSX machine, others can program emulators, and MSX Link exists only in 1 copy
And the most problematic thing is that it seems I am the only person who wants things being done this way. |
|
mars2000you msx master Posts: 1723 | Posted: April 14 2005, 14:27   |
I'm very impressed by the amount of infos that is now collected about the MSX Network
For the emulator part : we are now working in the blueMSX team about MIDI support and complete modem support. It could be viewed as a first step to the emulation of the MSX Network !
It should indeed be very amazing to run simultaneously 2 sessions of blueMSX, one with the teacher's MSX, one with the student's MSX
Just a variant of the cax approach ! |
|
Jazzy msx addict Posts: 411 | Posted: April 14 2005, 14:43   |
Quote:
| To be implemented, it needs not too much: a person who wants to program it and has all the mentioned hardware for testing - Yamaha MSX2 with network module and MSX Link. Too bad, we all are splitted - some of us have the mentioned MSX machine, others can program emulators, and MSX Link exists only in 1 copy 
|
I think it is great that people all over the world are working with these computers again and that they are not forgotten!
I'm willing to send a Yamaha YIS-503IIIR to somebody who can use it for further development. You can borrow it as long as is needed for this project.
The only thing I don't have at the moment is money so I can't pay the costs of shipping with insurance but I'm sure this problem can be solved. |
|
cax
 msx master Posts: 1028 | Posted: April 14 2005, 15:47   |
Quote:
|
It should indeed be very amazing to run simultaneously 2 sessions of blueMSX, one with the teacher's MSX, one with the student's MSX 
|
If you do it properly, you can connect up to 15 student machines to single teacher machine, virtual or real ones
Another thing that I'd like to be implemented is Fossil driver for the Yamaha network module connected to the external modem with the help of MSX-Link.
BTW, (tnt23, are you here ?) MSX-Link works in both directions, am I right ? |
|
|
|
|