Serial lines

Table of Contents

General Description

Before build 204-14

Configuration of the CHARON-VAX / CHARON-PDP serial lines is performed in 3 steps:

  1. Loading the virtual serial lines' controller, for example:

    load DHV11/DHV11 TXA

    In this example, an instance of a  "DHV11" serial line controller is loaded and named "TXA".

    Note that the VAX/PDP11 console adapters ("UART", "QUART") do not need to be loaded; they are preloaded.

  2. Mapping an object type to host resources. For example for the virtual serial lines (see below):

    load virtual_serial_line/chserial TTA1
    set TTA1 port = 10003 application = "putty -load CHTERM-VT100 -title TTA1@XYZ -P 10003"

    In this example the object "virtual_serial_line" is loaded, named "TTA1", mapped to the "putty" terminal emulator and connected to this CHARON instance using the port 10003 (this setting is also specified via the partameter "-P". "CHTERM-VT100" parameter stands for the Putty terminal emulator specific settings. "-title" parameter is used for naming the terminal emulator window.

  3. Connect the loaded virtual line controller and the mapped object:

    set TXA line[5]=TTA1

    In this example, the 6th line of the DHV11 controller, "TXA", loaded in step 1, is connected to the mapping object, "TTA1", loaded in step 2.

(info) This syntax is still supported after build 204-14 but using it will not provide the new features provided by this build.

Starting with build 204-14

Configuration of the CHARON-VAX / CHARON-PDP serial lines is performed as detailed below:

Example for MicroVAX II, 3600, 3900, VAX 4000-700/705:

set UART alias=OPA0
set OPA0 port=10003 application="putty -load CHTERM-VT100 -title OPA0@myvax -P 10003"

(info) The first line above is optional as Charon-VAX/PDP presets UART's alias to OPA0

Example for MicroVAX 3100-96/98, VAX 4000-106/108, and VAXstation 4000-90:

set QUART alias[3] = OPA0
set OPA0 port=10003 application="putty -load CHTERM-VT100 -title OPA0@myvax -P 10003"

(info) The first line above is optional as Charon-VAX/PDP presets UART's alias to OPA0


Refer to Mapping Serial line controllers to system resources for details of mapping and examples provided in the configuration file templates located in the Charon installation folder.
Please note using the old method with "load virtual_serial_line OPA0" will invalidate some features detailed further.

Console

CHARON-VAX / CHARON-PDP offers a one- or four-port serial console, depending on the specified VAX/PDP11 model. The one port serial line controller is identified in CHARON-VAX / CHARON-PDP with the name UART. The four port serial lines controller is identified in CHARON-VAX with the name QUART.

UART is used in Qbus systems only (e.g. the MicroVAX/VAXserver 3600/3900, PDP11/93 and PDP11/94).

QUART is used in SCSI (e.g. MicroVAX 3100 model 96/98, VAXstation 4000 model 90) and SCSI/Qbus systems (e.g. VAX4000 model 106/108). The last QUART line (line[3]) is the console port (known in VAX/VMS as OPA0).

CHARON-VAX / CHARON-PDP console ports can be configured to connect to an external terminal via the host system COM port or can be connected via TCP/IP.

alias

(info) This applies to new syntax only, not if "load ..." is used.

Parameteralias
TypeIdentifier
Value

The main purpose of this parameter is migration from old CHARON systems (which do not have the described implementation of consoles) to the current design, since it allows retaining the original name used for parametrization, since the rest of the parameters stay the same in both implementations. 

Example:

set UART alias=OPA0

(info) This parameter is optional as Charon-VAX/PDP presets UART's alias to OPA0

rts

Parameter

rts[<line>]

Type

Text string

Value
  • "On" - assert the RTS (Request To Send) signal

  • "Off" - clear the RTS signal (default)

  • "DTR" - assert the RTS signal as soon as the DTR signal is asserted ( (warning) Applicable only for QUART )

dsr

Parameter

dsr[<line>]

Type

Text string

Value
  • "On" - always reports DSR signal assertion

  • "Off" - always reports DSR signal deassertion

  • "DSR" - use the DSR signal of the physical serial line (if configured)

  • "CD", "DCD", "RLSD" - use the CD (carrier detect) signal of the physical serial line (if configured)

This parameter is applicable only for line "2" of QUART. UART has no such parameter.

communication

Parametercommunication[<line>]
Type

Text string

Value
  • "ASCII" - for connection to terminals  (default)

  • "BINARY" - for serial lines carrying binary (packet) protocols, which are used mainly for communicating with PLCs


line

Parameter

line[<line>]

TypeIdentifier
Value

This parameter is used to connect a particular serial line interface to the controller. See below for details.

.

Note that the "line" parameter in the table above is applicable only in the case of QUART.

All the values in this table are case insensitive.

Example:

set QUART rts[2]="DTR"
set QUART dsr[2]="On"
set QUART communication[2]="binary"

    

Line 2 of the QUART is the only one which can be used for connecting modems. Therefore, the "DSR" parameter for that line (i.e. "dsr[2]") is internally set to the appropriate value ("CD") but can be changed from the configuration file. Values for the "rts" and "dsr" parameters for the lines other than 2 are not visible for any applications running on CHARON-VAX / CHARON-PDP.

 

Serial line controllers

Asynchronous serial line multiplexers are capable of serving up to 8 asynchronous serial lines (the DHW42-BA supports up to 16 lines).

The following asynchronous serial line multiplexers are supported:


VAX modelAsynchronous serial line emulation

PDP-11/93,
PDP-11/94,
MicroVAX II,
MicroVAX 3600,
MicroVAX 3900,
VAXserver 3600,
VAXserver 3900  (QBUS systems)

CXA16, CXB16, CXY08, DHQ11, DHV11, DZV11, DZQ11, DL11, DLV11, DZ11

MicroVAX 3100 - 96,
MicroVAX 3100 - 98 (SCSI systems)

DHW42-AA, DHW42-BA, DHW42-CA

VAX4000 - 106,
VAX4000 – 108,
VAX4000 – 700,
VAX4000 – 705 (QBUS/SCSI systems)

CXA16, CXB16, CXY08, DHQ11, DHV11, DZV11, DZQ11, DLV11, DHW42-AA, DHW42-BA, DHW42-CA

VAX6310, VAXstation 4090

N/A


The following names are used for the multiplexers:


Device nameModule name

DHV11

DHV11

DHQ11

DHV11

CXY08

DHV11

CXA16

DHV11

CXB16

DHV11

DHW42AA

DHV11

DHW42BA

DHV11

DHW42CA

DHV11

DZV11, DZ11

DZ11

DZQ11

DZ11

DL11, DLV11

DL11

The following example loads an instance of an asynchronous serial line multiplexer:

load DHQ11/DHV11 TXA

Only one instance of DHW42 can be loaded. There is no restriction on the number of the other multiplexers.

The multiplexers offer the following configuration parameters, specified with the "set" command:

address

Parameteraddress
TypeNumeric
Value

Specifies CSR address. The address must be a valid QBUS 22-bit wide address in I/O space.

Default values are 017760440 for the DHV11-family controllers and 017760100 for the DZV11/DZQ11 family controllers, which are the factory settings for asynchronous serial line multiplexers.

 This parameter is not applicable to DHW42-xx serial line controllers

vector

Parametervector
Type

Numeric

Value

Specifies the interrupt vector.

The default value is 0300, which is the factory setting for asynchronous serial line multiplexers.

 This parameter is not applicable to DHW42-xx serial line controllers


line

Parameter

line[N]

N=0…3(7,15)

TypeIdentifier
Value

Specifies the name of the serial line interface object in the configuration to which the N-th line of the multiplexer is connected. See below for details.

communication

Parameter

communication[N]

N=0…4(7,15)

Type

Text String

Value
  • "ASCII" - for connection to terminals  (default)

  • "BINARY" - for serial lines carrying binary (packet) protocols, which are used mainly for communicating with PLCs

rts

Parameter

rts[N]

N=0…3(7,15)

TypeText String
Value

Controls the RTS signal of the Nth line of the multiplexer. 

  • "On" - assert the RTS (Request To Send) signal
  • "Off" - clear the RTS signal (default)
  • "DTR" - assert the RTS signal as soon as DTR signal is asserted

When left blank (initial state), the level of the RTS signal is as requested by the VAX/PDP11 software.

dsr

Parameter

dsr[N]

N=0…3(7,15)

TypeText String
Value
  • "On" - always reports the DSR signal assertion
  • "Off" - always reports the DSR signal deassertion
  • "DSR" - use the DSR signal of the physical serial line (if configured)
  • "CD", "DCD", "RLSD" - use the CD (carrier detect) signal of the physical serial line (if configured)

This parameter is applicable only for the DZV11 and DZQ11 serial lines controllers



tx_q_max_depth

Parameter

tx_q_max_depth[N]

N=0…3(7,15)

TypeNumeric
Value

Specifies the depth of the TX FIFO for the N-th line of the multiplexer. Possible values are 1…1000, initially set to 1, to properly represent the hardware limitation of certain multiplexers. Values greater than 1 improve transmission rate of the corresponding lines, but break correspondence to the original hardware.

This parameter is applicable only for the DHV11 serial lines controller


Use the "address" and "vector" parameters to load several instances of the Qbus multiplexers. Both "address" and "vector" parameter values must be unique for every instance of a QBUS multiplexer.

Read the VAX/PDP11 hardware documentation and the VM system management documentation to understand how to correctly assign the "address" and "vector" parameters.


Example: loading 2 instances of DHV11

load DHV11/DHV11 TXA address=017760440 vector=0300
load DHV11/DHV11 TXB address=017760460 vector=0310

Example: loading DHW42CA

load DHW42CA/DHV11 TXA

Mapping Serial line controllers to system resources

Types of serial line mapping

TypeFunction
physical_serial_line

This type of mapping associates a COM port on a host system with an emulated VAX/PDP11 serial line controller virtual "line".

The COM port can be a physical hardware port or a logical COM port.

virtual_serial_lineThis type of mapping associates a network connection on the host system with an emulated VAX/PDP11 serial line controller virtual "line"

Example:

load physical_serial_line/chserial OPA0


physical_serial_line

line

Parameterline
TypeText string
Description

A defined COM port on a host system in the form of "\\.\COMn"

Example:

set OPA0 line="\\.\COM1"

baud

Parameterbaud
TypeNumeric
Description

Forces the baud rate of the corresponding COM port to be a specified value.

The variety of supported values depends on the underlying physical communication resource (COM port). The most widely used values are: 300, 1200, 9600, 19200, 38400.

Example:

set OPA0 baud=38400

break_on

Parameterbreak_on
TypeText string
Description

Specifies what byte sequences received over the physical serial line will trigger a HALT command.

(warning) This parameter works only for the console line (for the one UART line and "line[3]" of QUART).

Specify the following values: "Ctrl-P", "Break" or "none" ("none" disables triggering a HALT condition).

Example:

set OPA0 break_on="Ctrl-P"

The default value is "Break" for line 3 of QUART and "none" for other lines.


stop_on

Parameterstop_on
TypeText string
Description

Specifies what byte sequences received over the physical serial line will trigger a STOP condition. The STOP condition causes CHARON-VAX / CHARON-PDP to exit.

(warning) This parameter works only for the console line (for the one UART line and "line[3]" of QUART).

Specify the one of the following values: “F6” or “none” ("none" disables triggering a STOP condition).

Example:

set OPA0 stop_on="F6"

The default value is "none".

Setting "F6" triggers the STOP condition upon receipt of the "<ESC>[17~" sequence. Terminals usually send these sequences by pressing the F6 button

log

Parameterlog
TypeText string
Description

A string specifying a file name to store the content of the console sessions or a directory where the log files for each individual session will be stored.

If an existing directory is specified, CHARON-VAX / CHARON-PDP automatically enables creation of individual log files, one for each session using the same scheme as used for the generation of the rotating log files. If the "log" parameter is omitted, CHARON-VAX / CHARON-PDP does not create a console log.

Example 1:

set OPA0 log="log.txt"

Example 2:

set OPA0 log="C:\Charon\Logs"

Rotating logs notes

  • Specify only an existing directory
  • If you want to store the OPA0 log file in the Charon virtual machine home directory (default for virtual machine log file), use: set OPA0 log=".\."

log_file_size

Parameterlog_file_size
TypeText string
Description

If log rotation is enabled, the log_file_size parameter determines the log file size threshold at which the log is automatically rotated.

  • "unlimited" or "0" (default) - the feature is disabled
  • "default" - default size is used (4Mb)
  • <size>[KMG] - size of the current log file in bytes with additional multipliers:
    • K - Kilobyte - multiply by 1024

    • M - Megabyte - multiply by 1024*1024

    • G - Gigabyte - multiply by 1024*1024*1024

Example 1:

set OPA0 log_file_size="default"

Example 2:

set OPA0 log_file_size=10M

(warning) Minimum log file size is 64K, maximum is 1G. Setting size less then 64K effectively makes the log file unlimited.


Example: mapping a console line to a host physical serial line

load physical_serial_line/chserial OPA0
set OPA0 line="\\.\COM1"

virtual_serial_line

host

Parameterhost
TypeText string
Description

A remote host’s IP address or hostname (and optionally a remote TCP/IP port number) for the virtual serial line connection. If omitted, the virtual serial line does not initiate a connection to the remote host and will listen for incoming connection requests.

Specify the value in the following form:

set OPA0 host="<host-name>[:<port-no>]"

If the "<port-no>" is not specified, the virtual serial line uses the TCP/IP port number specified by the "port" parameter (see below).


port

Parameterport
TypeNumeric
Description

The TCP/IP port number for the virtual serial line. A virtual serial line always listens on this port for incoming connection requests.

application

Parameterapplication
TypeText string
Description

An application (a terminal emulator is assumed in most cases) to be started on initialization of this serial line emulation. The specified application startup string may contain all required parameters.

Example:

set OPA0 application = "putty -load CHTERM-VT100 -title OPA0@XYZ -P 10003"

In this example the terminal emulator application "putty" is started with the parameters:

  • "-load CHTERM-VT100" telling it to load a specific saved session named "CHTERM-VT100" (created separately), from the host registry
  • "-title" specifies the name of the given instance of putty terminal emulator
  • "-P" stands for communication port used

The "application" parameter is often combined with a "port" parameter:

set TTA0 port = 10004 application = "putty -load CHTERM-VT100 -title TTA0@XYZ -P 10004"

The CHTERM-VT100 settings in form of ".reg" file can be found under Charon installation location in the subfolder "Build_xxxx\x86"

break_on

Parameterbreak_on
TypeText string
Description

Specifies what byte sequences received over a virtual serial line triggers a HALT command.

(warning) This parameter works only on the console line (for CHARON-VAX / CHARON-PDP it is the only line of UART and "line[3]" of QUART).

Specify one of the following values: "Ctrl-P", "Break" or "none" to disable triggering a HALT condition. The commands are case insensitive.

Example:

set OPA0 break_on="Ctrl-P"

The default value is "Break" for line 3 of QUART and "none" for other lines.


stop_on

Parameterstop_on
TypeText string
Description

Specifies what byte sequences received over the virtual serial line will trigger a STOP condition. The STOP condition causes CHARON-VAX / CHARON-PDP to exit.

(warning) This parameter works only on the console line (for CHARON-VAX / CHARON-PDP it is the only line of UART and "line[3]" of QUART).

Specify one of the following values: “F6” or “none” ("none" disables triggering a STOP condition). The commands are case insensitive.

Example:

set OPA0 stop_on="F6"

The default value is "none".

Setting "F6" triggers the STOP condition upon receipt of the "<ESC>[17~" sequence.

log

Parameterlog
TypeText string
Description

A string specifying the filename to store the content of the console sessions or a directory where log files for each individual session will be stored.

If an existing directory is specified, CHARON-VAX / CHARON-PDP automatically enables the creation of individual log files, one for each session using the same scheme as used for the generation of the rotating log files. If the "log" parameter is omitted, CHARON-VAX / CHARON-PDP does not create any console log.

Example 1:

set OPA0 log="log.txt"

Example 2:

set OPA0 log="C:\Charon\Logs"

Rotating logs notes

  • Specify only an existing directory
  • If you want to store the OPA0 log file in the Charon virtual machine home directory (default for virtual machine log file), use: set OPA0 log=".\."

log_file_size

Parameterlog_file_size
TypeText string
Description

If log rotation is enabled, the log_file_size parameter determines the log file size threshold at which the log is automatically rotated.

  • "unlimited" or "0" (default) - the feature is disabled
  • "default" - default size is used (4Mb)
  • <size>[KMG] - size of the current log file in bytes with additional multipliers:
    • K - Kilobyte - multiply by 1024

    • M - Megabyte - multiply by 1024*1024

    • G - Gigabyte - multiply by 1024*1024*1024

Example 1:

set OPA0 log_file_size="default"

Example 2:

set OPA0 log_file_size=10M

(warning) Minimum log file size is 64K, maximum is 1G. Setting size less then 64K effectively makes the log file unlimited.

log_flush_period

Parameterlog_flush_period
TypeNumeric
Value
  • <period-in-seconds>

Defines a period of flushing log to disk.

Default period is 60 seconds (it means that every minute log file is flushed to disk)

Example:

set OPA0 log_flush_period=30


connection_override

Parameter

connection_override

Typetext string
Value
"enable"
Allows new connection to override existing connection, if any. Enabled connection override on OPA0 allows to intercept virtual serial console.
When emulator detects new connection request on the port (10003 for the below example), it closes old connection, if any, and switches to the new one.
Example:
set OPA0 port = 10003 connection_override = enable
(warning) This is implemented only for serial lines using the new syntax, not for lines using the legacy syntax (load virtual_serial_line ...).

access_control

(info) Available only since build 204-14

Parameteraccess_control
Typetext string
Value

"disable"

Since build 204-14, Incoming connection requests are by default filtered for virtual serial lines and then allowed only for the localhost. This is to avoid security scanners that can block the port.

Example:

set OPA0 port = 10003
set OPA0 access_control = disable

(warning) This is implemented only for serial lines using the new syntax, not for lines using the legacy syntax (load virtual_serial_line ...).


Example - mapping a console line to an onboard serial line

load virtual_serial_line/chserial OPA0
set OPA0 port=10003 stop_on="F6"

Notes on "virtual_serial_line" options:
 

  1. Use the combination of "port" and "host" parameters as follows to connect a 3rd party terminal emulator or similar program.

    load virtual_serial_line/chserial TTA0 host="192.168.1.1" port=10000

    In this example CHARON-VAX / CHARON-PDP connects to port 10000 of a host with TCP/IP address "192.168.1.1" and at the same time it accepts connections on local port 10000.

  2. It is possible to specify a port on a remote host (note that CHARON always acts as a server). The syntax is:

    load virtual_serial_line/chserial TTA0 host="192.168.1.1:20000" port=10000

    In this example CHARON-VAX / CHARON-PDP accepts connection on local port 10000 and connects to remote port 20000 of a host with TCP/IP address "192.168.1.1"

Note: the examples above are mainly used for inter-CHARON communications. They are used to connect CHARON-VAX / CHARON-PDP to an application that communicates to CHARON-VAX / CHARON-PDP as described below.

Example: two CHARON systems connected to each other

On host "A":

load virtual_serial_line/chserial TXA0 port=5500 host="B"

On host "B":

load virtual_serial_line/chserial TXA0 port=5500 host="A"

On these two hosts, executing CHARON-VAX, the two TXA0 lines connect to each other, thus creating a "serial" cable between the two emulated VAXes. The sequential order in which the instances of CHARON-VAX / CHARON-PDP are started makes no difference.

Linking serial controller port to host connection

The final step in the CHARON-VAX / CHARON-PDP serial line configuration is the association of each loaded serial port with a CHARON-VAX / CHARON-PDP host connection instance as follows:

set <serial controller instance name> line[<line number>]=<serial line instance name>

Example:

set quart line[0]=TTA0

This command connects the first serial line ("line[0]") of a "QUART" serial line controller to a CHARON-VAX / CHARON-PDP connection instance named "TTA0". As explained earlier, TTA0 may be a virtual serial line connected to a port or a physical serial line connected to a host serial port or a virtual terminal. 

In the example below, the command connects the sixth serial line of a previously loaded controller (named "TXA") to "TTA1". "TTA1" could be defined, for example, as a physical serial line connected to COM/COM port:

set TXA line[5]=TTA1

OPA0 console configuration examples

Using legacy syntax (not recommended)

This example, using a MicroVAX 4000-106, maps OPA0 to port 10003, enable F6 key (emulator stop) and logs the console input/output to a rotating log file in its home directory:

load virtual_serial_line OPA0

set OPA0 port=10003

set quart line[3]=OPA0

set OPA0 stop_on="F6"

set OPA0 log=".\."

Using new syntax (recommended)

This example, using a MicroVAX 4000-106, maps OPA0 to port 10003, enable F6 key (emulator stop), logs the console input/output to a rotating log file in its home directory and enables the connection_override feature:

set QUART alias[3]=OPA0  (optional starting with build 204-13)

set OPA0 port=10003

set OPA0 stop_on="F6"

set OPA0 log=".\."

set OPA0 connection_override=enable



© Stromasys, 1999-2024  - All the information is provided on the best effort basis, and might be changed anytime without notice. Information provided does not mean Stromasys commitment to any features described.