****************************************************************

     **

     **   PROGRAM NAME: JONAS6.RPG

     **   PROGRAMMER: JONAS WIK

     **   DESCRIPTION:

     **       THIS PROGRAM READS A LIST OF NAMES INCLUDING THEIR

     **       ADDRESS AND LOOKS UP THE STATE NAME IN A TABLE CREATED

     **       BY THE AUTHOR. THE PROGRAM PRINTS A REPORT WITH THE

     **       NAME, CITY AND STATE.

     **

     ****************************************************************

     **

     **   INDICATOR SUMMARY:

     **       1P FIRST PAGE INDICATOR FOR HEADERS ON REPORT

     **       OF OVERFLOW INDICATOR

     **       10 INDICATOR FOR WHEN A MATCH OCH STATE ABBREVIATION AND

     **          STATE NAME IS FOUND IN THE TABLE.

     **       LR INDICATOR FOR LAST RECORD.

     **

     ****************************************************************

     FMESTCP  IP  F      80            DISK

     FQSYSPRT O   F      50     OF     PRINTER

     ****************************************************************

     **

     **   EXPLANATION OF ARRAYS/TABLES.

     **       TABA TABLE WHICH CONTAINS STATE ABBREVIATIONS

     **       TABN TABLE WHICH CONTAINS STATE NAMES

     **       CIT  ARRAY WHICH CONTAINS CITY NAME

     **       STA  ARRAY WHICH CONTAINS STATE ABBREVIATIONS

     **

     ****************************************************************

     E                    TABA    1  10  2  ATABN   12  A

     E                    ARR        15  1

     E                    CIT        13  1

     E                    STA         2  1

     ****************************************************************

     **

     **   RECORD DESCRIPTION FOR INPUT FILE MESTCP

     **       FIELD DESCR       DATA TYPE       FIELD NAME

     **       CUSTOMER NAME      20 CHARS        CUSNAM

     **       CUSTOMER CTY/STATE 15 CHARS        CUSCTY

     ****************************************************************

     IMESTCP  NS  01

     I                                        1  20 CUSNAM

     I                                       46  60 CUSCTY

     ****************************************************************

     **

     **   DATA STRUCTURE #WORK

     **       Z INDEX FOR THE ARRAY WHEN IT IS MOVED  2 DIG, NO DEC

     **       X MAJOR INDEX FOR ARRAYS                2 DIG, NO DEC

     **   CTREC THE COUNTER FOR THE RECORDS PROCESSED 2 DIG, NO DEC

     **    CITY CITYNAME                              13 CHARS

     **   STATE STATE ABBREVIATION                    2  CHARS

     **       C INDEX FOR THE ARRAY STA

     ****************************************************************

     I#WORK       DS

     I                                        1   20Z

     I                                        3   40X

     I                                        5   60CTREC

     I                                        7  19 CITY

     I                                       20  21 STATE

     I                                       22  230C

     C   90                SETOF                         OF

     C   OF                SETON                         90

     C                     SETOF                         10

     C                     MOVEACUSCTY    ARR

     C                     EXSR DETCTY

     ****************************************************************

     **

     **   SUBROUTINE DETCTY=DETERMINE CITY

     **     THIS SUBROUTINE MOVES BLANKS TO THE ARRAY WHICH IS TO HOLD

     **     THE CITY NAME, AND THEN IT EXECUTES THE SUBROUTINE COMMA.

     **

     ****************************************************************

     CSR         DETCTY    BEGSR

     C                     Z-ADD1         X

     C           X         DOUGT13

     C                     MOVEA*BLANK    CIT,X

     C                     ADD  1         X

     C                     END

     C                     EXSR COMMA

     C                     ENDSR

     ****************************************************************

     **

     **   SUBROUTINE COMMA

     **       THIS SUBROUTINE MOVES THE ARRAY 15 TIMES LETTER BY

     **       LETTER UNTIL THE COMMA SIGN IS FOUND.

     **       WHEN THE COMMA IS FOUND THE VARIABLE X IS MOVED FO Z

     **       AND THEN 99 IS ADDED TO THE VARIABLE X TO

     **       REALLY SHOW IT IS TIME TO EXIT THE LOOP.

     **       IT THEN MOVES THE CITY NAME FROM THE ARRAY CIT TO THE

     **       CITY. FINALLY IT EXECUTES SUBROUTINE MOVEST.

     ****************************************************************

     CSR         COMMA     BEGSR

     C                     Z-ADD1         X

     C           X         DOWLT15

     C           ARR,X     IFNE ','

     C                     MOVE ARR,X     CIT,X

     C                     ADD  1         X

     C                     ELSE

     C                     Z-ADDX         Z

     C                     Z-ADD99        X

     C                     END

     C                     END

     C                     MOVEACIT       CITY

     C                     EXSR MOVEST

     C                     ENDSR

     ****************************************************************

     **

     **   SUBROUTINE MOVEST=MOVE STATE

     **       WHEN THE COMMA IS FOUND IN THE PREVIOS SUBROUTINE, THIS

     **       ONE WILL ADD 2 TO Z TO FIND THE START POS FOR THE STATE

     **       AND THEN IT LOOPS THRU THE STATE ABBREV. AND STORES IT IN

     **       ARRAY STA. THE ARRAY STA IS MOVED TO THE FIELD STATE.

     **       THEN THE STATE FIELD IS LOOKED UP IN THE TABLE AND THE

     **       ACTUAL STATE NAME IS FOUND.INDICATOR 10 IS TURNED ON

     **       AND 1 IS ADDED TO THE COUNTER CTREC.

     ****************************************************************

     CSR         MOVEST    BEGSR

     C                     ADD  2         Z

     C                     Z-ADD1         C

     C           C         DOUGT2

     C                     MOVEAARR,Z     STA,C

     C                     ADD  1         Z

     C                     ADD  1         C

     C                     END

     C                     MOVEASTA       STATE

     C           STATE     LOKUPTABA      TABN           10

     C   10                ADD  1         CTREC

     C                     ENDSR

     ****************************************************************

     **

     **                 OUTPUT SPECS

     **

     ****************************************************************

     OQSYSPRT H  101   1P

     O       OR        OF

     O                                   32 'CUSTOMER LISTING'

     O                                   46 'PAGE '

     O                         PAGE  Z   50

     O        H  2     1P

     O       OR        OF

     O                                    6 'DATE: '

     O                         UDATE Y   14

     O                                   44 'JONAS WIK'

     O        H  1     1P

     O       OR        OF

     O                                    8 'CUSTOMER'

     O        H  2     1P

     O       OR        OF

     O                                    6 'NAME'

     O                                   27 'CITY'

     O                                   42 'STATE'

     ****************************************************************

     **

     **                 DETAIL LINE

     **

     ****************************************************************

     O        D  1     10

     O                         CUSNAM    20

     O                         CITY      35

     O                         TABN      50

     ****************************************************************

     **

     **                 FOOTER

     **

     ****************************************************************

     O        T 3      LR

     O                         CTREC Z    2

     O                                   17 'RECORDS LISTED'

     ****************************************************************

     **

     **   THIS IS THE TABLE THAT CONTAINS THE STATE ABBREVIATIONS AND

     **   STATE NAMES IN ALPHABETICAL ORDER.

     **

     ****************************************************************

**

COCOLORADO

IAIOWA

ILILLINOIS

MNMINNESOTA

NDNORTH DAKOTA

NENEBRASKA

NYNEW YORK

SDSOUTH DAKOTA

VAVIRGINIA

WIWISCONSIN

/*

     ****************************************************************

     **

     **             T H E   E N D

     **

     ****************************************************************