Skip to content

CICS coverage: symbolic map layouts generated from BMS source #3490

Closed

Description

@squid-protocol

Problem

Programs COPY the symbolic map copybook that the BMS assembler generates at build time, such as CBSA's BNK1CDM or CardDemo's COPAU00. That copybook is often missing from the repo. Its fields (NAMEI / NAMEO / NAMEL / NAMEF / NAMEA) then never resolve. This accounts for most of CBSA's ~790 unresolved move targets, and lineage stops at the screen (#3452).

Proposal

Synthesise the symbolic map layout from the BMS source we already parse (screen_fields, #3347), the same way DFHMAPS does:

  • per DFHMDI: the <map>I record and the <map>O REDEFINES;
  • per named field: L (S9(4) COMP), F / A (a REDEFINES pair), I / O with the field's LENGTH;
  • the PICIN / PICOUT and OCCURS forms;
  • the DSATTS / MAPATTS extra attribute bytes (C / P / H / V / U).
    Use it only when no real copybook of that name exists, so a checked-in map still wins.

Acceptance (ground truth, as for every channel since #3210)

  • An independent draft reader in tests/tools/cobol_answer_key.py, which must not import the engine.
  • A new or extended answer-key section, drafted for every pinned corpus that has the construct.
  • A blind census, with every disagreement ruled against the source.
  • A scored field in tests/tools/ground_truth_ledger.py.
  • The channel follows gitgalaxy/core/how_to_add_a_fact_channel.md.

Part of #3489.

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions