Examples
Free Estimates
Frequently Asked Questions
About SRC
News
Contact Us
 



Phase I Recovery
$250 per program until July 1, 2004,
then the price reverts to $500 per program

The Phase I recovery is a fast, inexpensive way to produce a representative source file of the original source code without the expense of a Full recovery. The 100% functional guarantee of a Full recovery is NOT offered with a Phase I recovery. It is however, guaranteed that a minimum of 75% of the output generated by ReSource will be in the original source language (Cobol or Assembler) or there will be no charge for the Phase I recovery.

A Phase I recovery consists of inputting a load module into ReSource and executing the DeLinking, DisAssembling and DeCompiling phases for a single csect to create an output file (programid.cob or .asm depending on the original source language determined in the DeLink process). This output file MAY, in the case of a Cobol program, contain unrecovered assembler statements mixed in the Cobol source. This is the output that a recovery technician works with to produce a Full recovery.

A sample of the output produced by ReSource is listed below.

Notes:
1. Special notes recovered by ReSource are highlighted here in blue.
2. Formatting such as indenting that is done during a full recovery is not seen here.
3. Unrecovered code in this sample is highlighted here in green
.
4. All lines shown below are produced by ReSource, nothing has been added except the highlighting.


SAMPLE.COB

PROCESS ADV
PROCESS APOST
PROCESS AWO
PROCESS NOCMPR2
PROCESS DATA(31)
PROCESS NODECK
PROCESS NODUMP
PROCESS DYNAM
PROCESS FASTSRT

PROCESS LIB
PROCESS LIST
PROCESS MAP
PROCESS NONUMBER
PROCESS NUMPROC(MIG)
PROCESS OBJECT
PROCESS NOOFFSET
PROCESS OPTIMIZE
PROCESS OUTDD(SYSOUT)
PROCESS RENT
PROCESS NOSEQUENCE
PROCESS SIZE(MAX)
PROCESS SOURCE
PROCESS NOSSRANGE
PROCESS NOTERM
PROCESS NOTEST
PROCESS TRUNC(STD)
PROCESS NOVBREF
PROCESS NOWORD
PROCESS XREF
PROCESS ZWB

******************************************************************
** *
** RECOVERED BY RESOURCE VERSION 01.0910.09 *
** *
** SOURCE RECOVERY DATE: SEPTEMBER 12, 2003 *
** ORIGINAL COMPILE DATE: 06/01/00 *
** ORIGINAL COMPILE TIME: 10:02:50 *
** ORIGINAL LOAD MODULE: SAMPLE *
** ORIGINAL CSECT: SAMPLE *
** *
** ORIGINAL COMPILER: IBM COBOL 370 VERSION 1.2.2 *
** *
** ORIGINAL LINKAGE EDITOR: MVS 3.8 SP5 RELEASE 1.4 *
** ORIGINAL LINK EDIT DATE: 00153 *
** *
** NOTES: *
** *
** > THE FOLLOWING OPTIONS WERE IN EFFECT DURING THE ORIGINAL *
** COMPILE. THEY HAVE BEEN REPLACED FOR SRC VALIDATION *
** PURPOSES AND SHOULD BE RE-INSTATED BY THE CLIENT: *
** *
** PROCESS NOLIST *
** PROCESS OFFSET *
** *
** > THE COBOL II SIGNATURE INDICATES THAT DEFAULTS FOR THE *
** FOLLOWING COMPILE OPTIONS WERE NOT TAKEN. BECAUSE THE *
** SIGNATURE DOES NOT PROVIDE INFORMATION ON WHAT THE ACTUAL *
** OPTION VALUES WERE, SRC IS UNABLE TO PROVIDE THEM. *
** PRESUMABLY, THESE OPTIONS WERE SET AT THE TIME COBOL II *
** WAS INSTALLED AND THEREFORE ARE THE INSTALLATION SPECIFIC *
** DEFAULTS. *

** *
** PROCESS SIZE(NNNNN OR NNNK) *
** *
******************************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. SAMPLE.

ENVIRONMENT DIVISION.

CONFIGURATION SECTION.
SPECIAL-NAMES.
C01 IS TO-TOP-OF-PAGE.

INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT FILE-01
ASSIGN TO UT-S-SMPLDD01
ORGANIZATION IS SEQUENTIAL
ACCESS MODE IS SEQUENTIAL.
SELECT FILE-02
ASSIGN TO UT-S-SMPLDD01
ORGANIZATION IS SEQUENTIAL
ACCESS MODE IS SEQUENTIAL.
SELECT FILE-03
ASSIGN TO SMPLDD03
ORGANIZATION IS INDEXED
ACCESS MODE IS RANDOM
RECORD KEY IS FD03-0000-G9.
SELECT FILE-04
ASSIGN TO UT-S-SMPLDD04
ORGANIZATION IS SEQUENTIAL
ACCESS MODE IS SEQUENTIAL.

******************************************************************
** *
******************************************************************
DATA DIVISION.

******************************************************************
** *
******************************************************************
FILE SECTION.
FD FILE-01
RECORDING MODE IS F
LABEL RECORDS ARE STANDARD
RECORD CONTAINS 140 CHARACTERS.
01 FD01-0.
05 FD01-0000 PIC X(140).

FD FILE-02
RECORDING MODE IS F
LABEL RECORDS ARE STANDARD
RECORD CONTAINS 80 CHARACTERS.
01 FD02-0.
05 FD02-0000 PIC X(80).

FD FILE-03
RECORD CONTAINS 152 CHARACTERS.
01 FD03-0.
05 FD03-0000-G9.
10 FD03-0000 PIC XXXX.
10 FD03-0004-UZ-1 PIC 9.
10 FD03-0004 REDEFINES FD03-0004-UZ-1
PIC X.
10 FD03-0005-UZ-4 PIC 9999.
10 FD03-0005 REDEFINES FD03-0005-UZ-4
PIC XXXX.
05 FILLER PIC X(64).
05 FD03-0049 PIC XXXX.
05 FILLER PIC X(75).

FD FILE-04
RECORDING MODE IS F
LABEL RECORDS ARE STANDARD
RECORD CONTAINS 160 CHARACTERS.
01 FD04-0.
05 FD04-0000 PIC X(160).


******************************************************************
** *
******************************************************************
** WORKING-STORAGE IS 16376 BYTES (HEX 3FF8)
WORKING-STORAGE SECTION.

01 WS-0.
05 WS-0000-G140.
10 FILLER PIC X.
10 WS-0001 PIC XX.
10 FILLER PIC XXX.
10 WS-0006 PIC 9.
10 WS-0007 PIC X(08).
10 WS-000F PIC X(18).
10 WS-0021 PIC X(12).
10 FILLER PIC X(95).

01 WS-0090-G158.
05 WS-0090 PIC X(140).
05 WS-011C-G18.
10 FILLER PIC X.
10 WS-011D PIC 99.
10 FILLER PIC X.
10 WS-0120 PIC XXXX.
10 FILLER PIC X(10).

01 WS-0130-G8.
05 WS-0130 PIC XXXX.
05 FILLER PIC XXXX.

01 WS-0138-G12.
05 FILLER PIC X(05).
05 WS-013D PIC XXXX.
05 FILLER PIC XXX.

01 WS-0148-G18.
05 FILLER PIC X(13).
05 WS-0155-UZ-5 PIC 9(05).
05 WS-0155 REDEFINES WS-0155-UZ-5
PIC X(05).

01 WS-0160 PIC 9 VALUE ZERO.

01 ALIGN-0168.
* FOLLOWING DATA-NAME APPEARS IN AN OCCURS DEPENDING ON CLAUSE
05 WS-0168 PIC 9999 COMP VALUE ZEROS.
05 WS-016A PIC 9 VALUE ZERO.
05 WS-016B-G7.
10 WS-016B PIC X.
10 WS-016C PIC X(06).
05 FILLER PIC X(06).
05 WS-0178-TABLE OCCURS 200 TIMES
ASCENDING KEY WS-0178
INDEXED BY INDEX-01-014C.
* DECIMAL LENGTH FOR FOLLOWING DATA-NAME IS CERTAIN
10 WS-0178-G80.

15 WS-0178 PIC X(07).
15 FILLER PIC X(37).
15 WS-01A4 PIC XX.
15 FILLER PIC X(34).

******************************************************************
** *
******************************************************************
LINKAGE SECTION.

******************************************************************
** *
******************************************************************
******************************************************************
** *
******************************************************************
PROCEDURE DIVISION.

OPEN INPUT FILE-01.

* L R4,TGT-0158 58 40 9 158 000006FC

MOVE LIT-01F2 TO 034(3,R4).

