ibm:vm370-lib:cp:dmkdib.assemble_hst
Table of Contents
DMKDIB History
References
- Fixes Applied : 11
- Latest Source Date : Thursday, December 7, 1978
- Last Fix ID : [HRC071DK]
Update History
CMS File Input : DMKDIB ASSEMBLE
Date : 12/7/1978 5:02:00 PM
VM Context : MAINT(394)
File Name : DMKDIB.ASSEMBLE.Z1.txt
Modified : 1/16/2021 7:31:45 AM
Created : 1/16/2021 7:31:45 AM
Update Order
- R09957DK - CORRECT IOBLOK CONFLICT IN MSS SUPPORT
- R09176DK 606 CORRECT STATUS ON A NOT YET DIALED 3277
- R09186DK 608 CORRECT STATUS ON A NOT YET DIALED 3277
- R10350DK 609 DMKDIB RETURNS CC=1 ON UNCOUPLED CTCA
- R10844DK 611 UV00775 CORRECT STATUS FOR NO OP CCW TO CE,DE
- R12941DK 622 UV04884 SYNC ERROR RECOV FOR INTERVENTION REQUIRED COND.
- R13704DK 623 UV04950 SPLIT DMKDIA FOR MAINTAINENCE
- R14572DK 625 UV05704 DO NOT BUILD IOERBLOK FOR UC CC=3 UNCOUPLED CTCA
- R13441DK 627 UV04624 PREVENT DOUBLE FRET OF VMBLOK AFTER I/O ERRORS
- HRC065DK V01 Logical Device Support Facility
- HRC071DK V01 Fix distorted logo after dial drop or CP ENABLE ALL
R09957DK
Date Thursday Jul 12, 1979 09:52:00 AM
Loaded from MAINT(294)
R09957DK: ./ * FORCE RE-ASSEMBLY FOR APAR VM09957 BEGIN APPLY >>> ./ * FORCE RE-ASSEMBLY FOR APAR VM09957 Comment >>> ./ * FORCE RE-ASSEMBLY FOR APAR VM09957 END APPLY >>> ./ * FORCE RE-ASSEMBLY FOR APAR VM09957 Update Succeeded Update Execution Time 8 milliseconds.
R09176DK
Date Friday Nov 02, 1979 11:01:00 AM
Loaded from MAINT(294)
R09176DK: ./ I 1096000 $ 1096100 100 00001000 R09176DK: CLI SAVER2+3,TYP3277 3270 TYPE DEVICE @VA09176 00002000 R09176DK: BNE DIALSAT @VA09176 00003000 R09176DK: TM VDEVFLAG,VDEVDIAL IS THE LINE DIALED @VA09176 00004000 R09176DK: BO DIALSAT @VA09176 00005000 R09176DK: NI SAVEWRK1,X'F3' NO-TURN OFF CE AND DE @VA09176 00006000 BEGIN APPLY >>> ./ I 1096000 $ 1096100 100 00001000 END APPLY >>> ./ I 1096000 $ 1096100 100 00001000 Update Succeeded Update Execution Time 16 milliseconds.
R09186DK
Date Tuesday Jan 08, 1980 06:22:00 AM
Loaded from MAINT(294)
R09186DK: ./ R 1152000 $ 1152100 00001000 R09186DK: MVI 0(R2),X'40' SENSE IR @VA09186 00002000 BEGIN APPLY >>> ./ R 1152000 $ 1152100 00001000 END APPLY >>> ./ R 1152000 $ 1152100 00001000 Update Succeeded Update Execution Time 8 milliseconds.
R10350DK
Date Friday Jan 25, 1980 01:11:00 AM
Loaded from MAINT(294)
R10350DK: ./ I 1095000 $ 1095100 100 00001000 R10350DK: CLI SAVER2+3,TYPCTCA @VA10350 00002000 R10350DK: BNE DIALCC1A @VA10350 00003000 R10350DK: TM VDEVSTAT,VDEVNRDY IS CTCA COUPLED? @VA10350 00004000 R10350DK: BZ DIALCC1A YES @VA10350 00005000 R10350DK: MVI IOBSTAT,IOBCC3 GIVE CC=3 @VA10350 00006000 R10350DK: B DIALSAT @VA10350 00007000 R10350DK: DIALCC1A DS 0H @VA10350 00008000 BEGIN APPLY >>> ./ I 1095000 $ 1095100 100 00001000 END APPLY >>> ./ I 1095000 $ 1095100 100 00001000 Update Succeeded Update Execution Time 8 milliseconds.
R10844DK
Date Monday Apr 14, 1980 04:08:00 AM
Loaded from MAINT(294)
R10844DK: ./ I 1096400 $ 1096430 30 00001000 R10844DK: CLI RCWCOMND,X'03' IS THIS A NO-OP COMMAND @VA10844 00002000 R10844DK: BE DIALSAT @VA10844 00003000 BEGIN APPLY >>> ./ I 1096400 $ 1096430 30 00001000 END APPLY >>> ./ I 1096400 $ 1096430 30 00001000 Update Succeeded Update Execution Time 8 milliseconds.
R12941DK
Date Tuesday Jul 07, 1981 01:31:00 PM
Loaded from MAINT(294)
R12941DK: ./ * BEGIN APPLY >>> ./ * Comment >>> ./ * END APPLY >>> ./ * Update Succeeded Update Execution Time 8 milliseconds.
R13704DK
Date Friday Aug 07, 1981 07:17:00 AM
Loaded from MAINT(294)
R13704DK: ./ R 00014000 $ 14000 200 07/01/81 10:49:45 R13704DK: EXTRN DMKACODV,DMKBLDVM,DMKCFPRD,DMKCVTBD @VA13704 00014000 R13704DK: EXTRN DMKCVTBH,DMKCVTHB,DMKERMSG,DMKRIORN @VA13704 00014200 R13704DK: EXTRN DMKRNHND,DMKSCHRT,DMKSCNAU,DMKSCNFD @VA13704 00014400 R13704DK: EXTRN DMKSCNRD,DMKSCNRN,DMKSCNRU,DMKSCNVD @VA13704 00014600 R13704DK: EXTRN DMKSCNVU,DMKSTKCP,DMKSYSND,DMKVCARS @VA13704 00014800 R13704DK: ./ I 00927000 $ 927100 100 07/01/81 10:49:45 R13704DK: * 00927100 R13704DK: * DMKDIB 00927200 R13704DK: * 00927300 R13704DK: * CONTENTS - 00927400 R13704DK: * 00927500 R13704DK: * DMKDIBDR - DROP A DIALED LINE FROM A VIRTUAL MACHINE @VA13704 00927600 R13704DK: * DMKDIBCP - 'COUPLE' VIRTUAL CHANNEL-TO-CHANNEL ADAPTER@VA13704 00927700 R13704DK: ./ R 00962000 $ 962000 1000 07/01/81 10:49:45 R13704DK: * DMKDIBDR - TO DROP A DIALED LINE @VA13704 00962000 R13704DK: ./ R 00995000 $ 995000 1000 07/01/81 10:49:45 R13704DK: * B. IF CCW IS A DISABLE, CALL DMKDIBDR TO DROP LINE 00995000 R13704DK: ./ R 01163000 $ 1163000 1000 07/01/81 10:49:45 R13704DK: CALL DMKDIBDR DROP THE DIALED LINE @VA13704 01163000 R13704DK: ./ R 01179000 01190000 $ 1179000 1000 07/01/81 10:49:45 R13704DK: *. 01179000 R13704DK: * SUBROUTINE NAME - 01180000 R13704DK: * 01181000 R13704DK: * DMKDIBDR - DROP A DIALED LINE FROM A VIRTUAL SYSTEM @VA13704 01182000 R13704DK: * 01183000 R13704DK: * FUNCTION - 01184000 R13704DK: * 01185000 R13704DK: * TO RELEASE A TERMINAL LINE WHICH HAS BEEN IN USE BY A 01186000 R13704DK: * VIRTUAL SYSTEM VIA THE 'DIAL' COMMAND. THE LINE IS 01187000 R13704DK: * DETACHED FROM THE VIRTUAL SYSTEM AND MADE AVAILABLE FOR 01188000 R13704DK: * NORMAL LOGON TO VM/370. 01189000 R13704DK: * 01190000 R13704DK: * ENTRY POINT - 01191000 R13704DK: * 01192000 R13704DK: * DMKDIBDR @VA13704 01193000 R13704DK: * 01194000 R13704DK: * ENTRY CONDITIONS - 01195000 R13704DK: * 01196000 R13704DK: * GPR 8 = ADDRESS OF VDEVBLOK FOR DIALED LINE 01197000 R13704DK: * GPR 11 = VMBLOK ADDRESS OF DIALED SYSTEM 01198000 R13704DK: * GPR 12 = ADDRESS OF DMKDIBDR @VA13704 01199000 R13704DK: * GPR 13 = ADDRESS OF STANDARD SAVE AREA 01200000 R13704DK: * 01201000 R13704DK: * EXIT CONDITIONS - 01202000 R13704DK: * 01203000 R13704DK: * GPRS 0-15 UNCHANGED 01204000 R13704DK: * THE VDEVBLOK HAS BEEN MARKED NOT ENABLED, NOT DIALED, 01205000 R13704DK: * THE OPERATOR AND THE DIALED USER HAVE BEEN INFORMED 01206000 R13704DK: * OF THE LINE DROP, AND THE TERMINAL LINE IS AVAILABLE 01207000 R13704DK: * FOR VM/370 LOGON OR ANOTHER 'DIAL'. 01208000 R13704DK: * 01209000 R13704DK: * CALLS TO OTHER ROUTINES - 01210000 R13704DK: * 01211000 R13704DK: * DMKACODV - FOR ACCOUNTING OF DEDICATED DEVICES 01212000 R13704DK: * DMKBLDVM - TO BUILD A DUMMY VMBLOK FOR MESSAGES 01213000 R13704DK: * DMKQCNWT - TO TYPE MESSAGES TO THE DIALED USER 01214000 R13704DK: * DMKSCNRD - TO GET THE REAL ADDRESS OF THE TERMINAL 01215000 R13704DK: * DMKSCNVD - TO GET THE VIRTUAL ADDRESS OF THE LINE 01216000 R13704DK: * DMKCVTBH - TO CONVERT THE ADDRESSES TO EBCDIC 01217000 R13704DK: * DMKFREE - TO OBTAIN FREE STORAGE FOR MESSAGE BUFFER 01218000 R13704DK: * DMKFRET - TO RETURN DUMMY VMBLOK TO FREE STORAGE 01219000 R13704DK: * DMKDSPCH - TO WAIT FOR MESSAGE COMPLETION 01220000 R13704DK: * 01221000 R13704DK: * EXTERNAL REFERENCES - 01222000 R13704DK: * 01223000 R13704DK: * DMKSYSND - NUMBER OF DIALED USERS 01224000 R13704DK: * DMKSYSVM - SYSTEM VMBLOK CHAIN ANCHOR 01225000 R13704DK: * 01226000 R13704DK: * TABLES / WORK AREAS 01227000 R13704DK: * 01228000 R13704DK: * VDEVBLOK, RDEVBLOK, VMBLOK 01229000 R13704DK: * 01230000 R13704DK: EJECT 01231000 R13704DK: * REGISTER USAGE - 01232000 R13704DK: * 01233000 R13704DK: * GPR 13 = SAVE-AREA ADDRESSABILITY 01234000 R13704DK: * GPR 12 = MODULE BASE ADDRESSABILITY 01235000 R13704DK: * GPR 11 = VMBLOK ADDRESSABILITY 01236000 R13704DK: * GPR 9 = ADDRESS OF MESSAGE BUFFER 01237000 R13704DK: * GPR 8 = VDEVBLOK, RDEVBLOK ADDRESSES 01238000 R13704DK: * GPR 7 = CONSTANT ZERO 01239000 R13704DK: * GPRS 0-6 ARE WORK REGISTERS 01240000 R13704DK: * 01241000 R13704DK: * OPERATION - 01242000 R13704DK: * 01243000 R13704DK: * DMKDIBDR FIRST CALLS DMKACODV TO HANDLE THE TIME ACCOUT- 01244000 R13704DK: * ING FOR THE TIME THAT THE DIALED LINE WAS DEDICATED TO THE 01245000 R13704DK: * VIRTUAL SYSTEM. NEXT, THE VIRTUAL DEVICE IS DISCONNECTED 01246000 R13704DK: * FROM THE REAL DEVICE AND MARKED NON-ENABLED, NON-DIALED. 01247000 R13704DK: * DMKBLDVM IS CALLED TO BUILD A TEMPORARY VMBLOK ASSOC- 01248000 R13704DK: * IATED WITH THE PREVIOUSLY DIALED TERMINAL LINE, SUCH 01249000 R13704DK: * THAT DMKDIBDR CAN SEND THE 'LINE XXX DROP' MESSAGE TO 01250000 R13704DK: * THE DIALED USER. THE SYSTEM OPERATOR IS ALSO INFORMED OF 01251000 R13704DK: * THE LINE DROP AND THE NUMBER OF DIALED USERS, DMKSYSND, 01252000 R13704DK: * IS UPDATED. AFTER THE USER MESSAGE HAS COMPLETED, THE 01253000 R13704DK: * DUMMY VMBLOK IS REMOVED FROM THE VMBLOK CHAIN AND RETURNED 01254000 R13704DK: * TO FREE STORAGE VIA DMKFRET. EXIT. 01255000 R13704DK: *. 01256000 R13704DK: SPACE 4 01257000 R13704DK: DMKDIBDR RELOC , DROP DIALED LINE FROM VIRTUAL SYSTEM @VA13704 01258000 R13704DK: XC SAVEWRK1(4),SAVEWRK1 CLEAR FLAG BYTE AREA @V240820 01259000 R13704DK: EJECT 01260000 R13704DK: USING VDEVBLOK,R8 01261000 R13704DK: L R6,VDEVREAL POINTER TO RDEVBLOK 01262000 R13704DK: SLR R7,R7 GET A ZERO CONSTANT 01263000 R13704DK: CALL DMKACODV DO DEVICE RELEASE ACCOUNTING 01264000 R13704DK: * NOW START TO UN-DIAL THE LINE 01265000 R13704DK: NI VDEVSTAT,X'FF'-VDEVDED NO LONGER DEDICATED DEVICE 01266000 R13704DK: ST R7,VDEVREAL ... 01267000 R13704DK: NI VDEVFLAG,X'FF'-(VDEVENAB+VDEVDIAL) MARK IT FREE 01268000 R13704DK: CLI VDEVTYPC,CLASGRAF GRAF DEVICE ?? @V200730 01269000 R13704DK: BNE NOGRAF NO,DO NOT MAKE IT @VA09186 01270000 R13704DK: OI VDEVSTAT,VDEVNRDY NOT READY @VA09186 01271000 R13704DK: B NRSET SKIP RESET @VA09186 01272000 R13704DK: NOGRAF EQU * @VA09186 01273000 R13704DK: NI VDEVTYPE,X'F0' LEAVE ONLY ADAPTER TYPE @VA09186 01274000 R13704DK: NRSET LR R8,R6 ...WERE FINISHED WITH VDEVBLOK @VA09186 01275000 R13704DK: SWITCH SWITCH TO MAIN PROCESSOR @V407510 01276000 R13704DK: USING RDEVBLOK,R8 01277000 R13704DK: NI RDEVSTAT,X'FF'-RDEVDED REAL DEVICE NOT DEDICATED 01278000 R13704DK: STH R7,RDEVATT NO VIRTUAL ADDRESS 01279000 R13704DK: TM RDEVFLAG,RDEVEPMD SWITCHED-MODE 370X LINE ? @V240820 01280000 R13704DK: BZ SETUSER NO -- NO SPECIAL HANDLING @V240820 01281000 R13704DK: LH R9,RDEVCYL RESOURCE I.D. OF THE NCP LINE @V240820 01282000 R13704DK: L R7,RDEVCUA BACK UP TO THE CONTROL UNIT @V240820 01283000 R13704DK: USING RCUBLOK,R7 . . . @V240820 01284000 R13704DK: LH R1,RDEVADD DEVICE ADDRESS ALONE @V240820 01285000 R13704DK: SLL R1,1(0) SHIFT FOR INDEX TO RCUDVTBL @V240820 01286000 R13704DK: LA R1,RCUDVTBL(R1) POINT TO RDEVBLOK INDEX SLOT@V240820 01287000 R13704DK: MVC 0(2,R1),FFS DISCONNECT RDEVBLOK FROM RCUBLOK @V240820 01288000 R13704DK: DROP R7 @V240820 01289000 R13704DK: LR R4,R8 SAVE THE DYNAMIC RDEVBLOK ADDRESS@V240820 01290000 R13704DK: LH R1,RDEVBASE ADDRESS OF THE NATIVE SUB-CHANNEL@V240820 01291000 R13704DK: CALL DMKSCNRU GET THE 370X NATIVE BLOCKS @V240820 01292000 R13704DK: L R3,RDEVEPDV DYNAMIC RDEVBLOK CHAIN @V240820 01293000 R13704DK: ST R4,RDEVEPDV ADD RELEASED BLOCK TO THE CHAIN @V240820 01294000 R13704DK: ST R3,RDEVEPDV-RDEVBLOK(,R4) . . . @V240820 01295000 R13704DK: L R2,=A(DMKRIORN) TABLE OF 370X RDEVBLOK'S @V240820 01296000 R13704DK: L R3,0(0,R2) COUNT OF TABLE ENTRIES @V240820 01297000 R13704DK: GETCODE EQU * COMPUTE 370X DEVICE CODE @V240820 01298000 R13704DK: CH R1,6(0,R2) IS THIS THE CORRECT ENTRY ? @V240820 01299000 R13704DK: BE SETCODE YES - BUILD RESOURCE REFERENCE @V240820 01300000 R13704DK: LA R2,4(0,R2) NEXT ENTRY IN TABLE @V240820 01301000 R13704DK: BCT R3,GETCODE . . . @V240820 01302000 R13704DK: SETCODE EQU * BUILD TERMINAL RESOURCE REFERENCE@V240820 01303000 R13704DK: S R2,=A(DMKRIORN) COMPUTE TABLE DISPLACEMENT @V240820 01304000 R13704DK: SLL R2,10(0) SHIFT FOR REFERENCE FIELD @V240820 01305000 R13704DK: LA R2,1(R2,R9) ADD ONE TO LINE RESOURCE I.D. @V240820 01306000 R13704DK: STH R2,SAVEWRK3 SAVE THE VALUE FOR MESSAGES @V240820 01307000 R13704DK: EJECT 01308000 R13704DK: TM RDEVSTAT,RDEVNRDY IS THE NCP STILL ALIVE ? @V240820 01309000 R13704DK: BO SETDEAD NO -- DON'T PANIC OVER IT @V240820 01310000 R13704DK: TM RDEVFLAG,RDEVRCVY IS THE NCP STILL DYING ? @V240820 01311000 R13704DK: BO SETDEAD YES - LEAVE IT ALONE @V240820 01312000 R13704DK: TM RDEVFLAG,RDEVLNCP+RDEVLCEP MUST BE A PEP @V240820 01313000 R13704DK: BNO SETDEAD NO -- WE MISSED THE FUNERAL @V240820 01314000 R13704DK: MH R9,=AL2(NICSIZE*8) INDEX INTO THE NICBLOK LIST @V240820 01315000 R13704DK: AL R9,RDEVNICL GR9 = LINE NICBLOK ADDRESS @V240820 01316000 R13704DK: USING NICBLOK,R9 @V240820 01317000 R13704DK: TM NICSTAT,NICSWEP+NICEPMD STILL AS WE LEFT IT ? @V240820 01318000 R13704DK: BNO SETDEAD NO -- DO NOT DISTURB @V240820 01319000 R13704DK: LA R0,CSWLNCP SWITCH LINE MODE TO THE NCP @V240820 01320000 R13704DK: CALL DMKRNHND,PARM=0,AFFINITY SWITCH BACK TO NCP @V407510 01321000 R13704DK: BNZ SETDEAD BAIL OUT IF THE NCP DIES @V240820 01322000 R13704DK: LH R0,0(0,R1) SIZE OF THE RESPONSE BUFFER @V240820 01323000 R13704DK: CALL DMKFRET RETURN THE FREE STORAGE @V240820 01324000 R13704DK: NI NICSTAT,255-(NICDISA+NICEPMD) BACK IN NCP MODE @V240820 01325000 R13704DK: LA R9,NICSIZE*8(0,R9) FORWARD TO THE TERMINAL @V240820 01326000 R13704DK: NI NICSTAT,255-NICDISA TERMINAL IS BACK ONLINE @V240820 01327000 R13704DK: OI NICFLAG,NICSESN+NICENAB ENABLED AGAIN @V240820 01328000 R13704DK: OI SAVEWRK1,NCPTERM REMEMBER THE 370X NCP @V240820 01329000 R13704DK: DROP R9 @V240820 01330000 R13704DK: SPACE 01331000 R13704DK: SETUSER EQU * CREATE A TEMPORARY DUMMY USER @V240820 01332000 R13704DK: CALL DMKBLDVM,AFFINITY BUILD A VMBLOK AROUND RDEVBLOK @V407510 01333000 R13704DK: OI VMOSTAT,VMCF PREVENT ENTERING LOGOFF @VA01827 01334000 R13704DK: SPACE 01335000 R13704DK: CLI RDEVTYPC,CLASGRAF DIAL VIA A 3277 ? @V200820 01336000 R13704DK: BE SETGRAF YES - ADJUST FLAGS @V200820 01337000 R13704DK: CLI RDEVTYPC,CLASSPEC DROP FROM AN NCP LINE ? @V240820 01338000 R13704DK: BE SETMSG YES - FLAGS ARE ALL SET @V240820 01339000 R13704DK: NI RDEVTFLG,255-RDEVCTL TURN OFF CONTROL FLAG @V200820 01340000 R13704DK: NI RDEVFLAG,255-(RDEVACTV+RDEVPREP+RDEVHIO) @V200820 01341000 R13704DK: B SETMSG GO SEND DROP MESSAGES TO USERS @V200820 01342000 R13704DK: EJECT 01343000 R13704DK: SETDEAD EQU * COULD NOT RECOVER THE NCP LINE @V240820 01344000 R13704DK: OI SAVEWRK1,EPABORT REMEMBER THE SITUATION @V240820 01345000 R13704DK: B SETMSG CONTINUE NORMALLY FOR NOW @V240820 01346000 R13704DK: SPACE 01347000 R13704DK: SETGRAF EQU * SETUP FLAGS FOR DMKGRF @V200820 01348000 R13704DK: MVI RDEVTFLG,RDEVRUN SET TO RUNNING STATE @V200730 01349000 R13704DK: MVI RDEVCORD,00 WRITE AT LINE 00 @V200730 01350000 R13704DK: SPACE 01351000 R13704DK: SETMSG EQU * SEND DROP MESSAGES @V200820 01352000 R13704DK: LA R0,MSGSIZE MESSAGE SIZE 01353000 R13704DK: CALL DMKFREE GET CORE FOR MESSAGES 01354000 R13704DK: LR R4,R1 ... 01355000 R13704DK: USING MSGDIAL,R4 USE OUR CONVENIENT DSECT 01356000 R13704DK: MVC MSGDIAL(8),BLANKS CLEAR IT 01357000 R13704DK: MVC MSGDIAL+8((MSGSIZE-1)*8),MSGDIAL 01358000 R13704DK: CLI RDEVTYPC,CLASSPEC DROP FROM A 370X NCP LINE ? @V240820 01359000 R13704DK: BE PEPTEXT YES - DIFFERENT TEXT IN MSG @V240820 01360000 R13704DK: CALL DMKSCNRN GET DEVICE NAME @V200730 01361000 R13704DK: ST R1,MSGDIAL SET DEVICE NAME IN MSG BUFFER @V240820 01362000 R13704DK: CALL DMKSCNRD RDEVBLOK IS STILL IN R8 01363000 R13704DK: CALL DMKCVTBH GET ADDRESS IN EBCDIC 01364000 R13704DK: STCM R1,B'0111',MSGRADD REAL ADDRESS TO MESSAGE 01365000 R13704DK: B GETUSER FINISH BUILDING USER MESSAGE @V240820 01366000 R13704DK: SPACE 01367000 R13704DK: PEPTEXT EQU * SETUP TYPE RADDR FOR PEP LINES @V240820 01368000 R13704DK: LH R1,SAVEWRK3 TERMINAL RESOURCE REFERENCE @V240820 01369000 R13704DK: CALL DMKCVTBH CONVERT FOR OUTPUT @V240820 01370000 R13704DK: L R0,=C'DEV ' 370X RESOURCE IS A 'DEV' @V240820 01371000 R13704DK: STM R0,R1,MSGDIAL SET TYPE AND REFERENCE IN MSG @V240820 01372000 R13704DK: * B GETUSER @V240820 01373000 R13704DK: EJECT 01374000 R13704DK: GETUSER EQU * FILL OUT MESSAGE FIELDS @V240820 01375000 R13704DK: MVC MSGFLD1(10),=C'DROP FROM ' ACTION CUE 01376000 R13704DK: LR R10,R11 SAVE VMBLOK CREATED BY BLDVM 01377000 R13704DK: * CPU TIMER DOES NOT MATCH CURRENT VMBLOK - OK IF CONTROL ISN'T LOST 01378000 R13704DK: L R11,SAVER11 BACK TO VMBLOK OF CALLER 01379000 R13704DK: MVC MSGUSER(8),VMUSER MOVE USERID TO MESSAGE 01380000 R13704DK: L R8,SAVER8 VDEVBLOK ADDRESS 01381000 R13704DK: DROP R8 01382000 R13704DK: CALL DMKSCNVD GET VIRTUAL LINE ADDRESS 01383000 R13704DK: CALL DMKCVTBH CONVERT TO EBCDIC 01384000 R13704DK: STCM R1,B'0111',MSGVADD ...INTO MESSAGE 01385000 R13704DK: LR R11,R10 RESTORE VMBLOK - CPU TIMER MATCHES AGAIN 01386000 R13704DK: TM SAVEWRK1,EPABORT SHOULD WE SEND THE MESSAGE ?@V240820 01387000 R13704DK: BO OPERMSG NO -- JUST TELL THE OPERATOR@V240820 01388000 R13704DK: LA R0,MSGVADD+4-MSGFLD1 SIZE FOR USER 01389000 R13704DK: LA R1,MSGFLD1 START OF MSG TO USER 01390000 R13704DK: CALL DMKQCNWT,PARM=PRIORITY+LOGHOLD WRITE, WAIT 01391000 R13704DK: SPACE 2 01392000 R13704DK: OPERMSG EQU * SEND DROP MESSAGE TO OPERATOR @V240820 01393000 R13704DK: LA R3,MSGSIZE FOR 'DFRET' LATER 01394000 R13704DK: MVC MSGVADD(8),=C'DIALED= ' OPERATOR CUE 01395000 R13704DK: L R2,=A(DMKSYSND) NUMBER OF DIALED USERS 01396000 R13704DK: L R1,0(0,R2) ... 01397000 R13704DK: S R1,F1 DECREMENT... 01398000 R13704DK: BNM *+6 DON'T LET IT GO NEGATIVE 01399000 R13704DK: SLR R1,R1 ... 01400000 R13704DK: ST R1,0(0,R2) RESET DIALED USER COUNT 01401000 R13704DK: CALL DMKCVTBD CONVERT TO DECIMAL FOR MSG 01402000 R13704DK: STCM R1,B'0111',MSGNDIL ... 01403000 R13704DK: LR R1,R4 MESSAGE ADDRESS @V240820 01404000 R13704DK: LA R0,MSGSIZE*8 ...LENGTH 01405000 R13704DK: CALL DMKQCNWT,PARM=NORET+DFRET+OPERATOR 01406000 R13704DK: DROP R4 01407000 R13704DK: EJECT 01408000 R13704DK: TM SAVEWRK1,EPABORT IS THERE A DUMMY VMBLOK ? @V240820 01409000 R13704DK: BO DROPEXT NO -- JUST EXIT GRACEFULLY @V240820 01410000 R13704DK: NI VMOSTAT,255-VMCF LET DSP CALL USO @VA01827 01411000 R13704DK: BAL R9,FRETVMB RELEASE DUMMY VMBLOK 01412000 R13704DK: DROPEXT EQU * @V240820 01413000 R13704DK: L R1,SAVER11 GET CALLER VMBLOK @V407510 01414000 R13704DK: SWTCHVM SWITCH BACK TO CALLER @V407510 01415000 R13704DK: DROPEXIT DS 0H @VA13704 01416000 R13704DK: EXIT ALL DONE 01417000 R13704DK: EJECT 01418000 R13704DK: * 01419000 R13704DK: * REMOVE VMBLOK FROM CHAIN OF ACTIVE VMBLOKS 01420000 R13704DK: * RETURN VMBLOK TO FREE STORAGE 01421000 R13704DK: * 01422000 R13704DK: FRETVMB EQU * REMOVE + FRET VMBLOK 01423000 R13704DK: LA R0,8 LENGTH OF USERID @VA13441 01424000 R13704DK: LA R1,VMUSER POINT TO USERID @VA13441 01425000 R13704DK: CALL DMKSCNAU SEE IF VMBLOK STILL VALID @VA13441 01426000 R13704DK: BMR R9 ALREADY GONE - RETURN @VA13441 01427000 R13704DK: BZ FRETVMB1 STILL THERE - NOW FRET IT @VA13441 01428000 R13704DK: TM VMRSTAT,VMLOGOFF IS LOGOFF IN PROCESS @VA13441 01429000 R13704DK: BOR R9 IF YES - BETTER DO NOTHING HERE @VA13441 01430000 R13704DK: TM VMOSTAT,VMKILL WILL DISPATCHER FORCE HIM OFF @VA13441 01431000 R13704DK: BOR R9 IF YES - STAY CLEAR OF FRETTING @VA13441 01432000 R13704DK: * VMBLOK 01433000 R13704DK: FRETVMB1 DS 0H @VA13441 01434000 R13704DK: L R2,ASYSVM THIS IS THE CHAIN ANCHOR @VA13441 01435000 R13704DK: CL R11,RUNUSER THIS IS EXTREMELY UNLIKELY 01436000 R13704DK: BNE FRETVM0 CHECK LASTUSER @V407510 01437000 R13704DK: ST R2,RUNUSER DON'T POINT AT FRET'ED BLOCK 01438000 R13704DK: B FRETVM1 START FREEING BLOK @V407510 01439000 R13704DK: FRETVM0 DS 0H @V407510 01440000 R13704DK: CL R11,LASTUSER SAME AS LASTUSER? @V407510 01441000 R13704DK: BNE FRETVM1 NO, START FREEING BLOK @V407510 01442000 R13704DK: ST R2,LASTUSER DON'T POINT AT FRET'ED BLOK @V407510 01443000 R13704DK: FRETVM1 EQU * HANDLE CHAIN ANCHOR PROBLEMS 01444000 R13704DK: L R3,VMPNT-VMBLOK(0,R2) FIRST USER AFTER ANCHOR 01445000 R13704DK: L R4,VMPNT USER AFTER OUR VMBLOK 01446000 R13704DK: CLR R4,R11 IF HE POINTS TO HIMSELF... 01447000 R13704DK: BNE FRETVM2 NO - GREAT 01448000 R13704DK: SLR R5,R5 ...ZERO ANCHOR BECAUSE NOBODY IS LEFT 01449000 R13704DK: B FRETVM3 ... 01450000 R13704DK: FRETVM2 EQU * NOW CHASE THE VMBLOK CHAIN 01451000 R13704DK: LR R5,R3 PREVIOUS BLOCK 01452000 R13704DK: L R3,VMPNT-VMBLOK(,R3) NEXT ONE... 01453000 R13704DK: CLR R3,R11 POINTED TO US THIS TIME ? 01454000 R13704DK: BNE FRETVM2 NO - KEEP CHASING 01455000 R13704DK: ST R4,VMPNT-VMBLOK(,R5) TAKE US OUT OF CHAIN 01456000 R13704DK: FRETVM3 EQU * NOW MOVE THE CHAIN ANCHOR JUST IN CASE 01457000 R13704DK: ST R5,VMPNT-VMBLOK(,R2) ...WE DELETED FIRST USER 01458000 R13704DK: XR R2,R11 EXCHANGE R11 & R2 @V4M0204 01459000 R13704DK: XR R11,R2 R11 = SYSTEM VMBLOK @V4M0204 01460000 R13704DK: XR R2,R11 R2 = VMBLOK TO BE FRET'D @V4M0204 01461000 R13704DK: CHARGE START CHARGE SYSTEM VMBLOK @V4M0204 01462000 R13704DK: L R1,VMDELAY-VMBLOK(,R2) @VA11836 01463000 R13704DK: LTR R1,R1 DO WE HAVE ONE? @VA08708 01464000 R13704DK: BZ FRETVM3A NO - DO NOT TRY TO FRET TRQ @VA08708 01465000 R13704DK: CLC TRQBFPNT-TRQBLOK(4,R1),ZEROES HAS THE TRQ BEEN @VA08708 01466000 R13704DK: * QUED? 01467000 R13704DK: BE FRETTRQ NO - GO FRET IT @VA08708 01468000 R13704DK: CALL DMKSCHRT YES - RESET IT THEN FRET IT @VA08708 01469000 R13704DK: FRETTRQ LA R0,TRQBSIZE LOAD TRQ SIZE FOR FRET @VA08708 01470000 R13704DK: CALL DMKFRET NOW GIVE IT BACK @VA08708 01471000 R13704DK: FRETVM3A EQU * @VA08708 01472000 R13704DK: L R1,VMDFTPNT-VMBLOK(,R2) GET DEFERRED POINTER @V4M0204 01473000 R13704DK: LTR R1,R1 DOES ONE EXIST? @V4M0204 01474000 R13704DK: BZ FRETVM4 NO, FRET VMBLOK @V4M0204 01475000 R13704DK: LA R0,CPEXSIZE GET SIZE OF DEFERRED BLOK @V4M0204 01476000 R13704DK: CALL DMKFRET FREE DEFERRED TASK BLOK @V4M0204 01477000 R13704DK: FRETVM4 DS 0H @V4M0204 01478000 R13704DK: LR R1,R2 GET ADDRESS OF VMBLOK @V4M0204 01479000 R13704DK: LA R0,VMBSIZE BLOCK SIZE = HUGE 01480000 R13704DK: MVI VMUSER-VMBLOK+7(R1),X'00' NULLIFY USERID @VA13441 01481000 R13704DK: CALL DMKFRET RELEASE THE VMBLOK 01482000 R13704DK: BR R9 RETURN TO CALLER 01483000 R13704DK: EJECT 01484000 R13704DK: *. 01485000 R13704DK: * SUBROUTINE NAME - 01486000 R13704DK: * 01487000 R13704DK: * DMKDIBCP - 'COUPLE' VIRTUAL CHANNEL-TO-CHANNEL ADAPTER@VA13704 01488000 R13704DK: * 01489000 R13704DK: * FUNCTION - 01490000 R13704DK: * 01491000 R13704DK: * TO ESTABLISH A VIRTUAL CONNECTION BETWEEN TWO VIRTUAL 01492000 R13704DK: * CHANNEL-TO-CHANNEL ADAPTERS, EITHER ON SEPARATE VIRTUAL 01493000 R13704DK: * MACHINES OR TWO ADAPTERS ON A SINGLE VIRTUAL MACHINE. 01494000 R13704DK: * 01495000 R13704DK: * COMMAND LINE FORMAT - 01496000 R13704DK: * 01497000 R13704DK: * +----------+-------------------------------+ 01498000 R13704DK: * | | | 01499000 R13704DK: * | COUPLE | VADDR <TO> USERID VADDR | 01500000 R13704DK: * | ---- | VADDR <TO> * VADDR | 01501000 R13704DK: * | | | 01502000 R13704DK: * +----------+-------------------------------+ 01503000 R13704DK: * 01504000 R13704DK: * ENTRY POINT - 01505000 R13704DK: * 01506000 R13704DK: * DMKDIBCP @VA13704 01507000 R13704DK: * 01508000 R13704DK: * ENTRY CONDITIONS - 01509000 R13704DK: * 01510000 R13704DK: * GPR 13 = ADDRESS OF STANDARD SAVE-AREA 01511000 R13704DK: * GPR 12 = ADDRESS OF DMKDIBCP @VA13704 01512000 R13704DK: * GPR 11 = ADDRESS OF CALLER'S VMBLOK 01513000 R13704DK: * GPR 9 = ADDRESS OF COMMAND BUFFER 01514000 R13704DK: * 01515000 R13704DK: * EXIT CONDITIONS - 01516000 R13704DK: * 01517000 R13704DK: * GPR 2 = ERROR CODE, OR ZERO IF NO ERRORS 01518000 R13704DK: * 01519000 R13704DK: * IF GPR 2 = 0, THE TWO CTCA'S SPECIFIED HAVE BEEN 01520000 R13704DK: * COUPLED TOGETHER AND ARE READY FOR USE BY THE VM. 01521000 R13704DK: * 01522000 R13704DK: * CALLS TO OTHER ROUTINES - 01523000 R13704DK: * 01524000 R13704DK: * DMKSCNFD 01525000 R13704DK: * DMKSCNVU 01526000 R13704DK: * DMKSCNAU 01527000 R13704DK: * DMKQCNWT 01528000 R13704DK: * DMKCVTHB 01529000 R13704DK: * DMKCVTBH 01530000 R13704DK: * DMKFREE 01531000 R13704DK: * DMKERMSG 01532000 R13704DK: * DMKVCARS 01533000 R13704DK: * 01534000 R13704DK: * EXTERNAL REFERENCES - NONE 01535000 R13704DK: * 01536000 R13704DK: * TABLES / WORK AREAS - 01537000 R13704DK: * 01538000 R13704DK: * VDEVBLOK, VCUBLOK, CHXBLOK, CHYBLOK 01539000 R13704DK: * 01540000 R13704DK: * REGISTER USAGE - 01541000 R13704DK: * 01542000 R13704DK: * GPR 13 = SAVE-AREA ADDRESSABILITY 01543000 R13704DK: * GPR 12 = MODULE BASE ADDRESSABILITY 01544000 R13704DK: * GPR 11 = VMBLOK ADDRESS OF X-SIDE USER 01545000 R13704DK: * GPR 10 = VMBLOK ADDRESS OF Y-SIDE USER 01546000 R13704DK: * GPR 9 = COMMAND BUFFER ADDRESS 01547000 R13704DK: * GPR 8 = VDEVBLOK ADDRESS, X-SIDE CTCA 01548000 R13704DK: * GPR 7 = VDEVBLOK ADDRESS, Y-SIDE CTCA 01549000 R13704DK: * GPRS 0-6 ARE WORK REGISTERS 01550000 R13704DK: * 01551000 R13704DK: * NOTES - 01552000 R13704DK: * 01553000 R13704DK: * THE 'CHXBLOK' AND 'CHYBLOK' CREATED BY DMKDIBCP IS IN @VA13704 01554000 R13704DK: * REALITY A SINGLE CONTROL BLOCK, ADDRESSED VIA TWO 01555000 R13704DK: * IDENTICAL DSECT'S FOR SYMMETRY. (SEE ACTUAL DSECTS) 01556000 R13704DK: * 01557000 R13704DK: * OPERATION - 01558000 R13704DK: * 01559000 R13704DK: * 1. THE COMMAND LINE IS SCANNED FOR ALL REQUIRED PARMS 01560000 R13704DK: * AND THE SPECIFIED DEVICES ARE CHECKED TO INSURE THAT 01561000 R13704DK: * THEY ARE CHANNEL-TO-CHANNEL ADAPTERS AND ARE AVAILABLE 01562000 R13704DK: * FOR USE. ERROR MESSAGES ARE TYPED IF ANY CHECKS FAIL. 01563000 R13704DK: * 01564000 R13704DK: * 2. THE INTERMEDIATE CONTROL BLOCKS, CHXBLOK AND CHYBLOK, 01565000 R13704DK: * ARE ALLOCATED FROM FREE STORAGE AND CONNECTED TO THE 01566000 R13704DK: * VDEVBLOKS OF THE X-SIDE AND Y-SIDE ADAPTERS. THE NOT- 01567000 R13704DK: * READY BIT IN THE VDEVBLOKS IS REMOVED AND THE ADAPTERS 01568000 R13704DK: * ARE READY FOR VIRTUAL MACHINE USE. VERIFICATION MESSAGES 01569000 R13704DK: * ARE SENT TO BOTH THE X-SIDE AND Y-SIDE USERS. 01570000 R13704DK: * 01571000 R13704DK: * RESPONSES - 01572000 R13704DK: * 01573000 R13704DK: * 'CTCA VADDR COUPLE TO USERID1 VADDR' (X-SIDE) 01574000 R13704DK: * 01575000 R13704DK: * 'CTCA VADDR COUPLE BY USERID2 VADDR' (Y-SIDE) 01576000 R13704DK: * 01577000 R13704DK: * ERROR MESSAGES - 01578000 R13704DK: * 01579000 R13704DK: * DMKDIB006E INVALID DEVICE TYPE - VADDR @VA13704 01580000 R13704DK: * DMKDIB011E INVALID DEVICE TYPE - $USERID$ VADDR @VA13704 01581000 R13704DK: * DMKDIB020E USERID MISSING OR INVALID @VA13704 01582000 R13704DK: * DMKDIB022E VADDR MISSING OR INVALID @VA13704 01583000 R13704DK: * DMKDIB040E DEV VADDR DOES NOT EXIST @VA13704 01584000 R13704DK: * DMKDIB045E $USERID$ NOT LOGGED ON @VA13704 01585000 R13704DK: * DMKDIB047E $USERID$ VADDR DOES NOT EXIST @VA13704 01586000 R13704DK: * DMKDIB058E CTCA VADDR BUSY ON $USERID$ @VA13704 01587000 R13704DK: *. 01588000 R13704DK: EJECT 01589000 R13704DK: DMKDIBCP RELOC , "COUPLE VADDR TO USERID VADDR" @VA13704 01590000 R13704DK: SPACE 2 01591000 R13704DK: MVI SAVEWRK1,X'00' CLEAR A FLAG BYTE 01592000 R13704DK: LA R6,INVVADD RETURN IF NO OPERAND FOUND @V240820 01593000 R13704DK: BAL R10,SCANCVT SCAN AND CONVERT DEVICE ADDRESS @V240820 01594000 R13704DK: SPACE 01595000 R13704DK: CALL DMKSCNFD SECOND PARM = OPTION 'TO' 01596000 R13704DK: BNZ NOUSRID USERID MISSING OR INVLAID 01597000 R13704DK: LR R2,R0 01598000 R13704DK: BCTR R2,0 DECREMENT COUNT FOR EXECUTED COMPARE 01599000 R13704DK: EX R2,CLCOPTO CLC 0(*-*,R1),=C'TO ' 01600000 R13704DK: BNE DIACPUSR MUST BE A USERID 01601000 R13704DK: CALL DMKSCNFD SCAN FOR USERID 01602000 R13704DK: BNZ NOUSRID 01603000 R13704DK: DIACPUSR EQU * FIND SPECIFIED USER VMBLOK 01604000 R13704DK: CLC 0(2,R1),=C'* ' WRAP CONNECTION TO HIMSELF ? 01605000 R13704DK: BNE DIACPOTH NO 01606000 R13704DK: LR R10,R11 SAME VMBLOK FOR BOTH DEVICES 01607000 R13704DK: OI SAVEWRK1,CTCWRAP REMEMBER SPECIAL COUPLE @VA02003 01608000 R13704DK: B DIACPAD2 GO GET SECOND VADDR 01609000 R13704DK: EJECT 01610000 R13704DK: DIACPOTH EQU * LOCATE VMBLOK OF REMOTE USER 01611000 R13704DK: CALL DMKSCNAU 01612000 R13704DK: BC 2,NOUSRID USERID INVALID 01613000 R13704DK: BC 5,NOTLOGD NOT LOGGED ON, OR WON'T BE SOON 01614000 R13704DK: LR R10,R1 SAVE VMBLOK ADDRESS IN GPR10 01615000 R13704DK: CLR R10,R11 WRAP CONNECTION TO HIMSELF ? 01616000 R13704DK: BNE DIACPAD2 NO - 01617000 R13704DK: OI SAVEWRK1,CTCWRAP INDICATE WRAP TO HIMSELF @VA02003 01618000 R13704DK: DIACPAD2 EQU * SCAN FOR REMOTE VADDR 01619000 R13704DK: ST R10,SAVEWRK5 SAVE ADDRESS OF REMOTE VMBLOK @V240820 01620000 R13704DK: BAL R14,SWPUSER SWITCH TO REMOTE VMBLOK @V240820 01621000 R13704DK: LA R6,INVVADD RETURN IF NO OPERAND @V240820 01622000 R13704DK: BAL R10,SCANCVT SCAN AND CONVERT DEVICE ADDRESS @V240820 01623000 R13704DK: BAL R14,SWPCALL BACK TO THE CALLER'S VMBLOK @V240820 01624000 R13704DK: L R10,SAVEWRK5 RESTORE ADDR OF REMOTE VMBLOK @VM01004 01625000 R13704DK: SPACE 01626000 R13704DK: LH R1,SAVEWRK2 VADDR OF LOCAL CTCA 01627000 R13704DK: CALL DMKSCNVU FIND THE VDEVBLOK 01628000 R13704DK: USING VDEVBLOK,R8 01629000 R13704DK: CLC VDEVTYPC(2),=AL1(CLASSPEC,TYPCTCA) 01630000 R13704DK: BNE BADVADD2 INVALID DEVICE TYPE - VADDR 01631000 R13704DK: TM VDEVSTAT,VDEVDED IS THE DEVICE DEDICATED ? 01632000 R13704DK: BO BADVADD2 YES - WE CAN'T DO THAT 01633000 R13704DK: CALL DMKCFPRD RESET LOCAL CTCA 01634000 R13704DK: CALL DMKVCARS RELEASE ANY PREVIOUS CONNECTION 01635000 R13704DK: LA R0,CPEXSIZE GET FREE STORAGE FOR A CPEXBLOK 01636000 R13704DK: CALL DMKFREE .. 01637000 R13704DK: LA R15,DIACPGO EXECTUION ADDRESS AFTER DELAY 01638000 R13704DK: STM R15,R14,CPEXADD-CPEXBLOK(R1) SET ADDR, REGISTERS 01639000 R13704DK: XC 0(12,R1),0(R1) CLEAR CPEXFPNT, CPEXBPNT, CPEXMISC 01640000 R13704DK: CALL DMKSTKCP STACK BLOCK FOR SEQUENCING DELAY 01641000 R13704DK: GOTO DMKDSPCH WAIT FOR THINGS TO QUIET DOWN 01642000 R13704DK: EJECT 01643000 R13704DK: DIACPGO EQU * RETURN AFTER NECESSARY DELAY 01644000 R13704DK: BAL R14,SWPUSER SWITCH TO REMOTE VMBLOK 01645000 R13704DK: LH R1,SAVEWRK2+2 VADDR OF REMOTE CTCA 01646000 R13704DK: CALL DMKSCNVU FIND THE VDEVBLOK 01647000 R13704DK: CLC VDEVTYPC(2),=AL1(CLASSPEC,TYPCTCA) 01648000 R13704DK: BNE BADVADD INVALID DEVICE TYPE - USERID VADDR 01649000 R13704DK: TM VDEVSTAT,VDEVDED IS IT DEDICATED ? 01650000 R13704DK: BO BADVADD YES - WE CAN'T DO THAT 01651000 R13704DK: TM VDEVSTAT,VDEVNRDY THIS IS SET IF DEVICE IS AVAILABLE 01652000 R13704DK: BZ CTCBUSY CTCA VADDR BUSY ON USERID 01653000 R13704DK: TM SAVEWRK1,CTCWRAP COUPLE TO HIMSELF ? @VA02003 01654000 R13704DK: BZ DIADBLCK NO -- SKIP DOUBLE-CHECK 01655000 R13704DK: CLC SAVEWRK2(2),SAVEWRK2+2 WRAP TO SAME DEVICE ? 01656000 R13704DK: BE CTCBUSY YES - CALL THE DEVICE BUSY 01657000 R13704DK: DIADBLCK EQU * ALL SET TO CONNECT THE ADAPTERS 01658000 R13704DK: BAL R14,SWPCALL GO BACK TO CALLER'S VMBLOK 01659000 R13704DK: LH R1,SAVEWRK2 VADDR OF LOCAL CTCA 01660000 R13704DK: CALL DMKSCNVU GET THE VDEVBLOK AGAIN 01661000 R13704DK: LA R0,CHBSIZE SIZE OF INTERCONNECTOR BLOCK 01662000 R13704DK: CALL DMKFREE GET FREE STORAGE FOR VIRTUAL CABLES 01663000 R13704DK: LR R9,R1 ADDRESS VIA GR9 01664000 R13704DK: USING CHXBLOK,R9 ... 01665000 R13704DK: XC CHXBLOK(CHBSIZE*8),CHXBLOK CLEAR ENTIRE BLOCK 01666000 R13704DK: ST R9,VDEVREAL PLUG IN THE X-SIDE 01667000 R13704DK: ST R10,CHXOTHR CONNECT Y-SIDE VMBLOK 01668000 R13704DK: LH R1,SAVEWRK2+2 Y-SIDE VADDR 01669000 R13704DK: STH R1,CHXYADD ...NEEDED BY X-SIDE ADAPTER 01670000 R13704DK: NI VDEVSTAT,X'FF'-VDEVNRDY THIS SIDE NOW READY 01671000 R13704DK: LA R9,4(0,R9) FLIP TO Y-SIDE BLOCK 01672000 R13704DK: USING CHYBLOK,R9 ... 01673000 R13704DK: L R1,SAVEWRK5 GET REMOTE VMBLOK ADDRESS @V407510 01674000 R13704DK: SWTCHVM SWITCH TO REMOTE USER @V407510 01675000 R13704DK: LH R1,SAVEWRK2+2 GET Y-SIDE VADDR FOR DMKSCNVU @V4M0170 01676000 R13704DK: CALL DMKSCNVU GET REMOTE VDEVBLOK (VADDR IS IN R1) 01677000 R13704DK: ST R9,VDEVREAL PLUG IN THE Y-SIDE 01678000 R13704DK: L R1,SAVER11 ADDRESS OF X-SIDE VMBLOK 01679000 R13704DK: ST R1,CHYOTHR SET FOR USE FROM Y-SIDE 01680000 R13704DK: LH R1,SAVEWRK2 X-SIDE VADDR 01681000 R13704DK: STH R1,CHYXADD ...NEEDED BY Y-SIDE ADAPTER 01682000 R13704DK: NI VDEVSTAT,X'FF'-VDEVNRDY NOW THIS SIDE IS READY 01683000 R13704DK: DROP R9 01684000 R13704DK: EJECT 01685000 R13704DK: MVC SAVEWRK8(8),BLANKS BLANK OUT THESE FIELDS @VA08677 01686000 R13704DK: MVC SAVEWRK9(3),SAVEWRK3+1 MOVE LOCAL VADDR DOWN @V240820 01687000 R13704DK: MVC SAVEWRK3(4),SAVEWRK4 MOVE REMOTE VADDR UP @V240820 01688000 R13704DK: MVC SAVEWRK2(4),=C'CTCA' NOW FILL IT OUT 01689000 R13704DK: MVC SAVEWRK4(12),=C' COUPLE BY ' 01690000 R13704DK: TM SAVEWRK1,CTCWRAP COUPLING TWO LOCAL CTCA'S @VA02003 01691000 R13704DK: BO DIACPLOC YES -- SKIP DOUBLE MESSAGES 01692000 R13704DK: L R11,SAVER11 GET CALLER'S VMBLOK JUST LONG ENOUGH... 01693000 R13704DK: MVC SAVEWRK6+3(8),VMUSER ...TO GET THE X-SIDE USERID 01694000 R13704DK: LR R11,R10 BACK TO REMOTE VMBLOK 01695000 R13704DK: LA R0,SAVEWRK9+3-SAVEWRK2 DATA LENGTH @VM01044 01696000 R13704DK: LA R1,SAVEWRK2 MSG START 01697000 R13704DK: CALL DMKQCNWT,PARM=NORET 01698000 R13704DK: DIACPLOC EQU * SEND MESSAGE ONLY ONCE 01699000 R13704DK: L R1,SAVER11 GET CALLER'S VMBLOK @V407510 01700000 R13704DK: SWTCHVM SWITCH BACK TO CALLER @V407510 01701000 R13704DK: L R1,SAVEWRK3 NOW SWAP THE TWO ADDRESSES 01702000 R13704DK: L R2,SAVEWRK9 ...FOR LOCAL USER MESSAGE 01703000 R13704DK: STCM R1,B'0111',SAVEWRK9 ... 01704000 R13704DK: STCM R2,B'1110',SAVEWRK3+1 01705000 R13704DK: MVC SAVEWRK6(3),=C'TO ' CHANGE THE PARTICIPLE 01706000 R13704DK: MVC SAVEWRK6+3(8),VMUSER-VMBLOK(R10) 01707000 R13704DK: LA R0,SAVEWRK9+3-SAVEWRK2 DATA LENGTH @VM01044 01708000 R13704DK: LA R1,SAVEWRK2 ADDRESS 01709000 R13704DK: CALL DMKQCNWT,PARM=NORET SEND LOCAL USER MESSAGE 01710000 R13704DK: SLR R2,R2 01711000 R13704DK: ST R2,SAVER2 ZERO RETURN CODE 01712000 R13704DK: EXIT , RETURN TO DMKCFM 01713000 R13704DK: SPACE 01714000 R13704DK: CLCOPTO CLC 0(*-*,R1),=C'TO ' OPTIONAL WORD TEST 01715000 R13704DK: EJECT 01716000 R13704DK: SWPUSER EQU * SWITCH TO OBJECTIVE VMBLOK 01717000 R13704DK: ST R14,SAVEWRK6 SAVE R14 ACROSS CHARGE @V4M0116 01718000 R13704DK: CHARGE SWITCH,SAVEWRK5 CHARGE 'OTHER' VMBLOK @V407510 01719000 R13704DK: L R14,SAVEWRK6 RESTORE REG 14 @V4M0116 01720000 R13704DK: BR R14 01721000 R13704DK: SPACE 01722000 R13704DK: SWPCALL EQU * SWITCH TO CALLER'S VMBLOK 01723000 R13704DK: ST R14,SAVEWRK6 SAVE R14 ACROSS CHARGE @V4M0116 01724000 R13704DK: CHARGE SWITCH,SAVER11 CHARGE CALLER @V407510 01725000 R13704DK: L R14,SAVEWRK6 RESTORE REG 14 @V4M0116 01726000 R13704DK: BR R14 01727000 R13704DK: SPACE 2 01728000 R13704DK: SCANCVT EQU * SCAN AND CONVERT DEVICE ADDRESS @V240820 01729000 R13704DK: CALL DMKSCNFD SCAN FOR THE NEXT OPERAND @V240820 01730000 R13704DK: BNZR R6 ERROR EXIT IF NOT FOUND @V240820 01731000 R13704DK: CL R0,F3 THREE CHARACTERS MAXIMUM @V240820 01732000 R13704DK: BH INVVADD INVALID VADDR @V240820 01733000 R13704DK: CALL DMKCVTHB CONVERT ADDRESS TO BINARY @V240820 01734000 R13704DK: BNZ INVVADD CONVERT FAILED - INVALID @V240820 01735000 R13704DK: MAXDV R15 GET MAXIMUM VALID ADDRESS IN GR15@V240820 01736000 R13704DK: CLR R1,R15 IS THE DEVICE ADDRESS POSSIBLE ? @V240820 01737000 R13704DK: BH INVVADD NO -- KICK IT OUT @V240820 01738000 R13704DK: LR R6,R1 REMEMBER ADDRESS FOR DMKSCNVU @V240820 01739000 R13704DK: CALL DMKCVTBH RE-CONVERT IT FOR MESSAGES @V240820 01740000 R13704DK: ICM R1,8,BLANKS GET A HIGH-ORDER BLANK @V240820 01741000 R13704DK: TM SAVEWRK1,FIRSTAD IS THIS THE FIRST PASS ? @V240820 01742000 R13704DK: BO SCANTWO NO -- USE REMOTE SLOTS @V240820 01743000 R13704DK: OI SAVEWRK1,FIRSTAD REMEMBER THE FIRST PASS @V240820 01744000 R13704DK: STH R6,SAVEWRK2 SAVE 'LOCAL' DEVICE ADDRESS @V240820 01745000 R13704DK: ST R1,SAVEWRK3 SAVE EBCDIC EQUIVALENT OF ADDRESS@V240820 01746000 R13704DK: B SCANSCN TRY TO FIND THE VIRTUAL BLOCKS @V240820 01747000 R13704DK: SCANTWO EQU * SAVE VALUES FOR REMOTE DEVICE @V240820 01748000 R13704DK: STH R6,SAVEWRK2+2 SLOT FOR REMOTE VIRTUAL ADDRESS @V240820 01749000 R13704DK: ST R1,SAVEWRK4 SLOT FOR EBCDIC EQUIVALENT @V240820 01750000 R13704DK: SCANSCN EQU * FIND THE VIRTUAL BLOCKS @V240820 01751000 R13704DK: LR R1,R6 ADDRESS BACK TO GR1 @V240820 01752000 R13704DK: CALL DMKSCNVU SCAN FOR THE DEVICE @V240820 01753000 R13704DK: BNZ UNKNOWN DEVICE DOES NOT EXIST @V240820 01754000 R13704DK: BR R10 RETURN INTERNALLY @V240820 01755000 R13704DK: EJECT 01756000 R13704DK: UNKNWN2 EQU * DEV VADDR DOES NOT EXIST 01757000 R13704DK: LA R2,040(,0) MSG= DMKDIB040E @VA13704 01758000 R13704DK: B VADONLY SET UP VARIABLE DATA 01759000 R13704DK: SPACE 01760000 R13704DK: BADVADD2 EQU * INVALID DEVICE TYPE - VADDR 01761000 R13704DK: LA R2,006(,0) MSG= DMKDIB006E @VA13704 01762000 R13704DK: VADONLY EQU * SET VARIABLE 'VADDR' 01763000 R13704DK: CALL DMKCVTBH CONVERT 01764000 R13704DK: STCM R1,B'0111',SAVEWRK2 01765000 R13704DK: LA R0,3 LENGTH 01766000 R13704DK: B MSGSEND 01767000 R13704DK: SPACE 01768000 R13704DK: NOUSRID EQU * USERID MISSING OR INVALID 01769000 R13704DK: LA R2,020(,0) MSG= DMKDIB020E @VA13704 01770000 R13704DK: B MSGONLY NO EXTRA DATA NEEDED 01771000 R13704DK: SPACE 01772000 R13704DK: NOTLOGD EQU * USERID NOT LOGGED ON 01773000 R13704DK: MVC SAVEWRK2(8),BALRSAVE USERID LEFT BY 'SCNAU' 01774000 R13704DK: LA R0,8 DATA LENGTH 01775000 R13704DK: LA R2,045(,0) MSG= DMKDIB045E @VA13704 01776000 R13704DK: B MSGSEND 01777000 R13704DK: SPACE 01778000 R13704DK: INVVADD EQU * VIRTUAL ADDRESS MISSING OR INVALID 01779000 R13704DK: LA R2,022(,0) MSG= DMKDIB022E @VA13704 01780000 R13704DK: B MSGONLY NO EXTRA DATA NEEDED 01781000 R13704DK: SPACE 01782000 R13704DK: CTCBUSY EQU * CTCA VADDR BUSY ON USERID 01783000 R13704DK: LA R2,058(,0) MSG= DMKDIB058E @VA13704 01784000 R13704DK: VADDUSR EQU * SET VARIABLES 'VADDR USERID' 01785000 R13704DK: CALL DMKSCNVD GET DEVICE ADDRESS IN 'CCU' FORM 01786000 R13704DK: CALL DMKCVTBH CONVERT TO HEX 01787000 R13704DK: STCM R1,B'0111',SAVEWRK2 01788000 R13704DK: MVI SAVEWRK2+3,X'00' DELIMITER 01789000 R13704DK: MVC SAVEWRK3(8),VMUSER SECOND FIELD 01790000 R13704DK: LA R0,12 DATA LENGTH 01791000 R13704DK: B MSGSEND SEND ERROR MSG AND EXIT @VA03704 01792000 R13704DK: EJECT 01793000 R13704DK: BADVADD EQU * VIRTUAL DEVICE IS NOT A LINE 01794000 R13704DK: LA R2,011(,0) MSG= DMKDIB011E @VA13704 01795000 R13704DK: B USRVADD SET UP VARIABLE STRING 01796000 R13704DK: SPACE 01797000 R13704DK: UNKNOWN EQU * USERID VADDR DOES NOT EXIST 01798000 R13704DK: CH R1,SAVEWRK2 IS THIS THE LOCAL DEVICE ? @VA02009 01799000 R13704DK: BE UNKNWN2 YES - DIFFERENT MESSAGE @V240820 01800000 R13704DK: LA R2,047(,0) MSG= DMKDIB047E @VA13704 01801000 R13704DK: USRVADD EQU * SET VARIABLES 'USERID VADDR' 01802000 R13704DK: MVC SAVEWRK2(8),VMUSER 01803000 R13704DK: MVI SAVEWRK4,X'00' DELIMITER 01804000 R13704DK: LA R0,12 01805000 R13704DK: B MSGSEND 01806000 R13704DK: SPACE 01807000 R13704DK: MSGONLY EQU * NO DATA TO BE ADDED TO MESSAGE 01808000 R13704DK: SLR R0,R0 01809000 R13704DK: SLR R1,R1 01810000 R13704DK: B MSGSEND+4 01811000 R13704DK: SPACE 01812000 R13704DK: MSGSEND EQU * SEND ERROR MSG TO USER 01813000 R13704DK: LA R1,SAVEWRK2 POINT TO START OF VARIABLE DATA 01814000 R13704DK: BAL R14,SWPCALL BACK TO CALLER'S VMBLOK 01815000 R13704DK: ICM R0,B'1110',DMKDIB+3 MODULE IDENTIFIER @VA13704 01816000 R13704DK: ST R2,SAVER2 PASS RETURN CODE BACK TO DMKCFM @V240820 01817000 R13704DK: LA R14,707(0) @VA09464 01818000 R13704DK: CR R14,R2 DOES R2 CONTAIN 707 MESSAGE ? @VA09464 01819000 R13704DK: BNE MSGBLD NO, DON'T PUT'A' IN MESSAGE @VA09464 01820000 R13704DK: ICM R2,4,=X'C1' DMKDIB707A @VA13704 01821000 R13704DK: MSGBLD ICM R2,8,=X'80' RETURN HERE AFTER ERROR MESSAGE @VA09464 01822000 R13704DK: CALL DMKERMSG BUILD + TYPE ERROR MESSAGE 01823000 R13704DK: B DROPEXIT CHECK FOR CLEAN-UP WORK TO DO @VA13704 01824000 R13704DK: EJECT 01825000 R13704DK: * 01826000 R13704DK: * MESSAGE MODEL FOR USER AND OPERATOR RESPONSES 01827000 R13704DK: * 01828000 R13704DK: SPACE 01829000 R13704DK: MSGDIAL DSECT 01830000 R13704DK: DC C'LINE ' REAL DEVICE TYPE 01831000 R13704DK: MSGRADD DC C'XXX ' " " " ADDRESS 01832000 R13704DK: MSGFLD1 DC C'DIALED TO ' ACTIVITY CUE 01833000 R13704DK: MSGUSER DC C'$USERID$ ' DIAL-ED USER 01834000 R13704DK: MSGVADD DC C'XXX ' DIAL-ED VIRTUAL ADDRESS 01835000 R13704DK: ORG MSGVADD ...OR... 01836000 R13704DK: DC C'DIALED= ' OPERATOR INFO 01837000 R13704DK: MSGNDIL DC C'NNN' NO. OF DIALED USERS 01838000 R13704DK: ORG 01839000 R13704DK: MSGSIZE EQU (*-MSGDIAL+7)/8 BUFFER LENGTH 01840000 R13704DK: SPACE 2 01841000 R13704DK: * EQUATES USED IN 'SAVEWRK1' FLAG BYTE: @V240820 01842000 R13704DK: GRAPHIC EQU X'80' DIAL VIA GRAPHIC TERMINAL @V240820 01843000 R13704DK: STRTSTP EQU X'40' DIAL VIA 270X/EMULATOR TERMINAL @V240820 01844000 R13704DK: NCPTERM EQU X'20' DIAL VIA PEP/NCP TERMINAL @V240820 01845000 R13704DK: FIRSTAD EQU X'10' FIRST ADDRESS HAS BEEN SCANNED @V240820 01846000 R13704DK: DYNABLK EQU X'08' DYNAMIC RDEVBLOK IS RESERVED @V240820 01847000 R13704DK: MSGFRET EQU X'04' MESSAGE BUFFER IS IN USE @V240820 01848000 R13704DK: CTCWRAP EQU X'02' 'COUPLE' FOR TWO LOCAL CTCA'S @VA02003 01849000 R13704DK: EPABORT EQU X'01' SWITCH TO EP-MODE FAILED @V240820 01850000 R13704DK: SPACE 2 01851000 R13704DK: DMKDIB CSECT , RE-ENTER PROGRAM CSECT @VA13704 01852000 R13704DK: EJECT 01853000 R13704DK: LTORG 01854000 R13704DK: EJECT 01855000 R13704DK: COPY VCTCA VIRTUAL CHANNEL-TO-CHANNEL ADAPTER BLOCKS 01856000 R13704DK: COPY TIMER @V200730 01857000 R13704DK: COPY NETWORK @V240820 01858000 R13704DK: COPY BTUCMD @V240820 01859000 R13704DK: COPY EQU 01860000 R13704DK: COPY DEVTYPES 01861000 R13704DK: PSA 01862000 R13704DK: COPY SAVE 01863000 R13704DK: COPY VMBLOK 01864000 R13704DK: COPY RBLOKS 01865000 R13704DK: COPY VBLOKS 01866000 R13704DK: COPY IOBLOKS 01867000 R13704DK: COPY IOER 01868000 R13704DK: END DMKDIB @VA13704 01869000 BEGIN APPLY >>> ./ R 00014000 $ 14000 200 07/01/81 10:49:45 END APPLY >>> ./ R 00014000 $ 14000 200 07/01/81 10:49:45 BEGIN APPLY >>> ./ I 00927000 $ 927100 100 07/01/81 10:49:45 END APPLY >>> ./ I 00927000 $ 927100 100 07/01/81 10:49:45 BEGIN APPLY >>> ./ R 00962000 $ 962000 1000 07/01/81 10:49:45 END APPLY >>> ./ R 00962000 $ 962000 1000 07/01/81 10:49:45 BEGIN APPLY >>> ./ R 00995000 $ 995000 1000 07/01/81 10:49:45 END APPLY >>> ./ R 00995000 $ 995000 1000 07/01/81 10:49:45 BEGIN APPLY >>> ./ R 01163000 $ 1163000 1000 07/01/81 10:49:45 END APPLY >>> ./ R 01163000 $ 1163000 1000 07/01/81 10:49:45 BEGIN APPLY >>> ./ R 01179000 01190000 $ 1179000 1000 07/01/81 10:49:45 END APPLY >>> ./ R 01179000 01190000 $ 1179000 1000 07/01/81 10:49:45 Update Succeeded Update Execution Time 23 milliseconds.
R14572DK
Date Thursday Nov 05, 1981 01:11:00 PM
Loaded from MAINT(294)
R14572DK: ./ R 1095600 $ 1095650 00001000 R14572DK: B DIALSTK @VA14572 00002000 BEGIN APPLY >>> ./ R 1095600 $ 1095650 00001000 END APPLY >>> ./ R 1095600 $ 1095650 00001000 Update Succeeded Update Execution Time 8 milliseconds.
R13441DK
Date Wednesday Jan 20, 1982 09:38:00 AM
Loaded from MAINT(294)
R13441DK: ./ * TO INDICATE PRESENCE OF APAR VM13441 BEGIN APPLY >>> ./ * TO INDICATE PRESENCE OF APAR VM13441 Comment >>> ./ * TO INDICATE PRESENCE OF APAR VM13441 END APPLY >>> ./ * TO INDICATE PRESENCE OF APAR VM13441 Update Succeeded Update Execution Time 16 milliseconds.
HRC065DK
Date Friday May 19, 2017 07:03:00 PM
Loaded from MAINT(094)
HRC065DK: ./ I 01360000 $ 01360100 100 HRC065DK: TM RDEVADD,RDEVLDEV Is this an LDEV? HRC065DK HRC065DK: BO DROPLDEV Yes HRC065DK HRC065DK: ./ I 01366000 $ 01366100 20 HRC065DK: DROPLDEV EQU * HRC065DK HRC065DK: LH R1,RDEVADD Get the LDEV address HRC065DK HRC065DK: N R1,F4095 Keep only the dev num HRC065DK HRC065DK: CALL DMKCVTBH Make it displayable HRC065DK HRC065DK: STCM R1,7,MSGRADD Put dev addr in message HRC065DK HRC065DK: MVI MSGRADD-1,C'L' Move in LDEV indicator HRC065DK HRC065DK: MVC MSGDIAL(3),=CL3'GRF' Use short GRAF name HRC065DK HRC065DK: B GETUSER Go display msg HRC065DK HRC065DK: ./ I 01380000 $ 01380100 100 HRC065DK: LR R9,R8 Save RDEVBLOK addr HRC065DK HRC065DK: ./ I 01388000 $ 01388100 100 HRC065DK: USING RDEVBLOK,R9 HRC065DK HRC065DK: TM RDEVADD,RDEVLDTR This LDEV terminating? HRC065DK HRC065DK: BO OPERMSG Yes, no msg to device HRC065DK HRC065DK: DROP R9 RDEVBLOK HRC065DK BEGIN APPLY >>> ./ I 01360000 $ 01360100 100 END APPLY >>> ./ I 01360000 $ 01360100 100 BEGIN APPLY >>> ./ I 01366000 $ 01366100 20 END APPLY >>> ./ I 01366000 $ 01366100 20 BEGIN APPLY >>> ./ I 01380000 $ 01380100 100 END APPLY >>> ./ I 01380000 $ 01380100 100 BEGIN APPLY >>> ./ I 01388000 $ 01388100 100 END APPLY >>> ./ I 01388000 $ 01388100 100 Update Succeeded Update Execution Time 23 milliseconds.
HRC071DK
Date Wednesday Feb 07, 2018 03:28:00 PM
Loaded from MAINT(094)
HRC071DK: ./ I 01350000 $ 01350100 100 HRC071DK: OI RDEVSTA3,RDEVEWRT An erase write required HRC071DK BEGIN APPLY >>> ./ I 01350000 $ 01350100 100 END APPLY >>> ./ I 01350000 $ 01350100 100 Update Succeeded Update Execution Time 23 milliseconds.
ibm/vm370-lib/cp/dmkdib.assemble_hst.txt ยท Last modified: 2023/08/06 13:36 by Site Administrator