QNX2 terminal/telnet connection via Windows

Happy new year

I’ve finally got a dedicated network port at my desk for my QNX testbed machine.

I know the OS has terminal capabilities, and I’ve already begun to dabble with some basic stuff and poke around. I am not connecting via serial port, I am utilizing the TCP connection via the network; I am currently using a client called PuTTY and accessing the machine via a telnet connection.

Shell navigation and commands seem to work mostly fine, I was even able to create a zoo archive of the entire drive and transfer it via ftp to the server in our lab, all through the terminal session…
this is one of the main goals I was hoping to achieve in the short term, as it means that I can at least make backups of the currently deployed systems without having to wander all over the campus.

Unfortunately, when loading the main piece of software we use via the terminal, the screen doesn’t quite render/update properly. I chalk this up to how the terminal emulator sends commands and how the host machine handles sending screen updates, etc…
I briefly had issues with scrolling screen information up/down, or just using arrow keys in general, but a few settings tweaked in the program settings seem to have improved this.

I can’t seem to pass function-key presses through, though; no available option in the software mentions a way for them to behave as normal/intended. It also appears as though the pgUp/pgDn/home/etc keys don’t function appropriately

I am not intimately familiar with terminal interfaces, much less terminal emulators, but this is another prospective tool in my arsenal for working with these machines, so I want to at least build some basic understanding.

Is there any good basic info for QNX telnet sessions?
Is there a telnet client that might be better suited for the task, or any known “ideal” configuration for PuTTY?
I’m trying to make sense of some of the options available through the stty command (reading the Utilities manual), but many of them are things that I haven’t needed to directly configure or consider prior to this…

I use PuTTY and have for more than 10 years.

But this seems like it might be your best option since it mentions QNX support directly

Tim

A caution with that. I’m sure it was not made for QNX 2. It may well work however.

There was something called a tcap (Terminal Capabilities) database. You can tell the terminal what to emulate. The only viable choices I know of are QNX and VT100.

Is there some reason you don’t want to run your software on the console?

Just an anecdote here. 30 some years ago I helped develop an Arcnet based terminal could hook up to a QNET Arcnet network. It was 90% as fast as the console and supported the direct update interface. That interface just poked chars into the memory map when used on the console. Unfortunately, it didn’t sell well.

so if I run tcap list it shows me all the options in the tcap database…

image
the qnx utilities manual only calls out the qnx, qnxs, and qnxt options; I don’t know if qnx2.21 shipped with more profiles, or if these were perhaps built and included by the company that wrote the software we use. Either way, I suppose it means some other terminal modes are configured, and perhaps I could specify those in the emulator.

I would think it should be the other way around; ie some method to outline key/escape sequences, command codes, etc at the terminal emulator end, so that it would be speaking qnx’s language… but then maybe that terminal software that @Tim suggested is the only practical option? I unfortunately can’t easily test it because I have to get approval for any new software on my work machine.

Oh the software absolutely needs to be run on the console, each test rig needs human operators to manage the other manual stuff :P
I’m just trying things here at my desk to see the extent of what capabilities exist… but it would still be useful to be able to connect remotely and load the software for sake of testing/checking/TSing things in different situations.

neat, it seems like arcnet fell out of prominence in the early/mid 90s once ethernet became more viable… did a small search to read up on its history. Sometimes I wish I had been born ten or fifteen years earlier so I could have possibly experienced some of this stuff when it was still contemporary…

First thing I did when I got my corporate machine was get permission to install VMWare player so I can run unlimited virtual machines. Then I can install whatever I want on one of my VMs. IT actually appreciates this because it means they don’t have to worry about the corporate machine getting polluted with software.

Tim

I only remember the qnx and vt100. I suspect that qnxs was made to run on a serial terminal with QNX emulation, but I’m not sure. I’m sure most of the others in the list were never distributed with the OS. If I recall, it wasn’t hard to create your own mapping using a text file. I can confirm all of this if you need it.

I’d do that if I could, but company machines are under significant lock and key (some chinese espionage and national security compromises like ten years ago made them understandably leery. They don’t even like us to have USB access, we have to put in for a specific exception request yearly)

I’ve got my own custom machine that I built specifically for those kinds of tasks, especially for maintaining other machines in our lab that aren’t managed by the IT group, but the caveat is it cannot go on the normal network (to which all of these qnx machines are connected) nor have access to any of the company shared drives.

as it stands, it was like pulling teeth to get a lan port for this qnx machine at my desk.

the utilities manual outlines some of what is possible with the tcap command, and I imagine all those different entries are in 3:/config/tcap.dbase but it doesn’t seem like I can open that as a simple text file (doing a hex dump reveals blocks of data preceded by each terminal type name as plaintext, but I’m guessing that file must be compiled by the tcap command itself).

When I am using PuTTY via telnet connection and I attempt to load the software we normally use, the shell prompts me for a “terminal type,” which I assume would be one of the entries in the tcap database

its default is apparently “rterm” which mostly works alright outside of half the function and command keys not playing nice and some of the time.

Sadly PuTTY doesn’t seem to allow me to dictate the key sequences it sends aside from the few checkbox options to select pre-established protocols.

Would this be a situation where I would need to figure out what strings PuTTY is sending over a given protocol, and then create a terminal definition in qnx with the tcap command that interprets those strings?

small addendum;
I’ve discovered that the insert/home/delete/end/pgup keys all have mixed-up functions when I’ve got the telnet connection open;

Pressed -> behavior
Insert     Home
Home       Insert
PgUp       End
Delete     PgUp
End        Delete

Page Down works fine.

this is the function key configuration for the default “rterm” profile,

and the mix-up seems to track with this list of ANSI Escape Codes from wikipedia;
image

maybe it’s just going to be a painstaking process of determining PuTTY’s sequences and making a profile for it within qnx. There’s likely still much more happening in the background that I may be unaware of.

the utilities manual outlines some of what is possible with the tcap command, and I imagine all those different entries are in 3:/config/tcap.dbase but it doesn’t seem like I can open that as a simple text file (doing a hex dump reveals blocks of data preceded by each terminal type name as plaintext, but I’m guessing that file must be compiled by the tcap command itself).

This all sounds vaguely familiar

maybe it’s just going to be a painstaking process of determining PuTTY’s sequences and making a profile for it within qnx.

That sound right. It might no be as painstaking if you have or can write a simple program to read raw keystrokes and print out a hex dump. It would be something like this:

main()
{
int c;
/* put terminal into raw mode. There’s a way to do this programmatically, but I don’t recall off the top of my head. The stty command can do this so system(“stty [turn off stuff]”) might work.
*/
while(1)
{
c = getchar();
tfprintf(stderr,“%2x\n”, c);
}
}