***********************************************************************
* Licensed Material - Property of IBM                                 *
* 5639-B92 , 5648-A25 , 5688-197 , 5639-D65 , 5688-235                *
* (C) Copyright IBM Corp., 1997, 1998                                 *
* All rights reserved.                                                *
* US Government Users Restricted Rights - Use, duplication or         *
* disclosure restricted by GSA ADP Schedule Contract with IBM Corp.   *
***********************************************************************
         SPACE
***********************************************************************
*                                                                     *
* Name: IGYFINF                                                       *
*                                                                     *
* Attributes:                                                         *
*                                                                     *
*   Addressing mode (AMODE) - 24                                      *
*   Residency mode (RMODE)  - 24                                      *
*   Not reusable                                                      *
*   Not reentrant                                                     *
*   Should be link edited by itself with IGYFINF as the entry point   *
*                                                                     *
***********************************************************************
IGYFINF  CSECT
         STM   14,12,12(13)
         LR    12,15
         USING IGYFINF,12
         ST    13,SAVE+4
         LA    15,SAVE
         ST    15,8(0,13)
         LR    13,15
         SR    6,6
         OPEN  (TESTFILE,(INPUT))
         LH    4,TESTFILE+82
         LR    5,4
         BCTR  5,0
         C     4,LRECL80
         BE    OKSEQ0
         LA    0,4
         ST    0,SEQTYPE
OKSEQ0   DS    0H
LOOP     DS    0H
         GET   TESTFILE
         LR    3,1
         LA    6,1(0,6)
         C     4,LRECL80
         BNE   OKSEQ3
         TRT   72(8,3),DIGITS
         BZ    OKSEQ1
         LA    0,4
         ST    0,SEQTYPE
         B     OKSEQ2
OKSEQ1   DS    0H
         CLC   72(8,3),PREVSEQ
         BH    OKSEQ2
         LA    0,4
         ST    0,SEQTYPE
OKSEQ2   DS    0H
         MVC   PREVSEQ,72(3)
OKSEQ3   DS    0H
         EX    5,TRTHEX
         BZ    OKHEX
         LA    0,16
         ST    0,HEXTYPE
OKHEX    DS    0H
         B     LOOP
EXIT     DS    0H
         CLOSE (TESTFILE)
         L     15,SEQTYPE
         A     15,HEXTYPE
         SLL   6,8
         OR    15,6
         LA    15,100(0,15)
         L     13,SAVE+4
         L     14,12(0,13)
         LM    0,12,20(13)
         BR    14
