* /* START OF SPECIFICATIONS **** 00100000 *02* PROCESSOR = ASSEMBLER; 00200000 **** END OF SPECIFICATIONS ***/ 00300000 TITLE 'IEECVETV IGC5V07B 3277 I/O 2' 00400000 IEECVETV CSECT 00500000 *A131600,131700 MH Y01566 00600000 *A261000,274000,274100 MH Y02159 00700000 *C163500,164000 MH Y02159 00800000 * STATUS 01400000 * CHANGE LEVEL 0.012 01500000 * 01530000 * APARS FIXED = OZ13394 01560000 * 01600000 * FUNCTION 01700000 * THIS IS A DEVICE DEPENDENT ROUTINE TO PERFORM THE REQUESTED I/O IN 01800000 * PROPER SCREEN FORMAT. 01900000 * 02000000 * ENTRY POINTS 02100000 * IEECVETV FOR ALL FUNCTIONS 02200000 * 02300000 * OPERATION 02400000 * THE COMMUNICATION BYTES IN THE DCM ARE CHECKED AGAINST 02500000 * PRE-ESTABLISHED BIT SETTINGS TO DETERMINE WHICH TYPE/FORMAT OF 02600000 * I/O IS TO BE PERFORMED. EACH POSSIBLE REQUEST IS CHECKED AND, IF 02700000 * APPLICABLE, THE APPROPRIATE CCWS ARE BUILT UNTIL ALL OF THE 02800000 * DESIRED I/O REQUESTS ARE SET UP IN THE CHANNEL PROGRAM. THEY MAY 02900000 * BE TO: WRITE THE FULL SCREEN, WRITE A PORTION OF THE SCREEN, 03000000 * WRITE THE INSTRUCTION LINE, WRITE THE ENTRY AREA, 03100000 * INSERT THE CURSOR, WRITE THE WARNING LINE, SOUND 03200000 * THE ALARM, WRITE THE 03300000 * INFORMATIONAL DISPLAY, ERASE THE SCREEN, WRITE THE ASYNCHRONOUS 03400000 * ERROR MESSAGE OR WRITE THE PFK LINE. I/O IS THEN 03500000 * INITIATED VIA AN EXCP AND CONTROL IS RETURNED TO PROCESSOR 1 03600000 * (IEECVET1). 03700000 * 03800000 * INPUT 03900000 * THE INDICATION OF THE DESIRED I/O IS RECEIVED IN I/O 04000000 * COMMUNICATION BYTES 2 AND 3 IN THE DISPLAY CONTROL MODULE. 04100000 * 04200000 * OUTPUT 04300000 * WRITING OF WHAT IS REQUESTED BY THE OTHER MODULES. 04400000 * 04500000 * EXTERNAL REFERENCES 04600000 * NONE. 04700000 * 04800000 * EXITS, NORMAL 04900000 * IEECVET1 PROCESSOR 1 WHEN WORK IS COMPLETE. 05000000 * 05100000 * EXITS, ERROR 05200000 * NONE. 05300000 * 05400000 * TABLES/WORK AREAS 05500000 * DISPLAY CONTROL MODULE (CONTAINED IN DSECT AT END OF LISTING). 05600000 * 05700000 * ATTRIBUTES 05800000 * REFRESHABLE, PRIVILEGED, TYPE 4 SVC. 05900000 * 06000000 * CHARACTER CODE DEPENDENCY 06100000 * NONE. 06200000 * 06300000 * NOTES 06400000 * THE FOLLOWING FLAG BITS ARE USED: 06500000 * THE ACTION COLUMN INDICATES WHETHER THE BIT IS TURNED ON, OFF 06600000 * OR JUST TESTED BY THIS MODULE. 06700000 * 06800000 * NAME ACTION FUNCTION 06900000 * 07000000 * DCMCOM1 07100000 * DCMIOPRD ON READ HAS BEEN PERFORMED 07200000 * DCMIOCM2 07300000 * DCMBLENT OFF/TEST BLANK ENTRY AREA 07400000 * DCMBLWRL OFF/TEST BLANK LEFT HALF WARNING LINE 07500000 * DCMBLWRR OFF/TEST BLANK RIGHT HALF WARNING LINE 07600000 * DCMINSSH OFF/TEST INITIALIZE INSTRUCTION LINE 07700000 * DCMWINFD OFF/TEST WRITE INFORMATION DISPLAY 07800000 * DCMERASE OFF/TEST ERASE SCREEN 07900000 * DCMIOCRD OFF/TEST READ ENTRY AREA 08000000 * DCMWRASY OFF/TEST WRITE ASYNCHRONOUS ERROR MESSAGE 08100000 * DCMIOCM3 08200000 * DCMWRPFK OFF/TEST ALTER PFK LINE 08300000 * DCMLTPFK OFF/TEST LIGHT ALLOCATED PFKS 08400000 * DCMACPFK OFF/TEST EXTINGUISH PFKS 08500000 * DCMSSRG OFF/TEST SUPPRESS REGENERATION 08600000 * DCMIOUNQ 08700000 * DCMINERR OFF ERROR INSTRUCTION LINE 08800000 * DCMINNOR ON NORMAL INSTRUCTION LINE 08900000 * DCMUTILT 09000000 * DCMUTILB ON/OFF/TEST WRITE CCW EXISTS 09100000 *********************************************************************** 09200000 EJECT 09300000 * REGISTER EQUATES 09400000 *********************************************************************** 09500000 X1PARM EQU 1 09600000 XFBRANCH EQU 15 09700000 R1PARM EQU 1 PARAMETER REGISTER 09800000 R2BRANCH EQU 2 BRANCH REGISTER 09900000 R3WORK EQU 3 WORK REGISTER 10000000 R3RMSGAL EQU 3 STATUS SW WORK REG 10100000 R4WORK EQU 4 WORK REGISTER 10200000 R4POINT EQU 4 WORK REGISTER 10300000 R4ADDRL EQU 4 STATUS SW WORK REG 10400000 R5KEEP EQU 5 WORK REGISTER 10500000 R5WTINT EQU 5 STATUS SW WORK REG 10600000 R6WORK EQU 6 WORK REGISTER 10700000 R7DCMENT EQU 7 DCM ENTRY BASE REGISTER 10800000 R8CHPGM EQU 8 POINTER TO CHANNEL PROGRAM AREA 10900000 R9PFKPTR EQU 9 POINTER TO PFK AREA 11000000 RADCMBAS EQU 10 TRANSIENT DCM BASE REGISTER 11100000 RBBASE EQU 11 PROGRAM BASE REGISTER 11200000 RCCXSA EQU 12 CXSA BASE REGISTER 11300000 RDUCMENT EQU 13 UCMENTRY BASE REGISTER 11400000 RERTRN EQU 14 WORK REGISTER 11500000 RFRESBAS EQU 15 RESIDENT DCM BASE 11600000 EJECT 11700000 START BALR RBBASE,N0 SET UP 11800000 USING *,RBBASE ADDRESSABILITY 11900000 B ICATCH BRANCH AROUND EYECATCHER 12000000 DC C'12 MODULE IGC5V07B, FICHE IEECVETV ' EYECATCHER AND 12100000 ZAPAREA DC 12C'ZAP' RESERVED FOR FIELD MODIFICATION 12200000 ICATCH LR RCCXSA,R1PARM SAVE CXSA BASE 12300000 USING CXSA,RCCXSA DECLARE CXSA ADDRESS 12400000 L RDUCMENT,CSAUCM GET UCM ENTRY ADDRESS 12500000 USING UCMLIST,RDUCMENT DECLARE UCMENTRY BASE 12600000 L RFRESBAS,UCMXB GET DCM POINTER 12700000 USING DCMTSRT,RFRESBAS 12800000 L R9PFKPTR,DCMADPFK POINT TO PFK AREA 12900000 L RADCMBAS,DCMADTRN GET BASE FOR TRANSIENT DCM 13000000 USING DCMSTRT,RADCMBAS DECLARE DCM BASE 13100000 L R7DCMENT,DCMAENTR GET DCM ENTRY POINTER 13200000 USING DCMENTRY,R7DCMENT DECLARE BASE 13300000 MVC DCMTRACE(DCMTRLEN),DCMTRAC2 SHIFT OLD TRACE ENTRIES 13400000 MVI DCMTREN1,ID1 PUT CSECT ID INTO 13500000 MVI DCMTREN2,ID2 NEW TRACE ENTRY 13600000 L R8CHPGM,DCMDSAV POINT TO CHANNEL PROGRAM 13700000 LA R2BRANCH,BUMP1 SET BRANCH REG 13800000 TM DCMUTILT,DCMUTILB DOES WRITE CCW EXIST 14200000 BO ERASEPFM YES, DON'T BUILD ANOTHER 14300000 WRITE BAL RERTRN,WRITECCW GO BUILD WRITE CCW 14400000 OI DCMUTILT,DCMUTILB INDICATE WRITE CCW EXISTS 14500000 ERASEPFM EQU * 14900000 TM DCMIOCM2,DCMERASE SEE IF ERASE 15000000 BNO FULLWRT NO, CHECK NEXT FUNCTION 15100000 PFMERASE EQU * 15500000 LA R5KEEP,DCMERSDT POINT TO ERASE DATA 15600000 LA R3WORK,N7 SET BYTE COUNT 15700000 BAL RERTRN,BUILDCCW GO BUILD CCW 15800000 NI DCMIOCM2,X'FF'-DCMERASE TURN OFF ERASE BIT 15900000 B ASYWRIT TEST NEXT FUNCTION 16000000 FULLWRT EQU * 16500000 TM DCMIOCM1,DCMWRMSG WRITE FULL MESSAGE AREA 16600000 BNO PARTWRT NO, TEST NEXT FUNCTION 16700000 FULLMSG EQU * 17100000 L R5KEEP,DCMASCRN POINT TO START OF TEXT 17200000 SH R5KEEP,H6 BACK UP TO CONTROL CHARS 17300000 L R3WORK,DCMWTBUF PT TO END OF BUFF 17400000 SR R3WORK,R5KEEP CALC BYTE COUNT 17500000 SH R3WORK,H6 ACCOUNT FOR CONTROL CHARS 17600000 LTR R3WORK,R3WORK IS BYTE COUNT ZERO 17700000 BZ PARTWRT YES, DON'T BUILD CCW 17800000 ST R8CHPGM,DCMDSAV+N4 SAVE CHAN PGM ADDR @ZA13394 17850000 BAL RERTRN,BUILDCCW GO BUILD THE CCW 17900000 BAL RERTRN,XLATE XLATE CTRL CHARAC FM TEXT @ZA13394 17950000 B AANDD INSERT ATTRIBUTE & DES AS REQ 18000000 PARTWRT EQU * 18500000 TM DCMIOCM1,DCMWRPAR WRITE PARTIAL MESSAGE AREA 18600000 BNO ASYWRIT NO, TEST NEXT FUNCTION 18700000 PARTMSG EQU * 19100000 SR R5KEEP,R5KEEP CLEAR REG 19200000 L R4POINT,DCMASCRN POINT TO START OF MESSAGE AREA 19300000 SH R4POINT,H6 BACK UP TO CONTROL CHARS 19400000 IC R5KEEP,DCMLINEN GET LINE NO 19500000 BCTR R5KEEP,N0 DECREMENT BY 1 19600000 MH R5KEEP,DCMCORLN MULT BY LINE LENGTH MB 19700000 AR R5KEEP,R4POINT ADD BEGINNING ADDR TO GET ID ADDR 19800000 LH R3WORK,DCMBYTCT GET WRITE LENGTH 19900000 ST R8CHPGM,DCMDSAV+N4 SAVE CHAN PGM ADDR @ZA13394 19950000 BAL RERTRN,BUILDCCW BUILD CCW 20000000 BAL RERTRN,XLATE XLATE CTRL CHARAC FM TEXT @ZA13394 20200000 AANDD NI DCMIOCM1,X'FF'-DCMWRMSG-DCMWRPAR TURN BITS OFF 20500000 L R3WORK,DCMAMTAB POINT TO START OF SCT 20600000 L R6WORK,DCMASCRN POINT TO FIRST LINE OF TEXT 20700000 L R5KEEP,DCMADSEC POINT TO START OF SSCT 20800000 TESTCTL1 TM N1(R3WORK),DCMMSGCL IS THIS IN-LINE CONTROL LINE 20900000 BO INSERT1 YES, INSERT ATT. AND DES. 21000000 TM 0(R5KEEP),DCMSECCL IS THIS OUT-OF-LINE CONTROL LINE 21100000 * (MOD 2 ONLY) 21200000 BNO BUMP1 NO, GET NEXT ENTRY 21300000 TM N0(R3WORK),DCMMSGJK YES, IS IT STILL IN DCM 21400000 BO INSERT2 YES, INSERT CONTROL CHARS 21500000 BUMP1 LA R3WORK,N2(R3WORK) POINT TO NEXT SCT ENTRY 21600000 TM N0(R3WORK),DCMMSGST IS THIS END OF TABLE 21700000 BO ASYWRIT YES, GO TO NEXT FUNCTION 21800000 AH R6WORK,DCMCORLN POINT TO NEXT LINE 21900000 LA R5KEEP,N1(R5KEEP) POINT TO NEXT SSCT ENTRY 22000000 B TESTCTL1 GO TEST NEXT ENTRY 22100000 INSERT1 CLI DCMLGNTH+N1,MOD1LGN IS IT A MODEL 1 22200000 BE BUMP1 YES, NO CONTROL CHARS NEEDED 22300000 MOD2 MVC N63(N3,R6WORK),DETAD INSERT SF, ATT & DES 22400000 B BUMP1 GO TO TEST NEXT ENTRY 22500000 ASYWRIT EQU * 23000000 TM DCMIOCM2,DCMWRASY SEE IF WRITE ASYN ERROR 23100000 BNO PFKWRITE NO, CHECK NEXT FUNCTION 23200000 WRITASY EQU * 23600000 OI DCMWCC,RESTORE+RESETMDT RESTORE AND RESET MDT 23700000 L R5KEEP,DCMAENTR POINT TO START OF MSG 23800000 LH R3WORK,DCMLGNTH GET LENGTH OF LINE 23900000 SLL R3WORK,N1 DOUBLE IT 24000000 BAL RERTRN,BUILDCCW BUILD CCW 24100000 * NOTE LINE WILL BE WRITTEN TO MID-SCREEN, WHERE 24200000 * BLANKING DATA LEAVES CURSOR. 24300000 NI DCMIOCM2,X'FF'-DCMWRASY TURN BIT OFF 24400000 B ENEXCP GO TO EXECUTE 24500000 PFKWRITE EQU * 24900000 TM DCMIOCM3,DCMWRPFK WRITE PFK AREA 25000000 BNO INSTWRT NO, TEST NEXT FUNCTION 25100000 WRITEPFK EQU * 25500000 * EACH TIME THIS ROUTINE IS ENTERED IT WILL CHANGE THE STATUS OF THE 25600000 * DISPLAYED PFK LINE. IF THE LINE IS DISPLAYED IT WILL BE ERASED 25700000 * IF IT IS BLANK IT WILL BE BUILT AND WRITTEN TO THE SCREEN. 25800000 SPACE 25900000 LR R4POINT,R9PFKPTR GET POINTER TO PFK AREA 26000000 L R3WORK,DCMPFKLN GET POINTER TO PFK LINE 26100000 CLI N0(R3WORK),BLANK IS LINE BLANK NOW 26200000 MVI N0(R3WORK),BLANK BLANK FIRST POSITION 26300000 MVC N1(N83,R3WORK),N0(R3WORK) PROPAGATE BLANK 26400000 BNE WRITIT NO, IT WASN'T BUT WE JUST 26500000 * BLANKED IT SO WRITE IT 26600000 LTR R4POINT,R4POINT ANY KEYS ALLOCATED MH Y01566 27000000 BZ WRITIT NO, JUST WRITE BLANK LINE MH Y01566 27100000 LOOP3 CLI N0(R4POINT),STOPPER IS THIS END OF AREA 27200000 BE WRITIT YES, STOP GENERATION 27300000 MVC N0(N3,R3WORK),DETAD NO, INSERT SF, ATT AND DES CHARS 27400000 KEYSTART SR R5KEEP,R5KEEP CLEAR WORK REGISTER 27500000 IC R5KEEP,N0(R4POINT) GET KEY NUMBER 27600000 CVD R5KEEP,DCMPACK CONVERT IT TO DECIMAL 27700000 UNPK DCMCVBIN+N2(N2),DCMCVBIN+N2(N2) UNPACK IT 27800000 OI DCMCVBIN+N3,ZONE CHANGE SIGN TO EBCDIC 27900000 MVC N3(N2,R3WORK),DCMCVBIN+N2 MOVE KEY TO LINE 28000000 CLI N3(R3WORK),ZERO IS FIRST DIGIT ZERO 28100000 BNE TWOCHAR NO, CONTINUE 28200000 MVC N3(N2,R3WORK),N4(R3WORK) SHIFT CHAR OVER 28300000 BCTR R3WORK,N0 ADJUST POINTER 28400000 TWOCHAR EQU * 28500000 MVI DCMCVBIN+N2,ZEROS CLEAR OUT 28600000 MVI DCMCVBIN+N3,ZEROS WORK AREA 28700000 LA R3WORK,N8(R3WORK) POINT TO NEXT LINE SEGMENT 28800000 LA R4POINT,PFKLGN(R4POINT) POINT TO NEXT PFK AREA 28900000 B LOOP3 GO SEE IF ANY MORE 29000000 WRITIT EQU * 29400000 NI DCMIOCM3,X'FF'-DCMWRPFK TURN OFF BIT 29500000 LA R5KEEP,DCMPFKC POINT TO CONTROL CHARS 29600000 LA R3WORK,N3 SET BYTE COUNT 29700000 BAL RERTRN,BUILDCCW GO BUILD CCW 29800000 L R5KEEP,DCMPFKLN POINT TO PFK LINE 29900000 LH R3WORK,DCMCORLN GET LENGTH OF WRITE 30000000 BAL RERTRN,BUILDCCW BUILD CCW 30100000 INSTWRT EQU * 30600000 TM DCMIOCM1,DCMWRINS WRITE INSTR LINE 30700000 BNO ENTRYWRT NO, TEST NEXT FUNCTION 30800000 WRITEINS EQU * 31200000 NI DCMIOCM1,N255-DCMWRINS TURN OFF INS LINE WRITE BIT 31300000 LA R5KEEP,DCMINSTR-N6 POINT TO INST LINE 31400000 LH R3WORK,DCMCORLN GET WRITE LENGTH 31500000 BAL RERTRN,BUILDCCW BUILD WRITE SCREEN CCW 31600000 TM DCMIOUNQ,DCMINNOR IS LINE NORMAL 31700000 BO NORMINST YES, DE-INTENSIFY 31800000 MVI DCMINSTR-N2,HIGHINT NO, INTENSIFY IT 31900000 MVC DCMINSTR+N57(N20),DETAD PUT ENTER-CANCEL ON RIGHT 32000000 B ENTRYWRT TEST NEXT FUNCTION 32100000 NORMINST MVI DCMINSTR-N2,NORMINT SET NORMAL INTENSITY 32200000 ENTRYWRT EQU * 32700000 TM DCMIOCM1,DCMWRENT WRITE ENTRY AREA 32800000 BNO CURSORIN NO, TEST NEXT FUNCTION 32900000 WRITENT EQU * 33300000 NI DCMIOCM1,X'FF'-DCMWRENT TURN OFF WRITE ENTRY AREA BIT 33400000 MVI DCMENTRY+N127,NULL NULL BYTE PAST COMMAND MH Y02159 33500000 MVC DCMENTRY+N128(N34),DCMENTRY+N127 AND REST OF LINE 33600000 LA R5KEEP,DCMENTRY-N6 POINT TO ENTRY LINE 33700000 LA R3WORK,ENTLGN LOAD LENGTH OF ENTRY AREA 33800000 BAL RERTRN,BUILDCCW BUILD WRITE CCW 33900000 CURSORIN EQU * 34300000 TM DCMIOCM1,DCMINSC INSERT CURSOR 34400000 BNO WARNWRIT NO, TEST NEXT FUNCTION 34500000 INCURSOR EQU * 34900000 NI DCMIOCM1,X'FF'-DCMINSC TURN OFF BIT 35000000 SR R5KEEP,R5KEEP CLEAR WORK REG 35100000 IC R5KEEP,DCMCULNO GET LINE NUMBER 35200000 BCTR R5KEEP,N0 REDUCE BY ONE 35300000 MH R5KEEP,H78 MULT BY LGN LINE 1 35400000 SR R3WORK,R3WORK CLEAR WORK REG MB 35500000 IC R3WORK,DCMPOSCU GET CHARACTER POSITION 35600000 LA R5KEEP,EACHAR(R5KEEP,R3WORK) GET ADDR TO INS CURSOR 35700000 STC R5KEEP,DCMCRSDT+N2 STORE RIGHT HALF OF DATA 35800000 SRL R5KEEP,N6 ISOLATE LEFT HALF OF DATA 35900000 STC R5KEEP,DCMCRSDT+N1 STORE IT 36000000 NI DCMCRSDT+N2,CLEANIT CLEAN UP RIGHT HALF 36100000 TR DCMCRSDT+N1(N2),TRTABLE TRANSLATE TO 3277 CODE 36200000 LA R5KEEP,DCMCRSDT GET PTR FOR INSERT CURSOR 36300000 LA R3WORK,N4 SET BYTE COUNT 36400000 BAL RERTRN,BUILDCCW BUILD CCW 36500000 WARNWRIT EQU * 37000000 TM DCMIOCM1,DCMWRWRN WRITE WARNING LINE 37100000 BNO INFOWRIT NO, TEST NEXT FUNCTION 37200000 WRITWARN EQU * 37600000 NI DCMIOCM1,X'FF'-DCMWRWRN TURN OFF WARNING LINE BIT 37700000 L R5KEEP,DCMAWARN POINT TO WARNING LINE 37800000 SH R5KEEP,H6 BACK UP TO CONTROL CHARACTERS 37900000 LH R3WORK,DCMCORLN LENGTH OF WRITE 38000000 BAL RERTRN,BUILDCCW BUILD WRITE CCW 38100000 INFOWRIT EQU * 38600000 TM DCMIOCM2,DCMWINFD SEE IF WRITE INFO DISPLAY 38700000 BNO ALRMSND NO, GO TEST FOR NEXT FUNCTION 38800000 WRITINFO EQU * 39200000 NI DCMIOCM2,X'FF'-DCMWINFD TURN OFF BIT 39300000 SR R4WORK,R4WORK CLEAR REG 39400000 IC R4WORK,DCMLINEN GET LINE NUMBER 39500000 BCTR R4WORK,N0 BACK UP TO LINE 39600000 MH R4WORK,DCMCORLN INDEX TO THAT LINE 39700000 A R4WORK,DCMASCRN ADD TO START OF BUFFER 39800000 SH R4WORK,H6 BACK UP TO CONTROL CHARS 39900000 L R6WORK,DCMAINS POINT TO FIRST DATA LINE MB 40000000 CLI N65(R6WORK),SPLAT IS IT A CONTROL LINE 40100000 BNE BUILDEM NO, CONTINUE 40200000 LA R2BRANCH,BUILDEM LOAD SUBROUTINE RETURN 40300000 INSERT2 MVC N55(N3,R6WORK),DETAD YES, INSERT SF-ATT-DES 40400000 MVC N63(N3,R6WORK),DETAD FOR DETECTION 40500000 TM N71(R6WORK),DIGIT IS CCA STILL INTACT 40600000 BCR NOTONE,R2BRANCH NO, WE'VE BEEN HERE BEFORE 40700000 MVC DCMDSAV(N3),N71(R6WORK) SAVE CCA 40800000 MVC N75(N3,R6WORK),DCMDSAV RESTORE IT 40900000 MVC N71(N3,R6WORK),NORMAT MAKE IT UNDETECTABLE 41000000 BR R2BRANCH RETURN TO CALLER 41100000 * NOTE BRANCH IS A NO-OP IF WE ENTERED FROM THE WRITINFO ROUTINE 41200000 * AND TO LABLE 'BUMP1' IF WE CAME FROM WRITE FULL OR PARTIAL 41300000 BUILDEM LA R3WORK,N6 SET BYTE COUNT 41400000 LR R5KEEP,R4WORK SET WRITE FROM ADDRESS 41500000 BAL RERTRN,BUILDCCW BUILD CCW TO WRITE CONTROL 41600000 LH R3WORK,DCMLGNTH SET BYTE COUNT FOR TEXT 41700000 LR R5KEEP,R6WORK POINT TO DATA 41800000 BAL RERTRN,BUILDCCW BUILD CCW TO WRITE DATA 41900000 CLC DCMBYTCT,DCMCORLN WAS THIS LAST LINE 42000000 BNH ALRMSND YES, ALL DONE 42100000 LH R3WORK,DCMBYTCT NO, GET BYTE COUNT 42200000 SH R3WORK,DCMCORLN SUBTRACT LENGTH OF LAST LINE 42300000 STH R3WORK,DCMBYTCT UPDATE BYTE COUNT 42400000 AH R4WORK,DCMCORLN UPDATE CONTROL POINTER 42500000 AH R6WORK,DCMCORLN UPDATE DATA POINTER 42600000 B BUILDEM GO DO NEXT LINE 42700000 ALRMSND EQU * 43100000 TM DCMIOCM1,DCMSOUND SOUND ALARM 43200000 BNO ENEXCP NO, STOP CCW CHAIN 43300000 SOUNDALM EQU * 43700000 NI DCMIOCM1,X'FF'-DCMSOUND 43800000 OI DCMWCC,ALARM TURN ON BIT IN WCC 43900000 ENEXCP EQU * 44300000 SH R8CHPGM,EIGHT UPDATE CCW POINTER 44400000 MVI N4(R8CHPGM),STOP STOP CCW CHAIN 44500000 NI DCMWCC,VALRNG ENSURE VALID INPUT TO XLATE 44600000 * NOTE HIGH ORDER TWO BITS MAY HAVE BEEN TURNED ON IN 44700000 * I/O ROUTINE 1. 44800000 TR DCMWCC(N1),TRTABLE CONVERT WCC CHARACTER 44900000 EXCP EQU * 45300000 L XFBRANCH,CSAXB OBTAIN LOCKS JE YM8371 45400000 LR R1PARM,RCCXSA COPY CXSA ADDR JE YM8371 45500000 BALR RERTRN,XFBRANCH TO ROUTINE JE YM8371 45600000 XC UCMECB,UCMECB CLEAR ECB 45700000 OI UCMSTS,UCMBF TURN ON BUSY BIT 45800000 L R3WORK,UCMDCB GET DCB ADDRESS 45900000 L XFBRANCH,CSAXC RELEASE LOCKS JE YM8371 46000000 LR R1PARM,RCCXSA COPY CXSA ADDR JE YM8371 46100000 BALR RERTRN,XFBRANCH TO ROUTINE JE YM8371 46200000 L R1PARM,N28(R3WORK) GET IOB ADDRESS 46300000 EXCP (R1PARM) INITIATE I/O 46400000 PROCEXIT L XFBRANCH,DCMNPROC LOAD PROC 1 ADDRESS 46800000 * FOR EXIT TO IEECVET1 46900000 EXIT EQU * 47300000 L X1PARM,DCMCXSVE RESTORE CXSA ADDRESS 47400000 BR XFBRANCH EXIT ADDRESS ALREADY SET 47500000 SPACE 5 47600000 WRITECCW EQU * 47700000 LA R5KEEP,DCMWCC POINT TO WCC CHAR 47800000 LA R3WORK,N1 SET BYTE COUNT 47900000 BUILDCCW ST R5KEEP,N0(R8CHPGM) SAVE WRITE FROM ADDRESS 48000000 MVI N0(R8CHPGM),WRITCOD INSERT WRITE CCW CODE 48100000 STH R3WORK,N6(R8CHPGM) PUT BYTE COUNT IN 48200000 MVI N4(R8CHPGM),CHAINDT CHAIN CCW'S 48300000 LA R8CHPGM,N8(R8CHPGM) UPDATE CCW POINTER 48400000 BR RERTRN RETURN 48500000 XLATE L R6WORK,DCMDSAV+N4 GET CHAN PGM ADDR @ZA13394 48507000 LH R5KEEP,N6(R6WORK) GET TEXT LNGTH @ZA13394 48514000 L R6WORK,N0(R6WORK) GET TEXT BEGINING @ZA13394 48516000 LA R6WORK,N0(R6WORK) CLR HIGH ORDER BYTE @ZA13394 48518000 AR R5KEEP,R6WORK GET TEXT END+1 @ZA13394 48521000 LH R3WORK,DCMAXLGN MAX LINE LGTH @ZA13394 48535000 BCTR R3WORK,N0 DECREMENT BY ONE @ZA13394 48542000 LOOP EX R3WORK,TRIN BLANK OUT CTRL CHARC @ZA13394 48549000 AH R6WORK,DCMCORLN GET NEXT LINE @ZA13394 48556000 CR R6WORK,R5KEEP LAST LINE @ZA13394 48563000 BL LOOP NO @ZA13394 48570000 BR RERTRN RETURN TO PGM @ZA13394 48577000 TRIN TR N6(0,R6WORK),TRTAB @ZA13394 48584000 EJECT 48600000 * CONSTANTS 48700000 BLANKS DC 2C' ' BLANKS 48800000 DETAD DC X'1DE440' SF-ATT-DES FOR DETECTION 48900000 DC C'ENTER ' DETECTABLE FIELD 49000000 DC X'1DE440' SF-ATT-DES FOR DETECTION 49100000 DC C'CANCEL' DETECTABLE FIELD 49200000 EIGHT DC H'8' COUNT FOR UPDATE CCW PTR 49300000 F80 DC F'80' LENGTH OF ONE LINE 49400000 H6 DC H'6' LENGTH OF CONTROL CHAR FIELD 49500000 H78 DC H'78' LENGTH OF ENT AREA LINE 1 49600000 NORMAT DC X'1D6040' NON DETECT FIELD 49700000 TRTABLE DC X'40C1C2C3C4C5C6C7C8C94A4B4C4D4E4F' 49800000 DC X'50D1D2D3D4D5D6D7D8D95A5B5C5D5E5F' 49900000 DC X'6061E2E3E4E5E6E7E8E96A6B6C6D6E6F' 50000000 DC X'F0F1F2F3F4F5F6F7F8F97A7B7C7D7E7F' 50100000 TRTAB DS 0CL256 @ZA13394 50103000 DC AL1(0) @ZA13394 50104000 DC AL1(01,02,03,04,64,06,07,08,09,10) @ZA13394 50106000 DC AL1(11,12,13,14,15,16,64,64,64,20) @ZA13394 50109000 DC AL1(21,22,23,24,25,26,27,28,64,30) @ZA13394 50112000 DC AL1(31,32,33,34,35,36,37,38,39,40) @ZA13394 50115000 DC AL1(41,42,43,44,45,46,47,48,49,50) @ZA13394 50118000 DC AL1(51,52,53,54,55,56,57,58,59,64) @ZA13394 50121000 DC AL1(61,62,63,64,65,66,67,68,69,70) @ZA13394 50124000 DC AL1(71,72,73,74,75,76,77,78,79,80) @ZA13394 50127000 DC AL1(81,82,83,84,85,86,87,88,89,90) @ZA13394 50130000 DC AL1(91,92,93,94,95,96,97,98,99,100) @ZA13394 50133000 DC AL1(101,102,103,104,105,106,107,108,109,110) @ZA13394 50136000 DC AL1(111,112,113,114,115,116,117,118,119,120) @ZA13394 50139000 DC AL1(121,122,123,124,125,126,127,128,129,130) @ZA13394 50142000 DC AL1(131,132,133,134,135,136,137,138,139,140) @ZA13394 50145000 DC AL1(141,142,143,144,145,146,147,148,149,150) @ZA13394 50148000 DC AL1(151,152,153,154,155,156,157,158,159,160) @ZA13394 50151000 DC AL1(161,162,163,164,165,166,167,168,169,170) @ZA13394 50154000 DC AL1(171,172,173,174,175,176,177,178,179,180) @ZA13394 50157000 DC AL1(181,182,183,184,185,186,187,188,189,190) @ZA13394 50160000 DC AL1(191,192,193,194,195,196,197,198,199,200) @ZA13394 50163000 DC AL1(201,202,203,204,205,206,207,208,209,210) @ZA13394 50166000 DC AL1(211,212,213,214,215,216,217,218,219,220) @ZA13394 50169000 DC AL1(221,222,223,224,225,226,227,228,229,230) @ZA13394 50172000 DC AL1(231,232,233,234,235,236,237,238,239,240) @ZA13394 50175000 DC AL1(241,242,243,244,245,246,247,248,249,250) @ZA13394 50178000 DC AL1(251,252,253,254) @ZA13394 50181000 TREND DC AL1(TREND-TRTAB) @ZA13394 50184000 * EQUATES 50200000 ID1 EQU C'E' 1ST CHARACTER OF CSECT ID 50300000 ID2 EQU C'V' 2ND CHARACTER OF CSECT ID 50400000 ALARM EQU X'04' WCC ALARM BIT 50500000 BLANK EQU C' ' BLANK 50600000 CHAINCOM EQU X'60' COMMAND CHAINING FLAG 50700000 CHAINDT EQU X'A0' DATA CHAINING FLAG 50800000 CLEANIT EQU X'3F' STRIPS LEFT TWO BITS IN BYTE 50900000 DIGIT EQU X'F0' ZONE FOR EBCDIC DIGIT 51000000 EACHAR EQU 1681 CHAR POS OF ENTRY AREA 51100000 ENTAID EQU X'7D' ENTER AID CHAR 51200000 ENTLGN EQU 164 LENGTH OF ENTRY AREA WRITE 51300000 FRSTLINE EQU 21 FIRST LINE OF ENTRY AREA 51400000 HIGHINT EQU X'E8' ATTRIBUTE HIGH INTENSITY BYTE 51500000 LPAID EQU X'7E' SEL. PEN AID CHAR 51600000 MOD1LGN EQU 38 LENGTH OF MODEL 1 LINE 51700000 NODIG EQU X'00' NULL HEX VALUE 51800000 NORMINT EQU X'60' ATTRIBUTE NORMAL INTENSITY BYTE 51900000 NOTONE EQU 14 BRANCH CONDITION 52000000 NULL EQU X'00' NULL CHARACTER 52100000 N0 EQU 0 NUMBER 52200000 N1 EQU 1 NUMBER 52300000 N2 EQU 2 NUMBER 52400000 N3 EQU 3 NUMBER 52500000 N4 EQU 4 NUMBER 52600000 N6 EQU 6 NUMBER 52700000 N7 EQU 7 NUMBER 52800000 N8 EQU 8 NUMBER 52900000 N20 EQU 20 NUMBER 53000000 N28 EQU 28 NUMBER 53100000 N33 EQU 33 NUMBER 53200000 N34 EQU 34 NUMBER MH Y02159 53300000 N55 EQU 55 NUMBER 53400000 N57 EQU 57 NUMBER 53500000 N63 EQU 63 NUMBER 53600000 N65 EQU 65 NUMBER 53700000 N71 EQU 71 NUMBER 53800000 N75 EQU 75 NUMBER 53900000 N83 EQU 83 NUMBER 54000000 N127 EQU 127 ENTRY AREA CHAR PAST CMD MH Y02159 54100000 N128 EQU 128 NUMBER MH Y02159 54200000 N129 EQU 129 NUMBER 54300000 N255 EQU 255 NUMBER 54400000 PFKLGN EQU 110 LENGTH OF PFK AREA 54500000 READMD EQU X'06' READ MODIFIED COMMAND CODE 54600000 RESETMDT EQU X'01' WCC RESET MOD DATA TAG 54700000 RESTORE EQU X'02' WCC RESTORE KEYBOARD BIT 54800000 SECLINE EQU 22 SECOND LINE OF ENTRY AREA 54900000 SPLAT EQU C'*' CHARACTER 55000000 STOP EQU X'20' STOP CCW CODE 55100000 STOPPER EQU X'64' NO MORE PFK'S INDICATOR 55200000 VALRNG EQU X'3F' VALID RANGE FOR 64 BYTE TABLE 55300000 WRITCOD EQU X'01' WRITE CCW COMMAND CODE 55400000 ZERO EQU C'0' CHARACTER ZERO 55500000 ZEROS EQU X'00' HEX ZEROS 55600000 ZONE EQU X'F0' EBCDIC NUMERIC ZONE 55700000 SPACE 5 55800000 TITLE 'IEECVETV IGC5V07B 3277 I/O 2 RESIDENT DISPLAY *56000000 CONTROL MODULE' 56100000 IEERDCM 56200000 TITLE 'IEECVETV IGC5V07B 3277 I/O 2 TRANSIENT *56300000 DISPLAY CONTROL MODULE' 56400000 DCMSTRT DSECT 56500000 IEECDCM DEVICE=D 56600000 TITLE 'IEECVETV IGC5V07B 3277 I/O 2 CXSA' 56700000 IHACTM CXSA 56800000 TITLE 'IEECVETV IGC5V07B 3277 I/O 2 UNIT CONTR*56900000 OL MODULE' 57000000 IEECUCM FORMAT=NEW 57100000 END 57200000