* /* START OF SPECIFICATIONS ****************************************** 00100000 * 00150000 *01* MODULE-NAME = IEECVET4 00200000 * 00250000 *01* DESCRIPTIVE-NAME = COMMAND ROUTINE 00300000 * 00350000 *01* COPYRIGHT = NONE 00400000 * 00450000 *01* STATUS = CHANGE LEVEL 1 FOR VS2 RELEASE 2 00500000 * 00510000 * APARS FIXED --- ZA11437,ZA18576 00520000 * 00550000 *01* FUNCTION = TO CANCEL THE COMMAND IN THE ENTRY AREA IN RESPONSE TO 00600000 * A CANCEL ATTENTION, OR ANALYZE THE CONTENTS OF THE ENTRY AREA IN 00650000 * THE DCM WHEN A COMMAND IS ENTERED VIA THE KEYBOARD OR A PFK. 00700000 * COMMANDS ARE CHECKED FOR LENGTH, AND REWRITTEN TO THE ENTRY AREA 00750000 * WITH A MESSAGE IN THE INSTRUCTION LINE IF TOO LONG. 00800000 * IF THE COMMAND IS 'K' WITH NO OPERAND, OR A DELETE REQUEST 00850000 * VERIFICATION, CONTROL IS GIVEN IMMEDIATELY TO THE PROPER DELETE 00900000 * ROUTINE. FOR REPLY COMMANDS, THE REPLY ID IS CHECKED FOR ON THE 00950000 * QUEUE OF OUTSTANDING OPERATOR REQUESTS TO SEE IF IT WAS ISSUED 01000000 * WITH A ROUTING CODE OF 9. IF SO, THE TEXT OF THE OPERATOR'S 01050000 * REPLY IS SUPPRESSED. A WTO IS ISSUED INDICATING NO HARD-COPY TO 01100000 * COPY ALL COMMANDS EXCEPT 'K' COMMANDS TO THE MESSAGE AREA OF THE 01150000 * SCREEN. SVC 34 IS ISSUED TO ENTER COMMANDS INTO THE SYSTEM VIA 01200000 * SCHEDULER PROCESSING. ON RETURN FROM SVC 34 'K E,N' COMMANDS ARE 01250000 * PROCESSED BY THIS ROUTINE. 01300000 * 01350000 *01* NOTES = LOCAL AND CROSS-MEMORY LOCKS ARE RELEASED ON ENTRY VIA 01400000 * THE FREELOCK SUBROUTINE ADDRESSED IN THE CXSA (CSAXC). 01450000 * 01500000 *02* CHARACTER-CODE-DEPENDENCIES = EBCDIC CHARACTER REPRESENTATION 01550000 * IS ASSUMED FOR ANALYZING THE CONTENTS OF THE ENTRY AREA. 01600000 * 01650000 *02* DEPENDENCIES = THE SHORT FORM OF THE REPLY COMMAND SUPPORTED BY 01700000 * JES2 IS RECOGNIZED BY THIS ROUTINE FOR TEXT SUPPRESSION IF THE 01750000 * FIRST CHARACTER OF A COMMAND IS NUMERIC. 01800000 * 01850000 *02* RESTRICTIONS = NONE 01900000 * 01950000 *02* REGISTER-CONVENTIONS = SEE REGISTER EQUATES 02000000 * 02050000 *02* PATCH-LABEL = ICATCH A DC STATEMENT 02100000 * 02150000 *01* MODULE-TYPE = MODULE 02200000 * 02250000 *02* PROCESSOR = ASSEMF-370R 02300000 * 02350000 *02* MODULE-SIZE = X'41B' BYTES 02400000 * 02450000 *02* ATTRIBUTES = REENTERABLE 02500000 * 02550000 *01* ENTRY-POINT = IEECVET4 02600000 * 02650000 *02* PURPOSE = THIS IS THE ONLY ENTRY POINT TO PERFORM ALL FUNCTIONS 02700000 * 02750000 *02* LINKAGE = BALR 02800000 * 02850000 *02* INPUT = REGISTER 1 ADDRESSES THE CXSA 02900000 * SEE ALSO CONTROL BLOCKS USAGE 02950000 * 03000000 *02* OUTPUT = REGISTER 1 ADDRESSES THE CXSA 03050000 * SEE ALSO CONTROL BLOCKS USAGE AND EXITS 03100000 * 03150000 *02* EXIT-NORMAL = IEECVETC - ASYNCHRONOUS ERROR ROUTINE 03200000 * AFTER HANDLING A CANCEL DURING ASYNCHRONOUS ERROR PROCESSING. 03250000 * 03300000 *02* EXIT-NORMAL = IEECVET8 - DELETE ROUTINE 3 03350000 * 03400000 *02* EXIT-NORMAL = IEECVET9 - DELETE ROUTINE 4 03450000 * 03500000 *02* EXIT-NORMAL = IEECVET1 - PROCESSOR ROUTINE 03550000 * 03600000 *02* EXIT-ERROR = IEECVETE - MESSAGE ROUTINE 2 03650000 * 03700000 *01* EXTERNAL-REFERENCES = NONE 03750000 * 03800000 *02* ROUTINES = FREELOCK SUBROUTINE - DEFINED IN IEECVET1, AND 03850000 * ADDRESSED BY WORD CSAXC OF THE CXSA ON ENTRY. 03900000 * 03950000 *02* DATA-SETS = NONE 04000000 * 04050000 *02* DATA-AREA = NONE 04100000 * 04150000 *02* CONTROL-BLOCKS = CXSA,UCM,WQE,CQE,RDCM,TDCM 04200000 * 04250000 *01* TABLES = NONE 04300000 * 04350000 *01* MACROS = EXECUTABLE - WTO, E-FORM 04400000 * MAPPING - IHACTM CXSA DSECT 04450000 * IEECUCM UCM DSECT 04500000 * IEERDCM RESIDENT DCM DSECT 04550000 * IEETDCM PAGEABLE DCM DSECT 04600000 * IEFUCBOB UCB DSECT 04650000 * IHAORE OPERATOR REQUEST ELEMENT DSECT 04700000 * IHAWQE WQE DSECT 04750000 * 04800000 *02* ROUTINES = FREELOCK SUBROUTINE - DEFINED IN IEECVET1, AND 04850000 * ADDRESSED BY WORD CSAXC OF THE CXSA ON ENTRY. 04900000 * 04950000 **** END OF SPECIFICATIONS *******************************************/ 05000000 TITLE 'IEECVET4 COMMAND ' 05050000 IEECVET4 CSECT 05100000 *A136100,136200,136300 MH Y02446 05150000 *C136000,136500 MH Y02446 05200000 *********************************************************************** 05250000 * REGISTER EQUATES 05300000 *********************************************************************** 05350000 * 05400000 XFBRANCH EQU 15 BRANCH EXIT TO OTHER ROUTINES 05450000 XFQUOTEN EQU 15 ODD REG FOR DIVISION 05500000 XELEN EQU 14 05550000 XERTRN EQU 14 RETURN BRANCH REG 05600000 XEREMAIN EQU 14 EVEN REG FOR DIVISION 05650000 XDWORK EQU 13 05700000 XCPBASE EQU 12 PROGRAM BASE REG 05750000 XBTDCM EQU 11 PAGEABLE DCM BASE REG 05800000 XARDCM EQU 10 RESIDENT DCM BASE REG 05850000 X9SCNSRT EQU 9 05900000 X9UCM EQU 9 UCM BASE REG 05950000 X8UCME EQU 8 UCM ENTRY BASE REG 06000000 X7WQE EQU 7 WQE BASE 06050000 X6ORE EQU 6 ORE BASE 06100000 X5SCT EQU 5 SCT ENTRY POINTER 06150000 X4MSG EQU 4 MESSAGE AREA TEXT POINTER 06200000 X3END EQU 3 END OF COMMAND 06250000 X2START EQU 2 START OF COMMAND 06300000 X2WORK EQU 2 WORK REG 06350000 X1PARM EQU 1 CXSA ADDRESS ON ENTRY AND EXIT 06400000 X0 EQU 0 06450000 X0WORK EQU 0 06500000 *********************************************************************** 06550000 * INITIALIZE PROGRAM 06600000 *********************************************************************** 06650000 BALR XCPBASE,N0 LOAD PROGRAM BASE REGISTER 06700000 USING *,XCPBASE ESTABLISH PROG ADDRESSABILITY 06750000 B BEGIN BRANCH AROUND PATCH AREA 06800000 ICATCH DC CL72'IEECVET4' EYECATCHER AND FIELD MAINTENANCE 06850000 BEGIN EQU * END OF PATCH AREA 06900000 USING CXSA,X1PARM ESTABLISH CXSA ADDRESSABILITY 06950000 USING UCMLIST,X8UCME ESTABLISH UCMENTRY ADDRESSABILITY 07000000 USING UCM,X9UCM ESTABLISH UCM ADDRESSABILITY 07050000 USING DCMTSRT,XARDCM ESTABLISH R DCM ADDRESSABILITY 07100000 USING DCMSTRT,XBTDCM ESTABLISH DCM ADDRESS 07150000 L X8UCME,CSAUCM UCM ENTRY BASE 07200000 L X9UCM,CSACTLM UCM BASE 07250000 L XARDCM,UCMXB RESIDENT DCM BASE 07300000 L XBTDCM,DCMADTRN PAGEABLE DCM BASE 07350000 MVC DCMTRACE(DCMTRLEN),DCMTRAC2 SHIFT OLD TRACE ENTRIES 07400000 MVI DCMTREN1,ID1 PUT CSECT ID INTO 07450000 MVI DCMTREN2,ID2 NEW TRACE ENTRY 07500000 L XFBRANCH,CSAXC ADDRESS FREELOCK SUBROUTINE 07550000 BALR XERTRN,XFBRANCH RELEASE LOCKS 07600000 NI DCMCOM3,N255-DCMVLPFK TURN OFF PFK VERIFY BIT S21003 07650000 TM DCMCOM1,DCMCANCL Q. PERFORM A CANCEL 07700000 BNO ENTRY NO, ASSUME COMMAND ENTRY 07750000 NI DCMCOM1,N255-DCMCANCL TURN OFF CANCEL FLAG 07800000 TM DCMR3FLG,DCMRXSCN IS THIS CANCEL AFTER ASYN ERR 07850000 BNO NOTASYNC NO 07900000 NI DCMR2FLG,N255-DCMRXSFL NO SCREEN FULL IN R-DCM S21003 07950000 NOTASYNC EQU * 08000000 L X4MSG,DCMASCRN FIRST MESSAGE ADDRESS 08050000 L X5SCT,DCMAMTAB SCT ADDRESS 08100000 TM DCMDSTAT,DCMDSTNH MSG NUMBERS HELD MG M2097 08150000 BO CANLOOP YES, LEAVE NUMBERS MG M2097 08200000 NI DCMDSTAT,N255-DCMDSTNM SET OFF NMBERING FLAG MG M2097 08250000 CANLOOP EQU * 08300000 TM N0(X5SCT),DCMMSGIN MESSAGE IN THIS LINE 08350000 BNO CANSUBR NO, LEAVE LOOP 08400000 NI N0(X5SCT),N255-DCMMSGRD TURN OF REMOVE MSG FLAG 08450000 TM DCMDSTAT,DCMDSTNH NUMBERS HELD 08500000 BO SKIPNUMR YES, DON'T BLANK NUMBER 08550000 MVC N0(N2,X4MSG),CBLANK NO, BLANK NUMBER 08600000 NI DCMDSTAT,N255-DCMDSTNM TURN OFF NUMBERING FLAG 08650000 SKIPNUMR EQU * 08700000 MVI N2(X4MSG),BLANK BLANK POSITION 3 08750000 TM N1(X5SCT),DCMMSGAC ACTION MESSAGE 08800000 BNO CANIF NO 08850000 SPACE 5 08900000 *********************************************************************** 08950000 * OS/370R OPTION 1 AND 2 SECURITY CODE 09000000 *********************************************************************** 09050000 TM N1(X5SCT),DCMMSGPP PROP. PROG. ACTION MSG 09100000 BNO SYSAST NO PUT ASTERISK 09150000 MVI N3(X4MSG),PPACT SET AT SIGN FOR PP ACTION 09200000 B CANIF NEXT CHECK 09250000 SYSAST EQU * 09300000 *********************************************************************** 09350000 SPACE 5 09400000 MVI N3(X4MSG),ASTER YES, MARK WITH ASTERISK 09450000 CANIF EQU * 09500000 TM N0(X5SCT),DCMMSGIF INFORMATIONAL MESSAGE 09550000 BNO CANAUTO NO 09600000 MVI N2(X4MSG),ISDASH YES, MARK WITH DASH 09650000 CANAUTO EQU * 09700000 TM N0(X5SCT),DCMMSGAD MESSAGE AUTO DELETABLE 09750000 BNO CANLOOP2 NO 09800000 MVI N2(X4MSG),SLASH YES, MARK WITH VERTICAL BAR 09850000 CANLOOP2 EQU * 09900000 AH X4MSG,DCMCORLN BUMP TO NEXT LINE MB YM4360 09950000 AH X5SCT,DCMSCTCN AND NEXT SCT ENTRY MB YM4360 10000000 C X5SCT,DCMADDRL CHECK FOR END MB YM4360 10050000 BNH CANLOOP FLAG UNTIL END MB YM4360 10100000 CANSUBR EQU * 10150000 OI DCMIOCM1,DCMWRMSG+DCMWRINS+DCMWRWRN SET WRITE MB YM4360 10200000 MVI DCMLINEN,N1 START WRITE ON LINE ONE 10250000 MVI DCMRQDEL,BLANK BLANK THE MB YM4360 10300000 MVC DCMRQDEL+N1(N7),DCMRQDEL DELETE REQUEST BUFFER MB YM4360 10350000 TM DCMCOM1,DCMCANCL INTERNAL REQUEST MB YM4360 10400000 BNO CANLP NO, CHECK LP DELETE MB YM4360 10450000 NI DCMCOM1,N255-DCMCANCL TURN OFF CANCEL REQUEST MB YM4360 10500000 B SVC34 CONTINUE CMD PROCESSING MB YM4360 10550000 CANLP EQU * MB YM4360 10600000 TM DCMCOM1,DCMLPENT WAS ERASE ENTERED WITH LP 10650000 BNO CANCURS NO 10700000 NI DCMCOM1,N255-DCMLPENT YES, DON'T WRITE ENTRY AREA 10750000 B INSRT EXIT 10800000 CANCURS EQU * 10850000 * WRITE MESSAGE AREA TO OUT-OF- 10900000 * LINE MESSAGE,INSERT CURSOR, 10950000 * REINITIALIZE + SHIFT INSTRUCT 11000000 * LINE, BLANK ENTRY AREA 11050000 OI DCMIOCM1,DCMWRMSG+DCMWRINS+DCMWRENT+DCMINSC+DCMWRWRN 11100000 INSRT EQU * 11150000 OI DCMIOCM2,DCMBLENT MH Y02446 11200000 TM DCMIOCM3,DCMRTPFK IS PFK PROCESSING MH Y02446 11250000 BO SKIPINLN YES, SKIP INST. LINE MH Y02446 11300000 OI DCMIOCM2,DCMINSSH INIT. INST. LINE MH Y02446 11350000 SKIPINLN MVI DCMCULNO,N1 CURSOR POSITION MH Y02446 11400000 MVI DCMPOSCU,N1 POSITION 1 OF DCMENTRY 11450000 TM DCMTIMES,DCMTASYN ASYNCHRONOUS ERROR MSG UP 11500000 BNO IOEXIT NO, WRITE SCREEN 11550000 L XFBRANCH,DCMNERRO LOAD ASYNCH ERR ADDRESS 11600000 L X1PARM,DCMCXSVE RESTORE CXSA ADDRESS 11650000 BR XFBRANCH EXIT TO IEECVETC 11700000 EJECT 11750000 ENTRY EQU * 11800000 L X2START,DCMAENTR GET PTR TO ENTRY AREA 11850000 CLI DCMIONDX,NDX2260 INPUT DEVICE A 2260 11900000 BNE NORMTRAN NO, JUST TRANSLATE FIRST *11950000 QUADRANT CHARACTERS TO BLANKS 12000000 TR N0(N127,X2START),TAB2260 TRANSLATE OUT ANY 2260 *12050000 SPECIAL CHARACTERS AS WELL 12100000 B TSTLNG CHECK COMMAND LENGTH 12150000 NORMTRAN TR N0(N127,X2START),TRTAB TRANSLATE 12200000 TSTLNG CLI N126(X2START),BLANK CHAR 127 A BLANK 12250000 BE LNGTHOK YES, INPUT LENGTH OK 12300000 OI DCMCMSG1,DCMELONG INDICATE LENGTH TOO LONG 12350000 L XFBRANCH,DCMNMSG2 LOAD MESSAGE 2 ADDRESS 12400000 L X1PARM,DCMCXSVE RESTORE CXSA ADDRESS 12450000 BR XFBRANCH EXIT TO IEECVETE 12500000 LNGTHOK EQU * 12550000 L X2START,DCMAENTR LOCATE START OF AREA 12600000 LA X3END,N125(X2START) SET END POINTER 12650000 FIND1 CLI N0(X2START),BLANK IS THERE A LEADING BLANK 12700000 BNE FINDEND NO, START OF COMMAND IS FOUND 12750000 LA X2START,N1(X2START) POINT TO NEXT CHARACTER 12800000 B FIND1 CONTINUE SCAN FOR START 12850000 FINDEND EQU * 12900000 CLI N0(X3END),BLANK IS THERE A TRAILING BLANK 12950000 BNE COMPLENG NO, END OF COMMAND IS FOUND 13000000 BCT X3END,FINDEND BACK UP ONE, AND CONTINUE 13050000 COMPLENG EQU * 13100000 LR XELEN,X3END LAST BYTE OF COMMAND 13150000 SR XELEN,X2START ZERO ORIGIN LENGTH OF COMMAND 13200000 BM BLENT LENGTH ZERO, DONE. MB YM4360 13250000 MVI DCMINPUT,BLANK INITIALIZE INPUT AREA 13300000 MVC DCMINPUT+N1(N125),DCMINPUT WITH BLANKS 13350000 EX XELEN,CMDMOVE MOVE COMMAND TO INPUT AREA 13400000 LA X3END,DCMINPUT(XELEN) POINT TO LAST CHARACTER 13450000 LA XDWORK,N5(XELEN) LENGTH FOR SVC'S 13500000 ST XDWORK,DCMDSAV SAVE IT 13550000 STH XDWORK,DCMINLGN PLACE IT IN PARM LIST 13600000 LA XDWORK,DCMINPUT START OPERAND SCAN 13650000 ENDVERB LA XDWORK,N1(XDWORK) LOCATE NEXT CHARACTER 13700000 CR XDWORK,X3END PAST THE END OF THE COMMAND 13750000 BL NOTEND NO, CHECK FOR END OF VERB 13800000 LA XDWORK,N1(XDWORK) NO OPERAND TO BE FOUND 13850000 B CMDCHECK CHECK FOR K OR R 13900000 NOTEND CLI N0(XDWORK),BLANK END OF COMMAND VERB 13950000 BNE ENDVERB NO KEEP LOOKING FOR END 14000000 STARTOP LA XDWORK,N1(XDWORK) TRY NEXT CHARACTER 14050000 CLI N0(XDWORK),BLANK START OF OPERAND 14100000 BE STARTOP NO,SCAN OVER ANOTHER BLANK 14150000 ST XDWORK,DCMADOPN SAVE OPERAND ADDRESS 14200000 CMDCHECK EQU * 14250000 MVI DCMPACK,BLANK BLANK AN EIGHT BYTE AREA 14300000 MVC DCMPACK+N1(N7),DCMPACK FOR INSPECTING THE COMMAND 14350000 OC DCMPACK(N8),DCMINPUT VERB IN UPPER CASE 14400000 CLC DCMPACK(N2),K IS VERB K 14450000 BE PROC1 YES, CHECK FOR DELETE VERIFICATION 14500000 CLC DCMPACK(N8),CONTROL IS VERB CONTROL 14550000 BE PROC1 YES, CHECK FOR DELETE VERIFICATION 14600000 CLC DCMPACK(N3),MR IS VERB MR MB YM4360 14650000 BE SVC34 YES, SKIP WTO FOR COMMAND MB YM4360 14700000 CLC DCMPACK(N6),MSGRT IS VERB MSGRT MB YM4360 14750000 BE SVC34 YES, SKIP WTO FOR COMMAND MB YM4360 14800000 CLC DCMPACK(N2),R IS VERB R 14850000 BE RPYNUM YES, CHECK REPLY ID 14900000 CLC DCMPACK(N6),REPLY IS VERB REPLY 14950000 BE RPYNUM YES, CHECK REPLY ID 15000000 LA XDWORK,DCMINPUT RESET OPERAND PTR TO START OF VERB 15050000 B NUMSTART SEE IF COMMAND STARTS WITH REPLY ID 15100000 * THE FOLLOWING CODE CATCHES K 15150000 * BY ITSELF OR K FOR VERIFICATION OF 15200000 * A DELETE REQUEST. IF FOUND, 15250000 * SVC 34 IS NOT ISSUED. INSTEAD 15300000 * THE APPROPRIATE DIDOCS MODULE 15350000 * IS GIVEN CONTROL. 15400000 * NOTE: THIS CODE WILL HAVE TO BE 15450000 * REMOVED IF IT BECOMES POSSIBLE 15500000 * TO ROUTE THESE COMMANDS. 15550000 * XDWORK HAS ADDR OF FIRST CHARACTER 15600000 * OF THE K COMMAND OPERAND 15650000 PROC1 EQU * 15700000 L X2START,DCMAENTR ADDRESS START OF ENTRY AREA 15750000 MVI N0(X2START),BLANK MOVE BLANKS INTO ENTRY AREA 15800000 MVC N1(N126,X2START),N0(X2START) FOR 127 BYTES 15850000 OC N0(N126,X2START),DCMINPUT TRANSLATE COMMAND THERE 15900000 CLI N0(XDWORK),BLANK BLANK OPERAND 15950000 BNZ VERIFY NO, CHECK FOR DELETE VERIFICATION 16000000 LA X2START,DCMINPUT GET INPUT AREA PTR @ZA11437 16010000 SR XDWORK,X2START COMPUTE OPERAND DISP @ZA11437 16020000 A XDWORK,DCMAENTR INDEX INTO ENTRY AREA @ZA11437 16030000 ST XDWORK,DCMADOPN SAVE PTR TO OP IN ENTRY AREA@ZA11437 16040000 L XFBRANCH,DCMNDEL3 LOAD DELETE 3 ADDRESS 16050000 L X1PARM,DCMCXSVE RESTORE CXSA ADDRESS 16100000 BR XFBRANCH EXIT TO IEECVET8 16150000 VERIFY EQU * CHECK DELETE REQUEST VERIFICATION MB YM4360 16200000 CLI DCMCON,Y CONVERSATIONAL DELETE MODE MB YM4360 16250000 BNE SVC34 NO, ISSUE THE COMMAND MB YM4360 16300000 CLI DCMRQDEL,BLANK BLANK BUFFER MB YM4360 16350000 BE SVC34 YES, NO NEED TO CHECK MB YM4360 16400000 SR X3END,XDWORK GET OPERAND LENGTH MINUS 1 MB YM4360 16450000 LA X3END,N1(X3END) COMPARE FOR 1 MORE 16500000 EX X3END,VERCOMP COMPARE OPERAND WITH DELETE REQUEST *16550000 BUFFER IN THE RESIDENT DCM 16600000 BNE NOVERIFY NOT SUCCESSFUL VERIFIY MB YM4360 16650000 L XFBRANCH,DCMNDEL4 LOAD DELETE 4 ADDRESS 16700000 L X1PARM,DCMCXSVE RESTORE CXSA ADDRESS 16750000 BR XFBRANCH EXIT TO IEECVET9 16800000 NOVERIFY EQU * A 'K' COMMAND HAS BEEN RECEIVED THAT FAILS TO 16850000 * VERIFY A DELETE REQUEST. PERFORM A CANCEL FUNCTION 16900000 * IMMEDIATELY THEN COMPLETE COMMAND PROCESSING 16950000 * AT LABEL 'SVC34'. MB YM4360 17000000 OI DCMCOM1,DCMCANCL INDICATE INTERNAL ET4 CALL MB YM4360 17050000 B NOTASYNC PERFORM CANCEL LOGIC MB YM4360 17100000 RPYNUM CLI N0(XDWORK),BLANK REPLY WITH NO OPERANDS 17150000 BZ SVC35 NO OPERANDS, NO WTOR REPLY 17200000 NUMSTART EQU * 17250000 TM N0(XDWORK),F0 FIRST CHARACTER NUMERIC 17300000 BNO SVC35 NO, CANT CHECK REPLY ID 17350000 MVI DCMPACK,F0 INITIALIZE TENS DIGIT TO 0 17400000 TM N1(XDWORK),F0 IS THERE A SECOND NUMBER 17450000 BNO ONENUM NO, JUST ONE 17500000 MVC DCMPACK(N1),N0(XDWORK) MOVE FIRST IN AS TENS DIGIT 17550000 LA XDWORK,N1(XDWORK) POINT TO UNITS DIGIT 17600000 ONENUM EQU * 17650000 MVC DCMPACK+N1(N1),N0(XDWORK) MOVE UNITS DIGIT 17700000 L X6ORE,UCMRPYQ BASE FIRST ORE 17750000 USING OREF,X6ORE 17800000 LASTORE LTR X6ORE,X6ORE ZERO ADDRESS 17850000 BZ SVC35 END OF REPLY Q, NOT FOUND 17900000 TM OREXC,OREBUFB VALID ORE 17950000 BNO NEXTORE NO, LOOK AT NEXT ONE 18000000 CLC DCMPACK(N2),OREID REPLY ID'S MATCH 18050000 BNE NEXTORE NO, LOOK AT NEXT ONE 18100000 L X7WQE,OREWQE BASE WQE FOR THIS WTOR 18150000 USING WQE,X7WQE ESTABLISH ADDRESSABILITY 18200000 TM WQEROUT2,WQEROUTI SYSTEM SECURITY ROUT CODE 18250000 BNO SVC35 NO, DONT SUPPRESS TEXT 18300000 LA X1PARM,DCMINLGN START OF PARAMETER AREA 18350000 MVC N1(L'SUPPRESS,XDWORK),SUPPRESS SUPRESS TEXT OF REPLY 18400000 SR XDWORK,X1PARM GET LENGTH TO END OF REPLY ID 18450000 LA XDWORK,L'SUPPRESS+N1(XDWORK) CALCULATE NEW LENGTH 18500000 STH XDWORK,DCMINLGN SET UP ADJUSTED COMMAND LENGTH 18550000 B SVC35 WRITE THE REPLY COMMAND 18600000 NEXTORE L X6ORE,ORELKP BASE NEXT ORE 18650000 B LASTORE CONTINUE SEARCH 18700000 SVC35 EQU * 18750000 MVI DCMMCSFL,WQEMCSB+WQEMCSH QUEUE BY REG 0 18800000 MVI DCMMCSFL+N1,WQEMCSN BYPASS HARDCOPY 18850000 LA X1PARM,DCMINLGN ADDRESS PARAMETER LIST 18900000 SR X0,X0 CLEAR REG ZERO MG M2097 18950000 IC X0,UCMID GET UCMID MG M2097 19000000 SVC N35 ISSUE SVC MG M2097 19050000 SVC34 EQU * 19100000 L X1PARM,DCMDSAV GET THE LENGTH FOR SVC 34 19150000 STH X1PARM,DCMINLGN STORE LENGTH 19200000 EX XELEN,CMDMOVE MOVE COMMAND *19250000 TO BE ISSUED AS TYPED BY THE OPERATOR 19300000 LA X1PARM,DCMINLGN POINT TO INPUT 19350000 SR X0,X0 CLEAR REG ZERO 19400000 IC X0,UCMID GET UCMID 19450000 MVI DCMSVC34,N0 ZERO OUT COMM. FLAGS FOR USE 19500000 * BY SVC 34 AND K COMMAND 19550000 XC DCMMCSFL(N2),DCMMCSFL ZERO MCS FLAGS 19600000 SVC N34 ISSUE SVC 34 19650000 TM DCMSVC34,DCMMYCMD VALID K COMMAND TO THIS CONS. 19700000 BO FORCOM YES, DOES THIS ROUTINE DO IT 19750000 TM DCMSVC34,DCMINVLD INVALID K COMMAND 19800000 BO KCURSCMP COMPUTE CURSOR POSITION 19850000 BLENT EQU * 19900000 OI DCMIOCM1,DCMWRENT+DCMWRINS+DCMINSC TURN ON WRITE BITS 19950000 B INSRT COMPUTE CURS POS AND EXIT 20000000 FORCOM EQU * 20050000 LA X1PARM,DCMINLGN GET POINTER TO PARAMETER LIST 20100000 TM DCMSVC34,DCMTYPE1 POINT ADOPN TO ENTRY AREA 20150000 BO FORCOM1 YES 20200000 ST X1PARM,DCMADKP STORE PTR IN RESIDENT DCM 20250000 B BLENT BLANK ENTRY AREA 20300000 FORCOM1 EQU * 20350000 USING KMOD,X1PARM BASE KPARAM LIST 20400000 L XDWORK,DCMADOPN GET OPERAND POINTER 20450000 LA X2START,DCMINPUT GET INPUT AREA PTR 20500000 SR XDWORK,X2START COMPUTE OPERAND DISPLACEMENT 20550000 A XDWORK,DCMAENTR INDEX INTO ENTRY AREA 20600000 ST XDWORK,DCMADOPN SAVE PTR TO OP IN ENTRY AREA 20650000 CLC KMOD(N4),DCMNCMD1 IS K COMMAND DONE HERE 20700000 BE CHECKOPR YES, CHECK OPERAND 20750000 L XFBRANCH,KMOD ADDRESS ROUTINE TO HANDLE COMMAND 20800000 L X1PARM,DCMCXSVE RESTORE CXSA ADDRESS 20850000 BR XFBRANCH 20900000 DROP X1PARM 20950000 CHECKOPR EQU * XDWORK POINTS TO FIRST OPERAND CHAR 21000000 CLC N0(N3,XDWORK),EN K E,N 21050000 BE ERASNUM YES, ERASE NUMBERS 21100000 L XFBRANCH,DCMNPROC LOAD PROCESSOR ROUTINE ADDRESS 21150000 L X1PARM,DCMCXSVE RESTORE CXSA ADDRESS 21200000 BR XFBRANCH EXIT TO IEECVET1 21250000 CURSCOMP EQU * 21300000 L XDWORK,DCMAENTR START OF COMMAND 21350000 L XELEN,DCMADOPN GET OPERAND DISPLACEMENT 21400000 SR XELEN,XDWORK 21450000 CURSCOM1 EQU * 21500000 * INSERT CURSOR, WRITE ENTRY 21550000 * AREA, WRITE INSTRUCTION LINE, 21600000 * WRITE WARNING LINE. 21650000 OI DCMIOCM1,DCMINSC+DCMWRINS+DCMWRENT+DCMWRWRN 21700000 CH XELEN,DCMLGNTH OPERAND IN SECOND LINE 21750000 BNL LINE2 YES DISPLACEMENT OF OPERAND @ZA18576 21800000 MVI DCMCULNO,N1 SET LINE NUMBER (IN ENTRY AREA) TO 1 21850000 STCURS EQU * 21900000 LA XELEN,N1(XELEN) ADD ONE TO LENGTH 21950000 STC XELEN,DCMPOSCU STORE CURSOR POSITION 22000000 L X1PARM,DCMCXSVE RESTORE CXSA ADDRESS 22050000 BR XFBRANCH EXIT ADDRESS ALREADY SET 22100000 LINE2 EQU * 22150000 MVI DCMCULNO,N2 SET LINE NUMBER (IN ENTRY AREA) TO 2 22200000 SH XELEN,DCMLGNTH GET CURSOR POSITION ON LINE 2 OF 22250000 B STCURS ENTRY AREA AND STORE IT 22300000 KCURSCMP EQU * 22350000 LH XELEN,DCMINLGN POINT TO BAD OPERAND IN ENTRY 22400000 * AREA BASED ON DISPLACEMENT IN 22450000 * K LIST FROM SVC 34 22500000 NI DCMR3FLG,N255-DCMRXSCN TURN OFF ASYNC ERROR FLG 22550000 L XFBRANCH,DCMIORTN LOAD IO ROUTINE ADDRESS 22600000 * FOR EXIT TO IEECVET(H,P,R, OR U) 22650000 B CURSCOM1 STORE CURSOR POSITION 22700000 ERASNUM EQU * 22750000 TM DCMDSTAT,DCMDSTNM Q. ARE MESSAGES NUMBERED 22800000 BNO ERRORNDL NO, ERROR- NO DELET MSGS 22850000 * YES, ERASE NUMBERS 22900000 NUMERAS EQU * 22950000 NI DCMDSTAT,N255-DCMDSTNM-DCMDSTNH TURN OFF NUMBER FLAGS 23000000 L X2START,DCMASCRN GET ADDR OF FIRST MESSAGE LINE 23050000 LH XELEN,DCMMSGAL GET NUMBER OR LINES IN MESSAGE AREA 23100000 REMVNUM EQU * 23150000 MVC N0(N2,X2START),CBLANK BLANK NUMBERS 23200000 AH X2START,DCMCORLN INCRE TO NEXT LINE M1517 23250000 BCT XELEN,REMVNUM LOOP UNTIL ALL NUMBERS ARE BLANKED 23300000 B CANSUBR SET UP FOR WRITE 23350000 ERRORNDL EQU * 23400000 OI DCMCMSG2,DCMDELRI REQUEST INCONSISTENT MESSAGE 23450000 L XFBRANCH,DCMNMSG2 LOAD MESSAGE 2 ADDRESS 23500000 * FOR EXIT TO IEECVETE 23550000 B CURSCOMP POSITION CURSOR 23600000 IOEXIT EQU * 23650000 NI DCMR3FLG,N255-DCMRXSCN TURN OFF ASYNC ERROR INDICATOR 23700000 L XFBRANCH,DCMIORTN LOAD IO ROUTINE ADDRESS 23750000 L X1PARM,DCMCXSVE RESTORE CXSA ADDRESS 23800000 BR XFBRANCH EXIT TO IEECVET(H,P,R, OR U) 23850000 VERCOMP CLC DCMRQDEL(N0),N0(XDWORK) 23900000 CMDMOVE MVC DCMINPUT(N0),N0(X2START) 23950000 EJECT 24000000 *********************************************************************** 24050000 * 24100000 * CONSTANTS 24150000 * 24200000 *********************************************************************** 24250000 TAB2260 EQU * 24300000 DC 64C' ' 24350000 DC X'40414243444546474849404B4C4D4E4F' BLANK X'4A' 24400000 DC X'505152535455565758595A5B5C5D5E5F' 24450000 DC X'60616263646566676869406B6C6D6E6F' BLANK X'6A' 24500000 DC X'707172737475767778797A7B7C7D7E7F' 24550000 DC X'808182838485868788898A8B8C8D8E8F' 24600000 DC X'909192939495969798999A9B9C9D9E9F' 24650000 DC X'A0A1A2A3A4A5A6A7A8A9AAABACADAEAF' 24700000 DC X'B0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF' 24750000 DC X'C0C1C2C3C4C5C6C7C8C9CACBCCCDCECF' 24800000 DC X'D0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF' 24850000 DC X'E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF' 24900000 DC X'F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF' 24950000 TRTAB EQU * 25000000 DC 64C' ' 25050000 DC X'404142434445464748494A4B4C4D4E4F' 25100000 DC X'505152535455565758595A5B5C5D5E5F' 25150000 DC X'606162636465666768696A6B6C6D6E6F' 25200000 DC X'707172737475767778797A7B7C7D7E7F' 25250000 DC X'808182838485868788898A8B8C8D8E8F' 25300000 DC X'909192939495969798999A9B9C9D9E9F' 25350000 DC X'A0A1A2A3A4A5A6A7A8A9AAABACADAEAF' 25400000 DC X'B0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF' 25450000 DC X'C0C1C2C3C4C5C6C7C8C9CACBCCCDCECF' 25500000 DC X'D0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF' 25550000 DC X'E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF' 25600000 DC X'F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF' 25650000 H4 DC H'4' CONSTANT 25700000 EN DC C'E,N' COMPARAND FOR K E,N 25750000 CONTROL DC C'CONTROL ' COMPARAND FOR CONTROL VERB 25800000 K DC C'K ' COMPARAND FOR K VERB 25850000 R DC C'R ' COMPARAND FOR R VERB 25900000 REPLY DC C'REPLY ' COMPARAND FOR REPLY VERB 25950000 MR DC C'MR ' COMPARAND FOR MR VERB 26000000 MSGRT DC C'MSGRT' COMPARAND FOR MSGRT VERB 26050000 SUPPRESS DC C' SUPPRESSED' 26100000 CBLANK DC C' ' BLANK CHARACTERS 26150000 *********************************************************************** 26200000 * 26250000 * EQUATES 26300000 * 26350000 *********************************************************************** 26400000 ID1 EQU C'E' 1ST CHARACTER OF CSECT ID 26450000 ID2 EQU C'4' 2ND CHARACTER OF CSECT ID 26500000 N0 EQU 0 FIELD INCREMENT 26550000 N1 EQU 1 FIELD INCREMENT 26600000 N2 EQU 2 FIELD INCREMENT 26650000 N3 EQU 3 FIELD INCREMENT 26700000 N4 EQU 4 FIELD INCREMENT 26750000 N5 EQU 5 FIELD INCREMENT 26800000 N6 EQU 6 FIELD INCREMENT 26850000 N7 EQU 7 FIELD INCREMENT 26900000 N8 EQU 8 FIELD INCREMENT 26950000 N34 EQU 34 FIELD INCREMENT 27000000 N35 EQU 35 FIELD INCREMENT 27050000 N56 EQU 56 FIELD INCREMENT 27100000 N57 EQU 57 FIELD INCREMENT 27150000 N125 EQU 125 FIELD INCREMENT 27200000 N126 EQU 126 FIELD INCREMENT 27250000 N127 EQU 127 FIELD INCREMENT 27300000 N255 EQU 255 FIELD INCREMENT 27350000 ISDASH EQU C'-' DASH 27400000 SLASH EQU C'|' SLASH 27450000 ASTER EQU C'*' ASTERISK 27500000 BLANK EQU C' ' BLANK 27550000 NDX2260 EQU 12 DCMIONDX VALUE FOR 2260 27600000 PPACT EQU C'@' SIGN FOR PP ACTION 27650000 F0 EQU C'0' 27700000 Y EQU C'Y' CON=Y OPTION COMPARE MB YM4360 27750000 EJECT 27800000 *********************************************************************** 27850000 * 27900000 * DSECTS 27950000 * 28000000 *********************************************************************** 28050000 SPACE 28100000 IHAORE 28150000 EJECT 28200000 UCBBLK DSECT 28250000 IEFUCBOB 28300000 EJECT 28350000 IEERDCM 28400000 EJECT 28450000 IEETDCM 28500000 EJECT 28550000 IHAWQE DSECT=YES 28600000 EJECT 28650000 IHACTM CXSA 28700000 EJECT 28750000 IEECVMAP KPARAM 28800000 EJECT 28850000 IEECUCM FORMAT=NEW 28900000 END 28950000