Q68 QoE Ethernet Driver
-
- Aurora
- Posts: 970
- Joined: Tue Dec 17, 2013 1:17 pm
Q68 QoE Ethernet Driver
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.
I have tried to make the driver as compatible as I can with the IP device driver as used in the main QL emulators. it supports the UDP protocol. And will also obtain, and supply MAC addresses (ARP) when required. Also there is the ability to send and receive Pings over the network.
There is also implemented a pseudo TCP client, (I am working on the server side) that allows my IP Network driver http://www.dilwyn.me.uk/internet/index.html to run on the Q68. But only the client side, so no FSERVE yet.
The TCP client is not a full implementation of TCP, It does not have most of the error recovery expected. So all data packets must arrive intact, and in the correct order. So I would not recommend trying to use it over the Internet, but you should be OK over your LAN.
Please remember the driver this is still in development. I know of some potential problems, So I expect that you may find some problems. Please report any you find.
I have done most of my testing with QPC2 on a Windows XP system. So I am not too sure how well the driver will behave with other systems.
For anyone not familiar with my IP Network driver. Here is a brief, get you started. Change the IP addresses to suit your network.
On the Q68, LRESPR Q68NET_bin, then ETH_SETIP "172.16.0.20" This sets the Q68's IP address
In QPC2, LRESPR NETdriver_cde, then
NET_START "172.16.0.9" This being the IP address of the PC
FSERVE
This gets the server side running.
On the Q68, LRESPR NETdriver_cde, then
NET_START "172.16.0.20"
If the last octet of the servers IP address is greater than 8 (*), you need to enter MAP_N 2,9. In this case N2_ will be rerouted to station 9
* In SMSQ/E versions less than 3.32, then you can only use N1_ to N7_
You can then do DIR N2_DOS3_ to get a directory of dos3_ in QPC2
You can also use NETO_9 on the Q68, and NETI_20 on QPC2
Don't try to use NETI_, or FSERVE on the Q68 side, as this is not implemented yet.
I have tried to make the driver as compatible as I can with the IP device driver as used in the main QL emulators. it supports the UDP protocol. And will also obtain, and supply MAC addresses (ARP) when required. Also there is the ability to send and receive Pings over the network.
There is also implemented a pseudo TCP client, (I am working on the server side) that allows my IP Network driver http://www.dilwyn.me.uk/internet/index.html to run on the Q68. But only the client side, so no FSERVE yet.
The TCP client is not a full implementation of TCP, It does not have most of the error recovery expected. So all data packets must arrive intact, and in the correct order. So I would not recommend trying to use it over the Internet, but you should be OK over your LAN.
Please remember the driver this is still in development. I know of some potential problems, So I expect that you may find some problems. Please report any you find.
I have done most of my testing with QPC2 on a Windows XP system. So I am not too sure how well the driver will behave with other systems.
For anyone not familiar with my IP Network driver. Here is a brief, get you started. Change the IP addresses to suit your network.
On the Q68, LRESPR Q68NET_bin, then ETH_SETIP "172.16.0.20" This sets the Q68's IP address
In QPC2, LRESPR NETdriver_cde, then
NET_START "172.16.0.9" This being the IP address of the PC
FSERVE
This gets the server side running.
On the Q68, LRESPR NETdriver_cde, then
NET_START "172.16.0.20"
If the last octet of the servers IP address is greater than 8 (*), you need to enter MAP_N 2,9. In this case N2_ will be rerouted to station 9
* In SMSQ/E versions less than 3.32, then you can only use N1_ to N7_
You can then do DIR N2_DOS3_ to get a directory of dos3_ in QPC2
You can also use NETO_9 on the Q68, and NETI_20 on QPC2
Don't try to use NETI_, or FSERVE on the Q68 side, as this is not implemented yet.
- Attachments
-
- Q68NET.zip
- (10.74 KiB) Downloaded 227 times
-
- Q68Net.pdf
- (131.66 KiB) Downloaded 206 times
- janbredenbeek
- Super Gold Card
- Posts: 673
- Joined: Wed Jan 21, 2015 4:54 pm
- Location: Hilversum, The Netherlands
- Contact:
Re: Q68 QoE Ethernet Driver
Thanks a lot Martin, finally I can do something with the Ethernet port on my Q68 exactly 3 years after it arrived! This saves a lot of swapping SD cards between the Q68 and my PC
I noticed the network connection sometimes 'hangs' when doing a file transfer. I'm not sure whether this is a problem in the Q68 or QPC2 (I might have seen it earlier when experimenting with IPnet but I'm not sure). The machine appears to freeze totally but eventually after a minute or so the network times out and I get control back.
Copying a 111K file over the net to RAM took about 4 seconds so the speed should be about 27K bytes/sec or 216 Kbit/sec - much faster than QLnet or SERnet anyway!
Cheers, Jan.

