Source Recovery of COBOL or Assembler source code from IBM MVS or VSE executable programs
Source Recovery of COBOL or Assembler source code from IBM MVS or VSE executable programs

Frequently Asked Questions

Q. How to Send a Program?

To Send Your Programs:
The Source Recovery Company recovers compilable COBOL and ASSEMBLER source code from machine-readable executable object modules.

Use the contact form to obtain instructions for obtaining free estimates for programs.

Also, please include your full company name, address, phone and fax numbers in your email so we will have the proper information to complete our proposal.

In order to estimate accurately, we need a particular type of file.
Please send us:

1. An image of the mainframe object code-that is, the executable load module . . 2. . . .in EBCDIC . . .
3. . . .with no carriage-return/linefeed.

Be aware that many download utilities automatically convert files from EBCDIC to ASCII so the data can be used on your PC. In addition, many download utilities automatically add the carriage-return/linefeed after each record received from the mainframe. The technology that SRC uses to estimate and recover your code works properly only when the file is EBCDIC with no carriage-return/linefeed.

Here are two common ways to download programs in the format we can use:

•  Microsoft Windows
If you use Microsoft Windows, your PC probably connects to the mainframe using a 3270 emulator program. These programs usually have menus to upload and download files from the mainframe. Select the "binary" option and make sure the check boxes or options settings for character translation and record formatting indicate EBCDIC (or no translation), and no carriage-return/linefeed.

•  IBM SEND and RECEIVE utilities
If you use the IBM SEND and RECEIVE utilities to copy files to and from the mainframe, these utilities have parameters that translate EBCDIC into ASCII and insert ASCII carriage-return/linefeeds. The following details the command which correctly copies an executable MVS load module from the mainframe to a PC for transmittal to ESTC. Type the upper case exactly as specified; replace the lower case with the specifics of your load module and site conventions:
RECEIVE c:\yourpcdir\lostprog.lod d:'your.mainframe.partitioned.dataset (lostprog)'

The single quotes are required. Replace "d:" with the TSO session number in your shop. The above command copies the MVS load module named "lostprog" from the MVS DASD partitioned data set named "your.mainframe.partitioned.dataset" down to the PC and stores the result in the PC directory named "yourpcdir" as the file named "lostprog.lod". By default, RECEIVE copies the file the way we want it-in EBCDIC, with no carriage-return/linefeed.

Q. Can you recover copybooks?

A. The caveat of recovering copybooks is that it may require multiple programs to be researched in order to accurately define every field. Any related source code that is available is requested along with any appropriate executable programs.

Q. How Does SRC Recover Missing Source Code?

A. Before the ReSource™ technology was developed, many programmers and analysts thought it was impossible to recover missing source code. Here's how SRC accomplishes the seemingly impossible:

Step 1. Disassembly.

When a program is compiled, source code is translated into a binary representation. During disassembly, this binary object file is converted into psuedo Assembler statements so that ReSource™ can work directly with the machine instructions and their operands.

Step 2. Pattern Matching.

Next, the disassembled machine instructions are matched against known sets of instructions created from COBOL statements. ReSource's automated analyzer compares the disassembled machine instructions with code patterns from its extensive repository, which includes various dialects of COBOL. Since COBOL statements must consistently compile into a corresponding pattern of machine code, a specific set of machine code will always represent the same COBOL statement.

The resulting pattern-matched source code contains all of the appropriate COBOL statements and references to operands used in those statements.

Step 3. Operand Analysis.

Pattern matching is ideal for recovering COBOL procedure statements, but does not provide much information about other program elements.

Operands of the machine instructions are detected during disassembly and decompilation. An analysis of the operands recovers data items in file descriptions, working storage and linkage sections. These data items are recovered in a manner similar to procedure statements.

Step 4. Validation.
Once the new source has been created, that source is compiled using the same version of compiler and same compile options as the original executable module. The result of this compile is then compared to the disassembled version of the original executable. Discrepancies, if any, are resolved prior to returning the new source to the customer.

Step 5. Supporting Information.

External clues may assist in completing the source code reconstruction. Supporting information may include file layouts, source of copybooks and related programs along with JCL, documentation, and program and application specifications.

This step enables SRC analysts to attach meaningful data and paragraph names that are either the original names or are similar in style. This type of service is offered in addition to the basic recovery service.

The source code recovered by ReSource™ maintains the original logic of the program. SRC guarantees the code be functionally equivalent to the original executable source code.

