Repository navigation
det + stub: BIF DEEDIT, INQUIRE / SET TERMINAL UCTRANST with DFHVALUE CVDAs (#4415 slice 1) - #4728
Merged
Merged
Conversation
…h DFHVALUE CVDAs (#4415 slice 1) BIF DEEDIT edits FIELD in place in the region's EBCDIC page as IBM describes (DetCics.deedit, GGCDEED); LENGERR for LENGTH below 1. INQUIRE / SET TERMINAL UCTRANST answer and change the terminal's CVDA (UCTRAN 450, NOUCTRAN 451, TRANIDONLY 452) from a stated fact (CicsTask.withUctranst, $GGCICS_UCTRANST), INVREQ RESP2 43 / TERMIDERR RESP2 1 and 23 as IBM lists them. The stub now substitutes DFHVALUE(name) with IBM's CVDA number. What IBM leaves open is refused by name (register X26). Part of #4415, Part of #4270. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MQNoe4wPJgr7dbUvs3DG6D
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MQNoe4wPJgr7dbUvs3DG6D
Contributor
| def test_the_csd_names_each_terminals_uctran(): | ||
| """#4415 (register X26): a TYPETERM's UCTRAN is the terminal's UCTRANST, YES / NO / TRANID as UCTRAN / NOUCTRAN / | ||
| TRANIDONLY; a terminal whose TYPETERM says nothing has none stated (INQUIRE TERMINAL UCTRANST is refused).""" | ||
| import cics_crucible as runner |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MQNoe4wPJgr7dbUvs3DG6D
squid-protocol
marked this pull request as ready for review
October 9, 2026 00:40
This was referenced Oct 9, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Part of #4415 (slice 1). Part of #4270.
What
The issue lists
DFHVALUE(...)in SET / INQUIRE / ASSIGN operands andEXEC CICS BIF DEEDIT. Measured on origin/main first:DFHVALUE(name)already translated in expressions (MOVE, comparisons; det/cvda.py is IBM's CVDA table), and every name the corpora use is in the table. What kept those programs from translating was the commands the CVDA is the operand or result of, and the stub (cobol-stub side), which did not substituteDFHVALUEat all.BIF DEEDIT FIELD(f) [LENGTH(n)], per IBM (CICS TS 6.x, EXEC CICS BIF DEEDIT): non-digits removed, the digits right-aligned and zero padded in the same field, in the region's EBCDIC page (DetCics.deedit,GGCDEED); a trailing minus or CR gives the rightmost byte the negative zone X'D'; a rightmost byte with zone A-F is returned unaltered (IBM's14-6704/B->00146704B); a 1-byte field is unaltered; LENGERR (RESP 22, no RESP2 listed) for LENGTH below 1.INQUIRE TERMINAL UCTRANST/SET TERMINAL UCTRANSTas the CVDAs UCTRAN 450 / NOUCTRAN 451 / TRANIDONLY 452:CicsTask.inquireUctranst/setUctranstandGGCINQT/GGCSETT. The terminal's value is a stated fact (withUctranst,$GGCICS_UCTRANST; the runner takes it from the case TYPETERM'sUCTRAN), never a default. INVREQ RESP2 43 (bad CVDA), TERMIDERR RESP2 1 (INQUIRE) / 23 (SET).DFHVALUE(name)becomes IBM's CVDA number; an unknown name is refused by name.UCTRAN(YES|NO|TRANID)maps to UCTRAN / NOUCTRAN / TRANIDONLY name for name. The crucible case depends on none of them except the last (listed in its README lower-confidence table).Proof
New cics-crucible case
condition-handling/hc-deedit-uctranst(companion PR below), 3 scenarios traced by hand from IBM's pages: cobol-stub 3/3, java-ported (det port, HCDEED 75/75 statements, 0 holes) 3/3.det_port.py checkvs origin/main: only DetCics.java changed in every port (the runtime copy), no translation moved;proof_sweep.py --det-only(Db2 cases included) re-run for it: "sweep: as expected" (mortgage-mpmt NOT PROVEN, a baseline entry).pr_gates --ratchets7/7,--fast5/5; CI green at the head. Unit tests for the translator, the CicsTask / DetCics runtime, the stub C, the harness, the spec entries.Census (before -> after, translation only, burned + census corpora, base b9d955c)
RETURN IMMEDIATE(5 of them),LINK SYNCONRETURN(5),COMPUTE FUNCTION NUMVALin a float expression (3),SET ... NULLpointers (2),RECEIVE MAP ... ASIS(1).Remaining from #4415 (slice 2)
FORMATTIME
YYDDD/DATE/MILLISECONDS,DELETEQ TS,DUMP,QUERY.Cross-repo
Companion: squid-protocol/cics-crucible#12 (the case); merge it first, then a crucible release + pin bump (not done here; the pin is untouched, so CI's cics-crucible job does not see the new case until then). The proofs above ran against the case branch with
--unpinned.🤖 Generated with Claude Code
https://claude.ai/code/session_01MQNoe4wPJgr7dbUvs3DG6D