I noticed the network connection sometimes 'hangs' when doing a file transfer. I'm not sure whether this is a problem in the Q68 or QPC2 (I might have seen it earlier when experimenting with IPnet but I'm not sure). The machine appears to freeze totally but eventually after a minute or so the network times out and I get control back.
Copying a 111K file over the net to RAM took about 4 seconds so the speed should be about 27K bytes/sec or 216 Kbit/sec - much faster than QLnet or SERnet anyway!
Cheers, Jan.
Re: Q68 QoE Ethernet Driver
Hi Martin, this is great enhancement. If I understood well you implemented a full Tcp/IP stack for SMSQ/E, I will try it (as soon as I will be back home) with my Q60, curios to see if it works even if the HW is quite different.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.
....................
I think that this development open also some possibilities for the normal QL with Retro WIFI modem
Again thank you
Fabrizio
-
- Aurora
- Posts: 970
- Joined: Tue Dec 17, 2013 1:17 pm
Re: Q68 QoE Ethernet Driver
If you get a 'net aborted' message, that's the IP Network driver timing out. If you get a 'hang', you can try pressing, and holding CTRL-SPACE. You may have to hold it for up to a couple of minutes. The IP driver checks in places for a break, but you have to wait for timeouts to come around.janbredenbeek wrote:I noticed the network connection sometimes 'hangs' when doing a file transfer. I'm not sure whether this is a problem in the Q68 or QPC2 (I might have seen it earlier when experimenting with IPnet but I'm not sure). The machine appears to freeze totally but eventually after a minute or so the network times out and I get control back.
Also try PRINT ETH_ERRNO To see the last reported driver error.
If you can find a way to trigger the problem, or get a 'Wireshark' dump when it goes wrong. So I can try to figure out what's happened.
-
- Aurora
- Posts: 970
- Joined: Tue Dec 17, 2013 1:17 pm
Re: Q68 QoE Ethernet Driver
It's not a full TCP/IP stack. UDP should be close to the implementation used in the QL emulators, But the TCP mostly 'fakes' the TCP headers, so it looks right for a real TCP system.bixio60 wrote: Hi Martin, this is great enhancement. If I understood well you implemented a full Tcp/IP stack for SMSQ/E, I will try it (as soon as I will be back home) with my Q60, curios to see if it works even if the HW is quite different.
I think that this development open also some possibilities for the normal QL with Retro WIFI modem
Again thank you
Fabrizio
When I started the TCP side, my aim was to get my IP Network driver to run, unchanged, on the Q68 over a LAN.
The driver will not work on a Q60 or Q40. It expects a particular Ethernet controller (CP2200) mapped into memory at particular addresses. That being said. If the low level routines were altered/rewritten for a different Ethernet controller. Then you stand a chance.
- janbredenbeek
- Super Gold Card
- Posts: 673
- Joined: Wed Jan 21, 2015 4:54 pm
- Location: Hilversum, The Netherlands
- Contact:
Re: Q68 QoE Ethernet Driver
I got a 'net aborted' message but after pressing CTRL-SPACE. Will look into it later.Martin_Head wrote: If you get a 'net aborted' message, that's the IP Network driver timing out. If you get a 'hang', you can try pressing, and holding CTRL-SPACE. You may have to hold it for up to a couple of minutes. The IP driver checks in places for a break, but you have to wait for timeouts to come around.
Do you have any plans to publish the source code?
Jan
-
- Aurora
- Posts: 970
- Joined: Tue Dec 17, 2013 1:17 pm
Re: Q68 QoE Ethernet Driver
Yes, when it's more complete. At the moment, the source code is a bit untidy around the TCP side of things. Lots of commented out bits of code that want removing.janbredenbeek wrote:Do you have any plans to publish the source code?
Jan
But if you really want a copy, PM me an email address and I will send you it.
-
- Trump Card
- Posts: 177
- Joined: Mon Aug 08, 2011 11:08 pm
Re: Q68 QoE Ethernet Driver
This is great! I will try it over the x-mas break.
Question: your implementation seems to use the Nx_ notation (N1_, N8_, etc) like the QL driver which is nice. Will I be able to use both QL net and Ethernet net at the same time ? i.e. a ethernet link from QPC to Q68 and a QL net link from SGC QL to the same Q68 ? If so the possibilities are endless.
Francois
Question: your implementation seems to use the Nx_ notation (N1_, N8_, etc) like the QL driver which is nice. Will I be able to use both QL net and Ethernet net at the same time ? i.e. a ethernet link from QPC to Q68 and a QL net link from SGC QL to the same Q68 ? If so the possibilities are endless.
Francois
-
- Aurora
- Posts: 970
- Joined: Tue Dec 17, 2013 1:17 pm
Re: Q68 QoE Ethernet Driver
My IP network driver is the QL network driver, just patched to use TCP instead of the QL network.FrancoisLanciault wrote:This is great! I will try it over the x-mas break.
Question: your implementation seems to use the Nx_ notation (N1_, N8_, etc) like the QL driver which is nice.
At the moment no. I have not put a lot of thought into getting both networks running at the same time. But one method would be to change the device names on one of the two drivers.Will I be able to use both QL net and Ethernet net at the same time ? i.e. a ethernet link from QPC to Q68 and a QL net link from SGC QL to the same Q68 ? If so the possibilities are endless.
However if you change the Nx_ device name, then SMSQ/E would also need to be changed. As the 'N' device is hard coded into the operating system.
- mk79
- QL Wafer Drive
- Posts: 1349
- Joined: Sun Feb 02, 2014 10:54 am
- Location: Esslingen/Germany
- Contact:
Re: Q68 QoE Ethernet Driver
Is that because you implement the N and NSV device and use the existing FSERVE with that?Martin_Head wrote:However if you change the Nx_ device name, then SMSQ/E would also need to be changed. As the 'N' device is hard coded into the operating system.