Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>Mainframe File Viewer: EBCDIC + COBOL Copybook (COMP-3)New to Visual Studio Code? Get it now.
Mainframe File Viewer: EBCDIC + COBOL Copybook (COMP-3)

Mainframe File Viewer: EBCDIC + COBOL Copybook (COMP-3)

novair

| (0) | Free
Read EBCDIC files with their COBOL copybook in VS Code: COMP-3 decoded next to the hex, no mainframe connection, nothing uploaded.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Mainframe File Viewer: EBCDIC + COBOL Copybook (COMP-3)

Read EBCDIC files with their COBOL copybook in VS Code: COMP-3 decoded next to the hex, no mainframe connection, nothing uploaded.

Get Mainframe File Viewer Pro — EUR 74.17 + VAT where applicable · one-time purchase · refund within 14 days

You received an extract from the mainframe (a binary EBCDIC file) and its copybook. Open the file in VS Code, pick the copybook, and read every record field by field: packed decimals, zoned numbers with their sign, binary, REDEFINES, OCCURS. Every value sits next to its bytes in hex, so you can check what was decoded. Everything happens on your machine.

For COBOL developers, testers and migration teams who receive binary extracts from z/OS (FB or VB, from an unload or a REPRO) and need to check a packed amount, find the record that breaks a load, or compare the source and the target of a migration, without a mainframe connection, without installing Java and without uploading the file.

An EBCDIC file read with its COBOL copybook in VS Code: one row per record, one column per field; the selected record is detailed field by field, with PIC, position, length, hex and decoded value (COMP-3 balance -31245.12 next to 00003124512D)

First screen: the copybook found next to the file, code page 037, FB format with 80-byte records detected, and a preview of the first records

Pro: the source and the target of a migration compared by key (ACCT-ID), each difference with its record number, both values and their hex; a click on a difference opens its record

The screenshots use fictitious demo data.

Free

  • Open EBCDIC files with their COBOL copybook: one row per record, one column per field, the hex always next to the value
  • COMP-3, zoned, binary (COMP, COMP-4, big-endian COMP-5), COMP-1, COMP-2, NATIONAL and text decoded; leading zeros of codes and dates kept
  • Fixed-length records (F, FB): every field decoded
  • Variable records (V, VB, RDW, BDW): each record listed with its length, text and hex; cutting them into fields is Pro
  • REDEFINES: every view decoded on the same bytes (in the record detail, or as extra grid columns with a setting); OCCURS with a fixed count, level-88 names, nested COPY, copybook offsets and lengths; OCCURS DEPENDING ON: the fields before the table are decoded; the table and the fields after it are Pro
  • Files with several record types (several 01 levels): one layout of your choice for the whole file; reading each record with its own layout is Pro
  • 15 EBCDIC code pages (037, 1047, 273, 297, 500, 1140 to 1149), plus ISO-8859-1 and Windows-1252
  • Invalid values counted and found one by one; text and hex search; large files read in pages, never loaded whole
  • A warning when a file was transferred in text mode instead of binary
  • Compare two files by position (EBCDIC, ASCII or CSV): records compared, identical and different, and the number of differences in every field. Counts only: record numbers and values are Pro
  • Count the records that match a filter, or how many records of each type a file has (by the value of a field such as REC-TYPE)
  • 100% local, read-only, no mainframe connection

Pro

  • Several record layouts in one file: each record read with the layout chosen by a field value (for example REC-TYPE)
  • Variable records (VB) and OCCURS DEPENDING ON cut into fields
  • Comparison details: each difference with its record number, both values and their hex, records matched by a key of 1 to 3 fields (repeated keys matched in file order), numeric tolerance, ignored fields, the differences exported to CSV
  • Export to CSV and JSON (whole file, filtered records or selection), decimals and leading zeros kept
  • Filter: the grid shows only the matching records, ready to export

Getting started

  1. Files ending in .ebc or .ebcdic open in the viewer. For any other file: right-click it, Open With…, then Mainframe File Viewer, or run Mainframe: Open with Mainframe File Viewer from the Command Palette.
  2. The first screen proposes the copybooks found next to the file (.cpy by default, setting mainframeFileViewer.copybookExtensions), the code page and the record format it detected, with a preview of the first records. Check the preview, then open.
  3. From a copybook, Mainframe: Open a data file with this copybook does the same the other way round.
  4. Mainframe: Save reading settings next to the file writes <file>.mfv.json (copybook path relative to the file): the next person who opens the file, in any workspace, skips the first screen.

Other commands, all under Mainframe: in the Command Palette: Show copybook offsets and lengths · Change how this file is read · Change code page · Choose the record layout · Go to record… (Ctrl+G) · Go to next invalid value (F8) · Go to previous invalid value (Shift+F8) · Find text or hex (Ctrl+F) · Show or hide the hex dump · Copy record (tab-separated) · Compare with another file… · Choose the layout by field value (Pro) · Filter records by field value (Pro) · Export to CSV (Pro) · Export to JSON (Pro) · Get Mainframe File Viewer Pro · Enter my Pro licence key · Licence.

