# Old Serial Terminals on FreeBSD?



## RevennaFox (Feb 19, 2016)

Hi all. I've got this weird side project I've been thinking about trying for a while now. I have a headless FreeBSD web/file server/router thing I normally login to locally via telnet or remotely via SSH, but after finding an old Kaypro 1 at the dump I started thinking about setting it up as a terminal. Why would I want to do that? I guess mostly because it has a really nice keyboard and text display, but otherwise you've got me. The weather's miserable, might as well do something geeky and pointless.
Anyway. I've got the Kaypro hooked up to the FreeBSD machine with a null-modem cable, and the Kaypro is running Kermit-80. According to the manual, Kermit-80 can emulate a VT52,  a dumb terminal (like an old teleprinter), or pass all received packets to the screen. The UART in the Kaypro supports up to 19,200 bps.
On the FreeBSD machine I have the console redirected to the serial port in /boot/loader.conf:

```
console="comconsole,vidconsole"
```
 and changed the console type in /etc/ttys to use the VT52 emulation in /etc/termcap:

```
ttyu0  "/usr/libexec/getty std.9600"  vt52  on  secure
```
I've tried connecting to the FreeBSD machine with a null-modem cable connected to my Windows notebook using PuTTY at 9600bps, 8 data bits, 1 stop bit, no parity, and XON/XOFF flow control and it works fine. ex works, Visual mode stuff like vi doesn't, but I guess that's because it wouldn't with a VT52?
I hooked it up to the Kaypro and setup Kermit-80 with:

```
set speed 9600
set flow control on
```
and left everything else on the defaults: no parity, local echo off, VT52 mode, etc... It works, kind of, but the text is a little off. Here's the default /etc/motd as it came across:

```
Feb 18 00:40:36 MAINFRAME login:ROOT LOGIN (root) on ttyu0
LaThu Feb 18 00:28:01 on ttyu0
Fr-RELEASE-p9 (GENERIC) #0: Thu Jan 14 01:32:46 UTC 2016

Fease Notes, Errata: https://www.FreeBSD.org/releases/
Sesories:  https://www.FreeBSD.org/security/
Frook:  https://www.FreeBSD.org/handbook/
Fr  https://www.FreeBSD.org/faq/
Qust: https://lists.FreeBSD.org/mailman/listinfo/freebsd-questions/
Frs:  https://forums.FreeBSD.org

sthe system are in the /usr/local/share/doc/freebsd/
dican be installed later with: pkg install en-freebsd-doc
Foguages, replace "en" with a language code like de or fr.

rsSD installed: freebsd-version ; uname -a
Pl that output and any error messages when posting questions.
Into manual pages: man man
Frory layout:  man hier
tdhis login announcement.
```
I guess "Fease Notes" and "Sesories" are supposed to be "Release Notes" and "Security Advisories". Not total garbage like you would get if your speed and parity were off, but there's some missing characters, kind of like things aren't totally in sync, and it's the same errors every time. Furthermore, I can send commands to the BSD machine just fine, it's just what comes back that isn't totally right. I have C-Kermit running on the file server and I can transfer files to and from the Kaypro using _that_ just fine. I've tried tweaking the settings on Kermit-80 by using different terminal types and disabling flow control, all of which made it worse. Is there anything I can change on the BSD side, or maybe there's someone really old out there that used Kermit-80 back in the day? Either way, I'd appreciate the help.


----------



## Juha Nurmela (Feb 19, 2016)

Try adding the extra stopbit, `stty cstopb`, on the FreeBSD side. Hardware flow control might also work better or worse than xon/xoff.

Juha


----------



## wblock@ (Feb 19, 2016)

Use xterm and set the "terminal" to VT100 or VT102 or VT220.  These should all be compatible.  The errors look like flow control errors to me.  A Kaypro is ancient, so old that the UART probably predates the 16550 that had an on-chip FIFO buffer because the earlier UARTs... dropped characters.


----------



## Juha Nurmela (Feb 19, 2016)

It always loses a dozen or so characters, around 10 milliseconds @9600, when doing a linefeed. Silly me suggesting a doubled stopbit could help. 4800 baud might still be too much.

Juha

Likes when the numbers match: 80 * 24 characters to nudge up(or down), LDIR (or LDDR) 21 T-times per byte, 4 MHz Z80, 10 milliseconds


----------



## silicium (Apr 12, 2016)

I've seen data loss (mangled lines) too on many i386 FreeBSD's local console connecting to router's serial port with `cu`, even at slow speed. It may not always be related to lack of flow control, since it only happens in bare* sc*,  while serial input is always correct on full load at 115200 in a sysutils/jfbterm console (port currently marked broken/unfetchable but can still be compiled with distfile from distcache after removing broken status from Makefile).


----------



## Deleted member 9563 (Apr 13, 2016)

I've got a Kaypro II in my vintage collection, but haven't dealt with it yet.  I'm guessing the Kaypro I has an 8250 which should be able to keep up with what you're doing, but could it be that it's a slow video display issue? Anyway, perhaps you could approach the problem from the other end and ask on the Vintage Computer Forum. There's a lot of expertise there, including old-timers with long memories.


----------



## Juha Nurmela (Apr 13, 2016)

Kaypro might contain a Zilog SIO, DART or something like that. One holding register only.

Juha

Not that those should have any trouble with 9600.

Hrmph... "quadruply buffered" said the datasheet

If it's basically the same as Kaypro 2X, there's two pieces of SIO-0 and video is an 6845


----------



## wblock@ (Apr 13, 2016)

Dim memory suggests that the old 8250 UART could be replaced with a buffered 16550A, which was pin-compatible: https://en.wikipedia.org/wiki/16550_UART.


----------

