ibm:vm370-lib:cp:dmkfmt.assemble_src
Table of Contents
DMKFMT Source
References
- Fixes Applied : 5
- This Source Date : Wednesday, December 13, 1978
- Last Fix ID : [HRC011DK]
Source Listing
- DMKFMT.ASSEMBLE.txt
- FMT TITLE 'DMKFMT (CP) VM/370 - RELEASE 6' 00001000
- *. 00002000
- * MODULE NAME - 00003000
- * 00004000
- * DMKFMT 00005000
- * 00006000
- * FUNCTION - 00007000
- * 00008000
- * TO ACCEPT PARAMETERS FROM THE 1052 CONSOLE OR IPL 00009000
- * DEVICE (CARD READER) AND PERFORM PARTIAL OR COMPLETE 00010000
- * FORMATTING,ALLOCATION AND LABELING OF 2314,2319,3330, 00011000
- * 3340, 3350 AND 2305 DASD TYPE DEVICES. 00012000
- * THE FORMAT PROGRAM WILL ALSO DO WRITE CHECKING 00013000
- * TO VERIFY PAGES ARE FORMATTED CORRECTLY. A COUNT OF "ERROR" 00014000
- * PAGES WILL BE MAINTAINED. NO ALTERNATES WILL BE ASSIGNED. 00015000
- * OS LABELS WILL WRITTEN TO BE COMPATIABLE WITH OS 00016000
- * SYSTEM BUT LABELS WILL INDICATE TO OS THAT THERE IS 00017000
- * NO SPACE LEFT ON DASD STORAGE DEVICE. 00018000
- * ALL PARAMETER INPUT WILL BE VERIFIED FOR CORRECTNESS 00019000
- * 00020000
- * ATTRIBUTES - 00021000
- * 00022000
- * STAND-ALONE PROGRAM 00023000
- * 00024000
- * ENTRY POINTS - 00025000
- * 00026000
- * DMKFMT 00027000
- * 00028000
- * ENTRY CONDITIONS - 00029000
- * 00030000
- * NONE 00031000
- * 00032000
- * EXIT CONDITONS - 00033000
- * 00034000
- * NONE 00035000
- * 00036000
- * CALLS TO OTHER ROUTINES - 00037000
- * 00038000
- * NONE 00039000
- * 00040000
- * EXTERNAL REFERENCES - 00041000
- * 00042000
- * NONE 00043000
- * 00044000
- * TABLES/WORKAREAS - 00045000
- * 00046000
- * NONE 00047000
- * 00048000
- * REGISTER USAGE - 00049000
- * 00050000
- * GPR 0 TO 10 -SCRATCH 00051000
- * GPR 11 -3RD BASE 00052000
- * GPR 12 -2ND BASE 00053000
- * GPR 13 -4TH BASE 00054000
- * GPR 14 -LINK REG 00055000
- * GPR 15 -1ST BASE 00056000
- * 00057000
- * NOTES - NONE 00058000
- * 00059000
- * OPERATION -DMKFMT 00060000
- * 00061000
- * 1. AFTER IPL SAVE IPL DEVICE ADDRESS. 00062000
- * 00063000
- * 2. ASSUME CONSOLE ADDRESS 009 OR 01F. 00064000
- * 00065000
- * 3. IF ASSUMED CONSOLES ARE NOT THERE GO TO 00066000
- * WAIT STATE AND WAIT FOR ATTENTION INTERRUPT. 00067000
- * 00068000
- * 4. AFTER CONSOLE IS FOUND CHECK TO SEE IF 00069000
- * THERE IS ANY PARAMETER INPUT ON IPL DEVICE 00070000
- * 00071000
- * 5. IF PARAMETER INPUT IS IN IPL DEVICE,READ IN 00072000
- * ONE FUNCTION TO BE DONE AND USE CONSOLE TO 00073000
- * PRINT FUNCTIONS TO BE EXECUTED. 00074000
- * 00075000
- * 6. IF NO IPL DEVICE INPUT,USE CONSOLE TO PROMPT 00076000
- * FOR FUNCTION TO BE PERFORMED AND ALLOW 00077000
- * OPERATOR TO RETYPE INPUT IF FOUND INVALID 00078000
- * BY THE PROGRAM. 00079000
- * 00080000
- * 7. IF IPL DEVICE INPUT IS USED, SCAN CARD FOR PROPER 00081000
- * FORMAT, IF FOUND INVALID ISSUE A MESSAGE TO THE 00082000
- * OPERATOR AND FLUSH TO NEXT FORMAT OR ALLOCATE CARD. 00083000
- * 00084000
- * 8. ALLOW ABBREVIATIONS OF WORDS;FORMAT;ALLOCATE; & LABEL 00085000
- * ALLOW DEFAULTS FOR STARTING AND ENDING CYLINDERS UNDER 00086000
- * FORMAT FROM CONSOLE OR IPL DEVICE INPUT. 00087000
- * 00088000
- * 9. REPEAT PROMPTING FOR NEW FUNCTION TO 00089000
- * PERFORM WHEN USING CONSOLE AS INPUT 00090000
- * OR READ NEXT FUNCTION FROM THE IPL 00091000
- * DEVICE. 00092000
- * 00093000
- * 10.START 'FORMAT','ALLOCATION',OR 'LABEL ONLY' OPERATION 00094000
- * AS REQUESTED. 00095000
- * 00096000
- * **FORMAT** 00097000
- * 00098000
- * FORMAT FROM THE STARTING CYLINDER UP TO AND 00099000
- * INCLUDING THE ENDING CYLINDER OF THE DASD DEVICE 00100000
- * AS REQUESTED BY CONSOLE OR IPL DEVICE INPUT. 00101000
- * 00102000
- * FORMATTED RECORDS ARE (PAGE SIZE) IN 4096 BYTES. 00103000
- * 00104000
- * FORMAT CYLINDER 0 AS FOLLOWS: 00105000
- * 00106000
- * R0 PAGE BIT MAP - FLAGS BAD OR INUSE PAGES. 00107000
- * R1 IPL REC. - PUTS STSTEM INTO WAIT STATE, CODE = 00C. 00108000
- * R2 CHECK POINT RECORD - USED BY CHECK POINT ROUTINE. 00109000
- * R3 OS VOL1 LABEL - CONTAINS CP VOLUME LABEL 00110000
- * R4 ALLOCATION BIT MAP - ALLOCATION TYPE FOR EACH CYL. 00111000
- * R5 OS FORMAT 4 LABEL 00112000
- * R6 OS FORMAT 5 LABEL. 00113000
- * RF3 PAGE SIZE FILLER RECORD FOR FUTURE CP USE. 00114000
- * RF4 FILLER RECORD FOR 2314 AND 2319 DEVICE. 00115000
- * 00116000
- * WRITE CP VOLUME LABEL WHEN CYLINDER 0 IS FORMATTED, 00117000
- * OTHER WISE READ AND COMPARE CP VOLUME LABEL TO INPUT. 00118000
- * 00119000
- * WRITE PAGE SIZE RECORDS ON THE REST OF CYLINDER 0 00120000
- * AND ALL OTHER CYLINDERS REQUESTED. 00121000
- * 00122000
- * WRITE VERIFY THAT EACH PAGE RECORD WAS WRITTEN 00123000
- * CORRECTLY. 00124000
- * 00125000
- * RECORD ANY BAD PAGE RECORD IN THE "PAGE BIT MAP" 00126000
- * LOCATED ON TRACK 0 RECORD 0 OF EACH CYLINDER. 00127000
- * 00128000
- * PRINT BAD PAGE ADDRESSES AS THEY FOUND. 00129000
- * 00130000
- * PRINT TOTAL OF BAD PAGES WHEN FORMAT IS COMPLETE. 00131000
- * 00132000
- * GET ANOTHER TASK FROM CONSOLE OR IPL DEVICE WHEN 00133000
- * FORMAT IS COMPLETE. 00134000
- * 00135000
- * **ALLOCATION** 00136000
- * 00137000
- * READ AND VERIFY THE CP VOLUME LABEL. 00138000
- * 00139000
- * UPDATE ALLOCATION TABLE IN CORE FROM CONSOLE 00140000
- * OR IPL DEVICE INPUT. 00141000
- * 00142000
- * WRITE CYLINDER ALLOCATION INTO "CYL BYTE MAP" 00143000
- * LOCATED IN RECORD 4 OF CYL 0 HEAD 0. 00144000
- * 00145000
- * SCAN "CYL BYTE MAP" AFTER ALLOCATION IS COMPLETE 00146000
- * AND PRINT VOLUME ALLOCATE ON CONSOLE. 00147000
- * 00148000
- * GET ANOTHER TASK FROM CONSOLE OR IPL DEVICE WHEN 00149000
- * ALLOCATION IS COMPLETE. 00150000
- * 00151000
- * **LABEL ONLY OPERATION** 00152000
- * 00153000
- * CHECK FOR SIX CHARACTERS ENTERED FOR LABEL. 00154000
- * 00155000
- * WRITE NEW CP VOLUME LABEL IN CYLINDER 0 HD 0 RECORD 3 00156000
- * 00157000
- * GET ANOTHER TASK FROM CONSOLE OR IPL DEVICE WHEN 00158000
- * LABELING IS COMPLETE. 00159000
- * 00160000
- * 11.DEPRESSING THE REQUEST KEY ON THE CONSOLE 00161000
- * WILL CAUSE AN ATTENTION INTERRUPT TO THE PROGRAM 00162000
- * AND PROCESSING WILL STOP AND PROGRAM RESTARTED AT 00163000
- * BEGINNING. 00164000
- * 00165000
- * 12.MACHINE CHECKS AND PROGRAM CHECKS WILL PRINT 00166000
- * MESSAGE AND PUT SYSTEM INTO WAIT STATE. 00167000
- * 00168000
- * 13.FATAL DASD ERRORS WILL PRINT A MESSAGE WITH SENSE 00169000
- * DATA. 00170000
- * 00171000
- * 14.CARD FORMATS. 00172000
- * 00173000
- * FORMAT EXAMPLES: 00174000
- * 00175000
- * FORMAT,ADDRESS,TYPE,VOLUME LABEL,START CYL,END CYL, 00176000
- * 00177000
- * FORMAT,232,3330,MYDISK,000,006, 00178000
- * OR 00179000
- * FORMAT,232,3330,MYDISK,000,006 LAST , MAY BE DROPPED 00180000
- * F,232,3330,MYDISK,,, DEFAULTS START & END CYL 00181000
- * F,232,3330,MYDISK,,007 DEFAULTS START CYL 00182000
- * F,232,3330,MYDISK,001,, DEFAULTS END CYL 00183000
- * 00184000
- * ALLOCATE EXAMPLES: 00185000
- * 00186000
- * ALLOCATE,232,3330,MYDISK 00187000
- * TEMP,000,050 ALLOCATE CYL 0 TO 50 AS TEMPORARY 00188000
- * PERM,055,060 00189000
- * TDSK,100,108 00190000
- * DRCT,110,120 00191000
- * END 00192000
- * 00193000
- * A,232,3330,MYDISK 00194000
- * ALLO,232,3330,MYDISK ABBEVIATE ALLOCATE 00195000
- * 00196000
- * LABEL ONLY EXAMPLES: 00197000
- * 00198000
- * FO,232,3330,MYDISK,LABEL WORD LABEL IN PLACE OF CYL 00199000
- * F,232,3330,MYDISK,LA WORD LABEL ABBEVIATED. 00200000
- * 00201000
- * 15.DETECT IPL DEVICE ERRORS AND ALLOW RESTARTING 00202000
- * CONSOLE OR IPL DEVICE. 00203000
- * 00204000
- * 16.ALLOW CONSOLE TO BE USED WHEN IPL DEVICE IS 00205000
- * NOT READY OR HAS NO MORE INPUT 00206000
- * 00207000
- * MESSAGES 00208000
- * 00209000
- * DMKFMT730E DEV XXX NOT OPERATIONAL OR NOT READY. 00210000
- * 00211000
- * DMKFMT732E MACHINE CHECK RUN SEREP AND SAVE OUTPUT FOR CE 00212000
- * 00213000
- * DMKFMT733E VOLID READ IS VOLID1 NOT VOLID2 00214000
- * VOLID1 = THE VOLUNE SERIAL NUMBER FROM THE 00215000
- * DASD DEVICE. 00216000
- * VOLID2 = THE VOLUME SERIAL NUMBER FROM THE 00217000
- * CONTROL STATEMENT. 00218000
- * 00219000
- * DMKFMT734E TYPE OR CYL INVALID 00220000
- * 00221000
- * DMKFMT735E FATAL DASD IO ERROR. CSW=XXXXXXXXXXXXXXXX 00222000
- * 00223000
- * DMKFMT736E IO ERROR CCU CCHHR = XXXXXXXXXX SENSE = XXXXXXXXXXX 00224000
- * XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 00225000
- * 00226000
- * DMKFMT737E INVALID OPERAND 00227000
- * 00228000
- * DMKFMT738A DEV CCU INTERVENTION REQUIRED 00229000
- * 00230000
- * DMKFMT739E FLAGGED PRIMARY TRACK HAS NO ALTERNATE ASSIGNED, 00231000
- * IO ERROR FOLLOWS. 00232000
- * 00233000
- * DMKFMT740E PACK MOUNTED IS 3340-35, NOT 3340-70. MOUNT 00234000
- * ANOTHER OR RESPECIFY. 00235000
- * 00236000
- * DMKFMT756E PROGRAM CHECK PSW = XXXXXXXXXXXXXXXX 00237000
- * 00238000
- * VM/370 FORMAT/ALLOCATE PROGRAM RELEASE 6 00239000
- * 00240000
- * ENTER FORMAT OR ALLOCATE: 00241000
- * 00242000
- * FORMAT FUNCTION SELECTED 00243000
- * 00244000
- * ALLOCATE FUNCTION SELECTED 00245000
- * 00246000
- * ENTER DEVICE ADDRESS (CCU): 00247000
- * 00248000
- * ENTER DEVICE TYPE: 00249000
- * 00250000
- * ENTER ALLOCATION DATA FOR VOLUME XXXXXX 00251000
- * TYPE CYL CYL 00252000
- * .... ... ... 00253000
- * 00254000
- * DEVICE XXX VOLUME XXXXXX ALLOCATION ENDED 00255000
- * 00256000
- * ENTER START CYLINDER (XXX) OR LABEL: 00257000
- * 00258000
- * ENTER END CYLINDER (XXX): 00259000
- * 00260000
- * FORMAT STARTED 00261000
- * 00262000
- * ENTER DEVICE LABEL: 00263000
- * 00264000
- * FORMAT DONE 00265000
- * 00266000
- * XXX PAGE RECORDS FLAGGED 00267000
- * 00268000
- * ALLOCATION RESULTS 00269000
- * 00270000
- * TEMP XXX XXX 00271000
- * 00272000
- * PERM XXX XXX 00273000
- * 00274000
- * TDSK XXX XXX 00275000
- * 00276000
- * DRCT XXX XXX 00277000
- * 00278000
- * 00279000
- *. 00280000
- *********************************************************************** 00281000
- *THIS PROGRAM WILL FORMAT (FULL OR PARTIAL);ALLOCATE;AND LABEL;2314 * 00282000
- *2319,3330,3340,3350 AND 2305 DASD UNITS, USING CONSOLE OR CARD INPUT.* 00283000
- *THE DEVICES WILL BE FORMATTED WITH 4096 BYTE SIZE RECORDS. * 00284000
- *THE CARD DEVICE WILL BE SELECTED IF INPUT FOLLOWS THE IPL DECK AT IPL* 00285000
- *TIME. IF NO INPUT FOLLOWS IPL DECK THE CONSOLE WILL BE SELECTED * 00286000
- *VOLUME LABEL WILL BE CHECKED FOR ALL OPERATIONS EXCEPT, FORMAT OF * 00287000
- *CYLINDER ZERO AND LABEL OPERATIONS ONLY. * 00288000
- *CERTAIN ERRORS DURING I/O ARE CONSIDERED FATAL AND * 00289000
- *THE FORMAT FUNCTION IS ABORTED. OTHER I/O ERRORS ARE TREATED AS SOFT * 00290000
- *ERRORS; AT THE END OF A RUN THE NUMBER OF "SOFT ERROR" RECORDS 00291000
- *IS PRINTED OUT. 00292000
- *FOR LABELLING VOLUME LABELS MUST BE SIX CHARACTERS IN LENGTH. * 00293000
- *THE ALLOCATION FUNCTION OF THIS PROGRAM SIMPLY PROMPTS FOR THE TYPE * 00294000
- *OF ALLOCATION AND UPDATES RECORD FOUR ON CYL 0 HEAD 0. * 00295000
- *********************************************************************** 00296000
- DMKFMT START 1536 00297000
- BALR R15,0 FIRST BASE REG 15 00298000
- USING PSA,R0 00299000
- USING *,R15,R12,R11,R13 @V2A2029 00300000
- LA R12,2048(R15) LOAD R12 00301000
- LA R12,2048(R12) 00302000
- LA R11,2048(R12) 00303000
- LA R11,2048(R11) 00304000
- LA R13,2048(R11) @V2A2029 00305000
- LA R13,2048(R13) @V2A2029 00306000
- MVC 120(8),=A(0,IRA) SET UP IO NEW PSW 00307000
- LH R14,2 GET IPL DEVICE FROM I/O OLD PSW 00308000
- TIO 0(R14) CLEAR PENDING STATUS 00309000
- BC 2,*-4 LOOP IF BUSY @VA03149 00310000
- STH R14,IPLDEV SAVE IPL DEVICE 00311000
- MVC 104(8),PRNUPSW PROG NEW PSW 00312000
- MVC 112(8),MCNUPSW MACH CK NEW PSW 00313000
- MVC SAVEVOL1(96),OSLABEL SAVE OSLABEL INFORMATION D 00314000
- MVC SAVEFMT4(96),FMT4DATA SAVE CP'S FMT4 CONTENTS @V56BDA8 00315000
- MVC WKSEEK(118),SEEKA SAVE SEEK FIELDS @V2A2029 00316000
- MVC RNSTUF(96),R1STUF SAVE 2314 RECORD FIELDS 00317000
- MVC RNDATA(184),REC1 SAVE DASD RECORD FIELDS @V304498 00318000
- STMSG EQU * @V200731 00319000
- XC SAVE14(4),SAVE14 ZERO OUT FIELD @VA08188 00320000
- LA R4,TITLE PRINT TITLE 00321000
- BAL R14,WMSG PRINT TITLE MSG 00322000
- GETCARD MVC CAW(4),=A(CARDCCW) SET CAW 00323000
- MVC 120(8),CONSIRA SET UP NEW IO PSW 00324000
- TM CDSW2,X'FF' CARD SWITCH ON 00325000
- BZ NOCARD NO- BRANCH 00326000
- LH R10,IPLDEV IPL ADDRESS IN R10 @V2A2029 00327000
- TIO 0(R10) CLEAR STATUS @V2A2029 00328000
- BC 2,*-4 BRANCH BACK IF BUSY 00329000
- SIO 0(R10) START IPL DEVICE @V2A2029 00330000
- BC 8,XWAIT IF STARTED WAIT 00331000
- NOCARD MVC CDSW(2),=X'0000' CLEAR CARD SWITCHES 00332000
- XC ALLOSW,ALLOSW CLEAR ALLOCATION SW USED IN CARD MOD 00333000
- XC ALLOERR,ALLOERR CLEAR ALLOCATION ERROR SW -CARD MODE 00334000
- B SELECT NO, USE CONSOLE 00335000
- IRA EQU * @V200731 00336000
- TM PARM2,X'80' IS NOT OPERATIONAL INDICATED @V200731 00337000
- BO CONPARM YES, GO TEST FOR CORRECT DEVICE @V200731 00338000
- TM CSW+4,UC IS UNIT CHECK INDICATED ? @V200731 00339000
- BZ CONSINT NO, GO TO ERROR HANDLER @V200731 00340000
- CONPARM EQU * @V200731 00341000
- NI PARM2,X'FF'-X'80' MASK OFF DEVICE NOT @V200731 00342000
- * OPERATIONAL 00343000
- TM PARM,PARM321 IS THIS A 3215/3210/1052 @V200731 00344000
- BO DDRLPSW YES, GO WAIT FOR I/O INTERRUPT @V200731 00345000
- TM PARM,PARM01F IS THIS ADDRESS 01F ? @V200731 00346000
- BO TESTGRAP YES, GO CHECK FOR GRAPHIC @V200731 00347000
- * DEVICE ? 00348000
- OI PARM,PARM01F SET INDICATOR FOR 01F @V200731 00349000
- MVI CONSOL+1,X'1F' SET THE ADDRESS TO 01F @V200731 00350000
- B STMSG GO TRY THIS ADDRESS - 01F @V200731 00351000
- TESTGRAP EQU * @V200731 00352000
- TM PARM,PARMGRP IS THIS A GRAPHIC DEVICE ? @V200731 00353000
- BO TES3270T YES, GO TEST FOR 3270 DEVICE @V200731 00354000
- OI PARM,PARMGRP+PARMCLE SET GRAPHIC & ERASE @V200731 00355000
- * INDICATORS 00356000
- MVC 120(8),=A(0,CONRET) CHANGE THE I/O NEW PSW @V200731 00357000
- DDRLPSW EQU * @V200731 00358000
- LPSW WAITCON WAIT FOR I/O INTERRUPT @V200731 00359000
- TES3270T EQU * @V200731 00360000
- TM PARM,PARMGRP+PARM327 IS THIS A 3270 DEVICE ? @V200731 00361000
- BO TEST3278 YES, GO CHECK IF 3278 @V60A6B6 00362000
- OI PARM,PARM327 SET THE 3270 INDICATOR @V60A6B6 00363000
- *********************************************************************** 00364000
- * THE FOLLOWING WILL ENSURE THE CORRECT LINE/COL LOCATIONS FOR 3277 * 00365000
- * DATA STREAMS. THIS IS A 24 LINE OPERATOR CONSOLE SCREEN. * 00366000
- *********************************************************************** 00367000
- MVC LAB3270A+2(2),ADDR1 @V60A6B6 00368000
- MVC LAB3270A+8(2),ADDR2 @V60A6B6 00369000
- MVC LAB3270B+2(2),ADDR1 @V60A6B6 00370000
- MVC LAB3270B+8(2),ADDR2 @V60A6B6 00371000
- MVC LAB3270C+2(2),ADDR2 @V60A6B6 00372000
- MVC LAB3270D+2(2),ADDR1 @V60A6B6 00373000
- MVC LAB3270E+5(2),ADDR1 @V60A6B6 00374000
- MVC LAB3270E+12(2),ADDR2 @V60A6B6 00375000
- MVC ADDR5,ADDR6 @V60A6B6 00376000
- MVC MAXLEN,LEN3270 @V60A6B6 00377000
- B STMSG GO TRY THIS ADDRESS WITH @V60A6B6 00378000
- * GRAPHIC SUPPORT 00379000
- TEST3278 EQU * @V60A6B6 00380000
- CLC LAB3270A+2(2),ADDR3 HAVE WE TRIED 3278 LOGIC @V60A6B6 00381000
- BE TEST3215 MUST BE 3210-3215-1052 @V60A6B6 00382000
- *********************************************************************** 00383000
- * THE FOLLOWING WILL ENSURE THE CORRECT LINE/COL LOCATIONS FOR 3278 * 00384000
- * MOD2A DATA STREAMS. THIS IS A 20 LINE OPERATOR CONSOLE SCREEN. * 00385000
- *********************************************************************** 00386000
- MVC LAB3270A+2(2),ADDR3 @V60A6B6 00387000
- MVC LAB3270A+8(2),ADDR4 @V60A6B6 00388000
- MVC LAB3270B+2(2),ADDR3 @V60A6B6 00389000
- MVC LAB3270B+8(2),ADDR4 @V60A6B6 00390000
- MVC LAB3270C+2(2),ADDR4 @V60A6B6 00391000
- MVC LAB3270D+2(2),ADDR3 @V60A6B6 00392000
- MVC LAB3270E+5(2),ADDR3 @V60A6B6 00393000
- MVC LAB3270E+12(2),ADDR4 @V60A6B6 00394000
- MVC ADDR5,ADDR7 @V60A6B6 00395000
- MVC MAXLEN,LEN3278 @V60A6B6 00396000
- B STMSG GO TRY THIS ADDRESS WITH @V200731 00397000
- * GRAPHIC SUPPORT 00398000
- TEST3215 EQU * @V200731 00399000
- MVI PARM,PARM321 SET THE 3210-3215-1052 FLAG @V200731 00400000
- B STMSG GO TRY THIS ADDRESS WITH 3215 @V200731 00401000
- * SUPPORT 00402000
- CONRET EQU * @V200731 00403000
- MVC CONSOL(2),58 GET THE DEVICE ADDRESS @V200731 00404000
- MVC 120(8),=A(0,IRA) CHANGE THE I/O NEW PSW @V200731 00405000
- B STMSG GO TRY THIS ADDRESS @V200731 00406000
- EJECT 00407000
- *********************************************************************** 00408000
- * * * 00409000
- * * START PROMPTING HERE * 00410000
- * * * 00411000
- *********************************************************************** 00412000
- SPACE 1 00413000
- SPACE 1 00414000
- *********************************************************************** 00415000
- * * FORMAT OR ALLOCATE ? * 00416000
- *********************************************************************** 00417000
- SPACE 1 00418000
- SELECT LA R4,FORA SET UP TO PRINT FORMAT OR ALLO 00419000
- BAL R14,WMSG FORMAT OR ALLOCATE MSG 00420000
- MVI FLAG,X'00' CLEAR FLAG BTYE 00421000
- BAL R14,RMSG GO READ RESPONSE 00422000
- TM CSW+4,UE UNIT EXCEPTION OR UNIT CK 00423000
- BO SELECT YES,BRANCH 00424000
- XC FIELDA,FIELDA CLEAR FIELDA 00425000
- XC FIELDB,FIELDB CLEAR FIELDB 00426000
- BAL R14,LNGCALC GET WORD LENGTH @VA05542 00427000
- BNZ SELECT BR IF LENGTH = 0 OR GT 8 @VA05542 00428000
- EX R4,TSTALLOC HOW ABOUT ALLOCATE ? @VA05542 00429000
- BE ALLOC IF SO, HANDLE IT .... @VA05542 00430000
- EX R4,TSTFRMT IS IT FORMAT ? @VA05542 00431000
- BNE SELECT IF NOT, TRY AGAIN @VA05542 00432000
- FORM MVC FLAG(1),COMWOK SET FLAG TO 'F' 00433000
- LA R4,FMTMSG SET UP MESSAGE 00434000
- BAL R14,WMSG WRITE MESSAGE 00435000
- B DEVICEAD GO GET DEVICE ADDRESS 00436000
- ALLOC MVC FLAG(1),COMWOK SET FLAG TO 'A' 00437000
- LA R4,ALLOCMSG SET UP ALLOCATE MESSAGE 00438000
- BAL R14,WMSG WRITE MESSAGE 00439000
- EJECT 00440000
- *********************************************************************** 00441000
- * * GET DEVICE ADDRESS * 00442000
- *********************************************************************** 00443000
- SPACE 1 00444000
- DEVICEAD LA R4,ADDRESS REQUEST DEVICE ADDRESS 00445000
- BAL R14,WMSG WRITE MESSAGE 00446000
- BAL R14,RMSG READ RESPONSE 00447000
- TM CSW+4,UE CANCEL KEY OR UNIT CHECK 00448000
- *********************************************************************** 00449000
- * NOTE-UNIT EXCEPTION WAS OR'ED ON IF UNIT CK OCCURRED DURING RD 00450000
- *********************************************************************** 00451000
- BO DEVICEAD TRY AGAN IF CANCEL 00452000
- OC INDATA(4),BLANKS8 CONVERT TO UPPER CASE @VM08604 00453000
- CLI INDATA+3,X'40' ANYTHING EXTRA ? @VM08604 00454000
- BNE DEVICEAD YES, GO ISSUE DEVICE MESSAGE @VM08604 00455000
- MVC WR1+16(3),INDATA MOVE IN THE DEV ADD 00456000
- MVC ALLEND+8(3),INDATA MOVE DEVICE ADD INTO MESSAGES 00457000
- MVC IOERR+21(3),INDATA MOVE DEVICE ADD INTO MESSAGES 00458000
- MVC IPLERROR+17(3),INDATA MOVE DEVICE ADD INTO MESSAGE 00459000
- LA R9,3 PUT MESSAGE LENGTH IN REG9 00460000
- LA R8,INDATA ADDRESS OF INPUT IN R8 00461000
- BAL R7,XBIN GO TO HEX CONVERTION RTN 00462000
- LTR R10,R10 WAS IT BAD HEX ADDRESS 00463000
- BM DEVICEAD YES, TRY AGAN 00464000
- STH R10,DSKADD SAVE HEX DEVICE ADDRESS 00465000
- MVC CAW(4),=A(CCWSENSE) SET THE CAW. @VM08604 00466000
- SIO 0(R10) IS IT THERE?? @VM08604 00467000
- BC 1,NOTHERE NOPE - ARGH. @VM08604 00468000
- TIO 0(R10) YES - DRAIN THE INT. @VM08604 00469000
- BC 2,*-4 . . . @VM08604 00470000
- TM SENSE,X'40' INTERVENTION REQD (DISK NOT @V56BDA8 00471000
- * READY OR PACK NOT MOUNTED)? 00472000
- BZ DEVTYPE NO, IT'S READY. @V56BDA8 00473000
- NOTHERE EQU * @VM08604 00474000
- LA R4,WR1 NO,SET UP NOT AVAILABLE MESSAGE 00475000
- BAL R14,WMSG WRITE MESSAGE 00476000
- DVCAGAIN TM CDSW2,X'FF' IS SW ON? @V56BDA8 00477000
- BO BADINPUT IF ON BRANCH 00478000
- B DEVICEAD GIVE HIM A CHANCE TO ENTER @V56BDA8 00479000
- * CORRECTED ADDRESS OR TO READY THE 00480000
- * DEVICE AND RE-ENTER SAME ADDRESS. 00481000
- EJECT 00482000
- *********************************************************************** 00483000
- * * GET DEVICE TYPE * 00484000
- *********************************************************************** 00485000
- SPACE 1 00486000
- DEVTYPE LA R4,TYPMSG SET UP TO TYPE MESSAGE 00487000
- BAL R14,WMSG WRITE MESSAGE 00488000
- BAL R14,RMSG READ RESPONSE 00489000
- TM CSW+4,UE CANCEL KEY OR UNIT CHECK? 00490000
- BO DEVTYPE YES, TRY AGAN 00491000
- OC INDATA(8),BLANKS8 CONVERT TO UPPERCASE @VM08604 00492000
- CLC INDATA(5),=C'2314 ' WAS DEVICE 2314 ? @VM08604 00493000
- BE SAME YES,GO TO DISK 00494000
- CLC INDATA(5),=C'2319 ' IS THIS A 2319 ? @VM08604 00495000
- SAME MVC HIVALUE,=H'202' HI CYL ADDRESS 00496000
- MVI RECVALUE,X'20' HIGHER RECORD 00497000
- MVC GO(8),OFF3330 CHANGE CCW'S FOR 2314 00498000
- MVI TYPE,X'14' SAVE TYPE 00499000
- BE DISK YES, GO DISK 00500000
- CLC INDATA(5),=C'3350 ' IS THIS A 3350 ? @V304498 00501000
- MVC HIVALUE,=H'554' HI CYL ADDRESS @V304498 00502000
- MVI RECVALUE,X'78' HIGHEST RECORD NUMBER @V304498 00503000
- MVI TYPE,TYP3350 ASSIGN 3350 TYPE CODE @V304498 00504000
- BE DISK YES, FORMAT 3350 @V304498 00505000
- CLC INDATA(8),=C'3330-11 ' IS IT A 3330 MOD 11 ? @VM08604 00506000
- MVC HIVALUE,=H'807' HIGH CYLINDER ADD FOR A 3330 @V200528 00507000
- * MOD 11 00508000
- MVI RECVALUE,X'3C' HIGHEST RECORD IS 60 FOR TEST 00509000
- MVC WR57,OFF57WRT SET WRITE CCW'S TO READ 12 RECORDS 00510000
- MVC RD57,OFF57RD SET READ CCW'S 12 RECORD 00511000
- MVC GO(8),ON3330 CHANGE CCW FOR 3330 2305 00512000
- MVI TYPE,X'30' SAVE TYPE 00513000
- BE DISK YES,GO DISK 00514000
- CLC INDATA(5),=C'3330 ' @VM08604 00515000
- MVC HIVALUE,=H'403' HI CYL ADDRESS @V200528 00516000
- BE DISK YES,GO TO DISK @V200528 00517000
- MVI RECVALUE,X'18' HIGHEST RECORD NUMBER @V2A2029 00518000
- MVC GO(8),ON3340 CHANGE CCW'S FOR 3340 @V2A2029 00519000
- MVI TYPE,TYP334X SAVE TYPE FOR 3340/3344. @V56BDA8 00520000
- CLC INDATA(L8),=C'3340-35 ' IS IT 3340 (35MB) PACK? @V56BDA8 00521000
- MVC HIVALUE,=H'347' HIGH ADDRESS FOR 35MB. @V56BDA8 00522000
- BE DISK YES, 3340-35. @V56BDA8 00523000
- CLC INDATA(L8),=C'3340-70 ' 3340 (70MB) OR 3344? @V56BDA8 00524000
- BNE NOT3340 NOT 3340/3344. TRY SOMETHING ELSE@V56BDA8 00525000
- * 00526000
- * USER SAYS 70MB PACK. SEE IF SENSE AGREES; WE WOULD NOT WANT 00527000
- * TO STUMBLE INTO THE ALTERNATE CYLINDER OF A 35MB PACK WHILE 00528000
- * THINKING WE ARE ON A 70MB PACK. WE WOULD ALSO NOT WANT TO 00529000
- * WRITE A 70MB ALLOCATION RECORD ON A 35MB PACK. 00530000
- * 00531000
- MVC HIVALUE,=H'695' HIGH ADDRESS FOR 70MB. @V56BDA8 00532000
- TM SENSE+2,X'01' IS IT A 35MB? @V56BDA8 00533000
- BZ DISK NO, SO IT MUST BE 70MB. @V56BDA8 00534000
- LA R4,MSG35MB SET UP FOR WRONG PACK MESSAGE. @V56BDA8 00535000
- BAL R14,WMSG WRITE MESSAGE. @V56BDA8 00536000
- B DVCAGAIN GO ASK HIM TO ENTER UNIT ADDRESS @V56BDA8 00537000
- * AGAIN, MAYBE HE GOOFED THERE. THAT 00538000
- * ALSO GIVES HIM A CHANCE TO SWITCH PACKS. 00539000
- * THEN WE RE-READ THE SENSE, THEN COME 00540000
- * HERE TO READ DEVTYPE AGAIN. 00541000
- SPACE 00542000
- NOT3340 DS 0H @V56BDA8 00543000
- MVC GO(8),ON3330 CHANGE CCW'S FOR 2305 @V2A2029 00544000
- CLC INDATA(7),=C'2305-1 ' IS IT 2305 MODEL 1 ? @VM08604 00545000
- MVC HIVALUE,=H'47' HI CYL ADDRESS 00546000
- MVI RECVALUE,X'18' HIGHEST RECORD 00547000
- MVI TYPE,X'51' MAKE TYPE 2305 M1 00548000
- BE DISK YES, BRANCH 00549000
- CLC INDATA(7),=C'2305-2 ' IS IT 2305 MODEL 2 ? @VM08604 00550000
- MVC HIVALUE,=H'95' HI CYL ADDRESS 00551000
- MVI RECVALUE,X'18' HIGHEST RECORD 00552000
- MVI TYPE,X'52' MAKE TYPE 2305 MODEL 2 00553000
- BNE DEVTYPE NONE-GET TYPE AGAN 00554000
- DISK CLI FLAG,C'F' IS IT FORMAT 00555000
- BE FORMALL YES,GET STARTING CYLINDER 00556000
- B LAB 00557000
- EJECT 00558000
- *********************************************************************** 00559000
- * * * 00560000
- * * PROGRAM CHECK ROUTINE * 00561000
- * * * 00562000
- *********************************************************************** 00563000
- SPACE 1 00564000
- PRCHK STM R0,R15,PCREGS SAVE REGRISTERS 0 TO 15 00565000
- UNPK WORK(9),PROPSW(5) * FILL IN THE PROGRAM 00566000
- UNPK WORK+8(9),PROPSW+4(5) * OLD PSW. 00567000
- TR WORK(16),TTAB-240 * 00568000
- MVC PCMSG+32(16),WORK * 00569000
- LA R4,PCMSG SET PROG CK MESSAGE 00570000
- BAL R14,WMSG WRITE MESSAGE 00571000
- LPSW WTPSW HARD WAIT 00572000
- SPACE 1 00573000
- *********************************************************************** 00574000
- * * * 00575000
- * * MACHINE CHECK ROUTINE * 00576000
- * * * 00577000
- *********************************************************************** 00578000
- SPACE 1 00579000
- MCRTN LA R4,MCMSG SET UP MACH CK MESSAGE 00580000
- BAL R14,WMSG WRITE MESSAGE 00581000
- LPSW WTPSW HARD WAIT 00582000
- SPACE 2 00583000
- LTORG 00584000
- EJECT 00585000
- * LNGCALC - CALCULATES LENGTH OF WORD IN FIELD "INDATA" 00586000
- * CC SET TO 0 IF 0< L'WORD <= 8 00587000
- * AND R4 = LENGTH -1 00588000
- * 00589000
- * ELSE CC ยฌ=0 AND R4 IS UNPREDICTABLE 00590000
- SPACE 00591000
- LNGCALC EQU * @VA05542 00592000
- ST R14,REGSAV SAVE CALLERS RETURN ADDRESS @VA05542 00593000
- OC INDATA(8),BLANKS8 SET TO UPPER CASE OR BLANKS @VA05542 00594000
- OC INDATA+8(2),BLANKS8 ..... @VA05542 00595000
- LA R14,INDATA SCAN FOR L'INPUT-DATA @VA05542 00596000
- LA R4,9 MAX LENGTH +1 @VA05542 00597000
- SCNWRD CLI 0(R14),X'40' BLANK ? @VA05542 00598000
- BE ENDSCN IF SO, END OF WORD @VA05542 00599000
- LA R14,1(,R14) NEXT BYTE PLEASE ..... @VA05542 00600000
- BCT R4,SCNWRD CONTINUE SCAN ..... @VA05542 00601000
- B EXCC1 GT 8, EXIT CC ยฌ= 0 @VA05542 00602000
- ENDSCN LR R14,R4 SAVE RESIDUAL LENGTH @VA05542 00603000
- LA R4,8 CALC LENGTH (-1) @VA05542 00604000
- SR R4,R14 LENGTH (-1) @VA05542 00605000
- BM EXCC1 BR IF NOTHING THERE @VA05542 00606000
- EX R4,MVCCOMW MOVE TO WORK AREA @VA05542 00607000
- TM *,X'00' SET CC = 0 @VA05542 00608000
- B LNGEXIT AND RETURN TO CALLER @VA05542 00609000
- EXCC1 TM *,X'FF' SET CC ยฌ= 0 @VA05542 00610000
- LNGEXIT L R14,REGSAV RESTORE CALLERS REGS @VA05542 00611000
- BR R14 AND RETURN ........... @VA05542 00612000
- EJECT 00613000
- *********************************************************************** 00614000
- * * * 00615000
- * * WRITE TO CONSOLE ROUTINE -R4 IS COUNT AND DATA POINTER * 00616000
- * * * 00617000
- *********************************************************************** 00618000
- SPACE 1 00619000
- WMSG CLI CDSW2,X'00' CARD SWITCH OFF? 00620000
- BE WMSG2 YES,BRANCH 00621000
- LA R14,0(,R14) CLEAR HIGH ORDER BYTE ....... @VA05542 00622000
- CL R14,SAVE14 IS R14 THE SAME? 00623000
- BE BADINPUT THE SAME BRANCH 00624000
- ST R14,SAVE14 STORE NEW R14 00625000
- ST R4,SAVE4 SAVE R4 00626000
- WMSG2 LH R10,CONSOL WRITE MESSAGE @V2A2029 00627000
- MVC WCCW+7(1),0(R4) SET DATA LENGTH IN CCW 00628000
- SR R9,R9 ZERO IT 00629000
- IC R9,0(,R4) PICK UP THE LENGTH 00630000
- LA R9,0(R9,R4) AND ADD IT TO THE MSG POINTER 00631000
- LA R4,1(R4) R4 NOW POINTS TO CCW DATA AREA 00632000
- ST R4,WCCW PUT ADDRESS OF DATA AREA IN CCW 00633000
- MVI WCCW,X'09' SET UP TO WRITE WITH CARR RETURN 00634000
- CLI 0(R9),C':' DO I WANT A REPLY 00635000
- BNE *+8 NO- WRITE WITH CARR RETURN 00636000
- MVI WCCW,X'01' SET UP TO WRITE WITHOUT CARR RETURN 00637000
- LA R9,WCCW R9 CONTAINS CCW ADDRESS 00638000
- STARTIO EQU * @V200731 00639000
- BAL R1,GRAPHID GO CHECK FOR GRAPHIC SUPPORT @V200731 00640000
- STARTIO1 EQU * @VM08604 00641000
- XC CSW,CSW CLEAR CSW FIELD @V200731 00642000
- ST R9,CAW SAVE CCW STRING ADDRESS IN CAW @V200731 00643000
- SIO 0(R10) START DEVICE @V2A2029 00644000
- BC 2,WAITIN GO START LOOP AGAIN @V200731 00645000
- BC 4,CSWSTOR GO TEST STATUS @V200731 00646000
- BC 1,NOTOPER GO INDICATE NOT OPERATIONAL @V200731 00647000
- WAITIN EQU * @V200731 00648000
- LPSW WAITCON WAIT FOR CONSOLE TO GIVE @V200731 00649000
- * INTERRUPT 00650000
- NOTOPER EQU * @V200731 00651000
- OI PARM2,X'80' SET NOT OPERATIONAL INDICATOR @V200731 00652000
- B IRA GO GET DEVICE ADDRESS @V200731 00653000
- CSWSTOR EQU * @V200731 00654000
- TM CSW+4,BUSY IS THE UNIT BUSY @V200731 00655000
- BZ LOOKATCE NO, GO LOOK AT CE @V200731 00656000
- TM CSW+4,DE+ATTN+CUE+CE IS THIS ENDING STATUS @V200731 00657000
- BNZ STUADD YES, GO STORE ADDRESS @V200731 00658000
- LPSW WAITCON WAIT FOR I/O INTERRUPT @V200731 00659000
- LOOKATCE EQU * @V200731 00660000
- TM CSW+4,CE IS THIS CHANNEL END @V200731 00661000
- BZ STUADD NO, GO STORE ADDRESS @V200731 00662000
- LA R1,8(,R9) GET THE ADDRESS OF THE FIRST @V200731 00663000
- * CCW +8 00664000
- ST R1,CSW SAVE ADDRESS IN CSW @V200731 00665000
- STUADD EQU * @V200731 00666000
- TM CSW+4,CUE IS THIS A CONTROL UNIT END ? @VM08604 00667000
- BO STARTIO1 YES, GO RESTART I/O OPERATION @VM08604 00668000
- STH R10,58 SAVE THE INTERRUPT DEVICE @V2A2029 00669000
- B IRA GO TO INTERRUPT HANDLER @V200731 00670000
- WCCW CCW 1,TITLE,CC+SILI,1 CCW FOR WRITING TO CONSOLE 00671000
- CCW 3,0,SILI,1 NOP TO ASSURE COMPLETION 00672000
- EJECT 00673000
- *********************************************************************** 00674000
- * * * 00675000
- * * READ CONSOLE INPUT R5 CONTAINS COUNT * 00676000
- * * * 00677000
- *********************************************************************** 00678000
- SPACE 1 00679000
- RMSG TM CDSW2,X'FF' IS CARD SWITCH ON ? 00680000
- BO GETDATA YES, BRANCH 00681000
- LH R10,CONSOL R10 CONTAINS CONSOLE ADDRESS @V2A2029 00682000
- XC INDATA(80),INDATA CLEAR ROOM ENOUGH TO WORK @VM08604 00683000
- LA R9,RCCW PUT CCW ADDRESS INTO CAW 00684000
- B STARTIO GO ISSUE SIO @V200731 00685000
- GETDATA XC INDATA+1(12),INDATA+1 CLEAR BUT 1ST POSITION 00686000
- CLC SAVE4,=A(FORA) IS IT FORMAT OR ALLOCATE? 00687000
- MVC INDATA(8),CDFORA MOVE IN FORMAT OR ALLOCATE 00688000
- BE GETBACK YES,BRANCH 00689000
- CLC SAVE4,=A(ADDRESS) DEVICE ADDRESS 00690000
- MVC INDATA(8),CDADD PASS DATA CONSOLE READ 00691000
- BE GETBACK YES,BRANCH 00692000
- CLC SAVE4,=A(TYPMSG) IS IT DEV TYPE 00693000
- MVC INDATA(8),CDTYPE PASS DATA CONSOLE READ 00694000
- BE GETBACK YES,BRANCH 00695000
- CLC SAVE4,=A(RDLAB) IS IT LABEL 00696000
- MVC INDATA(8),CDLABEL PASS DATA CONSOLE READ 00697000
- BE GETBACK YES,BRANCH 00698000
- CLC SAVE4,=A(STCYL) IS IT START CYL? 00699000
- MVC INDATA(8),CDSTART PASS DATA CONSOLE READ 00700000
- BE GETBACK YES,BRANCH 00701000
- CLC SAVE4,=A(ENDCYL) IS IT END CYL? 00702000
- MVC INDATA(8),CDLAST PASS DATA CONSOLE READ 00703000
- BE GETBACK YES,BRANCH 00704000
- CLC SAVE4,=A(ALMSG1) IS IT ALLOCATION? 00705000
- MVC INDATA(4),CDFORA MOVE ALLOCATION TYPE 00706000
- MVC INDATA+5(3),CDADD MOVE IN ALLO START CYL 00707000
- MVC INDATA+9(3),CDTYPE MOVE IN ALLOCATION END CYL 00708000
- BE GETBACK YES,BRANCH 00709000
- B BY NO RESPONSE NEEDED 00710000
- GETBACK ST R14,REGSAV SAVE R14 00711000
- MVC ANSWER,INDATA SET UP INDATA TO PRINT 00712000
- LA R4,RESPONSE ADDRESS OF MESSAGE INTO R4 00713000
- BAL R14,WMSG2 WRITE MESSAGE 00714000
- L R14,REGSAV RESTORE R14 00715000
- BY LA R14,8(R14) UP R14 TO BYPASS TEST FOR UE 00716000
- BR R14 BRANCH BACK 00717000
- EJECT 00718000
- ******************************************************************** 00719000
- GRAPHID EQU * @V200731 00720000
- TM PARM,PARMGRP IS THE GRAPHIC INDICATOR ACTIVE ?@V200731 00721000
- BCR 8,R1 NO, GO START THE I/O REQUEST @V200731 00722000
- STM R14,R5,GRAPHSAV SAVE THE REGISTERS @V200731 00723000
- LR R4,R9 GET THE ADDRESS OF THE CCW STRING@V200731 00724000
- GETCCW EQU * @V200731 00725000
- LH R3,6(R4) GET THE DATA COUNT FROM THE CCW @V200731 00726000
- STM R3,R4,SAVEAREA SAVE THE DATA REGISTERS @V200731 00727000
- NI PARM,X'FF'-(PARMREA+PARMNDA) CLEAR THE READ @V200731 00728000
- * REQUEST 00729000
- * AND NO DATA INDICATOR 00730000
- LA R2,5 SET THE LOOP COUNT @V200731 00731000
- LA R14,TABLGRAP GET THE ADDRESS OF THE COMMAND @V200731 00732000
- * OP TABLE 00733000
- ICM R5,1,0(R4) GET THE OP CODE @V200731 00734000
- CCWEXEC EQU * @V200731 00735000
- EX R5,CLIP TEST THE COMMAND OP CODE WITH @V200731 00736000
- * TABLE CODE 00737000
- BE GRAPHADD YES, FOUND THE COMMAND OP CODE @V200731 00738000
- LA R14,4(R14) UPDATE THE ADDRESS IN THE TABLE @V200731 00739000
- BCT R2,CCWEXEC GO TEST THE NEXT OP CODE @V200731 00740000
- B STMSG INVALID OP CODE - GO EXIT @V200731 00741000
- CLIP CLI 0(R14),X'00' TEST THE OP CODE IN THE TABLE @V200731 00742000
- GRAPHADD EQU * @V200731 00743000
- ICM R2,7,1(R14) GET THE ADDRESS OF THE OP CODE @V200731 00744000
- * ROUTINE 00745000
- BR R2 GO TO THE ROUTINE @V200731 00746000
- SPACE 2 00747000
- READ66 EQU * @V200731 00748000
- OI PARM,PARMREA+PARMATT INDICATE READ AND ATTENTION@V200731 00749000
- * REQUESTS 00750000
- LA R14,GRAPHIC0 RETURN ADDRESS FROM I/O HANDLER @V200731 00751000
- XC BLNKLINE(140),BLNKLINE CLEAR THE READ AREA @VM08604 00752000
- MVI CSW+4,X'00' CLEAR THE CSW STATUS @V200731 00753000
- XC RDMIDATA(6),RDMIDATA CLEAR THE READ DATA FIELD @V200731 00754000
- MVC CPXYSTAT(20),REALABEL @V200731 00755000
- LA R9,REQREAD GET THE ADDRESS OF THE CHANNEL @V200731 00756000
- * PROGRAM 00757000
- TM PARM,PARM327 IS THIS A 3270 GRAPHIC ? @V200731 00758000
- BCR 8,R1 NO, GO ISSUE SIO @V200731 00759000
- LA R9,REQREAD1 GET THE ADDRESS OF THE CHANNEL @V200731 00760000
- * PROGRAM 00761000
- BR R1 GO TO THE I/O HANDLER @V200731 00762000
- SPACE 2 00763000
- WRT66 EQU * @V200731 00764000
- MVC CPXYSTAT(20),RUNLABEL @V200731 00765000
- TM PARM,PARM327 IS THIS A 3270 GRAPHIC ? @V200731 00766000
- BO YES3270 YES, GO TO 3270 SUPPORT @V200731 00767000
- MVC WRT3066+1(3),1(R4) GET THE MESSAGE ADDRESS @V200731 00768000
- STH R3,WRT3066+6 SAVE THE DATA COUNT IN THE CCW @V200731 00769000
- LA R9,WRTCRTXY GET THE ADDRESS OF THE CHANNEL @V200731 00770000
- * PROGRAM 00771000
- TM PARM,PARMCLE IS THE ERASE INDICATOR ON ? @V200731 00772000
- BZ GRAPWRT NO, GO TO SIO SECTION @V200731 00773000
- LA R9,ERSE3066 GET THE ADDRESS OF THE CHANNEL @V200731 00774000
- * PROGRAM 00775000
- MVI SBADDR,X'00' CLEAR LINE POINTER @V200731 00776000
- GRAPWRT EQU * @V200731 00777000
- LA R14,GRAPHIC1 RETURN ADDRESS FROM I/O HANDLER @V200731 00778000
- BR R1 GO TO THE I/O HANDLER @V200731 00779000
- YES3270 EQU * @V200731 00780000
- SR R14,R14 CLEAR REGISTER 14 @V200731 00781000
- LA R9,WRTCRT70 GET THE ADDRESS OF THE CHANNEL @V200731 00782000
- * PROGRAM 00783000
- TM PARM,PARMCLE IS THE ERASE INDICATOR ON ? @V200731 00784000
- BZ NOCL3270 NO, DON'T CLEAR SCREEN @V200731 00785000
- MVI SBADDR,X'00' CLEAR LINE POINTER @V200731 00786000
- LA R9,ERSE3270 GET THE ADDRESS OF THE CHANNEL @V200731 00787000
- * PROGRAM 00788000
- NOCL3270 EQU * @V200731 00789000
- IC R14,SBADDR GET THE CURRENT LINE POINTER @V200731 00790000
- SLL R14,1 SETUP THE INDEX INTO THE TABLE @V200731 00791000
- LH R14,TABLE70(R14) GET THE LINE ADDRESS @V200731 00792000
- STCM R14,3,LAB3270+2 SAVE THE CURRENT LINE POINTER @V200731 00793000
- MVC WRTCR70+1(3),1(R4) GET THE MESSAGE ADDRESS @V200731 00794000
- STH R3,WRTCR70+6 SAVE THE BYTE COUNT IN THE CCW @V200731 00795000
- B GRAPWRT GO GET THE RETURN ADDRESS @V200731 00796000
- SPACE 2 00797000
- GRAPHIC1 EQU * @V200731 00798000
- LM R3,R4,SAVEAREA GET THE DATA REGISTERS @V200731 00799000
- NI PARM,X'FF'-PARMCLE CLEAR THE ERASE INDICATOR @V200731 00800000
- SR R2,R2 CLEAR REGISTER 2 @V200731 00801000
- IC R2,SBADDR GET THE Y COORDINATE @V200731 00802000
- LA R2,1(R2) UPDATE THE Y COORDINATE @V200731 00803000
- CH R3,=H'80' IS THE DATA COUNT LONGER THAN 1 @V200731 00804000
- * LINE 00805000
- BNH *+8 NO, GO SAVE Y COORDINATE @V200731 00806000
- LA R2,1(R2) UPDATE THE Y COORDINATE AGAIN @V200731 00807000
- STC R2,SBADDR SAVE THE Y COORDINATE @V200731 00808000
- MH R2,=H'80' GET THE BYTE LENGTH @V200731 00809000
- L R14,=F'2640' GET THE MAX. LENGTH @V200731 00810000
- TM PARM,PARM327 IS THIS A 3270 GRAPHIC ? @V200731 00811000
- BZ TEST3066 NO, GO TEST FOR END OF CRT @V200731 00812000
- L R14,MAXLEN GET THE MAX. LEN FOR 3270/3278 @V60A6B6 00813000
- TEST3066 EQU * @V200731 00814000
- CR R2,R14 IS THE Y COORDINATE AT THE END @V200731 00815000
- * OF THE 00816000
- * CRT 00817000
- BL RETWORD NO, CHECK FOR CMD CHAINING @VA08599 00818000
- OI PARM,PARMATT SET THE ATTENTION REQUEST @V200731 00819000
- MVI CSW+4,X'00' CLEAR THE CSW STATUS @V200731 00820000
- MVC CPXYSTAT(20),MORLABEL @V200731 00821000
- LA R14,GRAPHIC3 RETURN ADDRESS FROM I/O HANDLER @V200731 00822000
- LA R9,CRTWORD GET THE ADDRESS OF THE CHANNEL @V200731 00823000
- * PROGRAM 00824000
- TM PARM,PARM327 IS THIS A 3270 GRAPHIC ? @V200731 00825000
- BCR 8,R1 NO, GO ISSUE SIO @V200731 00826000
- LA R9,MORECCW1 GET THE ADDRESS OF THE CHANNEL @V200731 00827000
- * PROGRAM 00828000
- BR R1 GO ISSUE SIO @V200731 00829000
- GRAPHIC3 EQU * @V200731 00830000
- TM STAT,ATTN IS THE ATTENTION FLAG ACTIVE ? @VM08604 00831000
- BZ GRAPPSW NO, GO WAIT FOR AN ATTENTION @V200731 00832000
- * INTERRUPT 00833000
- NI PARM,X'FF'-PARMATT CLEAR THE ATTENTION INDICATOR@V200731 00834000
- CANCEL1 EQU * @V200731 00835000
- LM R3,R4,SAVEAREA GET THE DATA REGISTERS @V200731 00836000
- MVI SBADDR,X'00' SET THE Y COORDINATE TO ZERO @V200731 00837000
- MVC CPXYSTAT(20),RUNLABEL CRT DISPLAY RUN STATUS @V200731 00838000
- LA R9,CNCL3066 GET THE ADDRESS OF THE CHANNEL @V200731 00839000
- * PROGRAM 00840000
- TM PARM,PARM327 IS THIS A 3270 GRAPHIC ? @V200731 00841000
- BZ RETURNCN NO, GO GET RETURN ADDRESS @V200731 00842000
- LA R9,CNCL3270 GET THE ADDRESS OF THE CHANNEL @V200731 00843000
- * PROGRAM 00844000
- RETURNCN EQU * @V200731 00845000
- LA R14,READ66 GET THE ADDRESS OF THE READ @V200731 00846000
- * SECTION 00847000
- TM PARM,PARMREA IS THIS A READ REQUEST ? @V200731 00848000
- BCR 1,R1 YES, GO TO THE I/O HANDLER @V200731 00849000
- LA R14,RETWORD RETURN ADDRESS FROM I/O HANDLER @V200731 00850000
- BR R1 GO TO THE I/O HANDLER @V200731 00851000
- SPACE 1 00852000
- GRAPHIC0 EQU * @V200731 00853000
- TM STAT,ATTN IS THE ATTENTION FLAG ACTIVE ? @VM08604 00854000
- BO GRAPATTN YES, GO SETUP CCW FOR READ @V200731 00855000
- * MANUAL INPUT 00856000
- GRAPPSW EQU * @V200731 00857000
- LPSW WAITCON GO WAIT FOR INTERRUPT @V200731 00858000
- SPACE 1 00859000
- GRAPATTN EQU * @V200731 00860000
- LM R3,R4,SAVEAREA GET THE DATA REGISTERS @V200731 00861000
- NI PARM,X'FF'-PARMATT CLEAR ATTENTION REQUEST @V200731 00862000
- TM PARM,PARM327 IS THIS A 3270 GRAPHIC ? @V200731 00863000
- BO YES3270A YES, GO TO 3270 SUPPORT @V200731 00864000
- STH R3,RD3066DA+6 STORE THE COUNT IN THE CCW @V200731 00865000
- MVC RD3066DA+1(3),1(R4) MOVE THE ADDRESS OF THE READ@V200731 00866000
- * BUFFER INTO THE CCW 00867000
- LA R9,RDMI3066 GET THE ADDRESS OF THE CHANNEL @V200731 00868000
- * PROGRAM 00869000
- RETURNAD EQU * @V200731 00870000
- LA R14,RET66MI RETURN ADDRESS FROM I/O HANDLER @V200731 00871000
- BR R1 GO TO THE I/O HANDLER @V200731 00872000
- YES3270A EQU * @V200731 00873000
- LA R14,6(R3) ADD 6 T0 THE TOTAL COUNT @V200731 00874000
- STH R14,RD3270DA+6 STORE THE COUNT IN THE CCW @V200731 00875000
- LA R14,BLNKLINE GET THE ADDRESS OF THE BUFFER @V200731 00876000
- STCM R14,7,RD3270DA+1 MOVE THE ADDRESS OF THE READ @V200731 00877000
- * BUFFER INTO THE CCW 00878000
- LA R9,RDMI3270 GET THE ADDRESS OF THE CHANNEL @V200731 00879000
- * PROGRAM 00880000
- B RETURNAD GO GET THE RETURN ADDRESS @V200731 00881000
- SPACE 2 00882000
- RET66MI EQU * @V200731 00883000
- LM R3,R4,SAVEAREA GET THE DATA REGISTERS @V200731 00884000
- MVC CPXYSTAT(20),RUNLABEL CRT DISPLAY RUN STATUS @V200731 00885000
- LA R9,CRTWORD GET THE ADDRESS OF THE CHANNEL @V200731 00886000
- * PROGRAM 00887000
- LA R14,RETINPUT RETURN ADDRESS FROM I/O HANDLER @V200731 00888000
- TM PARM,PARM327 IS THIS A 3270 GRAPHIC ? @V200731 00889000
- BO YES3270B YES, GO CHECK 3270 SUPPORT @V200731 00890000
- TM RDMIDATA+2,X'40' DID THE OPERATOR HIT THE @V200731 00891000
- * CANCEL KEY 00892000
- BO CANCEL1 YES, GO CLEAR SCREEN @V200731 00893000
- CLC RDMIDATA(2),SBAREAD DID THE CURSOR MOVE ? @V200731 00894000
- BCR 7,R1 YES, GO WRITE STATUS @V200731 00895000
- OI PARM,PARMNDA SET INDICATOR FOR NO DATA @V200731 00896000
- BR R1 GO WRITE OUT STATUS @V200731 00897000
- YES3270B EQU * @V200731 00898000
- CLI BLNKLINE,X'6E' DID THE OPERATOR HIT THE CANCEL @V200731 00899000
- * KEY 00900000
- BE CANCEL1 YES, GO CLEAR SCREEN @V200731 00901000
- CLI BLNKLINE,X'6D' DID THE OPERATOR HIT THE CLEAR @V200731 00902000
- * KEY 00903000
- BE CANCEL1 YES, GO CLEAR SCREEN @V200731 00904000
- CLI BLNKLINE,X'6C' DID OPERATOR HIT PA1 KEY @V200731 00905000
- BE CANCEL1 YES, GO CLEAR SCREEN @V200731 00906000
- OI PARM,PARMNDA SET INDICATOR FOR NO DATA @V200731 00907000
- CLI BLNKLINE,X'01' DID OPERATOR HIT TEST REQ. KEY @VM08604 00908000
- BE ENT3270 YES, GO WRITE STATUS @VM08604 00909000
- CLI BLNKLINE,X'E6' IS THIS THE CARD READER @VM08604 00910000
- BE ENT3270 YES, GO WRITE STATUS @VM08604 00911000
- CLI BLNKLINE+6,X'00' DATA IN INPUT AREA ? @VM08604 00912000
- BNE DATA3270 YES, GO DISPLAY DATA @VM08604 00913000
- CLC BLNKLINE+1(2),ADDR5 DID CURSOR MOVE? @V60A6B6 00914000
- BE ENT3270 NO @V60A6B6 00915000
- DATA3270 EQU * @VM08604 00916000
- NI PARM,X'FF'-PARMNDA SET INDICATOR FOR NO DATA @V200731 00917000
- ICM R9,7,1(R4) GET ADDRESS OF USER'S BUFFER @V200731 00918000
- BCTR R3,R0 SUBTRACT ONE FROM COUNT (EX @V200731 00919000
- * INSTR.) 00920000
- EX R3,MOV3270 MOVE DATA INTO USER'S BUFFER @V200731 00921000
- ENT3270 EQU * @V200731 00922000
- LA R9,CRTWORD1 GET THE ADDRESS OF THE CHANNEL @V200731 00923000
- * PROGRAM 00924000
- BR R1 GO ISSUE SIO @V200731 00925000
- SPACE 2 00926000
- ********************************************************************* 00927000
- MOV3270 MVC 0(0,R9),BLNKLINE+6 MOVE THE DATA INTO THE @V200731 00928000
- * USER'S BUFFER 00929000
- ********************************************************************* 00930000
- SPACE 2 00931000
- RETINPUT EQU * @V200731 00932000
- LM R3,R4,SAVEAREA GET THE DATA REGISTERS @VM08531 00933000
- TM PARM,PARMNDA IS NO DATA INDICATED ? @VM08531 00934000
- BZ WRT66 NO, GO DISPLAY INPUT ON CRT @VM08531 00935000
- RETWORD EQU * @VM08531 00936000
- TM 4(R4),CC IS COMMAND CHAINING ON ? @VM08531 00937000
- LA R4,8(R4) UPDATE THE CCW ADDRESS TO NEXT @VM08531 00938000
- * CCW 00939000
- BO GETCCW YES, GET DATA COUNT FROM CCW @VM08531 00940000
- LM R14,R5,GRAPHSAV GET CALLER'S REGISTERS @VM08531 00941000
- BR R14 RETURN TO CALLER @VM08531 00942000
- EJECT 00943000
- *********************************************************************** 00944000
- * * * 00945000
- * * CARD AND CONSOLE I/O INTERRUPT ROUTINE 00946000
- * * * 00947000
- *********************************************************************** 00948000
- SPACE 1 00949000
- CONSINT CLC CONSOL(2),58 WAS A CONSOLE DEVICE 00950000
- BNE SELREAD IF NOT CONSOLE BRANCH 00951000
- MVC STAT(2),CSW+4 SAVE STATUS 00952000
- TIO 0(R10) CLEAR PENDING STATUS @V2A2029 00953000
- BC 2,*-4 LOOP IF BUSY @VA03149 00954000
- OC STAT(2),CSW+4 SAVE ANY STATUS 00955000
- TM STAT,ATTN IS THIS AN ATTENTION INTERRUPT ? @V200731 00956000
- BNO CONUNITE NO, GO CHECK FOR UNIT EXECPTION @V200731 00957000
- TM PARM,PARMGRP IS THE GRAPHIC SUPPORT ACTIVE ? @V200731 00958000
- BZ STMSG NO, GO CLEAR CARD FLAG @V200731 00959000
- TM PARM,PARMATT IS THIS A ATTENTION REQUEST ? @V200731 00960000
- BCR 1,R14 YES, GO CHECK FOR ATTENTION @V200731 00961000
- * INTERRUPT 00962000
- CONUNITE EQU * @V200731 00963000
- TM STAT,UC WAS THERE A UNIT CHECK 00964000
- BNO GOODSTA NO,BRANCH REG 14 00965000
- OI STAT,UE OR IN UNIT EXCEPTION TOO 00966000
- GOODSTA TIO 0(R10) WAIT FOR DEVICE END @V2A2029 00967000
- BC 7,*-4 LOOP UNTIL CLEAR 00968000
- OC CSW+4(2),STAT PUT BACK ALL THE STATUS 00969000
- TM CSW+4,CUE IS THIS CONTROL UNIT END @VM08604 00970000
- BO STARTIO1 GO RESTART I/O OPERATION @VM08604 00971000
- BR R14 BRANCH BACK 00972000
- SELREAD CLC IPLDEV(2),58 IS IT IPL DEV 00973000
- BNE XWAIT NO,WAIT 00974000
- TM CSW+5,X'BF' CHANNEL ERROR? 00975000
- BNZ ERRORMSG PRINT ERROR MSG 00976000
- TM CSW+4,UC IS IT UNIT CHECK? 00977000
- BO DETEST GO CHECK FOR CHAN END 00978000
- TM CSW+4,UE UNIT EXCEPTION? 00979000
- BO TESTDEV YES,BRANCH 00980000
- CLI CSW+4,CE+DE CH END DEV END? 00981000
- BE VALIDATE YES VALIDATE CARD 00982000
- TM CSW+4,CE IS IT CHANNEL END ONLY? 00983000
- BO DRAINDE GO DRAIN DEV END 00984000
- TM CSW+4,DE DEVICE END ONLY? 00985000
- BO GETCARD YES MUST BE DEV MADE READY 00986000
- B ERRORMSG PRINT ERROR MESSAGE 00987000
- DETEST TM CSW+4,CE IS IT CHAN END 00988000
- BO DRAINDE DRAIN DEVICE END 00989000
- B ERRORMSG PRINT ERROR MESSAGE 00990000
- DRAINDE TIO 0(R10) CLEAR DEVICE END @V2A2029 00991000
- BC 7,*-4 LOOP UNTIL CLEAR 00992000
- B ERRORMSG PRINT ERROR MESSAGE 00993000
- EJECT 00994000
- *********************************************************************** 00995000
- * * 00996000
- * VALIDATE CARD INPUT ROUTINE * 00997000
- * * 00998000
- *********************************************************************** 00999000
- SPACE 1 01000000
- VALIDATE MVI CDSW2,X'FF' TURN ON CARD SW 01001000
- CLI CDINPUT,C'F' FORMAT? 01002000
- BE ALLSCAN YES BRANCH 01003000
- CLI CDINPUT,C'A' ALLOCATE? 01004000
- BE ALLSCAN YES,BRANCH 01005000
- CLI ALLOERR,X'FF' ALLOCATE ERROR? 01006000
- BE GETCARD YES,GET NEXT CARD 01007000
- CLI ALLOSW,X'FF' IS ALLOCATE SW ON? 01008000
- BE ALLSCAN1 YES,BRANCH 01009000
- B BADINPUT BAD INPUT 01010000
- ALLSCAN CLI ALLOSW,X'FF' ALLOCATE OPERATION 01011000
- BNE NOPRINT NO,NO PRINT 01012000
- LA R4,TYPERR PRINT NO END CARD 01013000
- BAL R14,WMSG WRITE MESSAGE 01014000
- NOPRINT MVI ALLOSW,X'00' TURN ALLOCATE SW OFF 01015000
- ALLSCAN1 MVI ALLOERR,X'00' TURN OFF ALLOCATE ERROR SW 01016000
- LA R1,CDFORA-8 R1 ADDRESS OF OUTPUT AREA-8 01017000
- LA R3,CDINPUT R3 POINTS TO CARD INPUT 01018000
- XC CDFORA(56),CDFORA CLEAR OUTPUT AREA 01019000
- NEWFIELD XR R2,R2 R2 TO ZERO 01020000
- MVC DATA,0(R3) SAVE FIRST FIELD 01021000
- CL R1,=A(CDLAST) IS R1 AT LAST FIELD? 01022000
- BE ENDUP YES,BRANCH 01023000
- SCAN CLI 0(R3),C' ' IS IT BLANK? 01024000
- BE FIELD YES,BRANCH 01025000
- CLI 0(R3),C',' IS IT A COMMA? 01026000
- BE FIELD YES,BRANCH 01027000
- LA R2,1(R2) ADD 1 01028000
- LA R3,1(R3) ADD 1 01029000
- B SCAN BRANCH 01030000
- FIELD LA R1,8(R1) POINT TO NEXT FIELD 01031000
- NR R2,R2 IS R2 ZERO? 01032000
- BM NODEFALT BRANCH IF NOT DEFAULT 01033000
- XC DATA,DATA CLEAR DATA 01034000
- LA R2,8(R2) UP LENGTH TO 8 01035000
- NODEFALT BCTR R2,0 SUBTRACT 1 R2 01036000
- EX R2,MOVE PUT DATA IN OUTPUT FIELD 01037000
- CLI 0(R3),C' ' BLANK MEANS END OF INPUT 01038000
- BE ENDUP YES,GO END 01039000
- LA R3,1(R3) ADD 1 TO R3 01040000
- CLI 0(R3),C' ' NEXT POSITION BLANK? 01041000
- BE ENDUP YES,NO MORE DATA 01042000
- B NEWFIELD BRANCH 01043000
- MOVE MVC 0(1,R1),DATA PUT DATA IN OUTPUT 01044000
- ENDUP EQU * @VM08604 01045000
- CLC 0(3,R3),BLANKS8 NEXT 3 POSITION BLANKS ? @VM08604 01046000
- BNE BADINPUT NO,THAT'S BAD INPUT 01047000
- CL R1,=A(CDSTART) IS LABEL ONLY OPERATION? 01048000
- BE LCHECK GO CHECK INPUT 01049000
- CL R1,=A(CDLAST) DID WE FILL LAST FIELD? 01050000
- BE FCHECK YES,CHECK FOR FORMAT 01051000
- CL R1,=A(CDLABEL) IS IT ALLOCATE OPERATOR 01052000
- BE ACHECK CHECK FOR ALLOCATE 01053000
- CLI ALLOSW,X'FF' IS SWITCH ON? 01054000
- BNE BADINPUT NO,BAD 01055000
- CL R1,=A(CDTYPE) LAST FIELD ALLOCATE END 01056000
- BE REREAD YES,ALLOCATE 01057000
- CL R1,=A(CDFORA) IS IT END CARD? 01058000
- BE REREAD YES,BRANCH 01059000
- B BADINPUT NONE OF ABOVE BADINPUT 01060000
- LCHECK CLI CDSTART,C'L' IS LABEL ONLY? 01061000
- BNE BADINPUT NO,BAD INPUT 01062000
- FCHECK CLI CDFORA,C'F' IS IT FORMAT? 01063000
- BE SELECT YES, DO THE TASK 01064000
- B BADINPUT NO,BAD 01065000
- ACHECK CLI CDFORA,C'A' IS IT ALLOCATE? 01066000
- BNE BADINPUT NO,BAD 01067000
- MVI ALLOSW,X'FF' TURN ON ALLOCATE SWITCH 01068000
- B SELECT DO ALLOCATE 01069000
- SPACE 3 01070000
- *********************************************************************** 01071000
- * * 01072000
- * CARD ERROR ROUTINE * 01073000
- * * 01074000
- *********************************************************************** 01075000
- SPACE 1 01076000
- ERRORMSG XC ALLOSW,ALLOSW CLEAR ALLOCATE SWITCH 01077000
- XC CDSW(2),CDSW " CARD " 01078000
- XC ALLOERR,ALLOERR CLEAR ALLOCATE ERROR SWITCH 01079000
- LA R4,IPLERROR IPL ERROR MESSAGE 01080000
- BAL R14,WMSG PRINT MESSAGE 01081000
- B XWAIT WAIT FOR CARD DEVICE INTERRUPT 01082000
- TESTDEV CLI CDSW2,X'FF' IS SW ON? 01083000
- BNE SELECT NO,USE CONSOLE 01084000
- XC CDSW(2),CDSW TURN OFF 2 SWITCHES 01085000
- B NOCARD BRANCH 01086000
- BADINPUT MVC CDSW(2),=X'0000' TURN OFF 2 SWITCHS 01087000
- MVI ALLOERR,X'FF' TURN ON TO FLUSH NEXT GOOD CARD 01088000
- XC ALLOSW,ALLOSW CLEAR ALLOCATE SWITCH 01089000
- LA R4,BAD MSG ADDRESS IN R4 01090000
- BAL R14,WMSG PRINT MSG 01091000
- LA R4,CARDMESS PRINT BAD CARD 01092000
- BAL R14,WMSG PRINT MSG 01093000
- B STMSG BRANCH 01094000
- SPACE 3 01095000
- SPACE 1 01096000
- CONSIRA DS 0D 01097000
- DC X'00040000' 01098000
- DC A(CONSINT) 01099000
- CDFORA DC D'0' FOR OR ALLO 01100000
- CDADD DC D'0' DEV ADDRESS 01101000
- CDTYPE DC D'0' DEV TYPE 01102000
- CDLABEL DC D'0' LABEL 01103000
- CDSTART DC XL8'00' START CYL 01104000
- CDLAST DC XL8'00' END CYL 01105000
- DATA DC D'0' USED TO SAVE FIELD 01106000
- DS 0D 01107000
- CARDCCW CCW 02,CDINPUT,CC+SILI,80 IPL UNIT READ CCW 01108000
- CCW 03,0,SILI,1 NOP 01109000
- SAVE14 DC F'0' 01110000
- SAVE4 DC F'0' SAVE R4 01111000
- STAT DC H'0' 01112000
- SAVSHIFT DC H'0' 01113000
- LOSW DC X'00' 01114000
- CDSW DC X'00' CARD SELECTION SW 01115000
- CDSW2 DC X'FF' SECOND SEL SW 01116000
- ALLOSW DC X'00' ALLOCATION ONLY INDICATOR 01117000
- ALLOERR DC X'00' ALLOCATE ERROR INDIC. 01118000
- CCHHR DC CL5'X' CCHHR DATA FOR MSG 01119000
- HIVALUE DC H'00' 01120000
- BEGIN DC H'00' 01121000
- ENDING DC H'00' 01122000
- PGCOUNT DC F'0' 01123000
- SAVEIT DC 5F'0' 01124000
- SAVFATAL DC 5F'0' 01125000
- WORK DC 10F'0' WORK AREA @V2B3729 01126000
- SAVEBIT DC X'0' 01127000
- DS 0F 01128000
- SEEK0 DC XL7'00' BBCCHHR 01129000
- PCREGS DC 16F'0' 01130000
- SENSE DC CL24' ' SENSE AREA @V2B3729 01131000
- SPACE 1 01132000
- * * CONSOLE READ CCW * 01133000
- SPACE 1 01134000
- RCCW CCW 10,INDATA,CC+SILI,80 READ CCW FOR CONSOLE @VM08604 01135000
- CCW 3,0,SILI,1 NOP 01136000
- CCWSENSE CCW 4,SENSE,SILI,24 SENSE CCW @V2B3729 01137000
- EJECT 01138000
- *********************************************************************** 01139000
- * HEX TO BINARY ROUTINE R9=COUNT R10=OUTPUT R8=INPUT * 01140000
- *********************************************************************** 01141000
- SPACE 1 01142000
- XBIN SR R10,R10 CLEAR REG 10 01143000
- NEWNUM IC R4,0(R8) PUT CHAR INTO R4 01144000
- N R4,=F'15' KEEP ONLY BITS 4TO7 OF 4TH BTYE 01145000
- CLI 0(R8),X'F0' LOWER THAN F0 01146000
- BC 4,ALPHA COULD BE ALPHA 01147000
- CLI 0(R8),X'F9' IS IT GREATER THAN 9 01148000
- BC 2,ERRORX IF GREATER ,ERROR 01149000
- COMMON2 SLL R10,4 SHIFT LEFT 4 BITS 01150000
- OR R10,R4 OR R4 INTO R10 01151000
- LA R8,1(R8) ADD 1 TO REG 11 01152000
- BCT R9,NEWNUM LOOP IF MORE TO CHECK 01153000
- BR R7 GO WHENCE CAME YOU 01154000
- ALPHA CLI 0(R8),X'C1' LOWER THAN A 01155000
- BC 4,ERRORX IF LOWER THAT'S ERROR 01156000
- CLI 0(R8),X'C6' IS NUMBER HIGHER THAN F 01157000
- BC 2,ERRORX IF HIGHER ERROR 01158000
- LA R4,9(R4) CHANGE 1 TO 6 INTO A TO F 01159000
- B COMMON2 BRANCH 01160000
- ERRORX ICM R10,8,FFS8 MAKES R10 NEGATIVE TO SHOW ERROR @VM08884 01161000
- BR R7 GO WHENCE CAME YOU 01162000
- SPACE 1 01163000
- SPACE 1 01164000
- *********************************************************************** 01165000
- * * * 01166000
- * * COME HERE IF FORMAT 2314,2319,3340,3330,3350,2305-1 AND 2305-2 01167000
- * * * 01168000
- *********************************************************************** 01169000
- SPACE 1 01170000
- *********************************************************************** 01171000
- * * STARTING CYLINDER OR LABEL MESSAGE * 01172000
- *********************************************************************** 01173000
- SPACE 1 01174000
- FORMALL MVI LOSW,X'00' INITIAL LABEL ONLY FLAG 01175000
- LA R4,STCYL PUT CYLINDER IN MESSAGE 01176000
- BAL R14,WMSG WRITE MESSAGE 01177000
- BAL R14,RMSG READ RESPONSE 01178000
- TM CSW+4,UE CANCEL OR UNIT CHECK 01179000
- BO FORMALL YES,TRY AGAN 01180000
- CLI INDATA,X'00' WAS IT EOB 01181000
- MVC BEGIN,=X'0000' SET UP DEFAULT 01182000
- BE NEXT IF DEFAULT GO ON 01183000
- BAL R14,LNGCALC GET WORD LENGTH @VA05542 01184000
- BNZ FORMALL IF LENGTH = 0 OR GT 8, TRY AGAIN @VA05542 01185000
- EX R4,TSTLABL IS IT LABEL ? @VA05542 01186000
- BE LAB YES,GO TO LABEL 01187000
- MVC MASKB(3),MASKA SET UP F0'S IN MASKB 01188000
- NC MASKB(3),INDATA AND F0'S WITH INDATA 01189000
- CLC MASKB(3),MASKA IS MASK ALL NUMERIC 01190000
- BNE FORMALL NO,TRY AGAN 01191000
- CLI INDATA+3,X'40' ANYTHING EXTRA? @VM08604 01192000
- BNE FORMALL YES - DO IT OVER AGAIN. @VM08604 01193000
- PACK FIELDA+6(2),INDATA(3) IF ALL NUMERIC PACK INDATA 01194000
- CVB R7,FIELDA CONVERT TO BINARY 01195000
- CH R7,HIVALUE IS START CYL HIGHER THAN LAST 01196000
- BH FORMALL YES,ERROR 01197000
- STH R7,BEGIN BEGIN=CYL START ADDRESS 01198000
- SPACE 3 01199000
- *********************************************************************** 01200000
- * END OF CYLINDER MESSAGE ROUTINE * 01201000
- *********************************************************************** 01202000
- SPACE 1 01203000
- NEXT LA R4,ENDCYL USE END CYL MESSAGE 01204000
- BAL R14,WMSG PRINT MESSAGE 01205000
- BAL R14,RMSG READ RESPONSE 01206000
- TM CSW+4,UE CANCEL KEY OR UNIT CHECK 01207000
- BO NEXT YES,TRY AGAN 01208000
- CLI INDATA,X'00' WAS DEFAULT SET 01209000
- MVC ENDING,HIVALUE SAVE HIGHEST DEFAULT VALUE 01210000
- BE LIMITS BRANCH IF DEFAULT 01211000
- MVC MASKB(3),MASKA PUT F0'S INTO MASKB 01212000
- NC MASKB(3),INDATA AND INDATA WITH F0'S 01213000
- CLC MASKB(3),MASKA IS INDATA ALL NUMREIC 01214000
- BNE NEXT NO, TRY AGAN 01215000
- OC INDATA(4),BLANKS8 CONVERT TO UPPER CASE @VM08604 01216000
- CLI INDATA+3,X'40' ANYTHING EXTRA? @VM08604 01217000
- BNE NEXT YES - WE DON'T WANT IT... @VM08604 01218000
- PACK FIELDA+6(2),INDATA(3) PACK INDATA 01219000
- CVB R7,FIELDA CONVERT INDATA INTO BINARY 01220000
- CH R7,HIVALUE END BEYOND LAST CYL? 01221000
- BH NEXT YES,TRY AGAN 01222000
- STH R7,ENDING SAVE ENDING ADRESS 01223000
- LIMITS CLC BEGIN,ENDING IS BEGINING HIGHER THAN END 01224000
- BH NEXT YES,-ERROR- TRY AGAN 01225000
- SPACE 1 01226000
- *********************************************************************** 01227000
- * * ASK FOR LABEL INFORMATION * 01228000
- *********************************************************************** 01229000
- SPACE 1 01230000
- LAB MVC LOSW(1),INDATA CHECK FIRST BYTE INDATA SAVED 01231000
- LAB2 LA R4,RDLAB REQUEST VOLUME LABEL 01232000
- BAL R14,WMSG WRITE MESSAGE 01233000
- BAL R14,RMSG READ RESPONSE 01234000
- TM CSW+4,UE CANCEL OR UNIT CHECK 01235000
- BO LAB2 YES,TRY AGAN 01236000
- OC INDATA(7),BLANKS8 CONVER TO UPPER CASE @VM08604 01237000
- CLI INDATA+6,X'40' TOO MUCH DATA ENTER ? @VM08604 01238000
- BNE LAB2 YES,BRANCH 01239000
- CLI INDATA,C' ' FIRST BYTE BLANK 01240000
- BE LAB2 YES- ERROR GO DO IT AGAN 01241000
- EJECT 01242000
- *********************************************************************** 01243000
- * * LABEL ONLY ROUTINE * 01244000
- * * PRINT LABELING COMPLETE * 01245000
- *********************************************************************** 01246000
- SPACE 1 01247000
- XC SEEKA(6),SEEKA CLEAR CCW DATA AREA FOR R3 @V56BDA8 01248000
- MVC CPLABEL,=X'009596958500' PLUG IN LOWER CASE LABEL 'NONE' 01249000
- LA R9,LBLREC PUT LABEL CCW ADDRESS INTO R9 01250000
- ST R9,CAW LABEL CCW ADDRESS INTO CAW 01251000
- LH R5,DSKADD DEVICE ADDRESS INTO R5 01252000
- TIO 0(R5) CLEAR STATUS OF DEVICE 01253000
- BNZ *-4 IF NOT CLEAR TRY AGAN 01254000
- SIO 0(R5) START DEVICE 01255000
- TIO 0(R5) IS DEVICE DONE 01256000
- BNZ *-4 NO,TRY AGAN 01257000
- CLI LOSW,C'L' LABEL ONLY? 01258000
- BE LABONLY YES BRANCH 01259000
- CLI FLAG,C'A' IS IT ALLOCATE? @V56BDA8 01260000
- BE LABMATCH VERIFY LABELS IF ALLOCATE @V56BDA8 01261000
- CLC BEGIN,=X'0000' IS IT REGULAR FORMAT? @V56BDA8 01262000
- BE FMT YES...CONTINUE @V56BDA8 01263000
- LABMATCH CLC CPLABEL,INDATA DO LABELS MATCH @V56BDA8 01264000
- BNE LABELBAD NO,BRANCH 01265000
- CLI FLAG,C'F' FORMAT? 01266000
- BE REGFORM1 YES,BRANCH 01267000
- B ALLOCATE MUST BE ALLOCATE 01268000
- LABELBAD MVC WRONG+37(6),INDATA SET UP LABEL 01269000
- MVC WRONG+26(6),CPLABEL SET UP LABEL 01270000
- LA R4,WRONG PRINT WRONG LABEL 01271000
- BAL R14,WMSG PRINT MESSAGE 01272000
- CLI CDSW2,X'FF' CARD SWITCH ON? 01273000
- BE BADINPUT YES,BRANCH 01274000
- B LAB2 BRANCH 01275000
- LABONLY MVC CPLABEL(6),INDATA MOVE IN NEW LABEL NAME 01276000
- CLC =C'CMS=',OSLABEL IS THIS A CMS DISK 01277000
- BE *+10 YES- BRANCH 01278000
- MVC OSLABEL(4),VOL1 NO- MAKE IT A VOL1 LABLE 01279000
- LH R5,DSKADD DEVICE ADDRESS INTO R5 01280000
- LA R9,LABWRITE LABEL CCW CHAIN INTO R9 01281000
- ST R9,CAW CAW POINTS TO LABEL CCW'S 01282000
- SSM =4X'00' DISABLE I/O INTERRUPTS @VA10831 01282500
- TIO 0(R5) IS DEVICE AVAILABLE? 01283000
- BC 2,*-4 LOOP IF BUSY 01284000
- SIO 0(R5) WRITE OUT THE LABEL 01285000
- TIO TIO 0(R5) DRAIN THE INT 01286000
- BC 2,*-4 LOOP UNTIL DONE 01287000
- BC 8,*-8 LOOP FOR CSW @VA10831 01287500
- BC 1,TIOCC3 CC=3 - HELP . . . @VA00923 01288000
- TM CSW+5,X'FF' ANY BAD CHANNEL STATUS 01289000
- BNZ VOL1ERR YES- FATAL 01290000
- TM CSW+4,UC UNIT CHECK 01291000
- BO VOL1ERR YES- BRANCH 01292000
- TM CSW+4,CE CHANNEL END 01293000
- BO VOL1OK YES- BRANCH ALL OK 01294000
- SSM =4X'FF' ALLOW I/O INTERRUPTS @VA10831 01295100
- VOL1ERR BAL R7,SENSIT GET THE SENSE DATA 01296000
- MVC CCHHR(5),R3VOL1 MOVE IN THE CCHHR DATA 01297000
- BAL R7,SENSIT2 TYPE THE MSG 01298000
- B FATAL 01299000
- VOL1OK MVC LABELOK+14(6),CPLABEL MOVE THE LABEL INTO THE MSG 01300000
- LA R4,LABELOK POINT TO THE MSG 01301000
- BAL R14,WMSG AND GO TYPE IT 01302000
- B GETCARD GO PROMPT FOR ANOTHER TASK 01303000
- SPACE 01304000
- TIOCC3 EQU * @VA00923 01305000
- LA R4,WR1 TELL HIM ABOUT PROBLEMS @VA00923 01306000
- BAL R14,WMSG . . . @VA00923 01307000
- B GETCARD SEE IF THERE'S ANY MORE WORK. @VA00923 01308000
- EJECT 01309000
- *********************************************************************** 01310000
- * * CCW'S FOR READING LABEL * 01311000
- *********************************************************************** 01312000
- DS 0D 01313000
- LBLREC CCW 7,SEEKA,CC,6 01314000
- CCW 31,FILEMASK,CC,1 01315000
- CCW 49,R3VOL1,CC+SILI,5 FIND REC 3 VOL1 LABEL RECO 01316000
- CCW 8,*-8,0,0 01317000
- CCW 6,OSLABEL,SILI+CC,80 READ LABELS 01318000
- CCW 49,R4ALLOC,CC+SILI,5 SEARCH ID EQUAL 01319000
- CCW 08,*-8,0,0 TIC 01320000
- CCW 06,TABLE,SILI,1024 READ ALLOCATION TABLE 01321000
- LABWRITE CCW 7,SEEKA,CC,6 SEEK 01322000
- CCW 31,FILEMASK,CC,1 SET FILE MASK 01323000
- CCW 49,R3VOL1,CC+SILI,5 FIND VOL1 LABEL RECORD 01324000
- CCW 8,*-8,0,0 TIC 01325000
- CCW 5,OSLABEL,SILI,80 WRITE LABEL 01326000
- SPACE 01327000
- FMT CLC CPLABEL,=X'009596958500' PROB. READING R3? @V56BDA8 01328000
- BE REGFORM YES, DON'T SAVE ALT. TRK INFO @V56BDA8 01329000
- CLC OSLABEL(3),=CL3'VOL' STD. LABEL @V56BDA8 01330000
- BNE REGFORM NO, SKIP CMS LABEL @V56BDA8 01331000
- SPACE 01332000
- * IBCDASDI UTILITY KEEPS THE CCHH FOR THE NEXT AVAILABLE 01333000
- * ALT. TRK. AND THE NUMBER OF ALT. TRKS IN THE FMT4 DSCB 01334000
- * WE DON'T WANT TO DESTROY THIS INFORMATION WHEN CP WRITES 01335000
- * ITS FORMAT4 DSCB; THE INFO WILL BE SAVED AND INCLUDED IN 01336000
- * THE FORMAT4 DSCB WRITTEN BY DMKFMT. IBCDASDI AND DMKFMT 01337000
- * WRITE R3 WITH "VOL1". CMS FORMAT WRITES NO FMT4 DSCB 01338000
- * AND THEREFORE THERE IS NO POINT IN LOOKING FOR THE INFO. 01339000
- SPACE 01340000
- TM TYPE,TYP3330+TYP334X+TYP3350 3330,334X,3350 ? @VA13248 01341500
- BZ REGFORM NO, THEN REG FORMAT @VA13248 01342500
- CLC VTOCBEG,=F'0' VERIFY VTOC ADDRESS @V56BDA8 01343000
- * IF ZEROS OR BELOW CCHHR = 0000000005, DON'T READ 01344000
- * IBCDASDI DOES NOT PERMIT VTOC ON TRACK 0. 01345000
- * CP'S DMKFMT PLACES VTOC ON CCHHR = 0000000005 01346000
- BNE READFMT4 GO AHEAD AND READ @V56BDA8 01347000
- CLI VTOCR,X'05' CANNOT BE LESS THAN R5 @V56BDA8 01348000
- BL REGFORM NO POINT IN READING FMT4 @V56BDA8 01349000
- READFMT4 LA R9,RDFMT4 CH. PGM. TO RD FMT4 @V56BDA8 01350000
- MVC SEEKA+2(4),VTOCBEG SETUP THE SEEK ADDRESS @V56BDA8 01351000
- ST R9,CAW SETUP FOR THE CHANNEL PROGRAM @V56BDA8 01352000
- TIO 0(R5) MAKE SURE DEVICE IS READY @V56BDA8 01353000
- BNZ *-4 ... @V56BDA8 01354000
- SIO 0(R5) READ FMT4 @V56BDA8 01355000
- TIO 0(R5) ... @V56BDA8 01356000
- BNZ *-4 ... @V56BDA8 01357000
- CLC NEXTCCHH(20),HIVALUE NEXT AVAILABLE ALT TRK @VA13248 01358500
- * BETTER BE IN ALT CYL 01359500
- BL REGFORM NO, DON'T SAVE INFO @V56BDA8 01365000
- SAVEALT MVC ALTCCHH,NEXTCCHH SAVE NEXT AVAIL. ALT TRK & @V56BDA8 01366000
- * NO. OF ALT. TRKS FOR CP'S FMT4 01367000
- *********************************************************************** 01368000
- * * COME HERE WHEN FORMAT * 01369000
- * * PRINT MSG FORMATING STARTED * 01370000
- *********************************************************************** 01371000
- SPACE 1 01372000
- REGFORM MVC OSLABEL(96),SAVEVOL1 RESTORE TO IPL'ED DATA 01373000
- MVC FMT4DATA(96),SAVEFMT4 RESTORE TO CP'S FMT4 @V56BDA8 01374000
- MVC NEXTCCHH(6),ALTCCHH MOVE NEXT AVAIL ALT TRK & @V56BDA8 01375000
- * NO. OF ALT. TRKS TO CP'S FMT4 01376000
- XC ALTCCHH(6),ALTCCHH CLEAR IN CASE SECOND PASS @V56BDA8 01377000
- XC TABLE(256),TABLE CLEAR ALLOCATION TABLE 01378000
- XC TABLE1(256),TABLE1 " 01379000
- XC TABLE2(256),TABLE2 " 01380000
- XC TABLE3(256),TABLE3 " 01381000
- LH R4,HIVALUE POINT TO THE END OF ALLOCATION TABLE 01382000
- LA R4,TABLE+1(R4) * 01383000
- MVI 0(R4),X'FF' TURN ON THE END OF TABLE FLAG 01384000
- REGFORM1 MVC CPLABEL(6),INDATA MOVE IN LABEL 01385000
- LA R4,PROGFOR SET UP MESSAGE FORMAT STARTED 01386000
- BAL R14,WMSG WRITE MESSAGE 01387000
- MVI ONETIME+1,X'80' SET UP FOR EQUAL COMPARE 01388000
- MVI ALTFLAG,0 INIT FLAG FOR DASD I/O INT. HNDLR@V56BDA8 01389000
- MVC IONPSW(8),NEWPSW CHANGE NEW IO PSW 01390000
- XC PGCOUNT(4),PGCOUNT CLEAR FIELD 01391000
- GOA1 XC ERCOUNT(4),ERCOUNT CLEAR ERROR COUNT 01392000
- MVC SEEKA(118),WKSEEK RESTORE TO STARTING SEEKS @V2A2029 01393000
- MVC REC1(184),RNDATA RESTORE DASD RECORD FIELDS @V304498 01394000
- CLI TYPE,TYP3350 MODIFY FOR 3350 FILLER LENGTH @V304498 01395000
- BNE GOTST40 NO, BYPASS FILLER MODIFICATIONS @V304498 01396000
- LA R7,11 NUMBER OF FILLER CCW'S @V304498 01397000
- LA R5,RECX1+6 FIRST FILLER CCW @V304498 01398000
- LA R4,300 ACTUAL FILLER LENGTH @V304498 01399000
- FILL3350 STH R4,0(0,R5) MODIFY FILLER CCW @V304498 01400000
- LA R5,16(R5) UPDATE FILLER CCW ADDRESS @V304498 01401000
- BCT R7,FILL3350 PROCESS ALL FILLER CCW'S @V304498 01402000
- MVI REC4+3,RECN0 INITIALIZE HEAD NO'S FOR 3350 @V304498 01403000
- MVI RECX4+3,RECN0 . . . @V304498 01404000
- MVI REC7+3,RECN1 . . . @V304498 01405000
- MVI RECX7+3,RECN1 . . . @V304498 01406000
- MVI REC8+3,RECN1 . . . @V304498 01407000
- MVI RECX8+3,RECN1 . . . @V304498 01408000
- MVI REC10+3,RECN2 . . . @V304498 01409000
- MVI RECX10+3,RECN2 . . . @V304498 01410000
- MVI REC11+3,RECN2 . . . @V304498 01411000
- MVI RECX11+3,RECN2 . . . @V304498 01412000
- MVI REC12+3,RECN2 . . . @V304498 01413000
- B GOA2 INITIALIZE SEEK FIELDS @V304498 01414000
- GOTST40 EQU * @V304498 01415000
- CLI TYPE,X'40' 3340 DEVICE TYPE ? @V2A2029 01416000
- BNE GOA2 NO - BRANCH @V2A2029 01417000
- MVI REC3+3,X'01' SET UP HEAD NUMBER FOR 3340 @V2A2029 01418000
- MVI REC4+3,X'01' .. @V2A2029 01419000
- MVI REC5+3,X'02' .. @V2A2029 01420000
- MVI REC6+3,X'02' .. @V2A2029 01421000
- MVI REC7+3,X'03' .. @V2A2029 01422000
- MVI REC8+3,X'03' .. @V2A2029 01423000
- MVI REC9+3,X'04' .. @V2A2029 01424000
- MVI REC10+3,X'04' .. @V2A2029 01425000
- MVI REC11+3,X'05' .. @V2A2029 01426000
- MVI REC12+3,X'05' .. @V2A2029 01427000
- GOA2 MVC R1STUF(96),RNSTUF RESTORE 2314 RECORD FIELDS @V2A2029 01428000
- XC R0STUF,R0STUF CLEAR FIELD 01429000
- LA R7,4 NUMBER OF SEEK FIELDS 3330 @V2A2029 01430000
- CLI TYPE,X'30' IS IT 3330? 01431000
- BE MAIN YES BRANCH 01432000
- LA R7,3 NUMBER OF 3350 SEEK FIELDS @V304498 01433000
- CLI TYPE,TYP3350 IS IT 3350 ? @V304498 01434000
- BE MAIN YES, INITIALIZE SEEK FIELDS @V304498 01435000
- CLI TYPE,X'14' IS IT 2314 2319? 01436000
- LA R7,5 NUMBER OF SEEK FIELDS 2314 2319 @V2A2029 01437000
- BE MAIN YES BRANCH 01438000
- LA R7,4 NUMBER OF SEEK FIELDS 2305 @V2A2029 01439000
- TM TYPE,X'50' 2305 TYPE ? @V2A2029 01440000
- BO MAIN YES - BRANCH @V2A2029 01441000
- LA R7,6 NUMBER OF SEEK FIELDS 3340 @V2A2029 01442000
- MAIN SR R4,R4 CLEAR R4 @V2A2029 01443000
- LH R4,BEGIN GET BEGINNING OR NEW CYL TO SEEK 01444000
- STH R4,SEEK0+2 BEGINNING CYLINDER INTO SEEK0 01445000
- LA R5,SEEKA+2 GET CCHH FIELD ADDRESS 01446000
- *********************************************************************** 01447000
- * * THIS ROUTINE PLUGS CYLINDER OF SEEK FIELD * 01448000
- * * R4=BEGINNING SEEK ADDRESS * 01449000
- *********************************************************************** 01450000
- STORE STH R4,0(R5) FILL IN CYL FOR SEEKA,B,C,D,E 01451000
- LA R5,20(R5) BUMP TO NEXT SEEK FIELD 01452000
- BCT R7,STORE LOOP THRU VALUE IN R7 01453000
- *********************************************************************** 01454000
- * * LOADS RECORD AREA WITH DASD ADDRESS * 01455000
- * * R4 = BEGINNING ADDRESS * 01456000
- *********************************************************************** 01457000
- CLI TYPE,X'14' IS IT 2314 01458000
- BNE REC30 NO,BRANCH 01459000
- LA R5,R1STUF R5 POINTS TO RECORD 1 01460000
- LA R7,12 R7 CONTAINS 12 01461000
- LA R9,FMT2314 R9 POINTS TO 2314 CCWS 01462000
- STR STH R4,0(R5) FILL IN RXSTUF WITH SEEK ADDRESS 01463000
- LA R5,8(R5) R5 POINTS TO NEXT RECORD 01464000
- BCT R7,STR GO THRU 12 TIMES 01465000
- LH R5,DSKADD R5 CONTAINS DEVICE ADDRESS 01466000
- ST R9,CAW CAW POINTS TO CCW CHAIN 01467000
- B STIO START DEVICE 01468000
- REC30 LA R5,REC1 R5 =RECORD FIELDS 01469000
- LA R7,23 SET UP NO. CCW FIELDS TO UPDATE @V304498 01470000
- LA R9,FMT3340 R9 = ADDRESS OF CCWS @V2A2029 01471000
- CLI TYPE,X'40' 3340-35 OR 3340-70 DEVICE ? @V2A2029 01472000
- BE STR YES - BRANCH @V2A2029 01473000
- LA R9,FMT3350 3350 FORMAT CHANNEL PROGRAMS @V304498 01474000
- CLI TYPE,TYP3350 3350 DEVICE ? @V304498 01475000
- BE STR YES, INITIALIZE SEEK ADDRESS @V304498 01476000
- LA R9,FMT3330 R9 = ADRESS OF CCWS 01477000
- TM TYPE,X'50' IS THIS A 2305 1 OR 2 01478000
- BNO STR NO- BRANCH 01479000
- LA R9,FMT2305 YES- POINT TO THE CCW'S 01480000
- B STR BRANCH 01481000
- SPACE 3 01482000
- *********************************************************************** 01483000
- * * * 01484000
- * * COME HERE FROM INTERRUPT ROUTINE IF CORRECT OPERATION * 01485000
- * * * 01486000
- *********************************************************************** 01487000
- SPACE 1 01488000
- RESUMP CLI TYPE,X'14' IS IT 2314 01489000
- BE TEST14 YES,BRANCH 01490000
- CLC REC12+4(1),RECVALUE WAS LAST RECORD WRITTEN? 01491000
- MVC WR57(8),OFF57WRT WRITE 12REC AT A TIME 01492000
- MVC RD57(8),OFF57RD DO NORMAL READ CK IN CCW 01493000
- BE NEWCYL YES,BRANCH 01494000
- CLI TYPE,TYP3330 3330 DEVICE ? @V304498 01495000
- BNE MAIN2 NO, BYPASS 3330 REC 57 TRK CHANGE@V304498 01496000
- CLI REC12+4,X'30' DID I JUST WRITE 48TH REC. 01497000
- BNE MAIN2 NO,BRANCH 01498000
- MVC WR57(8),ON57WRT DO NOT WRITE REC 58 TO 60 01499000
- MVC RD57(8),ON57RD ALTER NOT TO READ CK 58 TO 60 01500000
- MAIN2 LA R4,SEEKA+2 CCHH OF 1ST SEEK IN R4 01501000
- XC ERCOUNT,ERCOUNT CLEAR 01502000
- SPACE 1 01503000
- * UPDATE HEAD NUMBERS IN SEEK CCW'S 01504000
- SPACE 1 01505000
- LA R7,3 LOOP 3 TIMES (3 3350 TRK'S/PASS) @V304498 01506000
- CLI TYPE,TYP3350 3350 DEVICE ? @V304498 01507000
- BE HDUPDATE YES, PROCESS 3350 CCW'S @V304498 01508000
- LA R7,4 LOOP 4 TIMES(4 3330 TRK'S/PASS) @V304498 01509000
- CLI TYPE,X'40' 3340 TYPE ? @V2A2029 01510000
- BNE HDUPDATE NO - BRANCH @V2A2029 01511000
- LA R7,6 LOOP 6 TIMES @V2A2029 01512000
- HDUPDATE L R5,0(R4) CCHH DATA IN R5 01513000
- LA R5,3(,R5) INCREASE HEAD NO. BY 3 (3350) @V304498 01514000
- CLI TYPE,TYP3350 3350 DEVICE ? @V304498 01515000
- BE HEAD3350 YES, INITIALIZE SEEK (3350) @V304498 01516000
- LA R5,1(,R5) INCREASE HEAD NO. TO 4 (3330) @V304498 01517000
- CLI TYPE,X'40' 3340 TYPE ? @V2A2029 01518000
- BNE *+8 NO - BRANCH @V2A2029 01519000
- LA R5,2(R5) UPDATE HD NUMBER BY A TOTAL OF 6 @V2A2029 01520000
- HEAD3350 EQU * @V304498 01521000
- STH R5,2(R4) PUT HEAD NUMBER ONLY 01522000
- LA R4,20(R4) GET NEXT CCHH 01523000
- BCT R7,HDUPDATE LOOP UNTIL 4 HEADS ARE UPDATED 01524000
- LA R4,REC1 ADDESS OF REC FIELDS IN R4 01525000
- LA R7,23 SET UP NO. CCW FIELDS TO MODIFY @V304498 01526000
- B FILLRN 01527000
- TEST14 CLC R8STUF+4(1),RECVALUE WAS IT LAST RECORD WRITTEN 01528000
- BE NEWCYL YES,GO FOR NEW CYLINDER 01529000
- LA R4,SEEKA+2 NO,ADDRESS OF CCHH INTO R4 01530000
- XC ERCOUNT,ERCOUNT CLEAR ERROR COUNT 01531000
- LA R7,5 SET FOR 5 SEEKS 01532000
- FILLSEEK L R5,0(R4) CCHH OF SEEK INTO R5 01533000
- LA R5,5(R5) BUMP HEAD NUMBER BY 5 01534000
- STH R5,2(R4) PUT BACK HEAD NUMBER ONLY 01535000
- LA R4,20(R4) R4 NOW POINTS TO NEXT CCHH 01536000
- BCT R7,FILLSEEK R7=5, LOOP BACK 4 MORE TIMES 01537000
- SPACE 1 01538000
- *********************************************************************** 01539000
- * * UPDATE RECORD NUMBERS -HEAD NUMBERS * 01540000
- *********************************************************************** 01541000
- SPACE 1 01542000
- LA R4,R1STUF PUT ADDRESS OF RECORD 1 INTO R4 01543000
- RECUPDAT LA R7,12 PUT 12 INTO R7 FOR LOOPING 01544000
- FILLRN L R5,0(R4) R5 CONTAINS CCHH 01545000
- SR R6,6 CLEAR R6 01546000
- IC R6,4(R4) PUT RECORD NUMBER INTO R6 01547000
- CLI TYPE,X'14' IS IT 2314 01548000
- BNE NEWCOUNT NO,BRANCH 01549000
- LA R6,8(R6) UP RECORD NUMBER BY 8 01550000
- STC R6,4(R4) PUT NEW RECORD NUMBER BACK 01551000
- LA R5,5(R5) BUMP HEAD NUMBER BY 5 01552000
- MVC CAW(4),=A(FMT2314) SET UP CAW 01553000
- MAIN3 STH R5,2(R4) PUT BACK NEW HEAD NUMBER 01554000
- LA R4,8(R4) UP R4 TO POINT TO NEXT CCHHR 01555000
- BCT R7,FILLRN LOOP BACK MORE TIMES 01556000
- LH R5,DSKADD DEVICE ADDRESS INTO R5 01557000
- B STIO START DEVICE 01558000
- NEWCOUNT LA R6,12(R6) UPDATE REC NUMBER BY 12 01559000
- STC R6,4(R4) PUT NEW RECORD NUMBER BACK 01560000
- LA R5,6(5) INCREASE HEAD NUMBER BY 6 (3340) @V2A2029 01561000
- MVC CAW(4),=A(FMT3340) SET UP CAW (3340) @V2A2029 01562000
- CLI TYPE,X'40' 3340-35 OR 3340-70 DEVICE ? @V2A2029 01563000
- BE MAIN3 YES - BRANCH @V2A2029 01564000
- BCTR R5,0 INCREASE HEAD NUMBER BY 4 @V2A2029 01565000
- BCTR R5,0 6-2=4 @V2A2029 01566000
- MVC CAW(4),=A(FMT3330) SET UP CAW 01567000
- CLI TYPE,TYP3330 3330 DEVICE ? @V304498 01568000
- BE MAIN3 PROCESS NEXT GROUP OF TRACKS @V304498 01569000
- TM TYPE,X'50' IS THIS A 2305 MOD 1 OR 2 01570000
- BNO TST3350 NO, TRY 3350 DEVICE @V304498 01571000
- MVC CAW(4),=A(FMT2305) YES- SET UP CAW 01572000
- B MAIN3 BRANCH 01573000
- TST3350 BCTR R5,0 INCREASE HEAD NUMBER BY 3 @V304498 01574000
- MVC CAW(4),=A(FMT3350) INITIALIZE FOR 3350 CCW'S @V304498 01575000
- B MAIN3 EXECUTE 3350 CCW'S @V304498 01576000
- SPACE 3 01577000
- SPACE 1 01578000
- *********************************************************************** 01579000
- * * * 01580000
- * * ROUTINE TO GO TO NEXT CYLINDER 01581000
- * * * 01582000
- *********************************************************************** 01583000
- SPACE 1 01584000
- NEWCYL CLC SEEKA+2(2),=X'0000' IS IT CYLINDER 0 01585000
- ONETIME BE CHECK0 YES,BRANCH AND NOP THIS BRANCH 01586000
- CLC SEEKA+2(2),ENDING IS IT THE LAST CYLINDER? 01587000
- BE CLEANUP YES,BRANCH 01588000
- SR R4,R4 CLEAR R4 01589000
- LH R4,SEEKA+2 PUT CYL NUMBER INTO R4 01590000
- LA R4,1(R4) INCREASE CYL BY 1 01591000
- STH R4,BEGIN SAVE NEW STARTING CYLINDER 01592000
- B GOA1 GO SEEK NEXT CYLINDER 01593000
- SPACE 1 01594000
- SPACE 1 01595000
- *********************************************************************** 01596000
- * * CHECK FIRST 3 RECORDS OF CYLINDER FOR NO ERROR * 01597000
- * * IF NO ERROR WRITE SPECIAL SYSTEM RECORDS * 01598000
- *********************************************************************** 01599000
- SPACE 1 01600000
- CHECK0 MVI ONETIME+1,X'00' NOP BRANCH AT ONETIME 01601000
- BAL R1,*+4 R1 POINTS TO NEXT INSTRUCTION 01602000
- CLI TYPE,TYP3350 IS DEVICE A 3350 ? @V304498 01603000
- BE CYL03350 YES, TEST FOR ERR REC CYL0 HD0 @V304498 01604000
- TM R0STUF,X'E0' ERR IN REC 1,2,3 ON CYL0 HD0 01605000
- CHECK5 EQU * @V304498 01606000
- BZ OKCYL0 NO - CONTINUE @VA00923 01607000
- BAL R7,SENSIT YES - GET SENSE INFO. @VA00923 01608000
- BAL R7,SENSIT2 PRINT SENSE, CCHHR FOR HIM @VA00923 01609000
- B FATAL AND TELL HIM THE CONDITION'S @VA00923 01610000
- * FATAL 01611000
- CYL03350 TM R0STUF,X'F0' TEST ERR REC 1,2,3,4 ON CYL0 HD0 @V304498 01612000
- B CHECK5 CONTINUE CYL0 HD0 ERROR TEST @V304498 01613000
- OKCYL0 EQU * @VA00923 01614000
- MVI R0STUF,X'E0' SET REC 1,2,3 IN USE @V304498 01615000
- CLI TYPE,TYP3350 IS DEVICE A 3350 ? @V304498 01616000
- BNE CYL0CONT NO, CONTINUE CYL0 PROCESSING @V304498 01617000
- MVI R0STUF,X'F0' SET REC 1,2,3,4 IN USE @V304498 01618000
- CYL0CONT EQU * WRITE CYL0 HD0 SYSTEM RECORDS @V304498 01619000
- LA R9,SPEC2314 R9 CONTAINS ADDRESS OF SPEC CCWS 01620000
- ST R9,CAW CAW CONTAINS ADDRESS OF CCWS 01621000
- CLI TYPE,X'14' IS IT 2314? 01622000
- BE MAIN4 YES, BRANCH 01623000
- MVC CAW(4),=A(SPEC3330) SET CAW FOR CYL 0 TK 0 CCW'S 01624000
- MVI NOP3340,X'1D' WRITE RF3 RECORD CCW OP CODE @VA03284 01625000
- CLI TYPE,TYP334X 3340-35 OR 3340-70 DEVICE? @V56BDA8 01626000
- BNE MAIN4 BRANCH IF NOT @V2A2029 01627000
- MVI NOP3340,X'03' SET RF3 CCW OP-CODE TO NOP @V2A2029 01628000
- MAIN4 MVI SEEKA+5,X'00' SET TO SEK HEAD 0 01629000
- MVI SEEKB+5,X'01' SET TO SEEK HEAD 1 01630000
- LH R5,DSKADD DEVICE ADDRESS INTO R5 01631000
- B STIO START DEVICE 01632000
- SPACE 1 01633000
- SPACE 1 01634000
- *********************************************************************** 01635000
- * * FATAL ROUTINE PRINTS MESSAGE AND STARTS PROMPTING * 01636000
- *********************************************************************** 01637000
- FATAL STM R0,R15,PCREGS SAVE R0 TO R15 01638000
- MVC SAVFATAL(20),IOOPSW SAVE IOOLDPSW,CSW,CAW 01639000
- UNPK WORK(9),SAVFATAL+8(5) UNPK THE CSW @VA00923 01640000
- UNPK WORK+8(9),SAVFATAL+12(5) . . . @VA00923 01641000
- TR WORK(16),TTAB-240 MAKE IT ALL READABLE @VA00923 01642000
- MVC FATLMSG+37(16),WORK MOVE INTO MSG @VA00923 01643000
- LA R4,FATLMSG SET UP FATAL MSG 01644000
- BAL R14,WMSG WRITE MESSAGE 01645000
- B GETCARD YES,BRANCH 01646000
- EJECT 01647000
- *********************************************************************** 01648000
- * * * 01649000
- * * PRINT PAGE ERROR COUNTS ON CONSOLE * 01650000
- * * * 01651000
- *********************************************************************** 01652000
- SPACE 1 01653000
- CLEANUP LA R4,ENDFOR SET UP FOR END OF FORMAT MSG 01654000
- BAL R14,WMSG WRITE MESSAGE 01655000
- L R3,PGCOUNT GET ERROR PAGE COUNT 01656000
- CVD R3,FIELDA CONVERT ERROR COUNT TO DECIMAL 01657000
- OI FIELDA+7,X'0F' MAKE GOOD SIGN 01658000
- UNPK FIELDB+5(3),FIELDA+6(2) UNPACK TO PRINTABLE CHARS 01659000
- MVC PAGE+1(3),FIELDB+5 PUT ERROR COUNT INTO MSG 01660000
- LA R4,PAGE SET UP ERROR PAGE MSG 01661000
- BAL R14,WMSG WRITE MESSAGE 01662000
- B GETCARD YES,BRANCH 01663000
- SPACE 2 01664000
- *********************************************************************** 01665000
- * * * 01666000
- * * START DASD DEVICE ROUTINE * 01667000
- * * * 01668000
- *********************************************************************** 01669000
- SPACE 1 01670000
- STIO MVC CCHHR(5),FFS8 PUT F'S IN HEADER. @VMG0004 01671000
- STIO2 LA R7,100 ERROR RETRY COUNT. @VMG0004 01672000
- START SIO 0(R5) START DEVICE 01673000
- BC 8,XWAIT IF STARTED OK GO WAIT 01674000
- BC 1,TIOCC3 CC = 3, NOTIFY USER @VM01069 01675000
- BC 2,TIORT BUSY @VM01069 01676000
- TM CSW+4,SM+BUSY STATUS MODIFIER AND BUSY @VM01069 01677000
- BO START YES, RETRY @VM01069 01678000
- CLI CSW+4,BUSY DEVICE BUSY (RESERVED) @VA03955 01679000
- BE START LOOP UNTIL RELEASE @VA03955 01680000
- TIORT TIO 0(R5) IF NO START CLEAR STATUS @VM01069 01681000
- BCT R7,START TRY A TOTAL OF 100 TIMES @V2A2029 01682000
- BC 3,TIOCC3 SERIOUS PROBLEMS - LET HIM KNOW @VA00923 01683000
- TM CSW+4,UC DID DEVICE HAVE UNIT CHECK 01684000
- BO STARTER1 NO, ERROR SET UP MSG @VM01069 01685000
- XC SENSE,SENSE CLEAR SENSE AREA @VM01069 01686000
- XC SENSTA(8),SENSTA CLEAR SENSE CSW @VM01069 01687000
- MVI SENSTA+7,X'12' INDICATE 6 SENSE BYTES @VM01069 01688000
- MVC SAVEIT(20),IOOPSW SAVE CSW,CAW, AND IO OLD PSW @VM01069 01689000
- B STARTER2 GO SET UP BOTH ERROR MSG @VM01069 01690000
- STARTER1 BAL R7,SENSIT GET SENSE DATA @VM01069 01691000
- STARTER2 BAL R7,SENSIT2 PRINT SENSE MESSAGE @VM01069 01692000
- B FATAL GO FATAL 01693000
- SPACE 1 01694000
- SPACE 1 01695000
- *********************************************************************** 01696000
- * * WAIT PSW * 01697000
- *********************************************************************** 01698000
- CNOP 4,8 01699000
- XWAIT LPSW WAITCON 01700000
- WAITCON DC X'FE02' 01701000
- DC A(255) 01702000
- EJECT 01703000
- *********************************************************************** 01704000
- * * GET SENSE INFORMATION * 01705000
- *********************************************************************** 01706000
- SENSIT LA R1,CCWSENSE ADDRESS OF SENSE CCW INTO R1 01707000
- XC SENSE,SENSE CLEAR SENSE AREA @V2B3729 01708000
- MVC SAVEIT(20),IOOPSW SAVE CSW,CAW,AND IO OLD PSW 01709000
- ST R1,CAW PUT ADDRESS OF CCW INTO CAW 01710000
- TIO 0(R5) CLEAR STATUS 01711000
- BC 2,*-4 LOOP IF BUSY @VA03149 01712000
- SIO 0(R5) START DEVICE 01713000
- TIO 0(R5) DEVICE DONE? 01714000
- BC 2,*-4 LOOP IF BUSY @VA03149 01715000
- MVC SENSTA(8),CSW SAVE CSW 01716000
- MVC IOOPSW(20),SAVEIT RESTORE CSW,CAW,AND IO OLD PSW 01717000
- BR R7 GO-WHENCE CAME YOU- 01718000
- SPACE 3 01719000
- SPACE 1 01720000
- *********************************************************************** 01721000
- * * PRINT SENSE AND CCHH ERROR INFORMATION * 01722000
- *********************************************************************** 01723000
- SENSIT2 UNPK WORK(13),SENSE(7) CHANGE SENSE DATA TO ZONED 01724000
- UNPK WORK+12(11),CCHHR(6) CHANGE CCHHR DATA TO ZONED 01725000
- TR WORK(22),TTAB-240 TRANSLATE TO PRINTABLE CHAR @V2B3729 01726000
- MVC IOERR+33(10),WORK+12 PUT CCHHR INTO THE MSG 01727000
- MVC IOERR+52(12),WORK PUT SENSE INTO ERROR MSG 01728000
- LA R4,IOERR ADDRESS OF ERROR MESSAGE INTO R4 01729000
- BAL R14,WMSG WRITE MESSAGE 01730000
- CLI SENSTA+7,X'12' MORE THAN 6 SENSE BYTES ? @V2B3729 01731000
- BNL SENSIT3 NO- @V2B3729 01732000
- UNPK WORK(13),SENSE+6(7) CHANGE AND TRANSLATE @V2B3729 01733000
- UNPK WORK+12(13),SENSE+12(7) .. @V2B3729 01734000
- UNPK WORK+24(13),SENSE+18(7) .. @V2B3729 01735000
- TR WORK(36),TTAB-240 18 SENSE BYTES @V2B3729 01736000
- MVC IOERR2+1(36),WORK PUT SENSE INTO THE MSG @V2B3729 01737000
- LA R4,IOERR2 ADDRESS OF 2ND LINE OF ERROR MSG @V2B3729 01738000
- BAL R14,WMSG WRITE MESSAGE @V2B3729 01739000
- SENSIT3 MVC IOOPSW(20),SAVEIT RESTORE CSW,CAW,AND IO OLD PSW@V2B3729 01740000
- BR R7 GO-WHENCE CAME YOU- 01741000
- SPACE 3 01742000
- SPACE 1 01743000
- *********************************************************************** 01744000
- * * * 01745000
- * * DASD IO INTERRUPT ROUTINE * 01746000
- * * * 01747000
- *********************************************************************** 01748000
- SPACE 1 01749000
- IOINT LH R4,IOOPSW+2 GET DEVICE ADDRESS 01750000
- CH R4,CONSOL WAS IT CONSOLE DEVICE? 01751000
- BE ATNTST YES,CHECK FOR ATTENTION 01752000
- CH R5,IOOPSW+2 WAS IT DEVICE STARTED? 01753000
- BNE XWAIT NO,WAIT FOR CORRECT ONE 01754000
- TM CSW+5,X'BF' ANYTHING BUT INCORRECT LENGHT? 01755000
- BM FATAL IF MIXED ERRORS,GO FATAL 01756000
- TM CSW+4,UC UNIT CHECK? 01757000
- BO ERRECOV YES,GO TO ERROR RECOVERY 01758000
- CLI CSW+4,CE+DE WAS IT CHANNEL END OR DEVICE END 01759000
- BE CLEANEND YES, CHECK FOR ALTERNATE TRACK @V56BDA8 01760000
- CLI CSW+4,CUE+CE+DE DID CUE SNEAK IN TOO? @VA04270 01761000
- BNE FATAL NOT UC & NOT CLEAN END. @V56BDA8 01762000
- CLEANEND XC ERCOUNT,ERCOUNT RESET. THIS SUCCESSFUL CMPLETN @V56BDA8 01763000
- * COULD BE THE END OF AN ERROR RETRY. 01764000
- TM ALTFLAG,HAR0READ ALTERNATE TRACK RECOVERY IN @V56BDA8 01765000
- * PROGRESS? 01766000
- BZ RESUMP NO, CONTINUE WITH MAIN LOGIC. @V56BDA8 01767000
- L R6,CONTINAD ADDR OF CODE WHERE ALT TRACK @V56BDA8 01768000
- * RECOVERY PROCESSING IS TO CONTINUE. 01769000
- BR R6 @V56BDA8 01770000
- SPACE 01771000
- ERRECOV BAL R7,SENSIT READ SENSE DATA, THEN RESTORE @V56BDA8 01772000
- * CSW, CAW, IOOPSW. 01773000
- TM SENSE,X'02' TRACK CONDITION CHECK? @V56BDA8 01774000
- BNO NOSWTCH NO, TRACK NOT FLAGGED. @V56BDA8 01775000
- CLI TYPE,TYP334X DEVICE IS 3340/3344? @V56BDA8 01776000
- BE ALTTRACK YES. GO SWITCH TRACKS. @V56BDA8 01777000
- NOSWTCH DS 0H @V56BDA8 01778000
- CLC CSW(L8),SAVEDCSW SAME ERROR (AT SAME CCW) AS @V56BDA8 01779000
- * BEFORE? 01780000
- MVC SAVEDCSW(L8),CSW SAVE FOR COMPARE NEXT TIME. @V56BDA8 01781000
- BE COUNT IF SAME ERROR,BRANCH 01782000
- XC ERCOUNT(4),ERCOUNT CLEAR ERROR COUNT 01783000
- B STIO START DEVICE 01784000
- SPACE 01785000
- COUNT L R4,ERCOUNT PUT ERROR COUNT INTO R4 01786000
- LA R4,1(4) UP ERROR COUNT BY 1 01787000
- ST R4,ERCOUNT SAVE ERROR COUNT 01788000
- C R4,=F'1' IS IT FIRST ERROR? 01789000
- BE RECAL YES,RECALIBRATE DEVICE 01790000
- C R4,=F'2' IS IT SECOND ERROR 01791000
- BE RESET YES,RETRY CCW'S 01792000
- RSTRTN C R4,ERLIMIT IS ERROR LIMIT OF 9 REACHED? 01793000
- BL STIO IF NO,TRY AGAN 01794000
- XC ERCOUNT,ERCOUNT IF YES,CLEAR ERROR COUNT 01795000
- XC SAVEDCSW(8),SAVEDCSW CLEAR SAVED CSW 01796000
- L R4,CSW PUT NEXT CCW ADDRESS INTO R4 01797000
- SUB S R4,=F'8' GET PREVIOUS CCW ADDRESS 01798000
- SUB2 CLI 0(4),X'07' IS IT A SEEK? 01799000
- BNE SUB NO,GET PREVIOUS CCW 01800000
- L R4,0(R4) ADDRESS OF CCW DATA AREA IN R4 01801000
- LA R4,0(R4) CLEARS COMMAND CODE FROM R4 01802000
- MVC CCHHR(5),2(R4) SAVE THE CCHHR THAT FAILED 01803000
- BAL R7,SENSIT2 PRINT SENSE AND CCHH MESSAGE 01804000
- L R4,CSW PUT NEXT CCW ADDRESS INTO R4 01805000
- S R4,=F'8' R4 NOW POINTS TO FAILING CCW 01806000
- CLI 0(4),X'07' WAS IT SEEK ERROR? 01807000
- BE FATAL YES,GO PRINT FATAL MESSAGE 01808000
- CLI 0(4),X'19' WAS IT WRITE HOME ADDRESS? 01809000
- BE FATAL YES,GO,PRINT FATAL MESSAGE 01810000
- CLI 0(4),X'15' WAS IT WRITE REC 0? 01811000
- BE FATAL YES,GO PRINT FATAL MESSAGE 01812000
- CLI 0(R4),X'05' WRITE DATA ? @V2B3729 01813000
- BE FATAL YES, GO PRINT FATAL MESSAGE @V2B3729 01814000
- CLI 0(4),X'1F' WAS IT SET FILE MASK? 01815000
- BE FATAL YES,GO PRINT FATAL MESSAGE 01816000
- CLI 0(4),X'1A' IS IT READ HOME ADDRESS 01817000
- BE FATAL YES,GO PRINT FATAL MESSAGE 01818000
- CLI 0(4),X'16' IS IT READ REC 0? 01819000
- BE FATAL FAILED TO WRITE CYL 0 TK 0 AND 1 CORRECT 01820000
- CLI 0(4),X'1E' IS IT READ CT KEY DATA? 01821000
- BE FATAL YES,GO PRINT FATAL MESSAGE 01822000
- CLI 0(4),X'06' WAS IT READ? 01823000
- BE READER06 YES,BRANCH 01824000
- CLI 0(4),X'31' WAS IT SEARCH ID? 01825000
- BE READER31 YES,BRANCH 01826000
- CCWSRCH1 TM 4(R4),CC COMMAND CHAINING ?? @V2B3729 01827000
- BZ FATAL NO, FATAL ERROR @V2B3729 01828000
- CCWSRCH LA R4,8(R4) R4 POINTS TO NEXT CCW 01829000
- CLI 0(R4),8 IS THIS A TIC CCW ? @V2B3729 01830000
- BE CCWTIC YES, GO PROCESS @V2B3729 01831000
- CLI 0(4),X'07' WAS IT SEEK? 01832000
- BE FOUND YES,GO FOUND 01833000
- B CCWSRCH1 NO, TRY AGAIN @V2B3729 01834000
- CCWTIC CLM (R4),B'0111',1(R4) TIC BACK OR FORWARD ? @V2B3729 01835000
- BNH CCWSRCH BRANCH IF FORWARD @V2B3729 01836000
- L R4,0(,R4) GET TIC TO ADDRESS @V2B3729 01837000
- LA R4,0(,R4) CLEAR COMMAND CODE @V2B3729 01838000
- B CCWSRCH1 KEEP LOOKING FOR 07 @V2B3729 01839000
- EJECT 01840000
- *********************************************************************** 01841000
- * * COME HERE TO HANDLE TRACK CONDITION CHECK. 01842000
- * * RESTART WITH A SEEK TO THE ALTERNATE OR RESTART WITH A SEEK 01843000
- * * BACK TO THE DEFECTIVE TRACK PLUS ONE. 01844000
- *********************************************************************** 01845000
- SPACE 01846000
- ALTTRACK L R1,CSW GET FAILED CCW + 8. @V56BDA8 01847000
- SH R1,=H'8' POINT TO FAILING CCW. @V56BDA8 01848000
- STCM R1,B'0111',ALTTIC+1 SAVE ITS ADDR IN TIC FOR @V56BDA8 01849000
- * RESTART LATER. 01850000
- L R8,=A(ALTCHK) @V56BDA8 01851000
- BALR R7,R8 CALL ROUTINE TO DETERMINE WHETHER@V56BDA8 01852000
- * OR NOT FLAGGED TRACK POINTS TO AN 01853000
- * ALTERNATE WITH ALTERNATE POINTING BACK. 01854000
- * IF POINTERS ARE BAD, R1=-1 IS RETURNED. 01855000
- * IF POINTERS ARE GOOD, R1=CCHH IS 01856000
- * RETURNED, WITH CCHH BEING THE SEEK ADDR 01857000
- * OF THE OTHER TRACK (NOT THE ONE THAT 01858000
- * GAVE THE TRACK CONDITION CHECK, BUT THE 01859000
- * ONE THAT THAT ONE POINTS TO). 01860000
- * R0=0 IF CCHH IN R1 IS THE ASSIGNED 01861000
- * ALTERNATE TRACK OR R0=1 IF CCHH IN R1 IS 01862000
- * THE PRIMARY TRACK. 01863000
- LTR R1,R1 DOES FLAGGED TRK HAVE ALTERNATE? @V56BDA8 01864000
- BM ALTBAD NO. FATAL ERROR. ISSUE MSGS. @V56BDA8 01865000
- AR R1,R0 IF CCHH IN R1 IS PRIMARY, THEN @V56BDA8 01866000
- * ADDS 1 FROM R0 TO CAUSE SEEK BACK TO 01867000
- * PRIMARY PLUS ONE. (NOTE: DUE TO NATURE 01868000
- * OF CHNL PRGS USED TO FORMAT, THIS WILL 01869000
- * NEVER GO BEYOND LAST TRACK IN CYL. IF 01870000
- * LAST TRK IN CYL IS FLAGGED, THAT IS WHERE 01871000
- * CHNL PRG ENDS ANYWAY, THERE IS NO 01872000
- * SUBSEQUENT SEEK OFF OF ALTERNATE TO CAUSE 01873000
- * TRACK CONDITION CHECK FROM THERE.) 01874000
- STCM R1,15,ALTSKADD+2 STORE FOR SEEK CCW. @V56BDA8 01875000
- LA R1,ALTSEEK RESTART CCWS APPENDED TO FAILED @V56BDA8 01876000
- * CCW. 01877000
- ST R1,CAW SET FOR SIO. @V56BDA8 01878000
- B STIO RESTART THE CHANNEL PROGRAM. @V56BDA8 01879000
- SPACE 01880000
- ALTBAD LA R4,MSGATRK MSG SAYS FLAGGED TRACK HAS NO @V56BDA8 01881000
- * ALTERNATE ASSIGNED. 01882000
- BAL R14,WMSG @V56BDA8 01883000
- BAL R7,SENSIT2 PRT MSG GIVING CCHH OF BAD TRACK.@V56BDA8 01884000
- B FATAL GIVE FATAL MSG, THEN RESTART. @V56BDA8 01885000
- SPACE 2 01886000
- *********************************************************************** 01887000
- * * THIS ROUTINE RESTARTS BROKEN CCW CHAIN AT NEXT SEEK * 01888000
- * * R4 POINTS TO NEXT SEEK CCW * 01889000
- *********************************************************************** 01890000
- SPACE 1 01891000
- FOUND ST R4,RESUMCCW+8 ADDRESS OF SEEK CCW INTO TIC 01892000
- MVI RESUMCCW+8,X'08' RESTORE TO TIC COMMAND 01893000
- LA R9,RESUMCCW CCW ADDRESS INTO R9 01894000
- ST R9,CAW CCW ADDRESS INTO CAW 01895000
- LH R5,DSKADD DEVICE INTO R5 01896000
- B STIO START DEVICE 01897000
- SPACE 1 01898000
- SPACE 1 01899000
- *********************************************************************** 01900000
- * * COME HERE IF READ OR SEARCH ID FAILURE * 01901000
- *********************************************************************** 01902000
- SPACE 1 01903000
- READER06 S R4,=F'16' R4 POINTS TO SEARCH ID CCW 01904000
- READER31 L R5,0(R4) R5 CONTAINS DATA ADDRESS 01905000
- SR R3,R3 CLEAR R3 01906000
- ICM R3,1,4(R5) PUT REC NUMBER INTO R3 01907000
- BM READTRY BRANCH IF FILLER RECORD 01908000
- BZ FATAL BRANCH IF RECORD ZERO 01909000
- CLC SEEKA+2(2),=X'0000' IS IT CYLINDER 0 @V304498 01910000
- BNE PAGECT NO, BYPASS CYLINDER BIT MAP @V304498 01911000
- CLM R3,1,RECN4 IS PAGE COUNT GREATER THAN 4 @V304498 01912000
- BH PAGECT YES, BYPASS CYLINDER BIT MAP @V304498 01913000
- BCTR R3,0 DECREASE RECORD NUMBER BY 1 01914000
- STC R3,SHIFT+3 CAUSE SHIFT OF VALUE IN R3 01915000
- L R7,SHIFTMSK PUT 80 00 00 00 INTO R7 01916000
- SHIFT SRL R7,0 SHIFT RIGHT BY VALUE IN R3 01917000
- O R7,R0STUF OR IN R0 CYLINDER BIT MAP 01918000
- ST R7,R0STUF PUT RESULT BACK 01919000
- PAGECT EQU * COUNT PAGE ERRORS @V304498 01920000
- L R3,PGCOUNT PUT PGCOUNT INTO R3 01921000
- LA R3,1(R3) UP PAGE COUNT BY 1 01922000
- ST R3,PGCOUNT SAVE UPDATED PGCOUNT 01923000
- SPACE 1 01924000
- *********************************************************************** 01925000
- * * USE TO RESTART CCW CHAIN AFTER ERROR * 01926000
- *********************************************************************** 01927000
- SPACE 1 01928000
- READTRY LA R4,24(R4) POINT TO NEXT SEARCH ID 01929000
- ST R4,PICKUP BUILD TIC TO NEXT SEARCH ID 01930000
- MVI PICKUP,X'08' PUT TIC COMMAND IN CCW 01931000
- CLI 0(R4),X'07' IS NEXT SEARCH ID REALLY A SEEK? 01932000
- BE SKFOUND YES,BRANCH 01933000
- SEEKSEEK S R4,=F'8' NO,BACK UP 1 CCW 01934000
- CLI 0(R4),X'07' IS IT A SEEK? 01935000
- BNE SEEKSEEK NO,BACK UP AGAN 01936000
- SKFOUND MVC RDRTRY(8),0(R4) BUILD SEEK CCW 01937000
- LA R9,RDRTRY ADDRESS OF CCW INTO R9 01938000
- ST R9,CAW ADDRESS OF CCW INTO CAW 01939000
- LH R5,DSKADD DEVICE ADDRESS INTO R5 01940000
- B STIO GO TO START DEVICE 01941000
- EJECT 01942000
- SPACE 1 01943000
- *********************************************************************** 01944000
- * * * 01945000
- * * RESTART CCW CHAIN AFTER ERROR 2305,2314,3330,3340, OR 3350 * 01946000
- * * * 01947000
- *********************************************************************** 01948000
- SPACE 1 01949000
- DS 0D 01950000
- RDRTRY CCW 07,SEEKA,CC,6 RHONY SEEKA 01951000
- CCW 31,FILEMASK,CC+SILI,1 01952000
- PICKUP CCW 08,0,0,0 01953000
- SHIFTMSK DC X'80',3X'00' 01954000
- SPACE 1 01955000
- SPACE 1 01956000
- *********************************************************************** 01957000
- * * THIS ROUTINE DOES A RECALIBRATE ON FAILING DEVICE * 01958000
- * * THEN TIC'S TO NORMAL 2314 CCW CHAIN * 01959000
- *********************************************************************** 01960000
- SPACE 1 01961000
- RECAL EQU * HERE TO SET UP FOR RECALIBRATE @VA07045 01962000
- LA R9,CALIBRAT ADDRESS OF RECAL. CCW @VA07045 01963000
- C R9,CAW CAW ALREADY POINTING TO IT ?? @VA07045 01964000
- BE RECAL1 YES, PREVENT TIC TO RECAL LOOP @VA07045 01965000
- MVC CALIBRAT+9(3),CAW+1 CAUSE TIC TO FORMAT CCWS @VA07045 01966000
- RECAL1 EQU * BR HERE MEANS TIC ALREADY SET @VA07045 01967000
- ST R9,CAW CAW POINTS TO CALBRATE CCWS 01968000
- LH R5,DSKADD DEVICE ADDRESS INTO R5 01969000
- B STIO START DEVICE 01970000
- SPACE 1 01971000
- SPACE 1 01972000
- *********************************************************************** 01973000
- * * SECOND ERROR-RESET TO NORMAL 2314 CCW CHAIN * 01974000
- *********************************************************************** 01975000
- SPACE 1 01976000
- RESET MVC CAW+1(3),CALIBRAT+9 CAW POINTS TO NORMAL 2314 CCWS 01977000
- B RSTRTN GO CHECK ERROR COUNT 01978000
- CALIBRAT CCW 19,0,CC+SILI,1 RECALIBRATE 01979000
- CALTIC CCW 08,FMT2314,0,0 TIC TO NORMAL CCW'S 01980000
- SAVEDCSW DC 2F'0' 01981000
- CONTINAD DC F'0' ADDR OF CODE WHERE ALT TRACK @V56BDA8 01982000
- * PROCESSING IS TO RESUME. 01983000
- ERCOUNT DC F'0' 01984000
- ERLIMIT DC F'9' 01985000
- SENSTA DC 2F'0' 01986000
- NEWPSW DC X'00040000' 01987000
- DC A(IOINT) 01988000
- RNSTUF DS 24F 01989000
- WKSEEK DS 30F @V2A2029 01990000
- RNDATA DS 46F NUMBER ENTRIES IN RECORD TABLE @V304498 01991000
- SAVEVOL1 DC 24F'0' 01992000
- SAVEFMT4 DC 24F'0' SAVE CONTENTS OF CP'S FMT4 @V56BDA8 01993000
- ALTCCHH DC XL6'0' CCHH OF NEXT AVAIL. ALT TRK @V56BDA8 01994000
- * PLUS COUNT OF NO. OF ALT. TRKS 01995000
- SPACE 1 01996000
- ALTSEEK CCW 07,ALTSKADD,CC+SILI,6 @V56BDA8 01997000
- CCW 31,FILEMASK,CC+SILI,1 @V56BDA8 01998000
- ALTTIC CCW 08,*-*,0,0 @V56BDA8 01999000
- ALTSKADD DC XL6'0' SEEK ADDRESS NEXT TRACK @V56BDA8 02000000
- ALTFLAG DC AL1(0) FLAG FOR 3340/3344 ALT TRACK @V56BDA8 02001000
- HAR0READ EQU 128 HA/R0 READ IN PROGRESS @V56BDA8 02002000
- SPACE 1 02003000
- SPACE 1 02004000
- *********************************************************************** 02005000
- * * CONSOLE INTERRUPT FOUND BY DASD IO INTERRUPT ROUTINE * 02006000
- *********************************************************************** 02007000
- SPACE 1 02008000
- ATNTST TM 68,X'80' WAS IT ATTENTION? 02009000
- BCR 8,R14 NO,MUST BE FOR CONSOLE WRITE 02010000
- B STMSG START OVER 02011000
- EJECT 02012000
- SPACE 1 02013000
- *********************************************************************** 02014000
- * * * 02015000
- * * ALLOCATION ROUTINE * 02016000
- * * * 02017000
- *********************************************************************** 02018000
- SPACE 1 02019000
- ALLOCATE MVC DATAMSG+34(6),CPLABEL PUT LABEL INTO CONSOLE MSG 02020000
- MVC ALLEND+19(6),CPLABEL PUT LABEL INTO CONSOLE MSG 02021000
- LA R4,DATAMSG SET UP DATA MSG 02022000
- BAL R14,WMSG WRITE MESSAGE 02023000
- LA R4,ALMSG SET UP CYLINDER ALLOCATION MSG 02024000
- BAL R14,WMSG WRITE MESSAGE 02025000
- LA R4,ALMSG1 POINT TO MSG 02026000
- BAL R14,WMSG GO WRITE MSG 02027000
- MVI CHECKEND,X'FF' INITIALIZE END ONLY FLAG @VA09594 02027500
- CLI CDSW2,X'FF' IS CARD SW SET? 02028000
- BE GETCARD YES GET ANOTHER CARD 02029000
- REREAD EQU * @VM08604 02030000
- BAL R14,RMSG READ RESPONSE 02031000
- TM CSW+4,UE WAS IT UNIT CK OR UNIT EXCEPTION 02032000
- BO REREAD YES,TRY AGAN 02033000
- CLI CDSW2,X'FF' IS IT CARD INPUT? @VA01930 02034000
- BE CHECKCDS YES....GO CHECK THEM @VA01930 02035000
- OC INDATA(5),BLANKS8 CONVERT TO UPPER CASE @VM08604 02036000
- CLC INDATA(5),=C'TEMP ' IS IT TEMPARY @VM08604 02037000
- MVI ATYPE,X'00' CLEAR TYPE TO 00 02038000
- BE AOKALL BRANCH IF TEMP 02039000
- CLC INDATA(5),=C'PERM ' IS IT PERMANENT ? @VM08604 02040000
- MVI ATYPE,X'01' TYPE IS 01 02041000
- BE AOKALL BRANCH IF PERMANENT 02042000
- CLC INDATA(5),=C'TDSK ' IS IT TEMP DISK ? @VM08604 02043000
- MVI ATYPE,X'02' TYPE IS 02 02044000
- BE AOKALL IF TEMP DISK BRANCH 02045000
- CLC INDATA(5),=C'DRCT ' IS IT DIRECTORY ? @VM08604 02046000
- MVI ATYPE,X'04' TYPE IS 04 02047000
- BE AOKALL IF DECTORY BRANCH 02048000
- B CKEND NOW GO CHECK FOR AN END @VA01930 02049000
- CHECKCDS MVC INDATA(80),CDINPUT GET THE CARD INPUT @VA01930 02050000
- OC INDATA(5),BLANKS8 CONVERT TO UPPER CASE @VA01930 02051000
- CLC INDATA(5),=C'TEMP,' IS IT TEMPORARY? @VA01930 02052000
- MVI ATYPE,X'00' CLEAR TYPE TO 00 @VA01930 02053000
- BE AOKALL BRANCH IF TEMPORARY @VA01930 02054000
- CLC INDATA(5),=C'PERM,' IS IT PERMANENT? @VA01930 02055000
- MVI ATYPE,X'01' TYPE IS 01 @VA01930 02056000
- BE AOKALL BRANCH IF PERMANENT @VA01930 02057000
- CLC INDATA(5),=C'TDSK,' IS IT TEMP DISK? @VA01930 02058000
- MVI ATYPE,X'02' TYPE IS 02 @VA01930 02059000
- BE AOKALL BRANCH IF TEMP DISK @VA01930 02060000
- CLC INDATA(5),=C'DRCT,' IS IT DIRECTORY? @VA01930 02061000
- MVI ATYPE,X'04' TYPE IS 04 @VA01930 02062000
- BE AOKALL BRANCH IF DIRECTORY @VA01930 02063000
- CKEND EQU * @VA01930 02064000
- CLC INDATA(4),=C'END ' WAS 'END' TYPED? @VM08604 02065000
- BE FINI IF END GO WRITE ALLOCATION TABLE 02066000
- LA R4,TYPERR SET UP TO PRINT ERROR 02067000
- BAL R14,WMSG WRITE MESSAGE 02068000
- TM CDSW2,X'FF' CARD INPUT? 02069000
- BNO REREAD NO,BRANCH 02070000
- LA R4,CARDMESS SET UP ERROR MSG 02071000
- BAL R14,WMSG WRITE MESSAGE 02072000
- MVI ALLOERR,X'FF' ALLOCATE ERROR TURNED ON 02073000
- B VALIDATE BRANCH 02074000
- AOKALL MVC MASKB(3),MASKA PUT FO'S INTO MASKB 02075000
- MVI CHECKEND,X'00' CLEAR END ONLY FLAG @VA09594 02075500
- NC MASKB(3),INDATA+5 AND F0'S WITH INDATA 02076000
- CLC MASKA(3),MASKB WAS IT ALL NUMERIC?? 02077000
- BNE ERRCYL NO,ERROR IN INDATA 02078000
- CLI CDSW2,X'FF' CARD INPUT? @VA01930 02079000
- BNE CONSDATA NO, MUST BE FROM THE CONSOLE @VA01930 02080000
- CLI INDATA+8,C',' 3 CHARS FOLLOWED BY COMMA? @VA01930 02081000
- BNE ERRCYL NO...HE GOOFED. @VA01930 02082000
- B CKREST GO CHECK THE REST OF IT @VA01930 02083000
- CONSDATA EQU * @VA01930 02084000
- CLI INDATA+8,X'40' ONLY 3 DIGITS (I HOPE)? @VM08604 02085000
- BNE ERRCYL NOPE - REPEAT IT PLEASE @VM08604 02086000
- CKREST NC MASKB(3),INDATA+9 AND F0'S WITH INDATA @VA01930 02087000
- CLC MASKA(3),MASKB IS END CYLINDER NUMERIC? 02088000
- BNE ERRCYL NO,ERROR IN INDATA 02089000
- OI INDATA+12,X'40' CONVERT TO UPPER CASE @VM08604 02090000
- CLI INDATA+12,X'40' MORE THAN 3 CHARS?? @VM08604 02091000
- BNE ERRCYL YEP - DO IT AGAIN. @VM08604 02092000
- PACK FIELDA+6(2),INDATA+5(3) PACK START CYLINDER DATA 02093000
- PACK FIELDB+6(2),INDATA+9(3) PACK END CYLINDER DATA 02094000
- CVB R7,FIELDA CONVERT TO BINARY START CYL 02095000
- ST R7,FIELDA+4 SAVE BINARY RESULTS 02096000
- CVB R7,FIELDB CONVERT TO BINARY END CYL 02097000
- LH R5,HIVALUE MAX END CYLINDER 02098000
- LA R5,1(R5) ADD ONE TO HI VALUE 02099000
- CH R7,HIVALUE HIGHER THAN LAST CYLINDER 02100000
- BH ERRCYL YES,ERROR 02101000
- STORE2 ST R7,FIELDB+4 SAVE END CYLINDER 02102000
- CLC FIELDA+4(4),FIELDB+4 IS START GREATER THAN END? 02103000
- BH ERRCYL YES,THAT'S ERROR 02104000
- LA R9,TABLE ADDRESS OF CYL BYTE MAP INTO R9 02105000
- A R9,FIELDA+4 ADD START CYL TO BYTE MAP ADDRES 02106000
- L R8,FIELDB+4 LOAD END CYL INTO R8 02107000
- S R8,FIELDA+4 SUBTRACT START FROM END 02108000
- LA R8,1(R8) ADD 1 TO NUMBER OF CYL'S 02109000
- MVC INDIC+1(1),ATYPE ALTER INSTR TO CORRECT TYPE 02110000
- INDIC MVI 0(R9),X'00' PUT TYPE INTO CYL BYTE MAP 02111000
- LA R9,1(R9) ADD 1 TO BYTE MAP ADDRESS 02112000
- BCT R8,INDIC REPEAT FOF THE NUMBER OF CYL'S 02113000
- TM CDSW2,X'FF' IS CD SWITCH2 ON 02114000
- BO GETCARD YES,BRANCH 02115000
- B REREAD GET ANOTHER ENTRY 02116000
- ERRCYL LA R4,TYPERR SET UP CYL ERROR MSG 02117000
- BAL R14,WMSG WRITE MESSAGE 02118000
- TM CDSW2,X'FF' IS CD SWITCH2 ON 02119000
- BO BADINPUT YES,BRANCH 02120000
- B REREAD GET ANOTHER ENTRY 02121000
- SPACE 3 02122000
- *********************************************************************** 02123000
- * * WRITE ALLOCATION TABLE TO DASD * 02124000
- *********************************************************************** 02125000
- FINI LH R2,HIVALUE GET MAX CYL NO 02126000
- LA R2,TABLE+1(R2) POINT TO LAST ENTRY IN ALLOCATION TABLE+1 02127000
- MVI 0(R2),X'FF' SET END OF TABLE TO FF 02128000
- CLI CHECKEND,X'FF' IS END THE ONLY COMMAND? @VA09594 02128100
- BE PRINTALL YES, NO CHANGE SO JUST DISPLAY @VA09594 02128200
- LH R5,DSKADD GET DEVICE ADD INTO R5 02129000
- LA R1,ALLOREC ALLOCATE TABLE CCWS 02130000
- ST R1,CAW LABEL CCW'S INTO CAW 02131000
- TIO 0(R5) DRAIN IT 02132000
- BC 2,*-4 LOOP IF BUSY 02133000
- SIO 0(R5) WRITE OUT THE ALLO TABLE 02134000
- TIO1 TIO 0(R5) DRAIN THE INT 02135000
- BC 2,*-4 LOOP UNTIL DONE 02136000
- BC 1,TIOCC3 DEVICE INOPER. - SAY SO @VA00923 02137000
- TM CSW+5,X'FF' ANY BAD CHANNEL STATUS 02138000
- BNZ ERROR YES- BRANCH 02139000
- TM CSW+4,UC UNIT CHECK 02140000
- BO ERROR YES- BRANCH 02141000
- TM CSW+4,CE CHANNEL END 02142000
- BO PRINTALL YES- BRANCH ALL OK 02143000
- B TIO1 NO- GO GET IT 02144000
- ERROR BAL R7,SENSIT GET THE SENSE DATA 02145000
- MVC CCHHR(5),R4ALLOC MOVE IN THE CCHHR DATA 02146000
- BAL R7,SENSIT2 TYPE THE MSG 02147000
- B FATAL 02148000
- *********************************************************************** 02149000
- * * WRITE OUT ALLOCATION TABLE TO CONSOLE * 02150000
- *********************************************************************** 02151000
- PRINTALL DS 0H PRINT THE ALLOCATION DATA 02152000
- LA R4,RESULTS PRINT ALLOCATION RESULTS 02153000
- BAL R14,WMSG2 PRINT MESSAGE 02154000
- LA R8,TABLE POINT TO TABLE 02155000
- LR R6,R8 PUT TABLE ADDRESS INTO R6 02156000
- SR R7,R7 CLEAR R7 02157000
- * R6 POINTS TO BYTE IN BYTE TABLE 02158000
- REENTER CLI 0(R6),X'00' IS FIRST BYTE 00? 02159000
- MVC MAP+1(4),=C'TEMP' MOVE IN TEMP 02160000
- BE CYLINDER YES,BRANCH 02161000
- CLI 0(R6),X'01' IS BYTE 01? 02162000
- MVC MAP+1(4),=C'PERM' MOVE IN PERM 02163000
- BE CYLINDER YES,BRANCH 02164000
- CLI 0(R6),X'02' IS BTYE 02? 02165000
- MVC MAP+1(4),=C'TDSK' MOVE IN TDSK 02166000
- BE CYLINDER YES,BRANCH 02167000
- MVC MAP+1(4),=C'BAD ' SET UP FOR A BAD ENTRY 02168000
- DIRECT TM 0(R6),X'F3' IS THIS CYL INVALID AS A DIRECTORY CYL 02169000
- LA R7,1(,R7) BUMP CYL COUNT 02170000
- LA R6,1(,R6) TABLE ADD ALSO 02171000
- BNZ CONT YES- CONT 02172000
- MVC MAP+1(4),=C'DRCT' MOVE IN DRCT 02173000
- CLI 0(R6),X'0C' IS THIS AN IN USE DRCT CYL @VA10365 02174100
- BH CONT NO - THATS ALL FOR THIS DRCT @VA10365 02174600
- CLI 0(R6),X'04' IS IT A DRCT CYL @VA10365 02175100
- BNL DIRECT YES - COUNT IT @VA10365 02175600
- B CONT NO- BRANCH 02176000
- CYLINDER CLC 0(1,R6),1(R6) NEXT CYLINDER THE SAME? 02177000
- LA R7,1(R7) BUMP CYL COUNT BY 1 02178000
- LA R6,1(R6) BUMP BYTE TABLE ADDRESS BY 1 02179000
- BE CYLINDER IF SAME CYL LOOK AT NEXT BYTE 02180000
- CONT LR R10,R6 PUT BYTE LOCATION INTO R10 02181000
- SR R10,R8 PRESENT MINUS START ADDRESS 02182000
- SR R10,R7 GET START CYLINDER 02183000
- CVD R10,FIELDA CONVERT START TO DECIMAL 02184000
- AR R10,R7 GET END ADDRESS 02185000
- BCTR R10,0 REDUCE BY 1 02186000
- CVD R10,FIELDB CONVERT END TO DECIMAL 02187000
- OI FIELDA+7,X'0F' PLUG IN SIGN 02188000
- OI FIELDB+7,X'0F' PLUG IN SIGN 02189000
- UNPK MAP+6(3),FIELDA+6(2) UNPACK TO MAKE PRINTABLE 02190000
- UNPK MAP+10(3),FIELDB+6(2) '' '' '' 02191000
- LA R4,MAP SET UP PRINT MAP 02192000
- BAL R14,WMSG2 WRITE MESSAGE 02193000
- SR R7,R7 CLEAR R7 02194000
- CR R6,R2 IS R6 AT HIVALUE 02195000
- BL REENTER NO- BRANCH 02196000
- LA R4,ALLEND SET UP TO ALLOCATION END 02197000
- BAL R14,WMSG WRITE MESSAGE 02198000
- MVI ALLOSW,X'00' TURN OFF ALLOCATE SWITCH 02199000
- B GETCARD YES,BRANCH 02200000
- SPACE 2 02201000
- *********************************************************************** 02202000
- * EXECUTED INSTRUCTIONS 02203000
- *********************************************************************** 02204000
- TSTFRMT CLC COMWOK(*-*),=CL8'FORMAT' @VA05542 02205000
- TSTALLOC CLC COMWOK(*-*),=CL8'ALLOCATE' @VA05542 02206000
- TSTLABL CLC COMWOK(*-*),=CL8'LABEL ' @VA05542 02207000
- MVCCOMW MVC COMWOK(*-*),INDATA @VA05542 02208000
- SPACE 02209000
- EJECT 02210000
- *********************************************************************** 02211000
- * CONSOL MESSAGES 02212000
- *********************************************************************** 02213000
- LABELOK DC AL1(TITLE-*-1) 02214000
- DC C'LABEL IS NOW XXXXXX' 02215000
- TITLE DC AL1(FORA-*-1) 02216000
- DC C'VM/370 FORMAT/ALLOCATE PROGRAM RELEASE 6' 02217000
- FORA DC AL1(FMTMSG-*-1) 02218000
- DC C'ENTER FORMAT OR ALLOCATE:' @V200731 02219000
- FMTMSG DC AL1(ALLOCMSG-*-1) 02220000
- DC C'FORMAT FUNCTION SELECTED' 02221000
- ALLOCMSG DC AL1(ADDRESS-*-1) 02222000
- DC C'ALLOCATE FUNCTION SELECTED' 02223000
- ADDRESS DC AL1(WR1-*-1) 02224000
- DC C'ENTER DEVICE ADDRESS (CCU):' 02225000
- WR1 DC AL1(TYPMSG-*-1) 02226000
- DC C'DMKFMT730E DEV XXX NOT OPERATIONAL OR ' @V56BDA8 02227000
- DC C'NOT READY.' @V56BDA8 02228000
- TYPMSG DC AL1(PCMSG-*-1) 02229000
- DC C'ENTER DEVICE TYPE:' 02230000
- PCMSG DC AL1(MCMSG-*-1) 02231000
- DC C'DMKFMT756E PROGRAM CHECK PSW = ' @V305435 02232000
- DC C'XXXXXXXXXXXXXXXX' @V200528 02233000
- MCMSG DC AL1(ALMSG-*-1) 02234000
- DC C'DMKFMT732E MACHINE CHECK RUN SEREP AND SAVE ' @V200528 02235000
- DC C'OUTPUT FOR CE' @V200528 02236000
- ALMSG DC AL1(ALMSG1-*-1) 02237000
- DC C'TYPE CYL CYL' 02238000
- ALMSG1 DC AL1(WRONG-*-1) 02239000
- DC C'.... ... ...' 02240000
- WRONG DC AL1(DATAMSG-*-1) 02241000
- DC C'DMKFMT733E VOLID READ IS XXXXXX NOT XXXXXX' 02242000
- DATAMSG DC AL1(TYPERR-*-1) 02243000
- DC C'ENTER ALLOCATION DATA FOR VOLUME XXXXXX' 02244000
- TYPERR DC AL1(MAP-*-1) 02245000
- DC C'DMKFMT734E TYPE OR CYL INVALID' 02246000
- MAP DC AL1(ALLEND-*-1) 02247000
- DC C'TEMP 000 000' 02248000
- ALLEND DC AL1(STCYL-*-1) 02249000
- DC C'DEVICE XXX VOLUME XXXXXX ALLOCATION ENDED' 02250000
- STCYL DC AL1(ENDCYL-*-1) 02251000
- DC C'ENTER START CYLINDER (XXX) OR "LABEL":' 02252000
- ENDCYL DC AL1(PROGFOR-*-1) 02253000
- DC C'ENTER END CYLINDER (XXX):' 02254000
- PROGFOR DC AL1(RDLAB-*-1) 02255000
- DC C'FORMAT STARTED' 02256000
- RDLAB DC AL1(ENDFOR-*-1) 02257000
- DC C'ENTER DEVICE LABEL:' 02258000
- ENDFOR DC AL1(FATLMSG-*-1) 02259000
- DC C'FORMAT DONE' 02260000
- FATLMSG DC AL1(PAGE-*-1) 02261000
- DC C'DMKFMT735E FATAL DASD IO ERROR.' @VA00923 02262000
- DC C' CSW=XXXXXXXXXXXXXXXX' @VA00923 02263000
- PAGE DC AL1(IOERR-*-1) 02264000
- DC C'XXX NO. PAGE RECORDS WITH READ-CHECK ERRORS' @V304498 02265000
- IOERR DC AL1(M736L) @V2B3729 02266000
- DC C'DMKFMT736E IO ERROR XXX CCHHR = 0000000000 SENSE = XXX*02267000
- XXXXXXXXX' 02268000
- M736L EQU *-IOERR-1 @V2B3729 02269000
- IOERR2 DC AL1(M736L2) @V2B3729 02270000
- DC CL36'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' @V2B3729 02271000
- M736L2 EQU *-IOERR2-1 @V2B3729 02272000
- BAD DC AL1(IPLERROR-*-1) 02273000
- BADMSG DC C'DMKFMT737E INVALID OPERAND' 02274000
- IPLERROR DC AL1(IPLERRL) @V56BDA8 02275000
- DC C'DMKFMT738A DEV XXX INTERVENTION REQUIRED' 02276000
- IPLERRL EQU *-IPLERROR-1 @V56BDA8 02277000
- MSGATRK DC AL1(MSGATRKL) @V56BDA8 02278000
- DC C'DMKFMT739E FLAGGED PRIMARY TRACK HAS NO ' @V56BDA8 02279000
- DC C'ALTERNATE ASSIGNED, IO ERROR FOLLOWS.' @V56BDA8 02280000
- MSGATRKL EQU *-MSGATRK-1 @V56BDA8 02281000
- MSG35MB DC AL1(MSG35MBL) @V56BDA8 02282000
- DC C'DMKFMT740E PACK MOUNTED IS 3340-35, NOT ' @V56BDA8 02283000
- DC C'3340-70. MOUNT ANOTHER OR RESPECIFY.' @V56BDA8 02284000
- MSG35MBL EQU *-MSG35MB-1 @V56BDA8 02285000
- CARDMESS DC AL1(RESPONSE-*-1) 02286000
- CDINPUT DC 80C' ' 02287000
- RESPONSE DC AL1(RESULTS-*-1) 02288000
- ANSWER DC C' ' 02289000
- RESULTS DC AL1(END-*-1) 02290000
- DC C'ALLOCATION RESULTS' 02291000
- END EQU * 02292000
- REGSAV DC F'0' 02293000
- ZERO DC XL8'00' 02294000
- ATYPE DC X'00' 02295000
- RECVALUE DC X'00' 02296000
- CHECKEND DC X'FF' USED TO INDICATE END AS ONLY @VA09594 02296500
- * COMMAND 02296600
- COMWOK DC XL9'00' 02297000
- DS 0D 02298000
- IPLDEV DC X'0000' 02299000
- SPACE 2 02300000
- *********************************************************************** 02301000
- * NORMAL DATA RECORDS FOR 3330 AND 2305 * 02302000
- *********************************************************************** 02303000
- REC1 DC F'0' CCHH 02304000
- DC AL1(1),AL3(4096) REC NUMBER KL DL DL 02305000
- RECX1 DC F'0' CCHH 02306000
- DC AL1(128+01),AL3(50) REC NUMBER KL DL DL 02307000
- REC2 DC F'0' CCHH 02308000
- DC AL1(2),AL3(4096) REC NUMBER KL DL DL 02309000
- RECX2 DC F'0' CCHH 02310000
- DC AL1(128+02),AL3(50) REC NUMBER KL DL DL 02311000
- REC3 DC F'0' CCHH 02312000
- DC AL1(3),AL3(4096) REC NUMBER KL DL DL 02313000
- RECX3 DC F'0' CCHH @V304498 02314000
- DC AL1(128+03),AL3(50) REC NUMBER KL DL DL @V304498 02315000
- REC4 DC F'1' CCHH 02316000
- DC AL1(4),AL3(4096) REC NUMBER KL DL DL 02317000
- RECX4 DC F'1' CCHH 02318000
- DC AL1(128+04),AL3(50) REC NUMBER KL DL DL 02319000
- REC5 DC F'1' CCHH 02320000
- DC AL1(5),AL3(4096) REC NUMBER KL DL DL 02321000
- RECX5 DC F'1' CCHH 02322000
- DC AL1(128+05),AL3(50) REC NUMBER KL DL DL 02323000
- REC6 DC F'1' CCHH 02324000
- DC AL1(6),AL3(4096) REC NUMBER KL DL DL 02325000
- RECX6 DC F'1' CCHH @V304498 02326000
- DC AL1(128+06),AL3(50) REC NUMBER KL DL DL @V304498 02327000
- REC7 DC F'2' CCHH 02328000
- DC AL1(7),AL3(4096) REC NUMBER KL DL DL 02329000
- RECX7 DC F'2' CCHH 02330000
- DC AL1(128+07),AL3(50) REC NUMBER KL DL DL 02331000
- REC8 DC F'2' CCHH 02332000
- DC AL1(8),AL3(4096) REC NUMBER KL DL DL 02333000
- RECX8 DC F'2' CCHH 02334000
- DC AL1(128+08),AL3(50) REC NUMBER KL DL DL 02335000
- REC9 DC F'2' CCHH 02336000
- DC AL1(9),AL3(4096) REC NUMBER KL DL DL 02337000
- RECX9 DC F'2' CCHH @V304498 02338000
- DC AL1(128+09),AL3(50) REC NUMBER KL DL DL @V304498 02339000
- REC10 DC F'3' CCHH 02340000
- DC AL1(10),AL3(4096) REC NUMBER KL DL DL 02341000
- RECX10 DC F'3' CCHH 02342000
- DC AL1(128+10),AL3(50) REC NUMBER KL DL DL 02343000
- REC11 DC F'3' CCHH 02344000
- DC AL1(11),AL3(4096) REC NUMBER KL DL DL 02345000
- RECX11 DC F'3' CCHH 02346000
- DC AL1(128+11),AL3(50) REC NUMBER KL DL DL 02347000
- REC12 DC F'3' CCHH 02348000
- DC AL1(12),AL3(4096) REC NUMBER KL DL DL 02349000
- SPACE 1 02350000
- *********************************************************************** 02351000
- * CCW TO WRITE ALLOCATION TABLE * 02352000
- *********************************************************************** 02353000
- SPACE 1 02354000
- ALLOREC CCW 07,R4SEEK,CC+SILI,6 SEEK TO WRITE ALLOCATION 02355000
- CCW 31,FILEMASK,CC+SILI,1 SET FILEMASK 02356000
- CCW 49,R4ALLOC,CC+SILI,5 SEARCH ID 02357000
- CCW 08,*-8,0,0 TIC BACK 02358000
- CCW 05,TABLE,CC+SILI,1024 WRITE DATA 02359000
- CCW 49,R4ALLOC,CC+SILI,5 SEARCH ID EQ 02360000
- CCW 08,*-8,0,0 02361000
- CCW 06,TABLE,0,1024 READ DATA 02362000
- SPACE 1 02363000
- *********************************************************************** 02364000
- * WRITE CCW FOR 3330 * 02365000
- ********************************************************************* 02366000
- SPACE 1 02367000
- SPACE 2 02368000
- DS 0D 02369000
- FMT3330 CCW 07,SEEKA,CC+SILI,6 SEEK 02370000
- CCW 31,FILEMASK,CC+SILI,1 SET FILE MASK 02371000
- CCW 49,SEEKA+2,CC+SILI,5 SERCH ID EQUAL RECORD 0 02372000
- CCW 08,*-8,0,0 TIC BACK 02373000
- CCW 05,ZERO,CC+SILI,8 WRITE REC ZERO 02374000
- CCW 49,SEEKA+2,CC+SILI,5 SERCH ID EQUAL RECORD 0 02375000
- CCW 08,*-8,0,0 TIC 02376000
- CCW 29,REC1,CC+SILI,8 WRITE 4096 PAGE 02377000
- CCW 29,RECX1,CC+SILI,8 02378000
- CCW 29,REC2,CC+SILI,8 WRITE 4096 PAGE 02379000
- CCW 29,RECX2,CC+SILI,8 02380000
- CCW 29,REC3,CC+SILI,8 WRITE 4096 PAGE 02381000
- CCW 07,SEEKB,CC+SILI,6 SEEK 02382000
- CCW 49,SEEKB+2,CC+SILI,5 SERCH ID EQUAL RECORD 0 02383000
- CCW 08,*-8,0,0 TIC BACK 02384000
- CCW 05,ZERO,CC+SILI,8 02385000
- CCW 49,SEEKB+2,CC+SILI,5 SERCH ID EQUAL RECORD 0 02386000
- CCW 08,*-8,0,0 TIC 02387000
- CCW 29,REC4,CC+SILI,8 WRITE 4096 PAGE 02388000
- CCW 29,RECX4,CC+SILI,8 02389000
- CCW 29,REC5,CC+SILI,8 WRITE 4096 PAGE 02390000
- CCW 29,RECX5,CC+SILI,8 02391000
- CCW 29,REC6,CC+SILI,8 WRITE 4096 PAGE 02392000
- CCW 07,SEEKC,CC+SILI,6 SEEK 02393000
- CCW 49,SEEKC+2,CC+SILI,5 SERCH ID EQUAL RECORD 0 02394000
- CCW 08,*-8,0,0 TIC BACK 02395000
- CCW 05,ZERO,CC+SILI,8 02396000
- CCW 49,SEEKC+2,CC+SILI,5 SERCH ID EQUAL RECORD 0 02397000
- CCW 08,*-8,0,0 TIC 02398000
- CCW 29,REC7,CC+SILI,8 WRITE 4096 PAGE 02399000
- CCW 29,RECX7,CC+SILI,8 02400000
- CCW 29,REC8,CC+SILI,8 WRITE 4096 PAGE 02401000
- CCW 29,RECX8,CC+SILI,8 02402000
- CCW 29,REC9,CC+SILI,8 WRITE 4096 PAGE 02403000
- WR57 CCW 08,NEXTWRT,0,0 USED ON 57 TH REC 02404000
- NEXTWRT CCW 07,SEEKD,CC+SILI,6 SEEK 02405000
- CCW 49,SEEKD+2,CC+SILI,5 SERCH ID EQUAL RECORD 0 02406000
- CCW 08,*-8,0,0 TIC BACK 02407000
- CCW 05,ZERO,CC+SILI,8 WRITE REC ZERO 02408000
- CCW 49,SEEKD+2,CC+SILI,5 SERCH ID EQUAL RECORD 0 02409000
- CCW 08,*-8,0,0 TIC 02410000
- CCW 29,REC10,CC+SILI,8 WRITE 4096 PAGE 02411000
- CCW 29,RECX10,CC+SILI,8 02412000
- CCW 29,REC11,CC+SILI,8 WRITE 4096 PAGE 02413000
- CCW 29,RECX11,CC+SILI,8 02414000
- CCW 29,REC12,CC+SILI,8 WRITE 4096 PAGE 02415000
- CCW 8,READCCW,0,0 GO READ THE TRACK'S 02416000
- SPACE 3 02417000
- *********************************************************************** 02418000
- * WRITE CCWS FOR 3340-35 AND 3340-70 * 02419000
- *********************************************************************** 02420000
- SPACE 2 02421000
- DS 0D @V2A2029 02422000
- FMT3340 CCW 07,SEEKA,CC+SILI,6 SEEK @V2A2029 02423000
- CCW 31,FILEMASK,CC+SILI,1 SET FILE MASK @V2A2029 02424000
- CCW 49,SEEKA+2,CC+SILI,5 SEARCH ID EQUAL RECORD 0 @V2A2029 02425000
- CCW 08,*-8,0,0 TIC BACK @V2A2029 02426000
- CCW 05,ZERO,CC+SILI,8 WRITE REC ZERO @V2A2029 02427000
- CCW 49,SEEKA+2,CC+SILI,5 SEARCH ID EQUAL RECORD 0 @V2A2029 02428000
- CCW 08,*-8,0,0 TIC @V2A2029 02429000
- CCW 29,REC1,CC+SILI,8 WRITE 4096 PAGE @V2A2029 02430000
- CCW 29,REC2,CC+SILI,8 WRITE 4096 PAGE @V2A2029 02431000
- CCW 07,SEEKB,CC+SILI,6 SEEK @V2A2029 02432000
- CCW 49,SEEKB+2,CC+SILI,5 SEARCH ID EQUAL RECORD 0 @V2A2029 02433000
- CCW 08,*-8,0,0 TIC BACK @V2A2029 02434000
- CCW 05,ZERO,CC+SILI,8 @V2A2029 02435000
- CCW 49,SEEKB+2,CC+SILI,5 SEARCH ID EQUAL RECORD 0 @V2A2029 02436000
- CCW 08,*-8,0,0 TIC @V2A2029 02437000
- CCW 29,REC3,CC+SILI,8 WRITE 4096 PAGE @V2A2029 02438000
- CCW 29,REC4,CC+SILI,8 WRITE 4096 PAGE @V2A2029 02439000
- CCW 07,SEEKC,CC+SILI,6 SEEK @V2A2029 02440000
- CCW 49,SEEKC+2,CC+SILI,5 SEARCH ID EQUAL RECORD 0 @V2A2029 02441000
- CCW 08,*-8,0,0 TIC BACK @V2A2029 02442000
- CCW 05,ZERO,CC+SILI,8 @V2A2029 02443000
- CCW 49,SEEKC+2,CC+SILI,5 SEARCH ID EQUAL RECORD 0 @V2A2029 02444000
- CCW 08,*-8,0,0 TIC @V2A2029 02445000
- CCW 29,REC5,CC+SILI,8 WRITE 4096 PAGE @V2A2029 02446000
- CCW 29,REC6,CC+SILI,8 WRITE 4096 PAGE @V2A2029 02447000
- CCW 07,SEEKD,CC+SILI,6 SEEK @V2A2029 02448000
- CCW 49,SEEKD+2,CC+SILI,5 SEARCH ID EQUAL RECORD 0 @V2A2029 02449000
- CCW 08,*-8,0,0 TIC BACK @V2A2029 02450000
- CCW 05,ZERO,CC+SILI,8 WRITE REC ZERO @V2A2029 02451000
- CCW 49,SEEKD+2,CC+SILI,5 SEARCH ID EQUAL RECORD 0 @V2A2029 02452000
- CCW 08,*-8,0,0 TIC @V2A2029 02453000
- CCW 29,REC7,CC+SILI,8 WRITE 4096 PAGE @V2A2029 02454000
- CCW 29,REC8,CC+SILI,8 WRITE 4096 PAGE @V2A2029 02455000
- CCW 07,SEEKE,CC+SILI,6 SEEK @V2A2029 02456000
- CCW 49,SEEKE+2,CC+SILI,5 SEARCH ID EQUAL RECORD 0 @V2A2029 02457000
- CCW 08,*-8,0,0 TIC BACK @V2A2029 02458000
- CCW 05,ZERO,CC+SILI,8 WRITE REC ZERO @V2A2029 02459000
- CCW 49,SEEKE+2,CC+SILI,5 SEARCH ID EQUAL RECORD 0 @V2A2029 02460000
- CCW 08,*-8,0,0 TIC @V2A2029 02461000
- CCW 29,REC9,CC+SILI,8 WRITE 4096 PAGE @V2A2029 02462000
- CCW 29,REC10,CC+SILI,8 WRITE 4096 PAGE @V2A2029 02463000
- CCW 07,SEEKF,CC+SILI,6 SEEK @V2A2029 02464000
- CCW 49,SEEKF+2,CC+SILI,5 SEARCH ID EQUAL RECORD 0 @V2A2029 02465000
- CCW 08,*-8,0,0 TIC BACK @V2A2029 02466000
- CCW 05,ZERO,CC+SILI,8 @V2A2029 02467000
- CCW 49,SEEKF+2,CC+SILI,5 SEARCH ID EQUAL RECORD 0 @V2A2029 02468000
- CCW 08,*-8,0,0 TIC @V2A2029 02469000
- CCW 29,REC11,CC+SILI,8 WRITE 4096 PAGE @V2A2029 02470000
- CCW 29,REC12,CC+SILI,8 WRITE 4096 PAGE @V2A2029 02471000
- SPACE 3 02472000
- * 02473000
- * READ CCWS FOR 3340-35 AND 3340-70 02474000
- * 02475000
- CCW 07,SEEKA,CC+SILI,6 SEEK @V2A2029 02476000
- CCW 49,REC1,CC+SILI,5 SEARCH ID EQUAL @V2A2029 02477000
- CCW 08,*-8,0,0 TIC BACK @V2A2029 02478000
- CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) @V2A2029 02479000
- CCW 49,REC2,CC+SILI,5 SEARCH ID EQUAL @V2A2029 02480000
- CCW 08,*-8,0,0 TIC BACK @V2A2029 02481000
- CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) @V2A2029 02482000
- CCW 07,SEEKB,CC+SILI,6 SEEK @V2A2029 02483000
- CCW 49,REC3,CC+SILI,5 SEARCH ID EQUAL @V2A2029 02484000
- CCW 08,*-8,0,0 TIC BACK @V2A2029 02485000
- CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) @V2A2029 02486000
- CCW 49,REC4,CC+SILI,5 SEARCH ID EQUAL @V2A2029 02487000
- CCW 08,*-8,0,0 TIC BACK @V2A2029 02488000
- CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) @V2A2029 02489000
- CCW 07,SEEKC,CC+SILI,6 SEEK @V2A2029 02490000
- CCW 49,REC5,CC+SILI,5 SEARCH ID EQUAL @V2A2029 02491000
- CCW 08,*-8,0,0 TIC BACK @V2A2029 02492000
- CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) @V2A2029 02493000
- CCW 49,REC6,CC+SILI,5 SEARCH ID EQUAL @V2A2029 02494000
- CCW 08,*-8,0,0 TIC BACK @V2A2029 02495000
- CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) @V2A2029 02496000
- CCW 07,SEEKD,CC+SILI,6 SEEK @V2A2029 02497000
- CCW 49,REC7,CC+SILI,5 SEARCH ID EQUAL @V2A2029 02498000
- CCW 08,*-8,0,0 TIC BACK @V2A2029 02499000
- CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) @V2A2029 02500000
- CCW 49,REC8,CC+SILI,5 SEARCH ID EQUAL @V2A2029 02501000
- CCW 08,*-8,0,0 TIC BACK @V2A2029 02502000
- CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) @V2A2029 02503000
- CCW 07,SEEKE,CC+SILI,6 SEEK @V2A2029 02504000
- CCW 49,REC9,CC+SILI,5 SEARCH ID EQUAL @V2A2029 02505000
- CCW 08,*-8,0,0 TIC BACK @V2A2029 02506000
- CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) @V2A2029 02507000
- CCW 49,REC10,CC+SILI,5 SEARCH ID EQUAL @V2A2029 02508000
- CCW 08,*-8,0,0 TIC BACK @V2A2029 02509000
- CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) @V2A2029 02510000
- CCW 07,SEEKF,CC+SILI,6 SEEK @V2A2029 02511000
- CCW 49,REC11,CC+SILI,5 SEARCH ID EQUAL @V2A2029 02512000
- CCW 08,*-8,0,0 TIC BACK @V2A2029 02513000
- CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) @V2A2029 02514000
- CCW 49,REC12,CC+SILI,5 SEARCH ID EQUAL @V2A2029 02515000
- CCW 08,*-8,0,0 TIC BACK @V2A2029 02516000
- CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) @V2A2029 02517000
- CCW 08,BITMAP,0,0 TIC TO WRITE REC 0 BIT MAP @V2A2029 02518000
- SPACE 3 02519000
- *********************************************************************** 02520000
- * WRITE CCW FOR 2305S 02521000
- ********************************************************************** 02522000
- SPACE 1 02523000
- SPACE 2 02524000
- DS 0D 02525000
- FMT2305 CCW 07,SEEKA,CC+SILI,6 SEEK 02526000
- CCW 31,FILEMASK,CC+SILI,1 SET FILE MASK 02527000
- CCW 21,SEEKA+2,CC+SILI,16 WRITE RECORD ZERO 02528000
- CCW 29,REC1,CC+SILI,8 WRITE 4096 PAGE 02529000
- CCW 29,RECX1,CC+SILI,8 02530000
- CCW 29,REC2,CC+SILI,8 WRITE 4096 PAGE 02531000
- CCW 29,RECX2,CC+SILI,8 02532000
- CCW 29,REC3,CC+SILI,8 WRITE 4096 PAGE 02533000
- CCW 07,SEEKB,CC+SILI,6 SEEK 02534000
- CCW 21,SEEKB+2,CC+SILI,16 WRITE RECORD ZERO 02535000
- CCW 29,REC4,CC+SILI,8 WRITE 4096 PAGE 02536000
- CCW 29,RECX4,CC+SILI,8 02537000
- CCW 29,REC5,CC+SILI,8 WRITE 4096 PAGE 02538000
- CCW 29,RECX5,CC+SILI,8 02539000
- CCW 29,REC6,CC+SILI,8 WRITE 4096 PAGE 02540000
- CCW 07,SEEKC,CC+SILI,6 SEEK 02541000
- CCW 21,SEEKC+2,CC+SILI,16 WRITE RECORD ZERO 02542000
- CCW 29,REC7,CC+SILI,8 WRITE 4096 PAGE 02543000
- CCW 29,RECX7,CC+SILI,8 02544000
- CCW 29,REC8,CC+SILI,8 WRITE 4096 PAGE 02545000
- CCW 29,RECX8,CC+SILI,8 02546000
- CCW 29,REC9,CC+SILI,8 WRITE 4096 PAGE 02547000
- CCW 07,SEEKD,CC+SILI,6 SEEK 02548000
- CCW 21,SEEKD+2,CC+SILI,16 WRITE RECORD ZERO 02549000
- CCW 29,REC10,CC+SILI,8 WRITE 4096 PAGE 02550000
- CCW 29,RECX10,CC+SILI,8 02551000
- CCW 29,REC11,CC+SILI,8 WRITE 4096 PAGE 02552000
- CCW 29,RECX11,CC+SILI,8 02553000
- CCW 29,REC12,CC+SILI,8 WRITE 4096 PAGE 02554000
- SPACE 2 02555000
- ****"****************************************************************** 02556000
- * READ CCW FOR NORMAL RECORDS 3340, 3330 AND 2305S * 02557000
- *********************************************************************** 02558000
- SPACE 1 02559000
- READCCW CCW 07,SEEKA,CC+SILI,6 SEEK 02560000
- CCW 49,REC1,CC+SILI,5 SEARCH ID EQUAL 02561000
- CCW 08,*-8,0,0 TIC BACK 02562000
- CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) 02563000
- CCW 49,REC2,CC+SILI,5 SEARCH ID EQUAL 02564000
- CCW 08,*-8,0,0 TIC BACK 02565000
- CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) 02566000
- CCW 49,REC3,CC+SILI,5 SEARCH ID EQUAL 02567000
- CCW 08,*-8,0,0 TIC BACK 02568000
- CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) 02569000
- CCW 07,SEEKB,CC+SILI,6 SEEK 02570000
- CCW 49,REC4,CC+SILI,5 SEARCH ID EQUAL 02571000
- CCW 08,*-8,0,0 TIC BACK 02572000
- CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) 02573000
- CCW 49,REC5,CC+SILI,5 SEARCH ID EQUAL 02574000
- CCW 08,*-8,0,0 TIC BACK 02575000
- CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) 02576000
- CCW 49,REC6,CC+SILI,5 SEARCH ID EQUAL 02577000
- CCW 08,*-8,0,0 TIC BACK 02578000
- CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) 02579000
- CCW 07,SEEKC,CC+SILI,6 SEEK 02580000
- CCW 49,REC7,CC+SILI,5 SEARCH ID EQUAL 02581000
- CCW 08,*-8,0,0 TIC BACK 02582000
- CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) 02583000
- CCW 49,REC8,CC+SILI,5 SEARCH ID EQUAL 02584000
- CCW 08,*-8,0,0 TIC BACK 02585000
- CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) 02586000
- CCW 49,REC9,CC+SILI,5 SEARCH ID EQUAL 02587000
- CCW 08,*-8,0,0 TIC BACK 02588000
- CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) 02589000
- RD57 CCW 08,NEXTREAD,0,0 USED ON 57TH REC 02590000
- NEXTREAD CCW 07,SEEKD,CC+SILI,6 SEEK 02591000
- CCW 49,REC10,CC+SILI,5 SEARCH ID EQUAL 02592000
- CCW 08,*-8,0,0 TIC BACK 02593000
- CCW 06,0,CC+SKIP,4096 READ DATA 1 PAGE 02594000
- CCW 49,REC11,CC+SILI,5 SEARCH ID EQUAL 02595000
- CCW 08,*-8,0,0 TIC BACK 02596000
- CCW 06,0,CC+SKIP,4096 READ DATA 1 PAGE 02597000
- CCW 49,REC12,CC+SILI,5 SEARCH ID EQUAL 02598000
- CCW 08,*-8,0,0 TIC BACK 02599000
- CCW 06,0,CC+SKIP,4096 READ DATA 1 PAGE 02600000
- CCW 08,BITMAP,0,0 TIC TO WRITE REC 0 BIT MAP 02601000
- SPACE 1 02602000
- *********************************************************************** 02603000
- * WRITE CCW FOR 3350 * 02604000
- *********************************************************************** 02605000
- SPACE 1 02606000
- DS 0D @V304498 02607000
- FMT3350 CCW 07,SEEKA,CC+SILI,6 SEEK @V304498 02608000
- CCW 31,FILEMASK,CC+SILI,1 SET FILE MASK @V304498 02609000
- CCW 49,SEEKA+2,CC+SILI,5 SEARCH ID EQUAL RECORD 0@V304498 02610000
- CCW 08,*-8,0,0 TIC BACK @V304498 02611000
- CCW 05,ZERO,CC+SILI,8 WRITE REC ZERO @V304498 02612000
- CCW 49,SEEKA+2,CC+SILI,5 SEARCH ID EQUAL RECORD 0@V304498 02613000
- CCW 08,*-8,0,0 TIC @V304498 02614000
- CCW 29,REC1,CC+SILI,8 WRITE 4096 PAGE @V304498 02615000
- CCW 29,RECX1,CC+SILI,8 @V304498 02616000
- CCW 29,REC2,CC+SILI,8 WRITE 4096 PAGE @V304498 02617000
- CCW 29,RECX2,CC+SILI,8 @V304498 02618000
- CCW 29,REC3,CC+SILI,8 WRITE 4096 PAGE @V304498 02619000
- CCW 29,RECX3,CC+SILI,8 @V304498 02620000
- CCW 29,REC4,CC+SILI,8 WRITE 4096 PAGE @V304498 02621000
- CCW 07,SEEKB,CC+SILI,6 SEEK @V304498 02622000
- CCW 49,SEEKB+2,CC+SILI,5 SEARCH ID EQUAL RECORD 0@V304498 02623000
- CCW 08,*-8,0,0 TIC BACK @V304498 02624000
- CCW 05,ZERO,CC+SILI,8 @V304498 02625000
- CCW 49,SEEKB+2,CC+SILI,5 SEARCH ID EQUAL RECORD 0@V304498 02626000
- CCW 08,*-8,0,0 TIC @V304498 02627000
- CCW 29,REC5,CC+SILI,8 WRITE 4096 PAGE @V304498 02628000
- CCW 29,RECX5,CC+SILI,8 @V304498 02629000
- CCW 29,REC6,CC+SILI,8 WRITE 4096 PAGE @V304498 02630000
- CCW 29,RECX6,CC+SILI,8 @V304498 02631000
- CCW 29,REC7,CC+SILI,8 WRITE 4096 PAGE @V304498 02632000
- CCW 29,RECX7,CC+SILI,8 @V304498 02633000
- CCW 29,REC8,CC+SILI,8 WRITE 4096 PAGE @V304498 02634000
- CCW 07,SEEKC,CC+SILI,6 SEEK @V304498 02635000
- CCW 49,SEEKC+2,CC+SILI,5 SEARCH ID EQUAL RECORD 0@V304498 02636000
- CCW 08,*-8,0,0 TIC BACK @V304498 02637000
- CCW 05,ZERO,CC+SILI,8 @V304498 02638000
- CCW 49,SEEKC+2,CC+SILI,5 SEARCH ID EQUAL RECORD 0@V304498 02639000
- CCW 08,*-8,0,0 TIC @V304498 02640000
- CCW 29,REC9,CC+SILI,8 WRITE 4096 PAGE @V304498 02641000
- CCW 29,RECX9,CC+SILI,8 @V304498 02642000
- CCW 29,REC10,CC+SILI,8 WRITE 4096 PAGE @V304498 02643000
- CCW 29,RECX10,CC+SILI,8 @V304498 02644000
- CCW 29,REC11,CC+SILI,8 WRITE 4096 PAGE @V304498 02645000
- CCW 29,RECX11,CC+SILI,8 @V304498 02646000
- CCW 29,REC12,CC+SILI,8 WRITE 4096 PAGE @V304498 02647000
- SPACE 1 02648000
- *********************************************************************** 02649000
- * READ CCWS FOR 3350 * 02650000
- *********************************************************************** 02651000
- SPACE 1 02652000
- CCW 07,SEEKA,CC+SILI,6 SEEK @V304498 02653000
- CCW 49,REC1,CC+SILI,5 SEARCH ID EQUAL @V304498 02654000
- CCW 08,*-8,0,0 TIC BACK @V304498 02655000
- CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) @V304498 02656000
- CCW 49,REC2,CC+SILI,5 SEARCH ID EQUAL @V304498 02657000
- CCW 08,*-8,0,0 TIC BACK @V304498 02658000
- CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) @V304498 02659000
- CCW 49,REC3,CC+SILI,5 SEARCH ID EQUAL @V304498 02660000
- CCW 08,*-8,0,0 TIC BACK @V304498 02661000
- CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) @V304498 02662000
- CCW 49,REC4,CC+SILI,5 SEARCH ID EQUAL @V304498 02663000
- CCW 08,*-8,0,0 TIC BACK @V304498 02664000
- CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) @V304498 02665000
- CCW 07,SEEKB,CC+SILI,6 SEEK @V304498 02666000
- CCW 49,REC5,CC+SILI,5 SEARCH ID EQUAL @V304498 02667000
- CCW 08,*-8,0,0 TIC BACK @V304498 02668000
- CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) @V304498 02669000
- CCW 49,REC6,CC+SILI,5 SEARCH ID EQUAL @V304498 02670000
- CCW 08,*-8,0,0 TIC BACK @V304498 02671000
- CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) @V304498 02672000
- CCW 49,REC7,CC+SILI,5 SEARCH ID EQUAL @V304498 02673000
- CCW 08,*-8,0,0 TIC BACK @V304498 02674000
- CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) @V304498 02675000
- CCW 49,REC8,CC+SILI,5 SEARCH ID EQUAL @V304498 02676000
- CCW 08,*-8,0,0 TIC BACK @V304498 02677000
- CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) @V304498 02678000
- CCW 07,SEEKC,CC+SILI,6 SEEK @V304498 02679000
- CCW 49,REC9,CC+SILI,5 SEARCH ID EQUAL @V304498 02680000
- CCW 08,*-8,0,0 TIC BACK @V304498 02681000
- CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) @V304498 02682000
- CCW 49,REC10,CC+SILI,5 SEARCH ID EQUAL @V304498 02683000
- CCW 08,*-8,0,0 TIC BACK @V304498 02684000
- CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) @V304498 02685000
- CCW 49,REC11,CC+SILI,5 SEARCH ID EQUAL @V304498 02686000
- CCW 08,*-8,0,0 TIC BACK @V304498 02687000
- CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) @V304498 02688000
- CCW 49,REC12,CC+SILI,5 SEARCH ID EQUAL @V304498 02689000
- CCW 08,*-8,0,0 TIC BACK @V304498 02690000
- CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) @V304498 02691000
- CCW 08,BITMAP,0,0 TIC TO WRITE REC 0 BIT MAP @V304498 02692000
- SPACE 1 02693000
- ********************************************************************** 02694000
- * * NORMAL FORMAT CCW * 02695000
- *********************************************************************** 02696000
- FMT2314 CCW 7,SEEKA,CC+SILI,6 SEEK 02697000
- CCW 31,FILEMASK,CC+SILI,1 SET FILE MASK 02698000
- CCW 25,SEEKA+1,CC+SILI,5 WHA WRITE HOME ADDRESS 02699000
- CCW 21,SEEKA+2,CC+SILI,16 WRITE RECORD 0 02700000
- CCW 29,R1STUF,CC+SILI,8 WCKD WRITE COUNT KEY DATA 02701000
- CCW 01,R2STUF,CC+SILI,8 SPCKD WR SPECIAL COUNT KEY DATA 02702000
- CCW 07,SEEKB,CC+SILI,6 02703000
- CCW 25,SEEKB+1,CC+SILI,5 02704000
- CCW 21,SEEKB+2,CC+SILI,16 02705000
- CCW 29,R2ASTUF,CC+SILI,8 02706000
- CCW 29,R3STUF,CC+SILI,8 02707000
- CCW 01,R4STUF,CC+SILI,8 02708000
- CCW 07,SEEKC,CC+SILI,6 02709000
- CCW 25,SEEKC+1,CC+SILI,5 02710000
- CCW 21,SEEKC+2,CC+SILI,16 02711000
- CCW 29,R4ASTUF,CC+SILI,8 02712000
- CCW 01,R5STUF,CC+SILI,8 02713000
- CCW 07,SEEKD,CC+SILI,6 02714000
- CCW 25,SEEKD+1,CC+SILI,5 02715000
- CCW 21,SEEKD+2,CC+SILI,16 02716000
- CCW 29,R5ASTUF,CC+SILI,8 02717000
- CCW 29,R6STUF,CC+SILI,8 02718000
- CCW 01,R7STUF,CC+SILI,8 02719000
- CCW 07,SEEKE,CC+SILI,6 02720000
- CCW 25,SEEKE+1,CC+SILI,5 02721000
- CCW 21,SEEKE+2,CC+SILI,16 02722000
- CCW 29,R7ASTUF,CC+SILI,8 02723000
- CCW 29,R8STUF,CC+SILI,8 02724000
- SPACE 1 02725000
- *********************************************************************** 02726000
- * * READ CCW'S 2314 2319 02727000
- *********************************************************************** 02728000
- CCW 07,SEEKA,CC+SILI,6 02729000
- CCW 49,R1STUF,CC+SILI,5 02730000
- CCW 08,*-8,0,0 02731000
- CCW 06,0,CC+SKIP,4096 02732000
- CCW 49,R2STUF,CC+SILI,5 02733000
- CCW 08,*-8,0,0 02734000
- CCW 06,0,CC+SKIP,4096 02735000
- CCW 07,SEEKB,CC,6 02736000
- CCW 49,R3STUF,CC,5 02737000
- CCW 08,*-8,0,0 02738000
- CCW 06,0,CC+SKIP,4096 02739000
- CCW 49,R4STUF,CC,5 02740000
- CCW 08,*-8,0,0 02741000
- CCW 06,0,CC+SKIP,4096 02742000
- CCW 07,SEEKC,CC,6 02743000
- CCW 49,R5STUF,CC,5 02744000
- CCW 08,*-8,0,0 02745000
- CCW 06,0,CC+SKIP,4096 02746000
- CCW 07,SEEKD,CC,6 02747000
- CCW 49,R6STUF,CC,5 02748000
- CCW 08,*-8,0,0 02749000
- CCW 06,0,CC+SKIP,4096 02750000
- CCW 49,R7STUF,CC,5 02751000
- CCW 08,*-8,0,0 02752000
- CCW 06,0,CC+SKIP,4096 02753000
- CCW 07,SEEKE,CC,6 02754000
- CCW 49,R8STUF,CC,5 02755000
- CCW 08,*-8,0,0 02756000
- CCW 06,01,CC+SKIP,4096 02757000
- SPACE 1 02758000
- *********************************************************************** 02759000
- * WRITE REC 0 BIT MAP FOR 2314,3330,3340,3350 OR 2305 * 02760000
- *********************************************************************** 02761000
- BITMAP CCW 07,SEEK0,CC,6 02762000
- CCW 49,SEEK0+2,CC,5 02763000
- CCW 08,*-8,0,0 02764000
- CCW 05,R0STUF,CC+SILI,8 REWRITE BIT MAP 02765000
- CCW 22,0,SKIP,16 READ REC 0 02766000
- SPACE 1 02767000
- SPACE 1 02768000
- *********************************************************************** 02769000
- * * * CCW'S FOR SPECIAL INFOR ON CYL 0 * 02770000
- *********************************************************************** 02771000
- SPEC2314 CCW 07,SEEKA,CC+SILI,6 CYL 0 HEAD 0 02772000
- CCW 31,FILEMASK,CC+SILI,1 02773000
- CCW 25,SEEKA+1,CC+SILI,5 02774000
- CCW 21,SEEKA+2,CC+SILI,16 R0 02775000
- CCW 29,R1SPEC,CC+SILI,8+24 IPL RECORD 02776000
- CCW 29,R2SPEC,CC+SILI,8 02777000
- CCW 29,R3VOL1,CC+SILI,8+84 VOL1 OS LABEL 02778000
- CCW 29,R4ALLOC,CC+SILI,8+1024 ALLOCATION MAP 02779000
- CCW 29,FORMAT4,CC+SILI,8+140 FORMAT4 RECORD 02780000
- CCW 29,FORMAT5,CC+SILI,8+140 FORMAT5 RECORD 02781000
- CCW 07,SEEKB,CC+SILI,6 02782000
- CCW 25,SEEKB+1,CC+SILI,5 02783000
- CCW 21,SEEKB+2,CC+SILI,16 02784000
- CCW 29,RF3,CC+SILI,8 ONE PAGE RECORD 02785000
- CCW 29,RF4SPEC,CC+SILI,8 02786000
- CCW 01,R4SPEC,CC+SILI,8 02787000
- VERIFY CCW 07,SEEKA,CC+SILI,6 SEEK 02788000
- CCW 26,0,CC+SKIP,5 READ HOME ADDRESS 02789000
- CCW 22,0,CC+SKIP,16 READ REC. ZERO 02790000
- CCW 30,0,CC+SKIP,8+24 READ COUNT KEY DATA IPL REC. 02791000
- CCW 30,0,CC+SKIP,8+4096 READ COUNT KEY DATA PAGE REC. 02792000
- CCW 30,0,CC+SKIP,8+84 READ COUNT KEY DATA VOL1 LABEL 02793000
- CCW 30,0,CC+SKIP,8+1024 READ COUNT KEY DATA ALLOC MAP 02794000
- CCW 30,0,CC+SKIP,8+140 READ COUNT KEY DATA FORMAT4 REC 02795000
- CCW 30,0,CC+SKIP,8+140 READ COUNT KEY DATA FORMAT5 REC. 02796000
- GO CCW 08,GO2314,0,0 GO 2314 OR 3330 DEPENDS ON DEV. 02797000
- GO2314 CCW 07,SEEKB,CC+SILI,6 SEEK TRACK 1 02798000
- CCW 26,0,CC+SKIP,5 READ HOME ADDRESS 02799000
- CCW 22,0,CC+SKIP,16 READ REC. ZERO 02800000
- CCW 30,0,CC+SKIP,8+4096 READ COUNT KEY DATA F3 PAGE 02801000
- CCW 30,0,CC+SKIP,8+1624 READ COUNT KEY DATA FILLER 02802000
- CCW 49,R4SPEC,CC+SILI,5 SEARCH ID EQUAL REC 4 02803000
- CCW 08,*-8,0,0 TIC BACK 02804000
- CCW 06,0,SKIP,4096 READ RECORD 4 FULLY 02805000
- GO3330 CCW 30,0,SKIP+SILI,8+4096 READ F3 PAGE RECORD @V2A2029 02806000
- ON3330 CCW 08,GO3330,0,0 USED TO ALTER OTHER TIC'S 02807000
- OFF3330 CCW 08,GO2314,0,0 USED TO ALTER OTHER TIC'S 02808000
- ON3340 CCW 04,0,SKIP+SILI,1 USED TO ALTER OTHER TIC'S @V2A2029 02809000
- ON57WRT CCW 08,READCCW,0,0 USED TO ALTER OTHER TIC'S 02810000
- OFF57WRT CCW 08,NEXTWRT,0,0 USED TO ALTER OTHER TIC'S 02811000
- ON57RD CCW 08,BITMAP,0,0 USED TO ALTER OTHER TIC'S 02812000
- OFF57RD CCW 08,NEXTREAD,0,0 USED TO ALTER OTHER TIC'S 02813000
- EJECT 02814000
- ********************************************************************** 02815000
- * GRAPHIC SUPPORT CCWS 02816000
- ********************************************************************** 02817000
- CRTWORD CCW X'27',SBACP,SILI+CC,2 SET BAR TO (STATUS WORD) @V200731 02818000
- CCW X'01',CPXYSTAT,SILI+CC,20 WRITE 'RUNNING' ON @V200731 02819000
- * SCREEN 02820000
- CCW X'27',SBAREAD,SILI+CC,2 SET BUFFER ADDR FOR @V200731 02821000
- * WRITE 02822000
- CCW X'01',BLNKZERO,SILI+CC,140 CLEAR INPUT AREA @VM08604 02823000
- CURS3066 CCW X'0F',SBAREAD,SILI+CC,2 REPOSITION CURSOR @V200731 02824000
- CCW X'03',*-*,SILI,3 END OF READ CCW STRING @V200731 02825000
- SPACE 2 02826000
- CRTWORD1 CCW X'01',LAB3270A,SILI+CC,LEN THE CONTROL DATA @VM08630 02827000
- CCW X'03',*-*,SILI,2 @V200731 02828000
- SPACE 2 02829000
- REQREAD CCW X'27',SBACP,SILI+CC,2 SET BUFFER ADDR TO CP X-Y @V200731 02830000
- CCW X'01',CPXYSTAT,SILI+CC,20 WRITE SCREEN STATUS @V200731 02831000
- CCW X'08',CURS3066,SILI,1 RESET CURSOR POSITION @V200731 02832000
- SPACE 2 02833000
- REQREAD1 CCW X'01',LAB3270B,SILI+CC,LEN1 THE CONTROL DATA @VM08630 02834000
- CCW X'03',*-*,SILI,2 @V200731 02835000
- SPACE 2 02836000
- ERSE3066 CCW X'07',*-*,SILI+CC,1 ERASE ENTIRE SCREEN @V200731 02837000
- WRTCRTXY CCW X'27',SBADDR,SILI+CC,2 SET CORRECT LINE IN @V200731 02838000
- * BUFFER 02839000
- WRT3066 CCW X'01',*-*,SILI+CC,140 WRITE OUT USER DATA @V200731 02840000
- CCW X'08',CRTWORD,SILI,1 NOW DISPLAY STATUS @V200731 02841000
- SPACE 2 02842000
- ERSE3270 CCW X'05',LAB3270E,SILI+CD,LEN3 ERASE THE SCREEN @V200731 02843000
- CCW X'00',CPXYSTAT,SILI+CC,20 WRITE SCREEN STATUS @V200731 02844000
- WRTCRT70 CCW X'01',LAB3270,SILI+CD,4 THE CONTROL DATA @V200731 02845000
- WRTCR70 CCW X'00',*-*,SILI+CD,0 THE WRITE CCW @V200731 02846000
- CCW X'00',LAB3270A+1,SILI+CC,LEN-1 WRITE SCREEN @V200731 02847000
- * STATUS 02848000
- CCW X'03',*-*,SILI,2 @V200731 02849000
- SPACE 2 02850000
- RDMI3066 CCW X'0E',RDMIDATA,SILI+CC,3 READ CCW FOR MI COMMAND@V200731 02851000
- RD3066 CCW X'27',SBAREAD,SILI+CC,2 SET BUFFER ADDR FOR READ@V200731 02852000
- RD3066DA CCW X'06',*-*,SILI+CC,140 READ INPUT DATA @V200731 02853000
- CCW X'08',CURS3066,SILI,1 REPOSITION CURSOR @V200731 02854000
- SPACE 2 02855000
- RDMI3270 CCW X'01',LAB3270D,SILI+CC,4 @V200731 02856000
- RD3270DA CCW X'06',*-*,SILI+CC,0 THE CCW FOR READ @V200731 02857000
- CCW X'03',*-*,SILI,2 @V200731 02858000
- SPACE 2 02859000
- CNCL3270 CCW X'01',LAB3270E,SILI+CD,LEN3 THE CONTROL DATA @V200731 02860000
- CCW X'00',CPXYSTAT,SILI+CC,20 WRITE SCREEN STATUS @V200731 02861000
- CCW X'03',*-*,SILI,2 @V200731 02862000
- SPACE 2 02863000
- CNCL3066 CCW X'07',*-*,SILI+CC,1 ERASE SCREEN @V200731 02864000
- CCW X'08',CRTWORD,SILI,1 NOW DISPLAY STATUS @V200731 02865000
- SPACE 2 02866000
- MORECCW1 CCW X'01',LAB3270C,SILI+CC,LEN2 THE CONTROL DATA @V200731 02867000
- CCW X'03',*-*,SILI,2 @V200731 02868000
- SPACE 2 02869000
- ********************************************************************** 02870000
- * FIRST DC ARE ADDRESSES FOR LINES 1 -6 02871000
- * SECOND DC ARE ADDRESSES FOR LINES 7 - 12 02872000
- * THIRD DC ARE ADDRESSES FOR LINES 13 - 18 02873000
- * FOURTH DC ARE ADDRESSES FOR LINES 19 - 24 02874000
- ********************************************************************* 02875000
- SPACE 2 02876000
- TABLE70 DS 0D @V200731 02877000
- DC X'4040C150C260C3F0C540C650' @V200731 02878000
- DC X'C760C8F04A404B504C604DF0' @V200731 02879000
- DC X'4F405050D160D2F0D440D550' @V200731 02880000
- DC X'D660D7F0D9405A505B605CF0' @V200731 02881000
- SPACE 2 02882000
- TABLGRAP EQU * @V200731 02883000
- DC X'0A',AL3(READ66) ADDRESS OF THE READ SECTION @V200731 02884000
- DC X'01',AL3(WRT66) ADDRESS OF THE WRITE SECTION @V200731 02885000
- DC X'09',AL3(WRT66) ADDRESS OF THE WRITE SECTION @V200731 02886000
- DC X'05',AL3(WRT66) ADDRESS OF THE WRITE SECTION @V200731 02887000
- DC X'03',AL3(RETWORD) ADDRESS OF THE RETURN SECTION@V200731 02888000
- SPACE 2 02889000
- * X'5B60' - LINE 23, COL. 1 02890000
- * X'5D6A' - LINE 24, COL. 59 02891000
- SPACE 2 02892000
- ********************************************************************** 02893000
- WC6 EQU X'C2' WRITE CONTROL BIT 6 @V200731 02894000
- AT7 EQU X'C1' ATTRIBUTE BIT 7 @V200731 02895000
- AT2 EQU X'E0' ATTRIBUTE BIT 2 @V200731 02896000
- LAC EQU X'C0' @V200731 02897000
- SF EQU X'1D' START OF FIELD CONTROL @V200731 02898000
- SBA EQU X'11' SET BUFFER ADDRESS @V200731 02899000
- IC EQU X'13' INSERT CURSOR @V200731 02900000
- EUA EQU X'12' ERASE UNPROTECTED @V200731 02901000
- RA EQU X'3C' REPEAT TO ADDRESS @V200731 02902000
- SPACE 2 02903000
- LAB3270A DC AL1(WC6),AL1(SBA),X'5B60',AL1(SF),AL1(AT7) @V200731 02904000
- DC AL1(IC),AL1(EUA),X'5D6B',AL1(SF),AL1(AT2) @V200731 02905000
- RUNLABEL DC CL20'RUNNING' @V200731 02906000
- LEN EQU *-LAB3270A @V200731 02907000
- LAB3270B DC AL1(WC6),AL1(SBA),X'5B60',AL1(SF),AL1(AT7) @V200731 02908000
- DC AL1(IC),AL1(SBA),X'5D6B',AL1(SF),AL1(AT2) @V200731 02909000
- REALABEL DC CL20'CP READ' @VM08531 02910000
- LEN1 EQU *-LAB3270B @V200731 02911000
- LAB3270C DC AL1(WC6),AL1(SBA),X'5D6B',AL1(SF),AL1(AT2) @V200731 02912000
- MORLABEL DC CL20'HOLDING' @V200731 02913000
- LEN2 EQU *-LAB3270C @V200731 02914000
- LAB3270D DC AL1(LAC),AL1(SBA),X'5B60' @V200731 02915000
- LAB3270 DC AL1(WC6),AL1(SBA),X'0000' @V200731 02916000
- LAB3270E DC AL1(WC6),AL1(SBA),X'4040',AL1(RA),X'5B60',X'00' @V200731 02917000
- DC AL1(SF),AL1(AT7),AL1(IC),AL1(SBA) @V200731 02918000
- DC X'5D6B',AL1(SF),AL1(AT2) @V200731 02919000
- LEN3 EQU *-LAB3270E @V200731 02920000
- SPACE 2 02921000
- ********************************************************************* 02922000
- PARM DC X'00' THE GRAPHIC FLAG BYTE @V200731 02923000
- PARMATT EQU X'80' ATTENTION REQUEST @V200731 02924000
- PARMGRP EQU X'40' GRAPHIC SUPPORT @V200731 02925000
- PARMREA EQU X'20' READ REQUEST @V200731 02926000
- PARMCLE EQU X'10' CLEAR/ERASE REQUEST @V200731 02927000
- PARM327 EQU X'08' 3270 GRAPHIC @V200731 02928000
- PARMNDA EQU X'04' NO DATA INDICATED @V200731 02929000
- PARM01F EQU X'02' 01F REQUESTED @V200731 02930000
- PARM321 EQU X'01' 3215/3210/1052 @V200731 02931000
- PARM2 DC X'00' SIO SWITCHES @V200731 02932000
- SIONOP EQU X'80' DEVICE NOT OPERATIONAL @V200731 02933000
- ********************************************************************** 02934000
- SPACE 2 02935000
- ********************************************************************* 02936000
- SBADDR DC AL1(00,00) CURRENT OUTPUT LINE COORDINATES @V200731 02937000
- * FOR THE 02938000
- * 3066 02939000
- SBACP DC AL1(34,60) COORDINATES FOR SCREEN 'STATUS' @V200731 02940000
- * WORD 02941000
- SBAREAD DC AL1(33,00) COORDINATES FOR CURSOR POSITION @V200731 02942000
- RDMIDATA DC XL6'00' READ DATA FROM 'MI' COMMAND @V200731 02943000
- CPXYSTAT DC CL20' ' SCREEN 'STATUS' WORD @V200731 02944000
- BLNKLINE DC XL140'00' CLEAR INPUT AREA FOR DATA @VM08604 02945000
- BLNKZERO DC CL140' ' BLANKS FOR READ AREA @VM08604 02946000
- GRAPHSAV DC 8F'00' SAVE AREA FOR GRAPHIC SUPPORT @V200731 02947000
- SAVEAREA DC 2F'00' SAVE AREA FOR GRAPHIC DATA @V200731 02948000
- * REGISTERS 02949000
- ********************************************************************* 02950000
- SPACE 1 02951000
- SPACE 1 02952000
- *********************************************************************** 02953000
- * * CCW TO PICKUP BROKEN CCW CHAIN * 02954000
- *********************************************************************** 02955000
- RESUMCCW CCW 31,FILEMASK,CC+SILI,1 02956000
- CCW 08,0,0,0 02957000
- DS 0F 02958000
- DS 1H 02959000
- SEEKA DC H'0' BB 02960000
- DC F'0' CCHH 02961000
- DC F'8' REC NO. AND DL OR R0 02962000
- R0STUF DC 2F'0' DATA FIELD OF R0 CYL BIT MAP 02963000
- DS 1H 02964000
- SEEKB DC H'0' 02965000
- DC F'1' 02966000
- DC F'8' 02967000
- DC 2F'0' 02968000
- DS 1H 02969000
- SEEKC DC H'0' 02970000
- DC F'2' 02971000
- DC F'8' 02972000
- DC 2F'0' 02973000
- DS 1H 02974000
- SEEKD DC H'0' 02975000
- DC F'3' 02976000
- DC F'8' 02977000
- DC 2F'0' 02978000
- DS 1H 02979000
- SEEKE DC H'0' 02980000
- DC F'4' 02981000
- DC F'8' 02982000
- DC 2F'0' 02983000
- DS 1H @V2A2029 02984000
- SEEKF DC H'0' @V2A2029 02985000
- DC F'5' @V2A2029 02986000
- DC F'8' @V2A2029 02987000
- DC 2F'0' @V2A2029 02988000
- SPACE 1 02989000
- *********************************************************************** 02990000
- * * 2314 DATA ADDRESS CYL 0 HD 0 * 02991000
- *********************************************************************** 02992000
- R1SPEC DC F'0' 02993000
- DC AL1(1),AL3(24) 02994000
- DC X'000200000000000C' WAIT PSW 02995000
- DC X'0300',H'0' 02996000
- DC X'2000',H'0' 02997000
- DC 2F'0' 02998000
- R2SPEC DC F'0' 02999000
- DC AL1(2),AL3(4096) 03000000
- R3VOL1 DC F'0' VOL1 COUNT 03001000
- DC AL1(3),AL1(4),AL2(80) REC KL DL DL 03002000
- VOL1 DC C'VOL1' KEY 03003000
- OSLABEL DC C'VOL1' 03004000
- CPLABEL DC C' NONE ' LABEL PLACED HERE 03005000
- DC X'F0' 03006000
- VTOCBEG DC XL4'0' PTR TO VTOC IN R3 (CCHH) @V56BDA8 03007000
- VTOCR DC X'05' ... (R) @V56BDA8 03008000
- DC XL5'0' 03009000
- DC 20XL1'40' 03010000
- DC XL5'00',C'CP370' VOLUME OWNER 03011000
- DC 29XL1'40' 03012000
- R4SEEK DC H'0' 03013000
- R4ALLOC DC F'0' CCHH 03014000
- DC AL1(4),AL3(1024) REC KL DL DL 03015000
- TABLE DC 256XL1'00' ALLOCATE TABLE 03016000
- TABLE1 DC 256XL1'00' 03017000
- TABLE2 DC 256XL1'00' 03018000
- TABLE3 DC 256XL1'00' 03019000
- FORMAT4 DC F'00' CCHH 03020000
- DC AL1(5),AL1(44),AL2(96) REC KL DL DL 03021000
- DC 44XL1'04' KEY OF HEX 04 03022000
- FMT4DATA DC X'F4' FMT4 DSCB IDENTIFIER @V56BDA8 03023000
- DC X'0000000000' CCHHR 03024000
- DC X'0000' 03025000
- NEXTCCHH DC XL4'0' CCHH OF NEXT AVAIL. ALT TRK @V56BDA8 03026000
- DC X'0000' 03027000
- DC X'00' VTOG INDICATORS 03028000
- DC X'01003C00140014' 03029000
- DC X'1C7E922D2D' 03030000
- DC X'0102160202' 03031000
- DC XL29'00' 03032000
- DC X'00' TRACK ZERO 03033000
- DC XL8'00' 03034000
- DC X'00' TRACK ZERO 03035000
- DC XL25'00' 03036000
- FORMAT5 DC F'0' CCHH 03037000
- DC AL1(6),AL1(44),AL2(96) REC KL DL DL 03038000
- DC 4XL1'05' 03039000
- DC X'0001000000' TRACK ZERO NO CYLINDERS NO TRACKS 03040000
- DC XL35'00' 03041000
- DC X'F5' 03042000
- DC XL90'00' 03043000
- DC XL5'00' 03044000
- RF3 DC F'1' 03045000
- DC X'F3',AL3(4096) 03046000
- RF4SPEC DC F'1' 03047000
- DC X'F4',AL3(1624) 03048000
- R4SPEC DC F'1' 03049000
- DC AL1(4),AL3(824) 03050000
- RF33330 DC F'0' FOR 3330 , 2305 03051000
- DC X'F3',AL3(4096) 03052000
- SPACE 1 03053000
- *********************************************************************** 03054000
- * * NORMAL DATA RECORDS * 03055000
- *********************************************************************** 03056000
- R1STUF DC F'0' 03057000
- DC AL1(1),AL3(4096) 03058000
- R2STUF DC F'0' 03059000
- DC AL1(2),AL3(2472) 03060000
- R2ASTUF DC F'1' 03061000
- DC AL1(2),AL3(1624) 03062000
- R3STUF DC F'1' 03063000
- DC AL1(3),AL3(4096) 03064000
- R4STUF DC F'1' 03065000
- DC AL1(4),AL3(824) 03066000
- R4ASTUF DC F'2' 03067000
- DC AL1(4),AL3(3272) 03068000
- R5STUF DC F'2' 03069000
- DC AL1(5),AL3(3296) 03070000
- R5ASTUF DC F'3' 03071000
- DC AL1(5),AL3(800) 03072000
- R6STUF DC F'3' 03073000
- DC AL1(6),AL3(4096) 03074000
- R7STUF DC F'3' 03075000
- DC AL1(7),AL3(1648) 03076000
- R7ASTUF DC F'4' 03077000
- DC AL1(7),AL3(2448) 03078000
- R8STUF DC F'4' 03079000
- DC AL1(8),AL3(4096) 03080000
- *********************************************************************** 03081000
- * * CONSTANTS * 03082000
- *********************************************************************** 03083000
- LTORG 03084000
- FLAG DC X'00' A OR F 03085000
- TYPE DC X'00' 14,03 OR 01 03086000
- TYP3350 EQU X'60' 3350 DEVICE CODE @V304498 03087000
- TYP334X EQU X'40' 3340/3344 DEVICE CODE @V56BDA8 03088000
- TYP3330 EQU X'30' 3330 DEVICE CODE @V304498 03089000
- RECN0 EQU X'00' RECORD NUMBER 0 @V304498 03090000
- RECN1 EQU X'01' RECORD NUMBER 1 @V304498 03091000
- RECN2 EQU X'02' RECORD NUMBER 2 @V304498 03092000
- RECN4 DC X'04' RECORD NUMBER 4 @V304498 03093000
- DSKADD DC H'0' DEVICE ADDRESS 03094000
- CONSOL DC H'9' 03095000
- ADDR1 DC X'5B5F' LOCATION LINE 22 COL 80 @V60A6B6 03096000
- ADDR2 DC X'5D6B' LOCATION LINE 24 COL 60 @V60A6B6 03097000
- ADDR3 DC X'D65F' LOCATION LINE 18 COL 80 @V60A6B6 03098000
- ADDR4 DC X'D86B' LOCATION LINE 20 COL 60 @V60A6B6 03099000
- ADDR5 DC X'4040' INITIALIZED ADDR @V60A6B6 03100000
- ADDR6 DC X'5B60' LOCATION LINE 23 COL 01 @V60A6B6 03101000
- ADDR7 DC X'D660' LOCATION LINE 19 COL 01 @V60A6B6 03102000
- DS 0F @V60A6B6 03103000
- MAXLEN DC F'0000' @V60A6B6 03104000
- LEN3270 DC F'1760' 3270 MOD2 24 LINE CONSOLE/TERM @V60A6B6 03105000
- LEN3278 DC F'1440' 3278 MOD2A 20 LINE CONSOLE @V60A6B6 03106000
- DS 0D 03107000
- WTPSW DC X'00020000' 03108000
- DC F'0' 03109000
- PRNUPSW DC F'0',A(PRCHK) 03110000
- MCNUPSW DC F'0',A(MCRTN) 03111000
- INDATA DC 132X'00' 03112000
- RECORD3 DC XL5'3' 03113000
- FILEMASK DC X'C0' 03114000
- MASKA DC X'F0F0F0' 03115000
- MASKB DC X'F0F0F0' 03116000
- FIELDA DC D'0' 03117000
- FIELDB DC D'0' 03118000
- BLANKS8 DC X'4040404040404040' BLANKS @VM08604 03119000
- FFS8 DC X'FFFFFFFFFFFFFFFF' FFS @VM08604 03120000
- TTAB DC C'0123456789ABCDEF' TRANSLATE TABLE 03121000
- SPACE 1 03122000
- SPEC3330 CCW 07,SEEKA,CC+SILI,6 CYL 0 HEAD 0 03123000
- CCW 31,FILEMASK,CC+SILI,1 03124000
- CCW 49,SEEKA+2,CC+SILI,5 SERCH ID EQUAL RECORD 0 03125000
- CCW 08,*-8,0,0 TIC BACK 03126000
- CCW 05,R0STUF,CC+SILI,8 R0 03127000
- CCW 49,SEEKA+2,CC+SILI,5 SERCH ID EQUAL RECORD 0 03128000
- CCW 08,*-8,0,0 TIC 03129000
- CCW 29,R1SPEC,CC+SILI,8+24 IPL RECORD 03130000
- CCW 29,R2SPEC,CC+SILI,8 03131000
- CCW 29,R3VOL1,CC+SILI,8+84 VOL1 OS LABEL 03132000
- CCW 29,R4ALLOC,CC+SILI,8+1024 ALLOCATION MAP 03133000
- CCW 29,FORMAT4,CC+SILI,8+140 FORMAT4 RECORD 03134000
- CCW 29,FORMAT5,CC+SILI,8+140 FORMAT5 RECORD 03135000
- NOP3340 CCW 29,RF33330,CC+SILI,8 ONE PAGE RECORD @VA05293 03136000
- CCW 08,VERIFY,0,0 VERIFY WHAT WAS WRITTEN 03137000
- SPACE 03138000
- DS 0D @V56BDA8 03139000
- RDFMT4 CCW 7,SEEKA,CC,6 RD FMT4 AS SPECIFIED IN VTOC @V56BDA8 03140000
- CCW 31,FILEMASK,CC,1 SFM @V56BDA8 03141000
- CCW 49,VTOCBEG,CC+SILI,5 SRCH ID @V56BDA8 03142000
- CCW 8,*-8,0,0 TIC @V56BDA8 03143000
- CCW 6,FMT4DATA,SILI,96 READ FMT4 LABEL @V56BDA8 03144000
- SPACE 03145000
- L1 EQU 1 FOR USE AS SYMBLOIC LENGTH. @V56BDA8 03146000
- L4 EQU 4 FOR USE AS SYMBOLIC LENGTH. @V56BDA8 03147000
- L8 EQU 8 FOR USE AS SYMBOLIC LENGTH. @V56BDA8 03148000
- EJECT 03149000
- *********************************************************************** 03150000
- * 03151000
- * ALTCHK: CHECKS POINTERS IN FLAGGED PRIMARY TRACK AND ALTERNATE 03152000
- * TRACK TO SEE THAT EACH POINTS TO THE OTHER. AND RETURNS 03153000
- * CCHH ADDRESS OF WHICHEVER WE ARE CURRENTLY NOT AT. 03154000
- * 03155000
- *********************************************************************** 03156000
- * 03157000
- * INPUTS: R8 = ADDRESS OF THIS ROUTINE (REQUIRED FOR INITIAL 03158000
- * ADDRESSABILITY). 03159000
- * R7 = RETURN ADDRESS. 03160000
- * OUTPUTS: R1 = -1 IF TRACKS DO NOT POINT TO EACH OTHER CORRECTLY, 03161000
- * OTHERWISE... 03162000
- * R1 = CCHH ADDRESS OF WHICHEVER OF THE TWO TRACKS WE 03163000
- * WERE NOT AT WHEN THE TRACK CONDITION CHECK WAS 03164000
- * DETECTED. 03165000
- * R0 = 0 IF CCHH IN R1 POINTS TO THE ASSIGNED ALTERNATE. 03166000
- * R0 = 1 IF CCHH IN R1 POINTS TO THE DEFECTIVE PRIMARY. 03167000
- * 03168000
- * OPERATION: TWO I/O OPERATIONS HAVE TO BE SCHEDULED FROM HERE WHICH 03169000
- * MEANS THAT TWICE, CONTROL WILL HAVE TO LEAVE THIS 03170000
- * SUBROUTINE AND COME BACK IN BEFORE WE CAN RETURN TO 03171000
- * OUR CALLER. THIS IS ACCOMPLISHED BY BRANCHING OUT TO 03172000
- * 'STIO' TO INITIATE I/O AND BY SETTING A SPECIAL FLAG 03173000
- * THAT THE I/O INTERRUPT HANDLER RECOGNIZES AS A SIGNAL 03174000
- * TO RE-ENTER THIS ROUTINE. THE I/O HANDLER CHECKS FOR 03175000
- * ERRORS BEFORE CHECKING OUR FLAG, SO ERROR RECOVERY 03176000
- * CAN BE TRIED ON OUR I/O IF NECESSARY. 03177000
- * 03178000
- *********************************************************************** 03179000
- USING ALTCHK,R8 @V56BDA8 03180000
- ALTCHK STM R2,R7,ALTCHKSV @V56BDA8 03181000
- LR R6,R8 @V56BDA8 03182000
- DROP R8 @V56BDA8 03183000
- USING ALTCHK,R6 @V56BDA8 03184000
- L R8,=A(SENSCCHH) SUBROUTINE TO BE CALLED. @V56BDA8 03185000
- BALR R7,R8 CALL ROUTINE TO RETURN IN R1 THE @V56BDA8 03186000
- * CCHH ADDRESS OF TRACK WE ARE CURRENTLY 03187000
- * ON. (FROM SENSE DATA, READ AT THE TIME 03188000
- * OF THE TRACK CONDITION CHECK.) 03189000
- STCM R1,15,CCHHR SAVE CCHH FOR POSSIBLE CALL TO @VMG0004 03190000
- * SENSIT2. 03191000
- MVI CCHHR+4,X'00' SET R OF CCHHR TO 0 FOR SENSIT2. @VMG0004 03192000
- ST R1,CCHHSV SAVE CURRENT TRK FOR COMPARISON @V56BDA8 03193000
- * WITH 03194000
- * BACKWARD POINTER FURTHER ON. 03195000
- STCM R1,15,HAR0SKAD+2 STORE CCHH FOR SEEK CCW TO @V56BDA8 03196000
- * ACCESS 03197000
- LA R1,READHAR0 ADDR OF CHNL PRG TO READ HA, R0. @V56BDA8 03198000
- ST R1,CAW SET FOR SIO. @V56BDA8 03199000
- MVI ALTFLAG,HAR0READ FLAG TELLS INTERRUPT HANDLER @V56BDA8 03200000
- * THAT ALT TRK RECOVERY IS IN PROGRESS 03201000
- * AND THAT CONTROL IS TO BE RETURNED 03202000
- * TO THIS ROUTINE. 03203000
- LA R1,ALTCHK2 POINT TO GET CONTROL UPON @V56BDA8 03204000
- * RETURN HERE AFTER I/O COMPLETES. 03205000
- ST R1,CONTINAD SAVE FOR INTERRUPT HANDLER. @V56BDA8 03206000
- B STIO2 START CHNL PRG TO READ HA, R0. @VMG0004 03207000
- SPACE 03208000
- USING ALTCHK2,R6 @V56BDA8 03209000
- ALTCHK2 MVC HAFLAGSV(L1),HADATA SAVE FLAG BYTE FROM HA. @V56BDA8 03210000
- MVC HAR0SKAD+2(L4),R0DATA USE CCHH POINTER TO OTHER @V56BDA8 03211000
- * TRK AS NEXT SEEK ADDR. 03212000
- LA R1,ALTCHK3 POINT TO GET CONTROL AFTER IO END@V56BDA8 03213000
- ST R1,CONTINAD SAVE FOR INTERRUPT HANDLER. @V56BDA8 03214000
- B STIO2 START SAME CHNL PRG TO READ HA, @VMG0004 03215000
- * R0, BUT FROM THE OTHER TRACK THIS TIME. 03216000
- SPACE 03217000
- USING ALTCHK3,R6 @V56BDA8 03218000
- ALTCHK3 SR R0,R0 @V56BDA8 03219000
- SR R1,R1 0 IN R1. @V56BDA8 03220000
- BCTR R1,0 -1 IN R1 IN CASE OF ERROR EXIT. @V56BDA8 03221000
- TM HADATA,X'03' TEST TRACK USAGE BITS IN HA FLAG @V56BDA8 03222000
- * BYTE (NOTE: REMEMBER THIS FLAG CAN BE 03223000
- * FROM EITHER THE PRIMARY OR THE ALTERNATE 03224000
- * DEPENDING UPON WHERE WE WERE WHEN THIS 03225000
- * ROUTINE WAS CALLED.) 03226000
- BNM ALTCHKEX IF NOT MIXED, EXIT WITH ERROR @V56BDA8 03227000
- * FLAG IN R1. BOTH BITS 0 OR BOTH BITS 1 03228000
- * IS FORBIDDEN. 03229000
- CLC CCHHSV(L4),R0DATA DOES 2ND TRK POINT BACK TO 1ST@V56BDA8 03230000
- BNE ALTCHKEX NO, EXIT WITH -1 IN R1. @V56BDA8 03231000
- * 03232000
- * YES, BUT IT STILL MIGHT BE A SINGLE TRK POINTING TO ITSELF. 03233000
- * SO CHECK FLAG BYTES, SEE IF ONE AND ONLY ONE OF THEM IS 03234000
- * AN ASSIGNED ALTERNATE. 03235000
- * 03236000
- XC HADATA(L1),HAFLAGSV XC OLD FLAG BYTE INTO NEW @V56BDA8 03237000
- * FLAG BYTE. 03238000
- TM HADATA,X'01' BIT REMAINING ON IN FLAG BYTE @V56BDA8 03239000
- * MEANS ONE AND ONLY ONE WAS ALTERNATE. 03240000
- BNO ALTCHKEX ERROR, NEITHER WAS ALTERNATE. @V56BDA8 03241000
- ICM R1,15,HAR0SKAD+2 RETURN CCHH OF 2ND TRACK. @V56BDA8 03242000
- NI HAFLAGSV,X'01' CLEAR 1ST BYTE OF ALL BUT 'TRACK @V56BDA8 03243000
- * USAGE' BIT. 03244000
- IC R0,HAFLAGSV 'TRACK USAGE' BIT IN 1ST FLAG @V56BDA8 03245000
- * BYTE IS INVERSE OF BIT IN 2ND FLAG BYTE 03246000
- * THAT CCHH IN R1 POINTS TO. 03247000
- ALTCHKEX MVI ALTFLAG,0 TURN OFF SIGNAL TO INTERRUPT HDLR@V56BDA8 03248000
- LM R2,R7,ALTCHKSV @V56BDA8 03249000
- BR R7 RETURN @V56BDA8 03250000
- DROP R6 @V56BDA8 03251000
- *********************************************************************** 03252000
- READHAR0 CCW X'07',HAR0SKAD,CC+SILI,6 SEEK @V56BDA8 03253000
- CCW X'1A',HADATA,CC+SILI,5 READ HA @V56BDA8 03254000
- CCW X'16',R0DATA,SILI,4 READ R0 @V56BDA8 03255000
- HAR0SKAD DC XL6'0' 00CCHH SEEK ADDRESS @V56BDA8 03256000
- HADATA DS XL5 FLAG BYTE + CCHH READ FROM HA. @V56BDA8 03257000
- HAFLAGSV DS XL1 FLAG BYTE FROM 1ST OF 2 READS @V56BDA8 03258000
- * SAVED HERE. 03259000
- CCHHSV DS XL4 @V56BDA8 03260000
- R0DATA DS XL4 CCHH DATA FROM COUNT FLD OF R0. @V56BDA8 03261000
- ALTCHKSV DS 6F REGISTER SAVE AREA. @V56BDA8 03262000
- EJECT 03263000
- *********************************************************************** 03264000
- * 03265000
- * SENSCCHH: COMPUTES CCHH FROM SENSE DATA READ PREVIOUSLY AND 03266000
- * RETURNS IT IN R1. 03267000
- * 03268000
- *********************************************************************** 03269000
- * 03270000
- * INPUTS: R8 = ADDRESS OF THIS ROUTINE (REQUIRED FOR INITIAL 03271000
- * ADDRESSABILITY). 03272000
- * R7 = RETURN ADDRESS. 03273000
- * OUTPUTS: R1 = CCHH DATA TAKEN FROM SENSE DATA BUFFER. 03274000
- * 03275000
- *********************************************************************** 03276000
- USING SENSCCHH,R8 @V56BDA8 03277000
- SENSCCHH IC R1,SENSE+6 @V56BDA8 03278000
- SRL R1,5 CYL BITS 512, 256 RIGHT JUSTIFIED@V56BDA8 03279000
- STC R1,SENSWORK @V56BDA8 03280000
- NI SENSWORK,X'03' CLEAR ALL BUT BITS 512, 256. @V56BDA8 03281000
- MVC SENSWORK+1(L1),SENSE+5 LOW ORDER CYL ADDR. @V56BDA8 03282000
- MVN SENSWORK+3(L1),SENSE+6 HEAD ADDRESS. @V56BDA8 03283000
- L R1,SENSWORK @V56BDA8 03284000
- BR R7 @V56BDA8 03285000
- DROP R8 @V56BDA8 03286000
- *********************************************************************** 03287000
- SENSWORK DC F'0' @V56BDA8 03288000
- SPACE 6 03289000
- LTORG @V56BDA8 03290000
- EJECT 03291000
- COPY EQU 03292000
- PSA 03293000
- END DMKFMT 03294000
ibm/vm370-lib/cp/dmkfmt.assemble_src.txt ยท Last modified: 2023/08/06 13:37 by Site Administrator