Item 9: IBM PL/1 compiler (Paragraph 20.4 of the Technical Particulars & Paragraph 27 of the POC)
Item 9: IBM PL/1 compiler (Paragraph 20.4 of the Technical Particulars & Paragraph 27 of the POC)
The allegation is that Winsopia carried out reverse engineering of interactions between the IBM PL/I compiler and its corresponding language environment over a number of years.
The defendants’ case is that Winsopia used the PL/I compiler listings to study the interface in customer applications to understand which Language Environment runtime services were being called by the applications and which runtime calls corresponded to the source code statements in the applications. These activities did not relate to an ICA Program; they related to a test program and fell within the observation, study and test right conferred by Article 5(3) of the Software Directive.
LzLabs had access to compiler listings for the PL/I programs but no line numbers for the source code of the program, making it difficult for them to link source code statements with corresponding object code and pseudo-assembly language.
On 15 March 2017, Mr McKeough of LzLabs created DR-2305, requesting Winsopia to provide line numbers in order to enable LzLabs to link statements in the source code of the PL/I programs with the pseudo-assembly language and machine code content of the compiler listings.
Winsopia supplied the contents of the compiler listings, including pseudo-assembly language representations of compiler generated machine code used to invoke IBM PL/I runtime services. Winsopia also provided a spreadsheet, linking source code statements to the pseudo-assembly language in the compiler listings relating to the PL/I compiler, invoking IBM runtime functions to implement a PL/I language construct or feature.
The experts’ second joint statement records:
LzLabs had PL/I source code and corresponding load modules of seven programs from a customer.
LzLabs did not have a complete PL/I compile listing of these programs.
At LzLabs’ request, Winsopia recompiled these programs and returned: (a) compiler listings of these programs, including pseudo-assembler code generated by the compiler; and (b) an excel spreadsheet showing some lines of assembler code generated by the PL/I compiler.
This information provided LzLabs with information they were unable to obtain from the incomplete listings provided by the customer; in particular, the z/OS language environment runtime modules called for certain PL/I source code statements.
The DR in question was only one of others requesting additional, similar information.
The disputed issues are:
whether Winsopia’s analysis of the PL/I compiler listings and Language Environment was in respect of an ICA Program within the meaning of the ICA;
whether Winsopia’s analysis amounted to reverse engineering in breach of clause 4.1.3(a) of the ICA;
whether Winsopia’s analysis fell within permitted observation, study and testing pursuant to Article 5(3) of the Software Directive;
whether Winsopia’s analysis was necessary in order to achieve interoperability of customer applications with the SDM and, as such, was permitted by Article 6 of the Software Directive;
whether Winsopia’s supply of the compiler listings to LzLabs constituted breach of clauses 4.1, 4.1.2(b) and/or 4.1.3(b) of the ICA.
IBM’s case is that the PL/I compiler is part of Enterprise PL/I for z/OS v4 and the IBM Language Environment runtime is part of z/OS. As such, they both fall within the definition of an ICA Program.
The defendants submit that Winsopia’s study was limited to analysis of the customer application source code and compiler listings that were generated for each customer application. This did not involve any analysis of any Language Environment runtime module and therefore did not concern an ICA Program.
I reject the defendants’ submission. Winsopia’s analysis was not limited to a study of the customer application; it was to ascertain the means by which the IBM PL/I runtime and compiler implemented PL/I language features used in the source code of the customer programs at runtime. As such, it concerned an ICA Program.
The defendants’ case is that Winsopia’s actions amounted to permitted observation, study and testing of the interfaces of the compiled customer application, to enable LzLabs to document the structure of the runtime function calls in the assembler code of the customer application, so that the SDM could redirect them to the appropriate open-source functions.
I reject that submission. Winsopia’s production of the compiler listings disclosed the pseudo-assembly language representing the object code generated by the IBM PL/I compiler to invoke PL/I runtime routines. This enabled Winsopia to follow each instruction in sequence to gain an understanding as to the compiler-generated code inserted into a PL/I load module by the IBM PL/I compiler to implement language features used in the PL/I source code of the application. That concerned expression of the program, rather than its functioning.
For the reasons set out above in respect of the compiler listings allegations, production of the compiler listings was not indispensable to obtain information necessary to achieve interoperability so as to engage the Article 6 exception.
Winsopia transferred to LzLabs pseudo-assembler code generated by the IBM PL/I compiler, together with an excel spreadsheet showing lines of assembler code generated by the PL/I compiler. This amounted to a transfer of an ICA Program in breach of clause 4.1.3(b) of the ICA.
As Mr Jaeger explained in his first witness statement, LzLabs requested, and Winsopia supplied, the information required in respect of the PL/I compiler listings for development of the SDM by LzLabs. This was in breach of clauses 4.1 and 4.1.2(b) of the ICA.
In summary, on this issue:
Winsopia’s analysis of the PL/I compiler listings and Language Environment was in respect of an ICA Program within the meaning of the ICA.
Winsopia’s analysis amounted to reverse engineering in breach of clause 4.1.3(a) of the ICA.
Winsopia’s analysis did not fall within permitted observation, study and testing pursuant to Article 5(3) of the Software Directive.
Winsopia’s analysis was not permitted by Article 6 of the Software Directive.
Winsopia’s supply of the compiler listings to LzLabs constituted breach of clauses 4.1, 4.1.2(b) and/or 4.1.3(b) of the ICA.
- Heading
- Mrs Justice O’Farrell
- Section II - Background to the dispute
- The SDM
- Hercules
- Neon litigation
- Formation of LzLabs and Winsopia
- The ICA
- SDM development and the clean room procedures
- Launch of the SDM
- Project Eiger
- Further development of the SDM
- Audit request and termination
- Section III - The proceedings
- The Issues
- The factual witnesses
- Section IV - Construction of the ICA
- Approach to construction of the ICA
- Scope of licence
- The ICA Programs
- Customer applications
- Licensed Program Specifications
- Independent software vendors (ISVs)
- Debugging tools
- Restrictions on use of ICA Programs
- Legislative framework
- Berne Convention
- TRIPS
- WIPO
- Software Directive
- Copyright, Designs and Patents Act 1988 (CDPA)
- Applicable legal principles
- Conclusions on ICA
- Section V - Alleged breaches of the ICA
- Disassembly, decompilation and translation
- Item 2: Load Module Decompiler (“the LMD”) (Paragraph 11.2 of the Technical Particulars)
- Item 3: CICS Control Blocks Document (Paragraph 11.3 of the Technical Particulars)
- Item 4: EXEC DLI (Paragraphs 27.18 & 28.19 of RRRAPOC)
- Item 5: IBM Binder Software (Paragraph 11.4 of the Technical Particulars)
- Compiler listings – summary of the dispute
- Item 6: IGZCIVL COBOL runtime module (Paragraph 11.6 of the Technical Particulars)
- Item 7: CICS Translators (Paragraph 20.1-2 of the Technical Particulars)
- Item 8: Floating point rounding rules (Paragraph 20.3 of the Technical Particulars)
- Item 9: IBM PL/1 compiler (Paragraph 20.4 of the Technical Particulars & Paragraph 27 of the POC)
- Item 10: XML Parse statements (Paragraphs 33-38 of the Technical Particulars)
- Item 11: COBOL initialisation, branching and I/O declaratives (Paragraphs 27.4&27.5 RRRAPOC)
- Item 12: PL/I Condition handling (Paragraphs 27.10-27.12 of RRRAPOC)
- Reverse engineering through the systematic use of traces, dumps, slip traps, packet sniffing and other debugging tools techniques – summary of the dispute
- Item 13: CICS-to-CICS communications (Paragraph 28.1 of the Technical Particulars)
- Item 14: AMBLIST analysis of CICS Stubs (Paragraph 28.2 of the Technical Particulars)
- Item 15: Colesoft z/XDC and COBOL initialisation (Paragraph 28.3 of the Technical Particulars)
- Item 16: XDC and IMS (Paragraph 28.4 of the Technical Particulars)
- Additional examples
- Item 17: SLIP Traps and CICS (Paragraph 28.5 of the Technical Particulars)
- Item 18: SLIP Traps and COBOL (Paragraph 28.6 of the Technical Particulars)
- Macros and Copybooks - introduction
- Macros (Paragraphs 32.1-32.9 of the Technical Particulars) – summary of the dispute
- Item 19: DR-3246 (Paragraph 32.1 of the Technical Particulars)
- Item 20: DR-10237 (Paragraph 32.2 of the Technical Particulars)
- Item 21: DR-2753 (Paragraph 32.3 of the Technical Particulars)
- Item 22: DR-2771 (Paragraph 32.4 of the Technical Particulars)
- Item 23: DR-2796 (Paragraph 32.5 of the Technical Particulars)
- Item 24: DR-3280 (Paragraph 32.6 of the Technical Particulars)
- Item 25: DR-4281 (Paragraph 32.7 of the Technical Particulars)
- Item 26: DR-4322 (Paragraph 32.8 of the Technical Particulars)
- Item 27: DR-0847 (Paragraph 32.9 of the Technical Particulars)
- Macros - discussion
- Copybooks (Paragraphs 2.1.1.3 and 32.10-32.12 of the Technical Particulars) – nature of the dispute
- Item 28: DR-715 (Paragraph 32.10 of the Technical Particulars)
- Item 29: DR-753 (Paragraph 32.11 of the Technical Particulars)
- Item 30: DR-756 (Paragraph 2.1.1.3 of the Technical Particulars)
- Copybooks - discussion
- Transferring “unscrubbed” materials
- Item 31:Epiphany
- Item 32: Db2 Catalog table metadata
- Item 33: DSS dump
- Item 34: Kednos
- Item 35: CSECTs deliberately omitted from scrubbing
- Items 36 and 42: Unscrubbed CSECTs
- Items 37 and 40: IMS PROCLIB & DLIBATCH
- Item 38: DFHEI1 module
- Item 39: IGZXANE
- Item 41: IGZXNE3N
- Item 43: CEEBETBL, CEEBLLST, IBMPINPL & CEESG*
- Item 44: DR-4617
- Item 45: DR-171
- Item 46: Scrubbing failures
- Item 47: @@TRGLOC CSECT
- Item 48: PARMLIB & PROCLIB
- Use outside Enterprise and beyond Designated Machine
- Item 49: Brad Taylor (Paragraph 44.2 of the Technical Particulars)
- Item 50: Winsopia Pizzabox (Paragraph 44.5 of the Technical Particulars)
- Item 51: Justin Bendich (Paragraph 44.6 of the Technical Particulars)
- Conclusions on technical breaches
- Section VI - Wrongful procurement of breach
- Applicable legal principles
- LzLabs
- LzLabs UK
- Claims against the directors
- Mr Moores
- Summary on unlawful procurement
- Section VII - Unlawful means conspiracy
- Applicable legal principles
- Knowledge of unlawfulness
- Summary on unlawful means conspiracy
- Section VIII – Audit and Termination
- Validity of audit request
- Validity of termination
- Section IX - Limitation
- Contractual limitation
- Statutory Limitation
- Deliberate concealment
- Finding - section 32(1)(b)
- Finding - Section 32(2)
- Actual or constructive knowledge – legal principles
- Date of knowledge issues
- ICA 2013
- Mr Knight - 2017
- Mr Anzani - 2018
- Conclusions
![HT-2021-000363 - [2025] EWHC 532 (TCC)](https://backend.juristeca.com/files/emisores/logo_yJUntHA.png)