SlimeGENBA-LUI — Hands-on demos
Product page: /products/language/ · Brief: /slimegenba-lui/
The 2-layer architecture
Every demo on this page supports the same keyboard semantics. Most useful:
| F12 | Toggle Layer 1 (LUI / 現場 Mode) ↔ Layer 2 (MUI / Modern Web) |
| F11 | Cycle vendor tint: IBM 3270 → Hitachi F-series → Fujitsu MSP → NEC ACOS-4 |
| F10 | Cycle map (in multi-map mapsets like ssmap) |
| F1 | Help overlay |
| TAB / Shift+TAB | Next / prev unprotected field |
| ENTER | Submit (EXEC CICS RECEIVE MAP equivalent) |
| Esc | PF3 = Exit (mainframe convention) |
| Mouse | Not required — intentional, preserves operator skill |
★ Hand-built React + Tailwind
The same BNK1ACC map rendered with React 18 + Tailwind CSS, with a bespoke Layer 2 design (account rows as modern cards, type-coloured balances). Shows hand-tuned modern UI possibilities.
⚙ Auto-emit React (every map)
bms_to_ui --target=react — the same parser emits React JSX instead of vanilla JS, no code changes needed per map. All 14 maps below have a .react.html sibling. Proves the auto-emit pipeline is renderer-agnostic over the same Field/Map/Mapset IR.
BNK1ACC.react ssmap.react CUSTMAP.react CUSTSCRN.react CUSTPNL.react
All 14 React emits: BNK1ACC · CAM · CCM · CDM · DAM · DCM · MAI · TFM · UAM · INQSET · ssmap · CUSTMAP · CUSTSCRN · CUSTPNL
Hand-built PoC
The canonical 2-layer demo built from cics-genapp/ssmap.bms. 4 vendor tints (F11), layer toggle (F12), keyboard-only. Match this against any auto-emit to compare quality.
cics-genapp (ssmap, 6 maps)
General Insurance customer + policy management. F10 cycles through SSMAPC1 / SSMAPP1-5.
CBSA: Accounts (BNK1ACC)
10 OCCURS rows (account stack). Demonstrates the auto OCCURS=10 expansion into ACCOUNT_1..ACCOUNT_10.
CBSA: Account ops (DAM/DCM/UAM)
Account amend / create / update with PIC editing on balance fields.
CLBS: PortfolioMgmt (INQSET, 4 maps)
Portfolio management screens from the CLBS adversarial benchmark.
Synthetic CUSTMAP (XMAP3)
Hand-port of SSMAPC1 to inferred XMAP3 syntax (MAP / FIELD / ENDMAP). Different macro vocabulary, same 2-layer rendering. Teal-green vendor tint.
Synthetic CUSTSCRN (MELT)
Third distinct macro vocabulary: SCREEN / LABEL / ITEM / ENDSCREEN with KIND=INPUT + TYPE=NUM + CURSOR=Y. Amber vendor tint.
Synthetic CUSTPNL (OLF)
Fourth distinct vocabulary: PANEL / TXT / FLD / ENDPANEL. ATTR=(NUM,CURSOR) auto-normalised to BMS IC. Magenta vendor tint.
What these demos prove
- 11 real CICS BMS maps auto-emit from IBM CBSA + cics-genapp + CLBS corpus. 279 fields, 78 unprotected inputs, OCCURS=10 expansion, PICIN/PICOUT live editing all rendered correctly.
- 4 distinct macro vocabularies (BMS DFHMDF / XMAP MAP / MELT SCREEN / OLF PANEL) parse into the same Field/Map/Mapset IR — demonstrates a vendor-agnostic Layer 2.
- Same keyboard semantics across all 14 demos: F12 layer toggle, F11 vendor cycle, TAB / ENTER / PF keys / Esc=PF3, no mouse. Operator skill 100% preserved across the 2-layer transition.
- The React demo proves stack-agnosticity: production deploy is vanilla HTML+JS (single file, no build, ~20KB each) but the same Field/Map IR can drive React / Vue / Svelte / native mobile. Modernization stays an option, not a forced migration.
- Self-contained pages. No backend, no service worker, no npm. Runs offline. Works on locked-down operator floors.
Roadmap
- Now: IBM BMS production-quality (corpus tested), 3 Japanese-vendor parsers scaffolded with inferred syntax.
- Q3 2026 - 2027: Re-verify scaffold parsers against NDA Hitachi / Fujitsu / NEC samples (via the JAVATEL open-core SI partnership).
- Phase G runtime: 4-vendor TP-monitor bridges (CICS, IMS, OpenTP1, AIM-OLF, ACOS-OLF). v0 echo dispatch is in the Rust runtime crate, locally testable.
Demo source corpus.
IBM CICS Banking Sample Application (CBSA) and cics-genapp are Apache 2.0 licensed.
CLBS is MIT-style licensed.
All BMS files are quoted for technical analysis only.
Auto-emit pipeline: bms_to_ui / xmap_to_ui / melt_to_ui / olf_to_ui Rust crates (no-external-lib, std-only).
