Wifi/Telnet questions

186 views
Skip to first unread message

Thomas Runge

unread,
Dec 5, 2021, 5:17:03 AM12/5/21
to Altair-Duino
Yesterday, I was able to install the Wifi/Telnet extension on my Altair-Duino.

I've got two "issues" with it:
  1. When switching on the Altair-Duino, the Wifi module seems to boot up correctly only every second or third time. The other times, it seems to boot into configuration mode with the Captive Portal being available. Not sure why this is...
  2. Connecting with the default command line telnet client (not PuTTY), I cannot manage to get rid of the local character echo. In PuTTY I needed two settings: "Return key sends Telnet New Line instead of ^M" and in the Line discipline options "Local Echo: Force off", but I cannot find according settings for the command line clients in Windows, Linux and OSX. Though I can work with PuTTY on Windows and Linux, there is no (easy) implementation on OSX, so I'm stuck there.
Does anybody have an idea on any of those issues?

udo....@freenet.de

unread,
Dec 5, 2021, 6:28:14 AM12/5/21
to Altair-Duino
Looks like there is no (proper) telnet negotiation implemented. With the default telnet client after making the connection
escape to command mode with CTL-] and type 'mode character' to get rid of local echo.

For implementations of proper telnet negotiation one can use the z80pack machines as reference, there
it is done.

Thomas Runge

unread,
Dec 5, 2021, 6:43:51 AM12/5/21
to Altair-Duino
'mode character' does not seem to make any difference for me. However, 'mode line' does at least not double each single character, but does only double the full line after 'enter'.
Still unfortunate. Is there nothing like forcing off the local echo as does PuTTY?

udo....@freenet.de

unread,
Dec 5, 2021, 7:17:24 AM12/5/21
to Altair-Duino
Some telnet clients also have "set/unset localecho', but not implemented in the OSX version I'm using.
Problem is that the host doesn't send "don't local echo" with telnet negotiation. 

Thomas Niccum

unread,
Dec 5, 2021, 10:15:09 AM12/5/21
to Altair-Duino
I had the same issues.

I switched to using ZOC on my Mac which has enough parameters to counter the problem.  I'm able to use it via wifi successfully on all my "retros" (PiDP8, PiDP11, AltairDuino, and IMSAI 8080).

Thomas Runge

unread,
Dec 5, 2021, 10:56:58 AM12/5/21
to Altair-Duino
I'll give the evaluation a try. But man, 79 EUR for a (though feature-rich) terminal client seems like overkill... Maybe there are other, cheaper (or free) options?

udo....@freenet.de

unread,
Dec 5, 2021, 11:32:51 AM12/5/21
to Altair-Duino
From the Apple store I just installed TelnetLite from MochaSoft, costs nothing.
In the settings it has checkboxes for local echo as well as newline conversion,
but I have not messed with the options yet. Connecting to proper written telnet
servers works fine. This might work for your situation.

Thomas Runge

unread,
Dec 5, 2021, 12:55:01 PM12/5/21
to Altair-Duino
TelnetLite is interesting. It does the trick with the Wifi/Telnet module on OSX. It is, however, not free. The "trial" does allow only 5:00 minutes of connection time per session. The full version is 29.99 EUR.
Much cheaper than ZOC, but still some money and just telnet; - no ssh.

Tom Wilson

unread,
Dec 5, 2021, 1:27:35 PM12/5/21
to Thomas Runge, Altair-Duino
Im confused. Is TELNET not built in to the OSX distribution? 

--
You received this message because you are subscribed to the Google Groups "Altair-Duino" group.
To unsubscribe from this group and stop receiving emails from it, send an email to altair-duino...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/altair-duino/4820d9f4-2f11-4c4a-9007-6b24c75706b5n%40googlegroups.com.
--

udo....@freenet.de

unread,
Dec 5, 2021, 1:30:28 PM12/5/21
to Altair-Duino
Thomas Runge schrieb am Sonntag, 5. Dezember 2021 um 18:55:01 UTC+1:
TelnetLite is interesting. It does the trick with the Wifi/Telnet module on OSX. It is, however, not free. The "trial" does allow only 5:00 minutes of connection time per session. The full version is 29.99 EUR.
Much cheaper than ZOC, but still some money and just telnet; - no ssh.

OK, I just tried some things with it, looked good. But as you also figured out, after 5 minutes it disconnects,
so for real usage one would need the full version.

udo....@freenet.de

unread,
Dec 5, 2021, 1:31:58 PM12/5/21
to Altair-Duino
wils...@gmail.com schrieb am Sonntag, 5. Dezember 2021 um 19:27:35 UTC+1:
Im confused. Is TELNET not built in to the OSX distribution? 

A command line telnet is included, but won't allow to configure local echo and
newline handling. 

Thomas Runge

unread,
Dec 5, 2021, 1:32:38 PM12/5/21
to Altair-Duino
Yes, it is. But as you can see from my original post, the telnet command line clients I know from OSX, Windows and Linux are apparently not able to perfectly deal with the telnet implementation on the Wifi/Telnet module. I haven't found a way, yet, to avoid local echos of the typed in text in those clients.

Tom Wilson

unread,
Dec 5, 2021, 1:36:44 PM12/5/21
to Thomas Runge, Altair-Duino
Ah. I missed the part about echo. On the Windows version, you can turn echo off, but it requires a hot key sequence to get to enter configuration commands. 

I’ll check out the telnet man page later when I have a few minutes. 

Gwen Patton

unread,
Dec 5, 2021, 4:44:04 PM12/5/21
to Tom Wilson, Thomas Runge, Altair-Duino
Some systems block Telnet by default, since it's about as secure as a screen door with a broken latch. You may have to unblock it in some firewall or setting somewhere. I know nothing about Macs that aren't 30 years old (I worked with an original Macintosh back in 1985 or thereabouts), so I don't know where they might hide such a setting.

I found an article that points to some terminal packages for Mac that haven't been mentioned, like ZOC Terminal and iTerm2. There IS PuTTY for Mac, but not ExtraPuTTY. Termius is mentioned, but it's not free, as you already mentioned. But those others I mentioned are free.


-=-=-=-=-=-=-=-=-
73,
Gwen, NG3P


da...@hansels.net

unread,
Dec 5, 2021, 8:42:34 PM12/5/21
to Altair-Duino
Interesting - I had always thought "local echo" would be an option on the client. I didn't consider that the server
would basically have to tell the client to turn it off. But that's how it seems to work, at least for some clients.
Thanks Udo for pointing this out.

I just added a new option in my repository for the WiFi module that allows to configure the module such that
it sends a "will echo" message to newly connected clients. That will cause the Telnet client to stop echoing locally.

Note that the Wifi modules that Chris sells use a slightly modified version of my firmware so if you want this
option then you will either have to to wait until Chris adopts the changes or use my firmware which is somewhat
less convenient when it comes to setting up the network parameters.

David

udo....@freenet.de

unread,
Dec 6, 2021, 2:30:43 AM12/6/21
to Altair-Duino
da...@hansels.net schrieb am Montag, 6. Dezember 2021 um 02:42:34 UTC+1:
Interesting - I had always thought "local echo" would be an option on the client. I didn't consider that the server
would basically have to tell the client to turn it off. But that's how it seems to work, at least for some clients.

If you initiate a telnet connection both, server and client negotiate about a bunch of options, which depend
on the systems capabilities. The client won't know that the server (running CP/M in this case), echoes every
character back, this is why the server must demand the feature from the client.
Same with line mode vs character mode. CP/M expects single characters and allows self editing a line,
so you do not want line mode in the telnet client for CP/M systems.
See RFC's 854 and 1143 to get started.

A very minimalist implementation which only requests do echo and character mode is here:
Function telnet_negotiation().
This works ok in cases if the telnet server is running CP/M.
This code is not understandable without the RFC's or some other documentation about telnet protocol though.

A much more complete implementation also is included for the TCP/IP modem using telnet protocol:

 >Thanks Udo for pointing this out.

Welcome. 

I just added a new option in my repository for the WiFi module that allows to configure the module such that
it sends a "will echo" message to newly connected clients. That will cause the Telnet client to stop echoing locally.

For many telnet clients you also want character mode, because by default they will work in line mode.
This can be more easily dealt with than the local echo, but much nicer if things just work. 

udo....@freenet.de

unread,
Dec 6, 2021, 2:44:26 AM12/6/21
to Altair-Duino
ard...@gmail.com schrieb am Sonntag, 5. Dezember 2021 um 22:44:04 UTC+1:
Some systems block Telnet by default, since it's about as secure as a screen door with a broken latch. You may have to unblock it in some firewall or setting somewhere. I know nothing about Macs that aren't 30 years old (I worked with an original Macintosh back in 1985 or thereabouts), so I don't know where they might hide such a setting.