*SRC* COBVEC IGZEVOP VSAM OPEN ROUTINE
* L R15,22C(,R3) 58 F0 3 22C 00000706
* LA R1,LIT-023E 41 10 A 23E 0000070A
* BALR R14,R15 05 EF 0000070E

OPEN OUTPUT FILE-04.

OPEN INPUT FILE-02.

SET INDEX-01-014C TO 1.

MOVE 0 TO WS-0168.

GO TO PGM007BE.

PGM00748.

READ FILE-02 INTO WS-0178-G80 (INDEX-01-014C)
AT END
MOVE 1 TO WS-016A
GO TO PGM007BE
END-READ.

SET INDEX-01-014C UP BY 1.

COMPUTE WS-0168 =
( WS-0168 + +1 ) / +10000.

PGM007BE.

IF WS-016A NOT = 1
GO TO PGM00748
ELSE
DISPLAY SPACE
DISPLAY '******* NUMBER OF ACCT TABLE LINES LOADED - - - >'
WS-0168
DISPLAY SPACE
CLOSE FILE-02.

PGM00804.

READ FILE-01 INTO WS-0000-G140
AT END
CLOSE FILE-01
CLOSE FILE-03
CLOSE FILE-04
* MVC TGT-F0F0,LIT-01C9 D2 0B D 0F0 A 1C9 0000088A
* LH R6,RETURN-CODE 48 60 7 000 00000894
* ST R6,TGT-F0FC 50 60 D 0FC 00000898
* LA R1,TGT-F0F0 41 10 D 0F0 0000089C
* L R15,224(,R3) 58 F0 3 224 000008A0
* BALR R14,R15 05 EF 000008A4

END-READ.

IF WS-0006 NOT = 2 OR
WS-0001 NOT = 'TA' AND
WS-0001 NOT = 'OA'
GO TO PGM00AA8
MOVE WS-000F TO WS-0148-G18.

IF WS-0155-UZ-5 < 50000 OR
WS-0155-UZ-5 > 61299
GO TO PGM00AA8.

MOVE WS-0000-G140 TO WS-0090.

MOVE ' ' TO WS-011C-G18.

MOVE WS-0007 TO WS-0130-G8.

MOVE WS-0130 TO FD03-0000.

IF WS-0001 = 'TA'
MOVE 1 TO FD03-0004-UZ-1
ELSE
MOVE 2 TO FD03-0004-UZ-1.

MOVE WS-0021 TO WS-0138-G12.

MOVE WS-013D TO FD03-0005-UZ-4.

IF FD03-0005-UZ-4 NOT < 8000 AND
FD03-0005-UZ-4 NOT > 8999 AND
FD03-0004 = '1'
MOVE '4' TO FD03-0004.

IF FD03-0005-UZ-4 NOT < 9500 AND
FD03-0005-UZ-4 NOT > 9899 AND
FD03-0004 = '1'
MOVE '3' TO FD03-0004.

READ FILE-03 INTO 0C9(R4).

*SRC* WARNING: ONLY PARTIAL RECOVERY OF COBOL II VSAM VERBS!
* L R4,TGT-0158 58 40 9 158 00000962


MOVE WS-013D TO WS-0120.

MOVE 1 TO WS-0160.

IF WS-0160 = 1
MOVE ZEROS TO WS-0160
ELSE
MOVE FD03-0049 TO WS-0120.

MOVE 'D' TO WS-016B.

MOVE WS-0155 TO WS-016C.

SET INDEX-01-014C TO 1.

SEARCH ALL WS-0178-TABLE
AT END
MOVE 14 TO WS-011D
GO TO PGM00A4E
END-SEARCH.

WHEN WS-0178 EQUAL WS-016B-G7.

MOVE WS-01A4 (INDEX-01-014C) TO WS-011D.

PGM00A4E.

IF WS-011D NOT = 0 OR
WS-011D = 0 OR
WS-011D > 16
MOVE 14 TO WS-011D.

MOVE WS-0090-G158 TO FD04-0000.

WRITE FD04-0.

PGM00AA8.

GO TO PGM00804.

******************************************************************
** END OF SOURCE FILE. *
******************************************************************




 

| Services | Examples | Free Estimates | About Src | News | FAQS | Links | |
| SRC Home || Contact Us |

Copyright © 2002 The Source Recovery Company of GA, Inc.
Web Site - GatewayVentures,Inc.