INI TITLE 'DMSINI (CMS) VM/370 - RELEASE 6' 00001000 SPACE 2 00002000 *. 00003000 * MODULE NAME - 00004000 * DMSINI 00005000 * 00006000 * FUNCTION - 00007000 * 00008000 * TO READ OR WRITE A CMS NUCLEUS 00009000 * 00010000 * ATTRIBUTES - 00011000 * 00012000 * DISK RESIDENT 00013000 * 00014000 * ENTRY POINTS - 00015000 * 00016000 * DMSINIR - READ A NUCLEUS INTO MAIN STORAGE 00017000 * DMSINIW - WRITE A NUCLEUS ONTO A DASD DEVICE 00018000 * 00019000 * ENTRY CONDITIONS - 00020000 * 00021000 * NONE 00022000 * 00023000 * EXIT CONDITIONS - 00024000 * 00025000 * NORMAL - 00026000 * GPR 12 = ADDRESS OF DMSINS 00027000 * 00028000 * ERROR - 00029000 * NONE 00030000 * 00031000 * CALLS TO OTHER ROUTINES - 00032000 * 00033000 * NONE 00034000 * 00035000 * EXTERNAL REFERENCES - 00036000 * 00037000 * DMSNUCE - THE END OF SEGMENT 0 OF THE NUCLEUS 00038000 * TRANSAR - THE START OF THE TRANSIENT AREA 00039000 * DMSINSE - THE END OF SEGMENT 1 OF THE NUCLEUS 00040000 * X'03A800' - TOP END OF LOADER TABLES LEFT BY DMKLD00E 00041000 * 00042000 * TABLES / WORKAREAS - 00043000 * 00044000 * DEVTAB - DEVICE TABLE WITH CONSOLE AND SYSTEM DISK ADDRESSES 00045000 * 00046000 * REGISTER USAGE - 00047000 * 00048000 * GPR 0 = IPL DISK DEVICE ADDRESS 00049000 * GPR 1 = CCW STRING STARTING ADDRESS 00050000 * GPR 2 = CURRENT CYLINDER NUMBER 00051000 * GPR 3 = CURRENT TRACK NUMBER 00052000 * GPR 4 = DASD RECORD LENGTH = 800 00053000 * GPR 5 = CURRENT STORAGE RANGE END 00054000 * GPR 6 = CURRENT STORAGE RANGE START 00055000 * GPR 7 = POINTER TO NEXT RANGE VALUES 00056000 * GPR 8 = CHANNEL COMMAND WORD LENGTH = 8 00057000 * GPR 9 = CCW STRING ENDING ADDRESS 00058000 * GPR 10 = CURRENT CCW ADDRESS 00059000 * GPR 11 = SEARCH ADDRESS POINTER 00060000 * GPR 12 = MODULE BASE REGISTER 00061000 * GPR 13 = CONSOLE DEVICE ADDRESS 00062000 * GPR 14 = LINKAGE REGISTER 00063000 * GPR 15 = SCRATCH REGISTER 00064000 * 00065000 * NOTES - 00066000 * 00067000 *| IF AN I/O ERROR OCCURS WHILE WRITING A NUCLEUS, THE FIRST TWO 00068000 *| SENSE BYTES ARE STORED AT LOCATIONS 2 AND 3, THE SECOND HALF 00069000 *| OF THE PSW IS STORED IN LOCATIONS 4 TO 7, AND THE CSW IS SAVED 00070000 *| IN LOCATIONS 8 TO 15 IN MEMORY. IF AN I/O ERROR OCCURS WHILE 00071000 *| READING A NUCLEUS, THE WAIT STATE IS ENTERED AND THE INSTRUC- 00072000 *| TION ADDRESS FIELD OF THE PSW CONTAINS THE CHARACTERS ' INI'. 00073000 * 00074000 * OPERATION - 00075000 * 00076000 * DMSINIR - READ A NUCLEUS INTO MAIN STORAGE 00077000 * 00078000 * 1. STORE THE DATA ADDRESS IN THE READ CCWS. 00079000 * 00080000 * 2. READ ONE TRACK OF THE NUCLEUS FROM THE IPL DEVICE. 00081000 * 00082000 * 3. IF THE NUCLEUS IS NOT COMPLETELY READ, GO TO STEP 1. 00083000 * 00084000 * 4. GO TO MODULE DMSINS TO CONTINUE WITH THE INITIALIZATION. 00085000 * 00086000 * DMSINIW - WRITE A NUCLEUS ONTO A DASD DEVICE 00087000 * 00088000 * 1. SEE IF A CONSOLE EXISTS AT ADDRESS 009. IF NOT, WAIT FOR 00089000 * AN INTERRUPT FROM A CONSOLE DEVICE. 00090000 * 00091000 * 2. ASK THE USER TO ENTER THE SYSTEM DISK ADDRESS. 00092000 * 00093000 * 2A. ASK USER TO ENTER Y-DISK ADDRESS. 00093100 * 00093200 * 3. ASK THE USER IF HE WANTS TO WRITE THE NUCLEUS ONTO A DASD 00094000 * DEVICE. IF HE DOES NOT, GO TO MODULE DMSINS. 00095000 * 00096000 * 4. ASK THE USER FOR THE IPL DEVICE ADDRESS AND VERIFY THAT 00097000 * IS A SUPPORTED DASD TYPE DEVICE. 00098000 * 00099000 * 5. INITIALIZE THE DEVICE TYPE DEPENDENT VALUES. 00100000 * 00101000 * 6. ASK THE USER FOR THE CYLINDER NUMBER ON WHICH TO WRITE 00102000 * THE NUCLEUS AND VERIFY THAT THE NUCLEUS WILL NOT OVERLAY 00103000 * ANY CMS FILES ON THE DISK. 00104000 * 00105000 * 7. ASK THE USER IF THE IPL TEXT IS ALSO TO BE WRITTEN ON 00106000 * CYLINDER 0 AND SET THE SWITCH ACCORDINGLY. 00107000 * 00108000 * 8. ASK THE USER TO ENTER THE VERSION IDENTIFICATION AND 00109000 * INSTALLATION HEADING. IF HE TYPES A NULL LINE, USE THE 00110000 * DEFAULT VALUES. 00111000 * 00112000 * 9. WRITE THE IPL TEXT ON THE NUCLEUS CYLINDER AND ON 00113000 * CYLINDER 0 IF REQUESTED. 00114000 * 00115000 * 10. STORE THE DATA ADDRESS IN THE WRITE CCWS AND THE CYLINDER 00116000 * NUMBER IN THE SEEK AND SEARCH ADDRESSES. 00117000 * 00118000 * 11. WRITE ONE TRACK OF THE NUCLEUS ONTO THE IPL DEVICE. 00119000 * 00120000 * 12. IF THE NUCLEUS IS NOT COMPLETELY WRITTEN, GO TO STEP 10. 00121000 * 00122000 * 13. GO TO MODULE DIMINS TO CONTINUE WITH THE INITIALIZATION. 00123000 * 00124000 *. 00125000 EJECT 00126000 DMSINIR START X'22000' ENTERED HERE FROM CP IPL SIMULATO@VA12042 00127000 USING NUCON,R0 00128000 STM R0,R15,3840(0) STORE 64 BYTES OF PARM INFO. @VA12042 00128500 BALR R12,0 LOAD BASE FOR COMMON ADDRESSABILITY 00129000 LA R11,*-DMSINIR GET DISP TO MOD START @VA12042 00130000 SR R12,R11 ADJUST BASE TO MOD START @VA12042 00131000 USING DMSINIR,R12 00132000 SSM DISABLED RUN DISABLED FOR ALL I/O INTERUPTS 00133000 MVC IPLPARMS(64),3840(0) SAVE PARMS FROM CP IPL @VA12042 00133200 LH R0,IPLPSW+2 LOAD THE IPL DEVICE ADDRESS 00134000 L R1,CCWBGNR POINT TO CCW STRING TO READ IN NUCLEUS 00135000 LH R2,RDCYLNO LOAD THE NUCLEUS STARTING CYLINDER NUMBER 00136000 SR R3,R3 SET THE HEAD NUMBER TO ZERO 00137000 LA R4,800 SET THE RECORD LENGTH TO 800 00138000 LM R5,R7,RANGE1 LOAD LIMITS OF 1ST RANGE TO BE READ 00139000 LA R8,8 LOAD THE CCW LENGTH 00140000 L R9,CCWENDR LOAD ADDRESS OF LAST CCW TO BE BUILT 00141000 LA R10,RDCCW3 START READING AT RECORD 3 00142000 B STORESA BUILD THE REST OF THE CCW CHAIN 00143000 SPACE 00144000 ENDRANGE LTR R7,R7 DID WE READ THE LAST RANGE? 00145000 BZ FLAGEND YES, STOP BUILDING THE CCW CHAIN 00146000 LM R5,R7,0(R7) LOAD LIMITS NEXT RANGE TO BE READ 00147000 B STORESA 00148000 SPACE 00149000 FLAGEND BCTR R7,0 MAKE POINTER TO NEXT RANGE NEGATIVE 00150000 SR R10,R8 BACKUP TO THE PREVIOUS CCW 00151000 CLI 0(R10),RDDATA IS THIS A READ DATA CCW ? 00152000 BNE INIRETN NO, NO MORE TO READ 00153000 MVI 4(R10),SILI TURN THE COMMAND CHAINING FLAG OFF 00154000 B DIAGRD READ IN THE REMAINDER OF THE NUCLEUS 00155000 SPACE 00156000 READLOOP AH R3,TRKINC ADD TRACK INCREMENT TO THE TRACK NUMBER 00157000 CH R3,TRKMAX IS THIS THE END OF A CYLINDER 00158000 BL STTRKAD NO, CONTINUE BUILDING CCWS @VA00899 00159100 SR R3,R3 YES, ZERO THE TRACK NUMBER AND 00160000 LA R2,1(,R2) ADD ONE TO THE CYLINDER NUMBER 00161000 STH R2,RDCYLNO UPDATE THE CURRENT SEEK ADDRESS 00162000 STTRKAD STH R3,RDTRKNO ... 00163000 LA R10,RDCCW1 POINT TO THE 1ST READ DATA CCW 00164000 ADDRLOOP BXH R6,R4,ENDRANGE ADD 800 TO DATA ADDR & GO IF END OF RANGE 00165000 STORESA ST R6,0(,R10) STORE THE DATA ADDRESS IN THE CCW 00166000 MVI 0(R10),RDDATA MOVE IN A READ DATA COMMAND CODE 00167000 BXLE R10,R8,ADDRLOOP POINT TO NEXT CCW AND LOOP IF MORE 00168000 DIAGRD DC X'83010020' READ THE NUCLEUS INTO MAIN STORAGE 00169000 BNZ RDERROR BRANCH IF ANY ERROR OCCURS 00170000 LTR R7,R7 IS THE NUCLEUS COMPLETELY IN ? 00171000 BNM READLOOP NO, READ IN ANOTHER TRACK WORTH 00172000 INIRETN STH R0,IPLPSW+2 PUT THE IPL DEVICE ADDRESS BACK 00173000 INIEXIT BAL R14,GETCON1 DETERMINE THE CONSOLE ADDRESS V0029 00174100 LA R1,IPLPARMS PASS CP IPL PARMS TO DMSINS @VA12042 00174125 L R12,ADMSINS LOAD THE BASE REGISTER FOR DMSINS V0029 00174150 BR R12 AND CONTINUE WITH SYSTEM INITIALIZATION 00175000 EJECT 00176000 RDERROR BAL R14,GETCON1 DETERMINE THE CONSOLE ADDRESS V0029 00177100 L R11,ADEVTAB LOAD DEVICE TABLE ADDRESS. V0029 00177150 USING DEVTAB,R11 00178000 LH R13,CONSOLE LOAD THE CONSOLE DEVICE ADDRESS 00179000 LA R15,RDERR1 STORE ERROR MESSAGE CCW ADDRESS IN CAW 00180000 ST R15,CAW ... 00181000 TIO 0(R13) CLEAR ANY PENDING INTERRUPTS 00182000 BNZ *-4 ... 00183000 SIO 0(R13) SEND THE ERROR MESSAGE 00184000 BNZ *-4 ... 00185000 TIO 0(R13) AND WAIT FOR IT TO COMPLETE 00186000 BNZ *-4 ... 00187000 LPSW RDERRPSW CAN NOT CONTINUE - ENTER CP 00188000 SPACE 00189100 GETCON1 SR R13,R13 EMPTY A REGISTER V0029 00189150 BCTR R13,0 MAKE IT NEGATIVE V0029 00189200 DC X'83DF0024' FIND OUT THE CONSOLE ADDRESS V0029 00189250 BCR 1,R14 IF NONE, GET OUT. V0029 00189300 L R11,ADEVTAB LOAD DEVICE TABLE BASE. V0029 00189350 STH R13,CONSOLE INSTALL A CONSOLE V0029 00189400 BR R14 RETURN V0029 00189450 DROP R11 V0029 00189500 SPACE 3 00190000 DS 0D 00191000 RDERRPSW DC AL2(MCKM+WAIT,0),CL4' INI' 00192000 SPACE 00193000 RDERR1 CCW WRITE1,RDMSG1,CC+SILI,L'RDMSG1 00194000 CCW NOP,0,SILI,1 00195000 SPACE 00196000 RDMSG1 DC C'DMSINI902T IPL DEVICE READ I/O ERROR' 00197000 EJECT 00198000 * DEVICE TYPE 00199000 * DEV DEPENDENT VALUES 2311 2314 3330 2305 2305 3340 3350 3380 HRC004DS 00200890 * 2319 M1 M2 33$$ HRC004DS 00201680 CCWBGNR DC A(RDCCWS+0) +8 +8 +0 +0 +0 +0 +0 +0 HRC004DS 00202470 CCWENDR DC A(RDCCWF) CCW4 CCWF CCWE CCWB CCWE CCW8 CCW13 CCW24HRC004DS 00203260 TRKINC DC H'0' 1 2 1 1 1 1 1 1 HRC004DS 00204050 TRKMAX DC H'0' 10 20 19 8 8 12 30 15 HRC004DS 00204840 SPACE 00206000 RANGE1 DC V(DMSNUCE) NUCLEUS SEGMENT 0 00207000 DC A(0) 00208000 DC A(*+4) 00209000 RANGE2 DC V(DMSINSE) NUCLEUS SEGMENT 1 00210000 DC V(TRANSAR) 00211000 DC A(*+4) 00212000 RANGE3 DC XL4'3A800' NUCLEUS LOADER TABLES 00213000 DC XL4'38900' 00214000 DC A(0) 00215000 SPACE 00216000 RDCCWS DS 0D 00217000 CCW SEEK,RDSEEKA,CC+SILI,6 00218000 CCW SETSEC,RDSECNO,CC+SILI,1 00219000 CCW SEARCH,RDCYLNO,CC+SILI,5 00220000 CCW TIC,*-8,0,0 00221000 RDCCW1 CCW RDDATA,0,CC+SILI,800 00222000 RDCCW2 CCW RDDATA,0,CC+SILI,800 00223000 RDCCW3 CCW RDDATA,0,CC+SILI,800 00224000 RDCCW4 CCW RDDATA,0,CC+SILI,800 00225000 RDCCW5 CCW RDDATA,0,CC+SILI,800 00226000 RDCCW6 CCW RDDATA,0,CC+SILI,800 00227000 RDCCW7 CCW RDDATA,0,CC+SILI,800 00228000 RDCCW8 CCW RDDATA,0,CC+SILI,800 00229000 RDCCW9 CCW RDDATA,0,CC+SILI,800 00230000 RDCCWA CCW RDDATA,0,CC+SILI,800 00231000 RDCCWB CCW RDDATA,0,CC+SILI,800 00232000 RDCCWC CCW RDDATA,0,CC+SILI,800 00233000 RDCCWD CCW RDDATA,0,CC+SILI,800 00234000 RDCCWE CCW RDDATA,0,CC+SILI,800 00235000 RDCCWF CCW RDDATA,0,CC+SILI,800 @V304498 00236100 RDCCW10 CCW RDDATA,0,CC+SILI,800 @V304498 00236200 RDCCW11 CCW RDDATA,0,CC+SILI,800 @V304498 00236300 RDCCW12 CCW RDDATA,0,CC+SILI,800 @V304498 00236400 RDCCW13 CCW RDDATA,0,CC+SILI,800 HRC004DS 00236510 RDCCW14 CCW RDDATA,0,CC+SILI,800 HRC004DS 00236520 RDCCW15 CCW RDDATA,0,CC+SILI,800 HRC004DS 00236530 RDCCW16 CCW RDDATA,0,CC+SILI,800 HRC004DS 00236540 RDCCW17 CCW RDDATA,0,CC+SILI,800 HRC004DS 00236550 RDCCW18 CCW RDDATA,0,CC+SILI,800 HRC004DS 00236560 RDCCW19 CCW RDDATA,0,CC+SILI,800 HRC004DS 00236570 RDCCW1A CCW RDDATA,0,CC+SILI,800 HRC004DS 00236580 RDCCW1B CCW RDDATA,0,CC+SILI,800 HRC004DS 00236590 RDCCW1C CCW RDDATA,0,CC+SILI,800 HRC004DS 00236600 RDCCW1D CCW RDDATA,0,CC+SILI,800 HRC004DS 00236610 RDCCW1E CCW RDDATA,0,CC+SILI,800 HRC004DS 00236620 RDCCW1F CCW RDDATA,0,CC+SILI,800 HRC004DS 00236630 RDCCW20 CCW RDDATA,0,CC+SILI,800 HRC004DS 00236640 RDCCW21 CCW RDDATA,0,CC+SILI,800 HRC004DS 00236650 RDCCW22 CCW RDDATA,0,CC+SILI,800 HRC004DS 00236660 RDCCW23 CCW RDDATA,0,CC+SILI,800 HRC004DS 00236670 RDCCW24 CCW RDDATA,0,CC+SILI,800 HRC004DS 00236680 RDCCW25 CCW RDDATA,0,CC+SILI,800 HRC004DS 00236690 RDCCW26 CCW RDDATA,0,CC+SILI,800 HRC004DS 00236700 RDCCW27 CCW RDDATA,0,CC+SILI,800 HRC004DS 00236710 RDCCW28 CCW RDDATA,0,CC+SILI,800 HRC004DS 00236720 RDCCW29 CCW RDDATA,0,CC+SILI,800 HRC004DS 00236730 RDCCW2A CCW RDDATA,0,CC+SILI,800 HRC004DS 00236740 RDCCW2B CCW RDDATA,0,CC+SILI,800 HRC004DS 00236750 RDCCW2C CCW RDDATA,0,CC+SILI,800 HRC004DS 00236760 RDCCW2D CCW RDDATA,0,CC+SILI,800 HRC004DS 00236770 RDCCW2E CCW RDDATA,0,CC+SILI,800 HRC004DS 00236780 RDCCW2F CCW RDDATA,0,CC+SILI,800 HRC004DS 00236790 RDCCW30 CCW RDDATA,0,CC+SILI,800 HRC004DS 00236800 RDCCW31 CCW RDDATA,0,SILI,800 HRC004DS 00236810 SPACE 00237000 RDSEEKA DC H'0' 00238000 RDCYLNO DC H'0' 00239000 RDTRKNO DC H'0' 00240000 RDRECNO DC X'01' 00241000 RDSECNO DC X'02' 00242000 SPACE 00243000 ADMSINS DC V(DMSINS) 00244000 DISABLED DC X'00' 00245000 ENABLED DC X'FF' 00246000 IPLPARMS DC D'0' KEEP CP 'IPL' PARMS HERE (GPR0,GPR1)V0742 00246100 DC 7D'0' GPR2 - GPR 15 @VA12042 00246200 SPACE 2 00247000 INIREND DS 0D 00248000 EJECT 00249000 ENTRY DMSINIW 00251000 DMSINIW DS 0H ENTERED HERE FROM NUCLEUS LOADER 00252000 BALR R12,0 LOAD THE BASE REGISTER TEMPORARILY 00253000 USING *,R12 00254000 L R12,ADMSINI NOW PROVIDE FOR COMMON ADDRESSABILITY 00255000 USING DMSINIR,R12 00256000 SSM DISABLED RUN DISABLED FOR ALL I/O INTERRUPTS NOW 00257000 MVC EXTNPSW(L'NEWPSWS),NEWPSWS INITIALIZE THE NEW PSW'S 00258000 LA R1,REPLY GET CURRENT DATE AND TIME FROM CP 00259000 DC X'8310000C' ... 00260000 MVC NUCDATE,REPLY AND MOVE IT TO DEFAULT ID 00261000 MVC NUCTIME,REPLY+8 ... 00262000 MVC SYSTEMID,DEFLTSID SET DEFAULT SYSTEM IDENTIFICATION 00263000 MVC INSTALID,DEFLTIHD SET DEFAULT INSTALLATION HEADING 00264000 L R11,ADEVTAB LOAD THE DEVICE TABLE BASE ADDRESS 00265000 USING DEVTAB,R11 00266000 MVC SYSADDR,SDISK SET THE DEFAULT SYSTEM DISK ADDRESS 00267000 BAL R14,GETCON1 DETERMINE THE CONSOLE ADDRESS V0029 00268100 BC 1,INVALCON APPARENTLY THERE ISN'T ANY V0029 00268150 B ASKQUEST BUSINESS AS USUAL V0029 00268200 CHECKCON DC X'83DE0024' IS IT ATTACHED ? 00269000 BC 1,INVALCON NO, WAIT FOR AN INTERRUPT 00270000 CLM R14,12,CONSTYPE IS IT A CONSOLE ? 00271000 BE ASKQUEST YES, START THE QUESTIONS 00272000 MVC IONPSW,WAKEPSW SET I/O NEW PSW TO POINT BACK HERE 00273000 INVALCON LPSW WAITPSW WAIT FOR THE USER TO CAUSE AN INTERRUPT 00274000 WAKEHERE LH R13,IOOPSW+2 GET THE INTERRUPTING DEVICE ADDRESS 00275000 MVC IONPSW,NIOPSW RESTORE THE I/O NEW PSW 00276000 B CHECKCON SEE WHAT THE INTERRUPTING DEVICE IS 00277000 SPACE 00278000 ASKQUEST EQU * 00279000 SYSDISK LA R1,Q1CCWS POINT TO THE CCW STRING FOR QUESTION 1 00280000 BAL R14,DOCONSIO ASK THE QUESTION AND WAIT FOR A REPLY 00281000 CLI REPLY,X'00' DID THE USER JUST PRESS RETURN ? 00282000 BE YSDISK YES, ASSUME THE DEFAULT S-DISK ADDRESS 00283100 BAL R14,HEXTOBIN NO, CONVERT THE ADDRESS TO BINARY 00284000 BNZ SYSDISK ASK QUESTION AGAIN IF AN ERROR OCCURRED 00285000 STH R1,SYSADDR STORE THE SYSTEM DISK DEVICE ADDRESS 00286000 STH R1,SDISK ... 00287000 SPACE 1 00287100 YSDISK LA R1,Q1ACCWS POINT TO CCWS FOR QUESTION 1A 00287200 BAL R14,DOCONSIO ASK QUESTION, WAIT FOR A REPLY 00287300 CLI REPLY,X'00' DID USER JUST PRESS RETURN? 00287400 BE RDORWRT YES, ASSUME THE DEFAULT Y-DISK ADDRESS 00287500 BAL R14,HEXTOBIN NO, CONVERT THE ADDRESS TO BINARY 00287600 BNZ YSDISK ASK QUESTION AGAIN IF ERROR OCCURRED 00287700 STH R1,YDISK STORE THE Y-DISK ADDRESS 00287800 DROP R11 00288000 SPACE 00289000 RDORWRT LA R1,Q2CCWS POINT TO THE CCW STRING FOR QUESTION 2 00290000 BAL R14,DOCONSIO ASK THE QUESTION AND WAIT FOR A REPLY 00291000 OI REPLY,X'40' MAKE SURE THE REPLY IS IN CAPITAL LETTERS 00292000 CLI REPLY,C'N' IS THE REPLY 'NO' ? 00293000 BE INIEXIT YES, CONTINUE WITH THE IPL SEQUENCE 00294000 CLI REPLY,C'Y' IS THE REPLY 'YES' ? 00295000 BE IPLDISK YES, ASK FOR THE IPL DEVICE ADDRESS 00296000 LA R1,WRERR4 POINT TO CCW STRING FOR YES OR NO ERROR 00297000 BAL R14,DOCONSIO TYPE THE ERROR MESSAGE TO THE USER 00298000 B RDORWRT ASK THE QUESTION AGAIN 00299000 SPACE 00300000 IPLDISK LA R1,Q3CCWS POINT TO THE CCW STRING FOR QUESTION 3 00301000 BAL R14,DOCONSIO ASK THE QUESTION AND WAIT FOR A REPLY 00302000 LH R0,SYSADDR SET DEFAULT IPL DEVICE TO SYSTEM DISK 00303000 CLI REPLY,X'00' DID THE USER JUST PRESS RETURN ? 00304000 BE CHECKIPL YES, ASSUME THE DEFAULT IPL DEVICE 00305000 BAL R14,HEXTOBIN NO,CONVERT ADDRESS TO BINARY 00306000 BNZ IPLDISK ASK QUESTION AGAIN IF AN ERROR OCCURRED 00307000 LR R0,R1 SAVE THE IPL DEVICE ADDRESS 00308000 CHECKIPL DC X'83010024' IS THE DEVICE ATTACHED AND DASD ? 00309000 BNZ BADIPLD ERROR IF NONEXISTENT UNIT 00310000 STCM R1,12,DISKTYPE SAVE THE DEVICE TYPE AND CLASS 00311000 CLI DISKTYPE,CLASDASD IS IT A DASD CLASS DEVICE ? 00312000 BNE BADIPLD NO, SEND AN ERROR MESSAGE 00313000 MVI MFDCCW1,RDDATA MOVE IN A READ OP-CODE. 00314000 LA R1,MFDCCWS LOAD ADDRESS OF READ MFD CCW CHAIN 00315000 DC X'83010020' READ IN THE MFD FROM THE IPL DEVICE 00316000 BNZ BADIPLD SEND MESSAGE IF ANY ERRORS 00317000 MVI MFDCCW1,WRDATA MOVE WRITE COMMAND CODE TO CCW 00318000 DC X'83010020' WRITE THE MFD BACK OUT AGAIN 00319000 BNZ BADIPLD SEND MESSAGE IF ANY ERRORS 00320000 CLI DISKTYPE+1,TYP2311 IS THIS A 2311 DISK DRIVE ? 00321000 BE DEV2311 BRANCH IF YES 00322000 CLI DISKTYPE+1,TYP2314 IS THIS A 2314 OR 2319 ? 00323000 BE DEV2314 BRANCH IF YES 00324000 CLI DISKTYPE+1,TYP3330 IS THIS A 3330 ? 00325000 BE DEV3330 BRANCH IF YES 00326000 CLI DISKTYPE+1,TYP3350 IS THIS A 3350 ? @V304498 00326100 BE DEV3350 BR...IF YES @V304498 00326200 CLI DISKTYPE+1,TYP2305 IS THIS A 2305 ? 00327000 BE DEV2305 BRANCH IF YES 00328000 CLI DISKTYPE+1,TYP3340 IS THIS A 3340 ? @V2A2014 00328100 BE DEV3340 BR...IF YES @V2A2014 00328200 CLI DISKTYPE+1,TYP3380 IS THIS A 3380 ? HRC004DS 00328400 BE DEV3380 BR...IF YES HRC004DS 00328600 BADIPLD LA R1,WRERR5 POINT TO CCW STRING FOR IPL DEVICE ERROR 00329000 BAL R14,DOCONSIO TYPE THE ERROR MESSAGE TO THE USER 00330000 B IPLDISK ASK THE QUESTION AGAIN 00331000 SPACE 00332000 DEV2311 MVI TRKINC+1,1 READ 1 TRACK AT A TIME 00333000 MVI TRKMAX+1,10 10 TRACKS PER CYLINDER 00334000 LA R1,RDCCWS+8 SAVE SEEK CCW ADDRESS FOR READING 00335000 ST R1,CCWBGNR ... 00336000 LA R1,WRCCWS+8 SAVE SEEK CCW ADDRESS FOR WRITING 00337000 ST R1,CCWBGNW ... 00338000 LA R1,RDCCW4 SAVE LAST READ CCW ADDRESS 00339000 ST R1,CCWENDR ... 00340000 LA R1,WRCCW4 SAVE LAST WRITE CCW ADDRESS 00341000 ST R1,CCWENDW ... 00342000 MVI RDCCW4+4,SILI TURN OFF COMMAND CHAINING 00343000 MVI WRCCW4+4,SILI ... 00344000 MVC RDCCWS+8,RDCCWS OVERLAY SET SECTOR WITH SEEK CCW 00345000 MVC WRCCWS+8,WRCCWS ... 00346000 B NUCCYLN CONTINUE WITH QUESTIONING 00347000 SPACE 00348000 DEV2314 MVI TRKINC+1,2 READ 2 TRACKS AT A TIME 00349000 MVI TRKMAX+1,20 20 TRACKS PER CYLINDER 00350000 LA R1,RDCCWS+8 SAVE SEEK CCW ADDRESS FOR READING 00351000 ST R1,CCWBGNR ... 00352000 LA R1,WRCCWS+8 SAVE SEEK CCW ADDRESS FOR WRITING 00353000 ST R1,CCWBGNW ... 00354000 LA R1,RDCCWF SAVE LAST READ CCW ADDRESS 00355000 ST R1,CCWENDR ... 00356000 LA R1,WRCCWF SAVE LAST WRITE CCW ADDRESS 00357000 ST R1,CCWENDW ... 00358000 MVC RDCCWS+8,RDCCWS OVERLAY SET SECTOR WITH SEEK CCW 00359000 MVC WRCCWS+8,WRCCWS ... 00360000 MVI RDCCWF+4,SILI TURN OFF COMMAND CHAINING @V304432 00360200 MVI WRCCWF+4,SILI AFTER THE 15TH RECORD @V304432 00360400 B NUCCYLN CONTINUE WITH QUESTIONING 00361000 SPACE 00362000 DEV3330 MVI TRKINC+1,1 READ 1 TRACK AT A TIME 00363000 MVI TRKMAX+1,19 19 TRACKS PER CYLINDER 00364000 LA R1,RDCCWE SAVE LAST READ CCW ADDRESS 00365000 ST R1,CCWENDR ... 00366000 LA R1,WRCCWE SAVE LAST WRITE CCW ADDRESS 00367000 ST R1,CCWENDW ... 00368000 MVI RDCCWE+4,SILI TURN OFF COMMAND CHAINING 00369000 MVI WRCCWE+4,SILI ... 00370000 B NUCCYLN CONTINUE WITH QUESTIONING 00371000 DEV3350 MVI TRKINC+1,1 READ 1 TRACK AT A TIME @V304498 00371050 MVI TRKMAX+1,30 30 TRACKS PER CYLINDER @V304498 00371100 LA R1,RDCCW13 SAVE LAST READ CCW ADDRESS @V304498 00371150 ST R1,CCWENDR .... @V304498 00371200 LA R1,WRCCW13 SAVE LAST WRITE CCW ADDRESS @V304498 00371250 ST R1,CCWENDW .... @V304498 00371300 MVI RDCCW13+4,SILI TURN OFF COMMAND CHAINING HRC004DS 00371310 MVI WRCCW13+4,SILI ... HRC004DS 00371320 B NUCCYLN CONTINUE WITH QUESTIONING @V304498 00371350 SPACE 1 00371400 SPACE 00372000 DEV23051 MVI TRKINC+1,1 READ 1 TRACK AT A TIME 00373000 MVI TRKMAX+1,8 8 TRACKS PER CYLINDER 00374000 LA R1,RDCCWB SAVE LAST READ CCW ADDRESS 00375000 ST R1,CCWENDR ... 00376000 LA R1,WRCCWB SAVE LAST WRITE CCW ADDRESS 00377000 ST R1,CCWENDW ... 00378000 MVI RDCCWB+4,SILI TURN OFF COMMAND CHAINING 00379000 MVI WRCCWB+4,SILI ... 00380000 B NUCCYLN CONTINUE WITH QUESTIONING 00381000 SPACE 00382000 DEV2305 EQU * 00383000 DEV23052 MVI TRKINC+1,1 READ 1 TRACK AT A TIME 00384000 MVI TRKMAX+1,8 8 TRACKS PER CYLINDER 00385000 LA R1,RDCCWE SAVE LAST READ CCW ADDRESS 00386000 ST R1,CCWENDR ... 00387000 LA R1,WRCCWE SAVE LAST WRITE CCW ADDRESS 00388000 ST R1,CCWENDW ... 00389000 MVI RDCCWE+4,SILI TURN OFF COMMAND CHAINING 00390000 MVI WRCCWE+4,SILI ... 00391000 B NUCCYLN CONTINUE WITH QUESTIONING 00392000 SPACE 00393000 DEV3340 MVI TRKINC+1,1 READ 1 TRACK AT A TIME @V2A2014 00393050 MVI TRKMAX+1,12 12 TRACKS PER CYLINDER @V2A2014 00393100 LA R1,RDCCW8 SAVE LAST READ CCW ADDRESS @V2A2014 00393150 ST R1,CCWENDR .... @V2A2014 00393200 LA R1,WRCCW8 SAVE LAST WRITE CCW ADDRESS @V2A2014 00393250 ST R1,CCWENDW .... @V2A2014 00393300 MVI RDCCW8+4,SILI TURN OFF @V2A2014 00393350 MVI WRCCW8+4,SILI COMMAND CHAINING @V2A2014 00393400 B NUCCYLN CONTINUE WITH QUESTIONING HRC014DS 00393420 SPACE 1 00393450 DEV3380 MVI TRKINC+1,1 READ 1 TRACK AT A TIME HRC004DS 00394080 MVI TRKMAX+1,15 15 TRACKS PER CYLINDER HRC004DS 00394160 LA R1,RDCCW24 SAVE LAST READ CCW ADDRESS HRC004DS 00394240 ST R1,CCWENDR .... HRC004DS 00394320 MVI 4(R1),SILI .... TURN OFF CHAINING HRC004DS 00394400 L R1,=A(WRCCW24) SAVE LAST WRITE CCW ADDRESS HRC004DS 00394480 ST R1,CCWENDW .... HRC004DS 00394560 MVI 4(R1),SILI .... TURN OFF CHAINING HRC004DS 00394640 B NUCCYLN CONTINUE WITH QUESTIONING HRC004DS 00394720 SPACE 2 , HRC004DS 00394800 NUCCYLN LA R1,Q4CCWS POINT TO THE CCW STRING FOR QUESTION 4 00395000 BAL R14,DOCONSIO ASK THE QUESTION AND WAIT FOR A REPLY 00396000 BAL R14,DECTOBIN CONVERT NUMBER TO BINARY 00397000 BNZ NUCCYLN ASK QUESTION AGAIN IF AN ERROR OCCURED 00398000 STH R1,RDCYLNO STORE THE CYLINDER ADDRESS OF THE NUCLEUS 00399000 L R9,=A(MFDBUF) TEST LOCATION OF NUCLEUS CYL HRC004DS 00400140 CH R1,382(0,R9) IS IT BEYOND THE ALLOCATED SPACE?@V304498 00400200 BNL IPLZERO YES, ASK THE NEXT QUESTION 00401000 LA R1,WRERR6 POINT TO CCW STRING FOR OVERLAY ERROR 00402000 BAL R14,DOCONSIO TYPE THE ERROR MESSAGE TO THE USER 00403000 B NUCCYLN ASK THE QUESTION AGAIN 00404000 SPACE 00405000 IPLZERO LA R1,Q5CCWS POINT TO THE CCW STRING FOR QUESTION 5 00406000 BAL R14,DOCONSIO ASK THE QUESTION AND WAIT FOR A REPLY 00407000 OI REPLY,X'40' MAKE SURE REPLY IS IN CAPITAL LETTERS 00408000 MVI IPLSWTCH,C'Y' INDICATE IPL TEXT ALSO WRITTEN ON CYL 0 00409000 CLI REPLY,C'Y' IS THE REPLY 'YES' ? 00410000 BE VERSONID YES, CONTINUE WITH QUESTIONS 00411000 MVI IPLSWTCH,C'N' INDICATE NO IPL TEXT ON CYLINDER 0 00412000 CLI REPLY,C'N' IS THE REPLY 'NO' ? 00413000 BE VERSONID YES, CONTINUE WITH QUESTIONS 00414000 LA R1,WRERR4 POINT TO CCW STRING FOR YES OR NO ERROR 00415000 BAL R14,DOCONSIO TYPE THE ERROR MESAGE TO THE USER 00416000 B IPLZERO ASK THE QUESTION AGAIN 00417000 SPACE 00418000 VERSONID LA R1,Q6CCWS POINT TO THE CCW STRING FOR QUESTION 6 00419000 BAL R14,DOCONSIO ASK THE QUESTION AND WAIT FOR A REPLY 00420000 CLI REPLY,X'00' DID THE USER JUST PRESS RETURN ? 00421000 BE INSTALHD YES, ASSUME THE DEFAULT VERSION ID 00422000 MVI SYSTEMID,C' ' NO, CLEAR THE VERSION ID FIELD 00423000 MVC SYSTEMID+1(L'SYSTEMID-1),SYSTEMID 00424000 LA R1,REPLY POINT TO THE 1ST CHARACTER OF THE REPLY 00425000 LA R2,L'SYSTEMID LOAD THE MAXIMUM LENGTH FOR A VERSION ID 00426000 VERSLOOP CLI 0(R1),X'00' IS THIS THE END OF THE REPLY ? 00427000 BE VERSMOVE YES, CALCULATE THE LENGTH AND SAVE THE ID 00428000 LA R1,1(,R1) NO, POINT TO THE NEXT CHARACTER 00429000 BCT R2,VERSLOOP DECREMENT THE COUNT AND BRANCH IF MORE 00430000 VERSMOVE LA R2,REPLY CALCULATE THE LENGTH OF THE REPLY 00431000 SR R1,R2 ... 00432000 BCTR R1,0 AND SUBTRACT 1 FOR THE EXECUTED OC 00433000 EX R1,VERSEXOC SAVE THE VERSION ID AND CAPITALIZE IT 00434000 SPACE 00435000 INSTALHD LA R1,Q7CCWS POINT TO THE CCW STRING FOR QUESTION 7 00436000 BAL R14,DOCONSIO ASK THE QUESTION AND WAIT FOR A REPLY 00437000 CLI REPLY,X'00' DID THE USER JUST PRESS RETURN ? 00438000 BE QUESTEND YES, ASSUME THE DEFAULT INSTALLATION ID 00439000 MVI INSTALID,C' ' NO, CLEAR THE INSTALLATION HEADING 00440000 MVC INSTALID+1(L'INSTALID-1),INSTALID 00441000 LA R1,REPLY POINT TO THE 1ST CHARACTER OF THE REPLY 00442000 LA R2,L'INSTALID LOAD THE MAXIMUM LENGTH FOR THE HEADING 00443000 INSTLOOP CLI 0(R1),X'00' IS THIS THE END OF THE REPLY ? 00444000 BE INSTMOVE YES, CALCULATE THE LENGTH AND SAVE THE ID 00445000 LA R1,1(,R1) NO, POINT TO THE NEXT CHARACTER 00446000 BCT R2,INSTLOOP DECREMENT THE COUNT AND BRANCH IF MORE 00447000 INSTMOVE LA R2,REPLY CALCULATE THE LENGTH OF THE REPLY 00448000 SR R1,R2 ... 00449000 BCTR R1,0 AND SUBTRACT 1 FOR THE EXECUTED OC 00450000 EX R1,INSTEXOC SAVE THE INSTALLATION HEADING AND CAP IT 00451000 SPACE 00452000 QUESTEND LA R1,IPLCCWS POINT TO IPL TEXT CCWS 00453000 CLI IPLSWTCH,C'Y' IS IPL TEXT TO BE WRITTEN ON CYLINDER 0 00454000 BNE NOTZERO NO,ONLY ON THE NUCLEUS CYLINDER 00455000 DC X'83010020' WRITE OUT IPL TEXT AND DMSINIR 00456000 BALR R15,0 SAVE ADDRESS AND CONDITION CODE 00457000 BNZ WRERROR BRANCH IF ANY ERROR OCCURS 00458000 NOTZERO LH R2,RDCYLNO LOAD THE CYLINDER NUMBER FOR THE NUCLEUS 00459000 STH R2,WRCYLNO INITIALIZE THE SEEK AND SEARCH ADDRESSES 00460000 L R4,=A(REC1) HRC004DS 00461390 STH R2,0(R4) ... HRC004DS 00461780 L R4,=A(REC2) HRC004DS 00462170 STH R2,0(R4) ... HRC004DS 00462560 DC X'83010020' WRITE OUT IPL TEXT AND DMSINIR 00463000 BALR R15,0 SAVE ADDRESS AND CONDITION CODE 00464000 BNZ WRERROR BRANCH IF ANY ERROR OCCURS 00465000 L R1,CCWBGNW POINT TO CCWS TO WRITE OUT THE NUCLEUS 00466000 SR R3,R3 ZERO THE TRACK NUMBER 00467000 LA R4,800 LOAD THE RECORD LENGTH 00468000 LM R5,R7,RANGE1 LOAD POINTER TO 1ST RANGE TO BE WRITTEN 00469000 LA R8,24 LOAD THE CCW CHAIN INCREMENT 00470000 L R9,CCWENDW LOAD A POINTER TO THE LAST WRITE CCW 00471000 LA R10,WRCCW3 POINT TO THE CCW TO START WITH 00472000 L R11,=A(REC3) POINT TO THE SEARCH ADDRESS TO STHRC004DS 00473490 B STOREDA CONTINUE BUILDING THE WRITE CCW CHAIN 00474000 SPACE 00475000 NXTRANGE LTR R7,R7 IS THIS THE LAST RANGE ? 00476000 BZ SETLAST YES, WRITE OUT THE LAST TRACK WORTH 00477000 LM R5,R7,0(R7) NO, LOAD THE POINTERS FOR THE NEXT RANGE 00478000 B CHECKREC CONTINUE BUILDING THE WRITE CCW CHAIN 00479000 SPACE 00480000 SETLAST BCTR R7,0 MAKE POINTER TO NEXT RANGE NEGATIVE 00481000 SR R10,R8 BACKUP TO THE PREVIOUS CCW PACKAGE 00482000 CLI 0(R10),WRDATA IS THIS A WRITE DATA CCW ? 00483000 BNE INIRETN NO, NO MORE TO WRITE 00484000 MVI 4(R10),SILI TURN OFF COMMAND CHAINING 00485000 B DIAGWR WRITE OUT THE REMAINDER OF THE NUCLEUS 00486000 SPACE 00487000 NEXTTRK LA R3,1(,R3) ADD 1 TO THE TRACK NUMBER 00488000 CH R3,TRKMAX IS THIS THE END OF THE CYLINDER 00489000 BL STTRKNO NO, CONTINUE BUILDING CCWS @VA00899 00490100 SR R3,R3 YES, ZERO THE TRACK NUMBER AND 00491000 LA R2,1(,R2) ADD ONE TO THE CYLINDER NUMBER 00492000 STH R2,WRCYLNO UPDATE THE CURRENT SEEK ADDRESS 00493000 STTRKNO STH R3,WRTRKNO ... 00494000 LA R10,WRCCW1 POINT TO THE 1ST WRITE CCW 00495000 L R11,=A(REC1) POINT TO THE 1ST SEARCH ADDRESS HRC004DS 00496490 DATALOOP BXH R6,R4,NXTRANGE ADD 800 TO DATA ADDR & GO IF END OF RANGE 00497000 CHECKREC CLI DISKTYPE+1,TYP2314 IS THIS A 2314 DISK ? 00498000 BNE STOREDA NO, CONTINUE 00499000 CLI 4(R11),X'09' YES, ARE WE AT RECORD 9 ? 00500000 BNE STOREDA NO, CONTINUE 00501000 LA R3,1(,R3) YES, ADD 1 TO THE TRACK NUMBER 00502000 STOREDA ST R6,0(,R10) STORE THE DATA ADDRESS INTO THE CCW 00503000 MVI 0(R10),WRDATA MOVE WRITE DATA COMMAND CODE TO THE CCW 00504000 STH R2,0(,R11) STORE CYLINDER NUMBER IN SEARCH ADDRESS 00505000 STH R3,2(,R11) STORE TRACK NUMBER IN SEARCH ADDRESS 00506000 LA R11,6(,R11) POINT TO THE NEXT SEARCH ADDRESS 00507000 BXLE R10,R8,DATALOOP POINT TO NEXT CCW AND LOOP IF MORE 00508000 DIAGWR DC X'83010020' WRITE THE NUCLEUS ONTO THE DISK 00509000 BALR R15,0 SAVE ADDRESS AND CONDITION CODE 00510000 BNZ WRERROR BRANCH IF ANY ERROR OCCURS 00511000 LTR R7,R7 IS THE NUCLEUS ALL ON DISK ? 00512000 BNM NEXTTRK NO, WRITE OUT ANOTHER TRACK WORTH 00513000 B INIRETN CONTINUE WITH SYSTEM INITIALIZATION 00514000 EJECT 00515000 HEXTOBIN DS 0H HEX TO BINARY CONVERSION ROUTINE 00516000 LA R1,REPLY-1 POINT TO START OF REPLY - 1 00517000 L R2,ZEROES INITIALIZE VALUE TO ZERO 00518000 OC REPLY(8),BLANKS MAKE SURE REPLY IS IN UPPER CASE 00519000 HEXLOOP LA R1,1(,R1) POINT TO NEXT CHARACTER OF REPLY 00520000 CLI 0(R1),C' ' IS IT THE END OF THE REPLY ? 00521000 BE HEXPACK YES, CONTINUE CONVERSION 00522000 SLL R2,8 MAKE ROOM FOR ANOTHER CHARACTER 00523000 IC R2,0(,R1) SAVE THE NEXT CHARACTER 00524000 CLI 0(R1),C'9' IS IT LESS THAN OR EQUAL TO 9 ? 00525000 BH BINERR1 ERROR IF NO 00526000 CLI 0(R1),C'0' IS IT LESS THAN 0 ? 00527000 BNL HEXLOOP NO, LOOK AT THE NEXT CHARACTER 00528000 CLI 0(R1),C'F' IS IT LESS THAN OR EQUAL TO F ? 00529000 BH BINERR1 ERROR IF NO 00530000 CLI 0(R1),C'A' IS IT GREATER THAN OR EQUAL TO A ? 00531000 BL BINERR1 ERROR IF NO 00532000 AL R2,=F'9' CONVERT NUMBER TO CORRECT RANGE 00533000 B HEXLOOP LOOK AT THE NEXT CHARACTER 00534000 SPACE 00535000 HEXPACK C R2,ZEROES IS NUMBER STILL 0 ? 00536000 BE BINERR1 YES, ASK HIM AGAIN 00537000 ST R2,HEXWORD CONVERT THE NUMBER TO BINARY 00538000 PACK HEXDBLW(4),HEXWORD ... 00539000 L R1,HEXDBLW LOAD THE NUMBER 00540000 SRL R1,4 AND REMOVE THE SIGN 00541000 SR R2,R2 SET CONDITION CODE = 0 00542000 BR R14 RETURN TO THE CALLER 00543000 SPACE 00544000 BINERR1 LA R1,WRERR2 POINT TO CCW STRING FOR ADDRESS ERROR 00545000 HEXERR LR R2,R14 SAVE THE RETURN ADDRESS 00546000 BAL R14,DOCONSIO START THE I/O AND WAIT 00547000 LTR R14,R2 SET CONDITION CODE NOT = 0 00548000 BR R14 AND RETURN TO THE CALLER 00549000 EJECT 00550000 DECTOBIN DS 0H HEX TO DECIMAL CONVERSION ROUTINE 00551000 LA R1,REPLY POINT TO START OF THE REPLY 00552000 L R2,ZEROES INITIALIZE VALUE TO ZERO 00553000 DECLOOP CLI 0(R1),X'00' IS THIS THE END OF THE REPLY ? 00554000 BE DECPACK YES, CONTINUE CONVERSION 00555000 CLI 0(R1),C'0' IS IT EQUAL TO OR GREATER THAN 0 ? 00556000 BL DECERR1 ERROR IF NO 00557000 CLI 0(R1),C'9' IS IT LESS THAN OR EQUAL TO 9 ? 00558000 BH DECERR1 ERROR IF NO 00559000 SLL R2,8 MAKE ROOM FOR ANOTHER CHARACTER 00560000 IC R2,0(,R1) SAVE THE CURRENT CHARACTER 00561000 LA R1,1(,R1) POINT TO THE NEXT CHARACTER 00562000 B DECLOOP LOOK AT THE NEXT CHARACTER 00563000 SPACE 00564000 DECPACK C R2,ZEROES IS NUMBER STILL 0 ? 00565000 BE DECERR1 YES, ASK HIM AGAIN 00566000 ST R2,HEXWORD CONVERT THE NUMBER TO BINARY 00567000 PACK HEXDBLW,HEXWORD ... 00568000 CVB R1,HEXDBLW ... 00569000 SR R2,R2 SET CONDITION CODE = 0 00570000 BR R14 RETURN TO THE CALLER 00571000 SPACE 00572000 DECERR1 LA R1,WRERR3 POINT TO CCWSTRING FOR NUMBER ERROR 00573000 B HEXERR SEND THE ERROR MESSAGE AND CONTINUE 00574000 EJECT 00575000 DOCONSIO DS 0H CONSOLE I/O SUBROUTINE 00576000 MVI REPLY,X'00' CLEAR THE REPLY BUFFER 00577000 MVC REPLY+1(L'REPLY-1),REPLY 00578000 ST R1,CAW STORE CCW ADDRESS IN CAW 00579000 TIO 0(R13) CLEAR ANY PENDING INTERRUPTS 00580000 BNZ *-4 ... 00581000 SIO 0(R13) START THE I/O TO THE CONSOLE 00582000 BNZ *-4 ... 00583000 TIO 0(R13) WAIT FOR THE I/O TO COMPLETE 00584000 BC 2,*-4 ... 00585000 CLI CSW+4,CE+DE NORMAL STATUS RECEIVED ? 00586000 BNE DOCONSIO NO, TRY THE I/O AGAIN 00587000 BR R14 YES, RETURN TO THE CALLER 00588000 SPACE 3 00589000 WRERROR DS 0H ERROR WHILE WRITING THE NUCLEUS 00590000 ST R1,0 SAVE THE INDICATORS OF THE ERROR 00591000 ST R15,4 ... 00592000 MVC IPLCCW1,CAW ... 00593000 LA R1,WRERR1 POINT TO CCW STRINT FOR WRITE ERROR 00594000 BAL R14,DOCONSIO PERFORM THE I/O AND WAIT 00595000 B INIEXIT CONTINUE SYSTEM INITIALIZATION 00596000 EJECT 00597000 DS 0D 00598000 DEFLTSID DS 0CL32 00599000 DC CL18'CMS VERSION 6.0 - ' 00600000 NUCDATE DC C'MM/DD/YY' 00601000 DC C' ' 00602000 NUCTIME DC C'HH.MM' 00603000 SPACE 00604000 DEFLTIHD DS 0CL64 00605000 DC CL17' ' 00606000 DC CL30'CONVERSATIONAL MONITOR SYSTEM' 00607000 DC CL17' ' 00608000 SPACE 00609000 REPLY DC CL128' ' 00610000 SPACE 2 00611000 NEWPSWS DS 0CL40 00612000 DC AL2(MCKM,0),V(EXTINT) 00613000 DC AL2(MCKM,0),V(DMSITS1) 00614000 DC AL2(MCKM,0),V(DMSDBGP) 00615000 DC AL2(MCKM+WAIT,0),A(MCKNPSW-NUCON) 00616000 DC AL2(MCKM,0),V(IOINT) 00617000 SPACE 00618000 NIOPSW DC AL2(MCKM,0),V(IOINT) 00619000 WAITPSW DC AL1(CHAN0,MCKM+WAIT,0,0),A(WAKEHERE) 00620000 WAKEPSW DC AL1(0,MCKM,0,0),A(WAKEHERE) 00621000 SPACE 2 00622000 HEXDBLW DC D'0' 00623000 HEXWORD DC F'0' 00624000 ZEROES DC C'0000' 00625000 BLANKS DC CL8' ' 00626000 SPACE 2 00627000 ADMSINI DC A(DMSINIR) 00628000 CCWBGNW DC A(WRCCWS+0) 00629000 CCWENDW DC A(WRCCWF) 00630000 DISKTYPE DC H'0' 00631000 CONSTYPE DC AL1(CLASTERM,TYP3210) 00632000 IPLSWTCH DC C'N' 00633000 SPACE 00634000 VERSEXOC OC SYSTEMID(0),REPLY 00635000 INSTEXOC OC INSTALID(0),REPLY 00636000 EJECT 00637000 DS 0D 00638000 Q1CCWS CCW WRITE,Q1,CC+SILI,L'Q1 00639000 CCW TIC,QREAD,0,0 00640000 SPACE 1 00640100 Q1ACCWS CCW WRITE,Q1A,CC+SILI,L'Q1A 00640200 CCW TIC,QREAD,0,0 00640300 SPACE 00641000 Q2CCWS CCW WRITE,Q2,CC+SILI,L'Q2 00642000 CCW TIC,QREAD,0,0 00643000 SPACE 00644000 Q3CCWS CCW WRITE,Q3,CC+SILI,L'Q3 00645000 CCW TIC,QREAD,0,0 00646000 SPACE 00647000 Q4CCWS CCW WRITE,Q4,CC+SILI,L'Q4 00648000 CCW TIC,QREAD,0,0 00649000 SPACE 00650000 Q5CCWS CCW WRITE,Q5,CC+SILI,L'Q5 00651000 CCW TIC,QREAD,0,0 00652000 SPACE 00653000 Q6CCWS CCW WRITE,Q6,CC+SILI,L'Q6 00654000 CCW TIC,QREAD,0,0 00655000 SPACE 00656000 Q7CCWS CCW WRITE,Q7,CC+SILI,L'Q7 00657000 CCW TIC,QREAD,0,0 00658000 SPACE 00659000 QREAD CCW RDCONS,REPLY,CC+SILI,128 00660000 CCW NOP,0,SILI,1 00661000 SPACE 00662000 WRERR1 CCW WRITE1,WRMSG1,CC+SILI,L'WRMSG1 00663000 CCW NOP,0,SILI,1 00664000 SPACE 00665000 WRERR2 CCW WRITE1,WRMSG2,CC+SILI,L'WRMSG2 00666000 CCW NOP,0,SILI,1 00667000 SPACE 00668000 WRERR3 CCW WRITE1,WRMSG3,CC+SILI,L'WRMSG3 00669000 CCW NOP,0,SILI,1 00670000 SPACE 00671000 WRERR4 CCW WRITE1,WRMSG4,CC+SILI,L'WRMSG4 00672000 CCW NOP,0,SILI,1 00673000 SPACE 00674000 WRERR5 CCW WRITE1,WRMSG5,CC+SILI,L'WRMSG5 00675000 CCW NOP,0,SILI,1 00676000 SPACE 00677000 WRERR6 CCW WRITE1,WRMSG6,CC+SILI,L'WRMSG6 00678000 CCW NOP,0,SILI,1 00679000 EJECT 00680000 Q1 DC C'DMSINI606R SYSTEM DISK ADDRESS = ' CCU 00681000 Q1A DC C'DMSINI615R Y-DISK ADDRESS = ' CCU 00681100 Q2 DC C'DMSINI607R REWRITE THE NUCLEUS ? ' Y OR N 00682000 Q3 DC C'DMSINI608R IPL DEVICE ADDRESS = ' CCU 00683000 Q4 DC C'DMSINI609R NUCLEUS CYL ADDRESS = ' NNN 00684000 Q5 DC C'DMSINI610R ALSO IPL CYLINDER 0 ? ' Y OR N 00685000 Q6 DC C'DMSINI611R VERSION IDENTIFICATION = ' 32 CHARS 00686000 Q7 DC C'DMSINI612R INSTALLATION HEADING = ' 64 CHARS 00687000 SPACE 00688000 WRMSG1 DC C'DMSINI131S IPL DEVICE WRITE I/O ERROR' 00689000 WRMSG2 DC C'DMSINI079E INVALID DEVICE ADDRESS - REENTER' 00690000 WRMSG3 DC C'DMSINI080E INVALID CYLINDER NUMBER - REENTER' 00691000 WRMSG4 DC C'DMSINI081E INVALID REPLY - ANSWER "YES" OR "NO"' 00692000 WRMSG5 DC C'DMSINI082E IPL DEVICE ERROR - REENTER' 00693000 WRMSG6 DC C'DMSINI083E NUCLEUS WILL OVERLAY CMS FILES - RECOMPUTE' 00694000 SPACE 3 00695000 WRSEEKA DC H'0' HRC004DS 00695100 WRCYLNO DC H'0' HRC004DS 00695200 WRTRKNO DC H'0' HRC004DS 00695300 WRRECNO DC X'01' HRC004DS 00695400 WRSECNO DC X'02' HRC004DS 00695500 SPACE 3 HRC004DS 00695600 LTORG , HRC004DS 00695700 SPACE 3 HRC004DS 00695800 MFDCCWS DS 0D 00696000 CCW SEEK,ZERO,CC+SILI,6 00697000 CCW SEARCH,REC4,CC+SILI,5 00698000 CCW TIC,*-8,0,0 00699000 MFDCCW1 CCW RDDATA,MFDBUF,SILI,800 00700000 SPACE 3 00701000 IPLCCWS DS 0D 00702000 CCW SEEK,WRSEEKA,CC+SILI,6 00703000 CCW SEARCH,REC1,CC+SILI,5 00704000 CCW TIC,*-8,0,0 00705000 CCW WRDATA,IPLTEXT,CC+SILI,24 00706000 CCW SEARCH,REC2,CC+SILI,5 00707000 CCW TIC,*+8,0,0 00708000 CCW WRDATA,DMSINIR,SILI,800 00709000 SPACE 2 00710000 IPLTEXT DS 0D 00711000 DC AL2(MCKM,0),A(DMSINIR) 00712000 CCW RDDATA,DMSINIR,CC+SILI,800 00713000 CCW NOP,0,SILI,1 00714000 EJECT 00715000 WRCCWS DS 0D 00716000 CCW SEEK,WRSEEKA,CC+SILI,6 00717000 CCW SETSEC,WRSECNO,CC+SILI,1 00718000 CCW SEARCH,REC1,CC+SILI,5 00719000 CCW TIC,*-8,0,0 00720000 WRCCW1 CCW NOP,0,CC+SILI,800 00721000 CCW SEARCH,REC2,CC+SILI,5 00722000 CCW TIC,*-8,0,0 00723000 WRCCW2 CCW NOP,0,CC+SILI,800 00724000 CCW SEARCH,REC3,CC+SILI,5 00725000 CCW TIC,*-8,0,0 00726000 WRCCW3 CCW WRDATA,0,CC+SILI,800 00727000 CCW SEARCH,REC4,CC+SILI,5 00728000 CCW TIC,*-8,0,0 00729000 WRCCW4 CCW WRDATA,0,CC+SILI,800 00730000 CCW SEARCH,REC5,CC+SILI,5 00731000 CCW TIC,*-8,0,0 00732000 WRCCW5 CCW WRDATA,0,CC+SILI,800 00733000 CCW SEARCH,REC6,CC+SILI,5 00734000 CCW TIC,*-8,0,0 00735000 WRCCW6 CCW WRDATA,0,CC+SILI,800 00736000 CCW SEARCH,REC7,CC+SILI,5 00737000 CCW TIC,*-8,0,0 00738000 WRCCW7 CCW WRDATA,0,CC+SILI,800 00739000 CCW SEARCH,REC8,CC+SILI,5 00740000 CCW TIC,*-8,0,0 00741000 WRCCW8 CCW WRDATA,0,CC+SILI,800 00742000 CCW SEARCH,REC9,CC+SILI,5 00743000 CCW TIC,*-8,0,0 00744000 WRCCW9 CCW WRDATA,0,CC+SILI,800 00745000 CCW SEARCH,RECA,CC+SILI,5 00746000 CCW TIC,*-8,0,0 00747000 WRCCWA CCW WRDATA,0,CC+SILI,800 00748000 CCW SEARCH,RECB,CC+SILI,5 00749000 CCW TIC,*-8,0,0 00750000 WRCCWB CCW WRDATA,0,CC+SILI,800 00751000 CCW SEARCH,RECC,CC+SILI,5 00752000 CCW TIC,*-8,0,0 00753000 WRCCWC CCW WRDATA,0,CC+SILI,800 00754000 CCW SEARCH,RECD,CC+SILI,5 00755000 CCW TIC,*-8,0,0 00756000 WRCCWD CCW WRDATA,0,CC+SILI,800 00757000 CCW SEARCH,RECE,CC+SILI,5 00758000 CCW TIC,*-8,0,0 00759000 WRCCWE CCW WRDATA,0,CC+SILI,800 00760000 CCW SEARCH,RECF,CC+SILI,5 00761000 CCW TIC,*-8,0,0 00762000 WRCCWF CCW WRDATA,0,CC+SILI,800 @V304498 00763025 CCW SEARCH,REC10,CC+SILI,5 @V304498 00763050 CCW TIC,*-8,0,0 @V304498 00763075 WRCCW10 CCW WRDATA,0,CC+SILI,800 @V304498 00763100 CCW SEARCH,REC11,CC+SILI,5 @V304498 00763125 CCW TIC,*-8,0,0 @V304498 00763150 WRCCW11 CCW WRDATA,0,CC+SILI,800 @V304498 00763175 CCW SEARCH,REC12,CC+SILI,5 @V304498 00763200 CCW TIC,*-8,0,0 @V304498 00763225 WRCCW12 CCW WRDATA,0,CC+SILI,800 @V304498 00763250 CCW SEARCH,REC13,CC+SILI,5 @V304498 00763275 CCW TIC,*-8,0,0 @V304498 00763300 WRCCW13 CCW WRDATA,0,CC+SILI,800 HRC014DS 00763332 CCW SEARCH,REC14,CC+SILI,5 HRC014DS 00763339 CCW TIC,*-8,0,0 HRC014DS 00763346 WRCCW14 CCW WRDATA,0,CC+SILI,800 HRC014DS 00763353 CCW SEARCH,REC15,CC+SILI,5 HRC014DS 00763360 CCW TIC,*-8,0,0 HRC014DS 00763367 WRCCW15 CCW WRDATA,0,CC+SILI,800 HRC014DS 00763374 CCW SEARCH,REC16,CC+SILI,5 HRC014DS 00763381 CCW TIC,*-8,0,0 HRC014DS 00763388 WRCCW16 CCW WRDATA,0,CC+SILI,800 HRC014DS 00763395 CCW SEARCH,REC17,CC+SILI,5 HRC014DS 00763402 CCW TIC,*-8,0,0 HRC014DS 00763409 WRCCW17 CCW WRDATA,0,CC+SILI,800 HRC014DS 00763416 CCW SEARCH,REC18,CC+SILI,5 HRC014DS 00763423 CCW TIC,*-8,0,0 HRC014DS 00763430 WRCCW18 CCW WRDATA,0,CC+SILI,800 HRC014DS 00763437 CCW SEARCH,REC19,CC+SILI,5 HRC014DS 00763444 CCW TIC,*-8,0,0 HRC014DS 00763451 WRCCW19 CCW WRDATA,0,CC+SILI,800 HRC014DS 00763458 CCW SEARCH,REC1A,CC+SILI,5 HRC014DS 00763465 CCW TIC,*-8,0,0 HRC014DS 00763472 WRCCW1A CCW WRDATA,0,CC+SILI,800 HRC014DS 00763479 CCW SEARCH,REC1B,CC+SILI,5 HRC014DS 00763486 CCW TIC,*-8,0,0 HRC014DS 00763493 WRCCW1B CCW WRDATA,0,CC+SILI,800 HRC014DS 00763500 CCW SEARCH,REC1C,CC+SILI,5 HRC014DS 00763507 CCW TIC,*-8,0,0 HRC014DS 00763514 WRCCW1C CCW WRDATA,0,CC+SILI,800 HRC014DS 00763521 CCW SEARCH,REC1D,CC+SILI,5 HRC014DS 00763528 CCW TIC,*-8,0,0 HRC014DS 00763535 WRCCW1D CCW WRDATA,0,CC+SILI,800 HRC014DS 00763542 CCW SEARCH,REC1E,CC+SILI,5 HRC014DS 00763549 CCW TIC,*-8,0,0 HRC014DS 00763556 WRCCW1E CCW WRDATA,0,CC+SILI,800 HRC014DS 00763563 CCW SEARCH,REC1F,CC+SILI,5 HRC014DS 00763570 CCW TIC,*-8,0,0 HRC014DS 00763577 WRCCW1F CCW WRDATA,0,CC+SILI,800 HRC014DS 00763584 CCW SEARCH,REC20,CC+SILI,5 HRC014DS 00763591 CCW TIC,*-8,0,0 HRC014DS 00763598 WRCCW20 CCW WRDATA,0,CC+SILI,800 HRC014DS 00763605 CCW SEARCH,REC21,CC+SILI,5 HRC014DS 00763612 CCW TIC,*-8,0,0 HRC014DS 00763619 WRCCW21 CCW WRDATA,0,CC+SILI,800 HRC014DS 00763626 CCW SEARCH,REC22,CC+SILI,5 HRC014DS 00763633 CCW TIC,*-8,0,0 HRC014DS 00763640 WRCCW22 CCW WRDATA,0,CC+SILI,800 HRC014DS 00763647 CCW SEARCH,REC23,CC+SILI,5 HRC014DS 00763654 CCW TIC,*-8,0,0 HRC014DS 00763661 WRCCW23 CCW WRDATA,0,CC+SILI,800 HRC014DS 00763668 CCW SEARCH,REC24,CC+SILI,5 HRC014DS 00763675 CCW TIC,*-8,0,0 HRC014DS 00763682 WRCCW24 CCW WRDATA,0,CC+SILI,800 HRC014DS 00763689 CCW SEARCH,REC25,CC+SILI,5 HRC014DS 00763696 CCW TIC,*-8,0,0 HRC014DS 00763703 WRCCW25 CCW WRDATA,0,CC+SILI,800 HRC014DS 00763710 CCW SEARCH,REC26,CC+SILI,5 HRC014DS 00763717 CCW TIC,*-8,0,0 HRC014DS 00763724 WRCCW26 CCW WRDATA,0,CC+SILI,800 HRC014DS 00763731 CCW SEARCH,REC27,CC+SILI,5 HRC014DS 00763738 CCW TIC,*-8,0,0 HRC014DS 00763745 WRCCW27 CCW WRDATA,0,CC+SILI,800 HRC014DS 00763752 CCW SEARCH,REC28,CC+SILI,5 HRC014DS 00763759 CCW TIC,*-8,0,0 HRC014DS 00763766 WRCCW28 CCW WRDATA,0,CC+SILI,800 HRC014DS 00763773 CCW SEARCH,REC29,CC+SILI,5 HRC014DS 00763780 CCW TIC,*-8,0,0 HRC014DS 00763787 WRCCW29 CCW WRDATA,0,CC+SILI,800 HRC014DS 00763794 CCW SEARCH,REC2A,CC+SILI,5 HRC014DS 00763801 CCW TIC,*-8,0,0 HRC014DS 00763808 WRCCW2A CCW WRDATA,0,CC+SILI,800 HRC014DS 00763815 CCW SEARCH,REC2B,CC+SILI,5 HRC014DS 00763822 CCW TIC,*-8,0,0 HRC014DS 00763829 WRCCW2B CCW WRDATA,0,CC+SILI,800 HRC014DS 00763836 CCW SEARCH,REC2C,CC+SILI,5 HRC014DS 00763843 CCW TIC,*-8,0,0 HRC014DS 00763850 WRCCW2C CCW WRDATA,0,CC+SILI,800 HRC014DS 00763857 CCW SEARCH,REC2D,CC+SILI,5 HRC014DS 00763864 CCW TIC,*-8,0,0 HRC014DS 00763871 WRCCW2D CCW WRDATA,0,CC+SILI,800 HRC014DS 00763878 CCW SEARCH,REC2E,CC+SILI,5 HRC014DS 00763885 CCW TIC,*-8,0,0 HRC014DS 00763892 WRCCW2E CCW WRDATA,0,CC+SILI,800 HRC014DS 00763899 CCW SEARCH,REC2F,CC+SILI,5 HRC014DS 00763906 CCW TIC,*-8,0,0 HRC014DS 00763913 WRCCW2F CCW WRDATA,0,CC+SILI,800 HRC014DS 00763920 CCW SEARCH,REC30,CC+SILI,5 HRC014DS 00763927 CCW TIC,*-8,0,0 HRC014DS 00763934 WRCCW30 CCW WRDATA,0,CC+SILI,800 HRC014DS 00763941 CCW SEARCH,REC31,CC+SILI,5 HRC014DS 00763948 CCW TIC,*-8,0,0 HRC014DS 00763955 WRCCW31 CCW WRDATA,0,SILI,800 HRC014DS 00763962 EJECT 00764000 SPACE 3 HRC004DS 00765990 DS 0D HRC004DS 00766980 MFDBUF DS 800X HRC004DS 00767970 DS 0D 00771000 ZERO DC 8X'00' 00772000 REC1 DC 4X'00',X'01',X'00' 00773000 REC2 DC 4X'00',X'02',X'00' 00774000 REC3 DC 4X'00',X'03',X'00' 00775000 REC4 DC 4X'00',X'04',X'00' 00776000 REC5 DC 4X'00',X'05',X'00' 00777000 REC6 DC 4X'00',X'06',X'00' 00778000 REC7 DC 4X'00',X'07',X'00' 00779000 REC8 DC 4X'00',X'08',X'00' 00780000 REC9 DC 4X'00',X'09',X'00' 00781000 RECA DC 4X'00',X'0A',X'00' 00782000 RECB DC 4X'00',X'0B',X'00' 00783000 RECC DC 4X'00',X'0C',X'00' 00784000 RECD DC 4X'00',X'0D',X'00' 00785000 RECE DC 4X'00',X'0E',X'00' 00786000 RECF DC 4X'00',X'0F',X'00' 00787000 REC10 DC 4X'00',X'10',X'00' @V304498 00787100 REC11 DC 4X'00',X'11',X'00' @V304498 00787200 REC12 DC 4X'00',X'12',X'00' @V304498 00787300 REC13 DC 4X'00',X'13',X'00' @V304498 00787400 REC14 DC 4X'00',X'14',X'00' HRC004DS 00788090 REC15 DC 4X'00',X'15',X'00' HRC004DS 00788180 REC16 DC 4X'00',X'16',X'00' HRC004DS 00788270 REC17 DC 4X'00',X'17',X'00' HRC004DS 00788360 REC18 DC 4X'00',X'18',X'00' HRC004DS 00788450 REC19 DC 4X'00',X'19',X'00' HRC004DS 00788540 REC1A DC 4X'00',X'1A',X'00' HRC004DS 00788630 REC1B DC 4X'00',X'1B',X'00' HRC004DS 00788720 REC1C DC 4X'00',X'1C',X'00' HRC004DS 00788810 REC1D DC 4X'00',X'1D',X'00' HRC004DS 00788900 REC1E DC 4X'00',X'1E',X'00' HRC004DS 00788990 REC1F DC 4X'00',X'1F',X'00' HRC004DS 00789080 REC20 DC 4X'00',X'20',X'00' HRC004DS 00789170 REC21 DC 4X'00',X'21',X'00' HRC004DS 00789260 REC22 DC 4X'00',X'22',X'00' HRC004DS 00789350 REC23 DC 4X'00',X'23',X'00' HRC004DS 00789440 REC24 DC 4X'00',X'24',X'00' HRC004DS 00789530 REC25 DC 4X'00',X'25',X'00' HRC004DS 00789620 REC26 DC 4X'00',X'26',X'00' HRC004DS 00789710 REC27 DC 4X'00',X'27',X'00' HRC004DS 00789800 REC28 DC 4X'00',X'28',X'00' HRC004DS 00789890 REC29 DC 4X'00',X'29',X'00' HRC004DS 00789980 REC2A DC 4X'00',X'2A',X'00' HRC004DS 00790070 REC2B DC 4X'00',X'2B',X'00' HRC004DS 00790160 REC2C DC 4X'00',X'2C',X'00' HRC004DS 00790250 REC2D DC 4X'00',X'2D',X'00' HRC004DS 00790340 REC2E DC 4X'00',X'2E',X'00' HRC004DS 00790430 REC2F DC 4X'00',X'2F',X'00' HRC004DS 00790520 REC30 DC 4X'00',X'30',X'00' HRC004DS 00790610 REC31 DC 4X'00',X'31',X'00' HRC004DS 00790700 EJECT 00793000 CLASTERM EQU X'80' - TERMINAL DEVICE CLASS 00794000 TYP3210 EQU X'00' - CONSOLE TYPEWRITER 00795000 SPACE 00796000 CLASDASD EQU X'04' - DIRECT ACCESS STORAGE DEVICE CLASS 00797000 TYP2311 EQU X'80' - 2311 DISK STORAGE DRIVE 00798000 TYP2314 EQU X'40' - 2314 DISK STORAGE FACILITY 00799000 TYP3330 EQU X'10' - 3330 DISK STORAGE FACILITY 00800000 TYP2305 EQU X'02' - 2305 FIXED HEAD STORAGE DEVICE 00801000 TYP3340 EQU X'01' - 3340 DISK STORAGE @V2A2014 00801100 * FACILITY 00801200 TYP3350 EQU X'08' - 3350 DISK STORAGE FACILITY @V304498 00801300 TYP3380 EQU X'20' - 3380 DISK STORAGE FACILITY HRC004DS 00801600 EJECT 00802000 NUCON 00803000 DEVTAB 00804000 EQUATES 00805000 REGEQU 00806000 END DMSINIW 00807000