SCS PXHostTerminal 1.00.11
==========================

PX HostTerminal is an easy-entry test and chat program for SCS modems. It is
not intended as software for normal routine operation.

Unlike PX Terminal, this program uses the extended CRC Hostmode (`JHOST5`). It
supports a Windows COM port and the modem's Telnet port, normally port 3000.
The logical Hostmode channel used for PACTOR defaults to 4 and can be changed
before connecting. Channel 4 does not mean PACTOR-4.
STATUS 2 and PTCC 0 are configured before JHOST5 is entered. The session-only
%M 1 extension is then enabled inside Hostmode. PX HostTerminal does not use
any # commands for setup.

Receive data, confirmed transmitted data (delayed echo), and transmit input are
shown in separate panes. The dedicated Modem command field sends Hostmode
commands with Enter or Execute, whether or not an ARQ link is active. Escape
moves the keyboard focus to that field. The Transmit pane sends information
data during an ARQ link or an active P1/P2 FEC broadcast. The FEC selector
offers P1, P2_S, and P2_L. BROADCAST starts PACTOR Unproto and changes to FEC
END until the transmission is stopped. The Disconnect ARQ button also becomes
FEC END during such a transmission. Text-file transmission is available in
ARQ and P1/P2 FEC; binary-file transfer remains ARQ-only. Receive text can be
selected and copied with Ctrl+C or the right-click menu. When
the local station is ISS, the Changeover / Break-in
button first sends "IRSCALL de ISSCALL>" with the current callsigns and then
sends the Hostmode %O command. Ctrl-Y sends only %O. While IRS, either control
requests a break-in without sending the callsign line. Only the Disconnect ARQ
button sends the Hostmode D command.

PACTOR ARQ CALL accepts any valid callsign entered by the user, and CONNECT
sends it as C %CALL. PX HostTerminal does not read calls.txt or mhlist.txt and
does not create or update an MH list. Those list functions are exclusive to
RKTerminal.

Optional startup.txt and shutdown.txt files beside the executable can contain
one ASCII modem command per non-empty line. Commands before the first section
and below [Term] are Terminal-mode commands; [Host] selects CRC Hostmode
commands. At startup, Terminal commands run before JHOST5 and Host commands run
after Hostmode has started. At shutdown, Host commands run first, followed by
JHOST0 and the Terminal commands, before the port is closed. Missing files are
ignored. Successfully executed startup commands are echoed in the Receive pane
with their Term or Host section. Before every Terminal command, the program
sends ESC and, if needed,
Q plus CR to return from a submenu to cmd:. The command itself is preceded by
ESC.

Templates are included: startup.txt contains "adec all 1" to receive
PACTOR-1 Unproto broadcasts. To receive PACTOR-2 Unproto broadcasts too,
remove the leading # from both "#PMON MODE 3" and "#PMON ON". The # initially
comments out those commands on the modem. shutdown.txt contains "PMON OFF"
to stop PMON when the program exits.

A Terminal-mode MY or MYCALL command in startup.txt is synchronized to the
selected PACTOR Hostmode channel as an I command after JHOST5.

PX HostTerminal accepts an optional [Modem] section in startup.txt:

  [Modem]
  comport = COM7
  telnet = pxdragon-lan
  autostart = ON

The telnet value may be an IP address or host name and uses the Telnet port
shown in the application (3000 by default). With autostart enabled, an
available configured COM port has priority. If that COM port is unavailable
or cannot be opened, PX HostTerminal selects and tries the configured Telnet
endpoint instead. A transport or COM port selected manually in the application
remains selected when the port is opened. Autostart is OFF by default. Quotes
and key capitalization are optional.

Ending an ARQ or P1/P2 FEC transmit path immediately ends an active text-file
transfer and discards all file data not yet submitted to the modem.

Send binary file transfers an arbitrary file between two PX HostTerminal
instances. The complete file is compressed as one DEFLATE stream before that
stream is divided into Hostmode records. If this would not reduce the total
size, the complete file is sent unchanged. COBS framing with 0x00 delimiters
preserves every possible byte. The complete file name is transferred, received
files are stored in the tmp directory beside PXHostTerminal.exe, and existing
files are not overwritten. The transfer is reported as successful only after
the receiver verifies and returns the original file size and CRC-32. The
binary-transfer button changes to an abort command while sending. Interrupted
.part files are removed, and binary payload is not rendered in the Receive or
delayed-echo panes. After the result is acknowledged, the receiver returns the
transmit direction to the original sender automatically.

The regular status and receive poll cycle runs at most twice per second and
uses the extended Hostmode channel to avoid empty channel polls. Transmit flow
control is governed by the `c` field returned by the Hostmode L command. While
transmit data is waiting and c is below 8, one data frame of at most 256 bytes
is submitted. The application then services any due receive and delayed-echo
poll and checks L again after 100 ms. This continues until c reaches 8; the next
check then follows after 500 ms. The application does not need to know the
modem's virtual packet length.

The executable is self-contained and requires no additional runtime package.
Applicable third-party notices and license texts are included in the archive.
