Subject: Re: emulating SCO-TERM on NetBSD console?
To: Carl Brewer <carl@bl.echidna.id.au>
From: Michael Smith <smithm@netapps.com.au>
List: netbsd-users
Date: 04/25/2007 22:14:23
On Wed, 25 Apr 2007 21:54:30 +1000
Carl Brewer <carl@bl.echidna.id.au> wrote:

> This is more a general UNIX question than NetBSD
> specific, but one of the boxes is NetBSD, and maybe someone
> here has a suggestion :
> 
> I have a client with an ancient SCO server running their
> main business app (it's a database in postgres or something,
> it's their whole business ...).
> 
> They had a couple of old dumb terminals hooked up to it via
> serial lines, and some new PCs running PTERM or some other
> telnet client on win32 that connect to it and they work - except
> their last dumb term just died, so I figured I could hook up
> a NetBSD box and make that emulate a dumb terminal (they don't
> want to run win32 unless they have to).
> 
> To cut a long story short, the PC is running NetBSD 3.1 and
> no X11, just a generic PC console.  I can (as you'd expect)
> telnet from it to the SCO server and get a session running and
> it mostly works, except that function keys don't seem to get
> through, and screen fields in their application get filled out
> with control chars etc when they type.  ie: there's something
> wrong with the terminal emulation.  The PC's running win32 are
> emulating 'sco-term' using a telnet client called PTerm and they work
> just fine, but telnet (and rlogin, I thought maybe 8 bit was needed,
> but telnet -8 did the same thing too) from the NetBSD box fails.
> 
> The app is running a text UI that looks like it's written in
> curses or similar. If I didn't know better I'd have sworn it
> was tn3270.
> 
> In the long distant past I solved a similar problem connecting
> to an old PICK box (McDonnell-Douglas/AWA something running 'reality',
> for the curious) by wrapping the login in a screen session, which
> took care of a lot of key mapping etc, but I can't remember how I
> did it.
> 
> Does anyone here have any suggestions for how to get the NetBSD
> console on a PC to correctly work as a telnet client to this
> old SCO server that doesn't seem to grok vt100 or pcvt?
> Can I maybe set /etc/tty's for 'console' to be sco-term or
> similar? or will that break the console?

I don't claim to have the whole answer however:

/etc/ttys

...contains...

console "/usr/libexec/getty Pc"         vt100   on secure
ttyE0   "/usr/libexec/getty Pc"         vt220   off secure

...and so on.

According to the man page the type field "vt100" is defined by the termcap file:

/usr/share/misc/termcap

Which includes:

# SCO console and SOS-Syscons console for 386bsd
# (scoansi: had unknown capabilities
#       :Gc=N:Gd=K:Gh=M:Gl=L:Gu=J:Gv=\072:\
#       :GC=E:GD=B:GH=D:GL=\64:GU=A:GV=\63:GR=C:
#       :G1=?:G2=Z:G3=@:G4=Y:G5=;:G6=I:G7=H:G8=<:\
#       :CW=\E[M:NU=\E[N:RF=\E[O:RC=\E[P:\
#       :WL=\E[S:WR=\E[T:CL=\E[U:CR=\E[V:\
# I renamed GS/GE/HM/EN/PU/PD/RT and added klone+sgr-dumb, based
# on the :as:=\E[12m  -- esr)
scoansi|SCO Extended ANSI standard crt:\
        :am:bs:eo:xo:\
        :co#80:it#8:li#25:\
        :@7=\E[F:al=\E[L:bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:\
        :cm=\E[%i%d;%dH:dc=\E[P:dl=\E[M:do=\E[B:ei=:ho=\E[H:\
        :ic=\E[@:im=:k1=\E[M:k2=\E[N:k3=\E[O:k4=\E[P:k5=\E[Q:\
        :k6=\E[R:k7=\E[S:k8=\E[T:k9=\E[U:k;=\E[V:kN=\E[G:kP=\E[I:\
        :kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=\E[D:\
        :mb=\E[5m:md=\E[1m:nd=\E[C:sf=\E[S:sr=\E[T:ta=^I:up=\E[A:\
        :tc=klone+sgr-dumb:


So could you put scoansi as a terminal type in /etc/ttys ?

(cross fingers, its really just a guess).
-- 
Michael Smith
Network Applications
www.netapps.com.au   | +61 (0) 416 062 898
Web Hosting          | Internet Services