****************************************************************
**
** 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
**
****************************************************************