The interface follows the VS Code display language: English or French.

Settings

Setting What it does
mainframeFileViewer.defaultCodePage Code page used the first time a file is opened.
mainframeFileViewer.copybookExtensions File extensions offered as copybooks next to a data file.
mainframeFileViewer.copybookSearchPaths Extra folders searched for copybooks and COPY statements (absolute, or relative to the workspace).
mainframeFileViewer.copybookFormat Copybook source format: fixed (columns 7 to 72) or free.
mainframeFileViewer.leadingZeros Leading zeros of numbers, in the grid and in exports. Auto: kept for unsigned integers (codes, identifiers, dates such as 00001234 or 07), removed for signed numbers and decimals. Keep: always kept. Strip: always removed. The hex always shows the bytes.
mainframeFileViewer.redefines REDEFINES: give the first view only, or every view, as grid columns and in exports (the record detail always lists every view).
mainframeFileViewer.showFiller Show FILLER fields as grid columns and in exports (they are always listed in the record detail).
mainframeFileViewer.statusBar Show records, code page and invalid values in the status bar.
mainframeFileViewer.export.csvDelimiter CSV delimiter. Auto: semicolon when VS Code is in French, comma otherwise.
mainframeFileViewer.export.decimalSeparator Decimal separator in CSV exports. Auto: comma when VS Code is in French, point otherwise.
mainframeFileViewer.export.numbersAsStrings Write JSON numbers as strings so that no digit or decimal is lost (recommended for amounts). Numbers that keep leading zeros are always strings.
mainframeFileViewer.compare.numericTolerance Pro: numeric differences up to this value are not counted as differences.
mainframeFileViewer.compare.ignoreFields Pro: fields never compared (for example a timestamp written by the migration).

What is decoded

Reference: IBM Enterprise COBOL for z/OS. Every decoded value is shown with its bytes in hex, so you can check it.

Limits

Not covered in this version: raw VSAM clusters (flat unloads, such as a REPRO to a sequential file, are read); Micro Focus and GnuCOBOL file headers, little-endian COMP-5 and COMP-X; RECFM U; DBCS (PIC G); PL/I and assembler (DSECT) layouts; files on remote or virtual file systems (copy them to a folder on this computer); repairing a file transferred in text mode (it is detected, not repaired); editing files; connecting to the mainframe. SYNCHRONIZED alignment is not applied: a warning says that the following fields may be shifted, and the hex lets you check. Level 66 RENAMES is ignored, with a warning. A layout of more than 20 000 fields once its OCCURS are expanded, a record of more than 16 MiB, or a PICTURE of more than 100 000 characters is refused with a message (never shortened); COPY statements nested more than 10 levels deep are not included, with a message. In a comparison, a CSV row longer than 1 MiB stops the comparison with its row number and byte. On screen, the grid cuts a value after 256 characters (“…”; fewer for a layout of more than 2 048 columns), the detail does so once 524 288 characters of values of a record are shown and lists at most the first 2 000 fields of a record (fewer when their values are long, with a note), and the text and hex dump of a record stop after 64 KiB; “Copy record (tab-separated)” copies whole values.

Privacy

Your files and copybooks never leave this machine: the only network call is the licence check. Activation needs one connection to api.gumroad.com (through your VS Code proxy settings); after that, Pro works offline.

No telemetry, no usage tracking. The data file and the copybook are opened read-only; the extension writes a file only when you ask for it (export, list of differences, .mfv.json), where you choose. If your network blocks api.gumroad.com, ask for a refund within 14 days at support@novair.app.

Licence

One-time purchase, EUR 74.17 + VAT where applicable, refund within 14 days. After buying, Gumroad e-mails your licence key: run Mainframe: Enter my Pro licence key and paste it.

One key for one person, on up to 5 machines. A machine is counted the first time the key is activated in a VS Code installation: a new computer, VS Code reinstalled with its data erased, or a non-persistent virtual desktop whose identifier changes. Entering the key again, trying again after a network error, removing and re-entering it on the same installation, or updating the extension uses nothing. New computer or VS Code reinstalled? Write to support@novair.app with your purchase e-mail and we reset the count.

Need an invoice? Use the “Generate” link at the bottom of your Gumroad receipt: enter your name and business address, add what your accounts need under “Additional notes”, and download the PDF. An EU business that paid VAT can enter its VAT number there: Gumroad refunds the VAT and the invoice shows no VAT. Gumroad cannot change an invoice afterwards.

Updates come through your extension store (VS Code Marketplace or Open VSX); a later version never takes away what your key unlocks.

Support

support@novair.app · mainframe-file-viewer.novair.app

Get Mainframe File Viewer Pro — EUR 74.17 + VAT where applicable

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft