Virtual H89 Computer Serial Ports

The normal Serial Port add-on is a 3-port card, providing "Line Printer", "Modem", and "Auxiliary" ports. However, other add-on cards provide some or all serials ports also. For example, the MMS 77320 SASI controller provides all 3 ports. The USB+Serial card provides two ports (and uses the same I/O address as the modem port would). Only one set of serial ports may be used, if more are installed they will be ignored.

Properties are:

slot_p504, slot_p505, slot_p506
Any of these slots may be used to specify the serial port add-on. Values of "H-88-3", "HA-88-3", or "Z-89-11" all work. Any one of those provides the three standard H89 add-on serial ports.
con_att, lp_att, modem_att, aux_att
Specify what is "connected" to the given serial port. In the case of the H8-5, the cassette port is named "cass" and, if another console already exists, the console port is named "con2". Note, the System Console ("con") is always connected to the H19, but a file may be specified in order to capture out as well. Value syntax is:

>file [a] [+]
Redirect output to file. If "+" is specified then output will also go to the normal attached device as well (must use this on the Console). If "a" is specified then output will be appended to file each time the virtual H89 is started (otherwise, the previous contents will be deleted when the H89 starts). The special file name "syslog" may be used to merge output into the system log for debug purposes, a "+" is implied and "a" ignored.
!command [args...] [ >file [a] ]
Connect port output/input to command (stdin/stdout), optionally also sending output to file. Not yet implemented.
ClassName [args...] [ >file [a] ]
Connect port to an instance of the built-in ClassName, optionally also sending output to file. Currently implemented classes:

Diablo630Serial
Diablo 630 printer emulation.
TtySerial
Direct connbect to a serial port on the host. Arguments are "tty=dev,baud" and optional "modem", "rts/cts" or "xon/xoff". Use of this class requires that the simulation be started with jSerialComm included. For example:

    java -cp VirtualH89.jar:jSerialComm-X.Y.X.jar VirtualH89 args...

See https://fazecast.github.io/jSerialComm/. This was tested with version 2.6.2.

TelnetSerial
Simple socket "telnet server" connection. Specify listening host and port number (must be args 1 and 2). Optional args "modem" and "nodtr".
ProgramSerial
Generic host commandline, stdio connected to serial port.
H19Serial
A Virtual H19 terminal connected to the serial port, in addition to the default system console. Parameter is the name to use in the window title bar.