SRC technical strategy is based on the assumption that all executable object code that customers deliver to SRC results from a clean compile. This means the original source code at the time it was compiled was syntactically valid. The executable object code contains everything required by the computer to execute the instructions contained in the original source code and nothing superfluous. The source code can be run on an IBM mainframe or equivalent using the IBM 360/370/390 instruction set.

The ReSource™ technology regenerates COBOL and Assembler source code for IBM MVS mainframe environment. It can handle a variety of COBOL dialects including: COBOL II, OS/VS COBOL, IBM ANS COBOL, and CA/OPTIMIZER (Capex) COBOL. In addition, ReSource™ can recover source code from BMS Maps, CICS, DLI, IMS, DB2, SQL and Report Writer.

For a more thorough explanation, see Solutions For Recovering Lost Source Code and other articles in our "News" section.

Back To Top

Q. What are the benefits of source code recovery?

A. ReSource/Recovery™ provides better results in less time and for less money than other options. Compared with other options, ReSource/Recovery™:

  • Saves time. Recovery takes a fraction of the time of other options.
  • Saves staff time. No programmers need to be pulled off existing projects to re-build the application.
  • Saves money. Recovery costs a fraction of the cost of rewriting code.
  • Reduces risk. 100% functionality is guaranteed.
  • Preserves investment in the application software.
  • Preserves the logic of the original source code.
  • Offers guaranteed functionality.

Back To Top

Q. How does recovery compare with other options?

A. Organizations that are missing source code have only three options:

  1. Scrapping or replacing the application.
  2. Rewriting the code.
  3. Recovering the code.

Scrapping or replacing the application.
Unless the application software needs to be replaced, scrapping an entire application because a few source programs are missing is a costly overreaction. If the application is replaced with an off-the-shelf system, extensive retrofitting is needed. If a replacement is created in-house, it will tie up programmers when they are needed to address other issues.

Rewriting code.
Rewriting code is also costly and time consuming. Code specification and design are especially complicated, because the new code must fit the missing modules exactly. Add the time needed for development, testing and integration, and you'll understand why the cost for rewriting COBOL ranges from $10 to $60 a line. With demand for programmers increasing, prices are escalating.

Example. An organization with 30 million lines of COBOL is missing 300,000 lines, or 1% of its source. The missing code represents 2,800 function points (FPs). If each FP takes 20 hours to recover at a cost of $894, rewriting the code will take 56,000 hours and cost $2,505,000. That's 28 years of work, or two years for 14 programmers.

Recovering code.
Source code recovery costs less than other options, takes less time, preserves the original logic of the program and offers many other benefits.

The Source Recovery Company can recover your missing code - and you don't have to worry about losing any functionality. With the ReSource proprietary technology and SRC's team of experienced recovery experts, the recovered program is guaranteed to perform exactly like the original.

The ReSource proprietary source recovery process, which uses pattern recognition algorithms to examine compiled object code, has been used commercially since 1991 to help some of the world's largest corporations and government agencies.

Back To Top

Q. Are there other uses for source code recovery?

A. There are many uses for the source code recovery process. SRC sees itself as being in the asset management business - a company's source code portfolio is among its most important assets, and those assets need to be protected. The source code recovery process can be used for any programming task using COBOL; Assembler; CICS, DB2 or IMS.

    Examples include:

  • Fixing audit violations
  • Migration or conversion of applications or systems
  • Currency conversions
  • Metric conversions
  • Zip code and area code conversions

Back To Top

Q.How can billions of lines of source code be missing?

A. There are many reasons why companies and agencies lose their source code.

Here are just a few:

  • A company merges with, or is acquired by, another company
  • A consultant is brought in on a special project;
  • An archival tape is discarded too early;
  • A backup is never saved;
  • A key employee leaves without documenting a program;
  • A project is reassigned and libraries are not completely transferred.
  • HDA Crash

Back To Top

Q. Can the source code recovery process be used for programs outside the IBM mainframe environment?

A. While we believe the ReSource™ technology can be used to recover source code in virtually any environment, we have chosen to invest our resources into recovering source code in the IBM mainframe environment, because it covers most business applications worldwide. Since every platform has its own instruction set which is the foundation for its operation, our ReSource™ technology is limited to supporting the IBM System 360/370/390 instruction set. See our links page for companies that provide similar services on other platforms.

Back To Top

Contact Us Pricing

© 1992-2011 Source Recovery Company, Inc. | Terms of Use | Zero SPAM Privacy Policy