Q68 QoE Ethernet Driver

Anything QL Software or Programming Related.
Martin_Head
Aurora
Posts: 847
Joined: Tue Dec 17, 2013 1:17 pm

Re: Q68 QoE Ethernet Driver

Post by Martin_Head »

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.
Attachments
Q68Net038.zip
(350.33 KiB) Downloaded 79 times
Q68NetDocs038.zip
(512.22 KiB) Downloaded 85 times


User avatar
mk79
QL Wafer Drive
Posts: 1349
Joined: Sun Feb 02, 2014 10:54 am
Location: Esslingen/Germany
Contact:

Re: Q68 QoE Ethernet Driver

Post by mk79 »

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).
Just read this today. The common heap is still there as always, it‘s just not used until all „fast memory“ is exhausted.


Martin_Head
Aurora
Posts: 847
Joined: Tue Dec 17, 2013 1:17 pm

Re: Q68 QoE Ethernet Driver

Post by Martin_Head »

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
Attachments
Q68Net039.zip
(365.22 KiB) Downloaded 75 times
Q68NetDocs039.zip
(518.99 KiB) Downloaded 78 times
Last edited by Martin_Head on Sun Sep 26, 2021 9:30 am, edited 1 time in total.


User avatar
janbredenbeek
Super Gold Card
Posts: 629
Joined: Wed Jan 21, 2015 4:54 pm
Location: Hilversum, The Netherlands

Re: Q68 QoE Ethernet Driver

Post by janbredenbeek »

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.
Just a little note: this update has the same version as the previous, and the files in the .zip are identical.


Martin_Head
Aurora
Posts: 847
Joined: Tue Dec 17, 2013 1:17 pm

Re: Q68 QoE Ethernet Driver

Post by Martin_Head »

Just a little note: this update has the same version as the previous, and the files in the .zip are identical.
Sorry, Picked the wrong one's to upload. Corrected now


User avatar
Peter
QL Wafer Drive
Posts: 1953
Joined: Sat Jan 22, 2011 8:47 am

Re: Q68 QoE Ethernet Driver

Post by Peter »

Many thanks for the update!


Martin_Head
Aurora
Posts: 847
Joined: Tue Dec 17, 2013 1:17 pm

Re: Q68 QoE Ethernet Driver

Post by Martin_Head »

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.
Attachments
QoENet042.zip
(367.72 KiB) Downloaded 63 times
Q68NetDocs042.zip
(522.63 KiB) Downloaded 66 times


User avatar
Peter
QL Wafer Drive
Posts: 1953
Joined: Sat Jan 22, 2011 8:47 am

Re: Q68 QoE Ethernet Driver

Post by Peter »

Thank you Martin!
600 KB of sourcecode in one assembler file... wow...


Martin_Head
Aurora
Posts: 847
Joined: Tue Dec 17, 2013 1:17 pm

Re: Q68 QoE Ethernet Driver

Post by Martin_Head »

Peter wrote:Thank you Martin!
600 KB of sourcecode in one assembler file... wow...
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.

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.


User avatar
Peter
QL Wafer Drive
Posts: 1953
Joined: Sat Jan 22, 2011 8:47 am

Re: Q68 QoE Ethernet Driver

Post by Peter »

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?


Post Reply