Q68 QoE Ethernet Driver
-
- Aurora
- Posts: 970
- Joined: Tue Dec 17, 2013 1:17 pm
Re: Q68 QoE Ethernet Driver
It's driver update time again. Here is version 0.38
This version of the QoE driver has support for Domain Names added to the OPEN command.
You can now do OPEN commands like OPEN_IN#4,"udp_test0.workgroup.com:hosts2-ns", or OEPN_IN#4,"TCP_192.168.0.1:ftp"
There are over 270 defined services. You can find them defined at the end of the _asm file.
There is a ETH_DNS command to set the IP address of the DNS server, and a ETH_DNS$ function to return the current DNS IP address. If you use DHCP, depending on your DHCP server. The DNS address may be set for you automatically.
I have added the IP_GETHOSTBYNAME, and IP_GETHOSTBYADDR Trap #3 system calls.
And I have added a ETH_IPCONFIG SuperBASIC command to display some system information.
Note - There is no local caching of domain information. So every time a domain name is used, it must be fetched from the DNS server. This raises a slight problem if you use the 'localhost' domain name. The driver asks the DNS server for it. On my setup this works OK as the DNS server replies with it's 'localhost' information, 127.0.0.1, which happens to be correct.
I have not decided yet what to do about a local cache. whether to have one or not, and/or a 'hosts' file.
As my internet connection is via a mobile broadband dongle. I can't test real live DNS request over the internet. So there may be some problems still lurking in DNS requests.
This version of the QoE driver has support for Domain Names added to the OPEN command.
You can now do OPEN commands like OPEN_IN#4,"udp_test0.workgroup.com:hosts2-ns", or OEPN_IN#4,"TCP_192.168.0.1:ftp"
There are over 270 defined services. You can find them defined at the end of the _asm file.
There is a ETH_DNS command to set the IP address of the DNS server, and a ETH_DNS$ function to return the current DNS IP address. If you use DHCP, depending on your DHCP server. The DNS address may be set for you automatically.
I have added the IP_GETHOSTBYNAME, and IP_GETHOSTBYADDR Trap #3 system calls.
And I have added a ETH_IPCONFIG SuperBASIC command to display some system information.
Note - There is no local caching of domain information. So every time a domain name is used, it must be fetched from the DNS server. This raises a slight problem if you use the 'localhost' domain name. The driver asks the DNS server for it. On my setup this works OK as the DNS server replies with it's 'localhost' information, 127.0.0.1, which happens to be correct.
I have not decided yet what to do about a local cache. whether to have one or not, and/or a 'hosts' file.
As my internet connection is via a mobile broadband dongle. I can't test real live DNS request over the internet. So there may be some problems still lurking in DNS requests.
- Attachments
-
- Q68Net038.zip
- (350.33 KiB) Downloaded 131 times
-
- Q68NetDocs038.zip
- (512.22 KiB) Downloaded 110 times
- mk79
- QL Wafer Drive
- Posts: 1349
- Joined: Sun Feb 02, 2014 10:54 am
- Location: Esslingen/Germany
- Contact:
Re: Q68 QoE Ethernet Driver
Just read this today. The common heap is still there as always, it‘s just not used until all „fast memory“ is exhausted.janbredenbeek wrote:On SMSQ/E it could be as big as hundreds of K since the area below 1MB is only used for system variables and tables and slave blocks (which are of little use nowadays).
-
- Aurora
- Posts: 970
- Joined: Tue Dec 17, 2013 1:17 pm
Re: Q68 QoE Ethernet Driver
Just a small update to the driver.
I have now added a DNS cache, This adds three new commands DNS_ADD, DNS_LIST, and DNS_FLUSH.
I have also fixed a problem with ARP_LIST failing when outputting to a file.
EDIT. Attached the right files now
I have now added a DNS cache, This adds three new commands DNS_ADD, DNS_LIST, and DNS_FLUSH.
I have also fixed a problem with ARP_LIST failing when outputting to a file.
EDIT. Attached the right files now
- Attachments
-
- Q68Net039.zip
- (365.22 KiB) Downloaded 102 times
-
- Q68NetDocs039.zip
- (518.99 KiB) Downloaded 104 times
Last edited by Martin_Head on Sun Sep 26, 2021 9:30 am, edited 1 time in total.
- janbredenbeek
- Super Gold Card
- Posts: 673
- Joined: Wed Jan 21, 2015 4:54 pm
- Location: Hilversum, The Netherlands
- Contact:
Re: Q68 QoE Ethernet Driver
Just a little note: this update has the same version as the previous, and the files in the .zip are identical.Martin_Head wrote:Just a small update to the driver.
I have now added a DNS cache, This adds three new commands DNS_ADD, DNS_LIST, and DNS_FLUSH.
I have also fixed a problem with ARP_LIST failing when outputting to a file.
-
- Aurora
- Posts: 970
- Joined: Tue Dec 17, 2013 1:17 pm
Re: Q68 QoE Ethernet Driver
Sorry, Picked the wrong one's to upload. Corrected nowJust a little note: this update has the same version as the previous, and the files in the .zip are identical.
-
- Aurora
- Posts: 970
- Joined: Tue Dec 17, 2013 1:17 pm
Re: Q68 QoE Ethernet Driver
Here's an update for the driver.
There's not much from the users point of view. The ETH_PING command, now also accepts a domain name.
I have re-organized the assembly files to try to make it easier to port the driver to other QL systems with a CP2200 based Ethernet interface. There is now a system specific 'Keys_in' file, which contains all the definitions that could change from one implementation to another. There is a QoETemplateKeys_in file that can be modified to suit. It contains the values for a hardware timer ticking at 7.5MHz (if I've done the sums right).
The user heaps used in the driver are now self expanding. If they fill up, and an extension is required. The size will be however much space is required, plus the default buffer size.
So I have reduced the 256K packet buffer that the Q68 driver previously used, down to 20K.
There's not much from the users point of view. The ETH_PING command, now also accepts a domain name.
I have re-organized the assembly files to try to make it easier to port the driver to other QL systems with a CP2200 based Ethernet interface. There is now a system specific 'Keys_in' file, which contains all the definitions that could change from one implementation to another. There is a QoETemplateKeys_in file that can be modified to suit. It contains the values for a hardware timer ticking at 7.5MHz (if I've done the sums right).
The user heaps used in the driver are now self expanding. If they fill up, and an extension is required. The size will be however much space is required, plus the default buffer size.
So I have reduced the 256K packet buffer that the Q68 driver previously used, down to 20K.
- Attachments
-
- QoENet042.zip
- (367.72 KiB) Downloaded 89 times
-
- Q68NetDocs042.zip
- (522.63 KiB) Downloaded 89 times
-
- Aurora
- Posts: 970
- Joined: Tue Dec 17, 2013 1:17 pm
Re: Q68 QoE Ethernet Driver
I keep toying with the idea of splitting it up into separate files, and doing the linking thing in QMAC. But I would have to learn how to do it all first.Peter wrote:Thank you Martin!
600 KB of sourcecode in one assembler file... wow...
This driver is the first thing I have used QMAC for. The Assembler I have always used in the past does not handle linking assembly files.
Re: Q68 QoE Ethernet Driver
My main intention was to cherish the enormous amount of work and your outstanding achievement, creating such a comprehensive QL native driver in assembly language.
I think the combined complexity of TCP/IP and ethernet is higher than any driver that Tony Tebby ever wrote.
Hopefully your work will be used for more than the Q68 and eventually get the appreciation it deserves!
As for a single sourcefile to ease linking: Do you have a specific problem with QLINK, or just not the time to look at an example how to do it?
I think the combined complexity of TCP/IP and ethernet is higher than any driver that Tony Tebby ever wrote.
Hopefully your work will be used for more than the Q68 and eventually get the appreciation it deserves!
As for a single sourcefile to ease linking: Do you have a specific problem with QLINK, or just not the time to look at an example how to do it?