SAVE     DS    18F
PREVSEQ  DC    XL8'00'
ORIGSEQ  DS    CL8
SEQTYPE  DC    F'0'
HEXTYPE  DC    F'0'
LRECL80  DC    F'80'
TRTHEX   TRT   0(1,3),BADHEX
BADHEX   DS    0C
         DC    64AL1(1)        00-3F ALL BAD
         DC    AL1(0)          40 OK
         DC    AL1(1)          41 BAD
         DC    AL1(1)          42 BAD
         DC    AL1(1)          43 BAD
         DC    AL1(1)          44 BAD
         DC    AL1(1)          45 BAD
         DC    AL1(1)          46 BAD
         DC    AL1(1)          47 BAD
         DC    AL1(1)          48 BAD
         DC    AL1(1)          49 BAD
         DC    AL1(1)          4A BAD
         DC    AL1(0)          4B OK .
         DC    AL1(0)          4C OK <
         DC    AL1(0)          4D OK (
         DC    AL1(0)          4E OK +
         DC    AL1(0)          4F OK |
         DC    AL1(0)          50 OK &
         DC    AL1(1)          51 BAD
         DC    AL1(1)          52 BAD
         DC    AL1(1)          53 BAD
         DC    AL1(1)          54 BAD
         DC    AL1(1)          55 BAD
         DC    AL1(1)          56 BAD
         DC    AL1(1)          57 BAD
         DC    AL1(1)          58 BAD
         DC    AL1(1)          59 BAD
         DC    AL1(0)          5A OK !
         DC    AL1(0)          5B OK $
         DC    AL1(0)          5C OK *
         DC    AL1(0)          5D OK )
         DC    AL1(0)          5E OK ;
         DC    AL1(1)          5F OK ª FORCE BAD
         DC    AL1(0)          60 OK -
         DC    AL1(0)          61 OK /
         DC    AL1(1)          62 BAD
         DC    AL1(1)          63 BAD
         DC    AL1(1)          64 BAD
         DC    AL1(1)          65 BAD
         DC    AL1(1)          66 BAD
         DC    AL1(1)          67 BAD
         DC    AL1(1)          68 BAD
         DC    AL1(1)          69 BAD
         DC    AL1(1)          6A BAD
         DC    AL1(0)          6B OK ,
         DC    AL1(0)          6C OK %
         DC    AL1(0)          6D OK _
         DC    AL1(0)          6E OK >
         DC    AL1(0)          6F OK ?
         DC    AL1(1)          70 BAD
         DC    AL1(1)          71 BAD
         DC    AL1(1)          72 BAD
         DC    AL1(1)          73 BAD
         DC    AL1(1)          74 BAD
         DC    AL1(1)          75 BAD
         DC    AL1(1)          76 BAD
         DC    AL1(1)          77 BAD
         DC    AL1(1)          78 BAD
         DC    AL1(1)          79 OK ` FORCE BAD
         DC    AL1(0)          7A OK :
         DC    AL1(0)          7B OK #
         DC    AL1(0)          7C OK @
         DC    AL1(0)          7D OK '
         DC    AL1(0)          7E OK =
         DC    AL1(0)          7F OK "
         DC    AL1(1)          80 BAD
         DC    AL1(0)          81 OK a
         DC    AL1(0)          82 OK b
         DC    AL1(0)          83 OK c
         DC    AL1(0)          84 OK d
         DC    AL1(0)          85 OK e
         DC    AL1(0)          86 OK f
         DC    AL1(0)          87 OK g
         DC    AL1(0)          88 OK h
         DC    AL1(0)          89 OK i
         DC    AL1(1)          8A BAD
         DC    AL1(1)          8B BAD
         DC    AL1(1)          8C BAD
         DC    AL1(1)          8D BAD
         DC    AL1(1)          8E BAD
         DC    AL1(1)          8F BAD
         DC    AL1(1)          90 BAD
         DC    AL1(0)          91 OK j
         DC    AL1(0)          92 OK k
         DC    AL1(0)          93 OK l
         DC    AL1(0)          94 OK m
         DC    AL1(0)          95 OK n
         DC    AL1(0)          96 OK o
         DC    AL1(0)          97 OK p
         DC    AL1(0)          98 OK q
         DC    AL1(0)          99 OK r
         DC    AL1(1)          9A BAD
         DC    AL1(1)          9B BAD
         DC    AL1(1)          9C BAD
         DC    AL1(1)          9D BAD
         DC    AL1(1)          9E BAD
         DC    AL1(1)          9F BAD
         DC    AL1(1)          A0 BAD
         DC    AL1(1)          A1 OK ~ FORCE BAD
         DC    AL1(0)          A2 OK s
         DC    AL1(0)          A3 OK t
         DC    AL1(0)          A4 OK u
         DC    AL1(0)          A5 OK v
         DC    AL1(0)          A6 OK w
         DC    AL1(0)          A7 OK x
         DC    AL1(0)          A8 OK y
         DC    AL1(0)          A9 OK z
         DC    AL1(1)          AA BAD
         DC    AL1(1)          AB BAD
         DC    AL1(1)          AC BAD
         DC    AL1(1)          AD OK í FORCE BAD
         DC    AL1(1)          AE BAD
         DC    AL1(1)          AF BAD
         DC    AL1(1)          B0 BAD
         DC    AL1(1)          B1 BAD
         DC    AL1(1)          B2 BAD
         DC    AL1(1)          B3 BAD
         DC    AL1(1)          B4 BAD
         DC    AL1(1)          B5 BAD
         DC    AL1(1)          B6 BAD
         DC    AL1(1)          B7 BAD
         DC    AL1(1)          B8 BAD
         DC    AL1(1)          B9 BAD
         DC    AL1(1)          BA BAD
         DC    AL1(1)          BB BAD
         DC    AL1(1)          BC BAD
         DC    AL1(1)          BD OK ù FORCE BAD
         DC    AL1(1)          BE BAD
         DC    AL1(1)          BF BAD
         DC    AL1(0)          C0 OK {
         DC    AL1(0)          C1 OK A
         DC    AL1(0)          C2 OK B
         DC    AL1(0)          C3 OK C
         DC    AL1(0)          C4 OK D
         DC    AL1(0)          C5 OK E
         DC    AL1(0)          C6 OK F
         DC    AL1(0)          C7 OK G
         DC    AL1(0)          C8 OK H
         DC    AL1(0)          C9 OK I
         DC    AL1(1)          CA BAD
         DC    AL1(1)          CB BAD
         DC    AL1(1)          CC BAD
         DC    AL1(1)          CD BAD
         DC    AL1(1)          CE BAD
         DC    AL1(1)          CF BAD
         DC    AL1(0)          D0 OK }
         DC    AL1(0)          D1 OK J
         DC    AL1(0)          D2 OK K
         DC    AL1(0)          D3 OK L
         DC    AL1(0)          D4 OK M
         DC    AL1(0)          D5 OK N
         DC    AL1(0)          D6 OK O
         DC    AL1(0)          D7 OK P
         DC    AL1(0)          D8 OK Q
         DC    AL1(0)          D9 OK R
         DC    AL1(1)          DA BAD
         DC    AL1(1)          DB BAD
         DC    AL1(1)          DC BAD
         DC    AL1(1)          DD BAD
         DC    AL1(1)          DE BAD
         DC    AL1(1)          DF BAD
         DC    AL1(0)          E0 OK \
         DC    AL1(1)          E1 BAD
         DC    AL1(0)          E2 OK S
         DC    AL1(0)          E3 OK T
         DC    AL1(0)          E4 OK U
         DC    AL1(0)          E5 OK V
         DC    AL1(0)          E6 OK W
         DC    AL1(0)          E7 OK X
         DC    AL1(0)          E8 OK Y
         DC    AL1(0)          E9 OK Z
         DC    AL1(1)          EA BAD
         DC    AL1(1)          EB BAD
         DC    AL1(1)          EC BAD
         DC    AL1(1)          ED BAD
         DC    AL1(1)          EE BAD
         DC    AL1(1)          EF BAD
         DC    AL1(0)          F0 OK 0
         DC    AL1(0)          F1 OK 1
         DC    AL1(0)          F2 OK 2
         DC    AL1(0)          F3 OK 3
         DC    AL1(0)          F4 OK 4
         DC    AL1(0)          F5 OK 5
         DC    AL1(0)          F6 OK 6
         DC    AL1(0)          F7 OK 7
         DC    AL1(0)          F8 OK 8
         DC    AL1(0)          F9 OK 9
         DC    AL1(1)          FA BAD
         DC    AL1(1)          FB BAD
         DC    AL1(1)          FC BAD
         DC    AL1(1)          FD BAD
         DC    AL1(1)          FE BAD
         DC    AL1(1)          FF BAD
DIGITS   DS    0C
         DC    240AL1(1)
         DC    10AL1(0)
         DC    6AL1(1)
TESTFILE DCB   DDNAME=IGYFINFO,DSORG=PS,MACRF=GL,EODAD=EXIT
         END
