Trailing-Edge
-
PDP-10 Archives
-
integ_tools_tops20_v7_30-apr-86_dumper
-
tools/isacon/loadit.skl
There are 5 other files named loadit.skl in the archive. Click here to see a list.
IDENTIFICATION DIVISION.
*=======================
/START
Program-Id. {Modnm}.
Installation. Paper Free Systems, Inc.
320 Parnassus
San Francisco, CA 94117
Date-Written. {%Date}.
Date-Compiled.
*--------------
*Program Title:
*--------------
*
* System: ISACON DEC to VAX Conversion
* Module: {Modnm}.CBL -- Convert {Filnm} from SEQ to VMS indexed
* format
*
/END
*
*--------------------
*Standard Procedures:
*--------------------
*
* Program Skeleton: LOADIT.SKL Version 1.0 Dated 08-Nov-84
*
*-----------------------------
*Program Modification History:
*-----------------------------
* --Date-- Who What
*
*--------------------------------------------------------
* The following steps are necessary to get a clean compile:
*
* 1. Check the file description of the indexed file for REDEFINED
* COMP fields or redefinitions which contain COMP items. The
* alignments in the sequential file may need to be revised to
* ensure valid data.
*
*?? TO BE CONTINUED ??
/NOTE
**** Constraints or Requirements of this Skeleton ****
1. You may NOT use the relational operator "{" (less than)
within /START thru /END code generation sections. This
is due to our arbitrary selection of "{" as the left
delimiter for substitution variables.
2. In order for blank lines to be included in the generated
code, the "blank" line should actually consist of a single
space. This is only necessary if the skeleton file is
"un-line-numbered" (by EDIT's "EU" command).
3. If you wish to have REDEFINITIONS moved from the input to
the output file, you must comment out the code in the SKL
which prevents this. See the comments in the PROCEDURE
DIVISION which indicate the lines to be removed.
/END-NOTE
/PAGE
ENVIRONMENT DIVISION.
*====================
CONFIGURATION SECTION.
*---------------------
SOURCE-COMPUTER. DECSYSTEM-10.
OBJECT-COMPUTER. DECSYSTEM-10.
INPUT-OUTPUT SECTION.
*--------------------
FILE-CONTROL.
/START
SELECT A-{Modtl}
ASSIGN TO DSK
ORGANIZATION IS SEQUENTIAL.
SELECT {Modtl}
ASSIGN TO DSK
ORGANIZATION IS {Org}
ACCESS MODE IS {Acces}
RECORD KEY IS {Mkey} OF {Recnm}.
/END
/PAGE
DATA DIVISION.
*=============
FILE SECTION.
*------------
/START
FD A-{Modtl}
VALUE OF ID WSS-SEQ-FILE-ID
RECORDING MODE ASCII
BLOCK CONTAINS 0 RECORDS.
/EACH-FIELD
/IF {Fldno} = 01
01 A-{Field}.
/ELSE
/IF-NOT {Fdta2} = NONE
{Fdta2}
/ELSE
/IF-NOT {Fdata} = NONE
{Fdata}
/END-IF
/END-IF
/END-IF
/END-FIELD
/END
/PAGE
/START
FD {Modtl}
VALUE OF ID WSS-IDX-FILE-ID
BLOCK CONTAINS {Mblck} RECORDS.
/EACH-FIELD
/IF {Usige} = DISPLAY
/IF-NOT {Fdta2} = NONE
{Fdta2}
/ELSE
/IF-NOT {Fdata} = NONE
{Fdata}
/END-IF
/END-IF
/ELSE
/IF-NOT {Fdata} = NONE
{Fdata}
/END-IF
/END-IF
/END-FIELD
/END
/PAGE
WORKING-STORAGE SECTION.
*-----------------------
01 WSS-END-OF-FILE-FLAG PIC S9(01) COMP.
88 WSS-END-OF-FILE VALUE 1.
01 WSS-ERROR-FLAG PIC S9(01) COMP.
88 WSS-ERROR VALUE 1.
01 YES-NO-VALUES.
05 YES-VALUE PIC S9(01) COMP VALUE 1.
05 NO-VALUE PIC S9(01) COMP VALUE 0.
01 WSS-INDEXES.
05 IDX1 PIC 9(03).
05 IDX2 PIC 9(03).
05 IDX3 PIC 9(03).
/START
01 WSS-IDX-FILE-ID.
05 WSS-IDX-FILE-NAME PIC X(06) VALUE "{Filnm}".
05 WSS-IDX-FILE-EXT PIC X(03) VALUE "IDX".
01 WSS-SEQ-FILE-ID.
05 WSS-SEQ-FILE-NAME PIC X(06) VALUE "{Filnm}".
05 WSS-SEQ-FILE-EXT PIC X(03) VALUE "SEQ".
/END
/PAGE
PROCEDURE DIVISION.
0000-MAIN.
PERFORM 0001-INITIALIZE.
IF NOT WSS-END-OF-FILE
PERFORM 9995-READ-INPUT-FILE
PERFORM 0002-PROCESS-INPUT-FILE
UNTIL WSS-END-OF-FILE
OR WSS-ERROR.
PERFORM 0003-TERMINATE.
STOP RUN.
/START
0001-INITIALIZE.
OPEN INPUT A-{Modtl}
OUTPUT {Modtl}.
MOVE SPACES TO {Recnm}.
0002-PROCESS-INPUT-FILE.
PERFORM 0010-PROCESS-EACH-FIELD.
IF {Recnm} NOT = SPACES
PERFORM 9999-WRITE-OUTPUT-FILE.
PERFORM 9995-READ-INPUT-FILE.
0003-TERMINATE.
CLOSE A-{Modtl}
{Modtl}.
IF WSS-ERROR
DISPLAY '{Modnm} terminating in error.'
ELSE
DISPLAY '{Modnm} successfully completed.'.
0010-PROCESS-EACH-FIELD.
/EACH-FIELD
/NOTE
Comment out the following IF statement to force move of REDEF fields.
Be sure to comment out all other statements so indicated in the SKL.
/END-NOTE
/IF {Redef} = NONE
/IF-NOT {Fldno} = 00
/IF-NOT {Fldno} = 66
/IF-NOT {Fldno} = 88
/IF-NOT {Pict} = NONE
/IF {Olvl1} = NONE
/IF {Fldno} = 01
MOVE A-{Recnm} {%40}TO {Recnm}.
/ELSE
MOVE {Field} OF A-{Recnm} {%40}TO {Field} OF {Recnm}.
/END-IF
/ELSE
MOVE 0 TO IDX1.
PERFORM {Fldix}1-LEVEL-1-OCCURS
{Olvl1} TIMES.
/END-IF
/END-IF
/END-IF
/END-IF
/END-IF
/NOTE
Comment out the following END-IF statement to force move of REDEF fields.
Be sure to comment out all other statements so indicated in the SKL.
/END-NOTE
/END-IF
/END-FIELD
/EACH-FIELD
/NOTE
Comment out the following IF statement to force move of REDEF fields.
Be sure to comment out all other statements so indicated in the SKL.
/END-NOTE
/IF {Redef} = NONE
/IF-NOT {Olvl1} = NONE
{Fldix}1-LEVEL-1-OCCURS.
ADD 1 TO IDX1.
/IF {Olvl2} = NONE
MOVE {Field} OF A-{Recnm} (IDX1) {%50}TO {Field} OF {Recnm} (IDX1).
/ELSE
MOVE 0 TO IDX2.
PERFORM {Fldix}2-LEVEL-2-OCCURS
{Olvl2} TIMES.
{Fldix}2-LEVEL-2-OCCURS.
ADD 1 TO IDX2.
/IF {Olvl3} = NONE
MOVE {Field} OF A-{Recnm} (IDX1,IDX2) {%50}TO {Field} OF {Recnm} (IDX1,IDX2).
/ELSE
MOVE 0 TO IDX3.
PERFORM {Fldix}3-LEVEL-3-OCCURS
{Olvl3} TIMES.
{Fldix}3-LEVEL-3-OCCURS.
ADD 1 TO IDX3.
MOVE {Field} OF A-{Recnm} (IDX1,IDX2,IDX3) {%50}TO {Field} OF {Recnm} (IDX1,IDX2,IDX3).
/END-IF
/END-IF
/END-IF
/NOTE
Comment out the following END-IF statement to force move of REDEF fields.
Be sure to comment out all other statements so indicated in the SKL.
/END-NOTE
/END-IF
/END-FIELD
9995-READ-INPUT-FILE.
READ A-{Modtl}
AT END
MOVE YES-VALUE TO WSS-END-OF-FILE-FLAG.
9999-WRITE-OUTPUT-FILE.
WRITE {Recnm}
INVALID KEY
MOVE YES-VALUE TO WSS-ERROR-FLAG.
MOVE SPACES TO {Recnm}.
/END
_3Q#3;C3o3?C4esCsGc44IsKC4Mc4U5/5SC5o