APPENDIX D
COPY BOOKS FOR COBOL PROGRAMS USING CARTA~
CARTCB07 CO~ftUNICATION BLOCK.
05 DDNA!E PIC X(8) VALOE 1GEOINDEX1 •
05 FUNCTION-CODE VALUE 10PEN1 • 10 FUNCTION-CODE-1 PIC X.
10 FUNCTION-CODE-2 PIC X.
10 FUNCTION-CODE-3 PIC X.
10 FONCTION-CODE-4 PIC X.
88 CONTINUE-WALK VALUE ' ' 88 DISCARD-SUBTREE VALUE 'T'.
88 KEEP-ALL-CHILDREN VALUE
'L'.
05 STATUS-CODE PIC XX.
88 GOOD-CARTAM-OPEN VALUE ' ' 88 SOCCESSPUL-CARTAM VALUE ' '
88 MORE-PATH VALUE ' '
88 END-OF-PARENT VALUE 'GE'.
05 MODE-INDICATOR PIC X.
05 USER-DATA-PAD-CHARACTER PIC X VALUE ' ' 05 MORT-INDICATOR REDEFINES OSER-DATA-PAD-CHARACTER
OS
-164- CARTFNCS CAB TU! FUNCTION CODES.
01 CARTA!!-FUNCTION-CODES.
03 CARTAM-OPEN PIC
xx xx
VALUE 'OPEN'.03 CART AM -LOAD PIC
xx xx
VALUE 9LOAD ' . 03 CARTA!!-ISRT PICxx xx
VALUE 9ISRT 1 •03 CARTAM-CHNG PIC
xx xx
VALUE 'CHNG•.03 CARTAM-DLET PIC
xx xx
VALUE 'DLET'.03 CARTAM-cLOSE PIC
xx xx
VALUE 1CLSE •.03 GR PIC
xx xx
VALUE 'GR•
03 GRL PIC
xx xx
VALUE 'GR L 1•03 GI! PIC
xx xx
VALUE 'GM•
03 Gl!P PIC
xx xx
VALUE 1GMP ' · 03 GNP PICxx xx
VALUE 'GNP ' . 03 GNPT PICxx xx
VALUE 1GNPT 1 •03 G?IPL PIC
xx xx
VALUE 1GNPL'.03 SUB-FUNCTIONS.
05 88-CONTINOE-WALK PIC X VALUE I
•
05 88-DISCARD-SUBTREE PIC X VALUE
'T' •
05 88-KEEP-ALL-CHILDREN PIC X VALUE
•t•.
05 FILLER PIC X VALUE
•
I03 GP PIC XXXX VALUE 'GP
•
03 GPP PIC XXXX VALUE 'GPP
•
03 GT PIC XXXX VALUE 'GT
•
03 GTP PIC XXXX VALUE 'GTP '
03 GC PIC XXXX VALUE 'GC t
03 GCP PIC XXXX VALUE 'GCP
•
03 GN PIC XXXX VALUE 'GN'
'
APPENDIX E
INDEX LOAD PROGRAM SOURCE
IDENTIFICATION DIVISION.
PROGRAM-ID. NTBNDLIX.
DATE-WRITTEN. NOY77.
DATE-COMPILED.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT NTB-FILE ASSIGN TO NTBVSA~
ORGANIZATION IS INDEXED ACCESS IS SEQUENTIAL RECORD KEY IS V-NTB-KEY PILE STATUS IS PILE-STATUS.
SELECT NDL-FILE ASSIGN TO NDLVSA~
ORGANIZATION IS INDEXED ACCESS IS SEQUENTIAL RECORD KEY IS V-ZBKEY
FILE STATUS IS PILE-STATUS.
-166- DATA DIVISION.
FILE SECTION.
FD HTB-FILE
LABEL RECORDS ARE STANDARD BLOCK CONTAINS 0 RECORDS
RECORD CONTAINS 276 TO 4596 CHARACTERS DATA RECORD IS VSAM-NTB-RECORD.
COPY VSAr!NTB.
66 V-IBLATLNG RENAMES V-IBLAT THRO V-IBLNG-DIR.
FD NDL-FILE
LABEL RECORDS ARE STANDARD BLOCK CONTAINS 0 RECORDS
RECORD CONTAINS 340 TO 1840 CHARACTERS DATA RECORD IS VSAM-ZB-ZO-RECORD.
COPY JLPVZBZO.
66 V-ZBLATLNG RENA~ES V-ZBLAT THRO V-ZBLNGSGN.
WORKING-STORAGE SECTION.
77 EOF-SWITCH PIC 9 VALUE
o.
88 EOF VALUE 1.
77 RETURN-STATUS PIC X(OLI) VALUE SPACES.
88 SUCCESSFUL VALUE • 0000 ••
11 DISPOSITION PIC
x
(03) VALUE 1SHR•.11 PILE-STATUS PIC x {02) VALUE SPACES.
01 COMMUNICATION-BLOCK.
COPY CARTCB07.
01 OSER-DATA-AREA.
05 KEY-FEEDBACK-AREA.
10 ?lDL-KEY.
15 ISL PIC 9 (5).
15 DGZ PIC
x
(3} •15 REV PIC
x.
10 PILLER PIC X (15) • 05 FILLER REDEFINES KEY-FEEDBACK-AREA.
10 NTB-KEY.
15 ISL PIC 9 (5) •
15 CAT PIC 9 (5) -
15 iAK PIC 9 (4) -
15 BEN PIC
x
(6) •15 ELT PIC
x.
10 PILLER PIC
x
(3) -66 NDL-IGZ RENAl!ES ISL OF NDL-KEY THRO DGZ OP NDL-KEY.
-168- 01 COORDINATE-VECTOR.
05 NDX-LAT PIC S9 (9) COMP SYNC.
05 NDX-LON PIC S9 (9) COMP SYNC.
05 BOX-DELTA PIC S9 (9) COMP SYNC.
01 WK-LAT-LNG.
03 WK-LAT.
05 WK-LATD PIC 9 (02) VALUE
o.
05 WK-LATl'I PIC 9(02) VALUE
o.
05 WK-LATS PIC 9 (02) VALOE
o.
05 WK-LAT-DIR PIC I (01) VALUE SPACE.
03 WK-LONG.
05 iK-LOHGD PIC 9 (03) VALUE
o.
05 WK-LONG!! PIC 9(02) VALUE
o.
05 WK-LONGS PIC 9 (02) VALUE
o.
05 WK-LONG-DIR PIC X(Ol) VA LOE SPACE.
01 ALLOCATED-DSM.
03 PILLER PIC
x
(04) VALUE 1JLP.•.03 FILLER PIC
x
(08) VALUE 1VSAMNDL.•.03 FILLER PIC
x
(05) VAL OE 'ZBZ0.1 • 03 REV-POR-DSN PICx
(01) VALUE "B' • 03 PILLER PICx
(01) VALUE SPACE.01 DD-RAl!!E PIC
x
(08) VALUE 1NDLVSAM I01 DUf!l!!Y-DD-NAME.
03 PILLER PIC
x
(07) VALUE 'DUMKYDD'.03 DUMMY-DD-NAME-REV PIC
x
(01) VALUE'B'.
01 VALUE-OP-BEV-TABLE PIC X(03) VALUE 'BCD'.
01 TABLE-OF-REV-VALUES
REDEFINES VALUE-OF-REV-TABLE.
03 REV-LETTER PIC I OCCURS 3 TIMES INDEXED BY REV-NDX.
01 ACCUMULATORS.
03 ONE-CON 03 TOTAL-ISRTS 03 TOTAL-GETS 03 TOTAL-POTS
PIC S9(06} COMP SYNC VALUE +1.
PIC S9(06) COMP SYNC VALUE +0.
PIC S9(06) COMP SYNC VALUE +O.
PIC S9(06) COMP SYNC VALUE +0.
PROCEDURE DIVISION.
000-0PEN-IHITIALIZE.
MOVE 24 TO MAX-OSER-AREA-LENGTH.
!OVE 'LOAD' TO FUNCTION-CODE.
ftOYE 1F1 TO MODE-INDICATOR.
*
OPEN INDEX PILE FOR INTEGER COORDINATES.CALL 1CARTA81 USING COMMUNICATION-BLOCK.
MOVE +21 TO TRUE-USER-DATA-LENGTH.
ftOVE 1ISRT1 TO FUNCTION-CODE.
010-0PEN-PILES.
OPEN INPUT NTB-FILE.
PERFORM 100-CONVERT-CALL-NTB THRO 100-EXIT UNTIL EOF.
MOVE +9 TO TRUE-USER-DATA-LENGTH.
PERFORM 200-0PEN-C'LOSE-NDL-FILES THRO 200-EXIT VARYING REV-HDX FROM 1 BY 1 UNTIL REV-NDX
>
3.900-LAST-CALL-TO-CARTOR.
DISPLAY 'TOTAL I READS
=
1 TOTAL-GETS,•, TOTAL I WRITES = • TOTAL-PUTS,
1 , TOTAL I INSERTS= 1 TOTAL-ISRTS, ' 1
!OVE 1CLSE1 TO FUNCTION-CODE.
CALL 1CARTAM1 USING COMMUNICATION-BLOCK.
GOBACK.
100-CONVERT-CALL-NTB.
BEAD NTB-FILE AT END
MOVE 1 TO EOP-SWITCH CLOSE NTB-PILE
GO TO 100-EXIT.
MOVE V-IBLATLNG TO WK-LAT-LNG.
MOVE V-NTB-KEY TO NTB-KEY.
PERFORM 500-CONVERT-CALL THRO 500-EXIT.
100-EXIT.
EXIT.
-170- 200-0PEN-CLOSE-NDL-FILES.
~OVE REV-LETTER (BEV-NDX) TO REV-FOR-DSN,
DUMMY-DD-NAME-REV.
CALL 1ALLOCD1 USING RETURN-STATUS, DD-NAME,
ALLOCATED-DSN, DISPOSITION.
IP SUCCESSFUL
ELSE
MOVE 0 TO EOP-SWITCH OPEN INPUT NDL-PILE
PERFORM 300-CONVERT-CALL-NDL THRO 300-EXIT UNTIL EOF CALL 1DEALLC1 USING RETURN-STATUS, IP SUCCESSFUL
NEXT SENTENCE ELSE
DD-NAME
DISPLAY 'STATUS
=
<•, RETURN-STATUS,'>, DDN =',DD-NAME
~OVE •00001 TO RETURN-STATUS
DISPLAY 'STATUS
=
<', RETURN-STATUS,•>, DDN
= ',
DD-NAME,1 , DSN
=
1 , ALLOCATED-DSN~OVE •00001 TO RETURN-STATUS.
CALL 'DEALLC' USING RETURN-STATUS, DUfU!Y-DD-NUIE.
IP NOT SUCCESSFUL
DISPLAY 'STATUS
=
<•, RETURN-STATUS,1>, DDN
=
1 , DUMMY-DD-NAME!OVE
•oooo•
TO RETURN-STATUS.200-EXIT.;.
EXIT.
300-CONVERT-CALL-NDL.
READ HDL-P'ILE AT END
MOVE 1 TO EOF-SWITCH CLOSE MDL-FILE
GO TO 300-EXIT.
MOYE V-ZBLATLNG TO WK-LAT-LNG.
!OVE V-ZBKEY TO HDL-IGZ.
MOVE V-ZBREV TO REV OP' NDL-KEY.
PERFORM 500-CONVERT-CALL THRU 500-EXIT.
300-EXIT.
EXIT.
500-COHVERT-CALL.
COMPUTE NDX-LAT