* 4/28/75 -- 13:00
* MODULE NAME: NATBLES
* NUMBER: 46
* PURPOSE: DEFINE STANDARD PREFIX AND SUFFIX TABLES FOR NAME/ADDRESS FILES
* ENTRY POINTS:
*
         DEF      CFLNTBL           CHANGE FIELD LINE NUMBER TABLE
         DEF      CFLNSZ            CHANGE FIELD LINE NUMBER SIZE
         DEF      CNDTNTBL          SELECT CONDITION TABLE
         DEF      CNDTNSZ           SELECT CONDITION TABLE SIZE
         DEF      PNMTBL            PREFIX NAME TABLE
         DEF      POFFTBL           PREFIX OFFSET TABLE
         DEF      POFFTBLSZ         PREFIX OFFSET TABLE SIZE
         DEF      SFIDTBL           SELECT FIELD ID TABLE
         DEF      SFIDSZ            SELECT FIELD ID SIZE
         DEF      SNMTBL            SUFFIX NAME TABLE
         DEF      SOFFTBL           SUFFIX OFFSET TABLE
         DEF      SOFFTBLSZ         SUFFIX OFFSET TABLE SIZE
*
*
*
*
         SYSTEM   TEXTDEF
         SYSTEM   ITEMDEF
*
*
         PAGE
*
* GF -- GEN FIELD LIST FUNCTION
*
GF       FNAME
         OPEN     T
         PROC
T        SET      AF(2)
         DO       AF(1)-1
T        SET      T,AF(2)
         FIN
         PEND     T
         CLOSE    T
*
S:S      FNAME
         PROC
         PEND     AF(AF(1)+2)
*
* LCN -- LOWER CASE NAME FUNCTION
*
*
LCN      FNAME
         OPEN     Q,A,I
         PROC
Q        SET      S:UT(AF(1))
A        SET      SCOR(AF(2),ALL)
I        DO       NUM(Q)
         DO1      A|S:S(I>1,,Q(I-1)~=' ')&Q(I)~=' '&Q(I)~='.'
Q(I)     SET      Q(I)&X'BF'
         FIN
         PEND     Q
         CLOSE    Q,A,I
*
PTBL     CNAME    PNMTBL,POFFTBL
STBL     CNAME    SNMTBL,SOFFTBL
         OPEN     SAVE%,U,OS
         PROC
         DO1      (CS(%)~=CS(NAME(1)))&(CS(%)~=CS(NAME(2)))
SAVE%    SET      %
U        SET      S:UT(AF)
         USECT    NAME(1)
OS       SET      BA(%)-BA(NAME(1))
         GEN,GF(NUM(U)+1,8)   NUM(U),U
         USECT    NAME(2)
         GEN,16   OS
         DO1      (CS(%)~=CS(NAME(1)))&(CS(%)~=CS(NAME(2)))
         ORG      SAVE%
         PEND
         CLOSE    SAVE%,U,OS
         PAGE
*
*
*
         DEF      46P,46D
*
46P      RES      0
         DATA     X'46'             MODULE NUMBER
         DATA     X'042875'         DATE
         DATA     X'1300'           TIME
*
*
         TITLE    '** NATBLES(46) **'
         PAGE
         BOUND    8
SFIDTBL  RES      0                 SELECT FIELD ID TABLE
         TEXT     'CITY    '
         GEN,8,8,8,8         LCN('CITY',ALL)
         GEN,32              X'40404040'
         TEXT     'ENTRY   '
         GEN,8,8,8,8,8       LCN('ENTRY',ALL)
         GEN,24              X'404040'
         TEXT     'FNAME   '
         GEN,8,8,8,8,8       LCN('FNAME',ALL)
         GEN,24              X'404040'
         TEXT     'LINE    '
         GEN,8,8,8,8         LCN('LINE',ALL)
         GEN,32              X'40404040'
         TEXT     'LNAME   '
         GEN,8,8,8,8,8       LCN('LNAME',ALL)
         GEN,24              X'404040'
         TEXT     'PLNAME  '
         GEN,8,8,8,8,8,8     LCN('PLNAME',ALL)
         GEN,16              X'4040'
         TEXT     'NAME    '
         GEN,8,8,8,8         LCN('NAME',ALL)
         GEN,32              X'40404040'
         TEXT     'PREFIX  '
         GEN,8,8,8,8,8,8     LCN('PREFIX',ALL)
         GEN,16              X'4040'
         TEXT     'STATE   '
         GEN,8,8,8,8,8       LCN('STATE',ALL)
         GEN,24              X'404040'
         TEXT     'SUFFIX  '
         GEN,8,8,8,8,8,8     LCN('SUFFIX',ALL)
         GEN,16              X'4040'
         TEXT     'ZIP     '
         GEN,8,8,8           LCN('ZIP',ALL)
         GEN,40              X'4040404040'
