Ethernet cartridge for MSX

Page 1/7
| 2 | 3 | 4 | 5 | 6

By DD

Expert (88)

DD's picture

12-05-2009, 16:07

A few months ago i started a project where i need VoIP for connecting transmitter stations, to learn about the ethernet controller in this project i wanted to connect it to the MSX because this gives a real good debug environment. Then it is a very small step to make a cartridge of it.

In januari I received the prototype boards and started soldering the components on one board first to test it. Most things worked fine except for reading the buffer memory and lost connections when the MSX accesses the controller. I had to make extension boards with damping resistors to fix it, with this extension the cart fits into a Moonsound box. Originally the design was meant for a Konami sized box but the UTP plug won't fit anyway.

The basic program on the TV screen initializes the card and there is a small basic example program to send a package over the network. The controller handles most of the IP protocol, package decoding and checksum. I don't have enough time to write software, since i am working on other (hardware) projects and another problem is, in a lot of situations I don't have enough knowledge of DOS2 to keep software compatible. Yobi has written a tool to obtain an IP address from a router, the tool sends a DHCP request and decodes the reply.

www.pa4den.nl/MSX/IMG_2187%20Small.JPG

The costs of this proto lot is 75 euro's, including the FLASH rom 29F040 which is not soldered on the one on the picture. Now there are 5 available and they will be produced again later on. If you are a software writer and feel like making tools for it, I can give support from hardware point of view.

The controller used is the W5100 with a total memory size of 16k, it can handle 4 sockets simultaneously with each another port, destination IP address or protocol. When using only one socket 8k memory for transmitter buffer and 8k memory for received data is available. A socket handles UDP, TCP or IPRAW, by hardware. In IRRAW mode you are free to write the protocol number in a register.

www.pa4den.nl/MSX/IMG_2183%20Small.JPG

The FLASH is located at address &H0000-&H7FFF, the total memory is mapped in parts of 32k. With the lowest 4 bits of I/O address &H28, the desired 32k block can be mapped to address &H0000-&H7FFF. It can be used as a BIOS and DHCP at startup, there is no software now except a tool for programming the rom.

Memory address &H8000-&HFFFF is used by the ethernet controller, it has a memory space of 32k but to make access more easy there are two bits to select pages of 16k. Bit 4 selects the lower (0) or higher (1) part of the controller's memory for address &H8000-&HBFFF, bit 5 does the same for address &HC000-&HFFFF. Note that the upper part of the ethernet controller is the data buffer, switching the databuffer to &HC000-&HFFFF will conflict with slotexpanders.

A read is possible from I/O address &H28, bit 6 and 7 are not used and random for reading.

I/O address &H29 is read-only and gives the status of the LED's, these are:
Bit 0 = TX
Bit 1 = RX
Bit 2 = Collision
Bit 3 = Ful duplex
Bit 4 = Speed, 100Mbps
Bit 5 = Link

www.pa4den.nl/MSX/IMG_2185 Small.JPG

www.pa4den.nl/MSX/NETMSX Assembled Small.JPG

Login or register to post comments

By konamiman

Paragon (1033)

konamiman's picture

12-05-2009, 17:12

Sounds like a nice Ethernet UNAPI BIOS could be made for this toy... any volunteer? Tongue

Note anyway, that by using the Ethernet UNAPI you are not using the embedded TCP/IP processing capabilities of the W5100. But it would be a good start anyway.

By dhau

Paragon (1557)

dhau's picture

12-05-2009, 19:38

Great project! The PCB looks fantastic. And by the way, I love your telly. I grew up with one like this in the eighties.

By MäSäXi

Paragon (1884)

MäSäXi's picture

12-05-2009, 20:28

Great prototype you have made! Smile

Nice!

By Sd-Snatcher

Hero (582)

Sd-Snatcher's picture

12-05-2009, 21:28

I like 2..

By Yobi

Master (144)

Yobi's picture

12-05-2009, 21:33

I'm currently busy with streaming radio. Smile
But it's a lot of work. So if you have info about it... please let me know. Hannibal
So nice to have a mp3 player.

By spl

Paragon (1461)

spl's picture

12-05-2009, 23:39

Great!!!! I like one ^^! But I will buy the next batch: the coders first Big smile

By W76NearDark

Paladin (684)

W76NearDark's picture

13-05-2009, 11:02

Very nice! finally an ethernet interface for MSX. I know there were some others (obsonet e.g.), but they never were mass-produced. Even Sunrise hasn't finished their Dumas interface yet. Please keep it as simple as it gets... no rs232 built within or so... Smile Hopefully you can give order information soon.

By Latok

msx guru (3656)

Latok's picture

13-05-2009, 11:08

This is fantastic!! I would like to buy one as soon as possible Smile

By DD

Expert (88)

DD's picture

13-05-2009, 17:24

Unfortunately there are only 5 now and there is no real software yet, indeed it would be better to give programmers a bit priority. I think i should make a new picture of the final version...

UNAPI would be a good solution to make existing software running with this card, maybe some parts of the 'low level' header should be recomposed again in software because it is removed by hardware... Existing software expects more data about protocol information and maybe checksum.

To make advantage of the performance, software should leave more to the hardware. The way of thinking is a bit different, this cartridge must be told what to expect or what to send. Software which only listens to the ethernet won't receive anything, a protocol and port must be specified first, then the cart can be set up to 'listen' mode. This for four protocols and ports at the same time. If something is received or the controller has finished sending data, it can give an interrupt or the user can poll status registers. In this case, software does not have to check the port number or protocol.

I have spend some time with ethernet viewers as 'Commview' and 'Show traffic' to find out what's happening with shoutcast. I think a lot of overhead in the TCP protocol will also disappear, like ACK, SYN and SYN ACK to keep the connection alive, these things are time consuming for a Z80. Streaming audio is probably more difficult than a DHCP tool, i have tried a few things weeks ago but no response from the server. It seems the PC sends a TCP package of 0 bytes to the server to initiate shoutcast (?). I did not receive anything from the server, after that time i focused on hardware again.

By doraemonppc

Master (245)

doraemonppc's picture

13-05-2009, 17:38

Nice!!
Me like spl. Coders first.
I will be really hapy If will be Internestor compatible with an UNAPI bios
Running Naked in a Field of FlowersRunning Naked in a Field of FlowersRunning Naked in a Field of FlowersRunning Naked in a Field of FlowersRunning Naked in a Field of FlowersRunning Naked in a Field of FlowersRunning Naked in a Field of Flowers

Page 1/7
| 2 | 3 | 4 | 5 | 6