I'm wondering if terminals (like, e.g. the VT100) required the installation of a driver on the host system in order to work with that host?
I looked at the documentation of the VT102, and there is nothing mentioned about a driver.
I imagine that the setup of a terminal connected to an application on a host computer looks something like this:
The terminal is connected over an RS-232 communication line to the computer (of course, there might also be two modems and a public carrier line between the two RS-232 interfaces, but it shouldn't matter here).
On the host computer is the application that must get its input from the terminal, and send its output to the terminal. To this end, the application must somehow be connected to the RS-232 interface to which the terminal is connected. In the end, the application must read characters from this interface and write characters to it.
Now the question is, what is between the application and the RS-232 interface?
- Is there nothing at all, and the application must be programmed to directly listen on and write to the RS-232 interface (through the kernel)?
- Is there a driver for this specific terminal, and the application communicates with this driver?
- Is there a generic "terminal controller" in the kernel that works with all terminals and provides a common API for applications (like the TTY subsystem in UNIX)?
In other words, if you write a terminal application, what is the mechanism that you get notified about incoming data from the terminal, and how do you write output to the terminal?
In the latter two cases, the driver or controller could do some processing on the input, like line editing, and only send full lines to the application (as it is done by TTY in UNIX). This would offload a lot of complexity from the application.
The protocol that allows applications to control terminals consists usually just of characters (control characters and escape sequences intermixed with display characters). Furthermore, if we assume that all terminals use the ANSI escape sequences (from the VT100 onwards), the same "control language" works with every terminal. So, I'm not sure if each terminal really needs a dedicated driver on the host computer.