SFIDSZ   EQU      DA(%)-DA(SFIDTBL)
         SPACE    5
CNDTNTBL RES      0                 SELECT CONDITION TABLE
         GEN,16,8,8          'EQ',LCN('EQ',ALL)
         GEN,16,8,8          'NE',LCN('NE',ALL)
         GEN,16,8,8          'LT',LCN('LT',ALL)
         GEN,16,8,8          'GT',LCN('GT',ALL)
         GEN,16,8,8          'LE',LCN('LE',ALL)
         GEN,16,8,8          'GE',LCN('GE',ALL)
CNDTNSZ  EQU      HA(%)-HA(CNDTNTBL)
         SPACE    5
         BOUND    8
CFLNTBL  RES      0                 CHANGE FIELD LINE NUMBER TABLE
         TEXT     'CITY    '
         GEN,8,8,8,8         LCN('CITY',ALL)
         GEN,32              X'40404040'
         TEXT     'COMP    '
         GEN,8,8,8,8         LCN('COMP',ALL)
         GEN,32              X'40404040'
         TEXT     'NAME    '
         GEN,8,8,8,8         LCN('NAME',ALL)
         GEN,32              X'40404040'
         TEXT     'STATE   '
         GEN,8,8,8,8,8       LCN('STATE',ALL)
         GEN,24              X'404040'
CFLNSZ   EQU      DA(%)-DA(CFLNTBL) SIZE OF FIELD LINE NUMBER TABLE
         PAGE
PNMTBL   CSECT    0                 PREFIX NAMES
POFFTBL  CSECT    0                 PREFIX OFFSETS
         PTBL     LCN('ADM')
         PTBL     LCN('ADM.')
         PTBL     'ADM'
         PTBL     'ADM.'
         PTBL     LCN('BRIG')
         PTBL     LCN('BRIG.')
         PTBL     'BRIG'
         PTBL     'BRIG.'
         PTBL     LCN('CAPT')
         PTBL     LCN('CAPT.')
         PTBL     LCN('COL')
         PTBL     LCN('COL.')
         PTBL     LCN('CPL')
         PTBL     LCN('CPL.')
         PTBL     LCN('CPT')
         PTBL     LCN('CPT.')
         PTBL     'CAPT'
         PTBL     'CAPT.'
         PTBL     'COL'
         PTBL     'COL.'
         PTBL     'CPL'
         PTBL     'CPL.'
         PTBL     'CPT'
         PTBL     'CPT.'
         PTBL     LCN('DR')
         PTBL     LCN('DR & MRS')
         PTBL     LCN('DR.')
         PTBL     LCN('DR. & MRS.')
         PTBL     'DR'
         PTBL     'DR & MRS'
         PTBL     'DR.'
         PTBL     'DR. & MRS.'
         PTBL     LCN('FR')
         PTBL     LCN('FR.')
         PTBL     'FR'
         PTBL     'FR.'
         PTBL     LCN('GEN')
         PTBL     LCN('GEN.')
         PTBL     'GEN'
         PTBL     'GEN.'
         PTBL     LCN('HON')
         PTBL     LCN('HON.')
         PTBL     'HON'
         PTBL     'HON.'
         PTBL     LCN('LT')
         PTBL     LCN('LT.')
         PTBL     'LT'
         PTBL     'LT.'
         PTBL     LCN('MAJ')
         PTBL     LCN('MAJ.')
         PTBL     LCN('MISS')
         PTBL     LCN('MR')
         PTBL     LCN('MR & MRS')
         PTBL     LCN('MR.')
         PTBL     LCN('MRS')
         PTBL     LCN('MRS.')
         PTBL     LCN('MS')
         PTBL     LCN('MS.')
         PTBL     'MAJ'
         PTBL     'MAJ.'
         PTBL     'MISS'
         PTBL     'MR'
         PTBL     'MR & MRS'
         PTBL     'MR.'
         PTBL     'MR. & MRS.'
         PTBL     'MRS'
         PTBL     'MRS.'
         PTBL     'MS'
         PTBL     'MS.'
         PTBL     LCN('PFC')
         PTBL     LCN('PFC.')
         PTBL     LCN('PROF')
         PTBL     LCN('PROF & MRS')
         PTBL     LCN('PROF.')
         PTBL     LCN('PROF. & MRS.')
         PTBL     LCN('PVT')
         PTBL     LCN('PVT.')
         PTBL     'PFC'
         PTBL     'PFC.'
         PTBL     'PROF'
         PTBL     'PROF & MRS'
         PTBL     'PROF.'
         PTBL     'PROF. & MRS.'
         PTBL     'PVT'
         PTBL     'PVT.'
         PTBL     LCN('REV')
         PTBL     LCN('REV & MRS')
         PTBL     LCN('REV.')
         PTBL     LCN('REV. & MRS.')
         PTBL     LCN('RT')
         PTBL     LCN('RT.')
         PTBL     'REV'
         PTBL     'REV & MRS'
         PTBL     'REV.'
         PTBL     'REV. & MRS.'
         PTBL     'RT'
         PTBL     'RT.'
         PTBL     LCN('SEN')
         PTBL     LCN('SEN.')
         PTBL     LCN('SFC')
         PTBL     LCN('SFC.')
         PTBL     LCN('SIR')
         PTBL     LCN('SISTER')
         PTBL     LCN('SR')
         PTBL     LCN('SR.')
         PTBL     'SEN'
         PTBL     'SEN.'
         PTBL     'SFC'
         PTBL     'SFC.'
         PTBL     'SIR'
         PTBL     'SISTER'
         PTBL     'SR'
         PTBL     'SR.'
POFFTBLSZ  EQU    HA(%)-HA(POFFTBL)
         PAGE
SNMTBL   CSECT    0                 SUFFIX NAMES
SOFFTBL  CSECT    0                 SUFFIX OFFSETS
         STBL     LCN('CPA',ALL)
         STBL     LCN('DDS',ALL)
         STBL     LCN('DVM',ALL)
         STBL     LCN('LLB',ALL)
         STBL     LCN('MD',ALL)
         STBL     LCN('RET',ALL)
         STBL     LCN('RN',ALL)
         STBL     LCN('USA',ALL)
         STBL     LCN('USAF',ALL)
         STBL     LCN('USMC',ALL)
         STBL     LCN('USN',ALL)
         STBL     LCN('ASST')
         STBL     LCN('ATTY')
         STBL     'ASST'
         STBL     'ATTY'
         STBL     'CPA'
         STBL     'DDS'
         STBL     'DVM'
         STBL     LCN('ESQ')
         STBL     'ESQ'
         STBL     'II'
         STBL     'III'
         STBL     'IV'
         STBL     LCN('JR')
         STBL     'JR'
         STBL     'LLB'
         STBL     'MD'
         STBL     LCN('PRES')
         STBL     'PRES'
         STBL     'RET'
         STBL     'RN'
         STBL     LCN('SR')
         STBL     'SR'
         STBL     LCN('TREAS')
         STBL     'USA'
         STBL     'USAF'
         STBL     'USMC'
         STBL     'USN'
         STBL     'V.P.'
         STBL     LCN('2ND')
         STBL     '2ND'
         STBL     LCN('3RD')
         STBL     '3RD'
         STBL     LCN('4TH')
         STBL     '4TH'
SOFFTBLSZ  EQU    HA(%)-HA(SOFFTBL)
         PAGE
46D      RES      0
         USECT    #PLOC
         END
