ibm:vm370-lib:cp:dmkjrl.assemble_src
Table of Contents
DMKJRL Source
References
- Fixes Applied : 2
- This Source Date : Tuesday, February 20, 1979
- Last Fix ID : [R13020DK]
Source Listing
- DMKJRL.ASSEMBLE.txt
- JRL TITLE 'DMKJRL (CP) VM/370 - RELEASE 6' 00001000
- ISEQ 73,80 VALIDATE SEQUENCING OF SOURCE @V60BBBB 00002000
- *. 00003000
- * MODULE NAME - 00004000
- * 00005000
- * DMKJRL - SECURITY JOURNALING 00006000
- * 00007000
- * FUNCTION - 00008000
- * 00009000
- * TO PERFORM ALL FUNCTIONS NECESSARY TO JOURNAL THE 00010000
- * INSTANCES OF INVALID LOGON AND LINK PASSWORDS, 00011000
- * TO JOURNAL SUCCESSFULL LINKS TO PROTECTED MINI-DISKS, 00012000
- * AND TO RESPOND TO SET/QUERY JOURNAL COMMANDS. 00013000
- * 00014000
- * ATTRIBUTES - 00015000
- * 00016000
- * REENTRANT, PAGEABLE, CALLED VIA SVC 00017000
- * 00018000
- * ENTRY POINTS - 00019000
- * 00020000
- * DMKJRLQU - 'QUERY JOURNAL' 00021000
- * DMKJRLSE - 'SET JOURNAL' 00022000
- * DMKJRLLO - LOGON (BOTH SUCCESSFUL LOGONS AND THOSE 00023000
- * WHICH FAIL BECAUSE OF INVALID PASSWORDS). 00024000
- * DMKJRLSC - SUCCESSFUL LINK 00025000
- * DMKJRLIL - LINK (ATTEMPTED BUT FAILED BECAUSE OF 00026000
- * INVALID PASSWORD). 00027000
- * 00028000
- * ENTRY CONDITIONS - 00029000
- * 00030000
- * (REFER TO INDIVIDUAL ENTRY POINTS FOR DETAILS) 00031000
- * 00032000
- * EXIT CONDITIONS - 00033000
- * 00034000
- * (REFER TO INDIVIDUAL ENTRY POINTS FOR DETAILS) 00035000
- * 00036000
- * CALLS TO OTHER ROUTINES - 00037000
- * DMKACOQU - GENERATE ACCOUNTING RECORD 00038000
- * DMKCVTBD - CONVERT FROM BINARY TO PRINTABLE DECIMAL 00039000
- * DMKCVTBH - CONVERT FROM BINARY TO PRINTABLE HEX 00040000
- * DMKCVTDT - OBTAIN DATE-TIME 00041000
- * DMKERMSG - TO CONSTRUCT & SEND ERROR MESSAGES TO USER 00042000
- * DMKFREE - OBTAIN FREE STORAGE 00043000
- * DMKFRET - RETURN STORAGE 00044000
- * DMKQCNWT - SEND MESSAGE TO USER TERMINAL 00045000
- * DMKSCNAU - GET VMBLOK FOR A GIVEN USERID 00046000
- * DMKSCNFD - GET NEXT FIELD FROM COMMAND LINE 00047000
- * DMKSCNRD - GET REAL DEVICE ADDRESS 00048000
- * 00049000
- * 00050000
- * EXTERNAL REFERENCES - 00051000
- * 00052000
- * DMKSYSJR - THE JOURNALING AND PASSWORD SUPPRESSION 00053000
- * CONTROL BLOCK (JPSCBLOK). 00054000
- * 00055000
- * TABLES / WORK AREAS - 00056000
- * 00057000
- * PWDIBLOK - THE PASSWORD INVALID BLOCK. 00058000
- * 00059000
- * REGISTER USAGE - 00060000
- * (REFER TO INDIVIDUAL ENTRY POINTS FOR DETAILS) 00061000
- * 00062000
- * NOTES - 00063000
- * ALL ROUTINES WHICH CALL AN ENTRY POINT IN DMKJRL 00064000
- * HOLD THE GLOBAL SYSTEM LOCK. THEREFORE THIS ROUTINE 00065000
- * NEED NOT PERFORM ANY AP DICTATED HANDSTANDS. IT IS 00066000
- * WRITTEN AS IT WOULD BE IF IT RAN ONLY ON A UP. 00067000
- * 00068000
- * OPERATION - 00069000
- * (REFER TO INDIVIDUAL ENTRY POINTS FOR DETAILS.) 00070000
- * 00071000
- * MESSAGES - 00072000
- * 00073000
- * RESPONSE TO 'QUERY JOURNAL' 00074000
- * 00075000
- * 'JOURNAL LOGON XXX LINK XXX' 00076000
- * 00077000
- * WHERE XXX IS REPLACED BY ON OR OFF, AS APPROPRIATE. 00078000
- * 00079000
- * ERROR MESSAGE (SENT TO USERID DEFINED IN SYSJRL MACRO IN 00080000
- * DMKSYS AT SYSGEN TIME.) 00081000
- * DMKJRL145I USERID:<USERID> AT <TERM-RADDR> WITH 00082000
- * INVALID <TYPE> PASSWORD NO. <XX> (<PSWD>) HAS 00083000
- * VIOLATED THE LIMIT OF <YY> 00084000
- * 00085000
- *. 00086000
- EJECT 00087000
- COPY OPTIONS @V60BBBB 00088000
- COPY LOCAL @V60BBBB 00089000
- SPACE 3 00090000
- DMKJRL CSECT @V60BBBB 00091000
- SPACE 1 00092000
- MODID DC CL8'DMKJRL' PAGEABLE MODULE IDENTIFIER @V60BBBB 00093000
- SPACE 1 00094000
- * ENTRY DMKJRLQU 'QUERY JOURNAL' 00095000
- * ENTRY DMKJRLSE 'SET JOURNAL' 00096000
- * ENTRY DMKJRLLO LOGON (SUCCESSFUL OR FAILED 00097000
- * BECAUSE OF INVALID PASSWORD). 00098000
- * ENTRY DMKJRLSL SUCCESSFUL LINK 00099000
- * ENTRY DMKJRLIL LINK ATTEMPT WITH INVALID 00100000
- * PASSWORD. 00101000
- SPACE 1 00102000
- EXTRN DMKACOQU @V60BBBB 00103000
- EXTRN DMKCVTBD,DMKCVTBH,DMKCVTDT @VMI0039 00104000
- EXTRN DMKERMSG @V60BBBB 00105000
- EXTRN DMKQCNWT @V60BBBB 00106000
- EXTRN DMKSCNAU,DMKSCNFD,DMKSCNRD @V60BBBB 00107000
- EXTRN DMKSYSJR @V60BBBB 00108000
- SPACE 1 00109000
- USING PSA,R0 FOR ALL ENTRIES @V60BBBB 00110000
- USING VMBLOK,R11 " @V60BBBB 00111000
- USING DMKJRL,R12 " @V60BBBB 00112000
- USING SAVEAREA,R13 " @V60BBBB 00113000
- * TITLE ' DMKJRLQU' 00114000
- * 00115000
- * ENTRY POINT NAME - 00116000
- * 00117000
- * DMKJRLQU - 'QUERY JOURNAL' 00118000
- * 00119000
- * FUNCTION - 00120000
- * 00121000
- * TO DISPLAY THE STATUS OF THE JOURNALING FUNCTION. 00122000
- * 00123000
- * ATTRIBUTES - 00124000
- * 00125000
- * - REENTRANT, PAGEABLE, CALLED VIA SVC 00126000
- * - THIS COMMAND REQUIRES PRIVILEGE CLASS A 00127000
- * 00128000
- * ENTRY CONDITIONS - 00129000
- * 00130000
- * R0 - KEYWORD LENGTH (FROM DMKSCNFD) 00131000
- * R1 - KEYWORD ADDRESS (FROM DMKSCNFD) 00132000
- * R9 - ADDRESS OF COMMAND LINE BUFFER 00133000
- * R11- ADDRESS OF VMBLOK 00134000
- * R12- BASE ADDRESS OF MODULE 00135000
- * R13- ADDRESS OF SAVEAREA 00136000
- * 00137000
- * EXIT CONDITIONS - 00138000
- * 00139000
- * IF THE QUERY JOURNAL COMMAND IS VALID, EXIT IS ALWAYS 00140000
- * NORMAL. OTHERWISE EXIT IS VIA DMKERMSG. 00141000
- * 00142000
- * CALLS TO OTHER ROUTINES - 00143000
- * 00144000
- * DMKERMSG - TO CONSTRUCT & SEND ERROR MESSAGES TO USER 00145000
- * DMKQCNWT - SEND RESPONSE TO USER TERMINAL 00146000
- * 00147000
- * EXTERNAL REFERENCES - 00148000
- * 00149000
- * DMKSYSJR - JOURNALING AND PASSWORD SUPPRESSION 00150000
- * CONTROL BLOCK (JPSCBLOK). 00151000
- * 00152000
- * TABLES / WORK AREAS - 00153000
- * 00154000
- * NONE 00155000
- * 00156000
- * REGISTER USAGE - 00157000
- * 00158000
- * GPR 0 = KEYWORD LENGTH (FROM DMKSCNFD) 00159000
- * GPR 1 = KEYWORD ADDRESS (FROM DMKSCNFD) 00160000
- * GPR 3 = ADDRESS OF JPSCBLOK 00161000
- * GPR 12 = BASE REGISTER 00162000
- * GPR 13 = ADDRESS OF STANDARD SAVE AREA 00163000
- * GPR 14 = STANDARD RETURN REGISTER 00164000
- * GPR 15 = STANDARD ENTRY POINT REGISTER 00165000
- * 00166000
- * GPRS 2, AND 4-11 ARE NOT USED. 00167000
- * 00168000
- * NOTES - 00169000
- * THIS ROUTINE IS CALLED BY DMKCFCQU. SINCE THERE IS NO 00170000
- * NEED TO RETURN TO DMKCFCQU, THE SAVEAREA POINTED TO 00171000
- * BY REG 13 WILL BE RELEASED. THUS, WHEN THIS ROUTINE 00172000
- * RETURNS IT WILL GO DIRECTLY BACK TO CFM TO SCAN FOR 00173000
- * THE NEXT COMMAND. 00174000
- * 00175000
- * OPERATION - 00176000
- * 1. IF THE SET/QUERY JOURNAL COMMANDS ARE NOT VALID ON 00177000
- * THIS SYSTEM (DETERMINED BY THE JRLSQOK BIT IN THE 00178000
- * JPSCBLOK), ISSUE 'INVALID OPTION - JOURNAL' MESSAGE, 00179000
- * AND RETURN. 00180000
- * 00181000
- * 2. OTHERWISE INITIALIZE WORK AREA WITH MESSAGE INDICATING 00182000
- * BOTH LOGON AND LINK JOURNALING 'OFF'. UPDATE 'OFF' TO 00183000
- * 'ON', IF REQUIRED, BASED ON STATUS REFLECTED IN 00184000
- * JPSCBLOK. 00185000
- * 00186000
- * 3. DISPLAY THE RESPONSE. 00187000
- * 00188000
- * 4. RETURN TO DMKCFM. 00189000
- * 00190000
- * MESSAGES - 00191000
- * 00192000
- * RESPONSE TO 'QUERY JOURNAL' 00193000
- * 00194000
- * 'JOURNAL: LOGON- XXX, LINK- XXX' 00195000
- * 00196000
- * WHERE XXX IS REPLACED BY ON OR OFF, AS APPROPRIATE. 00197000
- * 00198000
- EJECT 00199000
- *-------------------------------------------------------------* 00200000
- * - RETURN PREVOIUS SAVE AREA. * 00201000
- * - SET UP BASE REGISTER. * 00202000
- * - SAVE SOME REGISTERS IN NEW SAVE AREA. * 00203000
- *-------------------------------------------------------------* 00204000
- SPACE 1 00205000
- ENTRY DMKJRLQU @V60BBBB 00206000
- DMKJRLQU DS 0H QUERY STATUS OF JOURNALING @V60BBBB 00207000
- USING *,R12 ESTABLISH ADDRESSABILITY @V60BBBB 00208000
- SVC 16 GIVE UP SAVEAREA @V60BBBB 00209000
- SL R12,=A(DMKJRLQU-DMKJRL) GET BEGIN ADDRESS @V60BBBB 00210000
- USING DMKJRL,R12 TELL ASSEMBLER @V60BBBB 00211000
- STM R0,R1,SAVER0 SAVE R1 &R2 IN NEW SAVE AREA @V60BBBB 00212000
- EJECT 00213000
- *-------------------------------------------------------------* 00214000
- * - IF THE SET/QUERY JOURNAL COMMANDS ARE NOT VALID ON * 00215000
- * THIS SYSTEM (DETERMINED BY THE JRLSQOK BIT IN THE * 00216000
- * JPSCBLOK), ISSUE 'INVALID OPTION - JOURNAL' MESSAGE. * 00217000
- *-------------------------------------------------------------* 00218000
- SPACE 1 00219000
- L R3,=A(DMKSYSJR) GET ADDRESS OF JPSCBLOK @V60BBBB 00220000
- USING JPSCBLOK,R3 TELL ASSEMBLER @V60BBBB 00221000
- TM JRLSQOK,L'JRLSQOK SET/QUERY SUPPORTED? @V60BBBB 00222000
- BO QU010 BR IF YES @V60BBBB 00223000
- * THE LENGTH AND ADDRESS ARE STILL IN R0 & R1. 00224000
- LA R2,3 INVALID OPTION - JOURNAL @V60BBBB 00225000
- ICM R0,B'1110',=C'CFC' MAKE IT LOOK AS IT ALWAYS @V60BBBB 00226000
- * HAS (BEFORE JOURNALING.) 00227000
- CALL DMKERMSG WRITE ERROR MESSAGE @V60BBBB 00228000
- * 00229000
- * DMKERMSG WILL EXIT AND NOT RETURN HERE. 00230000
- * 00231000
- EJECT 00232000
- *-------------------------------------------------------------* 00233000
- * - INITIALIZE WORK AREA WITH MESSAGE INDICATING BOTH * 00234000
- * LOGON AND LINK JOURNALING 'OFF'. UPDATE 'OFF' TO * 00235000
- * 'ON', IF REQUIRED, BASED ON STATUS REFLECTED IN * 00236000
- * JPSCBLOK. * 00237000
- *-------------------------------------------------------------* 00238000
- SPACE 1 00239000
- QU010 MVC QJRESP(QJRL),=C'JOURNAL: LOGON- OFF, LINK- OFF' @V60BBBB 00240000
- TM LOGONJRL,L'LOGONJRL LOGON JOURNALING? @V60BBBB 00241000
- BZ QU020 BR IF NOT @V60BBBB 00242000
- MVC QJLOS,=C'ON ' INDICATE 'ON' STATUS @V60BBBB 00243000
- QU020 TM LINKJRL,L'LINKJRL+L'LINKJRLI LINK JOURNALING? @V60BBBB 00244000
- BZ QU030 BR IF NOT @V60BBBB 00245000
- MVC QJLIS,=C'ON ' INDICATE 'ON' STATUS @V60BBBB 00246000
- EJECT 00247000
- *-------------------------------------------------------------* 00248000
- * - NOW DISPLAY THE RESPONSE. * 00249000
- * - THEN RETURN TO DMKCFM. * 00250000
- *-------------------------------------------------------------* 00251000
- SPACE 1 00252000
- QU030 LA R0,QJRL SET MESSAGE LENGTH @V60BBBB 00253000
- LA R1,QJRESP SET MESSAGE ADDRESS @V60BBBB 00254000
- CALL DMKQCNWT,PARM=NORET SEND THE RESPONSE @V60BBBB 00255000
- EXIT RETURN RETURN TO CFM @V60BBBB 00256000
- DROP R3 @V60BBBB 00257000
- * TITLE ' DMKJRLSE' 00258000
- * 00259000
- * ENTRY POINT NAME - 00260000
- * 00261000
- * DMKJRLSE - 'SET JOURNAL' 00262000
- * 00263000
- * FUNCTION - 00264000
- * 00265000
- * TO SET THE JOURNAL-LOGON OR JOURNAL-LINK FUNCTIONS 00266000
- * ON OR OFF. 00267000
- * 00268000
- * ATTRIBUTES - 00269000
- * 00270000
- * - REENTRANT, PAGEABLE, CALLED VIA SVC 00271000
- * - THIS COMMAND REQUIRES PRIVILEGE CLASS A 00272000
- * 00273000
- * ENTRY CONDITIONS - 00274000
- * 00275000
- * R0 - KEYWORD LENGTH (FROM DMKSCNFD) 00276000
- * R1 - KEYWORD ADDRESS (FROM DMKSCNFD) 00277000
- * R9 - ADDRESS OF COMMAND LINE BUFFER 00278000
- * R11- ADDRESS OF VMBLOK 00279000
- * R12- BASE ADDRESS OF MODULE 00280000
- * R13- ADDRESS OF SAVEAREA 00281000
- * 00282000
- * EXIT CONDITIONS - 00283000
- * 00284000
- * IF THE SET JOURNAL COMMAND IS VALID, EXIT IS ALWAYS 00285000
- * NORMAL. OTHERWISE EXIT IS VIA DMKERMSG. 00286000
- * 00287000
- * CALLS TO OTHER ROUTINES - 00288000
- * 00289000
- * DMKERMSG - TO CONSTRUCT & SEND ERROR MESSAGES TO USER 00290000
- * DMKQCNWT - SEND MESSAGE TO USER TERMINAL 00291000
- * DMKSCNFD - GET NEXT FIELD FROM COMMAND LINE 00292000
- * 00293000
- * EXTERNAL REFERENCES - 00294000
- * 00295000
- * DMKSYSJR - JOURNALING AND PASSWORD SUPPRESSION 00296000
- * CONTROL BLOCK (JPSCBLOK). 00297000
- * 00298000
- * TABLES / WORK AREAS - 00299000
- * 00300000
- * NONE 00301000
- * 00302000
- * REGISTER USAGE - 00303000
- * 00304000
- * GPR 0 = KEYWORD LENGTH (FROM DMKSCNFD) 00305000
- * GPR 1 = KEYWORD ADDRESS (FROM DMKSCNFD) 00306000
- * GPR 3 = ADDRESS OF JPSCBLOK 00307000
- * GPR 12 = BASE REGISTER 00308000
- * GPR 13 = ADDRESS OF STANDARD SAVE AREA 00309000
- * GPR 14 = STANDARD RETURN REGISTER 00310000
- * GPR 15 = STANDARD ENTRY POINT REGISTER 00311000
- * 00312000
- * GPRS 2, 4, AND 5 ARE USED AS WORK REGISTERS. 00313000
- * GPRS 6-11 ARE NOT USED. 00314000
- * 00315000
- * NOTES - 00316000
- * THIS ROUTINE IS CALLED BY DMKCFCQU. SINCE THERE IS NO 00317000
- * NEED TO RETURN TO DMKCFCQU, THE SAVEAREA POINTED TO 00318000
- * BY REG 13 WILL BE RELEASED. THUS, WHEN THIS ROUTINE 00319000
- * RETURNS IT WILL GO DIRECTLY BACK TO CFM TO SCAN FOR 00320000
- * THE NEXT COMMAND. 00321000
- * 00322000
- * OPERATION - 00323000
- * 1. IF THE SET/QUERY JOURNAL COMMANDS ARE NOT VALID ON 00324000
- * THIS SYSTEM (DETERMINED BY THE JRLSQOK BIT IN THE 00325000
- * JPSCBLOK), ISSUE 'INVALID OPTION - JOURNAL' MESSAGE, 00326000
- * AND RETURN. 00327000
- * 2. SCAN FOR NEXT WORD IN COMMAND BUFFER. 00328000
- * IF IT IS NOT 'LOGON' OR 'LINK', ISSUE ERROR MESSAGE 00329000
- * AND EXIT. 00330000
- * 3. SET INTERNAL SWITCH TO REMEMBER WHETHER IT'S 'LOGON' 00331000
- * OR 'LINK'. 00332000
- * SCAN FOR NEXT WORD IN COMMAND BUFFER. 00333000
- * IF IT IS NOT 'ON' OR 'OFF' OR NULL, ISSUE ERROR 00334000
- * MESSAGE, AND EXIT. 00335000
- * 4. IF LOGON JOURNALING IS BEING TURNED OFF, TURN OFF 00336000
- * LOGONJRL BIT IN THE JPSCBLOK AND FREE THE CHAIN OF 00337000
- * PWDIBLOK'S, AND EXIT. 00338000
- * 5. IF LINK JOURNALING IS BEING TURNED OFF, SIMPLY TURN 00339000
- * OFF THE LINKJRL BITS IN THE JPSCBLOK AND EXIT. 00340000
- * 6. IF LINK OR LOGON JOURNALING IS BEING TURNED ON, TURN 00341000
- * ON THE APPROPRIATE JOURNALING BIT(S) IN JPSCBLOK, 00342000
- * AND EXIT. 00343000
- * 00344000
- * MESSAGES - 00345000
- * NONE. 00346000
- EJECT 00347000
- *-------------------------------------------------------------* 00348000
- * - RETURN PREVOIUS SAVE AREA. * 00349000
- * - SET UP BASE REGISTER. * 00350000
- * - SAVE SOME REGISTERS IN NEW SAVE AREA. * 00351000
- *-------------------------------------------------------------* 00352000
- SPACE 1 00353000
- ENTRY DMKJRLSE @V60BBBB 00354000
- DMKJRLSE DS 0H SET STATUS OF JOURNALING @V60BBBB 00355000
- USING *,R12 ESTABLISH ADDRESSABILITY @V60BBBB 00356000
- SVC 16 GIVE UP SAVEAREA @V60BBBB 00357000
- SL R12,=A(DMKJRLSE-DMKJRL) GET BEGIN ADDRESS @V60BBBB 00358000
- USING DMKJRL,R12 TELL ASSEMBLER @V60BBBB 00359000
- STM R0,R1,SAVER0 SAVE R1 &R2 IN NEW SAVE AREA @V60BBBB 00360000
- EJECT 00361000
- *-------------------------------------------------------------* 00362000
- * - IF THE SET/QUERY JOURNAL COMMANDS ARE NOT VALID ON * 00363000
- * THIS SYSTEM (DETERMINED BY THE JRLSQOK BIT IN THE * 00364000
- * JPSCBLOK), ISSUE 'INVALID OPTION - JOURNAL' MESSAGE. * 00365000
- *-------------------------------------------------------------* 00366000
- SPACE 1 00367000
- L R3,=A(DMKSYSJR) GET ADDRESS OF JPSCBLOK @V60BBBB 00368000
- USING JPSCBLOK,R3 TELL ASSEMBLER @V60BBBB 00369000
- TM JRLSQOK,L'JRLSQOK SET/QUERY SUPPORTED? @V60BBBB 00370000
- BO SE010 BR IF YES @V60BBBB 00371000
- * THE LENGTH AND ADDRESS ARE STILL IN R0 & R1. 00372000
- LA R2,3 INVALID OPTION - JOURNAL @V60BBBB 00373000
- ICM R0,B'1110',=C'CFC' MAKE IT LOOK AS IT ALWAYS @V60BBBB 00374000
- * HAS (BEFORE JOURNALING). 00375000
- CALL DMKERMSG WRITE ERROR MESSAGE @V60BBBB 00376000
- * 00377000
- * DMKERMSG WILL EXIT AND NOT RETURN HERE. 00378000
- * 00379000
- EJECT 00380000
- *-------------------------------------------------------------* 00381000
- * - SCAN FOR NEXT WORD IN COMMAND BUFFER. * 00382000
- * - IF IT IS NOT 'LOGON' OR 'LINK', ISSUE ERROR MESSAGE, * 00383000
- * AND EXIT. * 00384000
- *-------------------------------------------------------------* 00385000
- SPACE 1 00386000
- SE010 CALL DMKSCNFD GET NEXT WORD IN COMMAND @V60BBBB 00387000
- BZ SE020 BR IF SOMETHING'S THERE @V60BBBB 00388000
- SLR R1,R1 INDICATE NO DATA PASSED @V60BBBB 00389000
- ICM R0,B'1110',MODID+3 SET MODULE IDENTIFIER @V60BBBB 00390000
- LA R2,26 'OPERAND MISSING' MESSAGE @V60BBBB 00391000
- CALL DMKERMSG WRITE ERROR MESSAGE @V60BBBB 00392000
- * 00393000
- * DMKERMSG WILL EXIT AND NOT RETURN HERE. 00394000
- * 00395000
- SE020 MVI SETSW,X'00' INITIALIZE SWITCHES @V60BBBB 00396000
- LA R4,=CL8'LOGON' SETUP FOR SUBROUTINE @V60BBBB 00397000
- LA R5,2 SET MINIMUM TRUNC @V60BBBB 00398000
- BAL R14,CKKEYW WAS IT 'LOGON' @V60BBBB 00399000
- BZ SE030 BR IF IT WAS @V60BBBB 00400000
- LA R4,=CL8'LINK' SET UP TO CHECK FOR 'LINK' @V60BBBB 00401000
- * MINIMUM TRUNC OF 2 IS STILL IN R5. 00402000
- BAL R14,CKKEYW WAS IT 'LINK' @V60BBBB 00403000
- BZ SE040 BR IF IT WAS @V60BBBB 00404000
- * SEND ERROR MESSAGE. 00405000
- SLR R1,R1 INDICATE NO DATA PASSED @V60BBBB 00406000
- ICM R0,B'1110',MODID+3 SET MODULE IDENTIFIER @V60BBBB 00407000
- LA R2,26 'OPERAND INVALID' MESSAGE @V60BBBB 00408000
- CALL DMKERMSG WRITE ERROR MESSAGE @V60BBBB 00409000
- * 00410000
- * DMKERMSG WILL EXIT AND NOT RETURN HERE. 00411000
- * 00412000
- EJECT 00413000
- *-------------------------------------------------------------* 00414000
- * - SET INTERNAL SWITCH TO REMEMBER WHETHER IT'S 'LOGON' * 00415000
- * OR 'LINK'. * 00416000
- * - SCAN FOR NEXT WORD IN COMMAND BUFFER. * 00417000
- * - IF IT IS NOT 'ON' OR 'OFF' OR NULL, ISSUE ERROR * 00418000
- * MESSAGE, AND EXIT. * 00419000
- *-------------------------------------------------------------* 00420000
- SPACE 1 00421000
- SE030 OI SELOGON,L'SELOGON INDICATE SET LOGON @V60BBBB 00422000
- B SE050 CONTINUE @V60BBBB 00423000
- SE040 OI SELINK,L'SELINK INDICATE SET LINK @V60BBBB 00424000
- SE050 CALL DMKSCNFD CHECK FOR NEXT KEYWORD @V60BBBB 00425000
- BNZ SE100 BR IF NULL- TREAT AS 'ON' @V60BBBB 00426000
- LA R4,=C'ON' SETUP TO CHECK FOR 'ON' @V60BBBB 00427000
- LA R5,2 MINIMUM TRUNC @V60BBBB 00428000
- BAL R14,CKKEYW GO CHECK IT @V60BBBB 00429000
- BZ SE100 BR IF IS WAS 'ON' @V60BBBB 00430000
- LA R4,=C'OFF' SETUP TO CHECK FOR 'OFF' @V60BBBB 00431000
- LA R5,3 MINIMUM TRUNC @V60BBBB 00432000
- BAL R14,CKKEYW GO CHECK IT @V60BBBB 00433000
- BZ SE060 BR IF IT WAS 'OFF' @V60BBBB 00434000
- * SEND ERROR MESSAGE. 00435000
- SLR R1,R1 INDICATE NO DATA PASSED @V60BBBB 00436000
- ICM R0,B'1110',MODID+3 SET MODULE IDENTIFIER @V60BBBB 00437000
- LA R2,26 'OPERAND INVALID' MESSAGE @V60BBBB 00438000
- CALL DMKERMSG WRITE ERROR MESSAGE @V60BBBB 00439000
- * 00440000
- * DMKERMSG WILL EXIT AND NOT RETURN HERE. 00441000
- * 00442000
- EJECT 00443000
- *-------------------------------------------------------------* 00444000
- * - IF LOGON JOURNALING IS BEING TURNED OFF, TURN OFF * 00445000
- * LOGONJRL BIT IN THE JPSCBLOK AND FREE THE CHAIN OF * 00446000
- * PWDIBLOK'S, AND EXIT. * 00447000
- * - IF LINK JOURNALING IS BEING TURNED OFF, SIMPLY TURN * 00448000
- * OFF THE LINKJRL BITS IN THE JPSCBLOK AND EXIT. * 00449000
- *-------------------------------------------------------------* 00450000
- SPACE 1 00451000
- SE060 DS 0H @V60BBBB 00452000
- TM SELOGON,L'SELOGON LOGON? @V60BBBB 00453000
- BNO SE070 BR IF NOT @V60BBBB 00454000
- NI LOGONJRL,X'FF'-L'LOGONJRL TURN OFF LOGON @V60BBBB 00455000
- * JOURNALING. 00456000
- * NOW FREE ANY PWDIBLOKS WHICH ARE ON THE CHAIN 00457000
- L R1,JPSPCHN GET ADDRESS OF FIRST PWDIBLOK @V60BBBB 00458000
- LTR R1,R1 ANYONE HOME? @V60BBBB 00459000
- SE065 BZ SEEXIT BR IF NOT- NO BLOCKS LEFT @V60BBBB 00460000
- USING PWDIBLOK,R1 ESTAB. ADDRESABILITY @V60BBBB 00461000
- L R4,PWDCHAIN GET ADDRESS OF NEXT PWDIBLOK @V60BBBB 00462000
- ST R4,JPSPCHN DECHAIN PWDIBLOK @V60BBBB 00463000
- LA R0,PWDSIZE DOUBLEWORDS TO FRET @V60BBBB 00464000
- CALL DMKFRET RETURN THE BLOCK @V60BBBB 00465000
- LTR R1,R4 ANY MORE PWDIBLOK'S LEFT? @V60BBBB 00466000
- B SE065 CONTINUE @V60BBBB 00467000
- DROP R1 @V60BBBB 00468000
- SE070 DS 0H @V60BBBB 00469000
- NI LINKJRL,X'FF'-L'LINKJRL-L'LINKJRLI TURN OFF @V60BBBB 00470000
- * LINK JOURNALING 00471000
- B SEEXIT RETURN @V60BBBB 00472000
- EJECT 00473000
- *-------------------------------------------------------------* 00474000
- * - 'ON' OR NULL WAS SPECIFIED. TURN ON APPROPRIATE * 00475000
- * JOURNALING BIT IN JPSCBLOK, AND EXIT. * 00476000
- *-------------------------------------------------------------* 00477000
- SPACE 1 00478000
- SE100 TM SELINK,L'SELINK SET LINK JOURNALING ON? @V60BBBB 00479000
- BO SE110 BR IF YES @V60BBBB 00480000
- OI LOGONJRL,L'LOGONJRL TURN ON LOGON JOURNALING @V60BBBB 00481000
- B SEEXIT RETURN @V60BBBB 00482000
- SE110 DS 0H @V60BBBB 00483000
- OI LINKJRL,L'LINKJRL+L'LINKJRLI TURN ON LINK @V60BBBB 00484000
- * JOURNALING 00485000
- EJECT 00486000
- *-------------------------------------------------------------* 00487000
- * RETURN FROM SET JOURNAL PROCESSING. * 00488000
- *-------------------------------------------------------------* 00489000
- SPACE 1 00490000
- SEEXIT EXIT RETURN RETURN TO DMKCFM @V60BBBB 00491000
- DROP R3 @V60BBBB 00492000
- EJECT 00493000
- *-------------------------------------------------------------* 00494000
- * - THIS SUBROUTINE CHECKS TO SEE IF THE KEYWORD JUST * 00495000
- * FOUND BY DMKSCNFD MATCHES OR IS A VALID * 00496000
- * TRUNCATION FOR THE 8 CHARACTER STRING WHOSE * 00497000
- * ADDRESS IS IN REGISTER 4 AND WHOSE MINIMUM * 00498000
- * TRUNCATION IS IN REGISTER 5. REGISTERS 0 AND * 00499000
- * 1 ARE ASSUMED TO BE AS THEY WERE UPON RETURN * 00500000
- * FROM DMKSCNFD. THE RETURN ADDRESS IS ASSUMED TO * 00501000
- * BE IN REGISTER 14. A MATCH IS INDICATED BY CC=0. * 00502000
- * THIS SUBROUTINE USES R15 AS A WORK REGISTER. ALL * 00503000
- * OTHER REGISTERS ARE LEFT UNCHANGED. * 00504000
- *-------------------------------------------------------------* 00505000
- SPACE 1 00506000
- CKKEYW DS 0H @V60BBBB 00507000
- CR R0,R5 IS IT LONG ENOUGH? @V60BBBB 00508000
- BLR R14 RETURN IF NOT (WITH CC NE 0) @V60BBBB 00509000
- LR R15,R0 GET LENGTH TO R15 @V60BBBB 00510000
- BCTR R15,0 DECREMENT FOR EXECUTE @V60BBBB 00511000
- EX R15,CKCLC MATCH? @V60BBBB 00512000
- BR R14 RETURN WITH CC INDICATING @V60BBBB 00513000
- * MATCH IF 0, NO MATCH IF NON-0. 00514000
- CKCLC CLC 0(0,R1),0(R4) EXECUTED INSTRUCTION @V60BBBB 00515000
- * TITLE ' DMKJRLLO' 00516000
- * 00517000
- * ENTRY POINT NAME - 00518000
- * 00519000
- * DMKJRLLO - CALLED BY DMKLOG (LOGON) FOR EACH 00520000
- * SUCCESSFUL LOGON AND FOR EACH LOGON 00521000
- * WHICH FAILS BECAUSE OF AN INVALID 00522000
- * PASSWORD. 00523000
- * 00524000
- * FUNCTION - 00525000
- * 00526000
- * JOURNAL INSTANCES OF THE USE OF INVALID LOGON 00527000
- * PASSWORDS. 00528000
- * 00529000
- * ATTRIBUTES - 00530000
- * 00531000
- * REENTRANT, PAGEABLE, CALLED VIA SVC 00532000
- * 00533000
- * ENTRY CONDITIONS - 00534000
- * 00535000
- * R2 - = 0 FOR SUCCESSFUL LOGON/AUTOLOG 00536000
- * = ADDRESS OF INVALID PASSWORD OTHERWISE 00537000
- * R4 - = 0 IF LOGON COMMAND 00538000
- * = ADDRESS OF ISSUER OF AUTOLOG COMMAND OTHERWISE 00539000
- * R5 - = ADDRESS OF USERID OF COMMAND ISSUER 00540000
- * R11- = ADDRESS OF VMBLOK 00541000
- * R12- = BASE ADDRESS OF MODULE 00542000
- * R13- = ADDRESS OF SAVEAREA 00543000
- * 00544000
- * EXIT CONDITIONS - 00545000
- * 00546000
- * EXIT IS ALWAYS NORMAL. THERE ARE NO ERROR EXITS. 00547000
- * 00548000
- * CALLS TO OTHER ROUTINES - 00549000
- * 00550000
- * DMKACOQU - GENERATE ACCOUNTING RECORD 00551000
- * DMKCVTBD - CONVERT FROM BINARY TO PRINTABLE DECIMAL 00552000
- * DMKCVTBH - CONVERT FROM BINARY TO PRINTABLE HEX 00553000
- * DMKCVTDT - OBTAIN DATE-TIME 00554000
- * DMKFREE - OBTAIN FREE STORAGE 00555000
- * DMKFRET - RETURN STORAGE 00556000
- * DMKQCNWT - SEND MESSAGE TO USER TERMINAL 00557000
- * DMKSCNAU - GET VMBLOK FOR A GIVEN USERID 00558000
- * DMKSCNFD - GET NEXT FIELD FROM COMMAND LINE 00559000
- * DMKSCNRD - GET REAL DEVICE ADDRESS 00560000
- * 00561000
- * EXTERNAL REFERENCES - 00562000
- * DMKSYSJR - JOURNALING AND PASSWORD SUPPRESSION 00563000
- * CONTROL BLOCK (JPSCBLOK). 00564000
- * 00565000
- * TABLES / WORK AREAS - 00566000
- * 00567000
- * PWDIBLOK - PASSWORD-INVALID BLOCK 00568000
- * 00569000
- * REGISTER USAGE - 00570000
- * 00571000
- * GPR 2 = ADDRESS OF INVALID PASSWORD OR, IF 00572000
- * LOGON/AUTOLOG WAS SUCCESSFUL, 0. 00573000
- * GPR 3 = ADDRESS OF JPSCBLOK 00574000
- * GPR 4 = ADDRESS OF COMMAND ISSUERS VMBLOK 00575000
- * GPR 5 = ADDRESS OF USERID OF COMMAND ISSUER 00576000
- * GPR 6 = ADDRESS OF PWDIBLOK 00577000
- * GPR 7 = USED IN SCANNING PWDIBLOK'S TO POINT AT 00578000
- * PREVIOUS LINK FIELD. 00579000
- * GPR 8 = CONTAINS TERMINALS RDEVBLOK ADDRESS (OR 00580000
- * 0 IF NO TERMINAL) IN INITIAL PROCESSING. 00581000
- * IT IS A WORK REGISTER THEREAFTER. 00582000
- * GPR 11 = ADDRESS OF CALLER'S VMBLOK 00583000
- * GPR 12 = BASE REGISTER 00584000
- * GPR 13 = ADDRESS OF STANDARD SAVE AREA 00585000
- * GPR 14 = STANDARD RETURN REGISTER 00586000
- * GPR 15 = STANDARD ENTRY POINT REGISTER 00587000
- * 00588000
- * GPRS 0-1, AND 9-10 ARE WORK REGISTERS 00589000
- * 00590000
- * NOTES - 00591000
- * NONE. 00592000
- * 00593000
- * OPERATION - 00594000
- * 00595000
- * 1. SAVE REGISTERS AND ESTABLISH BASE REGISTER, ETC. 00596000
- * 2. SET FLAG IF THIS IS AN AUTOLOG INITIATED ENTRY. 00597000
- * 3. GET THE REAL DEVICE BLOCK ADDRESS IN EBCDIC. 00598000
- * 4. SCAN PWDIBLOK'S FOR A MATCH ON EITHER USERID OF 00599000
- * COMMAND ISSUER OR TERMINAL ADDRESS. 00600000
- * 5. IF THERE IS NO MATCH AND THE PASSWORD IS VALID, ALL 00601000
- * IS WELL AND WE CAN EXIT. 00602000
- * 6. IF THERE IS NO MATCH AND THE PASSWORD IS INVALID, 00603000
- * OBTAIN STORAGE FOR A PWDIBLOK, INITIALIZE IT, AND 00604000
- * PUT IT ON THE CHAIN ANCHORED IN THE JPSCBLOK. 00605000
- * 7. IF A MATCHING PWDIBLOK WAS FOUND AND THE PASSWORD 00606000
- * WAS VALID, DECHAIN THE PWDIBLOK, FREE THE STORAGE IT 00607000
- * OCCUPIES, AND EXIT. 00608000
- * 8. IF A MATCHING PWDIBLOK WAS FOUND AND THE PASSWORD 00609000
- * WAS INVALID, INCREMENT THE INVALID PASSWORD COUNT IN 00610000
- * THE PWDIBLOK, CALL LOGONCHK TO ISSUE ANY MESSAGE 00611000
- * OR GENERATE ANY ACCOUNTING RECORD THAT MAY BE 00612000
- * REQUIRED, AND EXIT. 00613000
- * 9. RETURN FROM JOURNAL LOGON PROCESSING. 00614000
- * 00615000
- * MESSAGES - 00616000
- * 00617000
- * ERROR MESSAGE (SENT TO USERID DEFINED IN SYSJRL MACRO IN 00618000
- * DMKSYS AT SYSGEN TIME.) 00619000
- * DMKJRL145I USERID:<USERID> AT <TERM-RADDR> WITH 00620000
- * INVALID LOGON PASSWORD NO. <XX> (<PSWD>) HAS 00621000
- * VIOLATED THE LIMIT OF <YY> 00622000
- * 00623000
- EJECT 00624000
- *-------------------------------------------------------------* 00625000
- * - SAVE REGISTERS AND ESTABLISH BASE REGISTER, ETC. * 00626000
- * - SET FLAG IF THIS IS AN AUTOLOG INITIATED ENTRY. * 00627000
- * - INITIALIZE ADDRESS OF VMBLOK OF COMMAND ISSUER IN R4.* 00628000
- * - GET THE REAL DEVICE BLOCK ADDRESS IN EBCDIC. * 00629000
- *-------------------------------------------------------------* 00630000
- SPACE 1 00631000
- DMKJRLLO RELOC ENTRY FROM LOGON PROCESS (DMKLOG)@V60BBBB 00632000
- L R3,=A(DMKSYSJR) GET ADDRESS OF JPSCBLOK @V60BBBB 00633000
- USING JPSCBLOK,R3 TELL ASSEMBLER @V60BBBB 00634000
- MVI LOFLAGS,L'AUTOLOG INITIALIZE FLAGS TO BE USED @V60BBBB 00635000
- LTR R4,R4 AUTOLOG? @V60BBBB 00636000
- BNZ LO010 BR IF YES @V60BBBB 00637000
- NI LOFLAGS,X'FF'-L'AUTOLOG TURN OFF AUTOLOG FLAG @V60BBBB 00638000
- LR R4,R11 SET R4 TO ISSUER OF LOGON @V60BBBB 00639000
- LO010 MVC LCHTERMA,=C'NONE' INITIALIZE FIELD TO CONTAIN @V60BBBB 00640000
- * TERMINAL ADDRESS TO 'NONE'. 00641000
- * (THERE MAY BE NO TERMINAL E.G., 00642000
- * WHEN A DISCONNECT'ED MACHINE 00643000
- * ISSUES AN AUTOLOG.) 00644000
- L R8,VMTERM-VMBLOK(,R4) GET ADDRESS OF RDEVBLOK @V60BBBB 00645000
- LTR R8,R8 ONE THERE? @V60BBBB 00646000
- BZ LO020 BR IF NOT @V60BBBB 00647000
- * DMKSCNRD WANTS RDEVBLOK ADDRESS IN R8. 00648000
- CALL DMKSCNRD GET REAL DEVICE ADDRESS @V60BBBB 00649000
- CALL DMKCVTBH GET IT INTO EBCDIC @V60BBBB 00650000
- ST R1,LCHTERMA SAVE IT FOR LATER @V60BBBB 00651000
- EJECT 00652000
- *-------------------------------------------------------------* 00653000
- * - SCAN PWDIBLOK'S FOR A MATCH ON EITHER USERID OF * 00654000
- * COMMAND ISSUER OR TERMINAL ADDRESS. * 00655000
- * - IF THERE IS NO MATCH AND THE PASSWORD IS VALID, ALL * 00656000
- * IS WELL AND WE CAN EXIT. * 00657000
- * - IF THERE IS NO MATCH AND THE PASSWORD IS INVALID, * 00658000
- * OBTAIN STORAGE FOR A PWDIBLOK, INITIALIZE IT, AND * 00659000
- * PUT IT ON THE CHAIN ANCHORED IN THE JPSCBLOK. * 00660000
- *-------------------------------------------------------------* 00661000
- SPACE 1 00662000
- LO020 L R6,JPSPCHN PRIME THE PUMP @V60BBBB 00663000
- LA R7,JPSPCHN PRIME PREVIOUS-LINK-FIELD POINTER@V60BBBB 00664000
- LO030 LTR R6,R6 ANY MORE BLOCKS TO SCAN? @V60BBBB 00665000
- BZ LO100 BR IF NOT - NO MATCH @V60BBBB 00666000
- USING PWDIBLOK,R6 ESTABLISH ADDRESSABILITY @V60BBBB 00667000
- CLC PWDUSRID,0(R5) USERID MATCH? @V60BBBB 00668000
- BE LO200 BR IF YES - WE HAVE A MATCH @V60BBBB 00669000
- LTR R8,R8 WAS THERE A TERMINAL? @V60BBBB 00670000
- BZ LO040 BR IF NOT @V60BBBB 00671000
- CLC PWDTERMA,LCHTERMA SAME TERMINAL ADDRESS? @V60BBBB 00672000
- BE LO200 BR IF YES - THIS, ALSO, WE @V60BBBB 00673000
- * CONSIDER A MATCH. 00674000
- LO040 LA R7,PWDCHAIN SAVE POINTER TO THIS LINK FIELD @V60BBBB 00675000
- * IN CASE WE MUST DEQUEUE THE NEXT 00676000
- * PWDIBLOK. 00677000
- L R6,PWDCHAIN GET POINTER TO NEXT @V60BBBB 00678000
- B LO030 CONTINUE SEARCH @V60BBBB 00679000
- DROP R6 @V60BBBB 00680000
- LO100 DS 0H COME HERE IF NO MATCH @V60BBBB 00681000
- LTR R2,R2 WAS PASSWORD VALID? @V60BBBB 00682000
- BZ LOEXIT BR IF YES - ALL'S WELL @V60BBBB 00683000
- LA R0,PWDSIZE SIZE OF PWDIBLOK FOR DMKFREE @V60BBBB 00684000
- CALL DMKFREE GET STORAGE FOR PWDIBLOK @V60BBBB 00685000
- LR R6,R1 GET ADDRESS TO PERMANENT HOME @V60BBBB 00686000
- USING PWDIBLOK,R6 ESTABLISH ADDRESSABILITY @V60BBBB 00687000
- MVC PWDUSRID,0(R5) MOVE IN USERID @V60BBBB 00688000
- MVC PWDTERMA,LCHTERMA MOVE IN TERMINAL ADDRESS @V60BBBB 00689000
- LR R9,R2 SAVE R2 ACROSS DMKCVTDT @V60BBBB 00690000
- LA R1,DATEWORK WHERE DATE SHOULD BE STORED @V60BBBB 00691000
- * BY DMKCVTDT. 00692000
- LA R2,TIMEWORK WHERE TIME SHOULD BE STORED @V60BBBB 00693000
- * BY DMKCVTDT. 00694000
- CALL DMKCVTDT GET DATE AND TIME. @V60BBBB 00695000
- LR R2,R9 RESTORE R2 @V60BBBB 00696000
- MVC PWDDATE(L'PWDDATE+L'PWDTIME),SLYMASK MOVE IN @V60BBBB 00697000
- * MASK TO BE TRANSLATED TO REMOVE 00698000
- * :'S FROM TIME AND /'S FROM DATE. 00699000
- TR PWDDATE(L'PWDDATE+L'PWDTIME),DATEWORK GET @V60BBBB 00700000
- * DATE & TIME IN MMDDYYHHMMSS FORMAT. 00701000
- * 00702000
- MVI PWDINVCT,X'01' INITIALIZE INVALID PASSWORD @V60BBBB 00703000
- * COUNT TO 1. 00704000
- OI PWDLOG,L'PWDLOG ASSUME THIS IS LOGON @V60BBBB 00705000
- TM AUTOLOG,L'AUTOLOG WAS IT AUTOLOG? @V60BBBB 00706000
- BZ LO120 BR IF NOT @V60BBBB 00707000
- XI PWDLOG,L'PWDLOG+L'PWDALOG TURN LOGON BIT OFF @V60BBBB 00708000
- * AND AUTOLOG BIT ON. 00709000
- LO120 L R1,JPSPCHN PICK UP ANCHOR @V60BBBB 00710000
- ST R1,PWDCHAIN PUT VALUE INTO NEW PWDIBLOK @V60BBBB 00711000
- ST R6,JPSPCHN PUT NEW GUY INTO SERVICE. @V60BBBB 00712000
- BAL R14,LOGONCHK GO DO ANYTHING ELSE WHICH @V60BBBB 00713000
- * MAY BE REQUIRED FOR THIS LOGON 00714000
- * ATTEMPT. 00715000
- B LOEXIT ABANDON SHIP @V60BBBB 00716000
- EJECT 00717000
- *-------------------------------------------------------------* 00718000
- * - IF A MATCHING PWDIBLOK WAS FOUND AND THE PASSWORD * 00719000
- * WAS VALID, DECHAIN THE PWDIBLOK, FREE THE STORAGE IT * 00720000
- * OCCUPIES, AND EXIT. * 00721000
- * - IF A MATCHING PWDIBLOK WAS FOUND AND THE PASSWORD * 00722000
- * WAS INVALID, INCREMENT THE INVALID PASSWORD COUNT IN * 00723000
- * THE PWDIBLOK, CALL LOGONCHK TO ISSUE ANY MESSAGE * 00724000
- * OR GENERATE ANY ACCOUNTING RECORD THAT MAY BE * 00725000
- * REQUIRED, AND EXIT. * 00726000
- *-------------------------------------------------------------* 00727000
- SPACE 1 00728000
- LO200 DS 0H COME HERE IF MATCH FOUND @V60BBBB 00729000
- LTR R2,R2 PASSWORD VALID? @V60BBBB 00730000
- BNZ LO300 BR IF NOT @V60BBBB 00731000
- * R7 CONTAINS POINTER TO PREVIOUS LINK FIELD, SO 00732000
- * TO DEQUEUE WE NEED ONLY: 00733000
- L R1,PWDCHAIN GET POINTER TO NEXT FROM BLOCK @V60BBBB 00734000
- * TO BE DEQUEUED AND... 00735000
- ST R1,0(,R7) STORE IT IN PREVIOUS LINK FIELD @V60BBBB 00736000
- LA R0,PWDSIZE SET AMOUNT OF STORAGE TO BE @V60BBBB 00737000
- * FRET'ED. 00738000
- LR R1,R6 POINT AT PWDIBLOK @V60BBBB 00739000
- CALL DMKFRET RETURN THE PWDIBLOK @V60BBBB 00740000
- B LOEXIT ABANDON SHIP @V60BBBB 00741000
- LO300 DS 0H MATCH FOUND - PASSWORD INVALID @V60BBBB 00742000
- IC R1,PWDINVCT GET THE CURRENT INCORRECT @V60BBBB 00743000
- * PASSWORD COUNT. 00744000
- LA R1,1(,R1) ADD 1 @V60BBBB 00745000
- STC R1,PWDINVCT STORE IT BACK INTO PWDIBLOK @V60BBBB 00746000
- BAL R14,LOGONCHK GO TAKE ANY FURTHER ACTION WHICH @V60BBBB 00747000
- * MAY BE REQUIRED. 00748000
- B LOEXIT CONTINUE @V60BBBB 00749000
- EJECT 00750000
- *-------------------------------------------------------------* 00751000
- * RETURN FROM JOURNAL LOGON PROCESSING. * 00752000
- *-------------------------------------------------------------* 00753000
- SPACE 1 00754000
- LOEXIT EXIT RETURN RETURN TO DMKCFM @V60BBBB 00755000
- EJECT 00756000
- *-------------------------------------------------------------* 00757000
- * - THIS SUBROUTINE CHECKS TO SEE WHETHER THE MESSAGE * 00758000
- * AND/OR THE ACCOUNTING RECORD THRESHOLDS HAVE BEEN * 00759000
- * EQUALLED OR EXCEEDED. IF THEY HAVE, APPROPRIATE * 00760000
- * ACTIONS ARE TAKEN. * 00761000
- * - UPON ENTRY TO THIS SUBROUTINE, IT IS ASSUMED * 00762000
- * THAT R2 POINTS AT THE INVALID PASSWORD, * 00763000
- * R3 POINTS AT THE JPSCBLOK, R4 POINTS AT THE VMBLOK * 00764000
- * OF THE COMMAND ISSUER, R5 POINTS AT THE COMMAND * 00765000
- * ISSUER'S USERID, R6 POINTS AT THE PWDIBLOK, R11 * 00766000
- * POINTS AT THE CALLERS VMBLOK, AND R14 CONTAINS THE * 00767000
- * RETURN ADDRESS. * 00768000
- *-------------------------------------------------------------* 00769000
- SPACE 3 00770000
- *-------------------------------------------------------------* 00771000
- * - SKIP GENERATION OF ACCOUNTING RECORD IF NO RECORDS * 00772000
- * ARE TO BE SENT OR IF ACCOUNTING RECORD THRESHOLD * 00773000
- * HAS NOT BEEN EQUALLED OR EXCEEDED. * 00774000
- * - OTHERWISE, GET STORAGE FOR AN ACNTBLOK. * 00775000
- * - BUILD THE TYPE '04' RECORD IN THE OBTAINED STORAGE. * 00776000
- * - QUEUE THE ACNTBLOK VIA A CALL TO DMKACOQU. * 00777000
- *-------------------------------------------------------------* 00778000
- SPACE 1 00779000
- LOGONCHK DS 0H @V60BBBB 00780000
- ST R14,LCHSR14 SAVE RETURN ADDRESS @V60BBBB 00781000
- CLI JPSLOGAR,X'00' SHOULD ANY ACCOUNTING RECORDS @V60BBBB 00782000
- * BE GENERATED? 00783000
- BE LCH100 BR IF NOT @V60BBBB 00784000
- CLC PWDINVCT,JPSLOGAR HAS THE ACCOUNTING RECORD @V60BBBB 00785000
- * THRESHOLD BEEN MET OR EXCEEDED? 00786000
- BL LCH100 BR IF NOT @V60BBBB 00787000
- * BUILD TYPE '04' ACCOUNTING RECORD. 00788000
- LA R0,ACNTSIZE SET SIZE OF ACNTBLOK @V60BBBB 00789000
- CALL DMKFREE GET AN ACNTBLOK @V60BBBB 00790000
- LR R10,R1 MOVE TO PERMANENT REG @V60BBBB 00791000
- USING ACNTBLOK,R10 ESTABLISH ADDRESSABILITY @V60BBBB 00792000
- MVC LAUSERID,0(R5) MOVE IN COMMAND ISSUER'S ID @V60BBBB 00793000
- MVC LAACCT#,BLANKS CLEAR ACCOUNT NUMBER SLOT (AT @V60BBBB 00794000
- * THIS POINT WE DON'T KNOW IT). 00795000
- CLC PWDINVCT,JPSLOGAR IS THIS THE 1ST CARD TO BE @VA11133 00795100
- * PUNCHED? 00795150
- BE CARD1 YES ONTO CARD1 @VA11133 00795200
- LR R9,R2 SAVE R2 ACROSS DMKCVTDT @VA11133 00795250
- LA R1,DATEWORK CATCHES THE DATE FROM DMKCVTDT @VA11133 00795300
- LA R2,TIMEWORK CATCHES THE TIME FROM DMKCVTDT @VA11133 00795350
- CALL DMKCVTDT GET DATE AND TIME @VA11133 00795400
- LR R2,R9 RESTORE R2 @VA11133 00795450
- MVC LADATE(L'LADATE+L'LATIME),SLYMASK MOVE IN MASK @VA11133 00795500
- * TO REMOVE : AND / 00795550
- TR LADATE(L'LADATE+L'LATIME),DATEWORK GET DATE IN @VA11133 00795600
- * MMDDYYHHMMSS FORMAT 00795650
- B CARD2 @VA11133 00795700
- CARD1 DS 0H @VA11133 00795750
- MVC LADATE(L'LADATE+L'LATIME),PWDDATE MOVE IN DATE @V60BBBB 00796000
- * AND TIME (MMDDYYHHMMSS). 00797000
- CARD2 DS 0H @VA11133 00797050
- MVC LATERMA,LCHTERMA MOVE IN TERMINAL ADDRESS @V60BBBB 00798000
- MVC LAIPWD,0(R2) MOVE IN INVALID PASSWORD @V60BBBB 00799000
- MVI LAAUSID,C' ' CLEAR UNUSED PORTIONS @V60BBBB 00800000
- MVC LAAUSID+1(LAEND-LAAUSID-1),LAAUSID ** @V60BBBB 00801000
- SLR R1,R1 SET UP FOR COUNT CONVERSION @V60BBBB 00802000
- IC R1,PWDINVCT PICK UP CURRENT COUNT @V60BBBB 00803000
- CALL DMKCVTBH MAKE IT LOOK NICE @V60BBBB 00804000
- STCM R1,B'0011',LAIPWNO PUT IT INTO ACCOUNTING REC. @V60BBBB 00805000
- SLR R1,R1 SET UP FOR COUNT CONVERSION @V60BBBB 00806000
- IC R1,JPSLOGAR PICK UP CURRENT LIMIT @V60BBBB 00807000
- CALL DMKCVTBH MAKE IT LOOK NICE @V60BBBB 00808000
- STCM R1,B'0011',LAIPWLM PUT IT INTO ACCOUNTING REC. @V60BBBB 00809000
- TM AUTOLOG,L'AUTOLOG AUTOLOG COMMAND? @V60BBBB 00810000
- BZ LCH020 BR IF NOT @V60BBBB 00811000
- MVC LAAUSID,VMUSER-VMBLOK(R4) MOVE IN USERID OF @V60BBBB 00812000
- * ISSUER OF AUTOLOG. 00813000
- LCH020 MVC LATYPE,=C'04' SET TO TYPE '04' ACCOUNTING @V60BBBB 00814000
- * RECORD 00815000
- LR R8,R4 SAVE R4 ACROSS CALL TO DMKACOQU @V60BBBB 00816000
- LR R4,R10 ACOQU WANTS BUFFER ADDRESS IN R4 @V60BBBB 00817000
- CALL DMKACOQU QUEUE THE ACCOUNT CARD BUFFER @V60BBBB 00818000
- * THE BUFFER WILL BE FRET'ED BY THE ACCOUNTING 00819000
- * ROUTINES. WE CAN JUST RELAX AND GO ON DOING OUR 00820000
- * OWN THING. 00821000
- DROP R10 @V60BBBB 00822000
- LR R4,R8 RESTORE R4 @V60BBBB 00823000
- EJECT 00824000
- *-------------------------------------------------------------* 00825000
- * - SKIP GENERATION OF MESSAGE IF NO MESSAGES ARE TO BE * 00826000
- * SENT OR IF MESSAGE THRESHOLD HAS NOT BEEN EQUALLED * 00827000
- * OR EXCEEDED. * 00828000
- * - OTHERWISE, GET STORAGE FOR A DMKJRL145I MESSAGE. * 00829000
- * - BUILD THE MESSAGE IN THE OBTAINED STORAGE. * 00830000
- * - SEND THE MESSAGE VIA A CALL TO DMKQCNWT. * 00831000
- *-------------------------------------------------------------* 00832000
- SPACE 1 00833000
- LCH100 DS 0H @V60BBBB 00834000
- CLI JPSLOGMS,X'00' SHOULD ANY MESSAGES BE SENT? @V60BBBB 00835000
- BE LCHRETRN BR IF NOT @V60BBBB 00836000
- CLC PWDINVCT,JPSLOGMS HAS THRESHOLD BEEN MET OR @V60BBBB 00837000
- * EXCEEDED? 00838000
- BL LCHRETRN BR IF NOT @V60BBBB 00839000
- LA R1,JPSLOGU POINT TO USERID TO WHOM MESSAGE @V60BBBB 00840000
- * SHOULD BE SENT. 00841000
- LA R0,8 SET USERID LENGTH @V60BBBB 00842000
- CALL DMKSCNAU GET THE VMBLOK ADDRESS @V60BBBB 00843000
- BNZ LCH110 BR IF USERID NOT ABLE TO @V60BBBB 00844000
- * RECEIVE MESSAGE. 00845000
- TM VMOSTAT-VMBLOK(R1),VMDISC+VMKILL USER DYING @V60BBBB 00846000
- * OR DISCONNECTED? 00847000
- BNZ LCH110 BR IF YES- CAN'T SEND TO HIM(HER)@V60BBBB 00848000
- CLC VMTERM-VMBLOK(,R1),F0 ANY TERMINAL? @V60BBBB 00849000
- BNE LCH200 ALL'S WELL- LET 'ER RIP @V60BBBB 00850000
- LCH110 L R1,ASYSOP GET OPERATOR'S VMBLOK @V60BBBB 00851000
- CLC VMTERM-VMBLOK(,R1),F0 OPERATOR THERE? @V60BBBB 00852000
- BE LCHRETRN BR IF NOT- WE CAN DO NO MORE @V60BBBB 00853000
- LCH200 LR R9,R1 SAVE ADDRESS OF VMBLOK OF USER @V60BBBB 00854000
- * TO RECEIVE MESSAGE. 00855000
- LA R0,LCHMDBLW AMOUNT OF STORAGE FOR DMKJRL145I @V60BBBB 00856000
- * MESSAGE. 00857000
- CALL DMKFREE GET THE STORAGE @V60BBBB 00858000
- LR R10,R1 GET ADDRESS TO NEW HOME @V60BBBB 00859000
- MVC 0(LCHMSGLN,R10),LCHMSG MOVE IN MESSAGE SKELETON @V60BBBB 00860000
- MVC LCHMUSER-LCHMSG(,R10),0(R5) MOVE IN ID @V60BBBB 00861000
- MVC LCHMTRMA-LCHMSG(,R10),LCHTERMA MOVE IN TERMINAL @V60BBBB 00862000
- * ADDRESS. 00863000
- MVC LCHTYPE-LCHMSG(,R10),=C'LOGON' MOVE IN TYPE @V60BBBB 00864000
- SLR R1,R1 SET UP FOR COUNT CONVERSION @V60BBBB 00865000
- IC R1,PWDINVCT PICK UP CURRENT COUNT @V60BBBB 00866000
- CALL DMKCVTBD MAKE IT LOOK NICE @VMI0039 00867000
- STCM R1,B'0111',LCHIVPNO-LCHMSG(R10) PUT IT INTO @VMI0039 00868000
- * MESSAGE. 00869000
- MVC LCHMIVP-LCHMSG(,R10),0(R2) MOVE IN INVALID @V60BBBB 00870000
- * PASSWORD. 00871000
- SLR R1,R1 SET UP FOR COUNT CONVERSION @V60BBBB 00872000
- IC R1,JPSLOGMS PICK UP CURRENT LIMIT @V60BBBB 00873000
- CALL DMKCVTBD MAKE IT LOOK NICE @VMI0039 00874000
- STCM R1,B'0111',LCHIVPLM-LCHMSG(R10) PUT IT INTO @VMI0039 00875000
- * MESSAGE. 00876000
- TM AUTOLOG,L'AUTOLOG WAS THIS MESSAGE THE RESULT @V60BBBB 00877000
- * OF AN AUTOLOG? 00878000
- BZ LCH300 BR IF NOT - MESSAGE IS COMPLETE @V60BBBB 00879000
- MVC LCHALOG-LCHMSG(,R10),ALSUFF MOVE IN AUTOLOG @V60BBBB 00880000
- * SUFFIX. 00881000
- MVC LCHALOG-LCHMSG+(ALSNAME-ALSUFF)(L'ALSNAME,R10),VMUSER-VM+00882000
- BLOK(R4) MOVE IN USERID OF ISSUER OF @V60BBBB 00883000
- * AUTOLOG COMMAND. 00884000
- LCH300 LR R1,R9 SETUP TO SWTCHVM @V60BBBB 00885000
- LR R9,R11 SAVE OUR VMBLOK ADDRESS @V60BBBB 00886000
- * SWITCH TO VMBLOK OF MESSAGE 00887000
- SWTCHVM DESTINATION. @V60BBBB 00888000
- LR R1,R10 PUT MESSAGE ADDRESS IN R1 FOR @V60BBBB 00889000
- * DMKQCNWT. 00890000
- LA R0,LCHMSGLN SET NUMBER OF BYTES IN MESSAGE @V60BBBB 00891000
- STM R2,R3,LCHS23 SAVE REGS USED BY DMKQCNWT @V60BBBB 00892000
- LA R3,LCHMDBLW NUMBER OF DBLWDS TO BE FRET'ED @V60BBBB 00893000
- CALL DMKQCNWT,PARM=NORET+DFRET+ALARM WRITE THE MSG. @V60BBBB 00894000
- LR R1,R9 SETUP TO SWITCH BACK TO CALLER'S @V60BBBB 00895000
- * VMBLOK 00896000
- SWTCHVM RETURN TO CALLER'S VMBLOK @V60BBBB 00897000
- LM R2,R3,LCHS23 RESTORE REGISTERS 2 & 3 @V60BBBB 00898000
- SPACE 3 00899000
- *-------------------------------------------------------------* 00900000
- * RETURN TO CALLER. * 00901000
- *-------------------------------------------------------------* 00902000
- SPACE 1 00903000
- LCHRETRN L R14,LCHSR14 RESTORE RETURN ADDRESS @V60BBBB 00904000
- BR R14 RETURN TO CALLER @V60BBBB 00905000
- EJECT 00906000
- ALSUFF DC C', A=' SUFFIX FOR FOLLOWING MESSAGE TO @V60BBBB 00907000
- ALSNAME DS CL8 IDENTIFY ISSUER OF AUTOLOG. @V60BBBB 00908000
- LALSUFF EQU *-ALSUFF @V60BBBB 00909000
- *-------------------------------------------------------------* 00910000
- * SKELETON FOR DMKJRL145I MESSAGE. * 00911000
- *-------------------------------------------------------------* 00912000
- SPACE 1 00913000
- LCHMSG DS 0D @V60BBBB 00914000
- DC C'DMKJRL145I USERID: ' @V60BBBB 00915000
- LCHMUSER DS CL8 @V60BBBB 00916000
- DC C' AT ' @V60BBBB 00917000
- LCHMTRMA DS CL4 @V60BBBB 00918000
- DC C' WITH INVALID ' @V60BBBB 00919000
- LCHTYPE DC CL5' ' @V60BBBB 00920000
- DC C' PASSWORD NO. ' @V60BBBB 00921000
- LCHIVPNO DS CL3 @VMI0039 00922000
- DC C' (' @V60BBBB 00923000
- LCHMIVP DC CL8' ' @V60BBBB 00924000
- DC C') HAS VIOLATED THE LIMIT OF ' @V60BBBB 00925000
- LCHIVPLM DS CL3 @VMI0039 00926000
- LCHALOG DC CL(LALSUFF)' ' @V60BBBB 00927000
- LCHMSGLN EQU *-LCHMSG @V60BBBB 00928000
- DS 0D @V60BBBB 00929000
- LCHMDBLW EQU (*-LCHMSG)/8 NUMBER OF DOUBLEWORDS @V60BBBB 00930000
- * TITLE ' DMKJRLSL' 00931000
- * 00932000
- * ENTRY POINT NAME - 00933000
- * 00934000
- * DMKJRLSL - CALLED BY DMKLNK (LINK) FOR EACH 00935000
- * SUCCESSFUL LINK TO A PROTECTED MINI-DISK 00936000
- * NOT OWNED BY THE LINK'OR. 00937000
- * (A PROTECTED MINI-DISK IS ONE WHOSE 00938000
- * PASSWORD, FOR THE TYPE LINK BEING 00939000
- * ATTEMPTED, IS NOT 'ALL'.) 00940000
- * 00941000
- * FUNCTION - 00942000
- * 00943000
- * TO JOURNAL THE SUCCESSFUL LINK'ING TO A PROTECTED 00944000
- * (RELEVANT PASSWORD NOT 'ALL') MINI-DISK. 00945000
- * 00946000
- * ATTRIBUTES - 00947000
- * 00948000
- * REENTRANT, PAGEABLE, CALLED VIA SVC 00949000
- * 00950000
- * ENTRY CONDITIONS - 00951000
- * 00952000
- * R1 - = ADDRESS IF USERID OF LINKEE 00953000
- * R2 - = ADDRESS OF MINI-DISK ADDRESS OF LINKEE 00954000
- * R11- ADDRESS OF VMBLOK OF CALLER 00955000
- * R12- BASE ADDRESS OF MODULE 00956000
- * R13- ADDRESS OF SAVEAREA 00957000
- * 00958000
- * EXIT CONDITIONS - 00959000
- * 00960000
- * ALWAYS NORMAL. THERE ARE NO ERROR EXITS OR RETURNS. 00961000
- * 00962000
- * CALLS TO OTHER ROUTINES - 00963000
- * 00964000
- * DMKACOQU - GENERATE ACCOUNTING RECORD 00965000
- * DMKCVTBH - CONVERT FROM BINARY TO PRINTABLE HEX 00966000
- * DMKCVTDT - OBTAIN DATE-TIME 00967000
- * DMKFREE - OBTAIN FREE STORAGE 00968000
- * DMKQCNWT - SEND MESSAGE TO USER TERMINAL 00969000
- * DMKSCNAU - GET VMBLOK FOR A GIVEN USERID 00970000
- * DMKSCNRD - GET REAL DEVICE ADDRESS 00971000
- * 00972000
- * EXTERNAL REFERENCES - 00973000
- * DMKSYSJR - JOURNALING AND PASSWORD SUPPRESSION 00974000
- * CONTROL BLOCK (JPSCBLOK). 00975000
- * 00976000
- * TABLES / WORK AREAS - 00977000
- * 00978000
- * NONE 00979000
- * 00980000
- * REGISTER USAGE - 00981000
- * 00982000
- * GPR 2 = ADDRESS OF MINI-DISK ADDRESS OF LINKEE 00983000
- * GPR 4 = ADDRESS OF ACNTBLOK 00984000
- * GPR 5 = ADDRESS OF USERID OF LINKEE 00985000
- * GPR 8 = CONTAINS TERMINAL'S RDEVBLOK ADDRESS (OR 00986000
- * 0 IF NO TERMINAL) 00987000
- * GPR 11 = ADDRESS OF CALLER'S VMBLOK 00988000
- * GPR 12 = BASE REGISTER 00989000
- * GPR 13 = ADDRESS OF STANDARD SAVE AREA 00990000
- * GPR 14 = STANDARD RETURN REGISTER 00991000
- * GPR 15 = STANDARD ENTRY POINT REGISTER 00992000
- * 00993000
- * GPRS 0-1, 3, 6, AND 9-10 ARE WORK REGISTERS 00994000
- * 00995000
- * NOTES - 00996000
- * NONE. 00997000
- * 00998000
- * OPERATION - 00999000
- * 01000000
- * 1. SAVE REGISTERS AND ESTABLISH BASE REGISTER, ETC. 01001000
- * 2. GET THE REAL DEVICE BLOCK ADDRESS IN EBCDIC AND 01002000
- * SAVE IT FOR LATER USE. 01003000
- * 3. GET DATE AND TIME INTO WORKAREA VIA CALL TO DMKCVDT. 01004000
- * 4. GET STORAGE FOR AN ACNTBLOK. 01005000
- * 5. FILL IN ACNTBLOK WITH INFORMATION CONSTITUTING A 01006000
- * TYPE '05' ACCOUNTING RECORD: USERID, ACCOUNT NUMBER, 01007000
- * DATE, TIME, TERMINAL ADDRESS, LINKEE'S USERID, AND 01008000
- * LINKEE'S MINI-DISK ADDRESS. 01009000
- * 6. QUEUE THE ACCOUNTING RECORD FOR PROCESSING VIA A 01010000
- * CALL TO DMKACOQU. 01011000
- * 7. RETURN FROM SUCCESSFUL LINK PROCESSING. 01012000
- * 01013000
- * MESSAGES - 01014000
- * 01015000
- * NONE. 01016000
- * 01017000
- EJECT 01018000
- *-------------------------------------------------------------* 01019000
- * - SAVE REGISTERS AND ESTABLISH BASE REGISTER, ETC. * 01020000
- * - GET THE REAL DEVICE BLOCK ADDRESS IN EBCDIC AND * 01021000
- * SAVE IT FOR LATER USE. * 01022000
- *-------------------------------------------------------------* 01023000
- SPACE 1 01024000
- DMKJRLSL RELOC SUCCESSFUL LINK @V60BBBB 01025000
- LR R5,R1 SAVE POINTER TO LINKEE'S USERID @V60BBBB 01026000
- MVC LCHTRMA,=C'NONE' INITIALIZE FIELD TO CONTAIN @V60BBBB 01027000
- * TERMINAL ADDRESS TO 'NONE'. 01028000
- * (THERE MAY BE NO TERMINAL E.G., 01029000
- * WHEN A DISCONNECT'ED MACHINE 01030000
- * ISSUES A LINK). 01031000
- L R8,VMTERM GET ADDRESS OF RDEVBLOK @V60BBBB 01032000
- LTR R8,R8 ONE THERE? @V60BBBB 01033000
- BZ SL010 BR IF NOT @V60BBBB 01034000
- * DMKSCNRD WANTS RDEVBLOK ADDRESS IN R8. 01035000
- CALL DMKSCNRD GET REAL DEVICE ADDRESS @V60BBBB 01036000
- CALL DMKCVTBH GET IT INTO EBCDIC @V60BBBB 01037000
- ST R1,LCHTRMA SAVE IT FOR LATER @V60BBBB 01038000
- EJECT 01039000
- *-------------------------------------------------------------* 01040000
- * - GET DATE AND TIME INTO WORKAREA VIA CALL TO DMKCVDT. * 01041000
- * - GET STORAGE FOR AN ACNTBLOK. * 01042000
- * - FILL IN ACNTBLOK WITH INFORMATION CONSTITUTING A * 01043000
- * TYPE '05' ACCOUNTING RECORD: USERID, ACCOUNT NUMBER, * 01044000
- * DATE, TIME, TERMINAL ADDRESS, LINKEE'S USERID, AND * 01045000
- * LINKEE'S MINI-DISK ADDRESS. * 01046000
- *-------------------------------------------------------------* 01047000
- SPACE 1 01048000
- SL010 LR R3,R2 SAVE R2 ACROSS DMKCVTDT @V60BBBB 01049000
- LA R1,DATEWRK WHERE DATE SHOULD BE STORED @V60BBBB 01050000
- * BY DMKCVTDT. 01051000
- LA R2,TIMEWRK WHERE TIME SHOULD BE STORED @V60BBBB 01052000
- * BY DMKCVTDT. 01053000
- CALL DMKCVTDT GET DATE AND TIME. @V60BBBB 01054000
- LR R2,R3 RESTORE R2 @V60BBBB 01055000
- * BUILD TYPE '05' ACCOUNTING RECORD. 01056000
- LA R0,ACNTSIZE SET SIZE OF ACNTBLOK @V60BBBB 01057000
- CALL DMKFREE GET AN ACNTBLOK @V60BBBB 01058000
- LR R4,R1 GET ADDRESS TO PERMANENT REGISTER@V60BBBB 01059000
- USING ACNTBLOK,R4 ESTABLISH ADDRESSABILITY @V60BBBB 01060000
- MVC LBUSERID,VMUSER MOVE IN COMMAND ISSUER'S ID @V60BBBB 01061000
- MVC LBACCT#,VMACNT MOVE IN ACCOUNT NUMBER @V60BBBB 01062000
- MVC LBDATE(L'LBDATE+L'LBTIME),SLYMASK MOVE IN @V60BBBB 01063000
- * MASK TO BE TRANSLATED TO REMOVE 01064000
- * :'S FROM TIME AND /'S FROM DATE. 01065000
- TR LBDATE(L'LBDATE+L'LBTIME),DATEWRK GET DATE & @V60BBBB 01066000
- * TIME IN MMDDYYHHMMSS FORMAT. 01067000
- * 01068000
- MVC LBTERMA,LCHTRMA MOVE IN TERMINAL ADDRESS @V60BBBB 01069000
- MVI LBNUSED,C' ' CLEAR UNUSED PORTIONS @V60BBBB 01070000
- MVC LBNUSED+1(LBEND-LBNUSED-1),LBNUSED ** @V60BBBB 01071000
- MVC LBLUSID,0(R5) MOVE IN LINKEE'S USERID @V60BBBB 01072000
- L R1,0(,R2) GET MINI-DISK ADDRESS @V60BBBB 01073000
- CALL DMKCVTBH MAKE IT EBCDIC HEX @V60BBBB 01074000
- STCM R1,B'0111',LBLADDR STORE IT INTO ACCT. RECORD @V60BBBB 01075000
- MVC LBTYPE,=C'05' SET TO TYPE '05' ACCOUNTING @V60BBBB 01076000
- * RECORD 01077000
- EJECT 01078000
- *-------------------------------------------------------------* 01079000
- * - QUEUE THE ACCOUNTING RECORD FOR PROCESSING VIA A * 01080000
- * CALL TO DMKACOQU. * 01081000
- * - RETURN FROM SUCCESSFUL LINK PROCESSING. * 01082000
- *-------------------------------------------------------------* 01083000
- SPACE 1 01084000
- * DMKACOQU WANTS BUFFER ADDRESS IN R4 (WHERE IT IS). 01085000
- CALL DMKACOQU QUEUE THE ACCOUNT CARD BUFFER @V60BBBB 01086000
- * THE BUFFER WILL BE FRET'ED BY THE ACCOUNTING 01087000
- * ROUTINES. WE CAN JUST RELAX AND GO ON DOING OUR 01088000
- * OWN THING. 01089000
- DROP R4 @V60BBBB 01090000
- EXIT RETURN RETURN TO DMKCFM @V60BBBB 01091000
- * TITLE ' DMKJRLIL' 01092000
- * 01093000
- * ENTRY POINT NAME - 01094000
- * 01095000
- * DMKJRLIL - CALLED BY DMKLNK (LINK) FOR EACH INSTANCE 01096000
- * OF A LINK COMMAND BEING ISSUED WITH AN 01097000
- * INVALID PASSWORD. 01098000
- * 01099000
- * FUNCTION - 01100000
- * 01101000
- * TO JOURNAL INSTANCES OF THE SPECIFICATION OF THE 01102000
- * LINK COMMAND WITH AN INVALID PASSWORD. 01103000
- * 01104000
- * ATTRIBUTES - 01105000
- * 01106000
- * REENTRANT, PAGEABLE, CALLED VIA SVC 01107000
- * 01108000
- * ENTRY CONDITIONS - 01109000
- * 01110000
- * R1 - = ADDRESS OF LINKEE'S USERID 01111000
- * R2 = ADDRESS OF LINKEE'S MINI-DISK ADDRESS 01112000
- * R6 = ADDRESS OF INVALID PASSWORD 01113000
- * R11- ADDRESS OF VMBLOK OF CALLER 01114000
- * R12- BASE ADDRESS OF MODULE 01115000
- * R13- ADDRESS OF SAVEAREA 01116000
- * 01117000
- * EXIT CONDITIONS - 01118000
- * 01119000
- * ALWAYS NORMAL. THERE ARE NO ERROR EXITS OR RETURNS. 01120000
- * 01121000
- * CALLS TO OTHER ROUTINES - 01122000
- * 01123000
- * DMKACOQU - GENERATE ACCOUNTING RECORD 01124000
- * DMKCVTBD - CONVERT FROM BINARY TO PRINTABLE DECIMAL 01125000
- * DMKCVTBH - CONVERT FROM BINARY TO PRINTABLE HEX 01126000
- * DMKCVTDT - OBTAIN DATE-TIME 01127000
- * DMKFREE - OBTAIN FREE STORAGE 01128000
- * DMKFRET - RETURN STORAGE 01129000
- * DMKQCNWT - SEND MESSAGE TO USER TERMINAL 01130000
- * DMKSCNAU - GET VMBLOK FOR A GIVEN USERID 01131000
- * DMKSCNFD - GET NEXT FIELD FROM COMMAND LINE 01132000
- * DMKSCNRD - GET REAL DEVICE ADDRESS 01133000
- * 01134000
- * EXTERNAL REFERENCES - 01135000
- * DMKSYSJR - JOURNALING AND PASSWORD SUPPRESSION 01136000
- * CONTROL BLOCK (JPSCBLOK). 01137000
- * 01138000
- * TABLES / WORK AREAS - 01139000
- * 01140000
- * NONE 01141000
- * 01142000
- * REGISTER USAGE - 01143000
- * 01144000
- * GPR 2 = ADDRESS OF LINKEE'S MINI-DISK ADDRESS. 01145000
- * GPR 3 = ADDRESS OF JPSCBLOK 01146000
- * GPR 4 = ADDRESS OF ACNTBLOK 01147000
- * GPR 5 = ADDRESS OF USERID OF LINKEE 01148000
- * GPR 6 = ADDRESS OF INVALID PASSWORD 01149000
- * GPR 8 = CONTAINS TERMINAL'S RDEVBLOK ADDRESS (OR 01150000
- * 0 IF NO TERMINAL) IN INITIAL PROCESSING. 01151000
- * IT IS A WORK REGISTER THEREAFTER. 01152000
- * GPR 11 = ADDRESS OF CALLER'S VMBLOK 01153000
- * GPR 12 = BASE REGISTER 01154000
- * GPR 13 = ADDRESS OF STANDARD SAVE AREA 01155000
- * GPR 14 = STANDARD RETURN REGISTER 01156000
- * GPR 15 = STANDARD ENTRY POINT REGISTER 01157000
- * 01158000
- * GPRS 0-1, 7, AND 9-10 ARE WORK REGISTERS 01159000
- * 01160000
- * NOTES - 01161000
- * NONE. 01162000
- * 01163000
- * OPERATION - 01164000
- * 01165000
- * 1. SAVE REGISTERS AND ESTABLISH BASE REGISTER, ETC. 01166000
- * 2. GET THE REAL DEVICE BLOCK ADDRESS IN EBCDIC AND SAVE 01167000
- * IT FOR LATER USE. 01168000
- * 3. GET THE DATE AND TIME INTO THE WORKAREA VIA A CALL TO 01169000
- * DMKCVTDT. 01170000
- * 4. IF ACCOUNTING RECORDS ARE NOT TO BE GENERATED OR IF 01171000
- * THE THRESHOLD IN 'JPSLNKAR' HAS NOT BEEN EQUALLED OR 01172000
- * EXCEEDED, SKIP THE GENERATION OF AN ACCOUNTING 01173000
- * RECORD (GO TO STEP 8). 01174000
- * 5. OTHERWISE, GET STORAGE FOR AN ACNTBLOK IN WHICH TO 01175000
- * BUILD A TYPE '06' ACCOUNTING RECORD. 01176000
- * 6. FILL IN THE RECORD WITH USERID, ACCOUNT NUMBER, DATE, 01177000
- * TIME, TERMINAL ADDRESS, INVALID PASSWORD, LINKEE'S 01178000
- * USERID, LINKEE'S MINI-DISK ADDRESS, THE CURRENT 01179000
- * INVALID PASSWORD COUNT, AND THE CURRENT INVALID 01180000
- * PASSWORD LIMIT. 01181000
- * 7. PASS THE ACCOUNTING RECORD TO THE ACCOUNTING ROUTINES 01182000
- * VIA A CALL TO DMKACOQU. 01183000
- * 8. IF NO MESSAGES ARE TO BE SENT OR IF THE MESSAGE 01184000
- * THRESHOLD, JPSLNKMS, HAS NOT BEEN MET OR EXCEEDED, 01185000
- * RETURN TO CALLER. 01186000
- * 9. OTHERWISE, GET THE VMBLOK ADDRESS OF THE PERSON WHO 01187000
- * IS TO RECEIVE THE EXCESSION MESSAGE. 01188000
- * 10. IF THIS USERID CANNOT RECEIVE THE MESSAGE, GET THE 01189000
- * VMBLOK ADDRESS FOR THE OPERATOR. 01190000
- * 11. IF THE OPERATOR CANNOT RECEIVE THE MESSAGE, RETURN 01191000
- * WITHOUT SENDING A MESSAGE. 01192000
- * 12. SAVE THE VMBLOK ADDRESS OF USER TO RECEIVE MESSAGE. 01193000
- * 13. GET STORAGE FOR THE MESSAGE. 01194000
- * 14. MOVE IN THE MESSAGE SKELETON AND FILL IT IN WITH 01195000
- * USERID, TERMINAL ADDRESS, THE WORD 'LINK', THE 01196000
- * INVALID PASSWORD, THE CURRENT INVALID PASSWORD 01197000
- * COUNT, AND THE CURRENT INVALID PASSWORD LIMIT. 01198000
- * 15. SWITCH TO THE VMBLOK OF THE RECEIVER OF THE MESSAGE, 01199000
- * AND SEND IT VIA A CALL TO DMKQCNWT. 01200000
- * 16. SWITCH BACK TO THE VMBLOK OF THE CALLER. 01201000
- * RETURN FROM JOURNAL INVALID LINK-PASSWORD PROCESSING. 01202000
- * 01203000
- * MESSAGES - 01204000
- * 01205000
- * ERROR MESSAGE (SENT TO USERID DEFINED IN SYSJRL MACRO IN 01206000
- * DMKSYS AT SYSGEN TIME.) 01207000
- * DMKJRL145I USERID:<USERID> AT <TERM-RADDR> WITH 01208000
- * INVALID LINK PASSWORD NO. <XX> (<PSWD>) HAS 01209000
- * VIOLATED THE LIMIT OF <YY> 01210000
- * 01211000
- EJECT 01212000
- *-------------------------------------------------------------* 01213000
- * - SAVE REGISTERS AND ESTABLISH BASE REGISTER, ETC. * 01214000
- * - GET THE REAL DEVICE BLOCK ADDRESS IN EBCDIC AND SAVE * 01215000
- * IT FOR LATER USE. * 01216000
- *-------------------------------------------------------------* 01217000
- SPACE 1 01218000
- DMKJRLIL RELOC LINK WITH INVALID PASSWORD @V60BBBB 01219000
- LR R5,R1 SAVE LINKEE'S USERID ADDRESS @V60BBBB 01220000
- L R3,=A(DMKSYSJR) GET ADDRESS OF JPSCBLOK @V60BBBB 01221000
- USING JPSCBLOK,R3 TELL ASSEMBLER @V60BBBB 01222000
- MVC LCHTRMAA,=C'NONE' INTIALIZE FILE TO CONTAIN @VA13020 01223100
- * TERMINAL ADDRESS TO 'NONE'. 01224000
- * (THERE MAY BE NO TERMINAL E.G., 01225000
- * WHEN A DISCONNECT'ED MACHINE 01226000
- * ISSUES A LINK.) 01227000
- L R8,VMTERM GET ADDRESS OF RDEVBLOK @V60BBBB 01228000
- LTR R8,R8 ONE THERE? @V60BBBB 01229000
- BZ IL010 BR IF NOT @V60BBBB 01230000
- * DMKSCNRD WANTS RDEVBLOK ADDRESS IN R8. 01231000
- CALL DMKSCNRD GET REAL DEVICE ADDRESS @V60BBBB 01232000
- CALL DMKCVTBH GET IT INTO EBCDIC @V60BBBB 01233000
- ST R1,LCHTRMAA SAVE IT FOR LATER @V60BBBB 01234000
- EJECT 01235000
- *-------------------------------------------------------------* 01236000
- * - GET THE DATE AND TIME INTO THE WORKAREA VIA A CALL TO* 01237000
- * DMKCVTDT. * 01238000
- * - IF ACCOUNTING RECORDS ARE NOT TO BE GENERATED OR IF * 01239000
- * THE THRESHOLD IN 'JPSLNKAR' HAS NOT BEEN EQUALLED OR * 01240000
- * EXCEEDED, SKIP THE GENERATION OF AN ACCOUNTING * 01241000
- * RECORD. * 01242000
- * - OTHERWISE, GET STORAGE FOR AN ACNTBLOK IN WHICH TO * 01243000
- * BUILD A TYPE '06' ACCOUNTING RECORD. * 01244000
- * - FILL IN THE RECORD WITH USERID, ACCOUNT NUMBER, DATE,* 01245000
- * TIME, TERMINAL ADDRESS, INVALID PASSWORD, LINKEE'S * 01246000
- * USERID, LINKEE'S MINI-DISK ADDRESS, THE CURRENT * 01247000
- * INVALID PASSWORD COUNT, AND THE CURRENT INVALID * 01248000
- * PASSWORD LIMIT. * 01249000
- * - PASS THE ACCOUNTING RECORD TO THE ACCOUNTING ROUTINES* 01250000
- * VIA A CALL TO DMKACOQU. * 01251000
- *-------------------------------------------------------------* 01252000
- SPACE 1 01253000
- IL010 LR R9,R2 SAVE R2 ACROSS DMKCNVDT @V60BBBB 01254000
- LA R1,DATEWRKA WHERE DATE SHOULD BE STORED @V60BBBB 01255000
- * BY DMKCVTDT. 01256000
- LA R2,TIMEWRKA WHERE TIME SHOULD BE STORED @V60BBBB 01257000
- * BY DMKCVTDT. 01258000
- CALL DMKCVTDT GET DATE AND TIME. @V60BBBB 01259000
- LR R2,R9 RESTORE R2 @V60BBBB 01260000
- CLI JPSLNKAR,X'00' SHOULD ANY ACCOUNTING RECORDS @V60BBBB 01261000
- * BE GENERATED? 01262000
- BE IL100 BR IF NOT @V60BBBB 01263000
- CLC VMPSWDCT,JPSLNKAR HAS THE ACCOUNTING RECORD @V60BBBB 01264000
- * THRESHOLD BEEN EQUALLED OR 01265000
- * EXCEEDED? 01266000
- BL IL100 BR IF NOT @V60BBBB 01267000
- * BUILD TYPE '06' ACCOUNTING RECORD. 01268000
- LA R0,ACNTSIZE SET SIZE OF ACNTBLOK @V60BBBB 01269000
- CALL DMKFREE GET AN ACNTBLOK @V60BBBB 01270000
- LR R4,R1 GET ADDRESS TO PERMANENT HOME @V60BBBB 01271000
- USING ACNTBLOK,R4 ESTABLISH ADDRESSABILITY @V60BBBB 01272000
- MVC LCUSERID,VMUSER MOVE IN LINKOR'S USERID @V60BBBB 01273000
- MVC LCACCT#,VMACNT MOVE IN ACCOUNT NUMBER @V60BBBB 01274000
- MVC LCDATE(L'LCDATE+L'LCTIME),SLYMASK MOVE IN MASK @V60BBBB 01275000
- * TO BE TRANSLATED TO REMOVE :'S 01276000
- * FROM TIME AND /'S FROM DATE. 01277000
- TR LCDATE(L'LCDATE+L'LCTIME),DATEWRKA GET DATE & @V60BBBB 01278000
- * TIME IN MMDDYYHHMMSS FORMAT. 01279000
- * 01280000
- MVC LCTERMA,LCHTRMAA MOVE IN TERMINAL ADDRESS @V60BBBB 01281000
- MVC LCIPWD,0(R6) MOVE IN INVALID PASSWORD @V60BBBB 01282000
- MVC LCLUSID,0(R5) MOVE IN LINKEE'S USERID @V60BBBB 01283000
- L R1,0(,R2) GET MINI-DISK ADDRESS @V60BBBB 01284000
- CALL DMKCVTBH MAKE IT EBCDIC HEX @V60BBBB 01285000
- STCM R1,B'0111',LCLADDR STORE IT INTO ACCT. RECORD @V60BBBB 01286000
- MVI LCNUSED,C' ' CLEAR UNUSED PORTION @V60BBBB 01287000
- MVC LCNUSED+1(LCEND-LCNUSED-1),LCNUSED ** @V60BBBB 01288000
- SLR R1,R1 SET UP FOR COUNT CONVERSION @V60BBBB 01289000
- IC R1,VMPSWDCT PICK UP CURRENT COUNT @V60BBBB 01290000
- CALL DMKCVTBH MAKE IT LOOK NICE @V60BBBB 01291000
- STCM R1,B'0011',LCIPWNO PUT IT INTO ACCOUNTING REC. @V60BBBB 01292000
- SLR R1,R1 SET UP FOR COUNT CONVERSION @V60BBBB 01293000
- IC R1,JPSLNKAR PICK UP CURRENT LIMIT @V60BBBB 01294000
- CALL DMKCVTBH MAKE IT LOOK NICE @V60BBBB 01295000
- STCM R1,B'0011',LCIPWLM PUT IT INTO ACCOUNTING REC. @V60BBBB 01296000
- MVC LCTYPE,=C'06' SET TO TYPE '06' ACCOUNTING @V60BBBB 01297000
- * RECORD 01298000
- * DMKACOQU WANTS BUFFER ADDRESS IN R4 (WHERE IT IS). 01299000
- CALL DMKACOQU QUEUE THE ACCOUNT CARD BUFFER @V60BBBB 01300000
- * THE BUFFER WILL BE FRET'ED BY THE ACCOUNTING 01301000
- * ROUTINES. 01302000
- DROP R4 @V60BBBB 01303000
- EJECT 01304000
- *-------------------------------------------------------------* 01305000
- * - IF NO MESSAGES ARE TO BE SENT OR IF THE MESSAGE * 01306000
- * THRESHOLD, JPSLNKMS, HAS NOT BEEN MET OR EXCEEDED, * 01307000
- * RETURN TO CALLER. * 01308000
- * - OTHERWISE, GET THE VMBLOK ADDRESS OF THE PERSON WHO * 01309000
- * IS TO RECEIVE THE EXCESSION MESSAGE. * 01310000
- * - IF THIS USERID CANNOT RECEIVE THE MESSAGE, GET THE * 01311000
- * VMBLOK ADDRESS FOR THE OPERATOR. * 01312000
- * - IF THE OPERATOR CANNOT RECEIVE THE MESSAGE, RETURN * 01313000
- * WITHOUT SENDING A MESSAGE. * 01314000
- *-------------------------------------------------------------* 01315000
- SPACE 1 01316000
- IL100 DS 0H @V60BBBB 01317000
- CLI JPSLNKMS,X'00' SHOULD ANY MESSAGES BE SENT? @V60BBBB 01318000
- BE ILEXIT BR IF NOT @V60BBBB 01319000
- CLC VMPSWDCT,JPSLNKMS HAS THRESHOLD BEEN MET OR @V60BBBB 01320000
- * EXCEEDED? 01321000
- BL ILEXIT BR IF NOT @V60BBBB 01322000
- LA R1,JPSLNKU POINT TO USERID TO WHOM MESSAGE @V60BBBB 01323000
- * SHOULD BE SENT. 01324000
- LA R0,8 SET USERID LENGTH @V60BBBB 01325000
- CALL DMKSCNAU GET THE VMBLOK ADDRESS @V60BBBB 01326000
- BNZ IL110 BR IF USERID NOT ABLE TO @V60BBBB 01327000
- * RECEIVE MESSAGE. 01328000
- TM VMOSTAT-VMBLOK(R1),VMDISC+VMKILL USER DYING @V60BBBB 01329000
- * OR DISCONNECTED? 01330000
- BNZ IL110 BR IF YES- CAN'T SEND TO HIM(HER)@V60BBBB 01331000
- CLC VMTERM-VMBLOK(,R1),F0 ANY TERMINAL? @V60BBBB 01332000
- BNE IL200 ALL'S WELL- LET 'ER RIP @V60BBBB 01333000
- IL110 L R1,ASYSOP GET OPERATOR'S VMBLOK @V60BBBB 01334000
- CLC VMTERM-VMBLOK(,R1),F0 OPERATOR THERE? @V60BBBB 01335000
- BE ILEXIT BR IF NOT- WE CAN DO NO MORE @V60BBBB 01336000
- EJECT 01337000
- *-------------------------------------------------------------* 01338000
- * - SAVE THE VMBLOK ADDRESS OF USER TO RECEIVE MESSAGE. * 01339000
- * - GET STORAGE FOR THE MESSAGE. * 01340000
- * - MOVE IN THE MESSAGE SKELETON AND FILL IT IN WITH * 01341000
- * USERID, TERMINAL ADDRESS, THE WORD 'LINK', THE * 01342000
- * INVALID PASSWORD, THE CURRENT INVALID PASSWORD * 01343000
- * COUNT, AND THE CURRENT INVALID PASSWORD LIMIT. * 01344000
- * - SWITCH TO THE VMBLOK OF THE RECEIVER OF THE MESSAGE, * 01345000
- * AND SEND IT VIA A CALL TO DMKQCNWT. * 01346000
- * - SWITCH BACK TO THE VMBLOK OF THE CALLER. * 01347000
- *-------------------------------------------------------------* 01348000
- SPACE 1 01349000
- IL200 LR R9,R1 SAVE ADDRESS OF VMBLOK OF USER @V60BBBB 01350000
- * TO RECEIVE MESSAGE. 01351000
- LA R0,LCHMDBLW AMOUNT OF STORAGE FOR DMKJRL145I @V60BBBB 01352000
- * MESSAGE. 01353000
- CALL DMKFREE GET THE STORAGE @V60BBBB 01354000
- LR R10,R1 GET ADDRESS TO HOME REGISTER @V60BBBB 01355000
- MVC 0(LCHMSGLN,R10),LCHMSG MOVE IN MESSAGE SKELETON @V60BBBB 01356000
- MVC LCHMUSER-LCHMSG(,R10),VMUSER MOVE IN ID @V60BBBB 01357000
- MVC LCHMTRMA-LCHMSG(,R10),LCHTRMAA MOVE IN TERMINAL @V60BBBB 01358000
- * ADDRESS. 01359000
- MVC LCHTYPE-LCHMSG(4,R10),=C'LINK' MOVE IN TYPE @V60BBBB 01360000
- SLR R1,R1 SET UP FOR COUNT CONVERSION @V60BBBB 01361000
- IC R1,VMPSWDCT PICK UP CURRENT COUNT @V60BBBB 01362000
- CALL DMKCVTBD MAKE IT LOOK NICE @VMI0039 01363000
- STCM R1,B'0111',LCHIVPNO-LCHMSG(R10) PUT IT INTO @VMI0039 01364000
- * MESSAGE. 01365000
- MVC LCHMIVP-LCHMSG(,R10),0(R6) MOVE IN INVALID @V60BBBB 01366000
- * PASSWORD. 01367000
- SLR R1,R1 SET UP FOR COUNT CONVERSION @V60BBBB 01368000
- IC R1,JPSLNKMS PICK UP CURRENT LIMIT @V60BBBB 01369000
- CALL DMKCVTBD MAKE IT LOOK NICE @VMI0039 01370000
- STCM R1,B'0111',LCHIVPLM-LCHMSG(R10) PUT IT INTO @VMI0039 01371000
- * MESSAGE. 01372000
- LR R1,R9 SETUP TO SWTCHVM @V60BBBB 01373000
- LR R9,R11 SAVE OUR VMBLOK ADDRESS @V60BBBB 01374000
- SWTCHVM SWITCH TO VMBLOK OF MESSAGE @V60BBBB 01375000
- * DESTINATION. 01376000
- LR R1,R10 SET MESSAGE ADDRESS FOR DMKQCNWT @V60BBBB 01377000
- LA R0,LCHMSGLN SET NUMBER OF BYTES IN MESSAGE @V60BBBB 01378000
- LA R3,LCHMDBLW NUMBER OF DBLWDS TO BE FRET'ED @V60BBBB 01379000
- CALL DMKQCNWT,PARM=NORET+DFRET+ALARM WRITE THE MSG. @V60BBBB 01380000
- LR R1,R9 SETUP TO SWITCH BACK TO CALLER'S @V60BBBB 01381000
- * VMBLOK 01382000
- SWTCHVM RETURN TO CALLER'S VMBLOK @V60BBBB 01383000
- EJECT 01384000
- *-------------------------------------------------------------* 01385000
- * RETURN FROM JOURNAL INVALID LINK-PASSWORD PROCESSING.* 01386000
- *-------------------------------------------------------------* 01387000
- SPACE 1 01388000
- ILEXIT EXIT RETURN RETURN TO DMKCFM @V60BBBB 01389000
- * TITLE ' CONSTANTS' 01390000
- *-------------------------------------------------------------* 01391000
- * CONSTANTS * 01392000
- *-------------------------------------------------------------* 01393000
- SPACE 1 01394000
- SLYMASK DC AL1(0,1,3,4,6,7,8,9,11,12,14,15) MASK USED TO @V60BBBB 01395000
- * TRANSLATE '/' AND ":" FROM DATE 01396000
- * AND TIME. 01397000
- * TITLE ' PSA DSECT' 01398000
- PSA @V60BBBB 01399000
- * TITLE ' JPSCBLOK DSECT' 01400000
- JPSCBLOK , @V60BBBB 01401000
- * TITLE ' ACNTBLOK DSECT' 01402000
- COPY ACCOUNT @V60BBBB 01403000
- *-------------------------------------------------------------* 01404000
- * DEFINE AREA IN WHICH TYPE '04' ACCOUNTING RECORD * 01405000
- * WILL BE BUILT. * 01406000
- *-------------------------------------------------------------* 01407000
- SPACE 1 01408000
- ACNTBLOK DSECT @V60BBBB 01409000
- ORG ACNTDATA @V60BBBB 01410000
- LAUSERID DS CL8 USERID OF COMMAND ISSUER @V60BBBB 01411000
- LAACCT# DS CL8 NOT USED (ACCOUNT NUMBER NOT @V60BBBB 01412000
- * KNOWN AT TIME OF GENERATION 01413000
- * OF THIS RECORD.) 01414000
- LADATE DS CL6 DATE @V60BBBB 01415000
- LATIME DS CL6 TIME @V60BBBB 01416000
- LATERMA DS CL4 TERMINAL ADDRESS @V60BBBB 01417000
- LAIPWD DS CL8 INVALID PASSWORD @V60BBBB 01418000
- LAAUSID DS CL8 USERID FROM AUTOLOG COMMAND @V60BBBB 01419000
- LANUSED DS CL3 NOT USED @V60BBBB 01420000
- LAIPWNO DS CL2 INVALID PASSWORD COUNT @V60BBBB 01421000
- LAIPWLM DS CL2 INVALID PASSWORD LIMIT @V60BBBB 01422000
- DS CL23 NOT USED @V60BBBB 01423000
- LATYPE DS CL2 C'04' @V60BBBB 01424000
- LAEND EQU * @V60BBBB 01425000
- ORG , @V60BBBB 01426000
- *-------------------------------------------------------------* 01427000
- * DEFINE AREA IN WHICH TYPE '05' ACCOUNTING RECORD * 01428000
- * WILL BE BUILT. * 01429000
- *-------------------------------------------------------------* 01430000
- SPACE 1 01431000
- ACNTBLOK DSECT @V60BBBB 01432000
- ORG ACNTDATA @V60BBBB 01433000
- LBUSERID DS CL8 USERID OF COMMAND ISSUER @V60BBBB 01434000
- LBACCT# DS CL8 ACCOUNT NUMBER @V60BBBB 01435000
- LBDATE DS CL6 DATE @V60BBBB 01436000
- LBTIME DS CL6 TIME @V60BBBB 01437000
- LBTERMA DS CL4 TERMINAL ADDRESS @V60BBBB 01438000
- LBNUSED DS CL8 NOT USED @V60BBBB 01439000
- LBLUSID DS CL8 USERID OF LINKEE @V60BBBB 01440000
- LBLADDR DS CL3 MINI-DISK ADDRESS @V60BBBB 01441000
- DS CL27 NOT USED @V60BBBB 01442000
- LBTYPE DS CL2 C'05' @V60BBBB 01443000
- LBEND EQU * @V60BBBB 01444000
- ORG , @V60BBBB 01445000
- *-------------------------------------------------------------* 01446000
- * DEFINE AREA IN WHICH TYPE '06' ACCOUNTING RECORD * 01447000
- * WILL BE BUILT. * 01448000
- *-------------------------------------------------------------* 01449000
- SPACE 1 01450000
- ACNTBLOK DSECT @V60BBBB 01451000
- ORG ACNTDATA @V60BBBB 01452000
- LCUSERID DS CL8 USERID OF COMMAND ISSUER @V60BBBB 01453000
- LCACCT# DS CL8 ACCOUNT NUMBER @V60BBBB 01454000
- LCDATE DS CL6 DATE @V60BBBB 01455000
- LCTIME DS CL6 TIME @V60BBBB 01456000
- LCTERMA DS CL4 TERMINAL ADDRESS @V60BBBB 01457000
- LCIPWD DS CL8 INVALID PASSWORD @V60BBBB 01458000
- LCLUSID DS CL8 USERID OF LINKEE @V60BBBB 01459000
- LCLADDR DS CL3 MINI-DISK ADDRESS @V60BBBB 01460000
- LCIPWNO DS CL2 INVALID PASSWORD COUNT @V60BBBB 01461000
- LCIPWLM DS CL2 INVALID PASSWORD LIMIT @V60BBBB 01462000
- LCNUSED DS CL23 NOT USED @V60BBBB 01463000
- LCTYPE DS CL2 C'06' @V60BBBB 01464000
- LCEND EQU * @V60BBBB 01465000
- ORG , @V60BBBB 01466000
- * TITLE ' SAVE COPY' 01467000
- COPY SAVE @V60BBBB 01468000
- * TITLE ' LOCAL WORKAREAS' 01469000
- *-------------------------------------------------------------* 01470000
- * DEFINE AREA IN WHICH 'QUERY JOURNAL' RESPONSE * 01471000
- * WILL BE BUILT. * 01472000
- *-------------------------------------------------------------* 01473000
- SPACE 1 01474000
- SAVEAREA DSECT @V60BBBB 01475000
- ORG SAVEWRK2 @V60BBBB 01476000
- QJRESP DC C'JOURNAL: LOGON- ' @V60BBBB 01477000
- QJLOS DS CL3 @V60BBBB 01478000
- DC C', LINK- ' @V60BBBB 01479000
- QJLIS DS CL3 @V60BBBB 01480000
- QJRL EQU *-QJRESP @V60BBBB 01481000
- SPACE 3 01482000
- *-------------------------------------------------------------* 01483000
- * DEFINE SWITCHES USED BY DMKJRLSE. * 01484000
- *-------------------------------------------------------------* 01485000
- SPACE 1 01486000
- ORG SAVEWRK1 @V60BBBB 01487000
- SELOGON DS 0CL(X'80') SET LOGON @V60BBBB 01488000
- SELINK DS 0CL(X'40') SET LINK @V60BBBB 01489000
- SETSW DS X SWITCHES USED BY SET @V60BBBB 01490000
- ORG , @V60BBBB 01491000
- SPACE 3 01492000
- *-------------------------------------------------------------* 01493000
- * DEFINE SWITCHES AND WORKAREAS USED BY DMKRJLLO. * 01494000
- *-------------------------------------------------------------* 01495000
- SPACE 1 01496000
- ORG SAVEWRK1 @V60BBBB 01497000
- AUTOLOG DS 0CL(X'80') ON INDICTES INVOCATION IS THE @V60BBBB 01498000
- * RESULT OF AUTOLOG COMMAND. 01499000
- LOFLAGS DS X FLAGS USED BY DMKJRLLO @V60BBBB 01500000
- ORG SAVEWRK2 @V60BBBB 01501000
- DATEWORK DS D DMKCVTDT RETURNS DATE HERE @V60BBBB 01502000
- TIMEWORK DS D DMKCVTDT RETURNS TIME HERE @V60BBBB 01503000
- LCHS23 DS 2F LOGONCHK SAVES REGS 2 & 3 HERE @V60BBBB 01504000
- LCHTERMA DS F TERMINAL ADDRESS SAVED HERE @V60BBBB 01505000
- LCHSR14 DS F LOGONCHK SAVES R14 HERE @V60BBBB 01506000
- ORG , @V60BBBB 01507000
- SPACE 3 01508000
- *-------------------------------------------------------------* 01509000
- * DEFINE WORKAREA USED BY DMKJRLSL. * 01510000
- *-------------------------------------------------------------* 01511000
- SPACE 1 01512000
- ORG SAVEWRK2 @V60BBBB 01513000
- DATEWRK DS D DMKCVTDT RETURNS DATE HERE @V60BBBB 01514000
- TIMEWRK DS D DMKCVTDT RETURNS TIME HERE @V60BBBB 01515000
- LCHTRMA DS F TERMINAL ADDRESS IN EBCDIC @V60BBBB 01516000
- ORG , @V60BBBB 01517000
- SPACE 3 01518000
- *-------------------------------------------------------------* 01519000
- * DEFINE WORKAREA USED BY DMKJRLIL. * 01520000
- *-------------------------------------------------------------* 01521000
- SPACE 1 01522000
- ORG SAVEWRK2 @V60BBBB 01523000
- DATEWRKA DS D DMKCVTDT RETURNS DATE HERE @V60BBBB 01524000
- TIMEWRKA DS D DMKCVTDT RETURNS TIME HERE @V60BBBB 01525000
- LCHTRMAA DS F TERMINAL ADDRESS IN EBCDIC @V60BBBB 01526000
- ORG , @V60BBBB 01527000
- * TITLE ' EQU''S' 01528000
- COPY EQU @V60BBBB 01529000
- * TITLE ' PWDIBLOK DSECT' 01530000
- COPY PWDIBLOK @V60BBBB 01531000
- * TITLE ' VMBLOK DSECT' 01532000
- COPY VMBLOK @V60BBBB 01533000
- END DMKJRL @V60BBBB 01534000
ibm/vm370-lib/cp/dmkjrl.assemble_src.txt ยท Last modified: 2023/08/06 13:37 by Site Administrator