* /* START OF SPECIFICATIONS ****************************************** 00010002 * 00020002 *01* MODULE-NAME = IEECVET2 00030002 * 00040002 *01* DESCRIPTIVE-NAME = DISPLAY ROUTINE 1 00050002 * 00060002 *01* COPYRIGHT = NONE 00070002 * 00080002 *01* STATUS = CHANGE LEVEL 1 FOR VS2 RELEASE 3 00090000 * 00100002 * APARS FIXED -- OZ00507, OZ02835 00102000 * 00104023 *01* FUNCTION = TO ROUTE CONTROL TO THE PROPER ROUTINES TO HANDLE THE 00110002 * OUTPUT OF IN-LINE MESSAGES. ON INTIAL ENTRY, THE LOCATION OF ANY 00120002 * STATUS DISPLAY THAT MAY BE ON THE SCREEN IS DETERMINED AND SAVED 00130002 * FOR USE BY THE OTHER DISPLAY ROUTINES. INITIAL VALUES ARE ALSO 00140002 * SET FOR THE PARAMETERS THAT WILL EVENTUALLY BE USED BY THE I/O 00142002 * ROUTINES TO WRITE THE NEWLY DISPLAYED MESSAGES. 00144002 * 00160002 *01* NOTES = LOCAL AND CROSS-MEMORY LOCKS ARE OBTAINED ON ENTRY VIA 00170002 * THE GETLOCK SUBROUTINE ADDRESSED IN THE CXSA (CSAXB). 00180002 * 00190002 *02* CHARACTER-CODE-DEPENDENCIES = NONE 00200002 * 00210002 *02* DEPENDENCIES = NONE 00220002 * 00230002 *02* RESTRICTIONS = NONE 00240002 * 00250002 *02* REGISTER-CONVENTIONS = SEE REGISTER EQUATES 00260002 * 00270002 *02* PATCH-LABEL = ICATCH A DC STATEMENT 00280002 * 00290002 *01* MODULE-TYPE = MODULE 00300002 * 00310002 *02* PROCESSOR = ASSEMF-370R 00320002 * 00330002 *02* MODULE-SIZE = X'178' BYTES 00340002 * 00350002 *02* ATTRIBUTES = REENTERABLE 00360002 * 00370002 *01* ENTRY-POINT = IEECVET2 00380002 * 00390002 *02* PURPOSE = TO ROUTE CONTROL TO OTHER ROUTINES DURING DISPLAY 00400002 * PROCESSING 00402002 * 00410002 *02* LINKAGE = BALR 00420002 * 00430002 *02* INPUT = REGISTER 1 ADDRESSES THE CXSA 00440002 * SEE ALSO CONTROL BLOCK USAGE 00450002 * 00460002 *02* OUTPUT = REGISTER 1 ADDRESSES THE CXSA 00470002 * SEE ALSO CONTROL BLOCK USAGE AND EXITS 00480002 * 00490002 *02* EXIT-NORMAL = IEECVFT2 - DISPLAY ROUTINE 3 00500002 * TO DISPLAY ANY WAITING LINES IF THE SCREEN IS NOT FULL 00510002 * 00530002 *02* EXIT-NORMAL = IEECVETH, P, R, OR U - I/O ROUTINE 00540002 * IF ANY INDICATORS ARE SET IN DCMIOCM1 THAT THERE IS SOMETHING 00550002 * NEW TO BE WRITTEN. 00560002 * 00580002 *02* EXIT-NORMAL = IEECVET3 - DISPLAY ROUTINE 2 00582002 * FOR CONSOLES IN ROLL MODE TO SET THE TIMER. 00582402 * 00584002 *02* EXIT-NORMAL = IEECVET7 - DELETE ROUTINE 2 00586002 * IF THE SCREEN IS FULL AND DCMIRCTR, THE INTERVENTION REQUIRED 00586402 * MESSAGE COUNT, IS NOT ZERO TO TRY DELETION OF INTERVENTION 00586802 * REQUIRED ACTION MESSAGES IF DELETION HAS NOT BEEN TRIED YET. 00587202 * 00588002 *02* EXIT-NORMAL = IEECVET9 - DELETE ROUTINE 4 00588402 * FOR CONSOLES IN AUTO DELETE MODE, IF THE SCREEN IS FULL, IN 00588502 * ORDER TO TRY DELETION OF ANY AUTOMATICALLY DELETABLE MESSAGES 00588602 * IF DELETION HAS NOT BEEN TRIED YET. 00588702 * 00588802 *02* EXIT-NORMAL = IEECVETD - MESSAGE ROUTINE 1 00589202 * FOR CONSOLES NOT IN ROLL MODE, TO DISPLAY THE UNVIEWABLE 00589302 * MESSAGE WARNING LINE IF DCMCMSG1, BIT DCMUNMSG REQUESTS IT. 00589402 * 00589602 *02* EXIT-NORMAL = IEECVET1 - DIDOCS MAIN PROCESSOR ROUTINE 00589702 * AS AN EXIT WHEN NO FURTHER INDICATION OF DISPLAY PROCESSING 00592202 * WORK CAN BE FOUND. 00594202 * 00595002 *02* EXIT-ERROR = NONE 00597502 * 00600002 *01* EXTERNAL-REFERENCES = NONE 00610002 * 00620002 *02* ROUTINES = GETLOCK SUBROUTINE - DEFINED IN IEECVET1, AND 00630002 * ADDRESSED BY WORD CSAXB OF THE CXSA ON ENTRY. 00640002 * 00650002 *02* DATA-SETS = NONE 00660002 * 00670002 *02* DATA-AREA = NONE 00680002 * 00690002 *02* CONTROL-BLOCKS = CXSA,UCM,WQE,CQE,RDCM,TDCM 00700002 * 00710002 *01* TABLES = NONE 00720002 * 00730002 *01* MACROS = EXECUTABLE - NONE 00740002 * MAPPING - IHAWQE WQE DSECT 00750002 * IHACTM CXSA DSECT 00760002 * IEECUCM UCM DSECT 00770002 * IEERDCM RESIDENT DCM DSECT 00780002 * IEETDCM PAGEABLE DCM DSECT 00790002 * 00800002 *01* CHANGE-ACTIVITY = MODULE REWRITTEN TO REPACKAGE DIDOCS 00810002 * FOR VS2 RELEASE 2. - SUPPORT CODE Y02958. 00820002 * 00830002 **** END OF SPECIFICATIONS *******************************************/ 00840002 TITLE 'IEECVET2 DISPLAY 1' 00850002 */*IEECVET2: CHART */ 00860002 */* HEADER 00870002 */* IEECVET2 DISPLAY 1 00880002 */* CHART E2 PAGE # */ 00890002 */* E IEECVET2 */ 00892002 IEECVET2 CSECT 00900002 *A083520,083540,083560 MH Y02140 00950002 *C084000 MH Y02140 01000002 * REGISTER EQUATES 03050002 * 03100002 XFBRANCH EQU 15 BRANCH EXIT TO OTHER ROUTINES 04060002 * CONTENTS MAY CHANGE FOR SVC CALLS 04070002 XERTRN EQU 14 RETURN BRANCH REG 04080002 * CONTENTS MAY CHANGE FOR SVC CALLS 04090002 XD EQU 13 04092002 XCPBASE EQU 12 PROGRAM BASE REG 04094002 XBTDCM EQU 11 PAGEABLE DCM BASE REG 04096002 XARDCM EQU 10 RESIDENT DCM BASE REG 04098002 X9UCM EQU 9 UCM BASE REG 04098402 X8UCME EQU 8 UCM ENTRY BASE REG 04098802 X7 EQU 7 04099202 X6 EQU 6 04099602 X5 EQU 5 04099702 X4 EQU 4 04099802 X3 EQU 3 04099902 X2SSCT EQU 2 SSCT SEARCH REG 04116602 X1PARM EQU 1 CXSA BASE REGISTER 04126602 X0ZERO EQU 0 FOR ZEROING DCM FIELDS 04130602 * 04133302 ********************************************************************** 04150002 EJECT 04200002 SPACE 2 04250002 */* P INITIALIZE BASE REGS */ 04260002 *********************************************************************** 04300002 BALR XCPBASE,N0 LOAD PROGRAM BASE REGISTER 04350002 USING *,XCPBASE ESTABLISH PROG ADDRESSABILITY 04400002 B BEGIN BRANCH AROUND PATCH AREA 04450002 ICATCH DC CL8'IEECVET2' EYECATCHER AND FIELD MAINTENANCE 04460000 DC CL8'&SYSDATE' DATE LAST ASSEMBLY 04462000 DC XL2'5056' DATE LAST CHANGE JE @ZA02835 04464000 DC S(*) 04466000 DC CL52'ZAPS' PATCH AREA 04468000 BEGIN EQU * END OF PATCH AREA 04470002 USING UCMLIST,X8UCME ESTABLISH UCMENTRY ADDRESSABILITY 04500002 USING CXSA,X1PARM ESTABLISH CXSA ADDRESSABILITY 04600002 USING UCM,X9UCM ESTABLISH UCM ADDRESSABILITY 04700002 USING DCMTSRT,XARDCM ESTABLISH R DCM ADDRESSABILITY 04850002 USING DCMSTRT,XBTDCM ESTABLISH DCM ADDRESS 04950002 L X8UCME,CSAUCM ADDRESS UCM ENTRY 04960002 L X9UCM,CSACTLM ADDRESS UCM BASE 04970002 L XARDCM,UCMXB ADDRESS RESIDENT DCM 04980002 L XBTDCM,DCMADTRN ADDRESS PAGEABLE DCM 04990002 MVC DCMTRACE(DCMTRLEN),DCMTRAC2 SHIFT OLD ENTRIES 05000002 MVI DCMTREN1,CE MOVE IN MODULE ID OF 05010002 MVI DCMTREN2,C2 'E2' FOR IEECVET2 05020002 SPACE 2 05070002 */* S GETLOCK:OBTAIN LOCAL AND CROSS MEMORY LOCKS*/ 05080002 ********************************************************************** 05100002 L XFBRANCH,CSAXB ADDRESS GETLOCK SUBROUTINE 05150002 BALR XERTRN,XFBRANCH OBTAIN LOCKS 05200002 SPACE 2 05250002 */* D (NO,,YES,FINISH) RETURN FROM DISP 3 */ 05260002 *********************************************************************** 05300002 * CHECK IF ENTRY IS FROM DISPLAY 3 MODULE 05650002 TM DCMCOM3,DCMCDSP3 HAS WORK BEEN DONE 05700002 BO FINISH YES--GO MOP UP 05750002 SPACE 2 05760002 */* P CLEAR FLAGS AND INITIALIZE I/O PARAMETERS */ 05770002 *********************************************************************** 05780002 MVI DCMUTILT,N0 ZERO OUT INTERNAL FLAGS 05850002 SR X0ZERO,X0ZERO GET REG OF ZEROS 05900002 STH X0ZERO,DCMBYTCT ZERO WRITE LENGTH 05950002 MVI DCMLINEN,N0 ZERO WRITE ADDRESS 06000002 STH X0ZERO,DCMBADLN ZERO OUT WRITE BUFFER ADDR 06050002 SPACE 2 06100002 */* D (YES,,NO,ZAPITOUT) DYNAMIC DISPLAY ON SCREEN */ 06150002 *********************************************************************** 06200002 L X2SSCT,DCMADSEC GET SSCT ADDR 06350002 NEXTSSCT EQU * 06400002 TM N0(X2SSCT),DCMSECDD IS DYNAMIC DISPLAY BIT ON 06450002 BO SAVEDYNM YES-SAVE AREA ADDR OF LINE 06500002 TM N0(X2SSCT),DCMSECST IS IT END OF TABLE 06550002 BO ZAPITOUT YES-SET PT TO 0 06600002 LA X2SSCT,N1(X2SSCT) NO-- PT TO NEXT SSCT ENTRY 06650002 B NEXTSSCT 06700002 SPACE 2 06702002 */* P (,DISPTST) SAVE ADDR OF SCT ENTRY FOR DYN DISP */ 06704002 *********************************************************************** 06706002 SAVEDYNM EQU * 06710002 S X2SSCT,DCMADSEC GET DISPLACEMENT FROM START 06720002 MH X2SSCT,DCMSCTCN MPY BY SCT ENTRY LENGTH 06730002 A X2SSCT,DCMAMTAB ADD START OF SCT TABLE ADDR 06740002 ST X2SSCT,DCMDSAV+N16 SAVE ADDR FOR LATER 06742002 B DISPTST 06744002 SPACE 2 06746002 */*ZAPITOUT: P ZERO DYNAMIC DISPLAY SCT ADDRESS */ 06748002 *********************************************************************** 06748402 ZAPITOUT EQU * 06750002 ST X0ZERO,DCMDSAV+N16 SET DYNAMIC DISPLAY PT=0 06850002 SPACE 2 06900002 */*DISPTST: D (NO,,YES,DISPTST1) IS SCREEN FULL */ 06920002 *********************************************************************** 06930002 DISPTST EQU * 06950002 TM DCMR2FLG,DCMRXSFL IS SCREEN FULL 07050002 BO DISPTST1 YES, CONTINUE 07100002 SPACE 2 07102002 */* R BRANCH IEECVFT2 */ 07104002 *********************************************************************** 07106002 L XFBRANCH,DCMNDSP3 LOAD DISPLAY 3 ADDRESS 07110002 BR XFBRANCH EXIT TO IEECVFT2 07120002 SPACE 2 07130002 DISPTST1 EQU * 07300002 DISPTST3 EQU * 07450002 * 8 LINES DELETED HERE FOR APAR OZ02835 07500000 SPACE 2 07580002 */*NEXTEST: D (YES,,NO,NOAUTO) DOES DEL EQUAL YES */ 07590002 *********************************************************************** 07592002 NEXTEST EQU * 07600002 CLI DCMDEL,Y IS DEL=Y 07650002 BNE NOAUTO NO TEST FOR ROLL MODE 07700002 CLI DCMRQDEL,BLANK YES IS A DEL REQUEST PENDING 07750002 BNE NOAUTO YES TEST FOR TIMER DEFAULT 07800002 SPACE 2 07810002 */* D (NO,,YES,MSGMOD) HAS AUTO DELETE BEEN TRIED */ 07820002 *********************************************************************** 07830002 TM DCMDSTAT,DCMDSAUT HAS AUTO DEL BEEN TRIED 07850002 BO MSGMOD YES WRITE MSG TO SCREEN 07900002 SPACE 2 07910002 */* R BRANCH IEECVET9 */ 07920002 *********************************************************************** 07930002 OI DCMDSTAT,DCMDSAUT IND AUTO DEL TRIED 07950002 OI DCMCOM1,DCMCOMAU IND TRY AUTO DEL 08000002 NI DCMCMSG1,N255-DCMUNMSG TURN OFF UNVIEW MSG BIT 08050002 L XFBRANCH,DCMNDEL4 LOAD DELETE 4 ADDRESS 08100002 BR XFBRANCH EXIT TO IEECVET9 08150002 SPACE 2 08160002 */*NOAUTO: D (NO,,YES,ROLLMODE) ARE WE IN ROLL MODE */ 08170002 *********************************************************************** 08180002 NOAUTO EQU * 08200002 CLI DCMDEL,R ARE WE IN ROLL MODE 08250002 BE ROLLMODE YES, TEST FOR PROPER EXIT 08300002 SPACE 2 08302002 */*MSGMOD: D (YES,,NO,IOEXIT) WRITE UNVIEWABLE MESSAGE MESSAGE */ 08304002 *********************************************************************** 08306002 MSGMOD EQU * WRITE WARNING MESSAGE 08310002 TM DCMCMSG1,DCMUNMSG UNVIEWABLE MESSAGES 08320002 BNO IOEXIT NO,WRITE SCREEN FULL 08330002 SPACE 2 08332002 */* R BRANCH IEECVETD */ 08334002 *********************************************************************** 08336002 L XFBRANCH,DCMNMSG1 LOAD MESSAGE 1 ADDRESS 08340002 BR XFBRANCH EXIT TO IEECVETD 08342002 SPACE 2 08344002 */*ROLLMODE: P TURN ON DCM SET TIMER FLAG */ 08346002 *********************************************************************** 08348002 ROLLMODE OI DCMR2FLG,DCMRXTMR SET R DCM TIMER FLAG 08350002 CLC DCMASCRN(N4),DCMWTBUF DO DISPLAYS FILL SCRN MH Y02140 08352002 BL REGPROC NO, GO AHEAD MH Y02140 08354002 NI DCMR2FLG,X'FF'-DCMRXTMR YES, DONT ISSUE STMER MH Y02140 08356002 SPACE 2 08360002 */* D (YES,,NO,DISP2) WAS UNVIEWABLE MSG FLAG ON */ 08370002 *********************************************************************** 08380002 REGPROC TM DCMCMSG1,DCMUNMSG WAS UNVIEW. MSG BIT TURNED ONMH Y02140 08400002 BNO DISP2 NO, NOT FROM PROC 1 FOR ROLL 08450002 SPACE 2 08460002 */* P SET ON ROLL FLAG FOR T/I ROUTINE */ 08470002 *********************************************************************** 08480002 OI DCMR2FLG,DCMRXUNV TURN ON ROLL BIT FOR T-I 08500002 SPACE 2 08510002 */*DISP2: R BRANCH IEECVET3 */ 08520002 *********************************************************************** 08530002 DISP2 EQU * 08550002 L XFBRANCH,DCMNDSP2 LOAD DISPLAY 2 ADDRESS 08600002 BR XFBRANCH EXIT TO IEECVET3 08610002 SPACE 2 08660002 */*FINISH: D (NO,,YES,DISPTST1) IS MESSAGE WAITING */ 08710002 *********************************************************************** 08760002 FINISH EQU * 09050002 NI DCMCOM3,N255-DCMCDSP3 TURN OFF WORK DONE FLAG 09300002 TM DCMCMSG1,DCMMSGWT Q. IS MSG WAITING 09350002 BO DISPTST1 YES- 09400002 CLI DCMIOCM1,N0 ANY I/O TO DO JE @ZA00507 09402023 BNE IOEXIT YES, GO DO IT JE @ZA00507 09404023 SPACE 2 09410002 */* D (NO,,YES,IOEXIT) ANY I/O TO DO */ 09420023 */* D (NO,,YES,DISPTST1) IS SCREEN FULL BIT ON */ 09422023 *********************************************************************** 09430002 TM DCMR2FLG,DCMRXSFL IS SCREEN FULL BIT ON 09450002 BO DISPTST1 YES- 09500002 SPACE 2 09510002 */* D (NO,,YES,NEXTEST) UNVIEWABLE MESSAGE */ 09620002 *********************************************************************** 09630002 TM DCMCMSG1,DCMUNMSG IS THERE AN UNVIEWABLE MESSAGE 09650002 BO NEXTEST YES CHECK EXIT POSSIBILITIES 09700002 SPACE 2 09710002 */* D (YES,CHKROLL,NO,FINISH1) CONSOLE IN ROLL MODE */ 09720002 *********************************************************************** 09730002 CLI DCMDEL,R CONSOLE IN ROLL MODE 09750002 BNE FINISH1 NO, READY TO EXIT 09800002 SPACE 2 09802002 */*CHKROLL: D (YES,DISP2,NO,FINISH1) DCM SET TIMER FLAG ON */ 09804002 *********************************************************************** 09806002 CHKROLL EQU * SEE IF SET TIMER NECESSARY 09810002 TM DCMR2FLG,DCMRXTMR SET TIMER 09820002 BO DISP2 YES, GO TO DISPLAY 2 09840002 SPACE 2 09842002 */*FINISH1: D (YES,IOEXIT,NO,AROUND) ANY I/O TO DO */ 09844002 *********************************************************************** 09846002 FINISH1 EQU * DETERMINE PROPER EXIT 09850002 CLI DCMIOCM1,N0 ANY IO TO DO 09900002 BE AROUND NO SKIP IO EXIT 09950002 SPACE 2 09960002 */*IOEXIT: R BRANCH I/O ROUTINE */ 09970002 *********************************************************************** 09980002 IOEXIT EQU * 10000002 L XFBRANCH,DCMIORTN LOAD IO ROUTINE ADDRESS 10050002 BR XFBRANCH EXIT TO IEECVET(H,P,R, OR U) 10100002 SPACE 2 10150002 */*AROUND: D (NO,,YES,DISPTST3) ANY INT REQ MESSAGES ON SCREEN */ 10200002 AROUND EQU * 10350002 * 2 LINES DELETED HERE ZA02835 10400000 SPACE 2 10460002 */* D (YES,,NO,PEXIT) ECB POSTED FOR TIMER */ 10470002 *********************************************************************** 10480002 CLI UCMECB,BLANK IS ECB POSTED FOR TIMER 10500002 BNE PEXIT NO, EXIT TO PROCESSOR 1 10550002 CLI UCMECB+N3,N255 IS LOW ORDER BYTE FF 10600002 BNE PEXIT NO, EXIT TO PROCESSOR 1 10650002 SPACE 2 10660002 */* P CLEAR ECB */ 10670002 *********************************************************************** 10680002 XC UCMECB(N1),UCMECB ZERO ECB 10700002 SPACE 2 10710002 */*PEXIT: R BRANCH IEECVET1 */ 10720002 *********************************************************************** 10730002 PEXIT EQU * CHECK FOR MORE WORK TO DO 10750002 * FOR THIS CONSOLE 10800002 L X1PARM,DCMCXSVE PASS CXSA ADDRESS IN REG 1 10850002 L XFBRANCH,DCMNPROC LOAD PROC 1 ADDRESS 10900002 BR XFBRANCH EXIT TO IEECVET1 10950002 SPACE 2 11000002 */*IEECVET2: END */ 11050002 *********************************************************************** 11850002 EJECT 11900002 *********************************************************************** 11950002 *** EQUATES ** 12000002 **** **** 12050002 *********************************************************************** 12100002 CE EQU C'E' 1ST CHARACTER OF CSECT ID 12150002 C2 EQU C'2' 2ND CHARACTER OF CSECT ID 12200002 N0 EQU 0 FIELD INCREMENT 12500002 N1 EQU 1 FIELD INCREMENT 12550002 N3 EQU 3 FIELD INCREMENT 12650002 N4 EQU 4 FULLWORD LENGTH 12700002 N16 EQU 16 FIELD INCR 12950002 N255 EQU 255 USED TO TURN OF SELECTED BITS 13100002 BLANK EQU C' ' BLANK COMPARAND 13200002 Y EQU C'Y' CHARACTER FOR COMPARE 13350002 R EQU C'R' R COMPARAND 13400002 *********************************************************************** 14000002 TITLE 'IEECVET2 DISPLAY 1 - - RESIDENT DCM' 16760002 IEERDCM 16900002 TITLE 'IEECVET2 DISPLAY 1 - - PAGEABLE DCM' 16910002 IEETDCM 17050002 TITLE 'IEECVET2 DISPLAY 1 - - CXSA ' 17060002 IHACTM CXSA 18100002 TITLE 'IEECVET2 DISPLAY 1 - - UCM ' 18160002 IEECUCM FORMAT=NEW 18300002 END 19700002