Well, the UNIX telnet clients can negotiate about Kerberos authentication and encryption. Not as secure as ssh,
but also not as bad as an open door. If you run the communication through a protocol analyser like wireshark
you can see it in detail.

Thomas Runge

unread,
Dec 6, 2021, 2:56:11 AM12/6/21
to Altair-Duino
da...@hansels.net schrieb am Montag, 6. Dezember 2021 um 02:42:34 UTC+1:
Note that the Wifi modules that Chris sells use a slightly modified version of my firmware so if you want this
option then you will either have to to wait until Chris adopts the changes or use my firmware which is somewhat
less convenient when it comes to setting up the network parameters.

I have implemented your changes in Chris' version of the firmware and it seems to work nicely.
One thing i recognized in a Linux Telnet client, though, is that Backspace is apparently not sent as normal ^H. It is working,
but the deleted character is printed out:

list\tsil

It is actually working, but annoying. Is there a solution for that as well? I have not yet been able to find one.

Thomas Runge

unread,
Dec 6, 2021, 3:44:29 AM12/6/21
to Altair-Duino
Thomas Runge schrieb am Montag, 6. Dezember 2021 um 08:56:11 UTC+1:
I have implemented your changes in Chris' version of the firmware and it seems to work nicely.
One thing i recognized in a Linux Telnet client, though, is that Backspace is apparently not sent as normal ^H. It is working,
but the deleted character is printed out:

list\tsil

It is actually working, but annoying. Is there a solution for that as well? I have not yet been able to find one.

I found that the MS / Windows Telnet client is behaving "correctly" with the Backspace key...

udo....@freenet.de

unread,
Dec 6, 2021, 4:08:20 AM12/6/21
to Altair-Duino
The original unpatched CP/M CCP handles BS and DEL different. There is a know patch to make both behave
the same.

Telnet usually doesn't convert BS, but the terminal emulations do. In the settings you often have something
like "Delete sends CTL-H". So try the option in the terminal emulation or patch the CCP.

Thomas Runge

unread,
Dec 6, 2021, 4:49:09 AM12/6/21
to Altair-Duino
Kind of a hassle, but working. Thank you!

udo....@freenet.de

unread,
Dec 6, 2021, 5:07:22 AM12/6/21
to Altair-Duino
In case someone cannot handle it with the terminal settings here are the patch notes from DRI:


Thomas Runge

unread,
Dec 6, 2021, 5:35:05 AM12/6/21
to Altair-Duino
Advantage in the terminal settings is that it is working in all software, not just CP/M. E.g. I did all my testing directly in BASIC (as easily available on the Altair-Duino).

da...@hansels.net

unread,
Dec 6, 2021, 8:45:47 AM12/6/21
to Altair-Duino
Thomas, good to hear that it's working for you. I just realized that the changes I made for when
using the module as a telnet server will interfere with the case where it is running as a client itself
("modem" mode). I have uploaded the fix for this to github. You may want to adopt those changes too.

Udo, the module already has a (minimal) implementation of the telnet negotiation protocol. I just was
missing the part where it should ask newly connected clients to disable local echo.

Thomas Runge

unread,
Dec 6, 2021, 9:58:55 AM12/6/21
to Altair-Duino
David, thanks a lot for the update. I implemented this as well. Working as far as I can tell...

Chris Davis

unread,
Dec 6, 2021, 4:32:42 PM12/6/21
to Altair-Duino
Thanks David.  My fork has been updated.  https://github.com/davischris/WifiModem

Thomas Runge

unread,
Dec 7, 2021, 1:51:33 AM12/7/21
to Altair-Duino
Hi Chris, I don't think you fully implemented David's changes. Looks as if you just implemented the second "batch" in https://github.com/dhansel/WifiModem/commit/3e6e6a3718913758946385db817353ac01461e14, but missed the initial changes in https://github.com/dhansel/WifiModem/commit/61ea4599adfdf8c8830a845cc3e9549a5ecee26f

Thomas Runge

unread,
Dec 7, 2021, 2:33:58 AM12/7/21
to Altair-Duino
Sorry Chris, I was too dumb to see that you also implemented two batches of changes. Forget my earlier post...
Reply all
Reply to author
Forward
0 new messages