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