IEECVETE CSECT 00050002 TITLE 'IEECVETE IGC5E07B MESSAGE 2' 00550002 ********************************************************************** 00600002 * 00650002 * STATUS CHANGE LEVEL 0 00700002 * 00750002 *FUNCTION TO PLACE ERROR MESSAGES INTO THE INSTRUCTION LINE OR 00800002 * PLACE THE ASSYNCHRONOUS ERROR MESSAGE INTO THE ENTRY 00850002 * AREA. 00900002 * 00950002 *ENTRY POINT IEECVETE 01000002 * 01050002 *INPUT BIT SETTINGS IN DCMCMSG1 OR DCMCMSG2 OR DCMCMSG3 TO 01100002 * INDICATE WHICH MESSAGE MUST BE MOVED INTO THE DCM. 01150002 * 01200002 *OUTPUT INDICATIONS TO THE I/O ROUTINE OF WHAT TO WRITE 01250002 * 01300002 * EXTERNAL REFERENCES NONE 01350002 * 01400002 *EXITS - NORMAL IEECVETH OR P OR R DEVICE-DEPENDENT IO 01450002 * - ERROR NONE 01500002 * 01550002 * TABLES/WORK AREAS DISPLAY CONTROL MODULE (CONTAINED IN DSECT) 01600002 * 01650002 * ATTRIBUTES REFRESHABLE, PRIVILEGED, TYPE 4 SVC 01700002 * 01750002 * CHANGES TO THIS MODULE HAVE BEEN MADE TO SUPPORT: 01800002 * STATUS DISPLAY SUPPORT, LINE ITEM S21002, AND 01850002 * OS/DIDOCS-ANR, LINE ITEM S21003. 01900002 * 01950002 * NOTES THE OPERATION OF THIS MODULE DOES NOT DEPEND UPON A 02000002 * PARTICULAR INTERNAL REPRESENTATION OF THE EXTERNAL 02050002 * CHARACTER SET. 02100002 * 02150002 ********************************************************************** 02200002 EJECT 02250002 */*IEECVETE: CHART */ 02300002 */*IEECVETE: E MESSAGE MOD 2 */ 02350002 */* P ESTABLISH ADDRESSABILITY */ 02400002 */* D (NO,NOTOUT,YES,) OUTPUT ONLY CONSOLE ? */ 02450002 */* P (,TESTQ) SET UP TO PUT ALL MSGS IN WARNING LINE */ 02500002 */*NOTOUT: P SET TO PUT MSGS IN INSTRUCTION LINE */ 02550002 */*TESTQ: D (NO,,YES,DELMOVE) DELETE REQ INCONSIST MSG ? */ 02600002 */* D (NO,,YES,LPMOVE) ILLEGAL L/P OPERATION MSG ? */ 02650002 */* D (NO,,YES,RAMOVE) RETRYABLE ASYNC ERR MSG ? */ 02700002 */* D (NO,,YES,CAMOVE) CONDITIONAL ASYNC ERR MSG ? */ 02750002 */* D (NO,,YES,LONGENT) COMMAND TOO LONG MSG ? */ 02800002 */* D (NO,,YES,REJECT) COMMAND REJECTED MSG ? */ 02850002 */*IOEXIT: D (NO,,YES,NOSOUND) COMMAND REJECTED MSG ? */ 02900002 */* P INDICATE SOUND ALARM */ 02950002 */*NOSOUND: P SET EXIT TO PROPER I/O ROUTINE */ 03000002 */*XCTL: R XCTL TO NEXT LOAD */ 03050002 */*DELMOVE: S BLINST RTN:GO BLANK INSTRUCTION LINE */ 03100002 */* P PUT ERROR MSG IN INSTRUCTION LINE */ 03150002 */* D (NO,DT2,YES,) NO DELETABLE MESSAGES ? */ 03200002 */* P COMPLETE MESSAGE */ 03250002 */*TURNOFF: P TURN OFF ALL MESSAGE FLAGS */ 03300002 */*INSTWRIT: P INDICATE WRITE INSTRUCTION LINE */ 03350002 */* D (NO,IOEXIT,YES,) DOES DEVICE HAVE A LITE PEN ? */ 03400002 */* P PUT ENTER - CANCEL MSG IN INSTR LINE */ 03450002 */* P (,IOEXIT) INDICATE ERROR MSG IN INSTR LINE */ 03500002 */*DT2: D (NO,DT3,YES,) INVALID DELETE RANGE ? */ 03550002 */* P (,TURNOFF) PUT REST OF MESSAGE IN LINE */ 03600002 */*DT3: D (NO,DT4,YES,) SEG = 0 ? */ 03650002 */* P (,TURNOFF) MOVE IN MESSAGE */ 03700002 */*DT4: D (NO,DT5,YES,) DISPLAY NOT ON SCREEN ? */ 03750002 */* P (,TURNOFF) MOVE IN MESSAGE */ 03800002 */*DT5: P (,TURNOFF) MOVE IN REST OF MESSAGE */ 03850002 */*LPMOVE: S BLINST RTN: BLANK INSTRUCTION LINE */ 03900002 */* P (,INSTWRIT) PUT MESSAGE IN INSTRUCTION LINE */ 03950002 */*RAMOVE: S BLENTRTN RTN: GO BLANK ENTRY AREA */ 04000002 */* P PUT ERROR MSG IN LINE */ 04050002 */* D (NO,,YES,IOEXIT) OUTPUT ONLY CONSOLE ? */ 04100002 */* P (,IOEXIT) SET UP TO WRITE BOTH LINES OF ENTRY AREA */ 04150002 */*CAMOVE: S BLENTRTN RTN: GO BLANK THE ENTRY AREA */ 04200002 */* P MOVE IN ERROR MESSAGE */ 04250002 */* D (NO,,YES,IOEXIT) OUTPUT ONLY CONSOLE ? */ 04300002 */* P (,IOEXIT) PUT MSG IN SECOND LINE OF ENTRY AREA */ 04350002 */*REJECT: S BLINST RTN:BLANK INSTRUCTION LINE */ 04400002 */* P (,INSTWRIT) PUT COMMND REJECT MSG IN INSTR LINE */ 04450002 */*BLENTRTN: E BLENTRTN RTN */ 04500002 */* P BLANK ENTRY AREA IN DCM */ 04550002 */* R BR 14 */ 04600002 */*BLINST: E BLINST RTN */ 04650002 */* P BLANK THE INSTRUCTION LINE IN DCM */ 04700002 */* R BR 14 */ 04750002 */*LONGENT: S BLINST RTN:BLANK INSTRUCTION LINE */ 04800002 */* P PUT ERROR MESSAGE IN LINE */ 04850002 */* P FIND WHERE TO INSERT CURSOR AND HOLD LOCATION */ 04900002 */* P (,INSTWRIT) INDICATE INSERT CURSOR */ 04950002 */*IEECVETE: END */ 05000002 EJECT 05050002 ********************************************************************** 05100002 * REGISTERS 05150002 * 05200002 ********************************************************************** 05250002 X0 EQU 0 WORK REG 05300002 X1 EQU 1 WORK REG 05350002 X2 EQU 2 ADDR OF INSTRUC LINE 05400002 X3 EQU 3 ADDR OF ENTRY AREA 05450002 X4 EQU 4 LENGTH REG 05500002 XWORK EQU 5 WORK REG 05550002 XWORK1 EQU 4 WORK REG S21002 05600002 X6 EQU 6 WORK REG 05650002 X7 EQU 7 UCM BASE REGISTER 05700002 X8 EQU 8 WORK REG 05750002 X9 EQU 9 DCMBASE REGISTER 05800002 XA EQU 10 PROGRAM BASE REGISTER 05850002 XB EQU 11 CXSA BASE REGISTER 05900002 XC EQU 12 UCM ENTRY BASE REGISTER 05950002 XD EQU 13 WORK REG 06000002 XE EQU 14 USED FOR BRANCHING 06050002 XF EQU 15 WORK REG 06100002 X1PARM EQU 1 06102002 X8UCME EQU 8 06110002 XFBRANCH EQU 15 06120002 * 06150002 * EQUATES 06200002 * 06250002 ID1 EQU C'E' 1ST CHARACTER OF CSECT ID 06260002 ID2 EQU C'E' 2ND CHARACTER OF CSECT ID 06270002 BLANK EQU C' ' BLANK CHARACTER 06300002 N0 EQU 0 NUMBER 06350002 N1 EQU 1 NUMBER 06400002 N2 EQU 2 NUMBER 06450002 N4 EQU 4 NUMBER 06550002 N7 EQU 7 NUMBER 06700002 N13 EQU 13 NUMBER 06850002 N15 EQU 15 NUMBER 06900002 N21 EQU 21 NUMBER 06950002 N34 EQU 34 NUMBER 07000002 N36 EQU 36 NUMBER S21002 07100002 N41 EQU 41 NUMBER 07110002 N48 EQU 48 DISPLACEMENT NUMBER S21002 07150002 N50 EQU 50 NUMBER 07200002 N52 EQU 52 NUMBER 07250002 N59 EQU 59 NUMBER 07350002 N62 EQU 62 NUMBER 07400002 N65 EQU 65 NUMBER 07450002 N255 EQU 255 NUMBER 07550002 ********************************************************************** 07600002 EJECT 07650002 ********************************************************************** 07700002 * 07750002 * ESTABLISH BASES 07800002 * 07850002 ********************************************************************** 07900002 BALR XA,N0 ESTABLISH 07950002 USING *,XA PROGRAM ADDRESSIBILITY 08000002 LR XB,X1 ESTABLISH 08050002 USING CXSA,XB CXSA ADDRESS 08100002 L XC,CSAUCM ESTABLISH 08200002 USING UCMLIST,XC UCM ADDRESS 08250002 L X9,UCMXB ESTABLISH 08300002 L X9,N0(X9) LOAD TDCM POINTER S21003 08350002 USING DCMSTRT,X9 DCM ADDRESS 08400002 L X7,CSACTLM GET POINTER TO UCM 08450002 USING UCM,X7 ESTABLISH UCM ADDRESSIBILITY 08500002 MVC DCMTRACE(DCMTRLEN),DCMTRAC2 SHIFT OLD TRACE ENTRIES 08510002 MVI DCMTREN1,ID1 PUT CSECT ID INTO 08520002 MVI DCMTREN2,ID2 NEW TRACE ENTRY 08530002 * IF THE CONSOLE IS AN OUTPUT ONLY CONSOLE, THEN S21003 08550002 * ALL MESSAGES WILL BE WRITTEN IN THE WARNING LINE. S21003 08600002 TM UCMDISP,UCMDISPF+UCMDISPG Q. OUTPUT ONLY CONSOLE S21003 08650002 BZ NOTOUT NO-- S21003 08700002 L X2,DCMAWARN YES-LOAD WARNING LINE PT S21003 08750002 B TESTQ SKIP S21003 08800002 NOTOUT EQU * S21003 08850002 L X2,DCMAINS GET ADDRESS OF INSTRUCTION LINE 08900002 TESTQ EQU * S21003 08950002 * TEST FOR ERROR MESSAGE TO BE MOVED IN 09000002 * 09050002 TM DCMCMSG2,DCMDELRI Q. DELETE REQUEST INCONSISTENT 09100002 BO DELMOVE YES 09150002 TM DCMCMSG2,DCMCILLP Q. ILLEGAL LIGHT PEN OPERATION 09200002 BO LPMOVE YES 09250002 TM DCMCMSG2,DCMASYRT Q. RETRYABLE ASYNC ERROR 09300002 BO RAMOVE YES 09350002 TM DCMCMSG2,DCMASYCD Q. CONDITIONAL ASYNC ERROR 09400002 BO CAMOVE YES 09450002 TM DCMCMSG1,DCMELONG Q.MOVE IN ENTRY TOO LONG MSG S21002 09500002 BO LONGENT YES- S21002 09550002 TM DCMCMSG3,DCMDTBSY Q. MOVE IN COMMAND REJECTED MSG 09600002 BO REJECT YES 09650002 IOEXIT EQU * 09700002 TM DCMCMSG3,DCMDTBSY COMMAND REJECTED MSG 09750002 BO NOSOUND IF SO, DO NOT SOUND ALARM 09800002 OI DCMIOCM1,DCMSOUND ELSE, INDICATE SOUND ALARM 09850002 NOSOUND EQU * 09900002 L XFBRANCH,DCMIORTN LAOD IO ROUTINE ADDRESS 09950002 L X1PARM,DCMCXSVE RESTORE CXSA ADDRESS 09960002 BR XFBRANCH EXIT TO IEECVET(H,P,R, OR U) 10000002 DELMOVE EQU * 10300002 BAL XE,BLINST GO BLANK INSTRUCTION LINE 10350002 NI DCMCMSG2,N255-DCMDELRI TURN OFF BIT 10400002 MVC N0(N36,X2),DELRQINC MOVE IN ERROR MESSAGE S21002 10450002 TM DCMCMSG3,DCMCDLR1 Q. NO DELETABLE MESSAGES 10500002 BNO DT2 NO, CONTINUE TESTING 10550002 MVC N36(N21,X2),DLRNODEL YES,MOVE IN REST OF ERROR MSG 21002 10600002 TURNOFF EQU * 10650002 MVI DCMCMSG3,N0 TURN OFF BITS 10700002 INSTWRIT EQU * 10750002 OI DCMIOCM1,DCMWRINS INDICATE WRITE INSTRUC LINE 10800002 TM DCMIOUNQ,DCMW2250 Q. IS DEVICE A LIGHT PEN DEVICE 10850002 BNO IOEXIT NO, EXIT TO I/O RTN 10900002 MVC N59(N15,X2),ENCN MOVE ENTER-CANCEL MSG INTO LINE 10950002 NI DCMIOUNQ,N255-DCMINNOR TURN OFF NORMAL LINE BIT 11000002 OI DCMIOUNQ,DCMINERR INDICATE ERROR MSG IN INST LINE 11050002 B IOEXIT EXIT TO I/O ROUTINE 11100002 DT2 EQU * 11150002 TM DCMCMSG3,DCMCDLR2 Q. INVALID RANGE 11200002 BNO DT3 NO 11250002 MVC N36(N13,X2),DLRINVRG MOVE IN REST OF MSG S21002 11300002 B TURNOFF GO EXIT 11350002 DT3 EQU * 11400002 TM DCMCMSG3,DCMCDLR3 Q. SEG=0 11450002 BNO DT4 NO 11500002 MVC N36(N7,X2),DLRSEG0 MOVE IN MESSAGE S21002 11550002 B TURNOFF EXIT 11600002 DT4 EQU * 11650002 TM DCMCMSG3,DCMCDLR4 Q. DISPLAY NOT ON SCREEN 11700002 BNO DT5 NO 11750002 MVC N36(N21,X2),DLRNOTON YES,MOVE IN REST OF MESSAGE S21002 11800002 B TURNOFF EXIT 11850002 DT5 EQU * INVALID OPERAND FOR DELETE REQ 11900002 MVC N36(N15,X2),DLRINVOP MOVE IN REST OF MSG S21002 11950002 B TURNOFF EXIT 12000002 LPMOVE EQU * 12050002 NI DCMCMSG2,N255-DCMCILLP TURN OFF BIT 12100002 BAL XE,BLINST BLANK INSTRUC LINE 12150002 MVC N0(N41,X2),ILLGHTPN MOVE IN MESSAGE MH M2070 12210002 B INSTWRIT GO TO WRITE INSTRUC LIBE 12250002 RAMOVE EQU * 12300002 BAL XE,BLENTRTN GO TO BLANK ENTRY AREA 12350002 NI DCMCMSG2,N255-DCMASYRT TURN OFF BIT 12400002 MVC N0(N62,X3),RETASYN MOVE IN ERROR MSG 12450002 * IF CONSOLE IS OUTPUT ONLY, THEN WRTIE ONLY ONE LINE OF MSG. S21003 12500002 TM UCMDISP,UCMDISPF+UCMDISPG Q. OUTPUT ONLY CONSOLE S21003 12550002 BO OUTONLY WRITE ONLY ONE LINE S21003 12600002 AH X3,DCMCORLN INCREMENT TO LINE 2 OF ENTRY S21003 12650002 MVC N0(N50,X3),RETASYN2 MOVE IN 2ND LINE 12700002 OUTONLY EQU * S21003 12750002 B IOEXIT EXIT 12800002 CAMOVE EQU * 12850002 BAL XE,BLENTRTN GO TO BLANK ENTRY AREA 12900002 MVC N0(N65,X3),CONDASYN MOVE IN ERROR MSG 12950002 * IF CONSOLE IS OUTPUT ONLY, THEN WRTIE ONLY ONE LINE OF MSG. S21003 13000002 TM UCMDISP,UCMDISPF+UCMDISPG Q. OUTPUT ONLY CONSOLE S21003 13050002 BO OUTONLY WRITE ONLY ONE LINE S21003 13100002 AH X3,DCMCORLN INCREMENT TO LINE 2 OF ENTRY S21003 13150002 MVC N0(N52,X3),CONDASY2 MOVE IN ERROR MSG 13200002 NI DCMCMSG2,N255-DCMASYCD TURN OFF BIT 13250002 B IOEXIT EXIT TO I/O ROUTINE 13300002 REJECT EQU * 13350002 BAL XE,BLINST BLANK INSTRUCTION LINE 13400002 MVC N0(N34,X2),REJCTMSG MOVE IN COMMAND REJECTED MSG 13450002 B INSTWRIT GO TO WRITE INSTRUCTION LINE 13500002 BLENTRTN EQU * THIS ROUTINE BLANKS THE ENTRY AREA 13550002 L X3,DCMAENTR GET ADDR OF ENTRY AREA 13600002 MVI N0(X3),BLANK BLANK FIRST CHARACTER 13650002 LH X4,DCMLGNTH GET LENGTH OF ONE LINE 13700002 SLL X4,N1 MULTIPLY BY 2 13750002 BCTR X4,N0 SUBTRACT 13800002 BCTR X4,N0 TWO 13850002 EX X4,BLENT EXECUTE INTO MOVE INSTRUCTION 13900002 BR XE RETURN 13950002 BLINST EQU * THIS RTN BLANKS THE INSTRUCTION LINE 14000002 LH XWORK,DCMLGNTH GET LENGTH OF A LINE 14050002 BCTR XWORK,N0 DECREMENT 14100002 BCTR XWORK,N0 BY TWO 14150002 MVI N0(X2),BLANK BLANK FIRST CHAR OF INSTRUC LINE 14200002 EX XWORK,BLI PROPAGATE BLANKS 14250002 BR XE RETURN 14300002 LONGENT EQU * S21002 14350002 BAL XE,BLINST BLANK INSTRUCTION LINE S21002 14400002 MVC N0(N48,X2),LONGEMSG MOVE IN ERROR MSG S21002 14450002 * COMPUTE WHERE CURSOR SHOULD BE INSERTED FOR ENTRY TOO LONG S21002 14500002 LH XWORK,DCMLGNTH GET LENGTH OF A LINE S21002 14550002 LH XWORK1,H127 GET POSITION S21002 14600002 SR XWORK1,XWORK FOR INSERTING CURSOR S21002 14650002 MVI DCMCULNO,N2 INDICATE LINE 2 OF ENTRY AREA S21002 14700002 STC XWORK1,DCMPOSCU INDICATE POSITION S21002 14750002 OI DCMIOCM1,DCMINSC INDICATE INSERT CURSOR S21002 14800002 B INSTWRIT S21002 14850002 EJECT 14900002 ********************************************************************** 14950002 * EXECUTED INSTRUCTIONS: 15000002 * 15050002 BLI MVC N1(N0,X2),N0(X2) INSTRC FOR BLANKING INSTRUCTION LINE 15100002 BLENT MVC N1(N0,X3),N0(X3) INSTRUC FOR BLANKING ENTRY AREA 15150002 ********************************************************************** 15200002 H127 DC H'127' CONSTANT S21002 15250002 DELRQINC DC C'IEE151I DELETE REQUEST INCONSISTENT-' 36 CHARS S21002 15300002 DLRNODEL DC C'NO DELETABLE MESSAGES' 21 CHAR 15350002 DLRINVRG DC C'INVALID RANGE' 13 CHAR 15400002 DLRSEG0 DC C'SEG = 0' 7 CHAR 15450002 DLRNOTON DC C'DISPLAY NOT ON SCREEN' 21 CHAR 15500002 DLRINVOP DC C'INVALID OPERAND' 15 CHAR 15550002 CONDASYN DC C'IEE171I CONDITIONAL ERROR. RECENT ACTION MAY NEED TO BX15600002 E REPEATED.' 65 CHAR 15650002 CONDASY2 DC C'IEE171I PRESS CANCEL TO CONTINUE, OR SWITCH CONSOLES' 15700002 * 52 CHAR 15750002 RETASYN DC C'IEE170I RETRYABLE ERROR. RECENT ACTION MAY NEED TO BE X15800002 REPEATED' 62 CHAR 15850002 RETASYN2 DC C'IEE170I PRESS THE CANCEL KEY TO RESTORE THE SCREEN' 50 15900002 ILLGHTPN DC C'IEE164I ILLEGAL LIGHT PEN - CURSOR DETECT' 41 CHAR 15960002 * MH M2070 15970002 REJCTMSG DC C'IEE342I K D,F REJECTED - TASK BUSY' 34 CHARACTERS 16000002 ENCN DC C'*ENTER**CANCEL*' 15 CHARS S21002 16050002 LONGEMSG DC C'IEE153I ERROR- ENTRY GREATER THAN 126 CHARACTERS' 48 C 16100002 EJECT 16150002 *********************************************************************** 16200002 * * 16250002 * PATCH AREA * 16300002 * * 16350002 *********************************************************************** 16400002 SPACE 2 16450002 PATCH DC CL72'***PATCH AREA -- IGC5E07B***' S21002 16500002 EJECT 16550002 IEETDCM 16600002 EJECT 16700002 IEECUCM FORMAT=NEW 16800002 EJECT 16850002 IHACTM CXSA 16950002 END 17000002