HT-2021-000363 - [2025] EWHC 532 (TCC)
Technology and Construction Court

HT-2021-000363 - [2025] EWHC 532 (TCC)

Fecha: 10-Mar-2025

Macros and Copybooks - introduction

Macros and Copybooks - introduction

606.

Multiple programs may write a record of the same format to a file or access a common data area. Rather than requiring each program to repeat the same instructions in full, short cut commands in programming languages, such as macros and copybooks, can be used to incorporate common source code into the program.

607.

A macro is a rule, pattern, or template that specifies how a certain input should be mapped to a replacement output. Macro language is an extension of assembler language. It provides a convenient way to generate the same sequence of assembly language statements many times in one or more programs. A macro instruction included in source code is automatically expanded into an assembly language program by the assembler. The macro comprises:

i)

the macro definition, a set of machine-readable statements that defines the name, format and conditions for generating a sequence of language statements;

ii)

the macro instruction for calling or invoking the macro, which provides the assembler with the name of the macro definition to process, and the information or values to pass to the macro definition; and

iii)

the macro expansion or generation, whereby the assembler replaces the macro call with the macro definition statements and inserts them into the source module at the point of the call.

608.

Macros can be used to generate executable code and also to create DSECTs, data structure templates used to define the layout of data held in memory.

609.

Publicly available IBM documentation provides some information about macros, including identification and use of the macros. Such published information does not include the macro assembly code contained within the macro definition that is produced on expansion by the assembler. The experts agree that the published information is not sufficient to enable LzLabs to create the relevant SDM equivalent source code.

610.

A copybook provides a similar role to a macro for COBOL programs. It contains source code which can define common data structures (or control blocks) used by a number of different application programs. A copybook is invoked by incorporating the relevant copy statement in the source code of a program. When the COBOL program is compiled, the compiler pre-processor copies the contents of the relevant copybook into the source code of the application before it is compiled.

611.

The experts agree that the copybooks are partially documented publicly but variables are not identified.

612.

It is common ground that the macros and copybooks were supplied by IBM to Winsopia, as licensee under the ICA, in source code form. The macros were provided as part of IMS v14, IMS v15, z/OS Base v2 or Db2 v10 for z/OS. The copybooks were provided as part of the CICS Transaction Server for z/OS v5. The experts agree that macros and copybooks are intended to be used by programmers to save time, simplify the coding process and reduce the chance of programming errors.