Martin_Head wrote:For most of the year I have been working on an Ethernet driver for the Q68. Its not finished, but I thought that I would release one of the development versions for people to try, and to get some user feedback on any problems seen.
Many thanks Martin for your enormous work! And again my apologies for giving it so little testing yet.
For all who are used to IP support from emulators, let me add that this is a much larger achievement!
The QL emulators contain neither ethernet nor IP drivers, they just map socket calls to the host OS, and the host OS contains the actual drivers.
In case of the Q68, Martin wrote all the driver code himself for the native 68K side - no Windoze nor Linux doing the job.
Martin_Head wrote:I have tried to make the driver as compatible as I can with the IP device driver as used in the main QL emulators.
This is where Martin's work differs from my own QLwIP driver, which I demonstrated to work on Q40/Q60 and Q68, but never released. I would have introduced a new interface, because writing large portions of code in assembler is not my strength, and the structure of the underlying C written stack does not map well to the QL emulator IP interface. I may still at some point release QLwIP in a simplified fashion, because it also contains applications like webserver, browser, email, etc. which are nice to demo. But those are two decades old and I do not believe people would actually work much with them, maybe except the webserver. Compatibility to the emulator interface is a point that speaks for Martin's driver and against QLwIP.
Martin_Head wrote:it supports the UDP protocol.
While UDP as a packet oriented protocol does not support email or webbrowsing, it is still very useful and probably even more adequate for relatively slow native machines. And UDP works over the internet - do not confuse this with the TCP restrictions Martin mentioned. For example, UDP allows the TFTP file transfer protocol, low latency data exchange for automation or games, and is in princple ideal to resemble the QL network (although for historic reasons Martin implemented that part over TCP, which is not required). It is also easy to communicate from SBASIC to SBASIC program, and even the UDP support in the C68 socket library should work.
An important remark: The choice of the CP2200 ethernet controller for the Q68 was not
because it was the simplest solution for the relatively new and FPGA based Q68 hardware. I chose the CP2200, because it interfaces very easily to the original QL bus
. Firstly, all signals are 5V tolerant. Secondly, it has a direct 8 bit data bus, requiring no serilization. Thirdly, it requires only address decoding, no further logic to interface directly with the QL bus.
Ethernet for the original QL has often been discussed here - now Martin's driver and the CP2200 is the chance for a tinkering project. The only change to make it work is probably the address space. However, keep in mind the QL is a very slow machine. I think that no less than a Gold Card system makes sense. If someone actually wants to design a CP2200 card for the QL, please feel free to ask me. Tetroid, this could also be interesting if you design new (S)GC clones!