Skip to content

Add mapping for PF keys on 3278-2 with APL keyboard#4

Open
hanshuebner wants to merge 14 commits intolowobservable:masterfrom
hanshuebner:master
Open

Add mapping for PF keys on 3278-2 with APL keyboard#4
hanshuebner wants to merge 14 commits intolowobservable:masterfrom
hanshuebner:master

Conversation

@hanshuebner
Copy link
Copy Markdown

No description provided.

hanshuebner and others added 12 commits April 8, 2026 11:46
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
SSL sockets buffer decrypted data internally, but select() only monitors
the underlying OS file descriptor. When a TLS record spans multiple recv()
calls, the remaining data sits in SSL's internal buffer invisible to
select(), causing long delays until the next network event.

Check SSLSocket.pending() before falling back to select() so buffered
SSL data is processed immediately.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add ä/ö/ü/Ä/Ö/Ü mappings to CHAR_MAP using the GE/APL character
plane (0x50-0x54 lowercase, 0x70-0x74 uppercase).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Creates /dev/ttyCoax symlink based on USB serial number.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add --keyboard-language option (us/de) for 3278 keyboards. The DE
variant remaps the number row shifted keys, umlauts on ä/ö/ü keys,
ß, § and other German-specific key positions.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Display encryption status and hostname on the terminal status line
during TN3270 sessions. Add --no-hostname-status option to suppress
the hostname display. Pad OEC indicator to full status line width.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add --log-level command line option (debug/info/warning/error) to
control logging verbosity. Add debug log messages for alarm queuing
and delivery to help diagnose buzzer issues on physical terminals.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
hanshuebner and others added 2 commits April 11, 2026 13:19
A full-screen EAB write delivered in a single EAB_WRITE_ALTERNATE command
(~3832 interleaved bytes) exceeds what some CUT terminals can buffer. The
IBM 3192 silently truncates at its buffer limit, and the IRMA coax adapter
rejects the frame with a protocol error (no TT/AR response). Both result
in a partially-rendered screen and, because the non-display attribute byte
for the password field sits near the end of the write, a password field
that echoes. Real IBM 3278-2 terminals happen to accept the full write,
which is why the issue was not seen earlier.

Make prepare_jumbo_write split at 1024 bytes by default for all paths.
The 3299 multiplexer and legacy Arduino-Mega firmware paths already used
this limit successfully. COAX_JUMBO=ignore still disables splitting for
anyone who needs the old behavior.

Also stop silently leaving address_counter stale on a failed write in
BufferedDisplay._write_range - null it out so the next flush forces a
fresh LOAD_ADDRESS_COUNTER. The regen/EAB buffer and dirty set are
already preserved because _commit() does not run on exception, so the
next flush retries the range.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The IRMA emulator writes something directly to the left of column 17,
which collided with the security indicator. Shift it right by 3 columns.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant