diff --git a/README.md b/README.md index a3780e8..500afd9 100644 --- a/README.md +++ b/README.md @@ -34,20 +34,70 @@ adb install -r a3270.apk --- +## 📱 Compatibility & System Requirements + +- **Minimum Android Version**: Android 7.0 (Nougat) — **API Level 24** (`minSdk 24`) +- **Target Android Version**: Android 14 — **API Level 34** (`targetSdk 34`) +- **Compile SDK**: **API Level 34** (`compileSdk 34`) +- **Architecture**: Universal — pure Kotlin/Java running on ART, fully compatible with all CPU ABIs (`arm64-v8a`, `armeabi-v7a`, `x86`, `x86_64`) +- **Form Factors**: Adaptive UI scaling optimized for smartphones, foldables, tablets, and Chromebooks (Android runtime) +- **Input Devices**: Full touch-screen support, native virtual keyboards, and external physical/Bluetooth keyboards + +--- + ## ✨ Features -- **Modern Jetpack Compose UI**: Responsive, touch-optimized 3270 terminal screen rendering. -- **TN3270 & TN3270E Protocol Support**: RFC 2355 compliant state machine, negotiation, Device-Type query, and SSL/TLS encryption via `lib3270j`. -- **On-Screen Function Key Bar**: Quick-access touch bar for PF1–PF24, PA1–PA3, Enter, Clear, Reset, and Attn keys. -- **IND$FILE File Transfer**: Full mobile UI for **CUT** and **DFT (DDM)** high-speed structured field file transfers with ASCII/binary translation, CRLF handling, and recfm/lrecl formatting for TSO, VM/CMS, and CICS. -- **OIA Status Line**: Real-time Operator Information Area displaying connection state, keyboard lock, insert mode, cursor row/col, and LU name. -- **Host Profile Storage**: Save and manage multiple mainframe connection profiles with custom ports, models, and SSL/TLS options. -- **Background Session Persistence**: Android foreground service keeps your terminal session alive when multitasking. -- **Terminal Models**: - - Model 2 (24x80) - - Model 3 (32x80) - - Model 4 (43x80) - - Model 5 (27x132) +### 🖥️ Terminal Emulation & Protocol +- **RFC 2355 TN3270 & TN3270E Engine**: Robust state machine, Option Negotiation, Device-Type Query, and LU name specification powered by `lib3270j`. +- **Standard & Dynamic Terminal Models**: + - Model 2 (24 × 80) + - Model 3 (32 × 80) + - Model 4 (43 × 80) + - Model 5 (27 × 132) + - **Dynamic Screen Dimensions**: Configurable custom geometry (rows & columns up to 255 × 255). +- **EBCDIC Code Pages**: Full character translation across international code pages (037, 1047, 500, etc.). + +### 📊 Graphics & Peripherals +- **GDDM & GOCA Graphics**: Native rendering of Programmed Symbols (PS) and GOCA vector graphics directly in the Compose canvas. +- **Light Pen Simulation**: Interactive touch support to simulate light pen selection and graphic cursor pick correlation. +- **IBM 3287 Printer Emulation**: Integrated printer session support for spool/report capture (via associated display LU or dedicated printer LU) with direct printing through Android PrintManager (PDF export / system print). + +### 📁 IND$FILE File Transfer +- Full mobile UI supporting both **CUT** and **DFT (DDM)** high-speed structured field transfers. +- Compatible with **TSO**, **VM/CMS**, and **CICS** environments. +- ASCII/binary translation, CRLF conversions, and configurable record format (`recfm`), record length (`lrecl`), and allocation units. + +### 🔍 Developer & Productivity Tools +- **Field Inspector**: Live interactive inspector displaying start/end addresses, length, protection, numeric status, MDT (Modified Data Tag), display intensity, and extended highlighting/color, with one-tap "Jump to Field". +- **Screen Search / Find**: On-screen text search with case sensitivity, forward/backward navigation, and visual match highlighting. +- **Screen Exporter**: Export the current screen buffer to **Plain Text**, formatted **HTML**, or **PNG image**, with one-tap clipboard copy and Android system share sheet integration. +- **Script & Macro Automation**: Built-in script runner supporting automated keystroke and wait sequences (e.g. `[enter]`, `[wait]`, `[tab]`) for login macros and repetitive tasks. + +### ✍️ Entry Assist & Typing Modes +- **Document (DOC) Mode**: Configurable left/right margins, custom tab stops, and end-of-line bell warning. +- **Word Wrap**: Automatic word wrapping across lines during input. +- **APL Mode**: Support for APL extended character sets and symbols. +- **Field Handling**: Automatic field skip (Auto-Skip), Numeric field lock, and Insert Mode auto-reset on AID transmission. + +### 🎨 Display, Themes & Ergonomics +- **Jetpack Compose UI**: Smooth, hardware-accelerated 3270 terminal screen rendering with touch-to-position cursor. +- **Color Themes**: Light and Dark application themes, 3270 extended color support, and 4-color legacy override mode. +- **Cursor Customization**: Block and Underline cursor styles with toggleable blinking. +- **Crosshair Ruler**: Toggleable horizontal and vertical ruler lines following the cursor for easy data tracking. +- **Block Selection**: Rectangular text selection and copy mode. +- **OIA Status Line**: Real-time Operator Information Area displaying connection status, keyboard lock, insert mode, cursor row/col, LU name, and inhibit reason codes. + +### 🔒 Security, Networking & Storage +- **SSL / TLS Encryption**: Secure encrypted mainframe sessions with TLS certificate verification. +- **Interactive Untrusted Certificate Prompt**: Inspect SSL certificates, view full certificate chain details, and accept/reject unverified connections. +- **Proxy Support**: Connect via HTTP CONNECT, SOCKS4, SOCKS5, and Telnet proxies with optional user/password authentication. +- **Background Session Persistence**: Android foreground service (`specialUse`) keeps your terminal TCP connection alive with status notifications when multitasking or screen is off. +- **Host Profile Manager & INI Export**: Save multiple mainframe profiles, configure auto-connect on launch, and export/import configuration in INI format (interoperable with desktop `j3270`). + +### ⌨️ Input & Keyboards +- **On-Screen Function Key Bar**: Two-row responsive touch bar providing PF1–PF24, PA1–PA3, Enter, Clear, Reset, Attn, SysReq, Erase EOF, Erase Input, Tab, BackTab, and D-pad cursor controls with haptic feedback. +- **Termux-Style Native Input**: Low-latency native input connection with permanent number row and lock protection against soft-keyboard resets. +- **Hardware Keyboard Support**: Complete physical keyboard integration with F1–F12 (mapped to PF1–PF12 / PF13–PF24 with Shift/Alt), Ctrl shortcuts, dead keys, and international character input. --- @@ -56,6 +106,7 @@ adb install -r a3270.apk ### Prerequisites - **Java Development Kit (JDK)**: JDK 17 or JDK 21 - **Android SDK**: API 34 platforms and build-tools (`ANDROID_HOME` or `ANDROID_SDK_ROOT` set) +- **Minimum Target Device**: Android 7.0+ (API 24+) ### 1. Clone Repositories Side-by-Side For the easiest setup, clone both `j3270` and `a3270` into the same parent folder: