TITLE "SCRNAS"; ENTRY * (PARXLIST) EXT; /***************************************************/ /* */ /* DATE WRITTEN. 89/04/18 LEIF SVALGAARD */ /* REVISED: 89/05/17 */ /* */ /* CALL "SCRNAS" */ /* USING SCREEN-CONTROL */ /* SCREEN-DEFINITION */ /* SCREEN-WORKAREA */ /* SCREEN-IMAGE */ /* SCREEN-INDICES */ /* */ /* 01 SCREEN-CONTROL. */ /* 02 TASK-ID PIC X(4). */ /* 02 OPERATION PIC X. */ /* 02 DATA-MODE PIC X. */ /* 02 POINT-CHAR PIC X. */ /* 02 DATE-SEPARATOR PIC X. */ /* */ /* 02 ERROR-CODE PIC X. */ /* 02 ERROR-ROW PIC 99. */ /* 02 ERROR-COL PIC 99. */ /* 02 FUNCTION-KEY PIC 99. */ /* */ /* 02 CURSOR-ROW PIC 99. */ /* 02 CURSOR-COL PIC 99. */ /* */ /* 02 TRANS-FIRST-ROW PIC 99. */ /* 02 TRANS-LAST-ROW PIC 99. */ /* 02 INPUT-FIRST-ROW PIC 99. */ /* 02 INPUT-LAST-ROW PIC 99. */ /* 02 BLANK-FIRST-ROW PIC 99. */ /* 02 BLANK-LAST-ROW PIC 99. */ /* */ /* 01 SCREEN-DEFINITION. */ /* 02 SD-CHAR PIC X OCCURS 1921. */ /* */ /* 01 SCREEN-WORKAREA. */ /* 02 WA-CHAR PIC X OCCURS 1921. */ /* */ /* 01 SCREEN-IMAGE. */ /* 02 WS-CHAR PIC X OCCURS 1923. */ /* */ /* 01 SCREENIO-VARS. */ /* 02 THIS-CHAR PIC S9(5) COMP. */ /* 02 FIRST-CHAR PIC S9(5) COMP. */ /* 02 LAST-CHAR PIC S9(5) COMP. */ /* 02 FIRST-INPUT PIC S9(5) COMP. */ /* 02 LAST-INPUT PIC S9(5) COMP. */ /* 02 FIRST-BLANK PIC S9(5) COMP. */ /* 02 LAST-BLANK PIC S9(5) COMP. */ /* 02 ERROR-POSITION PIC S9(5) COMP. */ /* 02 LAST-POSITION PIC S9(5) COMP. */ /* */ /* 02 FIRST-TIME PIC X. */ /* 02 ERROR-FIELD PIC X. */ /* 02 FIELD-ACCEPTED PIC X. */ /* 02 FIELD-PROTECTED PIC X. */ /* 02 FINE-ACTION PIC X. */ /* 02 CURSOR-SETTING PIC X. */ /* 02 COMMA-CHAR PIC X. */ /* */ /***************************************************/ DCL SPCPTR P1 PARM; /* PARAMETER 1 */ DCL SPCPTR P2 PARM; /* PARAMETER 2 */ DCL SPCPTR P3 PARM; /* PARAMETER 3 */ DCL SPCPTR P4 PARM; /* PARAMETER 4 */ DCL OL PARMLIST(P1,P2,P3,P4,P5) EXT PARM MIN(5); DCL DD SCREEN-CONTROL CHAR(31) BAS(P1); /* PARAMETER 1 */ DCL DD TASK-ID CHAR( 4) DEF(SCREEN-CONTROL) POS( 1); DCL DD OPERATION CHAR( 1) DEF(SCREEN-CONTROL) POS( 5); DCL DD DATA-MODE CHAR( 1) DEF(SCREEN-CONTROL) POS( 6); DCL DD POINT-CHAR CHAR( 1) DEF(SCREEN-CONTROL) POS( 7); DCL DD DATE-SEPARATOR CHAR(1) DEF(SCREEN-CONTROL) POS( 8); DCL DD ERROR-CODE CHAR( 1) DEF(SCREEN-CONTROL) POS( 9); DCL DD ERROR-ROW ZND(2,0) DEF(SCREEN-CONTROL) POS(10); DCL DD ERROR-COL ZND(2,0) DEF(SCREEN-CONTROL) POS(12); DCL DD FUNCTION-KEY ZND(2,0) DEF(SCREEN-CONTROL) POS(14); DCL DD CURSOR-ROW ZND(2,0) DEF(SCREEN-CONTROL) POS(16); DCL DD CURSOR-COL ZND(2,0) DEF(SCREEN-CONTROL) POS(18); DCL DD T-FIRST-ROW ZND(2,0) DEF(SCREEN-CONTROL) POS(20); DCL DD T-LAST-ROW ZND(2,0) DEF(SCREEN-CONTROL) POS(22); DCL DD I-FIRST-ROW ZND(2,0) DEF(SCREEN-CONTROL) POS(24); DCL DD I-LAST-ROW ZND(2,0) DEF(SCREEN-CONTROL) POS(26); DCL DD B-FIRST-ROW ZND(2,0) DEF(SCREEN-CONTROL) POS(28); DCL DD B-LAST-ROW ZND(2,0) DEF(SCREEN-CONTROL) POS(30); DCL DD SD-SCREEN CHAR(1921) BAS(P2); /* PARAMETER 2 */ DCL DD SD-CHAR(1921) CHAR(1) DEF(SD-SCREEN) POS( 1); DCL DD SD-SENTINEL CHAR(1) DEF(SD-SCREEN) POS(1921); DCL DD WA-SCREEN CHAR(1921) BAS(P3); /* PARAMETER 3 */ DCL DD WA-CHAR(1921) CHAR(1) DEF(WA-SCREEN) POS( 1); DCL DD WA-SENTINEL CHAR(1) DEF(WA-SCREEN) POS(1921); DCL DD WS-SCREEN CHAR(1923) BAS(P4); /* PARAMETER 4 */ DCL DD WS-CHAR(1923) CHAR(1) DEF(WS-SCREEN) POS( 1); DCL DD WS-SENTINELS CHAR(3) DEF(WS-SCREEN) POS(1921); DCL DD SCREENIO-VARS CHAR(34) BAS(P5); /* PARAMETER 5 */ DCL DD *THIS-CHAR PKD(5,0) DEF(SCREENIO-VARS) POS( 1); DCL DD *FIRST-CHAR PKD(5,0) DEF(SCREENIO-VARS) POS( 4); DCL DD *LAST-CHAR PKD(5,0) DEF(SCREENIO-VARS) POS( 7); DCL DD *FIRST-INPUT PKD(5,0) DEF(SCREENIO-VARS) POS(10); DCL DD *LAST-INPUT PKD(5,0) DEF(SCREENIO-VARS) POS(13); DCL DD *FIRST-BLANK PKD(5,0) DEF(SCREENIO-VARS) POS(16); DCL DD *LAST-BLANK PKD(5,0) DEF(SCREENIO-VARS) POS(19); DCL DD ERROR-POS PKD(5,0) DEF(SCREENIO-VARS) POS(22); DCL DD SCREEN-SIZE PKD(5,0) DEF(SCREENIO-VARS) POS(25); DCL DD FIRST-TIME CHAR(1) DEF(SCREENIO-VARS) POS(28); DCL DD ERROR-FIELD CHAR(1) DEF(SCREENIO-VARS) POS(29); DCL DD FIELD-ACCEPTED CHAR(1) DEF(SCREENIO-VARS) POS(30); DCL DD FIELD-PROTECTED CHAR(1) DEF(SCREENIO-VARS) POS(31); DCL DD FINE-ACTION CHAR(1) DEF(SCREENIO-VARS) POS(32); DCL DD CURSOR-SETTING CHAR(1) DEF(SCREENIO-VARS) POS(33); DCL DD COMMA-CHAR CHAR(1) DEF(SCREENIO-VARS) POS(34); /* SCRNAS SUPPORTS THE DATA CONVERSIONS NEEDED FOR 'SCRNIO' */ /* AS DESCRIBED IN THE ETK REFERENCE MANUAL. */ DCL SPCPTR .FIELD; DCL SPCPTR .FROM; DCL SPCPTR .TO; DCL DD CH80 CHAR(80) BAS(*); DCL DD CH79 CHAR(79) BAS(*); DCL DD CH78 CHAR(78) BAS(*); DCL DD CH77 CHAR(77) BAS(*); DCL DD CH76 CHAR(76) BAS(*); DCL DD CH75 CHAR(75) BAS(*); DCL DD CH74 CHAR(74) BAS(*); DCL DD CH73 CHAR(73) BAS(*); DCL DD CH72 CHAR(72) BAS(*); DCL DD CH71 CHAR(71) BAS(*); DCL DD CH70 CHAR(70) BAS(*); DCL DD CH69 CHAR(69) BAS(*); DCL DD CH68 CHAR(68) BAS(*); DCL DD CH67 CHAR(67) BAS(*); DCL DD CH66 CHAR(66) BAS(*); DCL DD CH65 CHAR(65) BAS(*); DCL DD CH64 CHAR(64) BAS(*); DCL DD CH63 CHAR(63) BAS(*); DCL DD CH62 CHAR(62) BAS(*); DCL DD CH61 CHAR(61) BAS(*); DCL DD CH60 CHAR(60) BAS(*); DCL DD CH59 CHAR(59) BAS(*); DCL DD CH54 CHAR(54) BAS(*); DCL DD CH53 CHAR(53) BAS(*); DCL DD CH52 CHAR(52) BAS(*); DCL DD CH51 CHAR(51) BAS(*); DCL DD CH50 CHAR(50) BAS(*); DCL DD CH49 CHAR(49) BAS(*); DCL DD CH48 CHAR(48) BAS(*); DCL DD CH47 CHAR(47) BAS(*); DCL DD CH46 CHAR(46) BAS(*); DCL DD CH45 CHAR(45) BAS(*); DCL DD CH44 CHAR(44) BAS(*); DCL DD CH43 CHAR(43) BAS(*); DCL DD CH42 CHAR(42) BAS(*); DCL DD CH41 CHAR(41) BAS(*); DCL DD CH40 CHAR(40) BAS(*); DCL DD CH39 CHAR(39) BAS(*); DCL DD CH38 CHAR(38) BAS(*); DCL DD CH37 CHAR(37) BAS(*); DCL DD CH36 CHAR(36) BAS(*); DCL DD CH35 CHAR(35) BAS(*); DCL DD CH34 CHAR(34) BAS(*); DCL DD CH33 CHAR(33) BAS(*); DCL DD CH32 CHAR(32) BAS(*); DCL DD CH31 CHAR(31) BAS(*); DCL DD CH30 CHAR(30) BAS(*); DCL DD CH29 CHAR(29) BAS(*); DCL DD CH28 CHAR(28) BAS(*); DCL DD CH27 CHAR(27) BAS(*); DCL DD CH26 CHAR(26) BAS(*); DCL DD CH25 CHAR(25) BAS(*); DCL DD CH24 CHAR(24) BAS(*); DCL DD CH23 CHAR(23) BAS(*); DCL DD CH22 CHAR(22) BAS(*); DCL DD CH21 CHAR(21) BAS(*); DCL DD CH20 CHAR(20) BAS(*); DCL DD CH19 CHAR(19) BAS(*); DCL DD CH18 CHAR(18) BAS(*); DCL DD CH17 CHAR(17) BAS(*); DCL DD CH16 CHAR(16) BAS(*); DCL DD CH15 CHAR(15) BAS(*); DCL DD CH14 CHAR(14) BAS(*); DCL DD CH13 CHAR(13) BAS(*); DCL DD CH12 CHAR(12) BAS(*); DCL DD CH11 CHAR(11) BAS(*); DCL DD CH10 CHAR(10) BAS(*); DCL DD CH09 CHAR(09) BAS(*); DCL DD CH08 CHAR(08) BAS(*); DCL DD CH07 CHAR(07) BAS(*); DCL DD CH06 CHAR(06) BAS(*); DCL DD CH05 CHAR(05) BAS(*); DCL DD CH04 CHAR(04) BAS(*); DCL DD CH03 CHAR(03) BAS(*); DCL DD CH02 CHAR(02) BAS(*); DCL DD CH01 CHAR(01) BAS(*); DCL DD START-P BIN(2) BDRY(2); /* ALIGN FOR EFFICIENCY */ DCL DD STOP-P BIN(2); DCL DD LAST-P BIN(2); DCL DD COPY-P BIN(2); DCL DD DATE-CUTOFF BIN(2); DCL DD DEST-P BIN(2); DCL DD SCHEMA-P BIN(2); DCL DD STACK-P BIN(2); DCL DD POINT-P BIN(2); DCL DD SIGN-P BIN(2); DCL DD EMPTY-P BIN(2) INIT(80); DCL DD NEVER-SEEN BIN(2) INIT( 1); DCL DD THIS-CHAR BIN(2); /* INDEX TO CURRENT CHAR */ DCL DD FIRST-CHAR BIN(2); /* INDEX TO FIRST TRANSFER CHAR */ DCL DD LAST-CHAR BIN(2); /* INDEX TO LAST TRANSFER CHAR */ DCL DD FIRST-INPUT BIN(2); /* INDEX TO FIRST INPUT CHAR */ DCL DD LAST-INPUT BIN(2); /* INDEX TO LAST INPUT CHAR */ DCL DD FIRST-BLANK BIN(2); /* INDEX TO FIRST BLANK CHAR */ DCL DD LAST-BLANK BIN(2); /* INDEX TO LAST BLANK CHAR */ DCL DD ATTR-P BIN(2); /* INDEX TO ATTRIBUTE ON SCREEN */ DCL DD FORM-P BIN(2); /* INDEX TO FORMAT ON SCREEN */ DCL DD BASE-P BIN(2); /* INDEX TO FORMAT ON SCREEN */ DCL DD LEFT-P-&-CHAR-P BIN(4) BDRY(4); /* ALIGNMENT */ DCL DD LEFT-P BIN(2) DEF(LEFT-P-&-CHAR-P) POS(1); DCL DD CHAR-P BIN(2) DEF(LEFT-P-&-CHAR-P) POS(3); DCL DD NBR-DIGITS-&-CON BIN(4) BDRY(4); DCL DD NBR-OF-DIGITS BIN(2) DEF(NBR-DIGITS-&-CON) POS(1); DCL DD DIGITS CHAR(1) DEF(NBR-OF-DIGITS) POS(2); DCL DD NBR-OF-CONS-D BIN(2) DEF(NBR-DIGITS-&-CON) POS(3); DCL DD BOTH-BY-1 BIN(4) BDRY(4) INIT(H'00010001'); DCL DD ATTR-VALUE BIN(2) INIT(0); DCL DD THE-ATTR CHAR(1) DEF(ATTR-VALUE) POS(2); DCL DD FORM-VALUE BIN(2) INIT(0); DCL DD THE-FORM CHAR(1) DEF(FORM-VALUE) POS(2); DCL DD CHAR-VALUE BIN(2) INIT(0); DCL DD THE-CHAR CHAR(1) DEF(CHAR-VALUE) POS(2); DCL DD COMMA-VALUE BIN(2); DCL DD * CHAR(1) DEF(COMMA-VALUE) POS(1) INIT(X'00'); DCL DD THE-COMMA CHAR(1) DEF(COMMA-VALUE) POS(2) INIT( "," ); DCL DD POINT-VALUE BIN(2); DCL DD * CHAR(1) DEF(POINT-VALUE) POS(1) INIT(X'00'); DCL DD THE-POINT CHAR(1) DEF(POINT-VALUE) POS(2) INIT( "." ); DCL DD DIGIT-VALUE BIN(2) INIT(0); DCL DD THE-DIGIT CHAR(1) DEF(DIGIT-VALUE) POS(2); DCL DD DECIMALS-PRESENT BIN(2) INIT(0); DCL DD DECIMALS-WANTED BIN(2) INIT(0); DCL DD DECIMALS CHAR(1) DEF(DECIMALS-WANTED) POS(2); DCL DD NUMBER BIN(2); DCL DD QUOTIENT BIN(2); DCL DD REMAINDER BIN(2); DCL DD SAVED-YEAR BIN(2) INIT(0); DCL DD SAVED-MONTH BIN(2) INIT(0); DCL DD YEAR-VALUE BIN(2); DCL DD MONTH-VALUE BIN(2); DCL DD DAY-VALUE BIN(2); DCL DD LENGTH BIN(2); DCL DD CHARS CHAR(1923) BAS(*); DCL DD CHAR(1923) CHAR(1) DEF(CHARS); DCL DD CURR-SIGN CHAR(1); DCL DD CURR-SEPARATOR CHAR(1); DCL DD DIGIT-STACK(80) CHAR(1); DCL DD LC-CHARS CHAR(256); DCL DD *(16) CHAR(16) DEF(LC-CHARS) POS(1) INIT (X'6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F', /* 00-0F ALL CTRL-CHARS */ X'6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F', /* 10-1F ARE TRANSLATED */ X'6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F', /* 20-2F INTO RANGE "?" */ X'6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F', /* 30-3F */ X'406F42434445464748494A4B4C4D4E4F', /* 40-4F */ X'505152535455565758595A5B5C5D5E6F', /* 50-5F */ X'606162636465666768696A6B6C6D6E6F', /* 60-6F */ X'707172737475767778797A7B6F7D7E7F', /* 70-7F */ X'808182838485868788898A8B8C8D8E8F', /* 80-8F */ X'6F9192939495969798999A9B9C6F9E9F', /* 90-9F */ X'6F6FA2A3A4A5A6A7A8A9AA6FACADAEAF', /* A0-AF */ X'B0B1B2B3B46F6F6F6F6FBABB6F6F6FBF', /* B0-BF */ X'C0C1C2C3C4C5C6C7C8C9CACBCCCDCECF', /* C0-CF */ X'D0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF', /* D0-DF */ X'6F6FE2E3E4E5E6E7E8E9EAEBECEDEEEF', /* E0-EF */ X'F0F1F2F3F4F5F6F7F8F9FAFBFCFDFE6F');/* F0-FF */ DCL DD UC-CHARS CHAR(256); DCL DD *(16) CHAR(16) DEF(UC-CHARS) POS(1) INIT (X'6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F', /* 00-0F ALL CTRL-CHARS */ X'6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F', /* 10-1F ARE TRANSLATED */ X'6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F', /* 20-2F INTO RANGE "?" */ X'6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F', /* 30-3F */ X'406FC1C1C1C1C1C1C3D54A4B4C4D4E4F', /* 40-4F ACCENTS REMOVED */ X'50C5C5C5C5C9C9C9C9E25A5B5C5D5E6F', /* 50-5F FROM ACCENTED */ X'6061C1C1C1C1C1C1C1D56A6B6C6D6E6F', /* 60-6F LETTERS... */ X'D6C5C5C5C5C9C9C9C9797A7B6F7D7E7F', /* 70-7F */ X'D6C1C2C3C4C5C6C7C8C98A8BC4E8D78F', /* 80-8F LOWER CASE */ X'6FD1D2D3D4D5D6D7D8D9C1D6C16FC1F0', /* 90-9F LETTERS => */ X'6F6FE2E3E4E5E6E7E8E9AA6FC4E8D7F0', /* A0-AF UPPER CASE */ X'C3D3E8B3B46F6F6F6F6FBABB6F6F6FBF', /* B0-BF */ X'C0C1C2C3C4C5C6C7C8C9CAD6D6D6D6D6', /* C0-CF */ X'D0D1D2D3D4D5D6D7D8D9DAE4E4E4E4E8', /* D0-DF */ X'6F6FE2E3E4E5E6E7E8E9EAD6D6D6D6D6', /* E0-EF */ X'F0F1F2F3F4F5F6F7F8F9FAE4E4E4E46F');/* F0-FF */ DCL DD MODE-CLASS CHAR(256); DCL DD *(16) CHAR(16) DEF(MODE-CLASS) POS(1) INIT (X'01010101010101010101010101010101', /* 00-0F ---------------- */ X'01010101010101010101010101010101', /* 10-1F ---------------- */ X'01010101010101010101010101010101', /* 20-2F ---------------- */ X'01010101010101010101010101010101', /* 30-3F ---------------- */ X'06010101010101010101010701010101', /* 40-4F ----------.<(+- */ X'01010101010101010101010501010101', /* 50-5F &---------!$*);- */ X'01010101010101010101010101010101', /* 60-6F -/---------,%_>? */ X'01010101010101010101010101010101', /* 70-7F ----------:#@'=" */ X'01010101010101010101010101010101', /* 80-8F -abcdefghi------ */ X'01010101010101010101010101010101', /* 90-9F -jklmnopqr------ */ X'01010101010101010101010101010101', /* A0-AF --stuvwxyz------ */ X'01010101010101010101010101010101', /* B0-BF ---------------- */ X'01010101010101010101010101010101', /* C0-CF -ABCDEFGHI------ */ X'01010101010201010101010101010101', /* D0-DF -JKLMNOPQR------ */ X'01010401010101010301010101010101', /* E0-EF --STUVWXYZ------ */ X'01010101010101010101010101010101');/* F0-FF 0123456789------ */ /* MODE CLASSES... */ /* CLASS CHARS MEANING */ /* 01 --- INVALID */ /* 02 N EXCLUDE DECIMALS, YYMMDD */ /* 03 Y INCLUDE DECIMALS, YYMMDD */ /* 04 S EXCLUDE DECIMALS, MMDDYY */ /* 05 $ INCLUDE DECIMALS, MMDDYY */ /* 06 SPACE EXCLUDE DECIMALS, DDMMYY */ /* 07 . INCLUDE DECIMALS, DDMMYY */ DCL DD POINT-FORMATS CHAR(7) INIT ("? . . ."); DCL DD POINT-FORMAT(7) CHAR(1) DEF(POINT-FORMATS) POS(1); DCL DD SD-CHAR-CLASS CHAR(256); DCL DD *(16) CHAR(16) DEF(SD-CHAR-CLASS) POS(1) INIT (X'01010101010101010101010101010101', /* 00-0F ---------------- */ X'01010101010101010101010101010101', /* 10-1F ---------------- */ X'01010101010101010101010101010101', /* 20-2F ---------------- */ X'01010101010101010101010101010101', /* 30-3F ---------------- */ X'02010101010101010101010A0D010E01', /* 40-4F ----------.<(+- */ X'01010101010101010101010F01010101', /* 50-5F &---------!$*);- */ X'0D0C0101010101010101010B01010E01', /* 60-6F -/---------,%_>? */ X'01010101010101010101010101010F01', /* 70-7F ----------:#@'=" */ X'01010101010101010101010101010101', /* 80-8F -abcdefghi------ */ X'01010101010101010101010101010101', /* 90-9F -jklmnopqr------ */ X'01010101010101010101010101010101', /* A0-AF --stuvwxyz------ */ X'01010101010101010101010101010101', /* B0-BF ---------------- */ X'0123171D06202122191C010101010101', /* C0-CF -ABCDEFGHI------ */ X'011F0713180811161E12010101010101', /* D0-DF -JKLMNOPQR------ */ X'01011B14151A10040509010101010101', /* E0-EF --STUVWXYZ------ */ X'03030303030303030303010101010101');/* F0-FF 0123456789------ */ /* CHARACTER CLASSES... */ /* CLASS EBCDIC CHARS MEANING */ /* 01 -- -- INVALID */ /* 02 40 SPACE SPACE */ /* 03 F0:F9 0:9 FORMAT: DECIMALS */ /* 04 E7 X UPPER CASE TEXT */ /* 05 E8 Y LOWER CASE TEXT */ /* 06 C4 D DATE */ /* 07 D2 K CARDINAL NUMBER */ /* 08 D5 N INTEGER LEADING ZEROES */ /* 09 E9 Z INTEGER BLANK WHEN ZERO */ /* 0A 4B . LAYOUT: DECIMAL POINT, DATE SEP. */ /* 0B 6B , THOUSAND SEPARATOR */ /* 0C 61 / DATE SEPARATOR */ /* 0D 60 4C - < MINUS SIGN, DATE SEP. */ /* 0E 4E 6E + > PLUS SIGN */ /* 0F 7E 5B = $ BLANK WHEN ZERO */ /* 10 E6 W ATTRIBUTE: WINDOW */ /* 11 D6 O OPTION */ /* 12 D9 R RECALL */ /* 13 D3 L LABEL */ /* 14 E3 T TITLE */ /* 15 E4 U UNDERLINE */ /* 16 D7 P PROTECTED */ /* 17 C2 B BLANK */ /* 18 D4 M MESSAGE */ /* 19 C8 H HIGHLITE */ /* 1A E5 V BOX */ /* 1B E2 S SECURE */ /* 1C C9 I INPUT */ /* 1D C3 C CLEAR THEN INPUT */ /* 1E D8 Q CURSOR THEN INPUT */ /* 1F D1 J EDIT */ /* 20 C5 E ERROR (INPUT) */ /* 21 C6 F ERROR (CLEAR) */ /* 22 C7 G ERROR (CURSOR) */ /* 23 C1 A ERROR (EDIT) */ /* 24 MODIF */ DCL IDL ATTR-ACTION (ATTRIBUTE-ERROR , /* 01 INVALID */ ATTRIBUTE-ERROR , /* 02 SPACE */ ATTRIBUTE-ERROR , /* 03 DIGIT */ ATTRIBUTE-ERROR , /* 04 X */ ATTRIBUTE-ERROR , /* 05 Y */ ATTRIBUTE-ERROR , /* 06 D */ ATXRIBUTE-ERROR , /* 07 K */ ATTRIBUTE-ERROR , /* 08 N */ ATTRIBUTE-ERROR , /* 09 Z */ ATTRIBUTE-ERROR , /* 0A . */ ATTRIBUTE-ERROR , /* 0B , */ ATTRIBUTE-ERROR , /* 0C / */ ATTRIBUTE-ERROR , /* 0D - < */ ATTRIBUTE-ERROR , /* 0E + < */ ATTRIBUTE-ERROR , /* 0F = $ */ OUTPUT-ATTRIBUTE , /* 10 W */ OPTION-ATTRIBUTE , /* 11 O */ RECALL-ATTRIBUTE , /* 12 R */ OUTPUT-ATTRIBUTE , /* 13 L */ OUTPUT-ATTRIBUTE , /* 14 T */ OUTPUT-ATTRIBUTE , /* 15 U */ OUTPUT-ATTRIBUTE , /* 16 P */ BLANK-ATTRIBUTE , /* 17 B */ OUTPUT-ATTRIBUTE , /* 18 M */ OUTPUT-ATTRIBUTE , /* 19 H */ OUTPUT-ATTRIBUTE , /* 1A V */ SECURE-ATTRIBUTE , /* 1B S */ INPUT-ATTRIBUTE , /* 1C I */ CLEAR-ATTRIBUTE , /* 1D C */ CURSOR-ATTRIBUTE , /* 1E Q */ EDIT-ATTRIBUTE , /* 1F J */ ERROR-ATTRIBUTE , /* 20 E */ ERROR-ATTRIBUTE , /* 21 F */ ERROR-ATTRIBUTE , /* 22 G */ ERROR-ATTRIBUTE , /* 23 A */ ATTRIBUTE-ERROR );/* 24 MODIF */ DCL IDL DIM-ACTION (FIND-INPUT-ATTR , /* 01 INVALID */ FIND-INPUT-ATTR , /* 02 SPACE */ FIND-INPUT-ATTR , /* 03 DIGIT */ FIND-INPUT-ATTR , /* 04 X */ FIND-INPUT-ATTR , /* 05 Y */ FIND-INPUT-ATTR , /* 06 D */ FIND-INPUT-ATTR , /* 07 K */ FIND-INPUT-ATTR , /* 08 N */ FIND-INPUT-ATTR , /* 09 Z */ FIND-INPUT-ATTR , /* 0A . */ FIND-INPUT-ATTR , /* 0B , */ FIND-INPUT-ATTR , /* 0C / */ FIND-INPUT-ATTR , /* 0D - < */ FIND-INPUT-ATTR , /* 0E + < */ FIND-INPUT-ATTR , /* 0F = $ */ FIND-INPUT-ATTR , /* 10 W */ FIND-INPUT-ATTR , /* 11 O */ FIND-INPUT-ATTR , /* 12 R */ FIND-INPUT-ATTR , /* 13 L */ FIND-INPUT-ATTR , /* 14 T */ FIND-INPUT-ATTR , /* 15 U */ FIND-INPUT-ATTR , /* 16 P */ FIND-INPUT-ATTR , /* 17 B */ FIND-INPUT-ATTR , /* 18 M */ FIND-INPUT-ATTR , /* 19 H */ FIND-INPUT-ATTR , /* 1A V */ FIND-INPUT-ATTR , /* 1B S */ DIM-THE-FIELD , /* 1C I */ DIM-THE-FIELD , /* 1D C */ DIM-THE-FIELD , /* 1E Q */ FIND-INPUT-ATTR , /* 1F J */ FIND-INPUT-ATTR , /* 20 E */ FIND-INPUT-ATTR , /* 21 F */ FIND-INPUT-ATTR , /* 22 G */ FIND-INPUT-ATTR , /* 23 A */ FIND-INPUT-ATTR );/* 24 MODIF */ DCL IDL OUTPUT-FORMAT-ACTION (FORMAT-ERROR , /* 01 INVALID */ FORMAT-ERROR , /* 02 SPACE */ OUTPUT-IS-DECIMALS , /* 03 DIGIT */ OUTPUT-IS-UPPER-TEXT , /* 04 X */ OUTPUT-IS-LOWER-TEXT , /* 05 Y */ OUTPUT-IS-DATE , /* 06 D */ OUTPUT-IS-CARDINAL , /* 07 K */ OUTPUT-IS-N-NUMBER , /* 08 N */ OUTPUT-IS-Z-NUMBER , /* 09 Z */ FORMAT-ERROR , /* 0A . */ FORMAT-ERROR , /* 0B , */ FORMAT-ERROR , /* 0C / */ FORMAT-ERROR , /* 0D - < */ FORMAT-ERROR , /* 0E + < */ FORMAT-ERROR , /* 0F = $ */ EMPTY-FIELD , /* 10 W */ EMPTY-FIELD , /* 11 O */ EMPTY-FIELD , /* 12 R */ EMPTY-FIELD , /* 13 L */ EMPTY-FIELD , /* 14 T */ EMPTY-FIELD , /* 15 U */ EMPTY-FIELD , /* 16 P */ EMPTY-FIELD , /* 17 B */ EMPTY-FIELD , /* 18 M */ EMPTY-FIELD , /* 19 H */ EMPTY-FIELD , /* 1A V */ EMPTY-FIELD , /* 1B S */ EMPTY-FIELD , /* 1C I */ EMPTY-FIELD , /* 1D C */ EMPTY-FIELD , /* 1E Q */ EMPTY-FIELD , /* 1F J */ EMPTY-FIELD , /* 20 E */ EMPTY-FIELD , /* 21 F */ EMPTY-FIELD , /* 22 G */ EMPTY-FIELD , /* 23 A */ EMPTY-FIELD );/* 24 MODIF */ DCL IDL OUTPUT-INTEGER-ACTION (FORMAT-ERROR , /* 01 INVALID */ OUTPUT-NO-P-S-Z-C , /* 02 SPACE */ ATTRIBUTE-ERROR , /* 03 DIGIT */ ATTRIBUTE-ERROR , /* 04 X */ ATTRIBUTE-ERROR , /* 05 Y */ ATTRIBUTE-ERROR , /* 06 D */ ATTRIBUTE-ERROR , /* 07 K */ ATTRIBUTE-ERROR , /* 08 N */ ATTRIBUTE-ERROR , /* 09 Z */ FORMAT-ERROR , /* 0A . */ OUTPUT-INTEGER , /* 0B , */ FORMAT-ERROR , /* 0C / */ OUTPUT-INTEGER , /* 0D - < */ OUTPUT-INTEGER , /* 0E + < */ OUTPUT-INTEGER , /* 0F = $ */ OUTPUT-INTEGER , /* 10 W */ OUTPUT-INTEGER , /* 11 O */ OUTPUT-INTEGER , /* 12 R */ OUTPUT-INTEGER , /* 13 L */ OUTPUT-INTEGER , /* 14 T */ OUTPUT-INTEGER , /* 15 U */ OUTPUT-INTEGER , /* 16 P */ OUTPUT-INTEGER , /* 17 B */ OUTPUT-INTEGER , /* 18 M */ OUTPUT-INTEGER , /* 19 H */ OUTPUT-INTEGER , /* 1A V */ OUTPUT-INTEGER , /* 1B S */ OUTPUT-INTEGER , /* 1C I */ OUTPUT-INTEGER , /* 1D C */ OUTPUT-INTEGER , /* 1E Q */ OUTPUT-INTEGER , /* 1F J */ OUTPUT-INTEGER , /* 20 E */ OUTPUT-INTEGER , /* 21 F */ OUTPUT-INTEGER , /* 22 G */ OUTPUT-INTEGER , /* 23 A */ OUTPUT-INTEGER );/* 24 MODIF */ DCL IDL OUTPUT-POINT-ACTION (FORMAT-ERROR , /* 01 INVALID */ OUTPUT-NO-POINT , /* 02 SPACE */ ATTRIBUTE-ERROR , /* 03 DIGIT */ ATTRIBUTE-ERROR , /* 04 X */ ATTRIBUTE-ERROR , /* 05 Y */ ATTRIBUTE-ERROR , /* 06 D */ ATTRIBUTE-ERROR , /* 07 K */ ATTRIBUTE-ERROR , /* 08 N */ ATTRIBUTE-ERROR , /* 09 Z */ OUTPUT-POINT , /* 0A . */ OUTPUT-NO-POINT , /* 0B , */ FORMAT-ERROR , /* 0C / */ OUTPUT-NO-POINT , /* 0D - < */ OUTPUT-NO-POINT , /* 0E + < */ OUTPUT-NO-POINT , /* 0F = $ */ OUTPUT-NO-POINT , /* 10 W */ OUTPUT-NO-POINT , /* 11 O */ OUTPUT-NO-POINT , /* 12 R */ OUTPUT-NO-POINT , /* 13 L */ OUTPUT-NO-POINT , /* 14 T */ OUTPUT-NO-POINT , /* 15 U */ OUTPUT-NO-POINT , /* 16 P */ OUTPUT-NO-POINT , /* 17 B */ OUTPUT-NO-POINT , /* 18 M */ OUTPUT-NO-POINT , /* 19 H */ OUTPUT-NO-POINT , /* 1A V */ OUTPUT-NO-POINT , /* 1B S */ OUTPUT-NO-POINT , /* 1C I */ OUTPUT-NO-POINT , /* 1D C */ OUTPUT-NO-POINT , /* 1E Q */ OUTPUT-NO-POINT , /* 1F J */ OUTPUT-NO-POINT , /* 20 E */ OUTPUT-NO-POINT , /* 21 F */ OUTPUT-NO-POINT , /* 22 G */ OUTPUT-NO-POINT , /* 23 A */ OUTPUT-NO-POINT );/* 24 MODIF */ DCL IDL OUTPUT-SIGN-ACTION (FORMAT-ERROR , /* 01 INVALID */ OUTPUT-NO-S-Z-C , /* 02 SPACE */ ATTRIBUTE-ERROR , /* 03 DIGIT */ ATTRIBUTE-ERROR , /* 04 X */ ATTRIBUTE-ERROR , /* 05 Y */ ATTRIBUTE-ERROR , /* 06 D */ ATTRIBUTE-ERROR , /* 07 K */ ATTRIBUTE-ERROR , /* 08 N */ ATTRIBUTE-ERROR , /* 09 Z */ FORMAT-ERROR , /* 0A . */ OUTPUT-NO-SIGN , /* 0B , */ FORMAT-ERROR , /* 0C / */ OUTPUT-SIGN , /* 0D - < */ OUTPUT-SIGN , /* 0E + < */ OUTPUT-NO-SIGN , /* 0F = $ */ OUTPUT-NO-SIGN , /* 10 W */ OUTPUT-NO-SIGN , /* 11 O */ OUTPUT-NO-SIGN , /* 12 R */ OUTPUT-NO-SIGN , /* 13 L */ OUTPUT-NO-SIGN , /* 14 T */ OUTPUT-NO-SIGN , /* 15 U */ OUTPUT-NO-SIGN , /* 16 P */ OUTPUT-NO-SIGN , /* 17 B */ OUTPUT-NO-SIGN , /* 18 M */ OUTPUT-NO-SIGN , /* 19 H */ OUTPUT-NO-SIGN , /* 1A V */ OUTPUT-NO-SIGN , /* 1B S */ OUTPUT-NO-SIGN , /* 1C I */ OUTPUT-NO-SIGN , /* 1D C */ OUTPUT-NO-SIGN , /* 1E Q */ OUTPUT-NO-SIGN , /* 1F J */ OUTPUT-NO-SIGN , /* 20 E */ OUTPUT-NO-SIGN , /* 21 F */ OUTPUT-NO-SIGN , /* 22 G */ OUTPUT-NO-SIGN , /* 23 A */ OUTPUT-NO-SIGN );/* 24 MODIF */ DCL IDL OUTPUT-ZERO-ACTION (FORMAT-ERROR , /* 01 INVALID */ OUTPUT-NO-Z-C , /* 02 SPACE */ ATTRIBUTE-ERROR , /* 03 DIGIT */ ATTRIBUTE-ERROR , /* 04 X */ ATTRIBUTE-ERROR , /* 05 Y */ ATTRIBUTE-ERROR , /* 06 D */ ATTRIBUTE-ERROR , /* 07 K */ ATTRIBUTE-ERROR , /* 08 N */ ATTRIBUTE-ERROR , /* 09 Z */ FORMAT-ERROR , /* 0A . */ OUTPUT-NO-ZERO , /* 0B , */ FORMAT-ERROR , /* 0C / */ FORMAT-ERROR , /* 0D - < */ FORMAT-ERROR , /* 0E + < */ OUTPUT-ZERO , /* 0F = $ */ OUTPUT-NO-ZERO , /* 10 W */ OUTPUT-NO-ZERO , /* 11 O */ OUTPUT-NO-ZERO , /* 12 R */ OUTPUT-NO-ZERO , /* 13 L */ OUTPUT-NO-ZERO , /* 14 T */ OUTPUT-NO-ZERO , /* 15 U */ OUTPUT-NO-ZERO , /* 16 P */ OUTPUT-NO-ZERO , /* 17 B */ OUTPUT-NO-ZERO , /* 18 M */ OUTPUT-NO-ZERO , /* 19 H */ OUTPUT-NO-ZERO , /* 1A V */ OUTPUT-NO-ZERO , /* 1B S */ OUTPUT-NO-ZERO , /* 1C I */ OUTPUT-NO-ZERO , /* 1D C */ OUTPUT-NO-ZERO , /* 1E Q */ OUTPUT-NO-ZERO , /* 1F J */ OUTPUT-NO-ZERO , /* 20 E */ OUTPUT-NO-ZERO , /* 21 F */ OUTPUT-NO-ZERO , /* 22 G */ OUTPUT-NO-ZERO , /* 23 A */ OUTPUT-NO-ZERO );/* 24 MODIF */ DCL IDL OUTPUT-COMMA-ACTION (FORMAT-ERROR , /* 01 INVALID */ OUTPUT-NO-C , /* 02 SPACE */ ATTRIBUTE-ERROR , /* 03 DIGIT */ ATTRIBUTE-ERROR , /* 04 X */ ATTRIBUTE-ERROR , /* 05 Y */ ATTRIBUTE-ERROR , /* 06 D */ ATTRIBUTE-ERROR , /* 07 K */ ATTRIBUTE-ERROR , /* 08 N */ ATTRIBUTE-ERROR , /* 09 Z */ FORMAT-ERROR , /* 0A . */ OUTPUT-COMMA , /* 0B , */ FORMAT-ERROR , /* 0C / */ FORMAT-ERROR , /* 0D - < */ FORMAT-ERROR , /* 0E + < */ FORMAT-ERROR , /* 0F = $ */ OUTPUT-NO-COMMA , /* 10 W */ OUTPUT-NO-COMMA , /* 11 O */ OUTPUT-NO-COMMA , /* 12 R */ OUTPUT-NO-COMMA , /* 13 L */ OUTPUT-NO-COMMA , /* 14 T */ OUTPUT-NO-COMMA , /* 15 U */ OUTPUT-NO-COMMA , /* 16 P */ OUTPUT-NO-COMMA , /* 17 B */ OUTPUT-NO-COMMA , /* 18 M */ OUTPUT-NO-COMMA , /* 19 H */ OUTPUT-NO-COMMA , /* 1A V */ OUTPUT-NO-COMMA , /* 1B S */ OUTPUT-NO-COMMA , /* 1C I */ OUTPUT-NO-COMMA , /* 1D C */ OUTPUT-NO-COMMA , /* 1E Q */ OUTPUT-NO-COMMA , /* 1F J */ OUTPUT-NO-COMMA , /* 20 E */ OUTPUT-NO-COMMA , /* 21 F */ OUTPUT-NO-COMMA , /* 22 G */ OUTPUT-NO-COMMA , /* 23 A */ OUTPUT-NO-COMMA );/* 24 MODIF */ DCL IDL OUTPUT-TEST-IF-SIGN (FORMAT-ERROR , /* 01 INVALID */ END-OF-DIGITS , /* 02 SPACE */ END-OF-DIGITS , /* 03 DIGIT */ END-OF-DIGITS , /* 04 X */ END-OF-DIGITS , /* 05 Y */ END-OF-DIGITS , /* 06 D */ END-OF-DIGITS , /* 07 K */ END-OF-DIGITS , /* 08 N */ END-OF-DIGITS , /* 09 Z */ FORMAT-ERROR , /* 0A . */ FORMAT-ERROR , /* 0B , */ FORMAT-ERROR , /* 0C / */ OUTPUT-PICKUP-SIGN , /* 0D - < */ OUTPUT-PICKUP-SIGN , /* 0E + < */ FORMAT-ERROR , /* 0F = $ */ END-OF-DIGITS , /* 10 W */ END-OF-DIGITS , /* 11 O */ END-OF-DIGITS , /* 12 R */ END-OF-DIGITS , /* 13 L */ END-OF-DIGITS , /* 14 T */ END-OF-DIGITS , /* 15 U */ END-OF-DIGITS , /* 16 P */ END-OF-DIGITS , /* 17 B */ END-OF-DIGITS , /* 18 M */ END-OF-DIGITS , /* 19 H */ END-OF-DIGITS , /* 1A V */ END-OF-DIGITS , /* 1B S */ END-OF-DIGITS , /* 1C I */ END-OF-DIGITS , /* 1D C */ END-OF-DIGITS , /* 1E Q */ END-OF-DIGITS , /* 1F J */ END-OF-DIGITS , /* 20 E */ END-OF-DIGITS , /* 21 F */ END-OF-DIGITS , /* 22 G */ END-OF-DIGITS , /* 23 A */ END-OF-DIGITS );/* 24 MODIF */ DCL IDL TEST-IF-ATTRIBUTE (ATTRIBUTE-ERROR , /* 01 INVALID */ ATTRIBUTE-ERROR , /* 02 SPACE */ ATTRIBUTE-ERROR , /* 03 DIGIT */ ATTRIBUTE-ERROR , /* 04 X */ ATTRIBUTE-ERROR , /* 05 Y */ ATTRIBUTE-ERROR , /* 06 D */ ATTRIBUTE-ERROR , /* 07 K */ ATTRIBUTE-ERROR , /* 08 N */ ATTRIBUTE-ERROR , /* 09 Z */ ATTRIBUTE-ERROR , /* 0A . */ ATTRIBUTE-ERROR , /* 0B , */ ATTRIBUTE-ERROR , /* 0C / */ ATTRIBUTE-ERROR , /* 0D - < */ ATTRIBUTE-ERROR , /* 0E + < */ ATTRIBUTE-ERROR , /* 0F = $ */ COPY-DECIMAL-TO-SCREEN , /* 10 W */ COPY-DECIMAL-TO-SCREEN , /* 11 O */ COPY-DECIMAL-TO-SCREEN , /* 12 R */ COPY-DECIMAL-TO-SCREEN , /* 13 L */ COPY-DECIMAL-TO-SCREEN , /* 14 T */ COPY-DECIMAL-TO-SCREEN , /* 15 U */ COPY-DECIMAL-TO-SCREEN , /* 16 P */ COPY-DECIMAL-TO-SCREEN , /* 17 B */ COPY-DECIMAL-TO-SCREEN , /* 18 M */ COPY-DECIMAL-TO-SCREEN , /* 19 H */ COPY-DECIMAL-TO-SCREEN , /* 1A V */ COPY-DECIMAL-TO-SCREEN , /* 1B S */ COPY-DECIMAL-TO-SCREEN , /* 1C I */ COPY-DECIMAL-TO-SCREEN , /* 1D C */ COPY-DECIMAL-TO-SCREEN , /* 1E Q */ COPY-DECIMAL-TO-SCREEN , /* 1F J */ COPY-DECIMAL-TO-SCREEN , /* 20 E */ COPY-DECIMAL-TO-SCREEN , /* 21 F */ COPY-DECIMAL-TO-SCREEN , /* 22 G */ COPY-DECIMAL-TO-SCREEN , /* 23 A */ COPY-DECIMAL-TO-SCREEN );/* 24 MODIF */ DCL IDL FIX-ATTR-ACTION (ATTRIBUTE-ERROR , /* 01 INVALID */ ATTRIBUTE-ERROR , /* 02 SPACE */ ATTRIBUTE-ERROR , /* 03 DIGIT */ ATTRIBUTE-ERROR , /* 04 X */ ATTRIBUTE-ERROR , /* 05 Y */ ATTRIBUTE-ERROR , /* 06 D */ ATTRIBUTE-ERROR , /* 07 K */ ATTRIBUTE-ERROR , /* 08 N */ ATTRIBUTE-ERROR , /* 09 Z */ ATTRIBUTE-ERROR , /* 0A . */ ATTRIBUTE-ERROR , /* 0B , */ ATTRIBUTE-ERROR , /* 0C / */ ATTRIBUTE-ERROR , /* 0D - < */ ATTRIBUTE-ERROR , /* 0E + < */ ATTRIBUTE-ERROR , /* 0F = $ */ GET-NEXT-FIELD , /* 10 W */ GET-NEXT-FIELD , /* 11 O */ GET-NEXT-FIELD , /* 12 R */ GET-NEXT-FIELD , /* 13 L */ GET-NEXT-FIELD , /* 14 T */ GET-NEXT-FIELD , /* 15 U */ GET-NEXT-FIELD , /* 16 P */ GET-NEXT-FIELD , /* 17 B */ GET-NEXT-FIELD , /* 18 M */ GET-NEXT-FIELD , /* 19 H */ GET-NEXT-FIELD , /* 1A V */ TEST-FIELD-FORMAT , /* 1B S */ SET-MODIF-ATTR , /* 1C I */ SET-MODIF-ATTR , /* 1D C */ SET-MODIF-ATTR , /* 1E Q */ TEST-FIELD-FORMAT , /* 1F J */ RESET-ERROR-E , /* 20 E */ RESET-ERROR-F , /* 21 F */ RESET-ERROR-G , /* 22 G */ RESET-ERROR-A , /* 23 A */ SET-MODIF-ATTR );/* 24 MODIF */ DCL IDL FIX-ATTR-ACTION-LC (ATTRIBUTE-ERROR , /* 01 INVALID */ ATTRIBUTE-ERROR , /* 02 SPACE */ ATTRIBUTE-ERROR , /* 03 DIGIT */ ATTRIBUTE-ERROR , /* 04 X */ ATTRIBUTE-ERROR , /* 05 Y */ ATTRIBUTE-ERROR , /* 06 D */ ATTRIBUTE-ERROR , /* 07 K */ ATTRIBUTE-ERROR , /* 08 N */ ATTRIBUTE-ERROR , /* 09 Z */ ATTRIBUTE-ERROR , /* 0A . */ ATTRIBUTE-ERROR , /* 0B , */ ATTRIBUTE-ERROR , /* 0C / */ ATTRIBUTE-ERROR , /* 0D - < */ ATTRIBUTE-ERROR , /* 0E + < */ ATTRIBUTE-ERROR , /* 0F = $ */ GET-NEXT-FIELD , /* 10 W */ GET-NEXT-FIELD , /* 11 O */ GET-NEXT-FIELD , /* 12 R */ GET-NEXT-FIELD , /* 13 L */ GET-NEXT-FIELD , /* 14 T */ GET-NEXT-FIELD , /* 15 U */ GET-NEXT-FIELD , /* 16 P */ GET-NEXT-FIELD , /* 17 B */ GET-NEXT-FIELD , /* 18 M */ GET-NEXT-FIELD , /* 19 H */ GET-NEXT-FIELD , /* 1A V */ TEST-FIELD-FORMAT , /* 1B S */ SET-MODIF-ATTR-LC , /* 1C I */ SET-MODIF-ATTR-LC , /* 1D C */ SET-MODIF-ATTR-LC , /* 1E Q */ TEST-FIELD-FORMAT , /* 1F J */ RESET-ERROR-E-LC , /* 20 E */ RESET-ERROR-F-LC , /* 21 F */ RESET-ERROR-G-LC , /* 22 G */ RESET-ERROR-A-LC , /* 23 A */ SET-MODIF-ATTR-LC );/* 24 MODIF */ DCL IDL ACT-ON-INPUT-FORMAT (FORMAT-ERROR , /* 01 INVALID */ FORMAT-ERROR , /* 02 SPACE */ INPUT-IS-DECIMALS , /* 03 DIGIT */ INPUT-IS-UPPER-TEXT , /* 04 X */ INPUT-IS-LOWER-TEXT , /* 05 Y */ INPUT-IS-DATE , /* 06 D */ INPUT-IS-CARDINAL , /* 07 K */ INPUT-IS-N-NUMBER , /* 08 N */ INPUT-IS-Z-NUMBER , /* 09 Z */ FORMAT-ERROR , /* 0A . */ FORMAT-ERROR , /* 0B , */ FORMAT-ERROR , /* 0C / */ FORMAT-ERROR , /* 0D - < */ FORMAT-ERROR , /* 0E + < */ FORMAT-ERROR , /* 0F = $ */ GET-NEXT-FIELD , /* 10 W */ GET-NEXT-FIELD , /* 11 O */ GET-NEXT-FIELD , /* 12 R */ GET-NEXT-FIELD , /* 13 L */ GET-NEXT-FIELD , /* 14 T */ GET-NEXT-FIELD , /* 15 U */ GET-NEXT-FIELD , /* 16 P */ GET-NEXT-FIELD , /* 17 B */ GET-NEXT-FIELD , /* 18 M */ GET-NEXT-FIELD , /* 19 H */ GET-NEXT-FIELD , /* 1A V */ GET-NEXT-FIELD , /* 1B S */ GET-NEXT-FIELD , /* 1C I */ GET-NEXT-FIELD , /* 1D C */ GET-NEXT-FIELD , /* 1E Q */ GET-NEXT-FIELD , /* 1F J */ GET-NEXT-FIELD , /* 20 E */ GET-NEXT-FIELD , /* 21 F */ GET-NEXT-FIELD , /* 22 G */ GET-NEXT-FIELD , /* 23 A */ GET-NEXT-FIELD );/* 24 MODIF */ DCL IDL INPUT-TEST-IF-SIGN (FORMAT-ERROR , /* 01 INVALID */ UNSIGNED-NUMBER , /* 02 SPACE */ FORMAT-ERROR , /* 03 DIGIT */ FORMAT-ERROR , /* 04 X */ FORMAT-ERROR , /* 05 Y */ FORMAT-ERROR , /* 06 D */ FORMAT-ERROR , /* 07 K */ FORMAT-ERROR , /* 08 N */ FORMAT-ERROR , /* 09 Z */ UNSIGNED-NUMBER , /* 0A . */ UNSIGNED-NUMBER , /* 0B , */ FORMAT-ERROR , /* 0C / */ SIGNED-NUMBER , /* 0D - < */ SIGNED-NUMBER , /* 0E + < */ UNSIGNED-NUMBER , /* 0F = $ */ UNSIGNED-NUMBER , /* 10 W */ UNSIGNED-NUMBER , /* 11 O */ UNSIGNED-NUMBER , /* 12 R */ UNSIGNED-NUMBER , /* 13 L */ UNSIGNED-NUMBER , /* 14 T */ UNSIGNED-NUMBER , /* 15 U */ UNSIGNED-NUMBER , /* 16 P */ UNSIGNED-NUMBER , /* 17 B */ UNSIGNED-NUMBER , /* 18 M */ UNSIGNED-NUMBER , /* 19 H */ UNSIGNED-NUMBER , /* 1A V */ UNSIGNED-NUMBER , /* 1B S */ UNSIGNED-NUMBER , /* 1C I */ UNSIGNED-NUMBER , /* 1D C */ UNSIGNED-NUMBER , /* 1E Q */ UNSIGNED-NUMBER , /* 1F J */ UNSIGNED-NUMBER , /* 20 E */ UNSIGNED-NUMBER , /* 21 F */ UNSIGNED-NUMBER , /* 22 G */ UNSIGNED-NUMBER , /* 23 A */ UNSIGNED-NUMBER );/* 24 MODIF */ DCL IDL INPUT-TEST-IF-INTEGER-SIGN (FORMAT-ERROR , /* 01 INVALID */ UNSIGNED-INTEGER , /* 02 SPACE */ FORMAT-ERROR , /* 03 DIGIT */ FORMAT-ERROR , /* 04 X */ FORMAT-ERROR , /* 05 Y */ FORMAT-ERROR , /* 06 D */ FORMAT-ERROR , /* 07 K */ FORMAT-ERROR , /* 08 N */ FORMAT-ERROR , /* 09 Z */ FORMAT-ERROR , /* 0A . */ FORMAT-ERROR , /* 0B , */ FORMAT-ERROR , /* 0C / */ SIGNED-INTEGER , /* 0D - < */ SIGNED-INTEGER , /* 0E + < */ FORMAT-ERROR , /* 0F = $ */ UNSIGNED-INTEGER , /* 10 W */ UNSIGNED-INTEGER , /* 11 O */ UNSIGNED-INTEGER , /* 12 R */ UNSIGNED-INTEGER , /* 13 L */ UNSIGNED-INTEGER , /* 14 T */ UNSIGNED-INTEGER , /* 15 U */ UNSIGNED-INTEGER , /* 16 P */ UNSIGNED-INTEGER , /* 17 B */ UNSIGNED-INTEGER , /* 18 M */ UNSIGNED-INTEGER , /* 19 H */ UNSIGNED-INTEGER , /* 1A V */ UNSIGNED-INTEGER , /* 1B S */ UNSIGNED-INTEGER , /* 1C I */ UNSIGNED-INTEGER , /* 1D C */ UNSIGNED-INTEGER , /* 1E Q */ UNSIGNED-INTEGER , /* 1F J */ UNSIGNED-INTEGER , /* 20 E */ UNSIGNED-INTEGER , /* 21 F */ UNSIGNED-INTEGER , /* 22 G */ UNSIGNED-INTEGER , /* 23 A */ UNSIGNED-INTEGER );/* 24 MODIF */ DCL IDL INPUT-TEST-IF-ZERO (FORMAT-ERROR , /* 01 INVALID */ GET-COMMA-FORM , /* 02 SPACE */ FORMAT-ERROR , /* 03 DIGIT */ FORMAT-ERROR , /* 04 X */ FORMAT-ERROR , /* 05 Y */ FORMAT-ERROR , /* 06 D */ FORMAT-ERROR , /* 07 K */ FORMAT-ERROR , /* 08 N */ FORMAT-ERROR , /* 09 Z */ FORMAT-ERROR , /* 0A . */ GET-COMMA-FORM , /* 0B , */ FORMAT-ERROR , /* 0C / */ FORMAT-ERROR , /* 0D - < */ FORMAT-ERROR , /* 0E + < */ BLANK-WHEN-ZERO , /* 0F = $ */ GET-COMMA-FORM , /* 10 W */ GET-COMMA-FORM , /* 11 O */ GET-COMMA-FORM , /* 12 R */ GET-COMMA-FORM , /* 13 L */ GET-COMMA-FORM , /* 14 T */ GET-COMMA-FORM , /* 15 U */ GET-COMMA-FORM , /* 16 P */ GET-COMMA-FORM , /* 17 B */ GET-COMMA-FORM , /* 18 M */ GET-COMMA-FORM , /* 19 H */ GET-COMMA-FORM , /* 1A V */ GET-COMMA-FORM , /* 1B S */ GET-COMMA-FORM , /* 1C I */ GET-COMMA-FORM , /* 1D C */ GET-COMMA-FORM , /* 1E Q */ GET-COMMA-FORM , /* 1F J */ GET-COMMA-FORM , /* 20 E */ GET-COMMA-FORM , /* 21 F */ GET-COMMA-FORM , /* 22 G */ GET-COMMA-FORM , /* 23 A */ GET-COMMA-FORM );/* 24 MODIF */ DCL DD ATTR-TABLE CHAR(48); DCL DD *(3) CHAR(16) DEF(ATTR-TABLE) POS(1) INIT (X'00171717171717171717171717171717', /* 00-0F -? 0XYDKNZ.,/-+= */ X'07020310121614171B111F3736363630', /* 10-1F WORLTUPBMHVSICQJ */ X'35353535361717171717171717171717');/* 20-2F EFGAm----------- */ DCL DD UC-ATTR(47) CHAR(1) DEF(ATTR-TABLE) POS(2); DCL DD LOWER-CASE CHAR(48); DCL DD *(3) CHAR(16) DEF(LOWER-CASE) POS(1) INIT (X'00171717171717171717171717171717', /* 00-0F -? 0XYDKNZ.,/-+= */ X'07020310121614171B111F2726262620', /* 10-1F WORLTUPBMHVSICQJ */ X'25252525261717171717171717171717');/* 20-2F EFGAm----------- */ DCL DD LC-ATTR(47) CHAR(1) DEF(ATTR-TABLE) POS(2); /* CONTROL ATTRIBUTES HEX 01-0D */ /* OUTPUT ATTRIBUTES HEX 10-1F */ /* INPUT ATTRIBUTES HEX 20-2F LOWER CASE */ /* INPUT ATTRIBUTES HEX 30-3F UPPER CASE */ DCL DD VALID-FORMATS CHAR(36) INIT ("--0XYDKNZ---------------------------"); DCL DD VALID-FORMAT(36) CHAR(1) DEF(VALID-FORMATS) POS(1); DCL DD WITHIN-FIELD CHAR(10) INIT(" .-+=$/,<>"); DCL DD FILL-CHAR CHAR(1); /* X'00'=DONT FILL, X'40'=SPACE FILL */ DCL DD FORMAT-CHARS CHAR(4); DCL DD POINT-FORM CHAR(1) DEF(FORMAT-CHARS) POS(1); DCL DD SIGN-FORM CHAR(1) DEF(FORMAT-CHARS) POS(2); DCL DD ZERO-FORM CHAR(1) DEF(FORMAT-CHARS) POS(3); DCL DD COMMA-FORM CHAR(1) DEF(FORMAT-CHARS) POS(4); DCL DD P-S-Z-C-FORM CHAR(4) DEF(FORMAT-CHARS) POS(1); DCL DD S-Z-C-FORM CHAR(3) DEF(FORMAT-CHARS) POS(2); DCL DD Z-C-FORM CHAR(2) DEF(FORMAT-CHARS) POS(3); DCL DD C-FORM CHAR(1) DEF(FORMAT-CHARS) POS(4); DCL DD DIGIT-CLASS CHAR(256); DCL DD *(16) CHAR(16) DEF(DIGIT-CLASS) POS(1) INIT (X'02010101010101010101010101010101', /* 00-0F 0--------------- */ X'01010101010101010101010101010101', /* 10-1F ---------------- */ X'01010101010101010101010101010101', /* 20-2F ---------------- */ X'01010101010101010101010101010101', /* 30-3F ---------------- */ X'02010101010101010101010101010101', /* 40-4F 0--------------- */ X'01010101010101010101010101010101', /* 50-5F ---------------- */ X'01010101010101010101010101010101', /* 60-6F ---------------- */ X'01010101010101010101010101010101', /* 70-7F ---------------- */ X'01010101010101010101010101010101', /* 80-8F ---------------- */ X'01010101010101010101010101010101', /* 90-9F ---------------- */ X'01010101010101010101010101010101', /* A0-AF ---------------- */ X'01010101010101010101010101010101', /* B0-BF ---------------- */ X'01010101010101010101010101010101', /* C0-CF ---------------- */ X'02030405060708090A0B010101010101', /* D0-DF 0123456789------ */ X'01010101010101010101010101010101', /* E0-EF ---------------- */ X'02030405060708090A0B01010101010B');/* F0-FF 0123456789-----9 */ DCL IDL LEADING-CARDINAL-DIGITS (INVALID-DIGIT , /* 01 INVALID */ SKIP-LEADING-ZERO , /* 02 ZERO */ COPY-CARDINAL-DIGIT , /* 03 ONE */ COPY-CARDINAL-DIGIT , /* 04 TWO */ COPY-CARDINAL-DIGIT , /* 05 THREE */ COPY-CARDINAL-DIGIT , /* 06 FOUR */ COPY-CARDINAL-DIGIT , /* 07 FIVE */ COPY-CARDINAL-DIGIT , /* 08 SIX */ COPY-CARDINAL-DIGIT , /* 09 SEVEN */ COPY-CARDINAL-DIGIT , /* 0A EIGHT */ COPY-CARDINAL-DIGIT );/* 0B NINE */ DCL IDL SIGNIFICANT-CARDINAL-DIGITS (INVALID-DIGIT , /* 01 INVALID */ COPY-CARDINAL-DIGIT , /* 02 ZERO */ COPY-CARDINAL-DIGIT , /* 03 ONE */ COPY-CARDINAL-DIGIT , /* 04 TWO */ COPY-CARDINAL-DIGIT , /* 05 THREE */ COPY-CARDINAL-DIGIT , /* 06 FOUR */ COPY-CARDINAL-DIGIT , /* 07 FIVE */ COPY-CARDINAL-DIGIT , /* 08 SIX */ COPY-CARDINAL-DIGIT , /* 09 SEVEN */ COPY-CARDINAL-DIGIT , /* 0A EIGHT */ COPY-CARDINAL-DIGIT );/* 0B NINE */ DCL IDL NUMERIC-CHARACTERS (INVALID-DIGIT , /* 01 INVALID */ COPY-NUMERIC-ZERO , /* 02 ZERO */ COPY-NUMERIC-CHARACTER , /* 03 ONE */ COPY-NUMERIC-CHARACTER , /* 04 TWO */ COPY-NUMERIC-CHARACTER , /* 05 THREE */ COPY-NUMERIC-CHARACTER , /* 06 FOUR */ COPY-NUMERIC-CHARACTER , /* 07 FIVE */ COPY-NUMERIC-CHARACTER , /* 08 SIX */ COPY-NUMERIC-CHARACTER , /* 09 SEVEN */ COPY-NUMERIC-CHARACTER , /* 0A EIGHT */ COPY-NUMERIC-CHARACTER );/* 0B NINE */ DCL IDL LEADING-DIGITS (INVALID-DIGIT , /* 01 INVALID */ COPY-LEADING-BLANK , /* 02 ZERO */ COPY-NON-ZERO-DIGIT , /* 03 ONE */ COPY-NON-ZERO-DIGIT , /* 04 TWO */ COPY-NON-ZERO-DIGIT , /* 05 THREE */ COPY-NON-ZERO-DIGIT , /* 06 FOUR */ COPY-NON-ZERO-DIGIT , /* 07 FIVE */ COPY-NON-ZERO-DIGIT , /* 08 SIX */ COPY-NON-ZERO-DIGIT , /* 09 SEVEN */ COPY-NON-ZERO-DIGIT , /* 0A EIGHT */ COPY-NON-ZERO-DIGIT );/* 0B NINE */ DCL IDL SIGNIFICANT-DIGITS (INVALID-DIGIT , /* 01 INVALID */ COPY-SIGNIFICANT-DIGIT , /* 02 ZERO */ COPY-SIGNIFICANT-DIGIT , /* 03 ONE */ COPY-SIGNIFICANT-DIGIT , /* 04 TWO */ COPY-SIGNIFICANT-DIGIT , /* 05 THREE */ COPY-SIGNIFICANT-DIGIT , /* 06 FOUR */ COPY-SIGNIFICANT-DIGIT , /* 07 FIVE */ COPY-SIGNIFICANT-DIGIT , /* 08 SIX */ COPY-SIGNIFICANT-DIGIT , /* 09 SEVEN */ COPY-SIGNIFICANT-DIGIT , /* 0A EIGHT */ COPY-SIGNIFICANT-DIGIT );/* 0B NINE */ DCL IDL LEADING-DECIMALS (INVALID-DIGIT , /* 01 INVALID */ COPY-LEADING-DECIMAL , /* 02 ZERO */ COPY-NON-ZERO-DECIMAL , /* 03 ONE */ COPY-NON-ZERO-DECIMAL , /* 04 TWO */ COPY-NON-ZERO-DECIMAL , /* 05 THREE */ COPY-NON-ZERO-DECIMAL , /* 06 FOUR */ COPY-NON-ZERO-DECIMAL , /* 07 FIVE */ COPY-NON-ZERO-DECIMAL , /* 08 SIX */ COPY-NON-ZERO-DECIMAL , /* 09 SEVEN */ COPY-NON-ZERO-DECIMAL , /* 0A EIGHT */ COPY-NON-ZERO-DECIMAL );/* 0B NINE */ DCL IDL SIGNIFICANT-DECIMALS (INVALID-DIGIT , /* 01 INVALID */ COPY-SIGNIFICANT-DECIMAL , /* 02 ZERO */ COPY-SIGNIFICANT-DECIMAL , /* 03 ONE */ COPY-SIGNIFICANT-DECIMAL , /* 04 TWO */ COPY-SIGNIFICANT-DECIMAL , /* 05 THREE */ COPY-SIGNIFICANT-DECIMAL , /* 06 FOUR */ COPY-SIGNIFICANT-DECIMAL , /* 07 FIVE */ COPY-SIGNIFICANT-DECIMAL , /* 08 SIX */ COPY-SIGNIFICANT-DECIMAL , /* 09 SEVEN */ COPY-SIGNIFICANT-DECIMAL , /* 0A EIGHT */ COPY-SIGNIFICANT-DECIMAL );/* 0B NINE */ DCL DD INPUT-CLASS CHAR(256); DCL DD *(16) CHAR(16) DEF(INPUT-CLASS) POS(1) INIT (X'01010101010101010101010101010101', /* 00-0F ________________ */ X'01010101010101010101010101010101', /* 10-1F ________________ */ X'01010101010101010101010101010101', /* 20-2F ________________ */ X'01010101010101010101010101010101', /* 30-3F ________________ */ X'0C010101010101010101010D01010E01', /* 40-4F __________.__+_ */ X'01010101010101010101010101010101', /* 50-5F ________________ */ X'0F110101010101010101011001010101', /* 60-6F -/_________,____ */ X'01010101010101010101010101110101', /* 70-7F _____________'__ */ X'01010101010101010101010101010101', /* 80-8F ________________ */ X'01010101010101010101010101010101', /* 90-9F ________________ */ X'01010101010101010101010101010101', /* A0-AF ________________ */ X'01010101010101010101010101010101', /* B0-BF ________________ */ X'01010101010101010101010101010101', /* C0-CF ________________ */ X'02030405060708090A0B010101010101', /* D0-DF ________________ */ X'01010101010101010101010101010101', /* E0-EF ________________ */ X'02030405060708090A0B010101010101');/* F0-FF 0123456789______ */ DCL DD INPUT-CLASS-CHAR(255) CHAR(1) DEF(INPUT-CLASS) POS(2); DCL IDL STACK-ACTION (FIELD-REJECTED , /* 01 INVALID */ CHAR-IS-DIGIT , /* 02 ZERO */ CHAR-IS-DIGIT , /* 03 ONE */ CHAR-IS-DIGIT , /* 04 TWO */ CHAR-IS-DIGIT , /* 05 THREE */ CHAR-IS-DIGIT , /* 06 FOUR */ CHAR-IS-DIGIT , /* 07 FIVE */ CHAR-IS-DIGIT , /* 08 SIX */ CHAR-IS-DIGIT , /* 09 SEVEN */ CHAR-IS-DIGIT , /* 0A EIGHT */ CHAR-IS-DIGIT , /* 0B NINE */ CHAR-IS-SPACE , /* 0C SPACE */ CHAR-IS-POINT , /* 0D POINT */ CHAR-IS-PLUS , /* 0E PLUS */ CHAR-IS-MINUS , /* 0F MINUS */ CHAR-IS-COMMA , /* 10 COMMA */ FIELD-REJECTED );/* 11 DATE SEP*/ DCL IDL OUT-DATE-ACTION (FORMAT-ERROR , /* 01 INVALID */ CHAR-IS-NUMERIC , /* 02 ZERO */ CHAR-IS-NUMERIC , /* 03 ONE */ CHAR-IS-NUMERIC , /* 04 TWO */ CHAR-IS-NUMERIC , /* 05 THREE */ CHAR-IS-NUMERIC , /* 06 FOUR */ CHAR-IS-NUMERIC , /* 07 FIVE */ CHAR-IS-NUMERIC , /* 08 SIX */ CHAR-IS-NUMERIC , /* 09 SEVEN */ CHAR-IS-NUMERIC , /* 0A EIGHT */ CHAR-IS-NUMERIC , /* 0B NINE */ CHAR-TO-STOP , /* 0C SPACE */ FORMAT-ERROR , /* 0D POINT */ FORMAT-ERROR , /* 0E PLUS */ FORMAT-ERROR , /* 0F MINUS */ FORMAT-ERROR , /* 10 COMMA */ CHAR-IS-SLASH );/* 11 DATE SEP*/ DCL IDL IN-DATE-ACTION (FIELD-REJECTED , /* 01 INVALID */ CHAR-IS-DATE-DIGIT , /* 02 ZERO */ CHAR-IS-DATE-DIGIT , /* 03 ONE */ CHAR-IS-DATE-DIGIT , /* 04 TWO */ CHAR-IS-DATE-DIGIT , /* 05 THREE */ CHAR-IS-DATE-DIGIT , /* 06 FOUR */ CHAR-IS-DATE-DIGIT , /* 07 FIVE */ CHAR-IS-DATE-DIGIT , /* 08 SIX */ CHAR-IS-DATE-DIGIT , /* 09 SEVEN */ CHAR-IS-DATE-DIGIT , /* 0A EIGHT */ CHAR-IS-DATE-DIGIT , /* 0B NINE */ CHAR-IS-SEPARATOR , /* 0C SPACE */ CHAR-IS-SEPARATOR , /* 0D POINT */ FIELD-REJECTED , /* 0E PLUS */ CHAR-IS-SEPARATOR , /* 0F MINUS */ FIELD-REJECTED , /* 10 COMMA */ CHAR-IS-SEPARATOR );/* 11 DATE SEP*/ DCL DD CONSECUTIVE-DIGITS CHAR(9) INIT("012-4-6-8"); DCL DD CONSECUTIVE-OK(9) CHAR(1) DEF(CONSECUTIVE-DIGITS) POS(1); DCL DD YMD-SCHEMA CHAR(13) INIT("8765/43/21 1Y"); DCL DD MDY-SCHEMA CHAR(13) INIT("43/21/8765 5M"); DCL DD DMY-SCHEMA CHAR(13) INIT("21/43/8765 5D"); DCL DD DATE-SCHEMA CHAR(13); DCL DD SCHEMA-CHAR(11) CHAR(1) DEF(DATE-SCHEMA) POS( 1); DCL DD DATE-SCHEMA-LAST CHAR(1) DEF(DATE-SCHEMA) POS(12); DCL DD DATE-SCHEMA-FORMAT CHAR(1) DEF(DATE-SCHEMA) POS(13); DCL IDL SET-DATE-SCHEMA-OUT (FORMAT-ERROR , /* 01 INVALID */ USE-YMD-SCHEMA-OUT , /* 02 N YMD */ USE-YMD-SCHEMA-OUT , /* 03 Y YMD */ USE-MDY-SCHEMA-OUT , /* 04 S MDY */ USE-MDY-SCHEMA-OUT , /* 05 $ MDY */ USE-DMY-SCHEMA-OUT , /* 06 SP DMY */ USE-DMY-SCHEMA-OUT );/* 07 . DMY */ DCL IDL SET-DATE-SCHEMA-IN (FORMAT-ERROR , /* 01 INVALID */ USE-YMD-SCHEMA-IN , /* 02 N YMD */ USE-YMD-SCHEMA-IN , /* 03 Y YMD */ USE-MDY-SCHEMA-IN , /* 04 S MDY */ USE-MDY-SCHEMA-IN , /* 05 $ MDY */ USE-DMY-SCHEMA-IN , /* 06 SP DMY */ USE-DMY-SCHEMA-IN );/* 07 . DMY */ DCL DD DATE-DIGITS CHAR(8); DCL DD DATE-DIGIT(8) CHAR( 1) DEF(DATE-DIGITS) POS(1); DCL DD Y-DATE-YYYY ZND(4,0) DEF(DATE-DIGITS) POS(1); DCL DD Y-DATE-MM ZND(2,0) DEF(DATE-DIGITS) POS(5); DCL DD Y-DATE-DD ZND(2,0) DEF(DATE-DIGITS) POS(7); DCL DD M-DATE-MM ZND(2,0) DEF(DATE-DIGITS) POS(1); DCL DD M-DATE-DD ZND(2,0) DEF(DATE-DIGITS) POS(3); DCL DD M-DATE-YYYY ZND(4,0) DEF(DATE-DIGITS) POS(5); DCL DD D-DATE-DD ZND(2,0) DEF(DATE-DIGITS) POS(1); DCL DD D-DATE-MM ZND(2,0) DEF(DATE-DIGITS) POS(3); DCL DD D-DATE-YYYY ZND(4,0) DEF(DATE-DIGITS) POS(5); DCL DD INTERNAL-DATE CHAR(80); DCL DD *(2) CHAR(40) DEF(INTERNAL-DATE) POS(1) INIT ("0000000000000000000000000000000000000000", "0000000000000000000000000000000000000000"); DCL DD INT-DATE-CHAR(80) CHAR( 1) DEF(INTERNAL-DATE) POS( 1); DCL DD * CHAR(72) DEF(INTERNAL-DATE) POS( 1); DCL DD INT-YEAR ZND(4,0) DEF(INTERNAL-DATE) POS(73); DCL DD INT-MONTH ZND(2,0) DEF(INTERNAL-DATE) POS(77); DCL DD INT-DAY ZND(2,0) DEF(INTERNAL-DATE) POS(79); DCL DD DAYS(12) BIN(2) INIT(31,29,31,30,31,30,31,31,30,31,30,31); DCL IDL GET-ATTR-ACTION /* BRANCH TABLE FOR ATTRS */ (GET-NEXT-FIELD , /* 01 */ GET-NEXT-FIELD , /* 02 OPTION .H.. */ GET-NEXT-FIELD , /* 03 RECALL RH.. */ GET-NEXT-FIELD , /* 04 ..U. */ GET-NEXT-FIELD , /* 05 R.U. */ GET-NEXC-FIELD , /* 06 .HU. */ GET-NEXT-FIELD , /* 07 WINDOW */ DONE-GETTING , /* 08 END ...B */ GET-NEXT-FIELD , /* 09 R..B */ GET-NEXT-FIELD , /* 0A .H.B */ GET-NEXT-FIELD , /* 0B RH.B */ GET-NEXT-FIELD , /* 0C ..UB */ GET-NEXT-FIELD , /* 0D R.UB */ ECSCAN-MALFUNCTION , /* 0E MUST NOT BE USED */ ECSCAN-MALFUNCTION , /* 0F MUST NOT BE USED */ GET-NEXT-FIELD , /* 10 LABEL .... */ GET-NEXT-FIELD , /* 11 HIGH-LITE R... */ GET-NEXT-FIELD , /* 12 TITLE .H.. */ GET-NEXT-FIELD , /* 13 RH.. */ GET-NEXT-FIELD , /* 14 PROTECT ..U. */ GET-NEXT-FIELD , /* 15 R.U. */ GET-NEXT-FIELD , /* 16 UNDERLINE .HU. */ GET-NEXT-FIELD , /* 17 BLANK */ GET-NEXT-FIELD , /* 18 ...B */ GET-NEXT-FIELD , /* 19 R..B */ GET-NEXT-FIELD , /* 1A .H.B */ GET-NEXT-FIELD , /* 1B MESSAGE RH.B */ GET-NEXT-FIELD , /* 1C ..UB */ GET-NEXT-FIELD , /* 1D R.UB */ GET-NEXT-FIELD , /* 1E .HUB */ GET-NEXT-FIELD , /* 1F BOX */ INPUT-FIELD-FOUND-LC , /* 20 EDIT Y .... */ INPUT-FIELD-FOUND-LC , /* 21 Y R... */ INPUT-FIELD-FOUND-LC , /* 22 Y .H.. */ INPUT-FIELD-FOUND-LC , /* 23 Y RH.. */ INPUT-FIELD-FOUND-LC , /* 24 Y ..U. */ INPUT-FIELD-FOUND-LC , /* 25 ERROR Y R.U. */ INPUT-FIELD-FOUND-LC , /* 26 INPUT Y .HU. */ INPUT-FIELD-FOUND-LC , /* 27 SECURE Y */ INPUT-FIELD-FOUND-LC , /* 28 Y ...B */ INPUT-FIELD-FOUND-LC , /* 29 Y R..B */ INPUT-FIELD-FOUND-LC , /* 2A Y .H.B */ INPUT-FIELD-FOUND-LC , /* 2B Y RH.B */ INPUT-FIELD-FOUND-LC , /* 2C Y ..UB */ INPUT-FIELD-FOUND-LC , /* 2D Y R.UB */ INPUT-FIELD-FOUND-LC , /* 2E Y .HUB */ INPUT-FIELD-FOUND-LC , /* 2F Y */ INPUT-FIELD-FOUND , /* 30 EDIT X .... */ INPUT-FIELD-FOUND , /* 31 X R... */ INPUT-FIELD-FOUND , /* 32 X .H.. */ INPUT-FIELD-FOUND , /* 33 X RH.. */ INPUT-FIELD-FOUND , /* 34 X ..U. */ INPUT-FIELD-FOUND , /* 35 ERROR X R.U. */ INPUT-FIELD-FOUND , /* 36 INPUT X .HU. */ INPUT-FIELD-FOUND , /* 37 SECURE X */ INPUT-FIELD-FOUND , /* 38 X ...B */ INPUT-FIELD-FOUND , /* 39 X R..B */ INPUT-FIELD-FOUND , /* 3A X .H.B */ INPUT-FIELD-FOUND , /* 3B X RH.B */ INPUT-FIELD-FOUND , /* 3C X ..UB */ INPUT-FIELD-FOUND , /* 3D X R.UB */ INPUT-FIELD-FOUND , /* 3E X .HUB */ INPUT-FIELD-FOUND );/* 3F X */ DCL IDL FILL-WITH-BLANK (BLANK-T01, BLANK-T02, BLANK-T03, BLANK-T04, BLANK-T05, BLANK-T06, BLANK-T07, BLANK-T08, BLANK-T09, BLANK-T10, BLANK-T11, BLANK-T12, BLANK-T13, BLANK-T14, BLANK-T15, BLANK-T16, BLANK-T17, BLANK-T18, BLANK-T19, BLANK-T20, BLANK-T21, BLANK-T22, BLANK-T23, BLANK-T24, BLANK-T25, BLANK-T26, BLANK-T27, BLANK-T28, BLANK-T29, BLANK-T30, BLANK-T31, BLANK-T32, BLANK-T33, BLANK-T34, BLANK-T35, BLANK-T36, BLANK-T37, BLANK-T38, BLANK-T39, BLANK-T40, BLANK-T41, BLANK-T42, BLANK-T43, BLANK-T44, BLANK-T45, BLANK-T46, BLANK-T47, BLANK-T48, BLANK-T49, BLANK-T50, BLANK-T51, BLANK-T52, BLANK-T53, BLANK-T54, BLANK-T55, BLANK-T56, BLANK-T57, BLANK-T58, BLANK-T59, BLANK-T60, BLANK-T61, BLANK-T62, BLANK-T63, BLANK-T64, BLANK-T65, BLANK-T66, BLANK-T67, BLANK-T68, BLANK-T69, BLANK-T70, BLANK-T71, BLANK-T72, BLANK-T73, BLANK-T74, BLANK-T75, BLANK-T76, BLANK-T77, BLANK-T78, BLANK-T79); DCL IDL BLANK-OUT-REST (BLANK-R01, BLANK-R02, BLANK-R03, BLANK-R04, BLANK-R05, BLANK-R06, BLANK-R07, BLANK-R08, BLANK-R09, BLANK-R10, BLANK-R11, BLANK-R12, BLANK-R13, BLANK-R14, BLANK-R15, BLANK-R16, BLANK-R17, BLANK-R18, BLANK-R19, BLANK-R20, BLANK-R21, BLANK-R22, BLANK-R23, BLANK-R24, BLANK-R25, BLANK-R26, BLANK-R27, BLANK-R28, BLANK-R29, BLANK-R30, BLANK-R31, BLANK-R32, BLANK-R33, BLANK-R34, BLANK-R35, BLANK-R36, BLANK-R37, BLANK-R38, BLANK-R39, BLANK-R40, BLANK-R41, BLANK-R42, BLANK-R43, BLANK-R44, BLANK-R45, BLANK-R46, BLANK-R47, BLANK-R48, BLANK-R49, BLANK-R50, BLANK-R51, BLANK-R52, BLANK-R53, BLANK-R54, BLANK-R55, BLANK-R56, BLANK-R57, BLANK-R58, BLANK-R59, BLANK-R60, BLANK-R61, BLANK-R62, BLANK-R63, BLANK-R64, BLANK-R65, BLANK-R6X, BLANK-R67, BLANK-R68, BLANK-R69, BLANK-R70, BLANK-R71, BLANK-R72, BLANK-R73, BLANK-R74, BLANK-R75, BLANK-R76, BLANK-R77, BLANK-R78, BLANK-R79); DCL IDL PUT-LOWER-TEXT (PUT-LC-01, PUT-LC-02, PUT-LC-03, PUT-LC-04, PUT-LC-05, PUT-LC-06, PUT-LC-07, PUT-LC-08, PUT-LC-09, PUT-LC-10, PUT-LC-11, PUT-LC-12, PUT-LC-13, PUT-LC-14, PUT-LC-15, PUT-LC-16, PUT-LC-17, PUT-LC-18, PUT-LC-19, PUT-LC-20, PUT-LC-21, PUT-LC-22, PUT-LC-23, PUT-LC-24, PUT-LC-25, PUT-LC-26, PUT-LC-27, PUT-LC-28, PUT-LC-29, PUT-LC-30, PUT-LC-31, PUT-LC-32, PUT-LC-33, PUT-LC-34, PUT-LC-35, PUT-LC-36, PUT-LC-37, PUT-LC-38, PUT-LC-39, PUT-LC-40, PUT-LC-41, PUT-LC-42, PUT-LC-43, PUT-LC-44, PUT-LC-45, PUT-LC-46, PUT-LC-47, PUT-LC-48, PUT-LC-49, PUT-LC-50, PUT-LC-51, PUT-LC-52, PUT-LC-53, PUT-LC-54, PUT-LC-55, PUT-LC-56, PUT-LC-57, PUT-LC-58, PUT-LC-59, PUT-LC-60, PUT-LC-61, PUT-LC-62, PUT-LC-63, PUT-LC-64, PUT-LC-65, PUT-LC-66, PUT-LC-67, PUT-LC-68, PUT-LC-69, PUT-LC-70, PUT-LC-71, PUT-LC-72, PUT-LC-73, PUT-LC-74, PUT-LC-75, PUT-LC-76, PUT-LC-77, PUT-LC-78, PUT-LC-79); DCL IDL PUT-UPPER-TEXT (PUT-UC-01, PUT-UC-02, PUT-UC-03, PUT-UC-04, PUT-UC-05, PUT-UC-06, PUT-UC-07, PUT-UC-08, PUT-UC-09, PUT-UC-10, PUT-UC-11, PUT-UC-12, PUT-UC-13, PUT-UC-14, PUT-UC-15, PUT-UC-16, PUT-UC-17, PUT-UC-18, PUT-UC-19, PUT-UC-20, PUT-UC-21, PUT-UC-22, PUT-UC-23, PUT-UC-24, PUT-UC-25, PUT-UC-26, PUT-UC-27, PUT-UC-28, PUT-UC-29, PUT-UC-30, PUT-UC-31, PUT-UC-32, PUT-UC-33, PUT-UC-34, PUT-UC-35, PUT-UC-36, PUT-UC-37, PUT-UC-38, PUT-UC-39, PUT-UC-40, PUT-UC-41, PUT-UC-42, PUT-UC-43, PUT-UC-44, PUT-UC-45, PUT-UC-46, PUT-UC-47, PUT-UC-48, PUT-UC-49, PUT-UC-50, PUT-UC-51, PUT-UC-52, PUT-UC-53, PUT-UC-54, PUT-UC-55, PUT-UC-56, PUT-UC-57, PUT-UC-58, PUT-UC-59, PUT-UC-60, PUT-UC-61, PUT-UC-62, PUT-UC-63, PUT-UC-64, PUT-UC-65, PUT-UC-66, PUT-UC-67, PUT-UC-68, PUT-UC-69, PUT-UC-70, PUT-UC-71, PUT-UC-72, PUT-UC-73, PUT-UC-74, PUT-UC-75, PUT-UC-76, PUT-UC-77, PUT-UC-78, PUT-UC-79); DCL IDL GET-LOWER-TEXT (GET-LC-01, GET-LC-02, GET-LC-03, GET-LC-04, GET-LC-05, GET-LC-06, GET-LC-07, GET-LC-08, GET-LC-09, GET-LC-10, GET-LC-11, GET-LC-12, GET-LC-13, GET-LC-14, GET-LC-15, GET-LC-16, GET-LC-17, GET-LC-18, GET-LC-19, GET-LC-20, GET-LC-21, GET-LC-22, GET-LC-23, GET-LC-24, GET-LC-25, GET-LC-26, GET-LC-27, GET-LC-28, GET-LC-29, GET-LC-30, GET-LC-31, GET-LC-32, GET-LC-33, GET-LC-34, GET-LC-35, GET-LC-36, GET-LC-37, GET-LC-38, GET-LC-39, GET-LC-40, GET-LC-41, GET-LC-42, GET-LC-43, GET-LC-44, GET-LC-45, GET-LC-46, GET-LC-47, GET-LC-48, GET-LC-49, GET-LC-50, GET-LC-51, GET-LC-52, GET-LC-53, GET-LC-54, GET-LC-55, GET-LC-56, GET-LC-57, GET-LC-58, GET-LC-59, GET-LC-60, GET-LC-61, GET-LC-62, GET-LC-63, GET-LC-64, GET-LC-65, GET-LC-66, GET-LC-67, GET-LC-68, GET-LC-69, GET-LC-70, GET-LC-71, GET-LC-72, GET-LC-73, GET-LC-74, GET-LC-75, GET-LC-76, GET-LC-77, GET-LC-78, GET-LC-79); DCL IDL GET-UPPER-TEXT (GET-UC-01, GET-UC-02, GET-UC-03, GET-UC-04, GET-UC-05, GET-UC-06, GET-UC-07, GET-UC-08, GET-UC-09, GET-UC-10, GET-UC-11, GET-UC-12, GET-UC-13, GET-UC-14, GET-UC-15, GET-UC-16, GET-UC-17, GET-UC-18, GET-UC-19, GET-UC-20, GET-UC-21, GET-UC-22, GET-UC-23, GET-UC-24, GET-UC-25, GET-UC-26, GET-UC-27, GET-UC-28, GET-UC-29, GET-UC-30, GET-UC-31, GET-UC-32, GET-UC-33, GET-UC-34, GET-UC-35, GET-UC-36, GET-UC-37, GET-UC-38, GET-UC-39, GET-UC-40, GET-UC-41, GET-UC-42, GET-UC-43, GET-UC-44, GET-UC-45, GET-UC-46, GET-UC-47, GET-UC-48, GET-UC-49, GET-UC-50, GET-UC-51, GET-UC-52, GET-UC-53, GET-UC-54, GET-UC-55, GET-UC-56, GET-UC-57, GET-UC-58, GET-UC-59, GET-UC-60, GET-UC-61, GET-UC-62, GET-UC-63, GET-UC-64, GET-UC-65, GET-UC-66, GET-UC-67, GET-UC-68, GET-UC-69, GET-UC-70, GET-UC-71, GET-UC-72, GET-UC-73, GET-UC-74, GET-UC-75, GET-UC-76, GET-UC-77, GET-UC-78, GET-UC-79); /****************************************************************/ SCRNAS: CPYNV THIS-CHAR, *THIS-CHAR; CPYNV FIRST-CHAR, *FIRST-CHAR; CPYNV LAST-CHAR, *LAST-CHAR; CPYNV FIRST-INPUT, *FIRST-INPUT; CPYNV LAST-INPUT, *LAST-INPUT; TEST-OPERATION: CMPBLA(B) OPERATION, "G"/EQ(MOVE-FIELDS-FROM-SCREEN); CMPBLA(B) OPERATION, "P"/EQ(MOVE-FIELDS-TO-SCREEN); FATAL-ERROR: BRK "ERROR"; RTX *; /* BREAK POINTS HAVE BEEN PLACED AFTER FATAL ERRORS ("ERROR") */ /* AND AFTER PUTTING ("PUT") AND GETTING ("GET") THE SCREEN. */ /* THIS ALLOWS DATA AREAS TO BE EXAMINED WITH THE DEBUGGER... */ /****************************************************************/ MOVE-FIELDS-TO-SCREEN: CPYNV FIRST-BLANK, *FIRST-BLANK; CPYNV LAST-BLANK, *LAST-BLANK; B OUTPUT-NEXT-FIELD; END-PUT-TEXT: ADDN(S) THIS-CHAR, LENGTH; OUTPUT-NEXT-FIELD: CMPNV(B) THIS-CHAR, LAST-CHAR/HI(DONE-PUTTING); CPYNV ATTR-P, THIS-CHAR; XLATEWT THE-ATTR, SD-CHAR(ATTR-P), SD-CHAR-CLASS; B ATTR-ACTION(ATTR-VALUE); ATTRIBUTE-ERROR: CPYBLA ERROR-CODE, "A"; ERROR-DETECTED: CPYBLA ERROR-FIELD, "D"; CPYNV ERROR-POS, THIS-CHAR; DONE-PUTTING: CMPBLA(B) ERROR-FIELD, "Y"/EQ(DIM-INPUT-FIELDS); BRK "PUT"; RTX *; OUTPUT-ATTRIBUTE: CPYBLA FILL-CHAR, X'00'; /* NO FILL */ CMPNV(B) THIS-CHAR, LAST-BLANK /HI(SET-OUTPUT-ATTR); CMPNV(B) THIS-CHAR, FIRST-BLANK/LO(SET-OUTPUT-ATTR); SET-BLANK-ATTR: CPYBLA THE-ATTR, X'17'; /* BLANK */ BLANK-ATTRIBUTE: CPYBLA FILL-CHAR, X'40'; /* DO FILL */ SET-OUTPUT-ATTR: XLATEWT WS-CHAR(ATTR-P), THE-ATTR, ATTR-TABLE; ADDN FORM-P, ATTR-P, 1; XLATEWT THE-FORM, SD-CHAR(FORM-P), SD-CHAR-CLASS; ACT-ON-FORMAT: ADDN(S) THIS-CHAR, 1; B OUTPUT-FORMAT-ACTION(FORM-VALUE); EMPTY-FIELD: CMPBLA(B) THE-ATTR, /*BOX*/X'1A'/EQ(OUTPUT-NEXT-FIELD); XLATEWT WS-CHAR(ATTR-P), X'17'/* BLANK */, ATTR-TABLE; B OUTPUT-NEXT-FIELD; CLEAR-ATTRIBUTE: CPYBLA FILL-CHAR, X'40'; /* DO FILL */ CMPNV(B) THIS-CHAR, LAST-BLANK /HI(TEST-INPUT-WINDOW1); CMPNV(B) THIS-CHAR, FIRST-BLANK/LO(TEST-INPUT-WINDOW1); B SET-BLANK-ATTR; INPUT-ATTRIBUTE: CPYBLA FILL-CHAR, X'00'; /* NO FILL */ CMPNV(B) THIS-CHAR, LAST-BLANK /HI(TEST-INPUT-WINDOW1); CMPNV(B) THIS-CHAR, FIRST-BLANK/LO(TEST-INPUT-WINDOW1); B SET-BLANK-ATTR; TEST-INPUT-WINDOW1: CMPNV(B) THIS-CHAR, LAST-INPUT /HI(SET-PROTECT-ATTR); CMPNV(B) THIS-CHAR, FIRST-INPUT/LO(SET-PROTECT-ATTR); SET-INPUT-CURSOR: XLATEWT WS-CHAR(ATTR-P), THE-ATTR, ATTR-TABLE; ADDN FORM-P, ATTR-P, 1; XLATEWT THE-FORM, SD-CHAR(FORM-P), SD-CHAR-CLASS; VERIFY(B) LENGTH, CURSOR-SETTING, "N" /NEQ(ACT-ON-FORMAT); CMPBLA(B) VALID-FORMAT(FORM-VALUE), "-"/EQ(EMPTY-FIELD); CPYBLA CURSOR-SETTING, "I"; COMPUTE-CURSOR-POSITION: SUBN NUMBER, ATTR-P, 1; DIVREM QUOTIENT, NUMBER, 80, REMAINDER; ADDN CURSOR-ROW, QUOTIENT, 1; ADDN CURSOR-COL, REMAINDER, 2; B ACT-ON-FORMAT; SET-PROTECT-ATTR: CPYBLA FILL-CHAR, X'00'; /* NO FILL */ CPYBLA THE-ATTR, X'16'; /* PROTECT */ B SET-OUTPUT-ATTR; SECURE-ATTRIBUTE: CMPNV(B) THIS-CHAR, LAST-BLANK /HI(TEST-INPUT-WINDOW2); CMPNV(B) THIS-CHAR, FIRST-BLANK/LO(TEST-INPUT-WINDOW2); B SET-BLANK-ATTR; TEST-INPUT-WINDOW2: CPYBLA FILL-CHAR, X'40'; /* DO FILL */ CMPNV(B) THIS-CHAR, LAST-INPUT /HI(SET-BLANK-ATTR); CMPNV(B) THIS-CHAR, FIRST-INPUT/LO(SET-BLANK-ATTR); B SET-INPUT-CURSOR; CURSOR-ATTRIBUTE: CMPNV(B) THIS-CHAR, LAST-BLANK /HI(TEST-INPUT-WINDOW3); CMPNV(B) THIS-CHAR, FIRST-BLANK/LO(TEST-INPUT-WINDOW3); B SET-BLANK-ATTR; TEST-INPUT-WINDOW3: CMPNV(B) THIS-CHAR, LAST-INPUT /HI(SET-PROTECT-ATTR); CMPNV(B) THIS-CHAR, FIRST-INPUT/LO(SET-PROTECT-ATTR); CPYBLA FILL-CHAR, X'00'; /* NO FILL */ SET-CURSOR-FIELD: XLATEWT WS-CHAR(ATTR-P), THE-ATTR, ATTR-TABLE; ADDN FORM-P, ATTR-P, 1; XLATEWT THE-FORM, SD-CHAR(FORM-P), SD-CHAR-CLASS; VERIFY(B) LENGTH, CURSOR-SETTING, "NI"/NEQ(ACT-ON-FORMAT); CMPBLA(B) VALID-FORMAT(FORM-VALUE), "-"/EQ(EMPTY-FIELD); CPYBLA CURSOR-SETTING, "Q"; B COMPUTE-CURSOR-POSITION; EDIT-ATTRIBUTE: CMPNV(B) THIS-CHAR, LAST-BLANK /HI(TEST-INPUT-WINDOW4); CMPNV(B) THIS-CHAR, FIRST-BLANK/LO(TEST-INPUT-WINDOW4); B SET-BLANK-ATTR; TEST-INPUT-WINDOW4: CMPNV(B) THIS-CHAR, LAST-INPUT /HI(SET-LABEL-ATTR); CMPNV(B) THIS-CHAR, FIRST-INPUT/LO(SET-LABEL-ATTR); CPYBLA FILL-CHAR, X'00'; /* NO FILL */ B SET-INPUT-CURSOR; SET-LABEL-ATTR: CPYBLA FILL-CHAR, X'00'; /* NO FILL */ CPYBLA THE-ATTR, X'13'; /* LABEL */ B SET-OUTPUT-ATTR; ERROR-ATTRIBUTE: CMPNV(B) THIS-CHAR, LAST-BLANK /HI(TEST-INPUT-WINDOW5); CMPNV(B) THIS-CHAR, FIRST-BLANK/LO(TEST-INPUT-WINDOW5); B SET-BLANK-ATTR; TEST-INPUT-WINDOW5: CMPNV(B) THIS-CHAR, LAST-INPUT /HI(SET-PROTECT-ATTR); CMPNV(B) THIS-CHAR, FIRST-INPUT/LO(SET-PROTECT-ATTR); CPYBLA FILL-CHAR, X'00'; /* NO FILL */ SET-ERROR-CURSOR: XLATEWT WS-CHAR(ATTR-P), THE-ATTR, ATTR-TABLE; ADDN FORM-P, ATTR-P, 1; XLATEWT THE-FORM, SD-CHAR(FORM-P), SD-CHAR-CLASS; VERIFY(B) LENGTH, CURSOR-SETTING, "NIQ"/NEQ(ACT-ON-FORMAT); CMPBLA(B) VALID-FORMAT(FORM-VALUE), "-"/EQ(EMPTY-FIELD); CPYBLA ERROR-FIELD, "Y"; CPYBLA CURSOR-SETTING, "E"; B COMPUTE-CURSOR-POSITION; OPTION-ATTRIBUTE: CPYBLA FILL-CHAR, X'00'; /* NO FILL */ CMPNV(B) THIS-CHAR, LAST-BLANK /HI(SET-INPUT-CURSOR); CMPNV(B) THIS-CHAR, FIRST-BLANK/LO(SET-INPUT-CURSOR); B SET-BLANK-ATTR; RECALL-ATTRIBUTE: CPYBLA FILL-CHAR, X'00'; /* NO FILL */ CMPNV(B) THIS-CHAR, LAST-BLANK /HI(SET-CURSOR-FIELD); CMPNV(B) THIS-CHAR, FIRST-BLANK/LO(SET-CURSOR-FIELD); B SET-BLANK-ATTR; DIM-INPUT-FIELDS: CMPBLA(B) UC-ATTR(H'24'), UC-ATTR(H'1C')/NEQ(INIT-FIND-ATTR); CMPBLA(B) LC-ATTR(H'24'), LC-ATTR(H'1C')/NEQ(INIT-FIND-ATTR); DONE-DIMMING: CPYBLA ERROR-FIELD, " "; BRK "DIM"; RTX *; INIT-FIND-ATTR: SUBN(B) ATTR-P, FIRST-INPUT, 1/NLO(FIND-INPUT-ATTR); DIM-THE-FIELD: CMPBLA(B) WS-CHAR(ATTR-P), UC-ATTR(H'1C')/EQ(DIM-UC); CMPBLA(B) WS-CHAR(ATTR-P), LC-ATTR(H'1C')/EQ(DIM-LC); FIND-INPUT-ATTR: ADDN(S) ATTR-P, 1; CMPNV(B) ATTR-P, LAST-INPUT/HI(DONE-DIMMING); XLATEWT THE-ATTR, SD-CHAR(ATTR-P), SD-CHAR-CLASS; B DIM-ACTION(ATTR-VALUE); DIM-UC: CPYBLA WS-CHAR(ATTR-P), UC-ATTR(H'24'); B FIND-INPUT-ATTR; DIM-LC: CPYBLA WS-CHAR(ATTR-P), LC-ATTR(H'24'); B FIND-INPUT-ATTR; FORMAT-ERROR: CPYNV THIS-CHAR, FORM-P; CPYBLA ERROR-CODE, "F"; B ERROR-DETECTED; OUTPUT-IS-UPPER-TEXT: SETSPPD .FIELD, SD-CHAR(THIS-CHAR), 1; VERIFY LENGTH,.FIELD->CH80, " "; SETSPP .TO, WS-CHAR(THIS-CHAR); CMPBLA(B) FILL-CHAR, X'40'/EQ(FILL-TEXT-FIELD); SETSPP .FROM, WA-CHAR(THIS-CHAR); B PUT-UPPER-TEXT(LENGTH); OUTPUT-IS-LOWER-TEXT: XLATEWT WS-CHAR(ATTR-P), THE-ATTR, LOWER-CASE; SETSPPD .FIELD, SD-CHAR(THIS-CHAR), 1; VERIFY LENGTH,.FIELD->CH80, " "; SETSPP .TO, WS-CHAR(THIS-CHAR); CMPBLA(B) FILL-CHAR, X'40'/EQ(FILL-TEXT-FIELD); SETSPP .FROM, WA-CHAR(THIS-CHAR); B PUT-LOWER-TEXT(LENGTH); BLANK-THE-FIELD: SETSPPD .FIELD, SD-CHAR(THIS-CHAR), 1; VERIFY LENGTH,.FIELD->CH80, WITHIN-FIELD; SETSPP .TO, WS-CHAR(THIS-CHAR); FILL-TEXT-FIELD: B FILL-WITH-BLANK(LENGTH); BLANK-REST-OF-FIELD: SUBN(B) LENGTH, THIS-CHAR, CHAR-P/ZER(OUTPUT-NEXT-FIELD); SETSPP .TO, WS-CHAR(CHAR-P); B BLANK-OUT-REST(LENGTH); NOT-USED: INVALID-DIGIT: CPYBLA ERROR-CODE, "D"; B ERROR-DETECTED; OUTPUT-IS-CARDINAL: CMPBLA(B) FILL-CHAR, X'40'/EQ(BLANK-THE-FIELD); CPYNV CHAR-P, THIS-CHAR; COPY-LEFT-JUSTIFIED: XLATEWT THE-DIGIT, WA-CHAR(THIS-CHAR), DIGIT-CLASS; B LEADING-CARDINAL-DIGITS (DIGIT-VALUE); SKIP-LEADING-ZERO: ADDN(S) THIS-CHAR, 1; CMPBLA(B) SD-CHAR(THIS-CHAR), "A"/NLO(BLANK-REST-OF-FIELD); XLATEWT THE-DIGIT, WA-CHAR(THIS-CHAR), DIGIT-CLASS; B LEADING-CARDINAL-DIGITS (DIGIT-VALUE); COPY-CARDINAL-DIGIT: ADDLC WS-CHAR(CHAR-P), THE-DIGIT, X'EE'; ADDN(S) CHAR-P, 1; ADDN(S) THIS-CHAR, 1; CMPBLA(B) SD-CHAR(THIS-CHAR), "A"/NLO(BLANK-REST-OF-FIELD); XLATEWT THE-DIGIT, WA-CHAR(THIS-CHAR), DIGIT-CLASS; B SIGNIFICANT-CARDINAL-DIGITS (DIGIT-VALUE); OUTPUT-IS-N-NUMBER: CMPBLA(B) FILL-CHAR, X'40'/EQ(BLANK-THE-FIELD); CPYBLA P-S-Z-C-FORM, " 0 "; CPYNV DECIMALS-WANTED, 0; CPYNV BASE-P, ATTR-P; COPY-NUMERIC-TO-SCREEN: XLATEWT THE-DIGIT, WA-CHAR(THIS-CHAR), DIGIT-CLASS; B NUMERIC-CHARACTERS (DIGIT-VALUE); COPY-NUMERIC-CHARACTER: CPYBLA ZERO-FORM, " "; ADDLC WS-CHAR(THIS-CHAR), THE-DIGIT, X'EE'; ADDN(S) THIS-CHAR, 1; CMPBLA(B) SD-CHAR(THIS-CHAR), "A"/NLO(END-OF-NUMERIC); XLATEWT THE-DIGIT, WA-CHAR(THIS-CHAR), DIGIT-CLASS; B NUMERIC-CHARACTERS (DIGIT-VALUE); COPY-NUMERIC-ZERO: ADDLC WS-CHAR(THIS-CHAR), THE-DIGIT, X'EE'; ADDN(S) THIS-CHAR, 1; CMPBLA(B) SD-CHAR(THIS-CHAR), "A"/NLO(END-OF-NUMERIC); XLATEWT THE-DIGIT, WA-CHAR(THIS-CHAR), DIGIT-CLASS; B NUMERIC-CHARACTERS (DIGIT-VALUE); OUTPUT-IS-Z-NUMBER: CMPBLA(B) FILL-CHAR, X'40'/EQ(BLANK-THE-FIELD); CPYBLA P-S-Z-C-FORM, " = "; CPYNV DECIMALS-WANTED, 0; CPYNV BASE-P, ATTR-P; COPY-DIGIT-TO-SCREEN: XLATEWT THE-DIGIT, WA-CHAR(THIS-CHAR), DIGIT-CLASS; B LEADING-DIGITS (DIGIT-VALUE); COPY-LEADING-BLANK: CPYBLA WS-CHAR(THIS-CHAR), " "; ADDN(S) THIS-CHAR, 1; CMPBLA(B) SD-CHAR(THIS-CHAR), "A"/NLO(END-OF-NUMERIC); XLATEWT THE-DIGIT, WA-CHAR(THIS-CHAR), DIGIT-CLASS; B LEADING-DIGITS (DIGIT-VALUE); COPY-NON-ZERO-DIGIT: CPYBLA ZERO-FORM, " "; COPY-SIGNIFICANT-DIGIT: ADDLC WS-CHAR(THIS-CHAR), THE-DIGIT, X'EE'; ADDN(S) THIS-CHAR, 1; CMPBLA(B) SD-CHAR(THIS-CHAR), "A"/NLO(END-OF-NUMERIC); XLATEWT THE-DIGIT, WA-CHAR(THIS-CHAR), DIGIT-CLASS; B SIGNIFICANT-DIGITS (DIGIT-VALUE); END-OF-NUMERIC: ADDN(S) FORM-P, 1; XLATEWT THE-FORM, SD-CHAR(FORM-P), SD-CHAR-CLASS; B OUTPUT-TEST-IF-SIGN (FORM-VALUE); OUTPUT-IS-DECIMALS: CMPBLA(B) FILL-CHAR, X'40'/EQ(BLANK-THE-FIELD); SUBLC(B) DECIMALS, SD-CHAR(FORM-P), "0"/ZC(NO-DECIMALS); DECIMALS-GT-ZERO: CPYNV BASE-P, ATTR-P; ADDN(S) FORM-P, 1; XLATEWT THE-FORM, SD-CHAR(FORM-P), SD-CHAR-CLASS; B OUTPUT-POINT-ACTION(FORM-VALUE); NO-DECIMALS: CPYNV BASE-P, FORM-P; ADDN(S) FORM-P, 1; XLATEWT THE-FORM, SD-CHAR(FORM-P), SD-CHAR-CLASS; B OUTPUT-INTEGER-ACTION(FORM-VALUE); OUTPUT-INTEGER: CPYBLA POINT-FORM, " "; XLATEWT THE-FORM, SD-CHAR(FORM-P), SD-CHAR-CLASS; B OUTPUT-SIGN-ACTION(FORM-VALUE); OUTPUT-POINT: CPYBLA POINT-FORM, "."; ADDN(S) FORM-P, 1; XLATEWT THE-FORM, SD-CHAR(FORM-P), SD-CHAR-CLASS; B OUTPUT-SIGN-ACTION(FORM-VALUE); OUTPUT-NO-POINT: XLATEWT THE-CHAR, DATA-MODE, MODE-CLASS; CPYBLA POINT-FORM, POINT-FORMAT(CHAR-VALUE); XLATEWT THE-FORM, SD-CHAR(FORM-P), SD-CHAR-CLASS; B OUTPUT-SIGN-ACTION(FORM-VALUE); OUTPUT-SIGN: CPYBLA SIGN-FORM, SD-CHAR(FORM-P); ADDN(S) BASE-P, 1; ADDN(S) FORM-P, 1; XLATEWT THE-FORM, SD-CHAR(FORM-P), SD-CHAR-CLASS; B OUTPUT-ZERO-ACTION(FORM-VALUE); OUTPUT-NO-SIGN: CPYBLA SIGN-FORM, " "; XLATEWT THE-FORM, SD-CHAR(FORM-P), SD-CHAR-CLASS; B OUTPUT-ZERO-ACTION(FORM-VALUE); OUTPUT-ZERO: CPYBLA ZERO-FORM, "="; ADDN(S) FORM-P, 1; XLATEWT THE-FORM, SD-CHAR(FORM-P), SD-CHAR-CLASS; B OUTPUT-COMMA-ACTION(FORM-VALUE); OUTPUT-NO-ZERO: CPYBLA ZERO-FORM, "0"; XLATEWT THE-FORM, SD-CHAR(FORM-P), SD-CHAR-CLASS; B OUTPUT-COMMA-ACTION(FORM-VALUE); OUTPUT-COMMA: CPYBLA COMMA-FORM, ","; ADDN(S) FORM-P, 1; B CHECK-REMAINING-FORMAT; OUTPUT-NO-COMMA: OUTPUT-NO-C: CPYBLA C-FORM, " "; B CHECK-REMAINING-FORMAT; OUTPUT-NO-Z-C: CPYBLA Z-C-FORM, "0 "; B CHECK-REMAINING-FORMAT; OUTPUT-NO-S-Z-C: CPYBLA S-Z-C-FORM, " 0 "; B CHECK-REMAINING-FORMAT; OUTPUT-NO-P-S-Z-C: CPYBLA P-S-Z-C-FORM, " 0 "; CHECK-REMAINING-FORMAT: SETSPPD .FIELD, SD-CHAR(FORM-P), 1; VERIFY LENGTH,.FIELD->CH80, " "; XLATEWT THE-FORM,.FIELD->CHAR(LENGTH), SD-CHAR-CLASS; B TEST-IF-ATTRIBUTE(FORM-VALUE); COPY-LEADING-DECIMAL: CPYBLA WS-CHAR(THIS-CHAR), " "; ADDN(S) THIS-CHAR, 1; CMPBLA(B) SD-CHAR(THIS-CHAR), "A"/NLO(END-OF-DIGITS); COPY-DECIMAL-TO-SCREEN: XLATEWT THE-DIGIT, WA-CHAR(THIS-CHAR), DIGIT-CLASS; B LEADING-DECIMALS (DIGIT-VALUE); COPY-NON-ZERO-DECIMAL: CPYBLA ZERO-FORM, " "; COPY-SIGNIFICANT-DECIMAL: ADDLC WS-CHAR(THIS-CHAR), THE-DIGIT, X'EE'; ADDN(S) THIS-CHAR, 1; CMPBLA(B) SD-CHAR(THIS-CHAR), "A"/NLO(END-OF-DIGITS); XLATEWT THE-DIGIT, WA-CHAR(THIS-CHAR), DIGIT-CLASS; B SIGNIFICANT-DECIMALS (DIGIT-VALUE); OUTPUT-PICKUP-SIGN: ADDN(S) FORM-P, 1; ADDN(S) BASE-P, 1; CPYBLA SIGN-FORM, SD-CHAR(FORM-P); END-OF-DIGITS: SUBN LAST-P, THIS-CHAR, 1; SUBN STOP-P, LAST-P, DECIMALS-WANTED; CMPBLA(B) DECIMALS , X'00'/EQ (TEST-IF-FORMAT-OK); CMPBLA(B) POINT-FORM, "." /EQ (TEST-IF-FORMAT-OK); REMOVE-DECIMALS: SUBN LEFT-P, LAST-P, DECIMALS-WANTED; CPYNV CHAR-P, LAST-P; MOVE-FIELD-RIGHT: CPYBLA WS-CHAR(CHAR-P), WS-CHAR(LEFT-P); SUBN(S) LEFT-P-&-CHAR-P, BOTH-BY-1; CMPNV(B) LEFT-P, ATTR-P/HI(MOVE-FIELD-RIGHT); PAD-FIELD-LEFT: CPYBLA WS-CHAR(CHAR-P), " "; SUBN(S) CHAR-P, 1; CMPNV(B) CHAR-P, ATTR-P/HI(PAD-FIELD-LEFT); CPYBLA DECIMALS, X'00'; TEST-IF-FORMAT-OK: CMPNV(B) STOP-P, BASE-P/NHI(FORMAT-ERROR); CMPBLA(B) ZERO-FORM, "="/EQ(OUTPUT-NEXT-FIELD); CPYNV CHAR-P, LAST-P; SUBN STOP-P, LAST-P, DECIMALS-WANTED; MAKE-SIGNIFICANT-ZEROES: CPYHEXNZ WS-CHAR(CHAR-P), X'0F'; SUBN(S) CHAR-P, 1; CMPNV(B) CHAR-P, STOP-P/NLO(MAKE-SIGNIFICANT-ZEROES); FORMAT-NUMBER: CPYNV BASE-P, STOP-P; ADDN CHAR-P, ATTR-P, 1; SETSPP .FIELD, WS-CHAR(CHAR-P); TEST-IF-POINT-WANTED: CMPBLA(B) POINT-FORM, "."/NEQ(TEST-IF-SIGN-WANTED); POINT-WANTED: SUBN(S) BASE-P, 1; CPYBLA .FIELD->CH01, " "; VERIFY CHAR-P,.FIELD->CH80, " "; ADDN(S) CHAR-P, ATTR-P; SUBN LEFT-P, CHAR-P, 1; MOVE-CHAR-LEFT1: CPYBLA WS-CHAR(LEFT-P), WS-CHAR(CHAR-P); ADDN(S) LEFT-P-&-CHAR-P, BOTH-BY-1; CMPNV(B) CHAR-P, STOP-P/NHI(MOVE-CHAR-LEFT1); INSERT-POINT-CHAR: CPYBLA WS-CHAR(STOP-P), POINT-CHAR; CPYNV STOP-P, LAST-P; TEST-IF-SIGN-WANTED: CMPBLA(B) SIGN-FORM, "-"/NEQ(TEST-IF-PLUS-SIGN); MINUS-SIGN-IN-FORMAT: SUBN(S) BASE-P, 1; CPYBLA .FIELD->CH01, " "; VERIFY CHAR-P,.FIELD->CH80, " "; ADDN(S) CHAR-P, ATTR-P; SUBN LEFT-P, CHAR-P, 1; MOVE-CHAR-LEFT2: CPYBLA WS-CHAR(LEFT-P), WS-CHAR(CHAR-P); ADDN(S) LEFT-P-&-CHAR-P, BOTH-BY-1; CMPNV(B) CHAR-P, STOP-P/NHI(MOVE-CHAR-LEFT2); TEST-ON-SIGN2: CMPBLA(B) ZERO-FORM, "0"/EQ(DONT-SHOW-SIGN); TSTBUM(B) WA-CHAR(LAST-P), X'F0'/NONES(NUMBER-IS-NEGATIVE); DONT-SHOW-SIGN: CPYBLA WS-CHAR(STOP-P), " "; B TEST-IF-COMMAS-WANTED; NUMBER-IS-NEGATIVE: CPYBLA WS-CHAR(STOP-P), "-"; B TEST-IF-COMMAS-WANTED; TEST-IF-PLUS-SIGN: CMPBLA(B) SIGN-FORM, "+"/NEQ(TEST-IF-COMMAS-WANTED); PLUS-SIGN-IN-FORMAT: SUBN(S) BASE-P, 1; CPYBLA .FIELD->CH01, " "; VERIFY CHAR-P,.FIELD->CH80, " "; ADDN(S) CHAR-P, ATTR-P; SUBN LEFT-P, CHAR-P, 1; MOVE-CHAR-LEFT3: CPYBLA WS-CHAR(LEFT-P), WS-CHAR(CHAR-P); ADDN(S) LEFT-P-&-CHAR-P, BOTH-BY-1; CMPNV(B) CHAR-P, STOP-P/NHI(MOVE-CHAR-LEFT3); TEST-ON-SIGN3: CMPBLA(B) ZERO-FORM, "0"/EQ(DONT-SHOW-SIGN); TSTBUM(B) WA-CHAR(LAST-P), X'F0'/NONES(NUMBER-IS-NEGATIVE); CPYBLA WS-CHAR(STOP-P), "+"; TEST-IF-COMMAS-WANTED: CMPBLA(B) COMMA-FORM, ","/NEQ(OUTPUT-NEXT-FIELD); COMMAS-WANTED: ADDN START-P, ATTR-P, 5; TEST-IF-COMMAS-DONE: CMPNV(B) BASE-P, START-P/LO(OUTPUT-NEXT-FIELD); DEAL-WITH-3-DIGITS: SUBN(S) BASE-P, 3; CMPBLA(B) WS-CHAR(BASE-P), " "/EQ(TEST-IF-COMMAS-DONE); CPYNV STOP-P, BASE-P; SUBN(S) BASE-P, 1; CPYBLA .FIELD->CH01, " "; VERIFY CHAR-P,.FIELD->CH80, " "; ADDN(S) CHAR-P, ATTR-P; SUBN LEFT-P, CHAR-P, 1; MOVE-CHAR-LEFT4: CPYBLA WS-CHAR(LEFT-P), WS-CHAR(CHAR-P); ADDN(S) LEFT-P-&-CHAR-P, BOTH-BY-1; CMPNV(B) CHAR-P, STOP-P/NHI(MOVE-CHAR-LEFT4); CPYBLA WS-CHAR(STOP-P), COMMA-CHAR; CMPNV(B) BASE-P, START-P/NLO(TEST-IF-COMMAS-DONE); B OUTPUT-NEXT-FIELD; OUTPUT-IS-DATE: CMPBLA(B) FILL-CHAR, X'40'/EQ(BLANK-THE-FIELD); SETSPPD .FIELD, SD-CHAR(THIS-CHAR), 1; VERIFY LENGTH,.FIELD->CH80, " /-."; CMPNV(B) LENGTH,8/LO(FORMAT-ERROR); CPYBLA CURR-SEPARATOR,.FIELD->CH01; CMPBLA(B) CURR-SEPARATOR, " "/NEQ(SEPARATOR-IS-SET); CPYBLA CURR-SEPARATOR, DATE-SEPARATOR; SEPARATOR-IS-SET: XLATEWT THE-CHAR, DATA-MODE, MODE-CLASS; B SET-DATE-SCHEMA-OUT (CHAR-VALUE); USE-MDY-SCHEMA-OUT: CPYBLA DATE-SCHEMA, MDY-SCHEMA; B OUTPUT-THE-DATE; USE-DMY-SCHEMA-OUT: CPYBLA DATE-SCHEMA, DMY-SCHEMA; B OUTPUT-THE-DATE; USE-YMD-SCHEMA-OUT: CPYBLA DATE-SCHEMA, YMD-SCHEMA; OUTPUT-THE-DATE: CPYNV DATE-CUTOFF, 8; CMPNV(B) LENGTH,10/NLO(DATE-CUTOFF-SET); CPYNV DATE-CUTOFF, 6; DATE-CUTOFF-SET: ADDN STOP-P, THIS-CHAR, LENGTH; CPYBLA ZERO-FORM, "0"; CPYNV SCHEMA-P, 1; COPY-DATE-TO-SCREEN: XLATEWT THE-DIGIT, SCHEMA-CHAR(SCHEMA-P), INPUT-CLASS; B OUT-DATE-ACTION (DIGIT-VALUE); SUPPRESS-IF-LEADING: CMPNV(B) THIS-CHAR, FORM-P/NEQ(NEXT-OUTPUT-CHAR); CMPBLA(B) DATE-SCHEMA-FORMAT, "Y"/EQ(NEXT-OUTPUT-CHAR); CHAR-TO-STOP: CPYBLA WS-CHAR(THIS-CHAR), " "; B NEXT-OUTPUT-CHAR; CHAR-IS-SLASH: ADDN(S) SCHEMA-P, 1; CPYBLA WS-CHAR(THIS-CHAR), CURR-SEPARATOR; B NEXT-OUTPUT-CHAR; CHAR-IS-NUMERIC: ADDN(S) SCHEMA-P, 1; SUBN DEST-P, DIGIT-VALUE, 2; CMPNV(B) DEST-P, DATE-CUTOFF/HI(TEST-COPY-DATE); SUBN CHAR-P, STOP-P, DEST-P; CPYBLA THE-DIGIT, WA-CHAR(CHAR-P); CPYBLA WS-CHAR(THIS-CHAR), THE-DIGIT; CMPBLA(B) THE-DIGIT, "0"/EQ(SUPPRESS-IF-LEADING); CPYBLA ZERO-FORM, THE-DIGIT; NEXT-OUTPUT-CHAR: ADDN(S) THIS-CHAR, 1; TEST-COPY-DATE: CMPNV(B) THIS-CHAR, STOP-P/LO(COPY-DATE-TO-SCREEN); CMPBLA(B) ZERO-FORM, "0"/NEQ(OUTPUT-NEXT-FIELD); MAKE-BLANK-EXT-DATE: CMPBLA(B) WS-CHAR(FORM-P), "0"/NEQ(MADE-BLANK-EXT-DATE); CPYBLA WS-CHAR(FORM-P), " "; MADE-BLANK-EXT-DATE: ADDN(S) FORM-P, 1; CMPNV(B) FORM-P, STOP-P/LO(MAKE-BLANK-EXT-DATE); B OUTPUT-NEXT-FIELD; /******************************************************************/ MOVE-FIELDS-FROM-SCREEN: CPYBLA INPUT-CLASS-CHAR(POINT-VALUE), X'01'; CPYBLA THE-POINT, POINT-CHAR; CPYBLA INPUT-CLASS-CHAR(POINT-VALUE), X'0D'; CPYBLA INPUT-CLASS-CHAR(COMMA-VALUE), X'01'; CPYBLA THE-COMMA, COMMA-CHAR; CPYBLA INPUT-CLASS-CHAR(COMMA-VALUE), X'10'; CPYBLA CURSOR-SETTING, "N"; B GET-NEXT-FIELD; END-GET-TEXT: ADDN(S) THIS-CHAR, LENGTH; GET-NEXT-FIELD: CMPNV(B) THIS-CHAR, LAST-INPUT/NLO(DONE-GETTING); SETSPP .FIELD, WS-CHAR(THIS-CHAR); ECSCAN(B) LENGTH,.FIELD->CHARS, X'00',X'00'/EC(ON-THE-ATTR); ON-THE-ATTR: ADDN(S) THIS-CHAR, LENGTH; SUBN ATTR-P, THIS-CHAR, 1; CPYBLA THE-ATTR, WS-CHAR(ATTR-P); B GET-ATTR-ACTION(ATTR-VALUE); INPUT-FIELD-FOUND: XLATEWT THE-ATTR, SD-CHAR(ATTR-P), SD-CHAR-CLASS; B FIX-ATTR-ACTION(ATTR-VALUE); INPUT-FIELD-FOUND-LC: XLATEWT THE-ATTR, SD-CHAR(ATTR-P), SD-CHAR-CLASS; B FIX-ATTR-ACTION-LC(ATTR-VALUE); DONE-GETTING: BRK "GET"; RTX *; RESET-ERROR-F: CPYBLA SD-CHAR(ATTR-P),"C"; CPYBLA WS-CHAR(ATTR-P),X'36'; B TEST-FIELD-FORMAT; RESET-ERROR-A: CPYBLA SD-CHAR(ATTR-P),"J"; B TEST-FIELD-FORMAT; RESET-ERROR-G: CPYBLA SD-CHAR(ATTR-P),"Q"; CPYBLA WS-CHAR(ATTR-P),X'36'; B TEST-FIELD-FORMAT; RESET-ERROR-E: CPYBLA SD-CHAR(ATTR-P),"I"; SET-MODIF-ATTR: CPYBLA WS-CHAR(ATTR-P),X'36'; B TEST-FIELD-FORMAT; RESET-ERROR-F-LC: CPYBLA SD-CHAR(ATTR-P),"C"; CPYBLA WS-CHAR(ATTR-P),X'26'; B TEST-FIELD-FORMAT; RESET-ERROR-A-LC: CPYBLA SD-CHAR(ATTR-P),"J"; B TEST-FIELD-FORMAT; RESET-ERROR-G-LC: CPYBLA SD-CHAR(ATTR-P),"Q"; CPYBLA WS-CHAR(ATTR-P),X'26'; B TEST-FIELD-FORMAT; RESET-ERROR-E-LC: CPYBLA SD-CHAR(ATTR-P),"I"; SET-MODIF-ATTR-LC: CPYBLA WS-CHAR(ATTR-P),X'26'; TEST-FIELD-FORMAT: XLATEWT THE-FORM, SD-CHAR(THIS-CHAR), SD-CHAR-CLASS; B ACT-ON-INPUT-FORMAT(FORM-VALUE); INPUT-IS-UPPER-TEXT: SETSPPD .FIELD, SD-CHAR(THIS-CHAR), 1; VERIFY LENGTH,.FIELD->CH80, " "; SETSPP .FROM, WS-CHAR(THIS-CHAR); SETSPP .TO, WA-CHAR(THIS-CHAR); B GET-UPPER-TEXT(LENGTH); INPUT-IS-LOWER-TEXT: SETSPPD .FIELD, SD-CHAR(THIS-CHAR), 1; VERIFY LENGTH,.FIELD->CH80, " "; SETSPP .FROM, WS-CHAR(THIS-CHAR); SETSPP .TO, WA-CHAR(THIS-CHAR); B GET-LOWER-TEXT(LENGTH); INPUT-IS-CARDINAL: CPYNV BASE-P, ATTR-P; CPYBREP P-S-Z-C-FORM, " "; CPYBLA DECIMALS, X'00'; GET-NUMERIC-FIELD: CPYNV STACK-P, EMPTY-P; CPYBLA CURR-SIGN, X'00'; /* PLUS */ CPYNV POINT-P, NEVER-SEEN; CPYNV SIGN-P, NEVER-SEEN; STACK-DIGITS: CPYBLA WA-CHAR(THIS-CHAR), "0"; XLATEWT THE-DIGIT, WS-CHAR(THIS-CHAR), INPUT-CLASS; B STACK-ACTION(DIGIT-VALUE); CHAR-IS-SPACE: CMPNV(B) STACK-P, EMPTY-P/EQ(TEST-WITHIN-FIELD); FORGET-REST-OF-NUMBER: CPYBLA WA-CHAR(THIS-CHAR), "0"; ADDN(S) THIS-CHAR, 1; CMPBLA(B) SD-CHAR(THIS-CHAR), "A"/LO(FORGET-REST-OF-NUMBER); B FORMAT-THE-NUMBER; CHAR-IS-POINT: CMPNV(B) POINT-P, NEVER-SEEN/NEQ(FIELD-REJECTED); CPYNV POINT-P, STACK-P; B TEST-WITHIN-FIELD; CHAR-IS-PLUS: CMPNV(B) SIGN-P, NEVER-SEEN/NEQ(FIELD-REJECTED); CPYNV SIGN-P, STACK-P; B TEST-WITHIN-FIELD; CHAR-IS-MINUS: CMPNV(B) SIGN-P, NEVER-SEEN/NEQ(FIELD-REJECTED); CPYNV SIGN-P, STACK-P; CPYBLA CURR-SIGN, X'20'; /* MINUS */ B TEST-WITHIN-FIELD; CHAR-IS-COMMA: CMPBLA(B) COMMA-FORM, ","/NEQ(FIELD-REJECTED); B TEST-WITHIN-FIELD; CHAR-IS-DIGIT: SUBN(S) STACK-P, 1; ADDLC DIGIT-STACK(STACK-P), THE-DIGIT, X'EE'; TEST-WITHIN-FIELD: ADDN(S) THIS-CHAR, 1; CMPBLA(B) SD-CHAR(THIS-CHAR), "A"/LO(STACK-DIGITS); FORMAT-THE-NUMBER: CMPNV(B) STACK-P, EMPTY-P/EQ(GET-NEXT-FIELD); TEST-SIGN: CMPNV(B) SIGN-P, NEVER-SEEN/EQ(TEST-POINT); SIGN-PRESENT: CMPBLA(B) SIGN-FORM, "+"/NEQ(FIELD-REJECTED); CMPNV(B) SIGN-P, STACK-P/EQ(TEST-POINT); CMPNV(B) SIGN-P, EMPTY-P/NEQ(FIELD-REJECTED); TEST-POINT: CMPNV(B) POINT-P, NEVER-SEEN/NEQ(POINT-PRESENT); CPYNV DECIMALS-PRESENT, 0; B STACK-ZEROES; POINT-PRESENT: SUBN DECIMALS-PRESENT, POINT-P, STACK-P; CMPNV(B) DECIMALS-PRESENT, DECIMALS-WANTED/HI(FIELD-REJECTED); CMPBLA(B) POINT-FORM, "."/NEQ(FIELD-REJECTED); STACK-ZEROES: CMPNV(B) DECIMALS-PRESENT, DECIMALS-WANTED/EQ(MAKE-SIGNED); STACK-ZEROES1: SUBN(S) STACK-P, 1; CPYBLA DIGIT-STACK(STACK-P), "0"; ADDN(S) DECIMALS-PRESENT, 1; CMPNV(B) DECIMALS-PRESENT, DECIMALS-WANTED/NEQ(STACK-ZEROES1); MAKE-SIGNED: SUBLC(S) DIGIT-STACK(STACK-P), CURR-SIGN; SUBN CHAR-P, THIS-CHAR, 1; UNSTACK-DIGITS: CMPNV(B) CHAR-P, BASE-P/EQ(FIELD-REJECTED); CPYBLA WA-CHAR(CHAR-P), DIGIT-STACK(STACK-P); SUBN(S) CHAR-P, 1; ADDN(S) STACK-P, 1; CMPNV(B) STACK-P, EMPTY-P/NEQ(UNSTACK-DIGITS); B GET-NEXT-FIELD; FIELD-REJECTED: CMPBLA(B) CURSOR-SETTING, "E"/EQ(SET-ERROR-ATTR); CPYBLA CURSOR-SETTING, "E"; CPYBLA ERROR-FIELD, "Y"; SUBN NUMBER, ATTR-P, 1; DIVREM QUOTIENT, NUMBER, 80, REMAINDER; ADDN CURSOR-ROW, QUOTIENT, 1; ADDN CURSOR-COL, REMAINDER, 2; SET-ERROR-ATTR: CMPBLA(B) SD-CHAR(ATTR-P), "S"/EQ(GET-NEXT-FIELD); XLATEWT WS-CHAR(ATTR-P), X'20'/*ERROR*/, ATTR-TABLE; B GET-NEXT-FIELD; INPUT-IS-N-NUMBER: INPUT-IS-Z-NUMBER: CPYNV BASE-P, ATTR-P; CPYBLA DECIMALS, X'00'; ADDN FORM-P, THIS-CHAR, 1; XLATEWT THE-CHAR, SD-CHAR(FORM-P), SD-CHAR-CLASS; B INPUT-TEST-IF-INTEGER-SIGN(CHAR-VALUE); UNSIGNED-INTEGER: CPYBLA P-S-Z-C-FORM, " 0 "; B GET-NUMERIC-FIELD; SIGNED-INTEGER: CPYBLA P-S-Z-C-FORM, " +0 "; ADDN(S) FORM-P, 1; ADDN(S) BASE-P, 1; B GET-NUMERIC-FIELD; INPUT-IS-DECIMALS: CPYNV BASE-P, ATTR-P; ADDN FORM-P, THIS-CHAR, 1; CPYBLA POINT-FORM, SD-CHAR(FORM-P); SUBLC(B) DECIMALS, SD-CHAR(THIS-CHAR), "0"/ZC(GET-SIGN-FORM); UNCONDITIONAL-DECIMALS: ADDN(S) BASE-P, 1; CMPBLA(B) POINT-FORM, "."/NEQ(SET-POINT-FOR-DATA-MODE); ADDN(S) FORM-P, 1; B GET-SIGN-FORM; SET-POINT-FOR-DATA-MODE: XLATEWT THE-CHAR, DATA-MODE, MODE-CLASS; CPYBLA POINT-FORM, POINT-FORMAT(CHAR-VALUE); GET-SIGN-FORM: XLATEWT THE-CHAR, SD-CHAR(FORM-P), SD-CHAR-CLASS; B INPUT-TEST-IF-SIGN(CHAR-VALUE); UNSIGNED-NUMBER: CPYBLA SIGN-FORM, " "; B GET-ZERO-FORM; SIGNED-NUMBER: CPYBLA SIGN-FORM, "+"; ADDN(S) FORM-P, 1; ADDN(S) BASE-P, 1; GET-ZERO-FORM: XLATEWT THE-CHAR, SD-CHAR(FORM-P), SD-CHAR-CLASS; B INPUT-TEST-IF-ZERO(CHAR-VALUE); BLANK-WHEN-ZERO: ADDN(S) FORM-P, 1; GET-COMMA-FORM: CPYBLA COMMA-FORM, SD-CHAR(FORM-P); CMPBLA(B) COMMA-FORM, ","/NEQ(GET-NUMERIC-FIELD); ADDN(S) FORM-P, 1; B GET-NUMERIC-FIELD; INPUT-IS-DATE: CPYNV FORM-P, THIS-CHAR; SETSPPD .FIELD, SD-CHAR(THIS-CHAR), 1; VERIFY LENGTH,.FIELD->CH80, " /-."; CMPNV(B) LENGTH,8/LO(FORMAT-ERROR); ADDN STOP-P, THIS-CHAR, LENGTH; XLATEWT THE-CHAR, DATA-MODE, MODE-CLASS; B SET-DATE-SCHEMA-IN (CHAR-VALUE); USE-MDY-SCHEMA-IN: CPYBLA DATE-SCHEMA, MDY-SCHEMA; B INPUT-THE-DATE; USE-DMY-SCHEMA-IN: CPYBLA DATE-SCHEMA, DMY-SCHEMA; B INPUT-THE-DATE; USE-YMD-SCHEMA-IN: CPYBLA DATE-SCHEMA, YMD-SCHEMA; INPUT-THE-DATE: CPYBREP DATE-DIGITS, "0"; CPYNV NBR-DIGITS-&-CON, 0; GET-DATE-DIGIT: XLATEWT THE-DIGIT, WS-CHAR(THIS-CHAR), INPUT-CLASS; B IN-DATE-ACTION (DIGIT-VALUE); CHAR-IS-SEPARATOR: ADDN DEST-P, NBR-OF-CONS-D, 1; CMPBLA(B) CONSECUTIVE-OK(DEST-P), "-"/EQ(FIELD-REJECTED); CPYNV NBR-OF-CONS-D, 0; TSTBUM(B) DIGITS, X'01'/ZER(NEXT-DATE-DIGIT); FILL-UP-TO-EVEN-DIGITS: CPYNV CHAR-P, NBR-OF-DIGITS; ADDN(S) NBR-OF-DIGITS, 1; CPYNV DEST-P, NBR-OF-DIGITS; CPYBLA DATE-DIGIT(DEST-P), DATE-DIGIT(CHAR-P); CPYBLA DATE-DIGIT(CHAR-P), "0"; B NEXT-DATE-DIGIT; CHAR-IS-DATE-DIGIT: CMPNV(B) NBR-OF-DIGITS, 8/NLO(FIELD-REJECTED); ADDN(S) NBR-DIGITS-&-CON, BOTH-BY-1; ADDLC DATE-DIGIT(NBR-OF-DIGITS), THE-DIGIT, X'EE'; NEXT-DATE-DIGIT: ADDN(S) THIS-CHAR, 1; CMPNV(B) THIS-CHAR, STOP-P/LO(GET-DATE-DIGIT); END-OF-DATE: TSTBUM(B) DIGITS, X'01'/ZER(TEST-IF-SIX-DIGITS); FILL-UP-TO-EVEN-DIGITS1: CPYNV CHAR-P, NBR-OF-DIGITS; ADDN(S) NBR-OF-DIGITS, 1; CPYNV DEST-P, NBR-OF-DIGITS; CPYBLA DATE-DIGIT(DEST-P), DATE-DIGIT(CHAR-P); CPYBLA DATE-DIGIT(CHAR-P), "0"; TEST-IF-SIX-DIGITS: CMPBLA(B) DIGITS, X'06'/NEQ(TEST-IF-EVEN-DIGITS); FILL-UP-WITH-CENTURY: SUBLC THE-DIGIT, DATE-SCHEMA-LAST, X'F0'; CPYNV CHAR-P, NBR-OF-DIGITS; MOVE-DATE-2-RIGHT: ADDN DEST-P, CHAR-P, 2; CPYBLA DATE-DIGIT(DEST-P), DATE-DIGIT(CHAR-P); CPYBLA DATE-DIGIT(CHAR-P), "0"; SUBN(S) CHAR-P, 1; CMPNV(B) CHAR-P, DIGIT-VALUE/NLO(MOVE-DATE-2-RIGHT); TEST-IF-EVEN-DIGITS: TSTBUM(B) DIGITS, X'01'/NZER(FIELD-REJECTED); EXTRACT-FORMATTED-DATE: CMPBLA(B) DIGITS, X'02'/EQ(ONLY-DAY-ENTERED); CMPBLA(B) DIGITS, X'04'/EQ(NO-YEAR-ENTERED); CMPBLA(B) DATE-SCHEMA-FORMAT, "Y"/EQ(YMD-FORMAT); CMPBLA(B) DATE-SCHEMA-FORMAT, "M"/EQ(MDY-FORMAT); CMPBLA(B) DATE-SCHEMA-FORMAT, "D"/EQ(DMY-FORMAT); HAVE-THE-DATE: CMPBLA(B) DIGITS, X'00'/EQ(ACCEPT-THE-DATE); CHECK-THE-DATE: CMPNV(B) MONTH-VALUE, 1/LO(FIELD-REJECTED); CMPNV(B) MONTH-VALUE, 12/HI(FIELD-REJECTED); CPYNV SAVED-MONTH, MONTH-VALUE; CMPNV(B) DAY-VALUE, 1/LO(FIELD-REJECTED); CMPNV(B) DAY-VALUE, DAYS(MONTH-VALUE)/HI(FIELD-REJECTED); TEST-50: CMPNV(B) YEAR-VALUE, 50/NLO(TEST-100); ADDN(S) YEAR-VALUE, 2000; B SAVE-YEAR-VALUE; TEST-100: CMPNV(B) YEAR-VALUE, 100/NLO(SAVE-YEAR-VALUE); ADDN(S) YEAR-VALUE, 1900; SAVE-YEAR-VALUE: CPYNV SAVED-YEAR, YEAR-VALUE; CMPNV(B) DAY-VALUE , 29/NEQ(ACCEPT-THE-DATE); CMPNV(B) MONTH-VALUE, 2/NEQ(ACCEPT-THE-DATE); FEBRUARY-29TH: DIVREM QUOTIENT, YEAR-VALUE, 4, REMAINDER; CMPNV(B) REMAINDER, 0/NEQ(FIELD-REJECTED); DIVREM QUOTIENT, YEAR-VALUE, 100, REMAINDER; CMPNV(B) REMAINDER, 0/NEQ(ACCEPT-THE-DATE); DIVREM QUOTIENT, YEAR-VALUE, 400, REMAINDER; CMPNV(B) REMAINDER, 0/NEQ(FIELD-REJECTED); ACCEPT-THE-DATE: CPYNV INT-YEAR , YEAR-VALUE; CPYNV INT-MONTH, MONTH-VALUE; CPYNV INT-DAY , DAY-VALUE; GET-INTERNAL-DATE: CPYNV CHAR-P, STOP-P; CPYNV LEFT-P, 81; GET-NEXT-INT-DIGIT: SUBN(S) LEFT-P-&-CHAR-P, BOTH-BY-1; CPYBLA WA-CHAR(CHAR-P), INT-DATE-CHAR(LEFT-P); CMPNV(B) CHAR-P, FORM-P/HI(GET-NEXT-INT-DIGIT); B GET-NEXT-FIELD; ONLY-DAY-ENTERED: CPYNV YEAR-VALUE , SAVED-YEAR; CPYNV MONTH-VALUE, SAVED-MONTH; CPYNV DAY-VALUE , D-DATE-DD; B CHECK-THE-DATE; NO-YEAR-ENTERED: CPYNV YEAR-VALUE , SAVED-YEAR; CMPBLA(B) DATE-SCHEMA-FORMAT, "D"/EQ(USE-D-MONTH-DAY); B USE-M-MONTH-DAY; YMD-FORMAT: CPYNV YEAR-VALUE , Y-DATE-YYYY; CPYNV MONTH-VALUE, Y-DATE-MM; CPYNV DAY-VALUE , Y-DATE-DD; B HAVE-THE-DATE; MDY-FORMAT: CPYNV YEAR-VALUE , M-DATE-YYYY; USE-M-MONTH-DAY: CPYNV MONTH-VALUE, M-DATE-MM; CPYNV DAY-VALUE , M-DATE-DD; B HAVE-THE-DATE; DMY-FORMAT: CPYNV YEAR-VALUE , D-DATE-YYYY; USE-D-MONTH-DAY: CPYNV MONTH-VALUE, D-DATE-MM; CPYNV DAY-VALUE , D-DATE-DD; B HAVE-THE-DATE; PUT-UC-01: XLATEWT .TO->CH01,.FROM->CH01, UC-CHARS; B END-PUT-TEXT; PUT-UC-02: XLATEWT .TO->CH02,.FROM->CH02, UC-CHARS; B END-PUT-TEXT; PUT-UC-03: XLATEWT .TO->CH03,.FROM->CH03, UC-CHARS; B END-PUT-TEXT; PUT-UC-04: XLATEWT .TO->CH04,.FROM->CH04, UC-CHARS; B END-PUT-TEXT; PUT-UC-05: XLATEWT .TO->CH05,.FROM->CH05, UC-CHARS; B END-PUT-TEXT; PUT-UC-06: XLATEWT .TO->CH06,.FROM->CH06, UC-CHARS; B END-PUT-TEXT; PUT-UC-07: XLATEWT .TO->CH07,.FROM->CH07, UC-CHARS; B END-PUT-TEXT; PUT-UC-08: XLATEWT .TO->CH08,.FROM->CH08, UC-CHARS; B END-PUT-TEXT; PUT-UC-09: XLATEWT .TO->CH09,.FROM->CH09, UC-CHARS; B END-PUT-TEXT; PUT-UC-10: XLATEWT .TO->CH10,.FROM->CH10, UC-CHARS; B END-PUT-TEXT; PUT-UC-11: XLATEWT .TO->CH11,.FROM->CH11, UC-CHARS; B END-PUT-TEXT; PUT-UC-12: XLATEWT .TO->CH12,.FROM->CH12, UC-CHARS; B END-PUT-TEXT; PUT-UC-13: XLATEWT .TO->CH13,.FROM->CH13, UC-CHARS; B END-PUT-TEXT; PUT-UC-14: XLATEWT .TO->CH14,.FROM->CH14, UC-CHARS; B END-PUT-TEXT; PUT-UC-15: XLATEWT .TO->CH15,.FROM->CH15, UC-CHARS; B END-PUT-TEXT; PUT-UC-16: XLATEWT .TO->CH16,.FROM->CH16, UC-CHARS; B END-PUT-TEXT; PUT-UC-17: XLATEWT .TO->CH17,.FROM->CH17, UC-CHARS; B END-PUT-TEXT; PUT-UC-18: XLATEWT .TO->CH18,.FROM->CH18, UC-CHARS; B END-PUT-TEXT; PUT-UC-19: XLATEWT .TO->CH19,.FROM->CH19, UC-CHARS; B END-PUT-TEXT; PUT-UC-20: XLATEWT .TO->CH20,.FROM->CH20, UC-CHARS; B END-PUT-TEXT; PUT-UC-21: XLATEWT .TO->CH21,.FROM->CH21, UC-CHARS; B END-PUT-TEXT; PUT-UC-22: XLATEWT .TO->CH22,.FROM->CH22, UC-CHARS; B END-PUT-TEXT; PUT-UC-23: XLATEWT .TO->CH23,.FROM->CH23, UC-CHARS; B END-PUT-TEXT; PUT-UC-24: XLATEWT .TO->CH24,.FROM->CH24, UC-CHARS; B END-PUT-TEXT; PUT-UC-25: XLATEWT .TO->CH25,.FROM->CH25, UC-CHARS; B END-PUT-TEXT; PUT-UC-26: XLATEWT .TO->CH26,.FROM->CH26, UC-CHARS; B END-PUT-TEXT; PUT-UC-27: XLATEWT .TO->CH27,.FROM->CH27, UC-CHARS; B END-PUT-TEXT; PUT-UC-28: XLATEWT .TO->CH28,.FROM->CH28, UC-CHARS; B END-PUT-TEXT; PUT-UC-29: XLATEWT .TO->CH29,.FROM->CH29, UC-CHARS; B END-PUT-TEXT; PUT-UC-30: XLATEWT .TO->CH30,.FROM->CH30, UC-CHARS; B END-PUT-TEXT; PUT-UC-31: XLATEWT .TO->CH31,.FROM->CH31, UC-CHARS; B END-PUT-TEXT; PUT-UC-32: XLATEWT .TO->CH32,.FROM->CH32, UC-CHARS; B END-PUT-TEXT; PUT-UC-33: XLATEWT .TO->CH33,.FROM->CH33, UC-CHARS; B END-PUT-TEXT; PUT-UC-34: XLATEWT .TO->CH34,.FROM->CH34, UC-CHARS; B END-PUT-TEXT; PUT-UC-35: XLATEWT .TO->CH35,.FROM->CH35, UC-CHARS; B END-PUT-TEXT; PUT-UC-36: XLATEWT .TO->CH36,.FROM->CH36, UC-CHARS; B END-PUT-TEXT; PUT-UC-37: XLATEWT .TO->CH37,.FROM->CH37, UC-CHARS; B END-PUT-TEXT; PUT-UC-38: XLATEWT .TO->CH38,.FROM->CH38, UC-CHARS; B END-PUT-TEXT; PUT-UC-39: XLATEWT .TO->CH39,.FROM->CH39, UC-CHARS; B END-PUT-TEXT; PUT-UC-40: XLATEWT .TO->CH40,.FROM->CH40, UC-CHARS; B END-PUT-TEXT; PUT-UC-41: XLATEWT .TO->CH41,.FROM->CH41, UC-CHARS; B END-PUT-TEXT; PUT-UC-42: XLATEWT .TO->CH42,.FROM->CH42, UC-CHARS; B END-PUT-TEXT; PUT-UC-43: XLATEWT .TO->CH43,.FROM->CH43, UC-CHARS; B END-PUT-TEXT; PUT-UC-44: XLATEWT .TO->CH44,.FROM->CH44, UC-CHARS; B END-PUT-TEXT; PUT-UC-45: XLATEWT .TO->CH45,.FROM->CH45, UC-CHARS; B END-PUT-TEXT; PUT-UC-46: XLATEWT .TO->CH46,.FROM->CH46, UC-CHARS; B END-PUT-TEXT; PUT-UC-47: XLATEWT .TO->CH47,.FROM->CH47, UC-CHARS; B END-PUT-TEXT; PUT-UC-48: XLATEWT .TO->CH48,.FROM->CH48, UC-CHARS; B END-PUT-TEXT; PUT-UC-49: XLATEWT .TO->CH49,.FROM->CH49, UC-CHARS; B END-PUT-TEXT; PUT-UC-50: XLATEWT .TO->CH50,.FROM->CH50, UC-CHARS; B END-PUT-TEXT; PUT-UC-51: XLATEWT .TO->CH51,.FROM->CH51, UC-CHARS; B END-PUT-TEXT; PUT-UC-52: XLATEWT .TO->CH52,.FROM->CH52, UC-CHARS; B END-PUT-TEXT; PUT-UC-53: XLATEWT .TO->CH53,.FROM->CH53, UC-CHARS; B END-PUT-TEXT; PUT-UC-54: XLATEWT .TO->CH54,.FROM->CH54, UC-CHARS; B END-PUT-TEXT; PUT-UC-55: XLATEWT .TO->CH55,.FROM->CH55, UC-CHARS; B END-PUT-TEXT; PUT-UC-56: XLATEWT .TO->CH56,.FROM->CH56, UC-CHARS; B END-PUT-TEXT; PUT-UC-57: XLATEWT .TO->CH57,.FROM->CH57, UC-CHARS; B END-PUT-TEXT; PUT-UC-58: XLATEWT .TO->CH58,.FROM->CH58, UC-CHARS; B END-PUT-TEXT; PUT-UC-59: XLATEWT .TO->CH59,.FROM->CH59, UC-CHARS; B END-PUT-TEXT; PUT-UC-60: XLATEWT .TO->CH60,.FROM->CH60, UC-CHARS; B END-PUT-TEXT; PUT-UC-61: XLATEWT .TO->CH61,.FROM->CH61, UC-CHARS; B END-PUT-TEXT; PUT-UC-62: XLATEWT .TO->CH62,.FROM->CH62, UC-CHARS; B END-PUT-TEXT; PUT-UC-63: XLATEWT .TO->CH63,.FROM->CH63, UC-CHARS; B END-PUT-TEXT; PUT-UC-64: XLATEWT .TO->CH64,.FROM->CH64, UC-CHARS; B END-PUT-TEXT; PUT-UC-65: XLATEWT .TO->CH65,.FROM->CH65, UC-CHARS; B END-PUT-TEXT; PUT-UC-66: XLATEWT .TO->CH66,.FROM->CH66, UC-CHARS; B END-PUT-TEXT; PUT-UC-67: XLATEWT .TO->CH67,.FROM->CH67, UC-CHARS; B END-PUT-TEXT; PUT-UC-68: XLATEWT .TO->CH68,.FROM->CH68, UC-CHARS; B END-PUT-TEXT; PUT-UC-69: XLATEWT .TO->CH69,.FROM->CH69, UC-CHARS; B END-PUT-TEXT; PUT-UC-70: XLATEWT .TO->CH70,.FROM->CH70, UC-CHARS; B END-PUT-TEXT; PUT-UC-71: XLATEWT .TO->CH71,.FROM->CH71, UC-CHARS; B END-PUT-TEXT; PUT-UC-72: XLATEWT .TO->CH72,.FROM->CH72, UC-CHARS; B END-PUT-TEXT; PUT-UC-73: XLATEWT .TO->CH73,.FROM->CH73, UC-CHARS; B END-PUT-TEXT; PUT-UC-74: XLATEWT .TO->CH74,.FROM->CH74, UC-CHARS; B END-PUT-TEXT; PUT-UC-75: XLATEWT .TO->CH75,.FROM->CH75, UC-CHARS; B END-PUT-TEXT; PUT-UC-76: XLATEWT .TO->CH76,.FROM->CH76, UC-CHARS; B END-PUT-TEXT; PUT-UC-77: XLATEWT .TO->CH77,.FROM->CH77, UC-CHARS; B END-PUT-TEXT; PUT-UC-78: XLATEWT .TO->CH78,.FROM->CH78, UC-CHARS; B END-PUT-TEXT; PUT-UC-79: XLATEWT .TO->CH79,.FROM->CH79, UC-CHARS; B END-PUT-TEXT; PUT-LC-01: XLATEWT .TO->CH01,.FROM->CH01, LC-CHARS; B END-PUT-TEXT; PUT-LC-02: XLATEWT .TO->CH02,.FROM->CH02, LC-CHARS; B END-PUT-TEXT; PUT-LC-03: XLATEWT .TO->CH03,.FROM->CH03, LC-CHARS; B END-PUT-TEXT; PUT-LC-04: XLATEWT .TO->CH04,.FROM->CH04, LC-CHARS; B END-PUT-TEXT; PUT-LC-05: XLATEWT .TO->CH05,.FROM->CH05, LC-CHARS; B END-PUT-TEXT; PUT-LC-06: XLATEWT .TO->CH06,.FROM->CH06, LC-CHARS; B END-PUT-TEXT; PUT-LC-07: XLATEWT .TO->CH07,.FROM->CH07, LC-CHARS; B END-PUT-TEXT; PUT-LC-08: XLATEWT .TO->CH08,.FROM->CH08, LC-CHARS; B END-PUT-TEXT; PUT-LC-09: XLATEWT .TO->CH09,.FROM->CH09, LC-CHARS; B END-PUT-TEXT; PUT-LC-10: XLATEWT .TO->CH10,.FROM->CH10, LC-CHARS; B END-PUT-TEXT; PUT-LC-11: XLATEWT .TO->CH11,.FROM->CH11, LC-CHARS; B END-PUT-TEXT; PUT-LC-12: XLATEWT .TO->CH12,.FROM->CH12, LC-CHARS; B END-PUT-TEXT; PUT-LC-13: XLATEWT .TO->CH13,.FROM->CH13, LC-CHARS; B END-PUT-TEXT; PUT-LC-14: XLATEWT .TO->CH14,.FROM->CH14, LC-CHARS; B END-PUT-TEXT; PUT-LC-15: XLATEWT .TO->CH15,.FROM->CH15, LC-CHARS; B END-PUT-TEXT; PUT-LC-16: XLATEWT .TO->CH16,.FROM->CH16, LC-CHARS; B END-PUT-TEXT; PUT-LC-17: XLATEWT .TO->CH17,.FROM->CH17, LC-CHARS; B END-PUT-TEXT; PUT-LC-18: XLATEWT .TO->CH18,.FROM->CH18, LC-CHARS; B END-PUT-TEXT; PUT-LC-19: XLATEWT .TO->CH19,.FROM->CH19, LC-CHARS; B END-PUT-TEXT; PUT-LC-20: XLATEWT .TO->CH20,.FROM->CH20, LC-CHARS; B END-PUT-TEXT; PUT-LC-21: XLATEWT .TO->CH21,.FROM->CH21, LC-CHARS; B END-PUT-TEXT; PUT-LC-22: XLATEWT .TO->CH22,.FROM->CH22, LC-CHARS; B END-PUT-TEXT; PUT-LC-23: XLATEWT .TO->CH23,.FROM->CH23, LC-CHARS; B END-PUT-TEXT; PUT-LC-24: XLATEWT .TO->CH24,.FROM->CH24, LC-CHARS; B END-PUT-TEXT; PUT-LC-25: XLATEWT .TO->CH25,.FROM->CH25, LC-CHARS; B END-PUT-TEXT; PUT-LC-26: XLATEWT .TO->CH26,.FROM->CH26, LC-CHARS; B END-PUT-TEXT; PUT-LC-27: XLATEWT .TO->CH27,.FROM->CH27, LC-CHARS; B END-PUT-TEXT; PUT-LC-28: XLATEWT .TO->CH28,.FROM->CH28, LC-CHARS; B END-PUT-TEXT; PUT-LC-29: XLATEWT .TO->CH29,.FROM->CH29, LC-CHARS; B END-PUT-TEXT; PUT-LC-30: XLATEWT .TO->CH30,.FROM->CH30, LC-CHARS; B END-PUT-TEXT; PUT-LC-31: XLATEWT .TO->CH31,.FROM->CH31, LC-CHARS; B END-PUT-TEXT; PUT-LC-32: XLATEWT .TO->CH32,.FROM->CH32, LC-CHARS; B END-PUT-TEXT; PUT-LC-33: XLATEWT .TO->CH33,.FROM->CH33, LC-CHARS; B END-PUT-TEXT; PUT-LC-34: XLATEWT .TO->CH34,.FROM->CH34, LC-CHARS; B END-PUT-TEXT; PUT-LC-35: XLATEWT .TO->CH35,.FROM->CH35, LC-CHARS; B END-PUT-TEXT; PUT-LC-36: XLATEWT .TO->CH36,.FROM->CH36, LC-CHARS; B END-PUT-TEXT; PUT-LC-37: XLATEWT .TO->CH37,.FROM->CH37, LC-CHARS; B END-PUT-TEXT; PUT-LC-38: XLATEWT .TO->CH38,.FROM->CH38, LC-CHARS; B END-PUT-TEXT; PUT-LC-39: XLATEWT .TO->CH39,.FROM->CH39, LC-CHARS; B END-PUT-TEXT; PUT-LC-40: XLATEWT .TO->CH40,.FROM->CH40, LC-CHARS; B END-PUT-TEXT; PUT-LC-41: XLATEWT .TO->CH41,.FROM->CH41, LC-CHARS; B END-PUT-TEXT; PUT-LC-42: XLATEWT .TO->CH42,.FROM->CH42, LC-CHARS; B END-PUT-TEXT; PUT-LC-43: XLATEWT .TO->CH43,.FROM->CH43, LC-CHARS; B END-PUT-TEXT; PUT-LC-44: XLATEWT .TO->CH44,.FROM->CH44, LC-CHARS; B END-PUT-TEXT; PUT-LC-45: XLATEWT .TO->CH45,.FROM->CH45, LC-CHARS; B END-PUT-TEXT; PUT-LC-46: XLATEWT .TO->CH46,.FROM->CH46, LC-CHARS; B END-PUT-TEXT; PUT-LC-47: XLATEWT .TO->CH47,.FROM->CH47, LC-CHARS; B END-PUT-TEXT; PUT-LC-48: XLATEWT .TO->CH48,.FROM->CH48, LC-CHARS; B END-PUT-TEXT; PUT-LC-49: XLATEWT .TO->CH49,.FROM->CH49, LC-CHARS; B END-PUT-TEXT; PUT-LC-50: XLATEWT .TO->CH50,.FROM->CH50, LC-CHARS; B END-PUT-TEXT; PUT-LC-51: XLATEWT .TO->CH51,.FROM->CH51, LC-CHARS; B END-PUT-TEXT; PUT-LC-52: XLATEWT .TO->CH52,.FROM->CH52, LC-CHARS; B END-PUT-TEXT; PUT-LC-53: XLATEWT .TO->CH53,.FROM->CH53, LC-CHARS; B END-PUT-TEXT; PUT-LC-54: XLATEWT .TO->CH54,.FROM->CH54, LC-CHARS; B END-PUT-TEXT; PUT-LC-55: XLATEWT .TO->CH55,.FROM->CH55, LC-CHARS; B END-PUT-TEXT; PUT-LC-56: XLATEWT .TO->CH56,.FROM->CH56, LC-CHARS; B END-PUT-TEXT; PUT-LC-57: XLATEWT .TO->CH57,.FROM->CH57, LC-CHARS; B END-PUT-TEXT; PUT-LC-58: XLATEWT .TO->CH58,.FROM->CH58, LC-CHARS; B END-PUT-TEXT; PUT-LC-59: XLATEWT .TO->CH59,.FROM->CH59, LC-CHARS; B END-PUT-TEXT; PUT-LC-60: XLATEWT .TO->CH60,.FROM->CH60, LC-CHARS; B END-PUT-TEXT; PUT-LC-61: XLATEWT .TO->CH61,.FROM->CH61, LC-CHARS; B END-PUT-TEXT; PUT-LC-62: XLATEWT .TO->CH62,.FROM->CH62, LC-CHARS; B END-PUT-TEXT; PUT-LC-63: XLATEWT .TO->CH63,.FROM->CH63, LC-CHARS; B END-PUT-TEXT; PUT-LC-64: XLATEWT .TO->CH64,.FROM->CH64, LC-CHARS; B END-PUT-TEXT; PUT-LC-65: XLATEWT .TO->CH65,.FROM->CH65, LC-CHARS; B END-PUT-TEXT; PUT-LC-66: XLATEWT .TO->CH66,.FROM->CH66, LC-CHARS; B END-PUT-TEXT; PUT-LC-67: XLATEWT .TO->CH67,.FROM->CH67, LC-CHARS; B END-PUT-TEXT; PUT-LC-68: XLATEWT .TO->CH68,.FROM->CH68, LC-CHARS; B END-PUT-TEXT; PUT-LC-69: XLATEWT .TO->CH69,.FROM->CH69, LC-CHARS; B END-PUT-TEXT; PUT-LC-70: XLATEWT .TO->CH70,.FROM->CH70, LC-CHARS; B END-PUT-TEXT; PUT-LC-71: XLATEWT .TO->CH71,.FROM->CH71, LC-CHARS; B END-PUT-TEXT; PUT-LC-72: XLATEWT .TO->CH72,.FROM->CH72, LC-CHARS; B END-PUT-TEXT; PUT-LC-73: XLATEWT .TO->CH73,.FROM->CH73, LC-CHARS; B END-PUT-TEXT; PUT-LC-74: XLATEWT .TO->CH74,.FROM->CH74, LC-CHARS; B END-PUT-TEXT; PUT-LC-75: XLATEWT .TO->CH75,.FROM->CH75, LC-CHARS; B END-PUT-TEXT; PUT-LC-76: XLATEWT .TO->CH76,.FROM->CH76, LC-CHARS; B END-PUT-TEXT; PUT-LC-77: XLATEWT .TO->CH77,.FROM->CH77, LC-CHARS; B END-PUT-TEXT; PUT-LC-78: XLATEWT .TO->CH78,.FROM->CH78, LC-CHARS; B END-PUT-TEXT; PUT-LC-79: XLATEWT .TO->CH79,.FROM->CH79, LC-CHARS; B END-PUT-TEXT; BLANK-T01: CPYBLA .TO->CH01, " "; B END-PUT-TEXT; BLANK-T02: CPYBREP .TO->CH02, " "; B END-PUT-TEXT; BLANK-T03: CPYBREP .TO->CH03, " "; B END-PUT-TEXT; BLANK-T04: CPYBREP .TO->CH04, " "; B END-PUT-TEXT; BLANK-T05: CPYBREP .TO->CH05, " "; B END-PUT-TEXT; BLANK-T06: CPYBREP .TO->CH06, " "; B END-PUT-TEXT; BLANK-T07: CPYBREP .TO->CH07, " "; B END-PUT-TEXT; BLANK-T08: CPYBREP .TO->CH08, " "; B END-PUT-TEXT; BLANK-T09: CPYBREP .TO->CH09, " "; B END-PUT-TEXT; BLANK-T10: CPYBREP .TO->CH10, " "; B END-PUT-TEXT; BLANK-T11: CPYBREP .TO->CH11, " "; B END-PUT-TEXT; BLANK-T12: CPYBREP .TO->CH12, " "; B END-PUT-TEXT; BLANK-T13: CPYBREP .TO->CH13, " "; B END-PUT-TEXT; BLANK-T14: CPYBREP .TO->CH14, " "; B END-PUT-TEXT; BLANK-T15: CPYBREP .TO->CH15, " "; B END-PUT-TEXT; BLANK-T16: CPYBREP .TO->CH16, " "; B END-PUT-TEXT; BLANK-T17: CPYBREP .TO->CH17, " "; B END-PUT-TEXT; BLANK-T18: CPYBREP .TO->CH18, " "; B END-PUT-TEXT; BLANK-T19: CPYBREP .TO->CH19, " "; B END-PUT-TEXT; BLANK-T20: CPYBREP .TO->CH20, " "; B END-PUT-TEXT; BLANK-T21: CPYBREP .TO->CH21, " "; B END-PUT-TEXT; BLANK-T22: CPYBREP .TO->CH22, " "; B END-PUT-TEXT; BLANK-T23: CPYBREP .TO->CH23, " "; B END-PUT-TEXT; BLANK-T24: CPYBREP .TO->CH24, " "; B END-PUT-TEXT; BLANK-T25: CPYBREP .TO->CH25, " "; B END-PUT-TEXT; BLANK-T26: CPYBREP .TO->CH26, " "; B END-PUT-TEXT; BLANK-T27: CPYBREP .TO->CH27, " "; B END-PUT-TEXT; BLANK-T28: CPYBREP .TO->CH28, " "; B END-PUT-TEXT; BLANK-T29: CPYBREP .TO->CH29, " "; B END-PUT-TEXT; BLANK-T30: CPYBREP .TO->CH30, " "; B END-PUT-TEXT; BLANK-T31: CPYBREP .TO->CH31, " "; B END-PUT-TEXT; BLANK-T32: CPYBREP .TO->CH32, " "; B END-PUT-TEXT; BLANK-T33: CPYBREP .TO->CH33, " "; B END-PUT-TEXT; BLANK-T34: CPYBREP .TO->CH34, " "; B END-PUT-TEXT; BLANK-T35: CPYBREP .TO->CH35, " "; B END-PUT-TEXT; BLANK-T36: CPYBREP .TO->CH36, " "; B END-PUT-TEXT; BLANK-T37: CPYBREP .TO->CH37, " "; B END-PUT-TEXT; BLANK-T38: CPYBREP .TO->CH38, " "; B END-PUT-TEXT; BLANK-T39: CPYBREP .TO->CH39, " "; B END-PUT-TEXT; BLANK-T40: CPYBREP .TO->CH40, " "; B END-PUT-TEXT; BLANK-T41: CPYBREP .TO->CH41, " "; B END-PUT-TEXT; BLANK-T42: CPYBREP .TO->CH42, " "; B END-PUT-TEXT; BLANK-T43: CPYBREP .TO->CH43, " "; B END-PUT-TEXT; BLANK-T44: CPYBREP .TO->CH44, " "; B END-PUT-TEXT; BLANK-T45: CPYBREP .TO->CH45, " "; B END-PUT-TEXT; BLANK-T46: CPYBREP .TO->CH46, " "; B END-PUT-TEXT; BLANK-T47: CPYBREP .TO->CH47, " "; B END-PUT-TEXT; BLANK-T48: CPYBREP .TO->CH48, " "; B END-PUT-TEXT; BLANK-T49: CPYBREP .TO->CH49, " "; B END-PUT-TEXT; BLANK-T50: CPYBREP .TO->CH50, " "; B END-PUT-TEXT; BLANK-T51: CPYBREP .TO->CH51, " "; B END-PUT-TEXT; BLANK-T52: CPYBREP .TO->CH52, " "; B END-PUT-TEXT; BLANK-T53: CPYBREP .TO->CH53, " "; B END-PUT-TEXT; BLANK-T54: CPYBREP .TO->CH54, " "; B END-PUT-TEXT; BLANK-T55: CPYBREP .TO->CH55, " "; B END-PUT-TEXT; BLANK-T56: CPYBREP .TO->CH56, " "; B END-PUT-TEXT; BLANK-T57: CPYBREP .TO->CH57, " "; B END-PUT-TEXT; BLANK-T58: CPYBREP .TO->CH58, " "; B END-PUT-TEXT; BLANK-T59: CPYBREP .TO->CH59, " "; B END-PUT-TEXT; BLANK-T60: CPYBREP .TO->CH60, " "; B END-PUT-TEXT; BLANK-T61: CPYBREP .TO->CH61, " "; B END-PUT-TEXT; BLANK-T62: CPYBREP .TO->CH62, " "; B END-PUT-TEXT; BLANK-T63: CPYBREP .TO->CH63, " "; B END-PUT-TEXT; BLANK-T64: CPYBREP .TO->CH64, " "; B END-PUT-TEXT; BLANK-T65: CPYBREP .TO->CH65, " "; B END-PUT-TEXT; BLANK-T66: CPYBREP .TO->CH66, " "; B END-PUT-TEXT; BLANK-T67: CPYBREP .TO->CH67, " "; B END-PUT-TEXT; BLANK-T68: CPYBREP .TO->CH68, " "; B END-PUT-TEXT; BLANK-T69: CPYBREP .TO->CH69, " "; B END-PUT-TEXT; BLANK-T70: CPYBREP .TO->CH70, " "; B END-PUT-TEXT; BLANK-T71: CPYBREP .TO->CH71, " "; B END-PUT-TEXT; BLANK-T72: CPYBREP .TO->CH72, " "; B END-PUT-TEXT; BLANK-T73: CPYBREP .TO->CH73, " "; B END-PUT-TEXT; BLANK-T74: CPYBREP .TO->CH74, " "; B END-PUT-TEXT; BLANK-T75: CPYBREP .TO->CH75, " "; B END-PUT-TEXT; BLANK-T76: CPYBREP .TO->CH76, " "; B END-PUT-TEXT; BLANK-T77: CPYBREP .TO->CH77, " "; B END-PUT-TEXT; BLANK-T78: CPYBREP .TO->CH78, " "; B END-PUT-TEXT; BLANK-T79: CPYBREP .TO->CH79, " "; B END-PUT-TEXT; BLANK-R01: CPYBLA .TO->CH01, " "; B OUTPUT-NEXT-FIELD; BLANK-R02: CPYBREP .TO->CH02, " "; B OUTPUT-NEXT-FIELD; BLANK-R03: CPYBREP .TO->CH03, " "; B OUTPUT-NEXT-FIELD; BLANK-R04: CPYBREP .TO->CH04, " "; B OUTPUT-NEXT-FIELD; BLANK-R05: CPYBREP .TO->CH05, " "; B OUTPUT-NEXT-FIELD; BLANK-R06: CPYBREP .TO->CH06, " "; B OUTPUT-NEXT-FIELD; BLANK-R07: CPYBREP .TO->CH07, " "; B OUTPUT-NEXT-FIELD; BLANK-R08: CPYBREP .TO->CH08, " "; B OUTPUT-NEXT-FIELD; BLANK-R09: CPYBREP .TO->CH09, " "; B OUTPUT-NEXT-FIELD; BLANK-R10: CPYBREP .TO->CH10, " "; B OUTPUT-NEXT-FIELD; BLANK-R11: CPYBREP .TO->CH11, " "; B OUTPUT-NEXT-FIELD; BLANK-R12: CPYBREP .TO->CH12, " "; B OUTPUT-NEXT-FIELD; BLANK-R13: CPYBREP .TO->CH13, " "; B OUTPUT-NEXT-FIELD; BLANK-R14: CPYBREP .TO->CH14, " "; B OUTPUT-NEXT-FIELD; BLANK-R15: CPYBREP .TO->CH15, " "; B OUTPUT-NEXT-FIELD; BLANK-R16: CPYBREP .TO->CH16, " "; B OUTPUT-NEXT-FIELD; BLANK-R17: CPYBREP .TO->CH17, " "; B OUTPUT-NEXT-FIELD; BLANK-R18: CPYBREP .TO->CH18, " "; B OUTPUT-NEXT-FIELD; BLANK-R19: CPYBREP .TO->CH19, " "; B OUTPUT-NEXT-FIELD; BLANK-R20: CPYBREP .TO->CH20, " "; B OUTPUT-NEXT-FIELD; BLANK-R21: CPYBREP .TO->CH21, " "; B OUTPUT-NEXT-FIELD; BLANK-R22: CPYBREP .TO->CH22, " "; B OUTPUT-NEXT-FIELD; BLANK-R23: CPYBREP .TO->CH23, " "; B OUTPUT-NEXT-FIELD; BLANK-R24: CPYBREP .TO->CH24, " "; B OUTPUT-NEXT-FIELD; BLANK-R25: CPYBREP .TO->CH25, " "; B OUTPUT-NEXT-FIELD; BLANK-R26: CPYBREP .TO->CH26, " "; B OUTPUT-NEXT-FIELD; BLANK-R27: CPYBREP .TO->CH27, " "; B OUTPUT-NEXT-FIELD; BLANK-R28: CPYBREP .TO->CH28, " "; B OUTPUT-NEXT-FIELD; BLANK-R29: CPYBREP .TO->CH29, " "; B OUTPUT-NEXT-FIELD; BLANK-R30: CPYBREP .TO->CH30, " "; B OUTPUT-NEXT-FIELD; BLANK-R31: CPYBREP .TO->CH31, " "; B OUTPUT-NEXT-FIELD; BLANK-R32: CPYBREP .TO->CH32, " "; B OUTPUT-NEXT-FIELD; BLANK-R33: CPYBREP .TO->CH33, " "; B OUTPUT-NEXT-FIELD; BLANK-R34: CPYBREP .TO->CH34, " "; B OUTPUT-NEXT-FIELD; BLANK-R35: CPYBREP .TO->CH35, " "; B OUTPUT-NEXT-FIELD; BLANK-R36: CPYBREP .TO->CH36, " "; B OUTPUT-NEXT-FIELD; BLANK-R37: CPYBREP .TO->CH37, " "; B OUTPUT-NEXT-FIELD; BLANK-R38: CPYBREP .TO->CH38, " "; B OUTPUT-NEXT-FIELD; BLANK-R39: CPYBREP .TO->CH39, " "; B OUTPUT-NEXT-FIELD; BLANK-R40: CPYBREP .TO->CH40, " "; B OUTPUT-NEXT-FIELD; BLANK-R41: CPYBREP .TO->CH41, " "; B OUTPUT-NEXT-FIELD; BLANK-R42: CPYBREP .TO->CH42, " "; B OUTPUT-NEXT-FIELD; BLANK-R43: CPYBREP .TO->CH43, " "; B OUTPUT-NEXT-FIELD; BLANK-R44: CPYBREP .TO->CH44, " "; B OUTPUT-NEXT-FIELD; BLANK-R45: CPYBREP .TO->CH45, " "; B OUTPUT-NEXT-FIELD; BLANK-R46: CPYBREP .TO->CH46, " "; B OUTPUT-NEXT-FIELD; BLANK-R47: CPYBREP .TO->CH47, " "; B OUTPUT-NEXT-FIELD; BLANK-R48: CPYBREP .TO->CH48, " "; B OUTPUT-NEXT-FIELD; BLANK-R49: CPYBREP .TO->CH49, " "; B OUTPUT-NEXT-FIELD; BLANK-R50: CPYBREP .TO->CH50, " "; B OUTPUT-NEXT-FIELD; BLANK-R51: CPYBREP .TO->CH51, " "; B OUTPUT-NEXT-FIELD; BLANK-R52: CPYBREP .TO->CH52, " "; B OUTPUT-NEXT-FIELD; BLANK-R53: CPYBREP .TO->CH53, " "; B OUTPUT-NEXT-FIELD; BLANK-R54: CPYBREP .TO->CH54, " "; B OUTPUT-NEXT-FIELD; BLANK-R55: CPYBREP .TO->CH55, " "; B OUTPUT-NEXT-FIELD; BLANK-R56: CPYBREP .TO->CH56, " "; B OUTPUT-NEXT-FIELD; BLANK-R57: CPYBREP .TO->CH57, " "; B OUTPUT-NEXT-FIELD; BLANK-R58: CPYBREP .TO->CH58, " "; B OUTPUT-NEXT-FIELD; BLANK-R59: CPYBREP .TO->CH59, " "; B OUTPUT-NEXT-FIELD; BLANK-R60: CPYBREP .TO->CH60, " "; B OUTPUT-NEXT-FIELD; BLANK-R61: CPYBREP .TO->CH61, " "; B OUTPUT-NEXT-FIELD; BLANK-R62: CPYBREP .TO->CH62, " "; B OUTPUT-NEXT-FIELD; BLANK-R63: CPYBREP .TO->CH63, " "; B OUTPUT-NEXT-FIELD; BLANK-R64: CPYBREP .TO->CH64, " "; B OUTPUT-NEXT-FIELD; BLANK-R65: CPYBREP .TO->CH65, " "; B OUTPUT-NEXT-FIELD; BLANK-R66: CPYBREP .TO->CH66, " "; B OUTPUT-NEXT-FIELD; BLANK-R67: CPYBREP .TO->CH67, " "; B OUTPUT-NEXT-FIELD; BLANK-R68: CPYBREP .TO->CH68, " "; B OUTPUT-NEXT-FIELD; BLANK-R69: CPYBREP .TO->CH69, " "; B OUTPUT-NEXT-FIELD; BLANK-R70: CPYBREP .TO->CH70, " "; B OUTPUT-NEXT-FIELD; BLANK-R71: CPYBREP .TO->CH71, " "; B OUTPUT-NEXT-FIELD; BLANK-R72: CPYBREP .TO->CH72, " "; B OUTPUT-NEXT-FIELD; BLANK-R73: CPYBREP .TO->CH73, " "; B OUTPUT-NEXT-FIELD; BLANK-R74: CPYBREP .TO->CH74, " "; B OUTPUT-NEXT-FIELD; BLANK-R75: CPYBREP .TO->CH75, " "; B OUTPUT-NEXT-FIELD; BLANK-R76: CPYBREP .TO->CH76, " "; B OUTPUT-NEXT-FIELD; BLANK-R77: CPYBREP .TO->CH77, " "; B OUTPUT-NEXT-FIELD; BLANK-R78: CPYBREP .TO->CH78, " "; B OUTPUT-NEXT-FIELD; BLANK-R79: CPYBREP .TO->CH79, " "; B OUTPUT-NEXT-FIELD; GET-UC-01: XLATEWT .TO->CH01,.FROM->CH01, UC-CHARS; B END-GET-TEXT; GET-UC-02: XLATEWT .TO->CH02,.FROM->CH02, UC-CHARS; B END-GET-TEXT; GET-UC-03: XLATEWT .TO->CH03,.FROM->CH03, UC-CHARS; B END-GET-TEXT; GET-UC-04: XLATEWT .TO->CH04,.FROM->CH04, UC-CHARS; B END-GET-TEXT; GET-UC-05: XLATEWT .TO->CH05,.FROM->CH05, UC-CHARS; B END-GET-TEXT; GET-UC-06: XLATEWT .TO->CH06,.FROM->CH06, UC-CHARS; B END-GET-TEXT; GET-UC-07: XLATEWT .TO->CH07,.FROM->CH07, UC-CHARS; B END-GET-TEXT; GET-UC-08: XLATEWT .TO->CH08,.FROM->CH08, UC-CHARS; B END-GET-TEXT; GET-UC-09: XLATEWT .TO->CH09,.FROM->CH09, UC-CHARS; B END-GET-TEXT; GET-UC-10: XLATEWT .TO->CH10,.FROM->CH10, UC-CHARS; B END-GET-TEXT; GET-UC-11: XLATEWT .TO->CH11,.FROM->CH11, UC-CHARS; B END-GET-TEXT; GET-UC-12: XLATEWT .TO->CH12,.FROM->CH12, UC-CHARS; B END-GET-TEXT; GET-UC-13: XLATEWT .TO->CH13,.FROM->CH13, UC-CHARS; B END-GET-TEXT; GET-UC-14: XLATEWT .TO->CH14,.FROM->CH14, UC-CHARS; B END-GET-TEXT; GET-UC-15: XLATEWT .TO->CH15,.FROM->CH15, UC-CHARS; B END-GET-TEXT; GET-UC-16: XLATEWT .TO->CH16,.FROM->CH16, UC-CHARS; B END-GET-TEXT; GET-UC-17: XLATEWT .TO->CH17,.FROM->CH17, UC-CHARS; B END-GET-TEXT; GET-UC-18: XLATEWT .TO->CH18,.FROM->CH18, UC-CHARS; B END-GET-TEXT; GET-UC-19: XLATEWT .TO->CH19,.FROM->CH19, UC-CHARS; B END-GET-TEXT; GET-UC-20: XLATEWT .TO->CH20,.FROM->CH20, UC-CHARS; B END-GET-TEXT; GET-UC-21: XLATEWT .TO->CH21,.FROM->CH21, UC-CHARS; B END-GET-TEXT; GET-UC-22: XLATEWT .TO->CH22,.FROM->CH22, UC-CHARS; B END-GET-TEXT; GET-UC-23: XLATEWT .TO->CH23,.FROM->CH23, UC-CHARS; B END-GET-TEXT; GET-UC-24: XLATEWT .TO->CH24,.FROM->CH24, UC-CHARS; B END-GET-TEXT; GET-UC-25: XLATEWT .TO->CH25,.FROM->CH25, UC-CHARS; B END-GET-TEXT; GET-UC-26: XLATEWT .TO->CH26,.FROM->CH26, UC-CHARS; B END-GET-TEXT; GET-UC-27: XLATEWT .TO->CH27,.FROM->CH27, UC-CHARS; B END-GET-TEXT; GET-UC-28: XLATEWT .TO->CH28,.FROM->CH28, UC-CHARS; B END-GET-TEXT; GET-UC-29: XLATEWT .TO->CH29,.FROM->CH29, UC-CHARS; B END-GET-TEXT; GET-UC-30: XLATEWT .TO->CH30,.FROM->CH30, UC-CHARS; B END-GET-TEXT; GET-UC-31: XLATEWT .TO->CH31,.FROM->CH31, UC-CHARS; B END-GET-TEXT; GET-UC-32: XLATEWT .TO->CH32,.FROM->CH32, UC-CHARS; B END-GET-TEXT; GET-UC-33: XLATEWT .TO->CH33,.FROM->CH33, UC-CHARS; B END-GET-TEXT; GET-UC-34: XLATEWT .TO->CH34,.FROM->CH34, UC-CHARS; B END-GET-TEXT; GET-UC-35: XLATEWT .TO->CH35,.FROM->CH35, UC-CHARS; B END-GET-TEXT; GET-UC-36: XLATEWT .TO->CH36,.FROM->CH36, UC-CHARS; B END-GET-TEXT; GET-UC-37: XLATEWT .TO->CH37,.FROM->CH37, UC-CHARS; B END-GET-TEXT; GET-UC-38: XLATEWT .TO->CH38,.FROM->CH38, UC-CHARS; B END-GET-TEXT; GET-UC-39: XLATEWT .TO->CH39,.FROM->CH39, UC-CHARS; B END-GET-TEXT; GET-UC-40: XLATEWT .TO->CH40,.FROM->CH40, UC-CHARS; B END-GET-TEXT; GET-UC-41: XLATEWT .TO->CH41,.FROM->CH41, UC-CHARS; B END-GET-TEXT; GET-UC-42: XLATEWT .TO->CH42,.FROM->CH42, UC-CHARS; B END-GET-TEXT; GET-UC-43: XLATEWT .TO->CH43,.FROM->CH43, UC-CHARS; B END-GET-TEXT; GET-UC-44: XLATEWT .TO->CH44,.FROM->CH44, UC-CHARS; B END-GET-TEXT; GET-UC-45: XLATEWT .TO->CH45,.FROM->CH45, UC-CHARS; B END-GET-TEXT; GET-UC-46: XLATEWT .TO->CH46,.FROM->CH46, UC-CHARS; B END-GET-TEXT; GET-UC-47: XLATEWT .TO->CH47,.FROM->CH47, UC-CHARS; B END-GET-TEXT; GET-UC-48: XLATEWT .TO->CH48,.FROM->CH48, UC-CHARS; B END-GET-TEXT; GET-UC-49: XLATEWT .TO->CH49,.FROM->CH49, UC-CHARS; B END-GET-TEXT; GET-UC-50: XLATEWT .TO->CH50,.FROM->CH50, UC-CHARS; B END-GET-TEXT; GET-UC-51: XLATEWT .TO->CH51,.FROM->CH51, UC-CHARS; B END-GET-TEXT; GET-UC-52: XLATEWT .TO->CH52,.FROM->CH52, UC-CHARS; B END-GET-TEXT; GET-UC-53: XLATEWT .TO->CH53,.FROM->CH53, UC-CHARS; B END-GET-TEXT; GET-UC-54: XLATEWT .TO->CH54,.FROM->CH54, UC-CHARS; B END-GET-TEXT; GET-UC-55: XLATEWT .TO->CH55,.FROM->CH55, UC-CHARS; B END-GET-TEXT; GET-UC-56: XLATEWT .TO->CH56,.FROM->CH56, UC-CHARS; B END-GET-TEXT; GET-UC-57: XLATEWT .TO->CH57,.FROM->CH57, UC-CHARS; B END-GET-TEXT; GET-UC-58: XLATEWT .TO->CH58,.FROM->CH58, UC-CHARS; B END-GET-TEXT; GET-UC-59: XLATEWT .TO->CH59,.FROM->CH59, UC-CHARS; B END-GET-TEXT; GET-UC-60: XLATEWT .TO->CH60,.FROM->CH60, UC-CHARS; B END-GET-TEXT; GET-UC-61: XLATEWT .TO->CH61,.FROM->CH61, UC-CHARS; B END-GET-TEXT; GET-UC-62: XLATEWT .TO->CH62,.FROM->CH62, UC-CHARS; B END-GET-TEXT; GET-UC-63: XLATEWT .TO->CH63,.FROM->CH63, UC-CHARS; B END-GET-TEXT; GET-UC-64: XLATEWT .TO->CH64,.FROM->CH64, UC-CHARS; B END-GET-TEXT; GET-UC-65: XLATEWT .TO->CH65,.FROM->CH65, UC-CHARS; B END-GET-TEXT; GET-UC-66: XLATEWT .TO->CH66,.FROM->CH66, UC-CHARS; B END-GET-TEXT; GET-UC-67: XLATEWT .TO->CH67,.FROM->CH67, UC-CHARS; B END-GET-TEXT; GET-UC-68: XLATEWT .TO->CH68,.FROM->CH68, UC-CHARS; B END-GET-TEXT; GET-UC-69: XLATEWT .TO->CH69,.FROM->CH69, UC-CHARS; B END-GET-TEXT; GET-UC-70: XLATEWT .TO->CH70,.FROM->CH70, UC-CHARS; B END-GET-TEXT; GET-UC-71: XLATEWT .TO->CH71,.FROM->CH71, UC-CHARS; B END-GET-TEXT; GET-UC-72: XLATEWT .TO->CH72,.FROM->CH72, UC-CHARS; B END-GET-TEXT; GET-UC-73: XLATEWT .TO->CH73,.FROM->CH73, UC-CHARS; B END-GET-TEXT; GET-UC-74: XLATEWT .TO->CH74,.FROM->CH74, UC-CHARS; B END-GET-TEXT; GET-UC-75: XLATEWT .TO->CH75,.FROM->CH75, UC-CHARS; B END-GET-TEXT; GET-UC-76: XLATEWT .TO->CH76,.FROM->CH76, UC-CHARS; B END-GET-TEXT; GET-UC-77: XLATEWT .TO->CH77,.FROM->CH77, UC-CHARS; B END-GET-TEXT; GET-UC-78: XLATEWT .TO->CH78,.FROM->CH78, UC-CHARS; B END-GET-TEXT; GET-UC-79: XLATEWT .TO->CH79,.FROM->CH79, UC-CHARS; B END-GET-TEXT; GET-LC-01: XLATEWT .TO->CH01,.FROM->CH01, LC-CHARS; B END-GET-TEXT; GET-LC-02: XLATEWT .TO->CH02,.FROM->CH02, LC-CHARS; B END-GET-TEXT; GET-LC-03: XLATEWT .TO->CH03,.FROM->CH03, LC-CHARS; B END-GET-TEXT; GET-LC-04: XLATEWT .TO->CH04,.FROM->CH04, LC-CHARS; B END-GET-TEXT; GET-LC-05: XLATEWT .TO->CH05,.FROM->CH05, LC-CHARS; B END-GET-TEXT; GET-LC-06: XLATEWT .TO->CH06,.FROM->CH06, LC-CHARS; B END-GET-TEXT; GET-LC-07: XLATEWT .TO->CH07,.FROM->CH07, LC-CHARS; B END-GET-TEXT; GET-LC-08: XLATEWT .TO->CH08,.FROM->CH08, LC-CHARS; B END-GET-TEXT; GET-LC-09: XLATEWT .TO->CH09,.FROM->CH09, LC-CHARS; B END-GET-TEXT; GET-LC-10: XLATEWT .TO->CH10,.FROM->CH10, LC-CHARS; B END-GET-TEXT; GET-LC-11: XLATEWT .TO->CH11,.FROM->CH11, LC-CHARS; B END-GET-TEXT; GET-LC-12: XLATEWT .TO->CH12,.FROM->CH12, LC-CHARS; B END-GET-TEXT; GET-LC-13: XLATEWT .TO->CH13,.FROM->CH13, LC-CHARS; B END-GET-TEXT; GET-LC-14: XLATEWT .TO->CH14,.FROM->CH14, LC-CHARS; B END-GET-TEXT; GET-LC-15: XLATEWT .TO->CH15,.FROM->CH15, LC-CHARS; B END-GET-TEXT; GET-LC-16: XLATEWT .TO->CH16,.FROM->CH16, LC-CHARS; B END-GET-TEXT; GET-LC-17: XLATEWT .TO->CH17,.FROM->CH17, LC-CHARS; B END-GET-TEXT; GET-LC-18: XLATEWT .TO->CH18,.FROM->CH18, LC-CHARS; B END-GET-TEXT; GET-LC-19: XLATEWT .TO->CH19,.FROM->CH19, LC-CHARS; B END-GET-TEXT; GET-LC-20: XLATEWT .TO->CH20,.FROM->CH20, LC-CHARS; B END-GET-TEXT; GET-LC-21: XLATEWT .TO->CH21,.FROM->CH21, LC-CHARS; B END-GET-TEXT; GET-LC-22: XLATEWT .TO->CH22,.FROM->CH22, LC-CHARS; B END-GET-TEXT; GET-LC-23: XLATEWT .TO->CH23,.FROM->CH23, LC-CHARS; B END-GET-TEXT; GET-LC-24: XLATEWT .TO->CH24,.FROM->CH24, LC-CHARS; B END-GET-TEXT; GET-LC-25: XLATEWT .TO->CH25,.FROM->CH25, LC-CHARS; B END-GET-TEXT; GET-LC-26: XLATEWT .TO->CH26,.FROM->CH26, LC-CHARS; B END-GET-TEXT; GET-LC-27: XLATEWT .TO->CH27,.FROM->CH27, LC-CHARS; B END-GET-TEXT; GET-LC-28: XLATEWT .TO->CH28,.FROM->CH28, LC-CHARS; B END-GET-TEXT; GET-LC-29: XLATEWT .TO->CH29,.FROM->CH29, LC-CHARS; B END-GET-TEXT; GET-LC-30: XLATEWT .TO->CH30,.FROM->CH30, LC-CHARS; B END-GET-TEXT; GET-LC-31: XLATEWT .TO->CH31,.FROM->CH31, LC-CHARS; B END-GET-TEXT; GET-LC-32: XLATEWT .TO->CH32,.FROM->CH32, LC-CHARS; B END-GET-TEXT; GET-LC-33: XLATEWT .TO->CH33,.FROM->CH33, LC-CHARS; B END-GET-TEXT; GET-LC-34: XLATEWT .TO->CH34,.FROM->CH34, LC-CHARS; B END-GET-TEXT; GET-LC-35: XLATEWT .TO->CH35,.FROM->CH35, LC-CHARS; B END-GET-TEXT; GET-LC-36: XLATEWT .TO->CH36,.FROM->CH36, LC-CHARS; B END-GET-TEXT; GET-LC-37: XLATEWT .TO->CH37,.FROM->CH37, LC-CHARS; B END-GET-TEXT; GET-LC-38: XLATEWT .TO->CH38,.FROM->CH38, LC-CHARS; B END-GET-TEXT; GET-LC-39: XLATEWT .TO->CH39,.FROM->CH39, LC-CHARS; B END-GET-TEXT; GET-LC-40: XLATEWT .TO->CH40,.FROM->CH40, LC-CHARS; B END-GET-TEXT; GET-LC-41: XLATEWT .TO->CH41,.FROM->CH41, LC-CHARS; B END-GET-TEXT; GET-LC-42: XLATEWT .TO->CH42,.FROM->CH42, LC-CHARS; B END-GET-TEXT; GET-LC-43: XLATEWT .TO->CH43,.FROM->CH43, LC-CHARS; B END-GET-TEXT; GET-LC-44: XLATEWT .TO->CH44,.FROM->CH44, LC-CHARS; B END-GET-TEXT; GET-LC-45: XLATEWT .TO->CH45,.FROM->CH45, LC-CHARS; B END-GET-TEXT; GET-LC-46: XLATEWT .TO->CH46,.FROM->CH46, LC-CHARS; B END-GET-TEXT; GET-LC-47: XLATEWT .TO->CH47,.FROM->CH47, LC-CHARS; B END-GET-TEXT; GET-LC-48: XLATEWT .TO->CH48,.FROM->CH48, LC-CHARS; B END-GET-TEXT; GET-LC-49: XLATEWT .TO->CH49,.FROM->CH49, LC-CHARS; B END-GET-TEXT; GET-LC-50: XLATEWT .TO->CH50,.FROM->CH50, LC-CHARS; B END-GET-TEXT; GET-LC-51: XLATEWT .TO->CH51,.FROM->CH51, LC-CHARS; B END-GET-TEXT; GET-LC-52: XLATEWT .TO->CH52,.FROM->CH52, LC-CHARS; B END-GET-TEXT; GET-LC-53: XLATEWT .TO->CH53,.FROM->CH53, LC-CHARS; B END-GET-TEXT; GET-LC-54: XLATEWT .TO->CH54,.FROM->CH54, LC-CHARS; B END-GET-TEXT; GET-LC-55: XLATEWT .TO->CH55,.FROM->CH55, LC-CHARS; B END-GET-TEXT; GET-LC-56: XLATEWT .TO->CH56,.FROM->CH56, LC-CHARS; B END-GET-TEXT; GET-LC-57: XLATEWT .TO->CH57,.FROM->CH57, LC-CHARS; B END-GET-TEXT; GET-LC-58: XLATEWT .TO->CH58,.FROM->CH58, LC-CHARS; B END-GET-TEXT; GET-LC-59: XLATEWT .TO->CH59,.FROM->CH59, LC-CHARS; B END-GET-TEXT; GET-LC-60: XLATEWT .TO->CH60,.FROM->CH60, LC-CHARS; B END-GET-TEXT; GET-LC-61: XLATEWT .TO->CH61,.FROM->CH61, LC-CHARS; B END-GET-TEXT; GET-LC-62: XLATEWT .TO->CH62,.FROM->CH62, LC-CHARS; B END-GET-TEXT; GET-LC-63: XLATEWT .TO->CH63,.FROM->CH63, LC-CHARS; B END-GET-TEXT; GET-LC-64: XLATEWT .TO->CH64,.FROM->CH64, LC-CHARS; B END-GET-TEXT; GET-LC-65: XLATEWT .TO->CH65,.FROM->CH65, LC-CHARS; B END-GET-TEXT; GET-LC-66: XLATEWT .TO->CH66,.FROM->CH66, LC-CHARS; B END-GET-TEXT; GET-LC-67: XLATEWT .TO->CH67,.FROM->CH67, LC-CHARS; B END-GET-TEXT; GET-LC-68: XLATEWT .TO->CH68,.FROM->CH68, LC-CHARS; B END-GET-TEXT; GET-LC-69: XLATEWT .TO->CH69,.FROM->CH69, LC-CHARS; B END-GET-TEXT; GET-LC-70: XLATEWT .TO->CH70,.FROM->CH70, LC-CHARS; B END-GET-TEXT; GET-LC-71: XLATEWT .TO->CH71,.FROM->CH71, LC-CHARS; B END-GET-TEXT; GET-LC-72: XLATEWT .TO->CH72,.FROM->CH72, LC-CHARS; B END-GET-TEXT; GET-LC-73: XLATEWT .TO->CH73,.FROM->CH73, LC-CHARS; B END-GET-TEXT; GET-LC-74: XLATEWT .TO->CH74,.FROM->CH74, LC-CHARS; B END-GET-TEXT; GET-LC-75: XLATEWT .TO->CH75,.FROM->CH75, LC-CHARS; B END-GET-TEXT; GET-LC-76: XLATEWT .TO->CH76,.FROM->CH76, LC-CHARS; B END-GET-TEXT; GET-LC-77: XLATEWT .TO->CH77,.FROM->CH77, LC-CHARS; B END-GET-TEXT; GET-LC-78: XLATEWT .TO->CH78,.FROM->CH78, LC-CHARS; B END-GET-TEXT; GET-LC-79: XLATEWT .TO->CH79,.FROM->CH79, LC-CHARS; B END-GET-TEXT; ECSCAN-MALFUNCTION: PEND;