ibm:vm370-lib:cms:dmsbtb.assemble_src
Table of Contents
DMSBTB Source
References
- Fixes Applied : 0
- This Source Date : Tuesday, December 12, 1978
- Last Fix ID : [Unmodified]
Source Listing
- DMSBTB.ASSEMBLE.txt
- BTB TITLE 'DMSBTB (CMS) VM/370 - RELEASE 6' 00001000
- SPACE 2 00002000
- * 00003000
- * MODULE NAME: 00004000
- * 00005000
- * DMSBTB - CMS BATCH BOOTSTRAP ROUTINE 00006000
- * 00007000
- * FUNCTION: 00008000
- * 00009000
- * TO LOAD THE BATCH PROCESSOR ROUTINE (DMSBTP) AND USER 00010000
- * EXIT ROUTINES (IF THEY EXIST) INTO FREE STORAGE 00011000
- * 00012000
- * ATTRIBUTES: 00013000
- * 00014000
- * DISK RESIDENT IN NON-RELOCATABLE (CMS MODULE) FORM 00015000
- * 00016000
- * ENTRY POINTS: 00017000
- * 00018000
- * DMSBTB - SEE FUNCTION DESCRIPTION 00019000
- * 00020000
- * ENTRY CONDITIONS: 00021000
- * 00022000
- * GPR1 POINTS TO COMMAND LINE 00023000
- * 00024000
- * EXIT CONDITIONS: 00025000
- * 00026000
- * GPR15 = 0 - DMSBTP LOADED SUCCESSFULLY 00027000
- * GPR15 = 40 - NO DMSBTP TEXT FOUND 00028000
- * GPR15 = 88 - EITHER CMSBATCH COMMAND NOT ISSUED IN RESPONSE 00029000
- * TO FIRST CMS READ (I.E.IMMEDIATELY AFTER IPL) 00030000
- * OR TROUBLE LOADING DMSBTP 00031000
- * 00032000
- * CALLS TO OTHER ROUTINES: 00033000
- * 00034000
- * DMSSTT - VERIFY EXISTENCE OF DMSBTP TEXT 00035000
- * DMSLDR - LOAD DMSBTP INTO FREE STORAGE 00036000
- * 00037000
- * EXTERNAL REFERENCES: 00038000
- * 00039000
- * DMSKEY - FOR CORRECT PROTECT KEY 00040000
- * DMSERR - FOR CMS ERROR MESSAGES 00041000
- * DMSFREE - FOR NUCLEUS FREE STORAGE 00042000
- * REGEQU - FOR SYMBOLIC REGISTER NAMES 00043000
- * NUCON - FOR NUCLEUS STORAGE AREA DSECT 00044000
- * FVS - FOR STATE FST DSECT 00045000
- * 00046000
- * TABLES/WORKAREAS: 00047000
- * 00048000
- * NONE 00049000
- * 00050000
- * REGISTER USAGE: 00051000
- * 00052000
- * GPR8 - FVSECT 00053000
- * GPR12 - DMSBTB ADDRESSABILITY 00054000
- * 00055000
- * NOTES: 00056000
- * 00057000
- * NONE 00058000
- * 00059000
- * OPERATION: 00060000
- * 00061000
- * DMSBTB FIRST INSURES THAT DMSINS (CMS 00062000
- * INITIALIZATION) HAS SET ON THE BM FLAGS BATRUN AND BATLOAD 00063000
- * IN THE CMS NUCLEUS CONSTANT AREA SHOWING THAT AN EXPLICIT 00064000
- * BATCH IPL HAS BEEN ISSUED OR THAT THE CMSBATCH COMMAND HAS 00065000
- * BEEN ISSUED IMMEDIATELY AFTER IPL. IF NOT, AN ERROR MESSAGE 00066000
- * (DMSBTB101E) IS GENERATED AND THE BM CONSOLE RETURNS TO A 00067000
- * NORMAL CMS INTERACTIVE ENVIRONMENT. 00068000
- * 00069000
- * STATE (DMSSTT) IS THEN CALLED TO CONFIRM THE 00070000
- * EXISTENCE OF THE BM PROCESSOR FILE (DMSBTP TEXT). IF THE 00071000
- * FILE DOES NOT EXIST AN ERROR MESSAGE (DMSBTB100E) IS ISSUED 00072000
- * AND THE BM CONSOLE RETURNS TO CMS INTERACTIVE ENVIRONMENT. 00073000
- * 00074000
- * USING THE 'STATE' COPY OF THE FILE STATUS TABLE 00075000
- * (FST) FOR DMSBTP, DMSBTB COMPUTES THE SIZE OF DMSBTP TEXT BY 00076000
- * MULTIPLYING THE LOGICAL RECORD LENGTH BY THE NUMBER OF 00077000
- * LOGICAL RECORDS (NO DS CONSTANTS). A FREE STORAGE REQUEST IS 00078000
- * MADE FOR THE SIZE OF DMSBTP AND THE ADDRESS OF THE ROUTINE 00079000
- * IS THEN STORED AT ABATPROC IN THE NUCON AREA OF THE CMS 00080000
- * NUCLEUS. 00081000
- * STATE'S ARE ALSO ISSUED FOR THE USER EXITS AND, IF 00082000
- * THEY EXIST, THEIR SIZES ARE INCLUDED IN THE REQUEST. 00083000
- * 00084000
- * THIS FREE STORAGE ADDRESS IS TRANSLATED INTO 00085000
- * PRINTABLE HEXADECIMAL FORMAT AND THE CMS LOAD COMMAND IS 00086000
- * ISSUED TO LOAD DMSBTP TEXT FILE INTO THE RESERVED FREE 00087000
- * STORAGE AREA. ALSO LOADED AT THIS TIME ARE THE USER EXIT 00088000
- * ROUTINES, BATEXIT1 TEXT AND BATEXIT2 TEXT. IF THESE FILES DO 00089000
- * NOT EXEIST, AN UNRESOLVED EXTERNAL REFERENCE ERROR CODE IS 00090000
- * RETURNED BY THE LOADER BUT IT IS IGNORED BY DMSBTB SINCE 00091000
- * THESE ROUTINES ARE INSTALLATION OPTIONS. IF AN ERROR (OTHER 00092000
- * THAN UNRESOLVED NAMES) OCCURS, A MESSAGE (DMSBTB101E) IS 00093000
- * ISSUED AND THE BM CONSOLE RETURNS TO THE CMS INTERACTIVE 00094000
- * ENVIRONMENT. 00095000
- * 00096000
- * THE LOADER TABLES ARE THEN SEARCHED FOR THE 00097000
- * ADDRESS OF THE ABEND ENTRY POINT DMSBTPAB IN THE LOADED 00098000
- * BATCH PROCESSOR. WHEN THE ENTRY IS FOUND ITS ADDRESS AND 00099000
- * THAT OF ENTRY DMSBTPLM ARE STORED IN ABATABND AND ABATLIMT 00100000
- * REPECTIVELY IN THE NUCON AREA OF THE CMS NUCLEUS. IF THE 00101000
- * ABEND ENTRY POINT IS NOT FOUND IN THE TABLES, AN ERROR 00102000
- * MESSAGE (DMSBTB101E) IS ISSUED AND THE BM CONSOLE RETURNS TO 00103000
- * THE CMS INTERACTIVE MODE. 00104000
- * 00105000
- * THE BATLOAD FLAG IS SET OFF TO SHOW THAT DMSBTP 00106000
- * HAS BEEN LOADED, THE BATNOEX FLAG IS SET ON TO PREVENT USER 00107000
- * JOB EXECUTION UNTIL DMSBTP ENCOUNTERS A /JOB CARD AND 00108000
- * FINALLY, CONTROL IS RETURNED TO CMS (DMSITS). 00109000
- * 00110000
- * _N_O_T_E: IF AN ERROR MESSAGE IS ISSUED, DMSERR 00111000
- * TYPES THE MESSAGE, THE BM FLAGS BATRUN AND BATLOAD ARE SET 00112000
- * OFF BEFORE CONTROL IS RETURNED TO CMS. THIS ALLOWS THE 00113000
- * NORMAL CMS INTERACTION TO RESUME. 00114000
- * 00115000
- *. 00116000
- EJECT 00117000
- DMSBTB START 00118000
- LR R12,R15 00119000
- USING DMSBTB,R12 00120000
- USING NUCON,R0 00121000
- ST R14,SAVE14 00122000
- DMSKEY NUCLEUS 00123000
- TM BATFLAGS,BATUSEX IS USER RUNNING? @VA02821 00123100
- BZ CONTPROC NOPE, CONTINUE AS USUAL @VA02821 00123200
- OI BATFLAG2,BATDCMS OTHERWISE, MUST ABEND @VA02821 00123300
- DMSKEY RESET @VA02821 00123400
- L R15,ABATABND GET BATCH ABEND ROUTINE @VA02821 00123500
- BR R15 BRANCH TO IT @VA02821 00123600
- CONTPROC TM BATFLAGS,BATRUN+BATLOAD INITIALIZED BY DMSINS? @VA02821 00124100
- BNO NOLOAD ERROR IF NOT 00125000
- LA R3,3 STATE THREE FILES 00126000
- LA R4,LOAD+8 USE NAMES IN LIST 00127000
- XR R5,R5 R5 WILL CONTAIN TOTAL BYTES NEEDED 00128000
- LA R1,STATE 00129000
- SVC 202 CALL FOR BATCH PROCESSOR 00130000
- DC AL4(NOFILE) 00131000
- B FSTCOPY IT'S THERE, NOW GET SIZE 00132000
- SPACE 00133000
- USREXITS EQU * STATE THE USER EXIT ROUTINES 00134000
- LA R4,8(,R4) NEXT NAME 00135000
- MVC STATE+8(8),0(R4) PREP STATE PLIST 00136000
- SVC 202 STATE THE FILE 00137000
- DC AL4(LASTCHK) IF NOT THERE, DON'T COMPUTE 00138000
- SPACE 00139000
- FSTCOPY EQU * COMPUTE SIZE OF TEXT FILE 00140000
- L R8,AFVS GET STATE COPY OF FST 00141000
- USING FVSECT,R8 00142000
- L R2,FVSFSTIL LOAD LRECL FOR FILE 00143000
- MH R2,FVSFSTIC LRECL X N'RECS = STORAGE SIZE 00144000
- AR R5,R2 KEEP TALLY OF BYTES NEEDED 00145000
- LASTCHK BCT R3,USREXITS LOOP THRU FOR ALL FILES NEEDED 00146000
- LA R0,7(,R5) ROUND TO NEXT DWORD 00147000
- SRA R0,3 DIVIDE FOR NO. DWORDS 00148000
- DMSFREE DWORDS=(0),TYPE=NUCLEUS 00149000
- ST R1,ABATPROC KEEP BATCH ADDR IN NUCON 00150000
- ST R1,ADPACK 00151000
- UNPK ADUNPACK(9),ADPACK(5) UNPACK BATCH ADDR 00152000
- TR ADUNPACK(8),CHARTAB AND TRANSLATE FOR 'LOAD' 00153000
- MVC LOADAD(6),ADUNPACK+2 GET TRANSLATED ADDR. @VA02965 00154100
- SPACE 1 00155000
- LA R1,LOAD 00156000
- SVC 202 LOAD BATCH PROCESSOR (DMSBTP) 00157000
- DC AL4(*+4) 00158000
- MVC LOCCNT,AUSRAREA 00159000
- LTR R15,R15 CHECK RETURN CODE 00160000
- BZ LOADED DROP IF O.K. 00161000
- CH R15,=H'4' ANYBODY UNRESOLVED? 00162000
- BH NOLOAD ERROR ONLY IF WORSE THAN THAT 00163000
- LOADED EQU * 00164000
- LA R2,20 SIZE OF LDR TABLE ENTRIES 00165000
- L R3,ALDRTBLS ADDR OF LDR TABLES 00166000
- LH R4,TBENT NO. TABLE ENTRIES 00167000
- CKENTRY EQU * 00168000
- SR R3,R2 POINT TO NEXT ENTRY 00169000
- CLC 0(8,R3),=CL8'DMSBTPAB' 00170000
- BE STABEND FOUND IT...GO SAVE IT 00171000
- BCT R4,CKENTRY OTHERWISE, CONTINUE 00172000
- B NOLOAD ERROR IF NO ENTRIES LEFT 00173000
- STABEND EQU * 00174000
- MVC ABATABND(4),12(R3) KEEP BATCH ABEND ENTRY IN NUCON 00175000
- SR R3,R2 SLIDE DOWN THE LOADER TABLES 00176000
- MVC ABATLIMT(4),12(R3) STORE BATCH JOB LIMIT TABLE ADDR 00177000
- OI BATFLAGS,BATNOEX SUPPRESS USER EXECUTION 00178000
- NI BATFLAGS,255-BATLOAD BATCH LOAD COMPLETE 00179000
- DMSKEY RESET 00180000
- L R14,SAVE14 00181000
- BR R14 RETURN TO CMS 00182000
- EJECT 00183000
- STATE DS 0D 00184000
- DC CL8'STATE' 00185000
- DC CL8'DMSBTP' 00186000
- DC CL8'TEXT' 00187000
- DC CL8'*' 00188000
- DC 8X'FF' 00189000
- * 00190000
- LOAD DC CL8'LOAD' 00191000
- DC CL8'DMSBTP' 00192000
- DC CL8'BATEXIT1' USER CONTROL CARD EXIT 00193000
- DC CL8'BATEXIT2' USER '/JOB' CARD EXIT 00194000
- DC CL8'(' 00195000
- DC CL8'ORIGIN' 00196000
- LOADAD DC CL8' ' 00197000
- DC 8X'FF' 00198000
- * 00199000
- SPACE 3 00200000
- NOFILE EQU * 00201000
- DMSERR NUM=100,LET=E,TEXT='NO BATCH PROCESSOR AVAILABLE' 00202000
- LA R5,40 00203000
- B ERRORS 00204000
- * 00205000
- NOLOAD EQU * 00206000
- DMSERR NUM=101,LET=E,TEXT='BATCH NOT LOADED' 00207000
- LA R5,88 00208000
- * 00209000
- ERRORS NI BATFLAGS,255-BATRUN-BATLOAD BATCH NOT RUNNING 00210000
- DMSKEY RESET 00211000
- LR R15,R5 00212000
- BR R14 RETURN TO NORMAL CMS ENVIRONS 00213000
- SPACE 1 00214000
- SAVE14 DC F'0' 00215000
- ADPACK DC 5X'00' 00216000
- ADUNPACK DC 9X'00' 00217000
- DS 0F 00218000
- DC C'0123456789ABCDEF' 00219000
- CHARTAB EQU *-X'FF'-1 00220000
- EJECT 00221000
- REGEQU 00222000
- NUCON 00223000
- FVS 00224000
- END 00225000
ibm/vm370-lib/cms/dmsbtb.assemble_src.txt ยท Last modified: 2023/08/06 13:35 by Site Administrator