ibm:vm370-lib:cp:dmkcfc.assemble_src
Table of Contents
DMKCFC Source
References
- Fixes Applied : 20
- This Source Date : Thursday, December 7, 1978
- Last Fix ID : [HRC068DK]
Source Listing
- DMKCFC.ASSEMBLE.txt
- CFC TITLE 'DMKCFC (CP) VM/370 - RELEASE 6' 00001000
- ISEQ 73,80 VALIDATE SEQUENCING OF INPUT 00002000
- MACRO 00003000
- &LABEL COMND &CMD,&CLASS,&ABREV,&ADDR,&NCL=0,&TYPE=V 00004000
- &LABEL DC CL8'&CMD' COMMAND NAME 00005000
- DC AL1(&CLASS,&NCL),AL2(&ABREV) 00006000
- DC &TYPE.(&ADDR) ROUTINE ADDRESS 00007000
- SPACE 2 00008000
- MEND 00009000
- EJECT 00010000
- *. 00011000
- * MODULE NAME - 00012000
- * 00013000
- * DMKCFC 00014000
- * 00015000
- * FUNCTION - 00016000
- * 00017000
- * TO GET THE ADDRESS OF THE ROUTINE THAT WILL PROCESS THE CP 00018000
- * CONSOLE FUNCTION REQUESTED. 00019000
- * 00020000
- * ATTRIBUTES- 00021000
- * 00022000
- * REENTRANT, PAGEABLE, CALLED VIA SVC 00023000
- * 00024000
- * 00025000
- * ENTRY POINTS - 00026000
- * 00027000
- * DMKCFCMD - ENTERED TO PROCESS A CP CONSOLE FUNCTION 00028000
- * DMKCFCSL - ENTERED WHEN SLEEP COMMAND FOUND. 00029000
- * DMKCFCBE - ENTERED WHEN BEGIN COMMAND FOUND 00030000
- * DMKCFCQU - ENTERED WHEN QUERY COMMAND FOUND. 00031000
- * DMKCFCSE - ENTERED WHEN SET COMMAND FOUND 00031500
- * DMKCFCRQ - ENTERED FOR REQUEST COMMAND 00032000
- * DMKCFCSC - SCAN STRING FOR SPECIFIED CHARACTER 00032100
- * 00033000
- * ENTRY CONDITIONS - 00034000
- * 00035000
- * DMKCFCMD - 00036000
- * GPR 0 CONTAINS THE MESSAGE CHARACTER COUNT 00037000
- * GPR 1 POINTS TO AN 18 DOUBLE WORD INPUT MESSAGE BUFFER 00038000
- * GPR 9 POINTS TO MESSAGE BUFFER 00039000
- * GPR 11 CONTAINS THE USER'S VMBLOK ADDRESS 00040000
- * 00041000
- * EXIT CONDITIONS - 00042000
- * 00043000
- * NORMAL - 00044000
- * GPR 1 CONTAINS THE ADDRESS OF THE CONSOLE FUNCTION ROUTINE 00045000
- * OR MINUS ONE (1) INDICATING THAT THE COMMAND WAS 'CP'. 00046000
- * 00047000
- * ERROR - 00048000
- * GPR 1 CONTAINS ZERO INDICATING THE COMMAND WAS NOT FOUND. 00049000
- * GPR 2 CONTAINS THE ERROR RETURN CODE 00050000
- * 00051000
- * CALLS TO OTHER ROUTINES - 00052000
- * 00053000
- * NONE 00054000
- * 00055000
- * TABLES / WORK AREAS - 00056000
- * 00057000
- * VMBLOK 00058000
- * 00059000
- * 00060000
- * COMNDBEG TO COMNDEND IS A TABLE USED TO LOCATE THE ROUTINES TO 00061000
- * PROCESS THE VARIOUS CP COMMANDS. IT IS MADE UP OF ONE 16-BYTE 00062000
- * ENTRY FOR EACH VALID COMMAND. THE FORMAT OF EACH ENTRY IS: 00063000
- * COMMAND NAME--------- 8 BYTES 00064000
- * CLASS MASK ---------- 2 BYTES 00065000
- * ABREVIATION COUNT --- 2 BYTES 00066000
- * ROUTINE ADDRESS ----- 4 BYTES 00067000
- * 00068000
- * 00069000
- * REGISTER USAGE - 00070000
- * 00071000
- * GPR 0 = PARAMETER 00072000
- * GPR 1 = PARAMETER 00073000
- * GPR 2 = SCRATCH 00074000
- * GPR 3 = SCRATCH 00075000
- * GPR 4 = SCRATCH 00076000
- * GPR 5 = SCRATCH 00077000
- * GPR 6 = SCRATCH 00077500
- * GPR 9 = INPUT MESSAGE BASE 00078000
- * GPR 11 = VMBLOK BASE 00079000
- * GPR 12 = MODULE BASE 00080000
- * GPR 13 = SAVE AREA BASE 00081000
- * GPR 14 = LINKAGE 00082000
- * GPR 15 = LINKAGE 00083000
- * 00084000
- * 00085000
- * 00086000
- * NOTES - 00087000
- * NONE 00088000
- * 00089000
- * 00090000
- * OPERATION - 00091000
- * 00092000
- * 1. COMPARE THE COMMAND POINTED TO BY GPR 1 AGAINST A LIST 00093000
- * OF VALID COMMANDS. 00094000
- * 2. IF THE COMMAND IS FOUND CHECK TO INSURE THAT THE 00095000
- * ABREVIATION AND CLASS ARE VALID. IF THE COMMAND OR CLASS 00096000
- * IS INVALID SEND ERROR MMESSAGE DMKCFC001E, AND RETURN TO 00097000
- * CALLER WITH ERROR RETURN CODE IN GPR 2. 00098000
- * 3. IF THE COMMAND IS VALID RETURN THE CONSOLE FUNCTION 00099000
- * ROUTINE ADDRESS IN THE CALLERS GPR 1, AND ZERO THE ERROR 00100000
- * RETURN CODE REGISTER GPR 2. 00101000
- * 00102000
- * ERROR MESSAGES - 00103000
- * DMKCFC001E ?CP: (COMMAND) 00104000
- *. 00105000
- EJECT 00106000
- COPY OPTIONS 00107000
- COPY LOCAL 00108000
- EJECT 00109000
- DMKCFC START 0 @VM03169 00110000
- MODID DC CL8'DMKCFC' MODULE IDENTIFIER @VM03169 00111000
- USING PSA,R0 00112000
- USING VMBLOK,R11 00113000
- USING SAVEAREA,R13 00114000
- EXTRN DMKERMSG,DMKCFMAT,DMKSCNFD,DMKCVTHB,DMKCVTDB @VM03169 00115000
- EXTRN DMKSCHRT,DMKSCHST,DMKCQGEN,DMKCQPRV,DMKCQREY @VM03169 00116000
- EXTRN DMKCFSET,DMKCFOEX @V326538 00116500
- EXTRN DMKTRCPB,DMKTRCIT,DMKCFMWU @VM03169 00117000
- EXTRN DMKCVTAB @VA04301 00117100
- EXTRN DMKCQYEY 00117550
- EXTRN DMKJRLQU,DMKJRLSE @V60BBBB 00117750
- EXTRN DMKCQHQU @VA13360 00117850
- EXTRN HDKCQURY HRC019DK 00117920
- EXTRN HDKCQALO HRC030DK 00117960
- DMKCFCMD RELOC @VM03169 00118000
- CLI 0(R1),C'.' OUTPUT SUPPRESSION CHAR? HRC021DK 00118100
- BNE CHKLEN NO...PROCEED AS NORMAL HRC021DK 00118200
- OI VMHRCFLG,VMTRMOFF INHIBIT TERM OUTPUT HRC021DK 00118300
- BCTR R0,0 DECREMENT LENGTH BY ONE HRC021DK 00118400
- LA R1,1(,R1) BUMP PAST SUPPRESSION CHAR HRC021DK 00118500
- CHKLEN EQU * HRC021DK 00118600
- CL R0,F8 IS THE COMMAND LENGTH GREATER 00119000
- * THAN 8 ? 00120000
- BH CONFERR BRANCH IF YES 00121000
- LR R2,R0 SAVE BYTE COUNT 00122000
- BCTR R2,0 SUBTRACT ONE FOR EX 00123000
- TM VMRSTAT,VMLOGON HAS USER LOGGED ON YET ? 00124000
- BO STRTLOGN NO - GO SET UP TO SCAN FOR LOGON 00125000
- LA R3,COMNBEG1 BYPASS SCAN FOR LOGON SINCE IS 00126000
- * ON NOW 00127000
- B SETLEN 00128000
- STRTLOGN LA R3,COMNBEG0 SCAN FOR LOGON 00129000
- TM APSTAT1,CPINITD IS IPL IN PROGRESS ? @VA12658 00129100
- BZ EXITNULL YES... EXIT @VA12658 00129200
- SETLEN LA R4,16 LOAD TABLE ENTRY LENGTH 00130000
- LA R5,COMNDEND LOAD LAST COMMAND ADDRESS 00131000
- CONFEXEC EX R2,COMNDCLC DO THE COMMAND NAMES MATCH ? 00132000
- BE CONFABRV BRANCH IF YES 00133000
- CONFBXLE BXLE R3,R4,CONFEXEC BRANCH IF MORE COMMANDS 00134000
- CONFERR TM VMRSTAT,VMLOGON USER LOGGED ON YET ??? 00135000
- BNO CFC001 YES ---- @VM03169 00136000
- LA R0,L'RETRYMSG GET MESSAGE LENGTH 00137000
- LA R1,RETRYMSG GET POINTER TO MESSAGE 00138000
- L R2,VMTERM GET TERMINAL RDEVBLOK 00139000
- USING RDEVBLOK,R2 00140000
- CLI RDEVTYPE,TYP2741 2741 TERMINAL? 00141000
- BE SENDMSG YES 00142000
- DROP R2 00143000
- LA R0,L'RETRYMSG-9 GET MESSAGE LENGTH 00144000
- B SENDMSG 00145000
- CFC001 DS 0H @VM03169 00146000
- LA R2,1 ERROR CODE 00147000
- TM VMOSTAT,VMVIRCF VIRTUAL CONSOLE FUNCTION ?? @V200930 00148000
- BO EXITNULL YES @VM03169 00149000
- O R2,=X'80000000' TELL ERM TO RETURN HERE 00150000
- ICM R0,14,MODID+3 INSERT MODULE IDENTIFIER 00151000
- CALL DMKERMSG SEND MESSAGE 00152000
- B EXITNULL CONTINUE SCAN @VM03169 00153000
- SPACE 00154000
- SENDMSG CALL DMKQCNWT,PARM=NORET 00155000
- B EXITNULL CONTINUE SCAN 00156000
- SPACE 2 00157000
- CONFABRV SR R6,R6 ZERO COUNT REGISTER 00158000
- LH R6,10(,R3) LOAD ABREVIATION COUNT 00159000
- BCTR R6,0 SUBTRACT ONE FOR EXECUTE 00160000
- EX R6,COMNDCLC IS THIS A VALID ABREVIATION 00161000
- BE CONFFIND YES, GO CHECK FUNCTION CLASS 00162000
- B CONFBXLE NO, CONTINUE SCANNING COMMAND 00163000
- * TABLE 00164000
- SPACE 2 00165000
- CONFTM TM VMCLEVEL,*-* EXECUTED TM FOR CLASS @V200930 00166000
- SPACE 2 00167000
- CONFFIND TM 9(R3),NOCLASS CAN ANY CLASS EXECUTE ?? @V200930 00168000
- BO CONFCALL YES @V200930 00169000
- IC R6,8(R3) GET ALLOWED CLASSES @V200930 00170000
- EX R6,CONFTM TEST FOR CORRECT CLASSES @V200930 00171000
- BZ CFC001 CLASS NO GOOD @VM03169 00172000
- CONFCALL EQU * @V200930 00173000
- SR R2,R2 CLEAR RETURN CODE @V200930 00174000
- MVC VMCOMND,0(R3) SAVE LAST COMMAND ISSUED @V200930 00175000
- CLC 0(3,R3),CPCHAR IS IT 'CP ' ?? @V200820 00176000
- BE EXITNEG YES, SKIP AND GET NEXT FIELD @VM03169 00177000
- L R1,12(,R3) LOAD ROUTINE ADDRESS @VM03169 00178000
- B EXIT EXIT TO CALLER @VM03169 00179000
- EXITNEG L R1,FFS INFORM DMKCFM THIS WAS 'CP' @VM03169 00180000
- * PREFIX 00181000
- B EXIT RETURN TO CALLER @VM03169 00182000
- EXITNULL SLR R1,R1 TELL DMKCFM TO READ NEXT COMMAND @VM03169 00183000
- ST R2,SAVER2 SAVE ERROR RETURN CODE @VM03169 00184000
- EXIT ST R1,SAVER1 SAVE (ROUTINE ADDRESS OR CC) @VM03169 00185000
- * FOR DMKCFM 00186000
- EXIT NOW RETURN TO CALLLER @VM03169 00187000
- DS 0F 00188000
- EJECT 00189000
- COMNBEG0 COMND LOGON,0,1,DMKLOGON,NCL=1 00190000
- COMND LOGIN,0,1,DMKLOGON,NCL=1 00191000
- COMND DIAL,0,1,DMKDIAL,NCL=1 00192000
- COMNBEG1 COMND ATTACH,B,3,DMKVDAAT @V407466 00193000
- COMND ATTN,G,4,DMKCFCRQ,TYPE=A @V200930 00194000
- COMND ADSTOP,G,6,DMKCFDAD 00195000
- COMND ACNT,A,4,DMKCPVAC 00196000
- COMND AUTOLOG,(A+B),6,DMKALGON @V4075A0 00197100
- COMND BEGIN,G,1,DMKCFCBE,TYPE=A 00198000
- COMND BACKSPAC,D,2,DMKCSOBS 00199000
- COMND CHANGE,D+G,2,DMKCSUCH @V200820 00200000
- COMND CLOSE,G,1,DMKCSQCL @V60B9BA 00201000
- COMND COUPLE,G,6,DMKDIBCP @VA13704 00202000
- COMND DISPLAY,G,1,DMKCDBDI 00203000
- COMND DCP,C+E,3,DMKCDBDC @V200820 00204000
- COMND DEFINE,G,3,DMKDEFIN 00205000
- COMND DETACH,B+G,3,DMKVDDDE @V407466 00206000
- COMND DISCONN,0,4,DMKUSODS,NCL=1 00207000
- COMND DISABLE,A+B,4,DMKCPVDS @V200820 00208000
- COMND DMCP,C+E,4,DMKCDMDM @V4075A0 00209100
- COMND DRAIN,D,2,DMKCSODR 00210000
- COMND DUMP,G,2,DMKCDMDU @V4075A0 00211100
- COMND ECHO,G,2,DMKMSGEC 00212000
- COMND EXTERNAL,G,3,DMKCPBEX 00213000
- COMND ENABLE,A+B,2,DMKCPVEN @V200820 00214000
- COMND FLUSH,D,1,DMKCSOFL 00215000
- COMND FORCE,A,5,DMKUSOFL 00216000
- COMND HALT,A,4,DMKCPSH @VA03757 00217000
- COMND HCP,A,3,DMKCPSCP HRC010DK 00217500
- COMND HOLD,D,2,DMKCSQHL @V60B9BA 00218000
- COMND IPL,G,1,DMKCFGIP 00219000
- COMND LINK,G,4,DMKLNKIN 00220000
- COMND LOADBUF,D,7,DMKCSBLD @V386298 00221000
- COMND LOADVFCB,G,8,DMKCSBVL @V386298 00222000
- COMND LOCATE,C+E,3,DMKCFDLO @V200820 00223000
- COMND LOCK,C,4,DMKCPVLK HRC026DK 00224490
- COMND LOGOFF,0,3,DMKUSOLG,NCL=1 00225000
- COMND LOGOUT,0,3,DMKUSOLG,NCL=1 00226000
- COMND MONITOR,A+E,3,DMKMCCCL @VM03169 00227000
- COMND MSG,B+G,1,DMKMSGMS,NCL=1 @V200820 00228000
- COMND MSGNOH,A+B,6,DMKMSGNH @V60C2BE 00228100
- COMND MESSAGE,B+G,2,DMKMSGMS,NCL=1 @V200820 00229000
- COMND NETWORK,A+B+F,3,DMKNETWK @V200820 00230000
- COMND NOTREADY,G,4,DMKCPBNR 00231000
- COMND ORDER,D+G,3,DMKCSVOR @V60B9BA 00232000
- COMND PURGE,D+G,3,DMKCSVPU @V60B9BA 00233000
- COMND QUERY,A+B+C+D+E+F+G+H,1,DMKCFCQU,TYPE=A @V200820 00234000
- COMND READY,G,5,DMKCPBRY 00235000
- COMND FREE,D,2,DMKCSQFR @V60B9BA 00236000
- COMND REPEAT,D,3,DMKCSORP 00237000
- COMND REQUEST,G,3,DMKCFCRQ,TYPE=A @V200930 00238000
- COMND RESET,G,5,DMKCPBRS 00239000
- COMND REWIND,G,3,DMKCPBRW 00240000
- COMND SYSTEM,G,3,DMKCPBSR 00241000
- COMND SAVESYS,C,7,DMKCFHSV HRC026DK 00242490
- COMND INDICATE,E+G,3,DMKTHIEN @VM03169 00243000
- COMND TRANSFER,D+G,4,DMKCSVTR @V60B9BA 00244000
- COMND SET,A+B+F+G+H,3,DMKCFCSE,TYPE=A @V326538 00245000
- COMND SHUTDOWN,A,8,DMKCPRSH @VA13648 00246000
- COMND SLEEP,0,2,DMKCFCSL,NCL=1,TYPE=A 00247000
- COMND SPACE,D,3,DMKCSOSP 00248000
- COMND SPOOL,G,2,DMKCSPSP 00249000
- COMND STORE,G,2,DMKCDSTO 00250000
- COMND START,D,3,DMKCSOST 00251000
- COMND STCP,C,4,DMKCDSCP 00252000
- COMND TAG,G,2,DMKCSTAG @VM03169 00253000
- COMND TERMINAL,G,4,DMKCFTRM 00254000
- COMND TRACE,G,2,DMKTRACE 00255000
- COMND PER,G,3,DMKPECMD PER001 00255500
- COMND UNLOCK,C,6,DMKCPVUL HRC026DK 00256490
- COMND VARY,B,4,DMKCPSRY @VA03757 00257000
- COMND VMDUMP,G,3,DMKVMDEP @V67CAH7 00257500
- COMND WNG,A+B,1,DMKMSGWN @V200820 00258000
- COMND WARNING,A+B,1,DMKMSGWN @V200820 00259000
- COMND SMSG,G,2,DMKMSGSM @V60C2B8 00259100
- COMND *,0,1,0,NCL=1,TYPE=A @V200820 00260000
- COMNDEND COMND CP,0,2,0,NCL=1,TYPE=A @V200820 00261000
- COMNDCLC CLC 0(0,R1),0(R3) 00262000
- SPACE 00263000
- CPCHAR DC C'CP ' @V200820 00264000
- SPACE 1 00265000
- RETRYMSG DC X'9985A2A38199A3404095A4997C97957C' 00266000
- * R E S T A R T R E S T A R T 00267000
- EJECT 00268000
- *. 00269000
- * 00270000
- * ENTRY NAME - 00271000
- * 00272000
- * DMKCFCRQ 00273000
- * 00274000
- * FUNCTION - 00275000
- * 00276000
- * TO SIMULATE AN ATTENTION INTERRUPT TO THE VIRTUAL MACHINE 00277000
- * CONSOLE AS THOUGH THE REQUEST KEY HAD BEEN USED 00278000
- * ON A REAL CPU CONSOLE. 00279000
- * 00280000
- * COMMAND LINE FORMAT - 00281000
- * 00282000
- * +--------------+ 00283000
- * | REQUEST | 00284000
- * +--------------+ 00285000
- * 00286000
- * CALLS TO OTHER ROUTINES - 00287000
- * 00288000
- * DMKCFMAT - TO SIMULATE THE ATTENTION 00289000
- * 00290000
- * OPERATION - 00291000
- * 00292000
- * 1. CALL DMKCFMAT TO POST THE ATTENTION INTERRUPT 00293000
- * 2. RETURN +4 TO RUN THE VIRTUAL MACHINE 00294000
- * 00295000
- * RESPONSES - 00296000
- * 00297000
- * NONE 00298000
- * 00299000
- * ERROR MESSAGES - 00300000
- * 00301000
- * NONE 00302000
- * 00303000
- *. 00304000
- EJECT 00305000
- DMKCFCRQ RELOC @VM03169 00306000
- SPACE 00307000
- CALL DMKCFMAT SIMULATE ATTENTION INTERRUPT @V200930 00308000
- L R1,SAVERETN GET RETURN ADDRESS @V200930 00309000
- LA R1,4(R1) UP TO RUN MACHINE @V200930 00310000
- ST R1,SAVERETN SET RETURN TO DMKCFM @V200930 00311000
- EXIT RUN MACHINE @V200930 00312000
- EJECT 00313000
- *. 00314000
- * 00315000
- * ENTRY NAME - 00316000
- * 00317000
- * DMKCFCBE 00318000
- * 00319000
- * FUNCTION - 00320000
- * 00321000
- * TO ALLOW VIRTUAL MACHINE TO CONTINUE OR TO RESUME 00322000
- * OPERATION AT A SPECIFIED LOCATION. 00323000
- * 00324000
- * 00325000
- * COMMAND LINE FORMAT - 00326000
- * 00327000
- * +--------+------------+ 00328000
- * | BEGIN | LOCATION | 00329000
- * +--------+------------+ 00330000
- * 00331000
- * CALLS TO OTHER ROUTINES - 00332000
- * 00333000
- * DMKSCNFD - TO PICK UP V.M. ADDRESS (IF ANY) 00334000
- * DMKCVTHB - TO CONVERT SAME TO BINARY 00335000
- * DMKTRCPB - TO PUT BACK OLD USER INSTRUCTIONS (IF TRACING) 00336000
- * DMKTRCIT - TO SET NEW "SVC B2" FOR TRACING INSTRUCTIONS 00337000
- * 00338000
- * OPERATION - 00339000
- * 00340000
- * 1. CALL DMKSCNFD TO LOCATE POSSIBLE ADDRESS. IF NONE FOUND, 00341000
- * GO TO STEP 2A. 00342000
- * 2. CALL DMKCVTHB TO CONVERT THE ADDRESS TO BINARY. 00343000
- * IF BAD, CALL DMKERMSG TO SEND ERROR MESSAGE DMKCFM004E. 00344000
- * IF OK, STORE NEW ADDRESS INTO THE VIRTUAL PSW. 00345000
- * 2A. SET UP TO RETURN TO DMKCFM+4 AND EXIT. 00346000
- * 00347000
- * RESPONSES - 00348000
- * NONE - THE VIRTUAL MACHINE WILL COMMENCE EXECUTION. 00349000
- * 00350000
- * ERROR MESSAGES - 00351000
- * DMKCFC004E INVALID HEXLOC - (HEXLOC) 00352000
- * 00353000
- *. 00354000
- EJECT 00355000
- DMKCFCBE RELOC @VM03169 00356000
- SPACE 00357000
- CALL DMKSCNFD SCAN FOR BEGIN ADDRESS 00358000
- BNZ BEGEXIT RETURN IF NONE FOUND 00359000
- LR R6,R1 SAVE ARGUMENT ADDRESS 00360000
- LR R5,R0 SAVE ARGUMENT LENGTH 00361000
- CL R0,F6 OVER SIX CHARACTERS ???? 00362000
- BH CFC004 YES - SEND ERROR MESSAGE @VM03169 00363000
- CALL DMKCVTHB CONVERT ADDRESS TO BINARY 00364000
- BNZ CFC004 BRANCH ON ERROR @VM03169 00365000
- AIF (NOT &TRACE(6)).TR2 00366000
- TM VMTRCTL,VMTRBRIN TRACING INSTRUCTIONS ? 00367000
- BZ BEGSTOR NOPE - STORE NEW PSW BITS. 00368000
- CALL DMKTRCPB YES - PUT BACK OLD USER 00369000
- * INSTRUCTIONS 00370000
- CALL DMKTRCIT AND SET THE NEW ONE (R1 TELLS 00371000
- * WHERE) 00372000
- .TR2 ANOP 00373000
- BEGSTOR STCM R1,7,VMPSW+5 STORE NEW ADDRESS BACK IN PSW 00374000
- BEGEXIT L R1,SAVERETN LOAD RETURN ADDRESS 00375000
- LA R1,4(,R1) INCREMENT BY 4 00376000
- ST R1,SAVERETN STORE BACK IN SAVE AREA 00377000
- EXIT 00378000
- EJECT 00379000
- *. 00380000
- * ENTRY NAME - 00381000
- * 00382000
- * DMKCFCSL 00383000
- * 00384000
- * FUNCTION - 00385000
- * 00386000
- * TO ALLOW TERMINAL TO RECEIVE MESSAGES, BUT NOT 00387000
- * RUN USERS VIRTUAL MACHINE. 00388000
- * 00389000
- * COMMAND LINE FORMAT - 00390000
- * 00391000
- * +---------+-----------------------------------+ 00392000
- * | SLEEP | < NN < HRS | MIN | SEC >> | 00393000
- * +---------+-----------------------------------+ 00394000
- * 00395000
- * OPERATION - 00396000
- * 00397000
- * 1. IF 'NN' NOT SPECIFIED, SET VMSLEEP AND EXIT. 00398000
- * 2. VALIDATE NUMERIC OPERAND, SCAN FOR UNITS OPERAND. 00399000
- * (DEFAULT UNIT IS MINUTES, ABBREVIATIONS ARE 'HR', 00400000
- * 'MIN', AND 'SEC') 00401000
- * CONVERT SPECIFIED NUMBER INTO TOD CLOCK UNITS. 00402000
- * 3. CALL DMKFREE FOR STORAGE FOR A TRQBLOK. 00403000
- * 4. IF VMDELAY ALREADY POINTS TO A TRQBLOK, USE THE 00404000
- * EXISTING ONE (RESET VIA CALL DMKSCHRT IF QUEUED). 00405000
- * 5. ADD THE SPECIFIED NUMBER OF SECONDS TO THE CURRENT 00406000
- * T.O.D. CLOCK VALUE, SET THE RETURN TO 'SLPRETN', 00407000
- * AND SET THE REQUEST VIA CALL DMKSCHST. EXIT 00408000
- * 6. WHEN THE SPECIFIED INTERVAL HAS ELAPSED, FRET THE 00409000
- * TRQBLOK AND RE-DISPATCH THE VIRTUAL MACHINE. 00410000
- * 00411000
- * RESPONSES - NONE 00412000
- * 00413000
- * ERROR MESSAGES - 00414000
- * 00415000
- * DMKCFC002E INVALID OPERAND - OPERAND 00416000
- *. 00417000
- EJECT 00418000
- DMKCFCSL RELOC @VM03169 00419000
- SPACE 00420000
- CALL DMKSCNFD WAS AN INTERVAL SPECIFIED ? @V200820 00421000
- BZ INTERVAL YES CONTINUE @VM03169 00422000
- OI VMOSTAT,VMSLEEP SET MACHINE TO SLEEP @VM03169 00423000
- B SLPEXIT AND RETURN @VM03169 00424000
- INTERVAL LA R2,2 SET UP ERROR MSG CODE (IN CASE) @VM03169 00425000
- CL R0,F2 CHECK FOR VALID PARM LENGTH @VM03169 00426000
- BH CALLERM TOO LONG - ERROR @V200820 00427000
- STM R0,R1,SAVEWRK2 SAVE PARM ADDR, LEN FOR LATER ERR@V200820 00428000
- CALL DMKCVTDB ATTEMPT CONVERT TO BINARY @V200820 00429000
- LR R3,R1 VALUE TO GR3 IF O.K. @V200820 00430000
- LM R0,R1,SAVEWRK2 RECOVER PARM ADDR, ETC IF BAD @V200820 00431000
- BNZ CALLERM NO GOOD - ERROR @V200820 00432000
- CALL DMKSCNFD SCAN FOR UNITS OPERAND @VM03169 00433000
- BNZ SLPMINS NONE SPECIFIED - USE MINUTES @VM03169 00434000
- CL R0,F3 MAXIMUM LENGTH IS THREE BYTES @VM03169 00435000
- BH CALLERM NO GOOD - DMKCFC002E @VM03169 00436000
- BE SLPARMS EXACTLY THREE CHARS - CHECK THEM @VM03169 00437000
- CLC 0(2,R1),=C'HRS ' ONLY ABBREVIATION IS 'HR' @VM03169 00438000
- BNE CALLERM NOPE - INVALID OPERAND @VM03169 00439000
- B SLPHOUR CONVERT FROM HOURS TO SECONDS @VM03169 00440000
- SLPARMS EQU * DETERMINE TIME UNITS FOR DELAY @VM03169 00441000
- CLC 0(3,R1),=C'SEC ' DELAY IN SECONDS ? @VM03169 00442000
- BE SLPSECS YES - NO CONVERSION @VM03169 00443000
- CLC 0(3,R1),=C'MIN ' DELAY IN MINUTES ? @VM03169 00444000
- BE SLPMINS YES - MULTIPLY BY 60 @VM03169 00445000
- CLC 0(3,R1),=C'HRS ' DELAY IN HOURS ? @VM03169 00446000
- BNE CALLERM NO -- BAD OPERAND @VM03169 00447000
- SLPHOUR EQU * CONVERT HOURS TO SECONDS @VM03169 00448000
- SLR R2,R2 CLEAR HIGH-ORDER REGISTER @VM03169 00449000
- M R2,F60 HOURS TIMES 60 = MINUTES @VM03169 00450000
- SLPMINS EQU * CONVERT MINUTES TO SECONDS @VM03169 00451000
- SLR R2,R2 CLEAR HIGH-ORDER REGISTER @VM03169 00452000
- M R2,F60 MINUTES TIMES 60 = SECONDS @VM03169 00453000
- SLPSECS EQU * CONVERT TO TOD CLOCK UNITS @VM03169 00454000
- SLR R2,R2 CLEAR HIGH-ORDER REGISTER @VM03169 00455000
- M R2,=F'1000000' CONVERT TO MICRO-SECONDS @VM03169 00456000
- SLDA R2,12 ALIGN TO BIT 51 @VM03169 00457000
- L R1,VMDELAY CHECK FOR AN EXISTING TRQBLOK @V200820 00458000
- LTR R1,R1 ??? @V200820 00459000
- BZ GETRQBK NOPE - GET ONE FROM FREE STORAGE @V200820 00460000
- CALL DMKSCHRT RESET THE TIMER REQUEST @V200820 00461000
- B SETRQBK NOW IT'S O.K. TO USE @V200820 00462000
- GETRQBK EQU * @V200820 00463000
- LA R0,TRQBSIZE SIZE OF TRQBLOK IN DBL-WDS @V200820 00464000
- CALL DMKFREE ... @V200820 00465000
- XC 0(TRQBSIZE*8,R1),0(R1) CLEAR IT @V200820 00466000
- ST R1,VMDELAY SAVE THE ADDRESS HERE @V200820 00467000
- USING TRQBLOK,R1 @V200820 00468000
- SETRQBK EQU * @V200820 00469000
- OI VMOSTAT,VMSLEEP SET MACHINE TO SLEEP @VM03169 00470000
- STCK TRQBVAL SET CURRENT TIME OF DAY @V200820 00471000
- BC 12,CLOCKOK IS CLOCK FUNCTIONING? @VA04301 00471250
- DOWNWEGO DS 0H @V408246 00471300
- GOTO DMKCVTAB CLOCK DAMAGED...ABEND CVT001 @VA04301 00471500
- CLOCKOK EQU * @VA04301 00471750
- AL R3,TRQBVAL+4 ADD LOW ORDER WORD @VM03169 00472000
- BC 12,NOCARRY SKIP IF NO CARRY @VM03169 00473000
- AL R2,F1 ELSE ADD IN THE CARRY @VM03169 00474000
- NOCARRY AL R2,TRQBVAL ADD IN HIGH ORDER WORD @VM03169 00475000
- STM R2,R3,TRQBVAL STORE WAKE UP TIME 00476000
- ST R11,TRQBUSER VMBLOK ADDRESS @V200820 00477000
- L R4,=A(DMKCFMWU) RETURN AFTER INTERVAL @VM03169 00478000
- ST R4,TRQBIRA ... @V200820 00479000
- STCK TRQBTOD TIME-STAMP TRQ BLOCK @V408246 00479100
- BC 3,DOWNWEGO ABEND CVT001 @V408246 00479300
- CALL DMKSCHST SET THE REQUEST PENDING @V200820 00480000
- MC 3,1 CLASS1=RESPONSE, CODE3=SL/TIMEOUT@VM03169 00481000
- SLPEXIT EQU * @V200820 00482000
- EXIT RETURN TO DMKCFC @V200820 00483000
- SPACE 2 00484000
- SPACE 3 00485000
- * 00486000
- * WHEN COME HERE R6= ARGUMENT ADDRESS, R5= ARGUMENT LENGTH 00487000
- * 00488000
- CFC004 LR R0,R5 ARGUMENT LENGTH @VM03169 00489000
- LR R1,R6 ARGUMENT ADDRESS 00490000
- LA R2,4 ERROR CODE 00491000
- SPACE 00492000
- CALLERM ICM R0,14,MODID+3 MODULE IDENTIFIER 00493000
- CALL DMKERMSG SEND ERROR MESSAGE 00494000
- * 00495000
- * ERMSG WILL RETURN TO CFC MAIN CONTROL --- NOT HERE 00496000
- * 00497000
- EJECT 00497005
- *. 00497010
- * ENTRY NAME - 00497015
- * 00497020
- * DMKCFCSC 00497025
- * 00497030
- * FUNCTION - 00497035
- * 00497040
- * A NEW ENTRY POINT WILL BE ADDED TO DMKCFC (DMKCFCSC) 00497045
- * WHICH WILL SCAN A STRING FOR A SPECIFIED CHARACTER. THIS 00497050
- * ROUTINE IS BEING IMPLEMENTED TO DETERMINE WHETHER AN 00497055
- * OPERAND ON A COMMAND LINE IS A RANGE OF DEVICE ADDRESSES. 00497060
- * DMKCFCSC MAY BE INVOKED TO SCAN FOR ANY CHARACTER; THE 00497065
- * 3850 SUPPORT WILL USE THE ROUTINE TO SCAN FOR A '-'. 00497070
- * 00497075
- * ENTRY CONDITIONS: 00497080
- * 00497085
- * R0 CONTAINS LENGTH OF STRING TO BE SCANNED 00497090
- * R1 CONTAINS THE ADDRESS OF THE STRING TO BE SCANNED. 00497095
- * R2 CONTAINS THE ADDRESS OF A FIELD CONTAINING THE 00497100
- * CHARACTER WHICH WILL BE THE OBJECT OF THE SCAN. 00497105
- * 00497110
- * EXIT CONDITIONS: 00497115
- * 00497120
- * CC=0 - THE SPECIFIED CHARACTER WAS NOT FOUND IN THE STRING; 00497125
- * ENTRY REGISTERS REMAIN UNCHANGED. 00497130
- * 00497135
- * CC=1 - THE SPECIFIED CHARACTER WAS FOUND IN THE STRING. 00497140
- * R2 CONTAINS THE ADDRESS OF THE SPECIFIED CHARACTER 00497145
- * IN THE STRING BEING SCANNED; R0 AND R1 REMAIN 00497150
- * UNCHANGED. 00497155
- * 00497160
- * OPERATION - 00497165
- * 00497170
- * SCAN FOR THE SPECIFIED CHARACTER BY USING THE 'TRT' 00497175
- * INSTRUCTION AND A 256 BYTE TABLE. 00497180
- * 00497185
- * RESPONSES - 00497190
- * NONE 00497195
- * 00497200
- * MESSAGES - 00497205
- * NONE 00497210
- *. 00497215
- DMKCFCSC RELOC @V407466 00497220
- LA R4,DMKCFCTB SET TABLE ADDRESS @V407466 00497225
- XC 0(L256,R4),0(R4) CLEAR TO ZERO @V407466 00497230
- SLR R6,R6 CLEAR REGISTER @V407466 00497235
- IC R6,0(R2) GET SCAN CHARACTER @V407466 00497240
- LA R5,0(R4,R6) GET TRT TAB PTR + '-' CHAR @V407466 00497245
- LTR R6,R6 WAS SCAN CHAR '00' @V407466 00497250
- BNZ FUNC NO, KEEP GOING @V407466 00497255
- LA R6,1(,R6) NON-ZERO BYTE IN TABLE @V407466 00497260
- FUNC EX R6,SETFUNC PLACE FUNCTION @V407466 00497265
- LR R6,R1 PTR TO FIRST BYTE OF DATA @V407466 00497270
- LR R9,R0 @V407466 00497275
- LA R7,0(R9,R6) PTR TO LAST CHAR + 1 @V407466 00497280
- ABOVE LR R8,R7 GET LENGTH FOR @V407466 00497285
- SR R8,R6 EXECUTE INST. @V407466 00497290
- BCTR R8,0 DECREMENT FOR EXECUTE @V407466 00497295
- EX R8,SEARCH SCAN FOR '-' @V407466 00497300
- BC 0,EXIT2 @V407466 00497305
- ST R1,SAVER2 ARGUMENT BYTE ADDRESS @V407466 00497310
- ST R6,SAVER1 RESTORE ORIGINAL R1 @V407466 00497315
- EXIT2 EXIT @V407466 00497320
- SEARCH TRT 0(0,R6),0(R4) @V407466 00497325
- SETFUNC MVI 0(R5),0 @V407466 00497330
- L256 EQU 256 @V407466 00497335
- DMKCFCTB DC 256X'00' @V407466 00497340
- EJECT 00498000
- *. 00499000
- * ENTRY NAME - 00499500
- * 00500000
- * DMKCFCQU - PROCESS THE QUERY COMMAND 00500500
- * DMKCFCSE - PROCESS THE SET COMMAND 00501000
- * 00501500
- * FUNCTION - 00502000
- * 00502500
- * THE FUNCTION OF THIS ROUTINE IS TO SCAN THRU THE QUERY AND 00503000
- * SET LISTS FOR THE SPECIFIED ARGUMENT. THIS ROUTINE 00503500
- * WILL SET UP AND CALL THE PROPER QUERY OR SET EXECUTOR 00504000
- * TO HANDLE THE REQUEST. 00504500
- * 00505000
- * OPERATION - 00505500
- * 00506000
- * 1. CALL DMKSCNFD TO LOCATE THE NEXT ARGUMENT. IF NO 00506500
- * ARGUMENT IS FOUND, CALL DMKERMSG TO SEND ERROR MESSAGE 00507000
- * DMKCFC026E. 00507500
- * 2. SCAN THE APPROPRIATE LIST FOR AN ARGUMENT. 00508000
- * IF NOT FOUND AND THIS IS A QUERY REQUEST, SET UP FOR 00508500
- * THE APPROPRIATE DEFAULT AND CALL THE APPROPRIATE 00509000
- * EXECUTOR. 00509500
- * 3. CHECK ARGUMENT FOR MINIMUM ABBREVIATION. 00510000
- * 4. CHECK ARGUMENT FOR PERMITTED CLASSES. 00510500
- * 5. SET THE R6 INDEX AND CALL THE MODULE TO 00511000
- * HANDLE THE ARGUMENT. 00511500
- * 00512000
- * NOTE: THE QUERY AND SET LISTS ARE MADE UP OF 12 BYTE 00512500
- * ENTRIES, EACH OF THE FOLLOWING FORM: 00513000
- * 00513500
- * +----------------------+------+------+------+------+ 00514000
- * | SEARCH ARGUMENT |ABBREV|CLASS |MODULE|INDEX | 00514500
- * +----------------------+------+------+------+------+ 00515000
- * 00515500
- * THE INDEX MUST MATCH THE BRANCH LISTS IN THE 00516000
- * CALLED MODULES. 00516500
- * 00517000
- * RESPONSES - 00517500
- * NONE 00518000
- * 00518500
- * MESSAGES - 00519000
- * 00519500
- * DMKCFC003E INVALID OPTION - OPTION 00520000
- * DMKCFC026E OPERAND MISSING OR INVALID 00520500
- * 00521000
- *. 00521500
- EJECT 00522000
- DMKCFCQU RELOC @V326538 00522500
- MVI SAVEWRK1,00 INDICATE QUERY FUNCTION @V326538 00523000
- LA R3,QRYLIST START OF QUERY LIST @V326538 00523500
- LA R5,QRYLAST END OF QUERY LIST @V326538 00524000
- B SETQUCOM JOIN COMMON CODE @V326538 00524500
- SPACE 00525000
- DMKCFCSE RELOC @V326538 00525500
- MVI SAVEWRK1,X'01' INDICATE SET FUNCTION @V326538 00526000
- LA R3,SETLIST START OF SET LIST @V326538 00526500
- LA R5,SETLAST END OF SET LIST @V326538 00527000
- SPACE 00527500
- SETQUCOM MVC SAVEWRK2(8),BLANKS BLANK MESSAGE AREA @V326538 00528000
- MVC SAVEWRK4(8),SAVEWRK2 ... 00545000
- CALL DMKSCNFD LOCATE TYPE OF QUERY 00546000
- BNZ CFC026 MISSING ARGUMENT @VM03169 00547000
- CL R0,F8 IF ARGUMENT OVER EIGHT CHARACTERS 00548000
- BH CFC026 WE HAVE A FOR SURE ERROR @VM03169 00549000
- LR R2,R0 LENGTH OF ARG. IN GPR 2. 00550000
- BCTR R2,0 MAKE RIGHT LENGTH FOR COMPARE 00551000
- * INST. 00552000
- LA R4,12 INDEX @V200930 00555000
- QRYLOOP EX R2,QRYCLC IS THIS OPTION REQUESTED ? 00556000
- BE QRYABREV IF EQUAL, GO CHECK FOR PROPER 00557000
- * ABREV. 00558000
- VECTBUMP DS 0H @V200930 00559000
- BXLE R3,R4,QRYLOOP TRY AGAIN IF NOT AT END 00560000
- LR R6,R0 SAVE PARM LENGTH @VM03169 00561000
- LR R7,R1 SAVE PARM POINTER @VM03169 00562000
- CLC 0(2,R1),=C'PF' PF QUERY ?? @V200730 00563000
- BNE QRYUSR NO, MIGHT BE USERID @V200730 00564000
- CLI SAVEWRK1,X'00' IS THIS A QUERY REQUEST? @V326538 00564100
- BE QUEPF YUP, BR. @V326538 00564200
- LA R3,SETPF ADDRESS THE TABLE ENTRY @V326538 00564300
- B QRYCALL AND GO TO THE SETPF ROUTINE @V326538 00564400
- SPACE 00564500
- QUEPF EQU * @V326538 00564600
- CL R0,F4 LENGTH OF 4? @VM03169 00565000
- BH QRYUSR GT 4 - ISN'T PFXX; MUST BE USERID@VM03169 00566000
- LA R1,2(R1) ADDR OF NUMBER TO CONVERT @VM03169 00567000
- BCTR R0,0 SIZE OF NUMBER TO CONVERT @VM03169 00568000
- BCTR R0,0 ... @VM03169 00569000
- CALL DMKCVTDB CONVERT THE XX IN PFXX @VM03169 00570000
- BNZ QRYUSR IF DIDN'T CONVERT, MUST BE USERID@VM03169 00571000
- LTR R1,R1 IS THE NUMBER POSITIVE? @VM03169 00572000
- BNP QRYUSR NO, MUST BE USERID @VM03169 00573000
- CH R1,=H'24' Is converted number GT 24? HRC043DK 00574100
- BH QRYUSR YES, INVALID PFXX, MUST BE USERID@VM03169 00575000
- LR R0,R6 RESTORE PARM LENGTH @VM03169 00576000
- LR R1,R7 RESTORE PARM POINTER @VM03169 00577000
- LA R3,QRYPF SET R3 TO QUERY FUNC @V200730 00578000
- B QRYCALL CALL TO DO PF QUERY @V200730 00579000
- QRYUSR DS 0H @V200730 00580000
- LR R0,R6 RESTORE PARM LENGTH @VM03169 00581000
- LR R1,R7 RESTORE PARM POINTER @VM03169 00582000
- LA R3,QRYCLASB SET DEFUALT FOR CLASS B @V200930 00583000
- CLI SAVEWRK1,X'00' IS THIS A QUERY REQUEST? @V326538 00583300
- BNE CFC003 NOPE, GARBAGE IN, GARBAGE OUT @V326538 00583600
- TM VMCLEVEL,VMCLASSB IS IT CLASS B ?? @V200930 00584000
- BO QRYCALL YES, DO IT @V200930 00585000
- LA R3,QRYCLASG SET FOR CLASS G DEFAULT @V200930 00586000
- B QRYCALL DO IT @V200930 00587000
- SPACE 00588000
- QRYABREV SR R7,R7 CLEAR FOR WORK @V200930 00589000
- IC R7,8(R3) GET ALLOWED ABBREVIATION @V200930 00590000
- BCTR R7,0 MINUS ONE FOR 'EX' COMPARE 00591000
- EX R7,QRYCLC MATCH ????? 00592000
- BNE VECTBUMP NO GOOD, KEEP LOOKING @V200930 00593000
- IC R7,9(R3) GET ALLOWED CLASS @V200930 00594000
- EX R7,QRYTM TEST FOR ALLOWED CLASS @V200930 00595000
- BZ VECTBUMP NOT ALLOWED, KEEP SCANNING @V200930 00596000
- B QRYCALL OK, GO DO IT @V200930 00597000
- EJECT 00598000
- QRYTM TM VMCLEVEL,*-* EXECUTED FOR CLASS @V200930 00599000
- QRYCLC CLC 0(0,R3),0(R1) 00600000
- SPACE 00601000
- QRYMODS DC A(DMKCQGEN) INDEX 0 MODULE @V326538 00602000
- DC A(DMKCQPRV) INDEX 4 MODULE @V200930 00603000
- DC A(DMKCQREY) INDEX 8 MODULE @V200930 00604000
- DC A(DMKCQYEY) INDEX 12 MODULE 00604500
- DC A(0) RESERVE FOR FUTURE USE @VA09413 00604610
- DC A(DMKJRLQU) INDEX 20 MODULE @V60BBBB 00604700
- DC A(DMKCQHQU) INDEX 24 MODULE @VA13360 00604800
- DC A(HDKCQURY) INDEX 28 HRC QUERY MODULE HRC019DK 00604900
- DC A(HDKCQALO) INDEX 32 HRC QUERY MODULE HRC030DK 00604950
- SPACE 00605000
- SETMODS DC A(DMKCFSET) INDEX 0 MODULE @V326538 00605200
- DC A(DMKCFOEX) INDEX 4 MODULE @V326538 00605400
- DC A(0) RESERVE FOR FUTURE USE @VA09413 00605610
- DC A(DMKJRLSE) INDEX 12 MODULE @V60BBBB 00605800
- SPACE 00606000
- QRYCALL SR R7,R7 CLEAR INDEX REG @V200930 00607000
- IC R7,10(R3) GET MODULE INDEX @V200930 00608000
- SR R6,R6 CLEAR FOR INDEX @V200930 00610000
- IC R6,11(R3) GET BRANCH INDEX @V200930 00611000
- SR R2,R2 ZERO RETURN CODE REGISTER 00612000
- CLI SAVEWRK1,X'00' IS THIS A QUERY REQUEST? @V326538 00612250
- BNE LOADSET NOPE, PROCESS AS SET @V326538 00612500
- L R15,QRYMODS(R7) LOAD FOR CALL @V326538 00612750
- CALL (15) CALL APPROPRIATE ROUTINE @V326538 00613000
- SPACE 00613250
- * CALLED ROUTINE WILL GIVE UP SAVEAREA VIA SVC 16, THUS 00613500
- * WILL NOT RETURN HERE WHEN FINISHED; INSTEAD WILL RETURN 00613750
- * DIRECT TO CFM. 00614000
- SPACE 00614250
- LOADSET L R15,SETMODS(R7) LOAD FOR CALL @V326538 00614500
- CALL (15) CALL APPROPRIATE ROUTINE @V326538 00614750
- SPACE 00615000
- * CALLED ROUTINE WILL GIVE UP SAVEAREA VIA SVC 16, THUS 00615250
- * WILL NOT RETURN HERE WHEN FINISHED; INSTEAD WILL RETURN 00615500
- * DIRECT TO CFM. 00615750
- SPACE 4 00616000
- CFC003 LA R2,3 INVALID OPTION - OPTN @V326538 00616250
- B CALLERM GO SEND ERROR MESSAGE @V326538 00616500
- SPACE 2 00616750
- CFC026 LA R2,26 OPERAND MISSING OR INVALID @V326538 00617000
- SLR R1,R1 ZROE PARM REG 00619000
- B CALLERM GO SEND ERROR MESSAGE 00620000
- EJECT 00621000
- * C'COMMAND ',AL1(TRUNC CNT,CLASS,MOD,SUBFUNC INDEX) 00621500
- QRYLIST DS 0F DECODING LIST FOR QUERY OPERANDS @V200820 00622000
- DC C'SYSTEM ',AL1(3,B,4,4) MODULE 04 = DMKCQPRV @V200820 00623000
- DC C'DASD ',AL1(2,B,4,8) @V200820 00624000
- DC C'TAPES ',AL1(2,B,4,12) @V200820 00625000
- DC C'LINES ',AL1(5,B,4,16) @V200820 00626000
- DC C'UR ',AL1(2,B+D,4,20) @V200820 00627000
- DC C'STORAGE ',AL1(4,B,4,24) @V200820 00628000
- DC C'ALL ',AL1(3,B,4,28) @V200820 00629000
- DC C'LINKS ',AL1(1,G,4,32) @V200820 00630000
- DC C'GRAF ',AL1(2,B,4,36) @VM08761 00631000
- DC C'TDSK ',AL1(2,B,4,40) @V200820 00632000
- DC C'PROCESSR',AL1(4,A+B+C+E+G,4,44) @V5BC0AB 00632150
- DC C'VIRTUAL ',AL1(1,G,0,16) MODULE 00 = DMKCQGEN @VA13360 00633000
- DC C'DASD ',AL1(2,G,0,20) @V200820 00640000
- DC C'TAPES ',AL1(2,G,0,24) @V200820 00641000
- DC C'LINES ',AL1(5,G,0,28) @V200820 00642000
- DC C'UR ',AL1(2,G,0,32) @V200820 00643000
- DC C'STORAGE ',AL1(4,G,0,36) @V200820 00644000
- DC C'ALL ',AL1(3,G,0,40) @V200820 00645000
- DC C'GRAF ',AL1(2,G,0,44) @VM08761 00646000
- DC C'CONSOLE ',AL1(3,G,0,48) @V200820 00647000
- DC C'CHANNELS',AL1(4,G,0,52) @VM03169 00648000
- DC C'FILES ',AL1(1,D+G,8,0) MODULE 08 = DMKCQREY @V200820 00649000
- DC C'SET ',AL1(1,G,8,4) 00650000
- DC C'DUMP ',AL1(4,B,8,8) 00650600
- DC C'PAGING ',AL1(3,A+E,8,12) 00651200
- DC C'HOLD ',AL1(1,D,8,16) 00651800
- DC C'PRIORITY',AL1(5,A+C+E,8,20) 00652400
- DC C'TERMINAL',AL1(4,G,8,24) 00653000
- DC C'AFFINITY',AL1(3,A+E,8,28) AFFINITY @V4075A0 00653300
- DC C'TIME ',AL1(1,G,12,0) MODULE 12 = DMKCQYEY 00653600
- DC C'LOGMSG ',AL1(3,A+B+C+D+E+F+G,12,4) 00654200
- DC C'NAMES ',AL1(1,A+B+C+D+E+F+G,12,8) 00654800
- DC C'USERS ',AL1(1,A+B+C+D+E+F+G,12,12) 00655400
- QRYPF DC C'PF ',AL1(2,G+H,12,16) 00656000
- DC C'SASSIST ',AL1(3,A+E,12,20) 00656600
- DC C'CPASSIST',AL1(3,A+E,12,24) 00657200
- DC C'CPUID ',AL1(3,G,12,28) @V60BBBB 00658200
- DC C'USERID ',AL1(5,G,12,32) HRC107DK 00658300
- DC C'JOURNAL ',AL1(2,A,20,0) MODULE 20 = DMKJRLQU @VA13360 00659200
- DC C'READER ',AL1(1,D+G,24,0) MOD 24 = DMKCQHQU @VA13360 00659600
- DC C'RDR ',AL1(3,D+G,24,0) @VA13360 00660000
- DC C'PRINTER ',AL1(1,D+G,24,4) @VA13360 00660400
- DC C'PRT ',AL1(3,D+G,24,4) @VA13360 00660800
- DC C'PUNCH ',AL1(2,D+G,24,8) @VA13360 00661200
- DC C'PCH ',AL1(3,D+G,24,8) HRC019DK 00661650
- DC C'PRIV ',AL1(4,G,28,0) MODULE 28 = HDKCQURY HRC019DK 00661700
- DC C'MAXIMUM ',AL1(3,A+C+E,28,4) HRC019DK 00661750
- DC C'CPLEVEL ',AL1(2,G,28,8) HRC019DK 00661800
- DC C'ALLOC ',AL1(5,A+C+E,32,0) MOD 32 = HDKCQALO HRC030DK 00661820
- QRYLAST EQU *-12 HRC019DK 00661850
- SPACE 00662000
- QRYCLASB DC C' ',AL1(0,0,4,0) DEFAULT FOR CLASS B @V200820 00663000
- QRYCLASG DC C' ',AL1(0,0,0,0) DEFAULT FOR CLASS G @V200820 00664000
- EJECT 00665000
- SETLIST DS 0F DECODING LIST FOR SET OPERANDS @V326538 00665010
- DC C'ASSIST ',AL1(2,G,0,00) MODULE 0 = DMKCFS @V326538 00665020
- DC C'NOTRANS ',AL1(4,G,0,04) @V326538 00665030
- DC C'TIMER ',AL1(5,G,0,08) @V326538 00665040
- DC C'EMSG ',AL1(4,G,0,12) @V326538 00665050
- DC C'IMSG ',AL1(4,G,0,16) @V326538 00665060
- DC C'ACNT ',AL1(4,G,0,20) @V326538 00665070
- DC C'PAGEX ',AL1(5,G,0,24) @V326538 00665080
- DC C'LINEDIT ',AL1(5,G,0,28) @V326538 00665090
- DC C'RUN ',AL1(3,G,0,32) @V326538 00665100
- DC C'WNG ',AL1(3,G,0,36) @V326538 00665110
- DC C'MSG ',AL1(3,G,0,40) @V326538 00665120
- DC C'ECMODE ',AL1(2,G,0,44) @V326538 00665130
- DC C'ISAM ',AL1(4,G,0,48) @V326538 00665140
- DC C'AUTOPOLL',AL1(5,G,0,52) @V386198 00665200
- SETPF DC C'PF ',AL1(2,G,0,56) @V386198 00665260
- DC C'CPUID ',AL1(3,G,0,60) V407466 00665290
- DC C'AFFINITY',AL1(3,A+G,0,64) @V4075A0 00665297
- DC C'SMSG ',AL1(2,G,0,68) @V60C2B8 00665307
- DC C'PRIV ',AL1(4,G,0,72) HRC018DK 00665313
- DC C'PRIORITY',AL1(5,C,4,00) MODULE 4 = DMKCFO HRC026DK 00665360
- DC C'FAVORED ',AL1(5,C,4,04) HRC026DK 00665400
- DC C'RESERVE ',AL1(3,C,4,08) HRC026DK 00665440
- DC C'SASSIST ',AL1(3,C,4,12) HRC026DK 00665480
- DC C'CPASSIST',AL1(3,C,4,16) HRC026DK 00665520
- DC C'RECORD ',AL1(3,F,4,20) @V386198 00665620
- DC C'MODE ',AL1(4,F,4,24) @V386198 00665680
- DC C'DUMP ',AL1(4,B,4,28) @V386198 00665740
- DC C'LOGMSG ',AL1(3,B,4,32) @V60BBBB 00665780
- DC C'MAX ',AL1(3,A,4,36) HRC018DK 00665800
- DC C'STBYPASS',AL1(3,G,4,40) HRC068DK 00665810
- SETLAST DC C'JOURNAL ',AL1(2,C,12,0) MODULE 12 = DMKJRLSE HRC026DK 00665830
- EJECT 00665860
- LTORG @V200820 00666000
- EJECT 00667000
- PSA 00668000
- COPY CONBUF 00669000
- COPY DEVTYPES 00670000
- COPY EQU 00671000
- COPY RBLOKS 00672000
- COPY SAVE 00673000
- COPY TIMER @V200820 00674000
- COPY TREXT @VA01078 00675000
- COPY VBLOKS 00676000
- COPY VMBLOK 00677000
- * COMMAND CLASS EQUATES 00678000
- A EQU VMCLASSA 00679000
- B EQU VMCLASSB 00680000
- C EQU VMCLASSC 00681000
- D EQU VMCLASSD 00682000
- E EQU VMCLASSE 00683000
- F EQU VMCLASSF 00684000
- G EQU VMCLASSG 00685000
- H EQU VMCLASSH 00686000
- NOCLASS EQU X'01' 00687000
- END 00688000
ibm/vm370-lib/cp/dmkcfc.assemble_src.txt ยท Last modified: 2023/08/06 13:36 by Site Administrator