Date Tuesday Jan 01, 2013 05:53:00 PM
Loaded from MAINT(094)
HRC011DK: ./ R 00001000 03294000 $ 1990 990 03/02/06 19:30:26
HRC011DK: FMT TITLE 'DMKFMT (CP) VM/370 - RELEASE 6' 00001000
HRC011DK: ISEQ 73,80 VALIDATE SEQUENCING OF SOURCE 00002000
HRC011DK: *.1******************************************************************** 00003000
HRC011DK: * 00004000
HRC011DK: * MODULE NAME - *----------------* 00005000
HRC011DK: * * DMKFMT * 00006000
HRC011DK: * *----------------* 00007000
HRC011DK: * 00008000
HRC011DK: * EXECUTABLE ENTRY POINTS - 00009000
HRC011DK: * 00010000
HRC011DK: * DMKFMT - FORMAT/ALLOCATE PROGRAM ENTRY POINT 00011000
HRC011DK: * 00012000
HRC011DK: * 00013000
HRC011DK: * DESCRIPTIVE NAME - 00014000
HRC011DK: * 00015000
HRC011DK: * FORMAT/ALLOCATE STAND-ALONE UTILITY PROGRAM 00016000
HRC011DK: * 00017000
HRC011DK: * FUNCTION - 00018000
HRC011DK: * 00019000
HRC011DK: * USE THE FORMAT/ALLOCATE PROGRAM TO PERFORM PARTIAL OR COMPLETE 00020000
HRC011DK: * CP FORMATTING, ALLOCATION, AND LABELLING OF CP-OWNED DASD 00021000
HRC011DK: * PACKS. PARAMETERS ARE ACCEPTED FROM A CONSOLE OR THE IPL 00022000
HRC011DK: * DEVICE (CARD READER). 00023000
HRC011DK: * 00024000
HRC011DK: * NOTES - 00025000
HRC011DK: * 00026000
HRC011DK: * DEPENDENCIES - 00027000
HRC011DK: * 00028000
HRC011DK: * MUST BE RUN IN A STAND-ALONE ENVIRONMENT, EITHER IN 00029000
HRC011DK: * A VIRTUAL MACHINE OR A BARE MACHINE. 00030000
HRC011DK: * 00031000
HRC011DK: * SYSTEM GLOBAL REGISTER USAGE - 00032000
HRC011DK: * 00033000
HRC011DK: * NON-GLOBAL USAGE IS DEFINED IN ENTRY POINT PROLOG 00034000
HRC011DK: * 00035000
HRC011DK: * R0 - PSA ADDRESSABILITY 00036000
HRC011DK: * R12 - DMKFMT BASE REGISTER 00037000
HRC011DK: * 00038000
HRC011DK: * TERMINOLOGY - 00039000
HRC011DK: * 00040000
HRC011DK: * FORMAT - FILL THE PACK WITH ZERO DATA EXCEPT FOR 00041000
HRC011DK: * CYLINDER 0, TRACK 0, WHICH IS FILLED WITH 00042000
HRC011DK: * CP SPECIFIC DATA. 00043000
HRC011DK: * ALLOCATE - DEFINE CERTAIN SECTIONS OF THE PACK AS 00044000
HRC011DK: * SPACE TO BE USED BY CP FOR SPOOLING, PAGING, 00045000
HRC011DK: * USER MINIDISKS, ETC. 00046000
HRC011DK: * 00047000
HRC011DK: * MODULE TYPE - CSECT 00048000
HRC011DK: * 00049000
HRC011DK: * PROCESSOR - ASSEMBLER XF 00050000
HRC011DK: * 00051000
HRC011DK: * MODULE DESIGN POINT - 24K 00052000
HRC011DK: * 00053000
HRC011DK: * ATTRIBUTES - STAND-ALONE UTILITY PROGRAM 00054000
HRC011DK: * 00055000
HRC011DK: * ENTRY POINT - SEE THE ENTRY POINT PROLOG 00056000
HRC011DK: * 00057000
HRC011DK: * INPUT - SEE THE ENTRY POINT PROLOG 00058000
HRC011DK: * 00059000
HRC011DK: * OUTPUT - SEE THE ENTRY POINT PROLOG 00060000
HRC011DK: * 00061000
HRC011DK: * EXIT, NORMAL - SEE THE ENTRY POINT PROLOG 00062000
HRC011DK: * 00063000
HRC011DK: * EXIT, ERROR - SEE THE ENTRY POINT PROLOG 00064000
HRC011DK: * 00065000
HRC011DK: * EXTERNAL REFERENCES - SEE THE ENTRY POINT PROLOG 00066000
HRC011DK: * 00067000
HRC011DK: * TABLES - SEE THE ENTRY POINT PROLOG 00068000
HRC011DK: * 00069000
HRC011DK: * MACROS - NONE 00070000
HRC011DK: * 00071000
HRC011DK: * CHANGE ACTIVITY - 00072000
HRC011DK: * 00073000
HRC011DK: * THE S&D CODE OF EACH ADDED/CHANGED LINE WILL BE UPDATED TO 00074000
HRC011DK: * REFLECT SERVICE AND NEW DEVELOPMENT IN THIS MODULE. 00075000
HRC011DK: * 00076000
HRC011DK: *.$******************************************************************** 00077000
HRC011DK: EJECT , 00078000
HRC011DK: *.2******************************************************************** 00079000
HRC011DK: * 00080000
HRC011DK: * ENTRY POINT NAME *---------------* 00081000
HRC011DK: * * DMKFMT * 00082000
HRC011DK: * *---------------* 00083000
HRC011DK: * 00084000
HRC011DK: * DESCRIPTIVE NAME - 00085000
HRC011DK: * 00086000
HRC011DK: * FORMAT/ALLOCATE PROGRAM ENTRY POINT 00087000
HRC011DK: * 00088000
HRC011DK: * FUNCTION - 00089000
HRC011DK: * 00090000
HRC011DK: * TO ACCEPT PARAMETERS FROM THE CONSOLE OR IPL DEVICE (CARD READER) 00091000
HRC011DK: * AND PERFORM PARTIAL OR COMPLETE FORMATTING, ALLOCATION, AND LABELLING 00092000
HRC011DK: * OF CKD TYPE DASD DEVICES. THE FORMAT PROGRAM WILL ALSO DO 00093000
HRC011DK: * WRITE CHECKING TO VERIFY THAT PAGES ARE FORMATTED CORRECTLY. A COUNT 00094000
HRC011DK: * OF "ERROR" PAGES WILL BE MAINTAINED. NO ALTERNATES WILL BE ASSIGNED. 00095000
HRC011DK: * ALL PARAMETER INPUT WILL BE VERIFIED FOR CORRECTNESS. FOR COMMAND 00096000
HRC011DK: * SYNTAX, REFER TO THE BLOCK COMMENTS. 00097000
HRC011DK: * 00098000
HRC011DK: * ENTRY CONDITIONS - 00099000
HRC011DK: * 00100000
HRC011DK: * NONE WHEN IN A STAND-ALONE ENVIRONMENT 00101000
HRC011DK: * 00102000
HRC011DK: * NORMAL EXIT CONDITIONS - 00103000
HRC011DK: * 00104000
HRC011DK: * IN A STAND-ALONE ENVIRONMENT, A WAIT STATE IS ENTERED AND 00105000
HRC011DK: * THE USER WILL HAVE TO RE-IPL. 00106000
HRC011DK: * 00107000
HRC011DK: * ERROR EXIT CONDITIONS - 00108000
HRC011DK: * 00109000
HRC011DK: * RETURN CONTROL TO START OF PROGRAM 00110000
HRC011DK: * 00111000
HRC011DK: * NOTES - 00112000
HRC011DK: * 00113000
HRC011DK: * NON-GLOBAL REGISTER USAGE - 00114000
HRC011DK: * 00115000
HRC011DK: * R15 - 1ST BASE REGISTER 00116000
HRC011DK: * R12 - 2ND BASE REGISTER 00117000
HRC011DK: * R11 - 3RD BASE REGISTER 00118000
HRC011DK: * R13 - 4TH BASE REGISTER 00119000
HRC011DK: * R8 - 5TH BASE REGISTER 00120000
HRC011DK: * R14 - LINKAGE REGISTER 00121000
HRC011DK: * 00122000
HRC011DK: * REGISTERS 0-7 AND 9-10 ARE USED AS WORK REGISTERS. 00123000
HRC011DK: * 00124000
HRC011DK: * TABLE USAGE - 00125000
HRC011DK: * 00126000
HRC011DK: * DFODATA - DEVICE DATA AND FORMATTING PROCEDURE TABLE 00127000
HRC011DK: * LOCDATA - LOCATE RECORD DATA TABLE 00128000
HRC011DK: * EXTMAP - ALLOCATION EXTENT MAP 00129000
HRC011DK: * 00130000
HRC011DK: * NUMBERED MESSAGES 00131000
HRC011DK: * 00132000
HRC011DK: * DMKFMT536I XXX REPORTS DISABLED INTERFACE; FLT CODE = XXXX; NOTIFY CE 00133000
HRC011DK: * DMKFMT730E DEV XXX NOT OPERATIONAL OR NOT READY 00134000
HRC011DK: * DMKFMT732E MACHINE CHECK 00135000
HRC011DK: * DMKFMT733E VOLID READ IS VOLID1 NOT VOLID2 00136000
HRC011DK: * (VOLID1 = VOLUME SERIAL NUMBER FROM THE DASD DEVICE. 00137000
HRC011DK: * VOLID2 = VOLUME SERIAL NUMBER FROM THE CONTROL STATEMENT.) 00138000
HRC011DK: * DMKFMT734E TYPE OR CYL INVALID 00139000
HRC011DK: * DMKFMT735E FATAL DASD I/O ERROR. CSW=XXXXXXXXXXXXXXX 00140000
HRC011DK: * DMKFMT736E IO ERROR XXX CCHHR = XXXXXXXXXX 00141000
HRC011DK: * SENSE = XXXX...XXXX (UP TO 64 DIGITS) 00142000
HRC011DK: * DMKFMT737E INVALID OPERAND 00143000
HRC011DK: * DMKFMT738A DEVICE XXX INTERVENTION REQUIRED 00144000
HRC011DK: * DMKFMT739E FLAGGED PRIMARY TRACK HAS NO ALTERNATE ASSIGNED, I/O ERROR 00145000
HRC011DK: * FOLLOWS 00146000
HRC011DK: * DMKFMT740E PACK MOUNTED IS 3340-35, NOT 3340-70. MOUNT ANOTHER OR 00147000
HRC011DK: * RESPECIFY 00148000
HRC011DK: * DMKFMT741E DEVICE CUU IS YYYY, NOT YYYY-ZZ AS SPECIFIED. RESPECIFY 00149000
HRC011DK: * OR NOTIFY SYSTEM SUPPORT 00150000
HRC011DK: * DMKFMT742E ALLOCATION FUNCTION NOT ALLOWED - FORMAT OF VOLUME IS A 00151000
HRC011DK: * PREREQUISITE 00152000
HRC011DK: * DMKFMT744E I/O ERROR XXX CODE=E4 CSW=XXXXXXXXXXXXXXXX 00153000
HRC011DK: * DMKFMT756E PROGRAM CHECK PSW = XXXXXXXXXXXXXXXX 00154000
HRC011DK: * 00155000
HRC011DK: * RESPONSES - 00156000
HRC011DK: * 00157000
HRC011DK: * VM/370 FORMAT/ALLOCATE PROGRAM RELEASE 6 00158000
HRC011DK: * ENTER FORMAT OR ALLOCATE: 00159000
HRC011DK: * FORMAT FUNCTION SELECTED 00160000
HRC011DK: * ALLOCATE FUNCTION SELECTED 00161000
HRC011DK: * ENTER DEVICE ADDRESS (CUU): 00162000
HRC011DK: * ENTER DEVICE TYPE: 00163000
HRC011DK: * ENTER ALLOCATION DATA FOR VOLUME xxxxxx 00164000
HRC011DK: * TYPE CYL CYL 00165000
HRC011DK: * .... .... .... (TYPE IN 3 OR 4 DIGIT NUMBERS) 00166000
HRC011DK: * DEVICE XXX VOLUME XXXXXX ALLOCATION ENDED 00167000
HRC011DK: * ENTER START CYLINDER (XXX OR XXXX) OR "LABEL": 00168000
HRC011DK: * ENTER END CYLINDER (XXX OR XXXX): 00169000
HRC011DK: * WRITE VERIFICATION NOT PERFORMED UNLESS REQUESTED. 00170000
HRC011DK: * ENTER "YES" FOR WRITE VERIFICATION: 00171000
HRC011DK: * FORMAT STARTED 00172000
HRC011DK: * ENTER DEVICE LABEL: 00173000
HRC011DK: * FORMAT DONE 00174000
HRC011DK: * WRITE VERIFICATION WAS NOT PERFORMED 00175000
HRC011DK: * XXXX PAGE RECORDS FLAGGED 00176000
HRC011DK: * ALLOCATION RESULTS 00177000
HRC011DK: * TEMP XXXX XXXX 00178000
HRC011DK: * PERM XXXX XXXX 00179000
HRC011DK: * TDSK XXXX XXXX 00180000
HRC011DK: * DRCT XXXX XXXX 00181000
HRC011DK: * LABEL IS NOW XXXXXX 00182000
HRC011DK: * XXXX NO. PAGE RECORDS WITH READ-CHECK ERRORS 00183000
HRC011DK: * NUMBER OF EXTENTS EXCEEDS MAXIMUM - RESPECIFY 00184000
HRC011DK: * NO VALID ALLOCATION RECORD. ALLOCATE ENTIRE VOLUME OR 00185000
HRC011DK: * FORMAT PAGE 0 00186000
HRC011DK: * LOWEST ALLOCATABLE PAGE IS PAGE 2 - RESPECIFY 00187000
HRC011DK: * PAGE NUMBER INVALID - RESPECIFY 00188000
HRC011DK: * TYPE IS INVALID - RESPECIFY 00189000
HRC011DK: * 00190000
HRC011DK: * OPERATION - 00191000
HRC011DK: * 00192000
HRC011DK: * SEE BLOCK COMMENTS FOR DETAILED OPERATIONS 00193000
HRC011DK: * 00194000
HRC011DK: * THIS PROGRAM WILL FORMAT (FULL OR PARTIAL), ALLOCATE, AND 00195000
HRC011DK: * LABEL DASD DEVICES USING CONSOLE OR CARD INPUT. THE DEVICES 00196000
HRC011DK: * WILL BE FORMATTED WITH 4K BYTE SIZE RECORDS. THE CARD DEVICE 00197000
HRC011DK: * WILL BE SELECTED IF INPUT FOLLOWS THE IPL DECK AT IPL TIME. 00198000
HRC011DK: * IF NO INPUT FOLLOWS THE IPL DECK THEN THE CONSOLE WILL BE 00199000
HRC011DK: * SELECTED. VOLUME LABELS WILL BE CHECKED FOR ALL OPERATIONS 00200000
HRC011DK: * THE FORMATTING OF CYLINDER OR PAGE 0 AND LABELLING. CERTAIN 00201000
HRC011DK: * ERRORS DURING I/O ARE CONSIDERED FATAL AND THE FORMAT FUNCTION 00202000
HRC011DK: * IS ABORTED. OTHER I/O ERRORS ARE TREATED AS SOFT ERRORS. AT 00203000
HRC011DK: * THE END OF A RUN THE NUMBER OF "SOFT ERROR" RECORDS IS PRINTED 00204000
HRC011DK: * OUT. FOR LABELLING, VOLUME LABELS MUST BE SIX CHARACTERS LONG 00205000
HRC011DK: * THE ALLOCATION FUNCTION OF THIS PROGRAM SIMPLY PROMPTS FOR THE 00206000
HRC011DK: * TYPE OF ALLOCATION AND UPDATES RECORD 4 ON CYLINDER 0 HEAD 0. 00207000
HRC011DK: * 00208000
HRC011DK: * A. INITIALIZE PROGRAM, AND AFTER IPL, SAVE IPL DEVICE ADDRESS. 00209000
HRC011DK: * LOCATE CONSOLE AND GET CONSOLE ADDRESS. 00210000
HRC011DK: * 00211000
HRC011DK: * B. TEST FOR CARD INPUT OR CONSOLE INPUT AND WAIT FOR ATTENTION 00212000
HRC011DK: * INTERRUPT. 00213000
HRC011DK: * 00214000
HRC011DK: * C. IF PARAMETER INPUT IS IN IPL DEVICE, READ IN ONE FUNCTION 00215000
HRC011DK: * TO BE DONE AND VALIDATE CARD INPUT. USE CONSOLE TO PRINT 00216000
HRC011DK: * FUNCTIONS TO BE EXECUTED. IF NO IPL DEVICE INPUT, USE 00217000
HRC011DK: * CONSOLE TO PROMPT FOR FUNCTION TO BE PERFORMED. 00218000
HRC011DK: * 00219000
HRC011DK: * D. GET DEVICE ADDRESS. 00220000
HRC011DK: * 00221000
HRC011DK: * E. GET DEVICE TYPE. 00222000
HRC011DK: * 00223000
HRC011DK: * F. ESTABLISH DEVICE CHARACTERISTICS. 00224000
HRC011DK: * 00225000
HRC011DK: * G. ISSUE SENSE ID COMMAND TO DEVICE. 00226000
HRC011DK: * 00227000
HRC011DK: * H. HANDLE PROGRAM CHECK/MACHINE CHECK. 00228000
HRC011DK: * 00229000
HRC011DK: * I. CARD/CONSOLE I/O INTERRUPT ROUTINE. 00230000
HRC011DK: * 00231000
HRC011DK: * J. VALIDATE CARD INPUT. 00232000
HRC011DK: * 00233000
HRC011DK: * K. GET STARTING CYLINDER OR LABEL FOR CKD. 00234000
HRC011DK: * 00235000
HRC011DK: * M. ASK FOR LABEL. 00236000
HRC011DK: * 00237000
HRC011DK: * N. HANDLE LABEL ONLY FUNCTION. 00238000
HRC011DK: * 00239000
HRC011DK: * O. SAVE OS FORMAT 4 LABEL INFO FOR FORMATTING CKD CYLINDER 0. 00240000
HRC011DK: * 00241000
HRC011DK: * P. *FORMAT* - FORMAT FROM THE STARTING CYLINDER UP TO AND 00242000
HRC011DK: * INCLUDING THE ENDING CYLINDER OF THE DASD 00243000
HRC011DK: * AS REQUESTED BY CONSOLE OR IPL DEVICE INPUT. 00244000
HRC011DK: * PROMPT FOR WRITE VERIFICATION IF THE DEVICE 00245000
HRC011DK: * IS CKD 33XX SERIES. WRITE VERIFICATION 00246000
HRC011DK: * ONLY IF REQUESTED. 00247000
HRC011DK: * 00248000
HRC011DK: * Q. RESUME CKD FORMATTING FOLLOWING INTERRUPT RESOLUTION. 00249000
HRC011DK: * 00250000
HRC011DK: * R. ADVANCE TO NEXT CYLINDER IN EXTENT FOR CKD FORMAT. 00251000
HRC011DK: * 00252000
HRC011DK: * U. STIO - WRITE AND VERIFY PAGE SIZE RECORDS. 00253000
HRC011DK: * 00254000
HRC011DK: * V. CLEAN UP OPERATION; THEN GO GET NEW FUNCTION. 00255000
HRC011DK: * 00256000
HRC011DK: * W. HANDLE FATAL ERROR ENCOUNTERED. 00257000
HRC011DK: * 00258000
HRC011DK: * X. ALLOCATE FUNCTION INITIALIZATION. 00259000
HRC011DK: * 00260000
HRC011DK: * Y. FETCH AND SET ALLOCATION TYPES. 00261000
HRC011DK: * 00262000
HRC011DK: * Z. *ALLOCATE* - READ AND VERIFY CP VOLUME LABEL AND UPDATE 00263000
HRC011DK: * ALLOCATION TABLE IN CORE FROM CONSOLE OR 00264000
HRC011DK: * IPL DEVICE INPUT. 00265000
HRC011DK: * 00266000
HRC011DK: * BB. WRITE OUT ALLOCATION TABLE TO DASD. 00267000
HRC011DK: * 00268000
HRC011DK: * CC. WRITE OUT ALLOCATION TABLE TO CONSOLE. 00269000
HRC011DK: * 00270000
HRC011DK: * DD. HANDLE DASD I/O INTERRUPTS. 00271000
HRC011DK: * 00272000
HRC011DK: * EE. HANDLE TRACK CONDITION CHECK. 00273000
HRC011DK: * 00274000
HRC011DK: * FF. HANDLE READ OR SEARCH ID FAILURE. 00275000
HRC011DK: * 00276000
HRC011DK: * SUBROUTINES: 00277000
HRC011DK: * 00278000
HRC011DK: * LNGCALC - CALCULATE LENGTH OF WORD IN INDATA FIELD. 00279000
HRC011DK: * 00280000
HRC011DK: * WMSG/WMSG2 - WRITE A MESSAGE ON THE CONSOLE. 00281000
HRC011DK: * 00282000
HRC011DK: * RMSG - READ A RESPONSE FROM THE CONSOLE. 00283000
HRC011DK: * 00284000
HRC011DK: * GRAPHID - GRAPHIC DEVICE INDICATOR ROUTINE CALLED TO READ FROM 00285000
HRC011DK: * OR WRITE TO GRAPHIC TYPE DEVICES. 00286000
HRC011DK: * 00287000
HRC011DK: * XBIN - CHECK TO SEE IF INPUT IS VALID AND HAS CORRECT NUMBERS. 00288000
HRC011DK: * VALID NUMBERS ARE C1-C6 AND F0-F9. 00289000
HRC011DK: * 00290000
HRC011DK: * DIGBIN - CONVERT EBCDIC NUMERIC VALUES TO BINARY. 00291000
HRC011DK: * 00292000
HRC011DK: * CONVZER - CONVERT BINARY NUMBERS TO PRINTABLE FORMAT. 00293000
HRC011DK: * 00294000
HRC011DK: * DFOADSET - SCAN DFOTABLE UNTIL MATCHING DEVICE TYPE IS FOUND AND 00295000
HRC011DK: * GET THE ENTRY ADDRESS. 00296000
HRC011DK: * 00297000
HRC011DK: * UPHDREC - UPDATE THE RECORD NUMBERS AND HEAD NUMBERS IN CCW DATA 00298000
HRC011DK: * ACCORDING TO DFOTABLE ENTRY. 00299000
HRC011DK: * 00300000
HRC011DK: * SENSIT - OBTAIN SENSE INFORMATION. 00301000
HRC011DK: * 00302000
HRC011DK: * SENSIT2 - PRINT SENSE AND CCHH ERROR INFORMATION. 00303000
HRC011DK: * 00304000
HRC011DK: * FMT744 - DISPLAY MESSAGE 744E FOLLOWING A SENSE ID FAILURE. 00305000
HRC011DK: * 00306000
HRC011DK: * UNPKLOOP - UNPACK/TRANSLATE DATA, BLANK-FILL TO RIGHT BOUNDARY. 00307000
HRC011DK: * 00308000
HRC011DK: * CORRCSW - CORRECT THE CSW ADDRESS FOLLOWING AN IMPRECISE ENDING 00309000
HRC011DK: * CONDITION. 00310000
HRC011DK: * 00311000
HRC011DK: * STRTIO - ISSUE START I/O TO A DEVICE PRECEDED BY A TIO TO CLEAR 00312000
HRC011DK: * DEVICE STATUS. 00313000
HRC011DK: * 00314000
HRC011DK: * STRTIO1 - ISSUE START I/O TO A DEVICE WITHOUT A TIO. 00315000
HRC011DK: * 00316000
HRC011DK: * ALTCHK - CHECK THE POINTERS IN FLAGGED PRIMARY TRACK AND 00317000
HRC011DK: * ALTERNATE TRACK TO SEE THAT EACH POINTS TO THE OTHER 00318000
HRC011DK: * AND RETURN CCHH ADDRESS OF WHICHEVER WE ARE CURRENTLY 00319000
HRC011DK: * NOT AT. 00320000
HRC011DK: * 00321000
HRC011DK: * SENSCCHH - COMPUTE CCHH FROM SENSE DATA READ PREVIOUSLY. 00322000
HRC011DK: * 00323000
HRC011DK: *.$******************************************************************** 00324000
HRC011DK: EJECT , 00325000
HRC011DK: DMKFMT START X'80' 00326000
HRC011DK: SPACE , 00327000
HRC011DK: *.3******************************************************************** 00328000
HRC011DK: * 00329000
HRC011DK: * OPERATION - 00330000
HRC011DK: * 00331000
HRC011DK: * A. INITIALIZE PROGRAM AND SAVE IPL ADDRESS 00332000
HRC011DK: * 00333000
HRC011DK: * 1. SET UP REGISTERS 8,11,12,13, AND 15 AS BASE REGISTERS. 00334000
HRC011DK: * 2. GET IPL DEVICE ADDRESS FROM I/O OLD PSW AND STORE IT IN 00335000
HRC011DK: * IPLDEV. 00336000
HRC011DK: * 3. STORE PERTINENT INFORMATION CONCERNING OS LABELS AND 00337000
HRC011DK: * ALTERNATE TRACK INFORMATION. 00338000
HRC011DK: * 4. DISPLAY THE FMT TITLE MESSAGE. 00339000
HRC011DK: * 5. DETERMINE WHETHER INPUT IS FROM THE IPL DEVICE OR THE 00340000
HRC011DK: * CONSOLE. 00341000
HRC011DK: * 00342000
HRC011DK: * LOCAL REGISTER USAGE - 00343000
HRC011DK: * 00344000
HRC011DK: * R4 - TITLE MESSAGE ADDRESS 00345000
HRC011DK: * R10 - IPL UNIT ADDRESS 00346000
HRC011DK: * R14 - WORK 00347000
HRC011DK: * 00348000
HRC011DK: *.$******************************************************************** 00349000
HRC011DK: SPACE , 00350000
HRC011DK: BALR R15,0 FIRST BASE REGISTER 00351000
HRC011DK: USING PSA,R0 PSA ADDRESSABILITY 00352000
HRC011DK: USING *,R15,R12,R11,R13,R8 FMT BASE REGISTERS 00353000
HRC011DK: LA R12,2048(R15) LOAD 00354000
HRC011DK: LA R12,2048(R12) SECOND BASE 00355000
HRC011DK: LA R11,2048(R12) LOAD 00356000
HRC011DK: LA R11,2048(R11) THIRD BASE 00357000
HRC011DK: LA R13,2048(R11) LOAD 00358000
HRC011DK: LA R13,2048(R13) FOURTH BASE 00359000
HRC011DK: LA R8,2048(R13) LOAD 00360000
HRC011DK: LA R8,2048(R8) FIFTH BASE 00361000
HRC011DK: LCTL C2,C2,ENCHAN ENABLE CHANNELS 6 THRU 15 00362000
HRC011DK: SPACE , 00363000
HRC011DK: *---------------------------------------------------------------------- 00364000
HRC011DK: * GET IPL DEVICE ADDRESS AND STORE IT 00365000
HRC011DK: *---------------------------------------------------------------------- 00366000
HRC011DK: SPACE , 00367000
HRC011DK: MVC 120(8),=A(0,IRA) SET UP I/O NEW PSW 00368000
HRC011DK: LH R14,2 GET IPL DEVICE FROM I/O OLD PSW 00369000
HRC011DK: TIO 0(R14) CLEAR PENDING STATUS 00370000
HRC011DK: BC 2,*-4 LOOP IF BUSY 00371000
HRC011DK: STH R14,IPLDEV SAVE IPL DEVICE 00372000
HRC011DK: MVC 104(8),PRNUPSW PROGRAM NEW PSW 00373000
HRC011DK: MVC 112(8),MCNUPSW MACHINE CHECK NEW PSW 00374000
HRC011DK: SPACE , 00375000
HRC011DK: *---------------------------------------------------------------------- 00376000
HRC011DK: * IF CERTAIN INFORMATION IN THE OS FORMAT 4 LABEL ON TRACK 0 00377000
HRC011DK: * CYLINDER 0 IS DESTROYED, NO ADDITIONAL ALTERNATE TRACKS CAN BE 00378000
HRC011DK: * ASSIGNED UNTIL THE VOLUME IS RE-FORMATTED BY DSF (DEVICE 00379000
HRC011DK: * SUPPORT FACILITIES). WHEN CP FORMAT/ALLOCATE OR DSF IS USED 00380000
HRC011DK: * TO FORMAT A VOLUME, THIS INFORMATION IS PRESERVED. 00381000
HRC011DK: *---------------------------------------------------------------------- 00382000
HRC011DK: SPACE , 00383000
HRC011DK: MVC SAVEVOL1(L'OSLABEL),OSLABEL SAVE OSLABEL INFO 00384000
HRC011DK: MVC SAVEFMT4(96),FMT4DATA SAVE CP'S FMT4 CONTENTS 00385000
HRC011DK: MVC WKSEEK(118),SEEKA SAVE SEEK FIELDS 00386000
HRC011DK: MVC RNSTUF(96),R1STUF SAVE 2314 RECORD FIELDS 00387000
HRC011DK: MVC RNDATA(RNBYTE1),REC1 SAVE DASD RECORD FIELDS 00388000
HRC011DK: MVC RNDATA+RNBYTE1(RNBYTE2),REC1+RNBYTE1 ... 00389000
HRC011DK: MVC RNDATA1(RNBYTES1),RECXX3 00390000
HRC011DK: SPACE , 00391000
HRC011DK: *---------------------------------------------------------------------- 00392000
HRC011DK: * DISPLAY TITLE MESSAGE 'VM/370 FORMAT/ALLOCATE PROGRAM'. 00393000
HRC011DK: *---------------------------------------------------------------------- 00394000
HRC011DK: SPACE , 00395000
HRC011DK: STMSG EQU * 00396000
HRC011DK: XC SAVE14(4),SAVE14 ZERO OUT FIELD 00397000
HRC011DK: LA R4,TITLE GET TITLE ADDRESS 00398000
HRC011DK: BAL R14,WMSG2 AND PRINT TITLE MESSAGE 00399000
HRC011DK: SPACE , 00400000
HRC011DK: *---------------------------------------------------------------------- 00401000
HRC011DK: * DETERMINE WHETHER THIS IS CARD INPUT OR CONSOLE INPUT. IF 00402000
HRC011DK: * THE CDSW2 SWITCH CONTAINS X'FF', THE IPL DEVICE IS STARTED 00403000
HRC011DK: * AND USED FOR INPUT. OTHERWISE, CONSOLE INPUT IS ASSUMED. 00404000
HRC011DK: *---------------------------------------------------------------------- 00405000
HRC011DK: SPACE , 00406000
HRC011DK: GETCARD MVC CAW(4),=A(CARDCCW) SET CAW 00407000
HRC011DK: MVC 120(8),CONSIRA SET UP NEW IO PSW 00408000
HRC011DK: TM CDSW2,X'FF' CARD SWITCH ON 00409000
HRC011DK: BZ NOCARD NO- BRANCH 00410000
HRC011DK: LH R10,IPLDEV IPL ADDRESS IN R10 00411000
HRC011DK: TIO 0(R10) CLEAR STATUS 00412000
HRC011DK: BC 2,*-4 BRANCH BACK IF BUSY 00413000
HRC011DK: GETSIO EQU * 00414000
HRC011DK: SIO 0(R10) START IPL DEVICE 00415000
HRC011DK: BC 8,XWAIT IF STARTED WAIT 00416000
HRC011DK: BC 2+1,NOCARD CC2, CC3 (BUSY OR INOP), IGNORE 00417000
HRC011DK: TM CSW+4,X'70' DEV/CU BUSY OR CU END? 00418000
HRC011DK: BNZ GETSIO YES, REDRIVE SIO 00419000
HRC011DK: NOCARD MVC CDSW(2),=X'0000' CLEAR CARD SWITCHES 00420000
HRC011DK: XC ALLOSW,ALLOSW CLEAR ALLOC SWITCH USED IN CARD MODE 00421000
HRC011DK: XC ALLOERR,ALLOERR CLEAR ALLOC ERROR SWITCH - CARD MODE 00422000
HRC011DK: B SELECT NO, USE CONSOLE 00423000
HRC011DK: EJECT , 00424000
HRC011DK: *.3******************************************************************** 00425000
HRC011DK: * 00426000
HRC011DK: * OPERATION - 00427000
HRC011DK: * 00428000
HRC011DK: * B. HANDLE CONSOLE ERRORS OR NORMAL ENDING CONDITIONS 00429000
HRC011DK: * 00430000
HRC011DK: * 1. FOR 3215/3210/1052, THAT IS NOT DEVICE 009 OR 01F GO 00431000
HRC011DK: * WAIT FOR I/O INTERRUPT. 00432000
HRC011DK: * 2. SET DEVICE 009 FOR GRAPHIC DEVICE. 00433000
HRC011DK: * 3. CHANGE DATA STEAM TO HANDLE 3277 SCREEN SIZE, GO TO 00434000
HRC011DK: * OPERATION A STEP 4. 00435000
HRC011DK: * 4. IF NOT 3277, CHANGE DATA STREAM TO HANDLE 3278 MOD 2A 00436000
HRC011DK: * SCREEN SIZE, GO TO OPERATION A STEP 4. 00437000
HRC011DK: * 5. IF DEVICE 009 FAILS, SET DEVICE ADDRESS TO 01F AS 3215, 00438000
HRC011DK: * GO TO OPERATION A STEP 4. 00439000
HRC011DK: * 6. IF DEVICE 01F IS NOT A 3215, CHANGE DATA STEAM TO 00440000
HRC011DK: * HANDLE 3277 SCREEN SIZE, GO TO OPERATION A STEP 4. 00441000
HRC011DK: * 7. IF NOT 3277, CHANGE DATA STEAM TO HANDLE 3278 MOD 2A 00442000
HRC011DK: * SCREEN SIZE, GO TO OPERATION A STEP 4. 00443000
HRC011DK: * 8. IF DEVICE 01F FAILS, WAIT FOR I/O INTERRUPT. 00444000
HRC011DK: * 9. AFTER I/O INTERRUPT OCCURS (FROM 'LPSW CONWAIT'), GET 00445000
HRC011DK: * ADDRESS AND TRY. 00446000
HRC011DK: * 00447000
HRC011DK: * LOCAL REGISTER USAGE - 00448000
HRC011DK: * 00449000
HRC011DK: * NONE 00450000
HRC011DK: * 00451000
HRC011DK: *.$******************************************************************** 00452000
HRC011DK: SPACE , 00453000
HRC011DK: IRA EQU * 00454000
HRC011DK: TM PARM2,X'80' IS NOT OPERATIONAL INDICATED 00455000
HRC011DK: BO CONPARM YES, GO TEST FOR CORRECT DEVICE 00456000
HRC011DK: TM CSW+4,UC IS UNIT CHECK INDICATED ? 00457000
HRC011DK: BZ CONSINT NO, GO TO ERROR HANDLER 00458000
HRC011DK: SPACE , 00459000
HRC011DK: *---------------------------------------------------------------------- 00460000
HRC011DK: * IF A UNIT CHECK IS INDICATED, THEN ISSUE A SENSE TO CLEAR THE 00461000
HRC011DK: * CONTINGENT CONNECTION FROM A POSSIBLE CONTROL UNIT AT THIS 00462000
HRC011DK: * ADDRESS. THIS ALLOWS I/O TO CONTINUE FOR OTHER DEVICES ON THE 00463000
HRC011DK: * SAME CONTROLLER. 00464000
HRC011DK: * FOR A 3215/3210/1052 CONSOLE, GO WAIT FOR AN I/O INTERRUPT 00465000
HRC011DK: * BEFORE CONTINUING. FOR AN ADDRESS OF 01F, THIS MUST BE A 00466000
HRC011DK: * GRAPHIC CONSOLE SO GO CHECK FOR IT. IF NOT (WE USED X'009' AS 00467000
HRC011DK: * DEFAULT CONSOLE), THEN TRY WRITING TO A X'01F' ADDRESS NOW. 00468000
HRC011DK: *---------------------------------------------------------------------- 00469000
HRC011DK: SPACE , 00470000
HRC011DK: LA R1,CCWSENSE GET SENSE CCW 00471000
HRC011DK: ST R1,CAW SAVE ADDRESS IN LOW STORAGE 00472000
HRC011DK: XC SENSE,SENSE CLEAR SENSE BYTE SAVE AREA 00473000
HRC011DK: SIOBSY SIO 0(R10) CLEAR CONTINGENT CONNECTION 00474000
HRC011DK: BC 2,SIOBSY CC2, BUSY, RE-ISSUE SENSE 00475000
HRC011DK: BC 8,CLRINT CC0, CLEAR INTERRUPTS WITH TIO 00476000
HRC011DK: BC 1,CONPARM CC3, DEVICE NOT OPERATIONAL 00477000
HRC011DK: CLI CSW+4,SM+BUSY+CUE TEMPORARY CONTROL UNIT BUSY? 00478000
HRC011DK: BE SIOBSY YES, GO RETRY 00479000
HRC011DK: CLRINT DS 0H AFTER GOOD SIO FOR SENSE 00480000
HRC011DK: TIOBSY TIO 0(R10) CLEAR ANY INTERRUPTS 00481000
HRC011DK: BC 2,TIOBSY CC2, BUSY, RE-ISSUE TIO 00482000
HRC011DK: SPACE , 00483000
HRC011DK: CONPARM EQU * 00484000
HRC011DK: NI PARM2,X'FF'-X'80' MASK OFF DEVICE NOT OPERAT. 00485000
HRC011DK: TM PARM,PARM321 IS THIS A 3215/3210/1052 00486000
HRC011DK: BNO TESTGRAP NO, TRY AS A GRAPHICS DEVICE 00487000
HRC011DK: CLC LAB3270A+2(2),ADDR3 HAVE TRIED THIS AS 3278 2A 00488000
HRC011DK: BE TESTMORE YES, CHECK IF THIS IS DEV 01F 00489000
HRC011DK: SPACE , 00490000
HRC011DK: *---------------------------------------------------------------------- 00491000
HRC011DK: * FOR GRAPHIC DISPLAY TERMINALS, CHANGE THE DATA STREAM TO 00492000
HRC011DK: * HANDLE THE VARYING SCREEN SIZES. THE DATA TO DISPLAY ON THE 00493000
HRC011DK: * GRAPHIC SCREEN INCLUDES THE CURSOR AND THE STATUS IN THE 00494000
HRC011DK: * LOWER RIGHT HAND CORNER. THE CONTROL CCWS ACCESS THE LAB3270X 00495000
HRC011DK: * AREAS TO PUT THESE ON THE SCREEN. TABLE70 HAS THE ADDRESSES 00496000
HRC011DK: * OF EACH LINE AND COLUMN AND THESE ADDRESSES ARE SPECIFIED 00497000
HRC011DK: * WITHIN THE LAB3270X AREAS. 00498000
HRC011DK: *---------------------------------------------------------------------- 00499000
HRC011DK: SPACE , 00500000
HRC011DK: TESTGRAP EQU * 00501000
HRC011DK: TM PARM,PARMGRP IS THIS A GRAPHIC DEVICE ? 00502000
HRC011DK: BO TES3270T YES, GO TEST FOR 3270 DEVICE 00503000
HRC011DK: OI PARM,PARMGRP+PARMCLE SET GRAPHIC & ERASE 00504000
HRC011DK: * INDICATORS 00505000
HRC011DK: *---------------------------------------------------------------------- 00506000
HRC011DK: * FOR A 3277, THE MAXIMUM ALLOWABLE SCREEN SIZE IS 24 LINES. 00507000
HRC011DK: * WE MUST THEREFORE CHANGE THE DATA STREAM TO HANDLE THIS SCREEN 00508000
HRC011DK: * SIZE. 00509000
HRC011DK: *---------------------------------------------------------------------- 00510000
HRC011DK: SPACE , 00511000
HRC011DK: TES3270T EQU * 00512000
HRC011DK: TM PARM,PARMGRP+PARM327 IS THIS A 3270 DEVICE ? 00513000
HRC011DK: BO TEST3278 YES, GO CHECK IF 3278 00514000
HRC011DK: OI PARM,PARM327 SET THE 3270 INDICATOR 00515000
HRC011DK: MVC LAB3270A+2(2),ADDR1 CURSOR START-1 00516000
HRC011DK: MVC LAB3270A+8(2),ADDR2 RUNNING STATUS START-1 00517000
HRC011DK: MVC LAB3270B+2(2),ADDR1 CURSOR START-1 00518000
HRC011DK: MVC LAB3270B+8(2),ADDR2 CP READ STATUS START-1 00519000
HRC011DK: MVC LAB3270C+2(2),ADDR2 HOLDING STATUS START-1 00520000
HRC011DK: MVC LAB3270D+2(2),ADDR1 CURSOR START-1 00521000
HRC011DK: MVC LAB3270E+5(2),ADDR1 CURSOR START-1 00522000
HRC011DK: MVC LAB3270E+12(2),ADDR2 STATUS AREA 00523000
HRC011DK: MVC ADDR5,ADDR6 ESTABLISH ADDR FOR CURSOR CHECK 00524000
HRC011DK: MVC MAXLEN,LEN3270 SET THE MAXIMUM LENGTH 00525000
HRC011DK: B STMSG GO TRY THIS ADDR FOR GRAPHICS 00526000
HRC011DK: SPACE , 00527000
HRC011DK: *---------------------------------------------------------------------- 00528000
HRC011DK: * FOR A 3278 MOD 2A, THE MAXIMUM ALLOWABLE SCREEN SIZE IS 20 00529000
HRC011DK: * LINES. WE MUST THEREFORE CHANGE THE DATA STREAM FOR THIS 00530000
HRC011DK: * SCREEN SIZE. 00531000
HRC011DK: *---------------------------------------------------------------------- 00532000
HRC011DK: SPACE , 00533000
HRC011DK: TEST3278 EQU * 00534000
HRC011DK: CLC LAB3270A+2(2),ADDR3 HAVE WE TRIED 3278 LOGIC 00535000
HRC011DK: BE TEST3215 MUST BE 3210-3215-1052 00536000
HRC011DK: MVC LAB3270A+2(2),ADDR3 CURSOR START-1 00537000
HRC011DK: MVC LAB3270A+8(2),ADDR4 RUNNING STATUS START-1 00538000
HRC011DK: MVC LAB3270B+2(2),ADDR3 CURSOR START-1 00539000
HRC011DK: MVC LAB3270B+8(2),ADDR4 CP READ STATUS START-1 00540000
HRC011DK: MVC LAB3270C+2(2),ADDR4 HOLDING STATUS START-1 00541000
HRC011DK: MVC LAB3270D+2(2),ADDR3 CURSOR START-1 00542000
HRC011DK: MVC LAB3270E+5(2),ADDR3 CURSOR START-1 00543000
HRC011DK: MVC LAB3270E+12(2),ADDR4 STATUS AREA 00544000
HRC011DK: MVC ADDR5,ADDR7 ESTABLISH ADDR FOR CURSOR CHECK 00545000
HRC011DK: MVC MAXLEN,LEN3278 SET THE MAXIMUM LENGTH 00546000
HRC011DK: B STMSG GO TRY THIS ADDR FOR GRAPHICS 00547000
HRC011DK: SPACE , 00548000
HRC011DK: *---------------------------------------------------------------------- 00549000
HRC011DK: * TEST FOR 3215 DEVICE 00550000
HRC011DK: *---------------------------------------------------------------------- 00551000
HRC011DK: SPACE , 00552000
HRC011DK: TEST3215 EQU * 00553000
HRC011DK: MVI PARM,PARM321 SET THE 3210-3215-1052 FLAG 00554000
HRC011DK: TM PARM,PARM01F HAVE WE TRIED DEVICE 01F? 00555000
HRC011DK: BO TESTMORE YES, SEE IF THIS REALLY IS 01F 00556000
HRC011DK: OI PARM,PARM01F SET 01F FLAG 00557000
HRC011DK: MVC CONSOL,CON01F SET DEVICE ADDRESS 01F 00558000
HRC011DK: MVC LAB3270A+2(2),ADDR5 RESET 3278 MOD 2A FLAG 00559000
HRC011DK: B STMSG TRY 01F AS A 3215 00560000
HRC011DK: TESTMORE DS 0H 00561000
HRC011DK: CLC CONSOL,CON01F IS THIS REALLY DEVICE 01F 00562000
HRC011DK: BNE STMSG NO, GO TRY THIS ADDRESS A 3215 00563000
HRC011DK: MVC 120(8),=A(0,CONRET) CHANGE THE I/O NEW PSW 00564000
HRC011DK: FMTLPSW DS 0H 00565000
HRC011DK: NI PARM,PARM01F LEAVE ON ONLY 01F FLAG 00566000
HRC011DK: LPSW WAITCON WAIT FOR I/O INTERRUPT 00567000
HRC011DK: CONRET EQU * 00568000
HRC011DK: OC CSW,CSW CHANNEL AVAILABLE INTERRUPT ? 00569000
HRC011DK: BZ FMTLPSW YES, GO WAIT FOR INTERRUPT 00570000
HRC011DK: TM CSW+4,CUE CUE FROM IPL DEVICE? 00571000
HRC011DK: BNO GETADDR NO, GET INTERRUPTING DEVICE ADDR 00572000
HRC011DK: LPSW WAITCON WAIT FOR A CONSOLE I/O INTERRUPT 00573000
HRC011DK: SPACE , 00574000
HRC011DK: GETADDR DS 0H 00575000
HRC011DK: MVC CONSOL(2),58 GET THE DEVICE ADDRESS 00576000
HRC011DK: MVC 120(8),=A(0,IRA) CHANGE THE I/O NEW PSW 00577000
HRC011DK: B STMSG GO TRY THIS ADDRESS 00578000
HRC011DK: *.3******************************************************************** 00579000
HRC011DK: * 00580000
HRC011DK: * OPERATION - 00581000
HRC011DK: * 00582000
HRC011DK: * C. DISPLAY 'ENTER FORMAT OR ALLOCATE' MESSAGE AND READ IN RESPONSE. 00583000
HRC011DK: * 00584000
HRC011DK: * 1. LOAD FORMAT OR ALLOCATE MESSAGE AND GO READ RESPONSE. 00585000
HRC011DK: * IF CARD INPUT, THE PROMPTER MESSAGE INCLUDES THE RESPONSE 00586000
HRC011DK: * THAT WAS ALREADY SPECIFIED IN CARDS. 00587000
HRC011DK: * 2. ISSUE MESSAGE INDICATING WHICH FUNCTION WAS SELECTED. 00588000
HRC011DK: * 3. GET DEVICE ADDRESS AT OP D. 00589000
HRC011DK: * 00590000
HRC011DK: * LOCAL REGISTER USAGE - 00591000
HRC011DK: * 00592000
HRC011DK: * R4 - WORK 00593000
HRC011DK: * R14 - LINKAGE 00594000
HRC011DK: * 00595000
HRC011DK: *.$******************************************************************** 00596000
HRC011DK: SPACE , 00597000
HRC011DK: *---------------------------------------------------------------------- 00598000
HRC011DK: * ISSUE MESSAGE 'ENTER FORMAT OR ALLOCATE:' AND READ THE 00599000
HRC011DK: * RESPONSE. FOR CARD INPUT, THE CARD CONTAINS THE RESPONSE TO 00600000
HRC011DK: * READ. 00601000
HRC011DK: *---------------------------------------------------------------------- 00602000
HRC011DK: SPACE , 00603000
HRC011DK: SELECT LA R4,FORA SET UP TO PRINT FORMAT OR ALLOCATE 00604000
HRC011DK: BAL R14,WMSG FORMAT OR ALLOCATE MSG 00605000
HRC011DK: MVI FLAG,X'00' CLEAR FLAG BTYE 00606000
HRC011DK: BAL R14,RMSG GO READ RESPONSE 00607000
HRC011DK: TM CSW+4,UE UNIT EXCEPTION OR UNIT CK 00608000
HRC011DK: BO SELECT YES,BRANCH 00609000
HRC011DK: XC FIELDA,FIELDA CLEAR FIELDA 00610000
HRC011DK: XC FIELDB,FIELDB CLEAR FIELDB 00611000
HRC011DK: BAL R14,LNGCALC GET WORD LENGTH 00612000
HRC011DK: BNZ SELECT BR IF LENGTH = 0 OR GT 8 00613000
HRC011DK: EX R4,TSTALLOC HOW ABOUT ALLOCATE ? 00614000
HRC011DK: BE ALLOC IF SO, HANDLE IT .... 00615000
HRC011DK: EX R4,TSTFRMT IS IT FORMAT ? 00616000
HRC011DK: BNE SELECT IF NOT, TRY AGAIN 00617000
HRC011DK: SPACE , 00618000
HRC011DK: *---------------------------------------------------------------------- 00619000
HRC011DK: * FOR FORMAT, DISPLAY THE MESSAGE 'FORMAT FUNCTION SELECTED' AND 00620000
HRC011DK: * GO GET THE DEVICE ADDRESS. FOR ALLOCATE, DISPLAY THE MESSAGE 00621000
HRC011DK: * 'ALLOCATION FUNCTION SELECTED' AND GO GET DEVICE ADDRESS. 00622000
HRC011DK: *---------------------------------------------------------------------- 00623000
HRC011DK: SPACE , 00624000
HRC011DK: FORM MVC FLAG(1),COMWOK SET FLAG TO 'F' 00625000
HRC011DK: LA R4,FMTMSG SET UP MESSAGE 00626000
HRC011DK: BAL R14,WMSG WRITE MESSAGE 00627000
HRC011DK: B DEVICEAD GO GET DEVICE ADDRESS 00628000
HRC011DK: SPACE , 00629000
HRC011DK: ALLOC MVC FLAG(1),COMWOK SET FLAG TO 'A' 00630000
HRC011DK: NI FLAG1,255-ALLOCWR TURN OFF FLAG TO WRITE 00631000
HRC011DK: LA R4,ALLOCMSG SET UP ALLOCATE MESSAGE 00632000
HRC011DK: BAL R14,WMSG WRITE MESSAGE 00633000
HRC011DK: *.3******************************************************************** 00634000
HRC011DK: * 00635000
HRC011DK: * OPERATION - 00636000
HRC011DK: * 00637000
HRC011DK: * D. GET DEVICE ADDRESS 00638000
HRC011DK: * 00639000
HRC011DK: * 1. WRITE DEVICE MESSAGE AND GET RESPONSE. 00640000
HRC011DK: * 2. MOVE THE DEVICE ADDRESS INTO ANY ERROR MESSAGES THAT MIGHT 00641000
HRC011DK: * HAVE TO BE ISSUED LATER. 00642000
HRC011DK: * 3. ONLY THREE HEX DIGITS ALLOWED; MAKE SURE 3 ENTERED AND ARE 00643000
HRC011DK: * VALID. 00644000
HRC011DK: * 4. ISSUE SENSE AND VERIFY THAT THE DEVICE IS OPERATIONAL AND 00645000
HRC011DK: * READY. 00646000
HRC011DK: * 00647000
HRC011DK: * LOCAL REGISTER USAGE 00648000
HRC011DK: * 00649000
HRC011DK: * R4 - MESSAGE ADDRESS 00650000
HRC011DK: * R5 - DASD ADDRESS FOR SIO 00651000
HRC011DK: * R7 - LINKAGE 00652000
HRC011DK: * R8 - ADDRESS OF INPUT 00653000
HRC011DK: * R9 - MESSAGE LENGTH 00654000
HRC011DK: * R10 - HEX DEVICE ADDRESS 00655000
HRC011DK: * R14 - LINKAGE 00656000
HRC011DK: * 00657000
HRC011DK: *.$******************************************************************** 00658000
HRC011DK: SPACE , 00659000
HRC011DK: *---------------------------------------------------------------------- 00660000
HRC011DK: * ISSUE MESSAGE 'ENTER DEVICE ADDRESS (CUU):' AND READ RESPONSE. 00661000
HRC011DK: *---------------------------------------------------------------------- 00662000
HRC011DK: SPACE , 00663000
HRC011DK: DEVICEAD LA R4,ADDRESS REQUEST DEVICE ADDRESS 00664000
HRC011DK: BAL R14,WMSG WRITE MESSAGE 00665000
HRC011DK: BAL R14,RMSG READ RESPONSE 00666000
HRC011DK: TM CSW+4,UE CANCEL KEY OR UNIT CHECK 00667000
HRC011DK: BO DEVICEAD TRY AGAIN IF CANCEL 00668000
HRC011DK: * 'OR'ING ANYTHING WITH BLANKS SETS IT TO UPPER CASE. 00669000
HRC011DK: OC INDATA(4),BLANKS8 CONVERT TO UPPER CASE 00670000
HRC011DK: CLI INDATA+3,X'40' ANYTHING EXTRA ? 00671000
HRC011DK: BNE DEVICEAD YES, GO ISSUE DEVICE MESSAGE 00672000
HRC011DK: SPACE , 00673000
HRC011DK: *---------------------------------------------------------------------- 00674000
HRC011DK: * MOVE DEVICE ADDRESS INTO MESSAGES IN CASE ERROR OCCURS LATER. 00675000
HRC011DK: *---------------------------------------------------------------------- 00676000
HRC011DK: SPACE , 00677000
HRC011DK: MVC WR1+16(3),INDATA MOVE IN THE DEV ADD 00678000
HRC011DK: MVC ALLEND+8(3),INDATA MOVE DEVICE ADD INTO MESSAGES 00679000
HRC011DK: MVC IOERR+21(3),INDATA MOVE DEVICE ADD INTO MESSAGES 00680000
HRC011DK: MVC IPLERROR+17(3),INDATA MOVE DEVICE ADD INTO MESSAGE 00681000
HRC011DK: MVC WRDEV1AD,INDATA DEVICE ADDRESS INTO MESSAGE 00682000
HRC011DK: LA R9,3 PUT MESSAGE LENGTH IN REG9 00683000
HRC011DK: SPACE , 00684000
HRC011DK: *---------------------------------------------------------------------- 00685000
HRC011DK: * PARAMETER MUST BE THREE HEX DIGITS LONG - MAKE SURE ONLY THREE 00686000
HRC011DK: * DIGITS ENTERED AND THAT THEY ARE VALID. 00687000
HRC011DK: *---------------------------------------------------------------------- 00688000
HRC011DK: SPACE , 00689000
HRC011DK: ST R8,REG8SAVE SAVE R8 ACROSS BAL 00690000
HRC011DK: LA R8,INDATA ADDRESS OF INPUT IN R8 00691000
HRC011DK: BAL R7,XBIN GO TO HEX CONVERSION ROUTINE 00692000
HRC011DK: L R8,REG8SAVE RESTORE R8 FROM SAVE 00693000
HRC011DK: LTR R10,R10 WAS IT BAD HEX ADDRESS 00694000
HRC011DK: BM DEVICEAD YES, TRY AGAIN 00695000
HRC011DK: SPACE , 00696000
HRC011DK: *---------------------------------------------------------------------- 00697000
HRC011DK: * ISSUE SENSE TO THE DEVICE. IF INTERVENTION REQUIRED OR NOT 00698000
HRC011DK: * READY DEVICE, THEN ISSUE 'DEV XXX NOT OPERATIONAL OR NOT 00699000
HRC011DK: * READY'. RE-ISSUE REQUEST TO ENTER DEVICE ADDRESS. OTHERWISE, 00700000
HRC011DK: * GO TO DEVTYPE TO GET DEVICE TYPE. 00701000
HRC011DK: *---------------------------------------------------------------------- 00702000
HRC011DK: SPACE , 00703000
HRC011DK: STH R10,DSKADD SAVE HEX DEVICE ADDRESS 00704000
HRC011DK: MVC CAW(4),=A(CCWSENSE) SET THE CAW. 00705000
HRC011DK: LH R5,DSKADD GET THE DASD ADDRESS FOR STARTIO 00706000
HRC011DK: BAL R14,STRTIO GO START THE I/O. IS IT THERE? 00707000
HRC011DK: BC 1,NOTHERE NOPE - ARGH. 00708000
HRC011DK: TIO 0(R10) YES - DRAIN THE INT. 00709000
HRC011DK: BC 2,*-4 . . . 00710000
HRC011DK: TM SENSEB0,INTREQ INTERVENTION REQUIRED (DISK NOT 00711000
HRC011DK: * READY OR PACK NOT MOUNTED)? 00712000
HRC011DK: BZ DEVTYPE NO, IT'S READY. 00713000
HRC011DK: NOTHERE EQU * 00714000
HRC011DK: LA R4,WR1 NO,SET UP NOT AVAILABLE MESSAGE 00715000
HRC011DK: BAL R14,WMSG WRITE MESSAGE 00716000
HRC011DK: DVCAGAIN TM CDSW2,X'FF' IS SW ON? 00717000
HRC011DK: BO BADINPUT IF ON BRANCH 00718000
HRC011DK: B DEVICEAD GIVE HIM A CHANCE TO ENTER 00719000
HRC011DK: * CORRECTED ADDRESS OR TO READY THE 00720000
HRC011DK: * DEVICE AND RE-ENTER SAME ADDRESS. 00721000
HRC011DK: *.3******************************************************************** 00722000
HRC011DK: * 00723000
HRC011DK: * OPERATION - 00724000
HRC011DK: * 00725000
HRC011DK: * E. GET DEVICE TYPE 00726000
HRC011DK: * 00727000
HRC011DK: * 1. ISSUE 'ENTER DEVICE TYPE:' MESSAGE AND READ RESPONSE. 00728000
HRC011DK: * 2. FOR CKD, GO TO OP F. 00729000
HRC011DK: * 3. CALCULATE THE MAXIMUM PAGE SIZE ALLOWED TO BE SPECIFIED 00730000
HRC011DK: * BY THE USER AND THEN GO OP K OR OP L FOR FORMAT OR OP M 00731000
HRC011DK: * FOR LABEL OR ALLOCATE. 00732000
HRC011DK: * 00733000
HRC011DK: * LOCAL REGISTER USAGE - 00734000
HRC011DK: * 00735000
HRC011DK: * R3 - WORK 00736000
HRC011DK: * R4 - WORK/MESSAGE ADDRESS 00737000
HRC011DK: * R5 - WORK 00738000
HRC011DK: * R6 - WORK 00739000
HRC011DK: * R7 - WORK 00740000
HRC011DK: * R9 - READ DEVICE CHARACTERISTICS CCW ADDRESS 00741000
HRC011DK: * R10 - DEVICE ADDRESS 00742000
HRC011DK: * R14 - LINKAGE 00743000
HRC011DK: * 00744000
HRC011DK: *.$******************************************************************** 00745000
HRC011DK: SPACE , 00746000
HRC011DK: *---------------------------------------------------------------------- 00747000
HRC011DK: * ISSUE MESSAGE 'ENTER DEVICE TYPE:' AND READ THE USER RESPONSE. 00748000
HRC011DK: * CHECK FOR CORRECT DEVICE TYPE LENGTH AND THEN MOVE THE IT INTO 00749000
HRC011DK: * WRDEV1SP, WHICH IS THE USER-SPECIFIED DEVICE TYPE. 00750000
HRC011DK: *---------------------------------------------------------------------- 00751000
HRC011DK: SPACE , 00752000
HRC011DK: DEVTYPE EQU * 00753000
HRC011DK: LA R4,TYPMSG SET UP TO TYPE MESSAGE 00754000
HRC011DK: BAL R14,WMSG WRITE MESSAGE 00755000
HRC011DK: BAL R14,RMSG READ RESPONSE 00756000
HRC011DK: TM CSW+4,UE CANCEL KEY OR UNIT CHECK? 00757000
HRC011DK: BO DEVTYPE YES, TRY AGAIN 00758000
HRC011DK: OC INDATA(8),BLANKS8 CONVERT TO UPPERCASE 00759000
HRC011DK: MVC OSLABEL,SAVEVOL1 AND USE CKD TYPE LABEL 00760000
HRC011DK: BAL R14,LNGCALC GET INPUT LENGTH 00761000
HRC011DK: BNZ DEVTYPE IF 0 OR GT 8 00762000
HRC011DK: MVC WRDEV1SP,BLANKS8 CLEAR 'SPECIFIED D/T' IN MSG 00763000
HRC011DK: MVC WRDEV1SP,INDATA MOVE SPECIFIED D/T INTO MSG 00764000
HRC011DK: *.3******************************************************************** 00765000
HRC011DK: * 00766000
HRC011DK: * OPERATION - 00767000
HRC011DK: * 00768000
HRC011DK: * F. ESTABLISH DEVICE CHARACTERISTICS 00769000
HRC011DK: * 00770000
HRC011DK: * 1. USE DEVTBL1 AND DEVTBL2 TO FIND DEVICE MATCH. 00771000
HRC011DK: * 2. SET UP DEVICE SPECIFIC PARAMETERS: 00772000
HRC011DK: * GO (CCW ADDRESS) 00773000
HRC011DK: * HIVALUE 00774000
HRC011DK: * RECVALUE 00775000
HRC011DK: * TYPE 00776000
HRC011DK: * WVFLAGS - PROMPT FOR WRITE VERIFICATION 00777000
HRC011DK: * 3. USE FEATURE INDEX FOR SPECIAL HANDLING: 00778000
HRC011DK: * 3380 - SET UP HDVALUE+1 00779000
HRC011DK: * 3330 AND 3330-11 - SET UP WR57 AND RD57 00780000
HRC011DK: * 3340 - VERIFY PACK SIZE SPECIFIED CORRECTLY 00781000
HRC011DK: * 00782000
HRC011DK: * LOCAL REGISTER USAGE - 00783000
HRC011DK: * 00784000
HRC011DK: * R3 - DEVTBL1 - DEVICE TYPE SPECIFIC PARAMETERS 00785000
HRC011DK: * R4 - DEVTBL2 - DEVICE NAME COMPARISON TABLES 00786000
HRC011DK: * R5 - WORK REGISTER 00787000
HRC011DK: * 00788000
HRC011DK: *.$******************************************************************** 00789000
HRC011DK: SPACE , 00790000
HRC011DK: *---------------------------------------------------------------------- 00791000
HRC011DK: * DEFAULT TO 1K ALLOCATION MAP AND 4K FILLER RECORD. 00792000
HRC011DK: *---------------------------------------------------------------------- 00793000
HRC011DK: SPACE , 00794000
HRC011DK: CHECKCKD DS 0H GET DEVICE CHARACTERISTICS 00795000
HRC011DK: MVC R4DL,=H'1024' DEFAULT RECORD 4 DATA LENGTH 00796000
HRC011DK: MVC RF7DL,=H'4096' DEFAULT 3380 FILLER DATA LENGTH 00797000
HRC011DK: XC HDVALUE,HDVALUE CLEAR HIGHEST HEAD NUMBER 00798000
HRC011DK: SPACE , 00799000
HRC011DK: *---------------------------------------------------------------------- 00800000
HRC011DK: * INITIALIZE REGISTERS FOR TABLE SEARCH. 00801000
HRC011DK: *---------------------------------------------------------------------- 00802000
HRC011DK: SPACE , 00803000
HRC011DK: L R3,=A(DEVTBL1) DEVICE PARAMETER TABLE ADDRESS 00804000
HRC011DK: L R4,=A(DEVTBL2) DEVICE NAME TABLE ADDRESS 00805000
HRC011DK: SR R5,R5 CLEAR WORK REGISTER 00806000
HRC011DK: SPACE , 00807000
HRC011DK: *---------------------------------------------------------------------- 00808000
HRC011DK: * SEARCH FOR MATCHING DEVICE TYPE. IF MATCH NOT FOUND, THEN POINT TO 00809000
HRC011DK: * THE NEXT ONE AND LOOP AT DEVSRCH. IF NO MATCH FOUND IN TABLE, ASK 00810000
HRC011DK: * USER FOR ANOTHER. 00811000
HRC011DK: *---------------------------------------------------------------------- 00812000
HRC011DK: SPACE , 00813000
HRC011DK: DEVSRCH DS 0H SEARCH TABLE FOR MATCH 00814000
HRC011DK: IC R5,DEVARGLN(R3) LOAD DEVICE NAME LENGTH-1 00815000
HRC011DK: EX R5,DEVCHECK PERFORM THE NAME COMPARE 00816000
HRC011DK: BE DEVFOUND BRANCH IF MATCH NOT FOUND 00817000
HRC011DK: LA R3,DEVTBESZ(R3) INDEX DEV PARM TBL TO NEXT 00818000
HRC011DK: LA R4,1(R4,R5) POINT TO NEXT DEVICE NAME 00819000
HRC011DK: CLI 0(R3),DEVTBEND REACHED END OF TABLES? 00820000
HRC011DK: BNE DEVSRCH BRANCH IF NO, KEEP LOOKING 00821000
HRC011DK: B DEVTYPE NO MATCH, ASK USER FOR ANOTHER 00822000
HRC011DK: SPACE , 00823000
HRC011DK: DEVCHECK CLC 0(0,R4),INDATA 00824000
HRC011DK: SPACE , 00825000
HRC011DK: *---------------------------------------------------------------------- 00826000
HRC011DK: * MATCHING DEVICE FOUND, SET UP PARAMETERS AND THEN EXIT USING THE 00827000
HRC011DK: * BRANCH TABLE DEVSFTB. 00828000
HRC011DK: *---------------------------------------------------------------------- 00829000
HRC011DK: SPACE , 00830000
HRC011DK: DEVFOUND DS 0H 00831000
HRC011DK: MVC GO,DEVGO(R3) SET UP TIC 00832000
HRC011DK: MVC HIVALUE,DEVHIVAL(R3) SET UP HIGH CYL VAL 00833000
HRC011DK: MVC RECVALUE,DEVRECVL(R3) SET UP MAX RCD # ON TRK 00834000
HRC011DK: MVC TYPE,DEVICETP(R3) SET UP DEVICE TYPE 00835000
HRC011DK: * MVC WVFLAGS,DEVWVDEF(R3) PROMPT FOR WRT VERIFICATION 00836000
HRC011DK: XC WVFLAGS,WVFLAGS NEVER PROMPT FOR WRT VER
HRC011DK: IC R5,DEVSFIX(R3) LOAD SPECIAL FEATURE INDEX 00837000
HRC011DK: B DEVSFTB(R5) EXIT ROUTINE 00838000
HRC011DK: DEVSFTB DS 0H BRANCH TO SPECIAL HANDLING 00839000
HRC011DK: B DISK NO SPECIAL HANDLING REQUIRED 00840000
HRC011DK: B DVSF3380 3380 00841000
HRC011DK: B DVSF3330 3330 00842000
HRC011DK: B DVSF3340 3340 00843000
HRC011DK: SPACE , 00844000
HRC011DK: *---------------------------------------------------------------------- 00845000
HRC011DK: * 3380 SPECIAL HANDLING 00846000
HRC011DK: *---------------------------------------------------------------------- 00847000
HRC011DK: SPACE , 00848000
HRC011DK: DVSF3380 DS 0H SPECIAL HANDLING FOR 3380 00849000
HRC011DK: MVI HDVALUE+1,MHD3380 HIGHEST HEAD NUMBER FOR 3380 00850000
HRC011DK: B SENSE4 CHECK FOR DEVICE CHARS 00851000
HRC011DK: SPACE , 00852000
HRC011DK: *---------------------------------------------------------------------- 00853000
HRC011DK: * 3330 SPECIAL HANDLING 00854000
HRC011DK: *---------------------------------------------------------------------- 00855000
HRC011DK: SPACE , 00856000
HRC011DK: DVSF3330 DS 0H SPECIAL HANDLING FOR 3330 00857000
HRC011DK: MVC WR57,OFF57WRT SET WRITE CCWS TO READ 12 RECS 00858000
HRC011DK: MVC RD57,OFF57RD SET READ CCWS FOR 12 RECORDS 00859000
HRC011DK: OI BFORWR57+4,CC RESTORE CMD CHAINING IN CCW 00860000
HRC011DK: * IT MAY HAVE BEEN ALTERED 00861000
HRC011DK: B DISK GO AND PROCESS 00862000
HRC011DK: SPACE , 00863000
HRC011DK: *---------------------------------------------------------------------- 00864000
HRC011DK: * 3340 SPECIAL HANDLING -- USER SAYS 70MB PACK, SO NOW SEE IF SENSE 00865000
HRC011DK: * AGREES. WE DO NOT WANT TO STUMBLE INTO THE ALTERNATE CYLINDER OF A 00866000
HRC011DK: * 35MB PACK WHILE THINKING WE ARE ON A 70MB PACK. WE WOULD ALSO NOT 00867000
HRC011DK: * WANT TO WRITE A 70MB ALLOCATION RECORD ON A 35MB PACK. 00868000
HRC011DK: *---------------------------------------------------------------------- 00869000
HRC011DK: SPACE , 00870000
HRC011DK: DVSF3340 DS 0H 3340 SPECIAL CHECKING 00871000
HRC011DK: TM SENSE+2,X'01' IS IT A 35MB? 00872000
HRC011DK: BZ DISK NO, SO IT MUST BE 70MB. 00873000
HRC011DK: LA R4,MSG35MB SET UP FOR WRONG PACK MESSAGE 00874000
HRC011DK: BAL R14,WMSG WRITE MESSAGE. 00875000
HRC011DK: B DVCAGAIN GO ASK AGAIN FOR UNIT ADDRESS 00876000
HRC011DK: SPACE , 00877000
HRC011DK: DISK CLI FLAG,C'F' FORMAT FUNCTION? 00878000
HRC011DK: BE FORMALL YES, GET STARTING CYLINDER 00879000
HRC011DK: B LAB NO, START WITH LABEL PROCESSING 00880000
HRC011DK: *.3******************************************************************** 00881000
HRC011DK: * 00882000
HRC011DK: * OPERATION - 00883000
HRC011DK: * 00884000
HRC011DK: * G. 00885000
HRC011DK: * 00886000
HRC011DK: * 1. ISSUE THE SENSE ID COMMAND 00887000
HRC011DK: * 2. FOR MISMATCH IN DEVICE TYPES, ISSUE MESSAGE AND ASK AGAIN 00888000
HRC011DK: * FOR DEVICE TYPE. 00889000
HRC011DK: * 00890000
HRC011DK: * LOCAL REGISTER USAGE - 00891000
HRC011DK: * 00892000
HRC011DK: * R4 - ERROR MESSAGE ADDRESS 00893000
HRC011DK: * R5 - DEVICE ADDRESS 00894000
HRC011DK: * R14 - LINKAGE 00895000
HRC011DK: * 00896000
HRC011DK: *.$******************************************************************** 00897000
HRC011DK: SPACE , 00898000
HRC011DK: *---------------------------------------------------------------------- 00899000
HRC011DK: * ISSUE THE SENSE ID COMMAND. FOR CC3 FROM SENSE, GO ISSUE 00900000
HRC011DK: * 'DEV XXX NOT OPERATIONAL OR NOT READY' MESSAGE. ANY 00901000
HRC011DK: * FAILING DIRECTOR CONDITION IS ALREADY REPORTED BY THE STRTIO 00902000
HRC011DK: * ROUTINE. CE AND DE WILL COME IN TOGETHER WITH THE SENSE ID. 00903000
HRC011DK: * IF NOT OPERATIONAL OR CHANNEL ERRORS, QUIT IMMEDIATELY 00904000
HRC011DK: * FOR ANY OTHER I/O ERROR, RETRY THE OPERATION 10 TIMES 00905000
HRC011DK: * IF THE ERROR PERSISTS THROUGH 10 RETRIES, ISSUE MSG 744 AND 00906000
HRC011DK: * MAKE HIM START OVER, THE CONTROL UNIT IS REALLY SICK AND WE 00907000
HRC011DK: * DON'T KNOW FOR SURE WHAT DEVICE TYPE OR HOW BIG IT IS 00908000
HRC011DK: *---------------------------------------------------------------------- 00909000
HRC011DK: SPACE , 00910000
HRC011DK: SENSE4 DS 0H 00911000
HRC011DK: XC SENSE,SENSE CLEAR SENSE AREA 00912000
HRC011DK: LH R5,DSKADD GET DEVICE ADDRESS 00913000
HRC011DK: MVC CAW(L4),=A(CCWSNSE4) SETUP THE CAW 00914000
HRC011DK: LA R4,E4RTRYCT LOAD I/O RETRY COUNT 00915000
HRC011DK: E4STIO DS 0H 00916000
HRC011DK: BAL R14,STRTIO GO ISSUE E4 SENSE 00917000
HRC011DK: BC NOPER,TIOCC3 NOTREADY ? TELL USER AND RESTART 00918000
HRC011DK: TM CSW+D5,X'FF' ANY BAD CHANNEL STATUS ? 00919000
HRC011DK: BNZ FATAL YES, QUIT IMMEDIATELY 00920000
HRC011DK: TM CSW+D4,X'FF'-CE-DE ANYTHING OTHER THAN CE+DE? 00921000
HRC011DK: BZ E4COMPL BR IF NO 00922000
HRC011DK: BCT R4,E4STIO RETRY IF COUNT NOT EXCEEDED 00923000
HRC011DK: B FMT744 RETRY CNT EXCEEDED, SEND MSG 744 00924000
HRC011DK: SPACE , 00925000
HRC011DK: E4COMPL DS 0H 00926000
HRC011DK: CLC SENSEB4(2),=X'3380' IS IT FOR 3380? 00927000
HRC011DK: BNE E4CONT NO, CONTINUE 00928000
HRC011DK: TM SENSEB6,RDEVMD82 IS IT MODEL 2 OR 3? 00929000
HRC011DK: BZ E4CONT NO, EVERYTHING IS OK AS IS 00930000
HRC011DK: MVC HIVALUE,MCYL3382 MODEL 2 HAS 1770 CYLINDERS 00931000
HRC011DK: MVC R4DL,=H'2048' RECORD 4 WILL BE 2K LONG 00932000
HRC011DK: MVC RF7DL,=H'3072' AND FILLER RECORD 247 IS 3K 00933000
HRC011DK: TM SENSEB6,RDEVMD83 IS IT MODEL 3? 00934000
HRC011DK: BNO E4CONT NO, EVERYTHING IS OK AS IS 00935000
HRC011DK: MVC HIVALUE,MCYL3383 MODEL 3 HAS EXP FEATURE 00936000
HRC011DK: MVC R4DL,=H'4096' RECORD 4 WILL BE 4K LONG 00937000
HRC011DK: MVC RF7DL,=H'1024' FILLER RECORD 247 IS 1K 00938000
HRC011DK: SPACE , 00939000
HRC011DK: *---------------------------------------------------------------------- 00940000
HRC011DK: * NOW WE ASSUME THAT THE SENSE DATA IS VALID. THE UNPACK INST 00941000
HRC011DK: * TRANSLATES THE SENSE TO A READABLE DEVICE TYPE, BUT OVERLAYS 00942000
HRC011DK: * A BYTE AT THE END OF THIS FIELD. 00943000
HRC011DK: *---------------------------------------------------------------------- 00944000
HRC011DK: SPACE , 00945000
HRC011DK: E4CONT DS 0H 00946000
HRC011DK: UNPK WRDEV1AC(L5),SENSEB4(L3) TRANSLATE DEV TYPE 00947000
HRC011DK: MVI WRDEV1AC+L'WRDEV1AC,COMMA RESTORE IT (A COMMA) 00948000
HRC011DK: CLC WRDEV1AC,WRDEV1SP ACTUAL DEV.TYPE EQ SPECIFIED? 00949000
HRC011DK: BNE SENSE4F NO, NOTIFY USER 00950000
HRC011DK: SPACE , 00951000
HRC011DK: B DISK GO SEE IF WE HAVE A FORMAT 00952000
HRC011DK: SPACE , 00953000
HRC011DK: *---------------------------------------------------------------------- 00954000
HRC011DK: * MISMATCH IN DEVICE TYPES. ISSUE MESSAGE 'DEVICE XXX IS XXXX 00955000
HRC011DK: * NOT XXXX-YY AS SPECIFIED. RESPECIFY OR NOTIFY SYSTEM SUPPORT' 00956000
HRC011DK: * AND THEN GO BACK UP AND ASK FOR DEVICE TYPE AGAIN. 00957000
HRC011DK: *---------------------------------------------------------------------- 00958000
HRC011DK: SPACE , 00959000
HRC011DK: SENSE4F EQU * 00960000
HRC011DK: LA R4,WRDEV1 POINT TO MISMATCH MESSAGE 00961000
HRC011DK: BAL R14,WMSG PRINT MISMATCH MESSAGE 00962000
HRC011DK: LA R4,WRDEV2 POINT TO 2ND PART OF MISMATCH MSG 00963000
HRC011DK: BAL R14,WMSG PRINT 2ND PART 00964000
HRC011DK: B DVCAGAIN GIVE ANOTHER CHANCE, STARTING 00965000
HRC011DK: * WITH DEVICE ADDRESS 00966000
HRC011DK: SPACE , 00967000
HRC011DK: *---------------------------------------------------------------------- 00968000
HRC011DK: * SENSE ID I/O ERROR RETRY COUNT 00969000
HRC011DK: *---------------------------------------------------------------------- 00970000
HRC011DK: SPACE , 00971000
HRC011DK: E4RTRYCT EQU 10 00972000
HRC011DK: *.3******************************************************************** 00973000
HRC011DK: * 00974000
HRC011DK: * OPERATION - 00975000
HRC011DK: * 00976000
HRC011DK: * H. HANDLE PROGRAM CHECK/MACHINE CHECK 00977000
HRC011DK: * 00978000
HRC011DK: * FOR PROGRAM CHECK: 00979000
HRC011DK: * 1. FILL IN THE PROGRAM OLD PSW IN THE MESSAGE. 00980000
HRC011DK: * 2. ISSUE PROGRAM CHECK MESSAGE. 00981000
HRC011DK: * 3. ENTER WAIT STATE. 00982000
HRC011DK: * 00983000
HRC011DK: * FOR MACHINE CHECK: 00984000
HRC011DK: * 1. ISSUE MACHINE CHECK MESSAGE. 00985000
HRC011DK: * 2. ENTER WAIT STATE. 00986000
HRC011DK: * 00987000
HRC011DK: * LOCAL REGISTER USAGE - 00988000
HRC011DK: * 00989000
HRC011DK: * R4 - ERROR MESSAGE ADDRESS 00990000
HRC011DK: * R14 - LINKAGE 00991000
HRC011DK: * 00992000
HRC011DK: *.$******************************************************************** 00993000
HRC011DK: SPACE , 00994000
HRC011DK: *---------------------------------------------------------------------- 00995000
HRC011DK: * THE ADDRESS(PRCHK) IS CONTAINED IN THE PROGRAM NEW PSW AT 00996000
HRC011DK: * ADDRESS 104 IN LOW STORAGE. NOTE THAT DEPRESSING THE REQUEST 00997000
HRC011DK: * KEY ON THE CONSOLE WILL CAUSE AN ATTENTION INTERRUPT TO THE 00998000
HRC011DK: * PROGRAM AND PROCESSING WILL STOP AND THE PROGRAM WILL RESTART 00999000
HRC011DK: * AT THE BEGINNING. MACHINE CHECKS AND PROGRAM CHECKS WILL 01000000
HRC011DK: * PRINT A MESSAGE AND PUT SYSTEM INTO WAIT STATE. 01001000
HRC011DK: * FOR PROGRAM CHECK ISSUE 'PROGRAM CHECK. PSW = XXXXXXXXXXXXXXX. 01002000
HRC011DK: *---------------------------------------------------------------------- 01003000
HRC011DK: SPACE , 01004000
HRC011DK: PRCHK STM R0,R15,PCREGS SAVE REGISTERS 0 TO 15 01005000
HRC011DK: UNPK WORK(9),PROPSW(5) FILL IN THE PROGRAM 01006000
HRC011DK: UNPK WORK+8(9),PROPSW+4(5) OLD PSW. 01007000
HRC011DK: TR WORK(16),TTAB-240 TRANSLATE TO PRINTABLE CHARS 01008000
HRC011DK: MVC PCMSG+32(16),WORK MOVE PSW INTO MESSAGE 01009000
HRC011DK: LA R4,PCMSG SET PROG CK MESSAGE 01010000
HRC011DK: BAL R14,WMSG WRITE MESSAGE 01011000
HRC011DK: LPSW WTPSW HARD WAIT 01012000
HRC011DK: SPACE , 01013000
HRC011DK: *---------------------------------------------------------------------- 01014000
HRC011DK: * THE ADDRESS(MCRTN) IS CONTAINED IN THE MACHINE CHECK NEW PSW 01015000
HRC011DK: * AT ADDRESS 112 IN LOW STORAGE. ISSUE THE MESSAGE 'MACHINE 01016000
HRC011DK: * CHECK' AND LOAD A WAIT STATE. 01017000
HRC011DK: *---------------------------------------------------------------------- 01018000
HRC011DK: SPACE , 01019000
HRC011DK: MCRTN LA R4,MCMSG SET UP MACH CK MESSAGE 01020000
HRC011DK: BAL R14,WMSG WRITE MESSAGE 01021000
HRC011DK: LPSW WTPSW HARD WAIT 01022000
HRC011DK: LTORG , 01023000
HRC011DK: *.3******************************************************************** 01024000
HRC011DK: * 01025000
HRC011DK: * OPERATION - 01026000
HRC011DK: * 01027000
HRC011DK: * I. CARD AND CONSOLE I/O INTERRUPT ROUTINE 01028000
HRC011DK: * 01029000
HRC011DK: * 1. FOR CONSOLE INTERRUPT, CLEAR PENDING STATUS. AFTER DEVICE 01030000
HRC011DK: * END, CONTINUE WITH NEXT OPERATION. 01031000
HRC011DK: * 2. FOR IPL DEVICE INTERRUPT AND AFTER GOOD CE+DE STATUS, GO 01032000
HRC011DK: * VALIDATE THE CARD INPUT. 01033000
HRC011DK: * 3. FOR BAD STATUS FROM IPL DEVICE, ISSUE ERROR MESSAGE. 01034000
HRC011DK: * 4. FOR UNIT EXCEPTION FROM IPL DEVICE, GO BACK TO START. 01035000
HRC011DK: * 01036000
HRC011DK: * LOCAL REGISTER USAGE - 01037000
HRC011DK: * 01038000
HRC011DK: * R4 - MESSAGE ADDRESS 01039000
HRC011DK: * R10 - CONSOLE ADDRESS 01040000
HRC011DK: * R14 - RETURN ADDRESS 01041000
HRC011DK: * 01042000
HRC011DK: *.$******************************************************************** 01043000
HRC011DK: SPACE , 01044000
HRC011DK: *---------------------------------------------------------------------- 01045000
HRC011DK: * IF THE INTERRUPT CAME FROM THE CONSOLE, THEN CLEAR ANY PENDING 01046000
HRC011DK: * STATUS. FOR GOOD STATUS (NOT AN ATTENTION), WAIT FOR DEVICE 01047000
HRC011DK: * END. IF WE GET CONTROL UNIT END, GO RESTART OPERATION. ELSE, 01048000
HRC011DK: * GO BACK AND CONTINUE WITH NEXT OPERATION. 01049000
HRC011DK: *---------------------------------------------------------------------- 01050000
HRC011DK: SPACE , 01051000
HRC011DK: CONSINT CLC CONSOL(2),58 WAS THIS A CONSOLE DEVICE? 01052000
HRC011DK: BNE SELREAD IF NOT CONSOLE BRANCH 01053000
HRC011DK: MVC STAT(2),CSW+4 SAVE STATUS 01054000
HRC011DK: TIO 0(R10) CLEAR PENDING STATUS 01055000
HRC011DK: BC 2,*-4 LOOP IF BUSY 01056000
HRC011DK: OC STAT(2),CSW+4 SAVE ANY STATUS 01057000
HRC011DK: TM STAT,ATTN IS THIS AN ATTENTION INTERRUPT ? 01058000
HRC011DK: BNO CONUNITE NO, GO CHECK FOR UNIT EXCEPTION 01059000
HRC011DK: TM PARM,PARMGRP IS THE GRAPHIC SUPPORT ACTIVE ? 01060000
HRC011DK: BZ STMSG NO, GO CLEAR CARD FLAG 01061000
HRC011DK: TM PARM,PARMATT IS THIS A ATTENTION REQUEST ? 01062000
HRC011DK: BCR 1,R14 YES, GO CHECK FOR ATTENTION 01063000
HRC011DK: * INTERRUPT 01064000
HRC011DK: CONUNITE EQU * 01065000
HRC011DK: TM STAT,UC WAS THERE A UNIT CHECK 01066000
HRC011DK: BNO GOODSTA NO,BRANCH REG 14 01067000
HRC011DK: OI STAT,UE OR IN UNIT EXCEPTION TOO 01068000
HRC011DK: GOODSTA TIO 0(R10) WAIT FOR DEVICE END 01069000
HRC011DK: BC 7,*-4 LOOP UNTIL CLEAR 01070000
HRC011DK: OC CSW+4(2),STAT PUT BACK ALL THE STATUS 01071000
HRC011DK: TM CSW+4,CUE IS THIS CONTROL UNIT END 01072000
HRC011DK: BO STARTIO1 GO RESTART I/O OPERATION 01073000
HRC011DK: BR R14 BRANCH BACK 01074000
HRC011DK: SPACE , 01075000
HRC011DK: *---------------------------------------------------------------------- 01076000
HRC011DK: * THE INTERRUPT WAS FROM THE IPL DEVICE (IF IT WAS NOT, JUST 01077000
HRC011DK: * LOAD A WAIT STATE). FOR GOOD STATUS (CE+DE), GO VALIDATE THE 01078000
HRC011DK: * CARD. 01079000
HRC011DK: *---------------------------------------------------------------------- 01080000
HRC011DK: SPACE , 01081000
HRC011DK: SELREAD CLC IPLDEV(2),58 IS IT IPL DEV 01082000
HRC011DK: BNE XWAIT NO,WAIT 01083000
HRC011DK: TM CSW+5,X'BF' CHANNEL ERROR? 01084000
HRC011DK: BNZ ERRORMSG PRINT ERROR MSG 01085000
HRC011DK: TM CSW+4,UC IS IT UNIT CHECK? 01086000
HRC011DK: BO DETEST GO CHECK FOR CHAN END 01087000
HRC011DK: TM CSW+4,UE UNIT EXCEPTION? 01088000
HRC011DK: BO TESTDEV YES,BRANCH 01089000
HRC011DK: CLI CSW+4,CE+DE CH END DEV END? 01090000
HRC011DK: BE VALIDATE YES VALIDATE CARD 01091000
HRC011DK: TM CSW+4,CE IS IT CHANNEL END ONLY? 01092000
HRC011DK: BO DRAINDE GO DRAIN DEV END 01093000
HRC011DK: TM CSW+4,DE DEVICE END ONLY? 01094000
HRC011DK: BO GETCARD YES MUST BE DEV MADE READY 01095000
HRC011DK: B ERRORMSG PRINT ERROR MESSAGE 01096000
HRC011DK: DETEST TM CSW+4,CE IS IT CHAN END 01097000
HRC011DK: BO DRAINDE DRAIN DEVICE END 01098000
HRC011DK: B ERRORMSG PRINT ERROR MESSAGE 01099000
HRC011DK: DRAINDE TIO 0(R10) CLEAR DEVICE END 01100000
HRC011DK: BC 7,*-4 LOOP UNTIL CLEAR 01101000
HRC011DK: SPACE , 01102000
HRC011DK: *---------------------------------------------------------------------- 01103000
HRC011DK: * HANDLE A CARD ERROR IF BAD STATUS RETURNED FROM IPL DEVICE. 01104000
HRC011DK: * ISSUE THE MESSAGE 'DEV XXX INTERVENTION REQUIRED'. THEN LOAD 01105000
HRC011DK: * A WAIT STATE. 01106000
HRC011DK: *---------------------------------------------------------------------- 01107000
HRC011DK: SPACE , 01108000
HRC011DK: ERRORMSG XC ALLOSW,ALLOSW CLEAR ALLOCATE SWITCH 01109000
HRC011DK: XC CDSW(2),CDSW " CARD " 01110000
HRC011DK: XC ALLOERR,ALLOERR CLEAR ALLOCATE ERROR SWITCH 01111000
HRC011DK: LA R4,IPLERROR IPL ERROR MESSAGE 01112000
HRC011DK: BAL R14,WMSG PRINT MESSAGE 01113000
HRC011DK: B XWAIT WAIT FOR CARD DEVICE INTERRUPT 01114000
HRC011DK: SPACE , 01115000
HRC011DK: *---------------------------------------------------------------------- 01116000
HRC011DK: * HERE FOR UNIT EXCEPTION FROM IPL DEVICE. IF CARD SWITCH NOT 01117000
HRC011DK: * ON, THEN ISSUE BEGINNING MESSAGE TO CONSOLE. ELSE, CLEAR ALL 01118000
HRC011DK: * CARD SWITCHES BEFORE GOING TO SELECT. 01119000
HRC011DK: *---------------------------------------------------------------------- 01120000
HRC011DK: SPACE , 01121000
HRC011DK: TESTDEV CLI CDSW2,X'FF' IS SW ON? 01122000
HRC011DK: BNE SELECT NO,USE CONSOLE 01123000
HRC011DK: XC CDSW(2),CDSW TURN OFF 2 SWITCHES 01124000
HRC011DK: B NOCARD BRANCH 01125000
HRC011DK: *.3******************************************************************** 01126000
HRC011DK: * 01127000
HRC011DK: * OPERATION - 01128000
HRC011DK: * 01129000
HRC011DK: * J. VALIDATE CARD INPUT FROM IPL DEVICE 01130000
HRC011DK: * 01131000
HRC011DK: * 1. SCAN THE CARD FOR THE PROPER FORMAT. IF INVALID, AN ERROR 01132000
HRC011DK: * MESSAGE WILL BE ISSUED AND THE ERRONEOUS CARD DISPLAYED. 01133000
HRC011DK: * IF THE ERROR EXISTS ON THE FIRST FORMAT OR ALLOCATE CARD, 01134000
HRC011DK: * AN ERROR MESSAGE WILL BE ISSUED, THE ERRONEOUS CARD 01135000
HRC011DK: * DISPLAYED, AND USER WILL BE PROMPTED VIA THE CONSOLE FOR 01136000
HRC011DK: * THE FUNCTION TO BE PERFORMED. FOR ERRORS FOLLOWING THE 01137000
HRC011DK: * FIRST FORMAT OR ALLOCATE CARD, AN INVALID MESSAGE WILL 01138000
HRC011DK: * ISSUED AND FLUSH TO NEXT FORMAT OR ALLOCATE CARD. 01139000
HRC011DK: * 2. AFTER SCAN IS COMPLETE, COMPARE INPUT TO SEE WHAT WAS 01140000
HRC011DK: * ENTERED. FOR LABEL, FORMAT, OR ALLOCATE GO TO SELECT 01141000
HRC011DK: * (OP C) TO BEGIN THE OPERATION. 01142000
HRC011DK: * 3. FOR INVALID CARD INPUT, ISSUE ERROR MESSAGE. 01143000
HRC011DK: * 01144000
HRC011DK: * VALID CARD FORMATS: 01145000
HRC011DK: * 01146000
HRC011DK: * FORMAT EXAMPLES - 01147000
HRC011DK: * 01148000
HRC011DK: * FORMAT,ADDRESS,TYPE,VOLUME LABEL,START CYL,END CYL 01149000
HRC011DK: * 01150000
HRC011DK: * FORMAT,232,3330,MYDISK,000,006, (LAST COMMA MAY BE 01151000
HRC011DK: * OR DROPPED) 01152000
HRC011DK: * FORMAT,232,3330,MYDISK,000,006 01153000
HRC011DK: * 01154000
HRC011DK: * F,232,3330,MYDISK,,, (DEFAULTS START AND END) 01155000
HRC011DK: * F,232,3330,MYDISK,,007 (DEFAULTS START CYL) 01156000
HRC011DK: * F,232,3330,MYDISK,001,, (DEFAULTS END CYL) 01157000
HRC011DK: * F,232,3380,MYDISK,001,,YES (PERFORM WRT VERIFICATION) 01158000
HRC011DK: * 01159000
HRC011DK: * ALLOCATE EXAMPLES: 01160000
HRC011DK: * 01161000
HRC011DK: * ALLOCATE,232,3330,MYDISK 01162000
HRC011DK: * TEMP,000,050 (ALLOCATE CYLINDERS 0 TO 01163000
HRC011DK: * PERM,055,060 50 AS TEMP SPACE) 01164000
HRC011DK: * TDSK,100,108 01165000
HRC011DK: * DRCT,110,120 01166000
HRC011DK: * END 01167000
HRC011DK: * 01168000
HRC011DK: * A,232,3330,MYDISK 01169000
HRC011DK: * ALLO,232,3330,MYDISK (ABBREVIATE ALLOCATE) 01170000
HRC011DK: * 01171000
HRC011DK: * LABEL ONLY EXAMPLES: 01172000
HRC011DK: * 01173000
HRC011DK: * FO,232,3330,MYDISK,LABEL (WORD 'LABEL' IN PLACE OF 01174000
HRC011DK: * CYLINDER) 01175000
HRC011DK: * F,232,3330,MYDISK,LA (WORD LABEL ABBREVIATED) 01176000
HRC011DK: * 01177000
HRC011DK: * LOCAL REGISTER USAGE - 01178000
HRC011DK: * 01179000
HRC011DK: * R1 - OUTPUT AREA ADDRESS 01180000
HRC011DK: * R2 - WORK 01181000
HRC011DK: * R3 - CARD INPUT 01182000
HRC011DK: * R4 - MESSAGE ADDRESS 01183000
HRC011DK: * R14 - LINKAGE 01184000
HRC011DK: * 01185000
HRC011DK: *.$******************************************************************** 01186000
HRC011DK: SPACE , 01187000
HRC011DK: *---------------------------------------------------------------------- 01188000
HRC011DK: * VALIDATE CARD INPUT. ALLOERR IS TURNED ON IF THE TYPE OR CYL 01189000
HRC011DK: * WAS FOUND TO BE INVALID, OR IF THERE WAS A UNIT CHECK WHILE 01190000
HRC011DK: * READIN THE LABEL. ALLOSW IS ON ALL THROUGH ALLOCATION 01191000
HRC011DK: * UNTIL AN 'END' CARD IS FOUND. 01192000
HRC011DK: *---------------------------------------------------------------------- 01193000
HRC011DK: SPACE , 01194000
HRC011DK: VALIDATE MVI CDSW2,X'FF' TURN ON CARD SW 01195000
HRC011DK: CLI CDINPUT,C'F' FORMAT? 01196000
HRC011DK: BE ALLSCAN YES BRANCH 01197000
HRC011DK: CLI CDINPUT,C'A' ALLOCATE? 01198000
HRC011DK: BE ALLSCAN YES,BRANCH 01199000
HRC011DK: CLI ALLOERR,X'FF' ALLOCATE ERROR? 01200000
HRC011DK: BE GETCARD YES,GET NEXT CARD 01201000
HRC011DK: CLI ALLOSW,X'FF' IS ALLOCATE SW ON? 01202000
HRC011DK: BE ALLSCAN1 YES,BRANCH 01203000
HRC011DK: B BADINPUT BAD INPUT 01204000
HRC011DK: ALLSCAN DS 0H 01205000
HRC011DK: CLI LABIOERR,X'FF' I/O ERROR READING LABEL? 01206000
HRC011DK: BE NOPRINT YES, NO PRINT 01207000
HRC011DK: CLI ALLOSW,X'FF' ALLOCATE OPERATION 01208000
HRC011DK: BNE NOPRINT NO,NO PRINT 01209000
HRC011DK: LA R4,TYPERR PRINT NO END CARD 01210000
HRC011DK: BAL R14,WMSG WRITE MESSAGE 01211000
HRC011DK: NOPRINT MVI ALLOSW,X'00' TURN ALLOCATE SW OFF 01212000
HRC011DK: MVI LABIOERR,X'00' TURN OFF LABEL I/O ERROR SW 01213000
HRC011DK: ALLSCAN1 MVI ALLOERR,X'00' TURN OFF ALLOCATE ERROR SW 01214000
HRC011DK: SPACE , 01215000
HRC011DK: *---------------------------------------------------------------------- 01216000
HRC011DK: * SCAN FOR NEXT FIELDS ON THE CARD. SAVE THE CARD FIELDS IN 01217000
HRC011DK: * THE OUTPUT AREA STARTING AT CDFORA UNTIL THERE IS NO MORE 01218000
HRC011DK: * DATA ON THE CARD TO SAVE. 01219000
HRC011DK: *---------------------------------------------------------------------- 01220000
HRC011DK: SPACE , 01221000
HRC011DK: LA R1,CDFORA-8 R1 ADDRESS OF OUTPUT AREA-8 01222000
HRC011DK: LA R3,CDINPUT R3 POINTS TO CARD INPUT 01223000
HRC011DK: XC CDFORA(56),CDFORA CLEAR OUTPUT AREA 01224000
HRC011DK: NEWFIELD XR R2,R2 R2 TO ZERO 01225000
HRC011DK: MVC DATA,0(R3) SAVE FIRST FIELD 01226000
HRC011DK: CL R1,=A(CDLAST) IS R1 AT LAST FIELD? 01227000
HRC011DK: BE ENDUP YES,BRANCH 01228000
HRC011DK: SCAN CLI 0(R3),C' ' IS IT BLANK? 01229000
HRC011DK: BE FIELD YES,BRANCH 01230000
HRC011DK: CLI 0(R3),C',' IS IT A COMMA? 01231000
HRC011DK: BE FIELD YES,BRANCH 01232000
HRC011DK: LA R2,1(R2) ADD 1 01233000
HRC011DK: LA R3,1(R3) ADD 1 01234000
HRC011DK: B SCAN BRANCH 01235000
HRC011DK: FIELD LA R1,8(R1) POINT TO NEXT FIELD 01236000
HRC011DK: NR R2,R2 IS R2 ZERO? 01237000
HRC011DK: BM NODEFALT BRANCH IF NOT DEFAULT 01238000
HRC011DK: XC DATA,DATA CLEAR DATA 01239000
HRC011DK: LA R2,8(R2) UP LENGTH TO 8 01240000
HRC011DK: NODEFALT BCTR R2,0 SUBTRACT 1 R2 01241000
HRC011DK: EX R2,MOVE PUT DATA IN OUTPUT FIELD 01242000
HRC011DK: CLI 0(R3),C' ' BLANK MEANS END OF INPUT 01243000
HRC011DK: BE ENDUP YES,GO END 01244000
HRC011DK: LA R3,1(R3) ADD 1 TO R3 01245000
HRC011DK: CLI 0(R3),C' ' NEXT POSITION BLANK? 01246000
HRC011DK: BE ENDUP YES,NO MORE DATA 01247000
HRC011DK: B NEWFIELD BRANCH 01248000
HRC011DK: MOVE MVC 0(1,R1),DATA PUT DATA IN OUTPUT 01249000
HRC011DK: SPACE , 01250000
HRC011DK: *---------------------------------------------------------------------- 01251000
HRC011DK: * COMPARE THE DATA TO SEE WHAT WAS ENTERED. FOR VALID LABEL, 01252000
HRC011DK: * FORMAT, OR ALLOCATE FUNCTION, GO TO SELECT TO BEGIN THE 01253000
HRC011DK: * OPERATION. 01254000
HRC011DK: *---------------------------------------------------------------------- 01255000
HRC011DK: SPACE , 01256000
HRC011DK: ENDUP EQU * 01257000
HRC011DK: CLC 0(3,R3),BLANKS8 NEXT 3 POSITION BLANKS ? 01258000
HRC011DK: BNE BADINPUT NO,THAT'S BAD INPUT 01259000
HRC011DK: CL R1,=A(CDSTART) IS LABEL ONLY OPERATION? 01260000
HRC011DK: BE LCHECK GO CHECK INPUT 01261000
HRC011DK: CL R1,=A(CDLAST) DID WE FILL LAST FIELD? 01262000
HRC011DK: BE FCHECK YES,CHECK FOR FORMAT 01263000
HRC011DK: SPACE , 01264000
HRC011DK: *---------------------------------------------------------------------- 01265000
HRC011DK: * USER MAY NOT HAVE CHOSEN WRITE VERIFICATION. IN THIS CASE 01266000
HRC011DK: * THE LAST FIELD WOULD BE END CYLINDER, THEREFORE CHECK. 01267000
HRC011DK: *---------------------------------------------------------------------- 01268000
HRC011DK: SPACE , 01269000
HRC011DK: CL R1,=A(CDENDCYL) END CYLINDER LAST FIELD? 01270000
HRC011DK: BE FCHECK YES, CHECK FOR FORMAT 01271000
HRC011DK: CL R1,=A(CDLABEL) IS IT ALLOCATE OPERATOR 01272000
HRC011DK: BE ACHECK CHECK FOR ALLOCATE 01273000
HRC011DK: CLI ALLOSW,X'FF' IS SWITCH ON? 01274000
HRC011DK: BNE BADINPUT NO,BAD 01275000
HRC011DK: CL R1,=A(CDTYPE) LAST FIELD ALLOCATE END 01276000
HRC011DK: BE REREAD YES,ALLOCATE 01277000
HRC011DK: CL R1,=A(CDFORA) IS IT END CARD? 01278000
HRC011DK: BE REREAD YES,BRANCH 01279000
HRC011DK: B BADINPUT NONE OF ABOVE BADINPUT 01280000
HRC011DK: LCHECK CLI CDSTART,C'L' IS LABEL ONLY? 01281000
HRC011DK: BNE BADINPUT NO,BAD INPUT 01282000
HRC011DK: FCHECK CLI CDFORA,C'F' IS IT FORMAT? 01283000
HRC011DK: BE SELECT YES, DO THE TASK 01284000
HRC011DK: B BADINPUT NO,BAD 01285000
HRC011DK: ACHECK CLI CDFORA,C'A' IS IT ALLOCATE? 01286000
HRC011DK: BNE BADINPUT NO,BAD 01287000
HRC011DK: MVI ALLOSW,X'FF' TURN ON ALLOCATE SWITCH 01288000
HRC011DK: B SELECT DO ALLOCATE 01289000
HRC011DK: SPACE , 01290000
HRC011DK: *---------------------------------------------------------------------- 01291000
HRC011DK: * INVALID CARD INPUT. ISSUE MESSAGE 'INVALID OPERAND' AND THEN 01292000
HRC011DK: * GO BACK TO START. 01293000
HRC011DK: *---------------------------------------------------------------------- 01294000
HRC011DK: SPACE , 01295000
HRC011DK: BADINPUT MVC CDSW(2),=X'0000' TURN OFF 2 SWITCHES 01296000
HRC011DK: MVI ALLOERR,X'FF' TURN ON TO FLUSH NEXT GOOD CARD 01297000
HRC011DK: XC ALLOSW,ALLOSW CLEAR ALLOCATE SWITCH 01298000
HRC011DK: LA R4,BAD MSG ADDRESS IN R4 01299000
HRC011DK: BAL R14,WMSG PRINT MSG 01300000
HRC011DK: LA R4,CARDMESS PRINT BAD CARD 01301000
HRC011DK: BAL R14,WMSG PRINT MSG 01302000
HRC011DK: B STMSG BRANCH 01303000
HRC011DK: *.3******************************************************************** 01304000
HRC011DK: * 01305000
HRC011DK: * OPERATION - 01306000
HRC011DK: * 01307000
HRC011DK: * K. OBTAIN STARTING AND ENDING CYLINDER NUMBERS FOR CKD FORMAT 01308000
HRC011DK: * 01309000
HRC011DK: * THIS ROUTINE ALLOWS DEFAULTS FOR STARTING AND ENDING DASD 01310000
HRC011DK: * LOCATIONS FOR FORMAT FROM CONSOLE OR IPL DEVICE INPUT. 01311000
HRC011DK: * 01312000
HRC011DK: * 1. ISSUE 'ENTER START CYLINDER' MESSAGE AND GET RESPONSE. 01313000
HRC011DK: * 2. SAVE START CYLINDER. 01314000
HRC011DK: * 3. ISSUE 'ENTER END CYLINDER' MESSAGE AND GET RESPONSE. 01315000
HRC011DK: * 4. SAVE ENDING CYLINDER. 01316000
HRC011DK: * 5. CONTINUE AT OP M. 01317000
HRC011DK: * 01318000
HRC011DK: * LOCAL REGISTER USAGE - 01319000
HRC011DK: * 01320000
HRC011DK: * R3 - CHKDIGIT LINKAGE 01321000
HRC011DK: * R4 - MESSAGE ADDRESS 01322000
HRC011DK: * R7 - WORK 01323000
HRC011DK: * R14 - LINKAGE 01324000
HRC011DK: * 01325000
HRC011DK: *.$******************************************************************** 01326000
HRC011DK: SPACE , 01327000
HRC011DK: *---------------------------------------------------------------------- 01328000
HRC011DK: * ISSUE 'ENTER START CYLINDER (XXX OR XXXX) OR "LABEL":'. IF 01329000
HRC011DK: * NULL RESPONSE THEN DEFAULT TO CYLINDER 0. 01330000
HRC011DK: *---------------------------------------------------------------------- 01331000
HRC011DK: SPACE , 01332000
HRC011DK: FORMALL MVI LOSW,X'00' INITIAL LABEL ONLY FLAG 01333000
HRC011DK: LA R4,STCYL PUT CYLINDER IN MESSAGE 01334000
HRC011DK: BAL R14,WMSG WRITE MESSAGE 01335000
HRC011DK: BAL R14,RMSG READ RESPONSE 01336000
HRC011DK: TM CSW+4,UE CANCEL OR UNIT CHECK 01337000
HRC011DK: BO FORMALL YES,TRY AGAIN 01338000
HRC011DK: CLI INDATA,X'00' WAS IT EOB 01339000
HRC011DK: MVC BEGIN,=X'0000' SET UP DEFAULT 01340000
HRC011DK: BE NEXT IF DEFAULT GO ON 01341000
HRC011DK: SPACE , 01342000
HRC011DK: *---------------------------------------------------------------------- 01343000
HRC011DK: * EVALUATE THE RESPONSE. IF "LABEL", THEN GO HANDLE LABEL ONLY 01344000
HRC011DK: * FUNCTION. ELSE, VERIFY THAT THE CYLINDER NUMBER IS VALID BY 01345000
HRC011DK: * CALLING CHKDIGIT. 01346000
HRC011DK: *---------------------------------------------------------------------- 01347000
HRC011DK: SPACE , 01348000
HRC011DK: BAL R14,LNGCALC GET WORD LENGTH 01349000
HRC011DK: BNZ FORMALL IF LEN=0, GT 8 TRY AGAIN 01350000
HRC011DK: EX R4,TSTLABL IS IT LABEL? 01351000
HRC011DK: BE LAB YES,GO TO LABEL 01352000
HRC011DK: BAL R3,CHKDIGIT CHECK INPUT CYL DIGIT 01353000
HRC011DK: BNZ FORMALL TRY AGAIN IF CC ¬= 0 01354000
HRC011DK: OC INDATA(CYLNUM+BLANK),BLANKS8 01355000
HRC011DK: * CONVERT X'00' TO BLANK 01356000
HRC011DK: CLI INDATA+CYLNUM,X'40' YES, ANYTHING EXTRA? 01357000
HRC011DK: BNE FORMALL YES - DO IT OVER AGAIN 01358000
HRC011DK: PACK FIELDA+5(3),INDATA(CYLNUM) ALL NUMERIC, 01359000
HRC011DK: * PACK THE INPUT DATA 01360000
HRC011DK: CVB R7,FIELDA CONVERT TO BINARY 01361000
HRC011DK: SPACE , 01362000
HRC011DK: *---------------------------------------------------------------------- 01363000
HRC011DK: * IF THE STARTING CYLINDER IS HIGHER THAN THE HIGHEST CYLINDER, 01364000
HRC011DK: * THEN RE-ISSUE MESSAGE. ELSE SAVE THE STARTING CYLINDER. 01365000
HRC011DK: *---------------------------------------------------------------------- 01366000
HRC011DK: SPACE , 01367000
HRC011DK: CH R7,HIVALUE IS START CYL HIGHER THAN LAST 01368000
HRC011DK: BH FORMALL YES,ERROR 01369000
HRC011DK: STH R7,BEGIN BEGIN=CYL START ADDRESS 01370000
HRC011DK: SPACE , 01371000
HRC011DK: *---------------------------------------------------------------------- 01372000
HRC011DK: * NOW ISSUE 'ENTER END CYLINDER (XXX OR XXXX):' AND READ THE 01373000
HRC011DK: * RESPONSE. FOR NULL RESPONSE DEFAULT TO HIGHEST CYLINDER ON 01374000
HRC011DK: * PACK. ELSE, VERIFY THAT THE CYLINDER NUMBER IS VALID BY 01375000
HRC011DK: * CALLING CHKDIGIT. 01376000
HRC011DK: *---------------------------------------------------------------------- 01377000
HRC011DK: SPACE , 01378000
HRC011DK: NEXT LA R4,ENDCYL USE END CYL MESSAGE 01379000
HRC011DK: BAL R14,WMSG PRINT MESSAGE 01380000
HRC011DK: BAL R14,RMSG READ RESPONSE 01381000
HRC011DK: TM CSW+4,UE CANCEL KEY OR UNIT CHECK 01382000
HRC011DK: BO NEXT YES, TRY AGAIN 01383000
HRC011DK: CLI INDATA,X'00' WAS DEFAULT SET 01384000
HRC011DK: MVC ENDING,HIVALUE SAVE HIGHEST DEFAULT VALUE 01385000
HRC011DK: BE LIMITS BRANCH IF DEFAULT 01386000
HRC011DK: BAL R3,CHKDIGIT CHECK INPUT CYL DIGIT 01387000
HRC011DK: BNZ NEXT TRY AGAIN IF CC ¬= 0 01388000
HRC011DK: OC INDATA(CYLNUM+BLANK),BLANKS8 01389000
HRC011DK: * CONVERT X'00' TO BLANK 01390000
HRC011DK: CLI INDATA+CYLNUM,X'40' ANYTHING EXTRA? 01391000
HRC011DK: BNE NEXT YES - WE DON'T WANT IT 01392000
HRC011DK: PACK FIELDA+5(3),INDATA(CYLNUM) PACK INPUT CYL # 01393000
HRC011DK: CVB R7,FIELDA CONVERT INDATA INTO BINARY 01394000
HRC011DK: SPACE , 01395000
HRC011DK: *---------------------------------------------------------------------- 01396000
HRC011DK: * IF HIGHER THAN HIGHEST CYLINDER, THEN RE-ISSUE MESSAGE. ELSE 01397000
HRC011DK: * SAVE THE ENDING CYLINDER. 01398000
HRC011DK: *---------------------------------------------------------------------- 01399000
HRC011DK: SPACE , 01400000
HRC011DK: CH R7,HIVALUE END BEYOND LAST CYL? 01401000
HRC011DK: BH NEXT YES, TRY AGAIN 01402000
HRC011DK: STH R7,ENDING SAVE ENDING ADRESS 01403000
HRC011DK: LIMITS CLC BEGIN,ENDING IS BEGINING HIGHER THAN END 01404000
HRC011DK: BH NEXT YES, ERROR, TRY AGAIN 01405000
HRC011DK: B LAB 01406000
HRC011DK: SPACE , 01407000
HRC011DK: SPACE , 01408000
HRC011DK: *---------------------------------------------------------------------- 01409000
HRC011DK: * CHECK THE DIGIT FOR THE INPUT FORMAT CYLINDER NUMBER. 01410000
HRC011DK: *---------------------------------------------------------------------- 01411000
HRC011DK: SPACE , 01412000
HRC011DK: CHKDIGIT DS 0H CHK INPUT CYL # FOR FORMAT 01413000
HRC011DK: CLI INDATA+3,C'0' 4TH DIGIT A NUMERIC? 01414000
HRC011DK: BNL NUMCHKF POSSIBLE, CHECK IT FURTHER 01415000
HRC011DK: CLI INDATA+3,C' ' IF NOT, IS IT A BLANK? 01416000
HRC011DK: BE INSERTF YES, INSERT A LEADING 0 01417000
HRC011DK: CLI INDATA+3,X'00' OR COULD IT BE A X'00'? 01418000
HRC011DK: BE INSERTF YES, INSERT A LEADING 0 01419000
HRC011DK: LA R4,TYPERR NO, INPUT ERROR 01420000
HRC011DK: BAL R14,WMSG TELL THE OPERATOR 01421000
HRC011DK: CLI F0,X'FF' SET CONDITION CODE 1 01422000
HRC011DK: BR R3 AND TRY AGAIN 01423000
HRC011DK: SPACE , 01424000
HRC011DK: INSERTF DS 0H INSERT A LEADING 0 01425000
HRC011DK: MVC CHARSAVE,CHARMASK MOVE IN MASK CHARACTERS 01426000
HRC011DK: MVC CHARSAVE+1(3),INDATA STORE CYL # TEMPORARILY 01427000
HRC011DK: MVC INDATA(4),CHARSAVE SHIFT 1 BYTE TO THE RIGHT 01428000
HRC011DK: NUMCHKF DS 0H NUMERIC CHECK FOR FORMAT 01429000
HRC011DK: MVC MASKB(CYLNUM),MASKA REINITIALIZE MASKB 01430000
HRC011DK: NC MASKB(CYLNUM),INDATA AND COMPARE WITH INPUT 01431000
HRC011DK: CLC MASKB(CYLNUM),MASKA IS INPUT CYL. NUMERIC? 01432000
HRC011DK: BR R3 01433000
HRC011DK: *.3******************************************************************** 01434000
HRC011DK: * 01435000
HRC011DK: * OPERATION - 01436000
HRC011DK: * 01437000
HRC011DK: * M. ASK FOR LABEL AND VERIFY 01438000
HRC011DK: * 01439000
HRC011DK: * HERE FOR ALL OPERATIONS TO REQUEST A VOLUME LABEL. 01440000
HRC011DK: * 01441000
HRC011DK: * 1. REQUEST VOLUME LABEL AND READ THE RESPONSE. 01442000
HRC011DK: * 2. READ THE CURRENT LABEL FROM THE REAL PACK. THIS IS READ 01443000
HRC011DK: * INTO 'CPLABEL'. 01444000
HRC011DK: * 3. IF "LABEL" FUNCTION, GO TO OP N. 01445000
HRC011DK: * 4. IF "ALLOCATE", THEN VERIFY THAT THE LABELS MATCH AND GO 01446000
HRC011DK: * TO OP X. 01447000
HRC011DK: * 5. IF "FORMAT", VERIFY THAT THE LABELS MATCH IF WE ARE NOT 01448000
HRC011DK: * FORMATTING CYLINDER/PAGE 0 - THEN GO TO OP P. 01449000
HRC011DK: * 6. IF "FORMAT" AND WE ARE FORMATTING CYLINDER 0 THEN 01450000
HRC011DK: * GO TO OP O. 01451000
HRC011DK: * 7. IF LABELS DO NOT MATCH, THEN ISSUE ERROR MESSAGE. 01452000
HRC011DK: * 01453000
HRC011DK: * LOCAL REGISTER USAGE - 01454000
HRC011DK: * 01455000
HRC011DK: * R4 - MESSAGE ADDRESS 01456000
HRC011DK: * R7 - LINKAGE 01457000
HRC011DK: * R9 - CCW STRING ADDRESS 01458000
HRC011DK: * R14 - LINKAGE 01459000
HRC011DK: * 01460000
HRC011DK: *.&******************************************************************** 01461000
HRC011DK: SPACE , 01462000
HRC011DK: *---------------------------------------------------------------------- 01463000
HRC011DK: * MOVE IN THE FIRST LETTER OF INDATA (WOULD BE 'L' FOR LABEL 01464000
HRC011DK: * ONLY. ISSUE 'ENTER DEVICE LABEL:' MESSAGE AND THEN CALL RMSG 01465000
HRC011DK: * TO READ THE RESPONSE. LABEL ENTERED MUST BE LESS THAN 7 01466000
HRC011DK: * CHARACTERS WITH THE FIRST CHARACTER NON-BLANK. 01467000
HRC011DK: *---------------------------------------------------------------------- 01468000
HRC011DK: SPACE , 01469000
HRC011DK: LAB MVC LOSW(1),INDATA CHECK FIRST BYTE INDATA SAVED 01470000
HRC011DK: LAB2 LA R4,RDLAB REQUEST VOLUME LABEL 01471000
HRC011DK: BAL R14,WMSG WRITE MESSAGE 01472000
HRC011DK: BAL R14,RMSG READ RESPONSE 01473000
HRC011DK: TM CSW+4,UE CANCEL OR UNIT CHECK 01474000
HRC011DK: BO LAB2 YES, TRY AGAIN 01475000
HRC011DK: OC INDATA(7),BLANKS8 CONVERT TO UPPER CASE 01476000
HRC011DK: CLI INDATA+6,X'40' TOO MUCH DATA ENTER? 01477000
HRC011DK: BNE LAB2 YES, BRANCH 01478000
HRC011DK: CLI INDATA,C' ' FIRST BYTE BLANK? 01479000
HRC011DK: BE LAB2 YES, ERROR, DO IT AGAIN 01480000
HRC011DK: SPACE , 01481000
HRC011DK: *---------------------------------------------------------------------- 01482000
HRC011DK: * PREPARE THE CCWS FOR READING THE CURRENT LABEL FROM THE PACK. 01483000
HRC011DK: * LBLREC CCW STRING READS THE LABEL FROM A CKD. CALL STRTIO 01484000
HRC011DK: * TO READ THE LABEL INTO OSLABEL/CPLABEL. 01485000
HRC011DK: *---------------------------------------------------------------------- 01486000
HRC011DK: SPACE , 01487000
HRC011DK: XC SEEKA(6),SEEKA CLEAR CCW DATA AREA 01488000
HRC011DK: MVC CPLABEL,=X'009596958500' PLUG IN LOWER CASE LABEL 'NONE' 01489000
HRC011DK: L R2,=A(TABLE) LOAD ADD OF ALLOC TABLE 01490000
HRC011DK: LH R3,=AL2(DL4096-1) LOAD ALLOC TABLE LENGTH 01491000
HRC011DK: SR R4,R4 ZERO R4 FOR FILL OPERATION 01492000
HRC011DK: SR R5,R5 ZERO R5 FOR FILL OPERATION 01493000
HRC011DK: ICM R5,8,=X'FE' SET PAD BYTE TO X'FE' 01494000
HRC011DK: MVCL R2,R4 FILL ALLOC TABLE WITH X'FE' 01495000
HRC011DK: LA R9,LBLREC PUT LABEL CCW ADDRESS INTO R9 01496000
HRC011DK: ST R9,CAW LABEL CCW ADDRESS INTO CAW 01497000
HRC011DK: LH R5,DSKADD DEVICE ADDRESS INTO R5 01498000
HRC011DK: BAL R14,STRTIO GO START THE DEVICE 01499000
HRC011DK: SPACE , 01500000
HRC011DK: *---------------------------------------------------------------------- 01501000
HRC011DK: * IF DURING ALLOCATION WE GET A UNIT CHECK WHILE READING THE 01502000
HRC011DK: * LABEL, THEN ISSUE A SENSE TO THE DEVICE AND DISPLAY AN ERROR 01503000
HRC011DK: * MESSAGE (GO TO FATAL). 01504000
HRC011DK: *---------------------------------------------------------------------- 01505000
HRC011DK: SPACE , 01506000
HRC011DK: CLI FLAG,C'A' IS IT ALLOCATE? 01507000
HRC011DK: BNE LABELIOG NO, SKIP CHECK FOR UC 01508000
HRC011DK: TM CSW+4,UC DID WE GET A CLEAN I/O? 01509000
HRC011DK: BNO LABELIOG YES, CONTINUE NORMALLY 01510000
HRC011DK: BAL R7,SENSIT NO, GO GET SENSE FOR MSG 01511000
HRC011DK: MVC CCHHR(5),R4ALLOC MOVE IN CCHHR DATA 01512000
HRC011DK: BAL R7,SENSIT2 TYPE THE MESSAGE 01513000
HRC011DK: MVI ALLOERR,X'FF' SET ALLOC ERROR SW ON 01514000
HRC011DK: MVI LABIOERR,X'FF' SET LABEL I/O ERROR SW ON 01515000
HRC011DK: B FATAL 01516000
HRC011DK: SPACE , 01517000
HRC011DK: *---------------------------------------------------------------------- 01518000
HRC011DK: * FOR THE "LABEL" FUNCTION, GO TO LABONLY. 01519000
HRC011DK: * FOR "ALLOCATE", VERIFY THAT THE LABEL READ OFF THE DEVICE 01520000
HRC011DK: * MATCHES THE LABEL ENTERED BY THE USER. THEN CONTINUE TO 01521000
HRC011DK: * 'ALLOCATE'. 01522000
HRC011DK: * FOR THE "FORMAT" FUNCTION: 01523000
HRC011DK: * IF FORMATTING CKD STARTING AT CYL 0, THEN GO TO FMT WHICH 01524000
HRC011DK: * PRESERVES ANY EXISTING OS FORMAT 4 LABEL ON TRACK 0. 01525000
HRC011DK: * IF FORMATTING CKD OTHERWISE & LABELS EQUAL, GO TO 'REGFORM1'. 01526000
HRC011DK: *---------------------------------------------------------------------- 01527000
HRC011DK: SPACE , 01528000
HRC011DK: LABELIOG EQU * 01529000
HRC011DK: CLI LOSW,C'L' LABEL ONLY? 01530000
HRC011DK: BE LABONLY YES BRANCH 01531000
HRC011DK: CLI FLAG,C'A' IS IT ALLOCATE? 01532000
HRC011DK: BE LABMATCH VERIFY LABELS IF ALLOC 01533000
HRC011DK: CLC BEGIN,=X'0000' IS IT REGULAR FORMAT? 01534000
HRC011DK: BE FMT YES, CONTINUE 01535000
HRC011DK: SPACE , 01536000
HRC011DK: *---------------------------------------------------------------------- 01537000
HRC011DK: * IF THE LABEL READ FROM THE VOLUME DOES NOT MATCH THE LABEL 01538000
HRC011DK: * ENTERED BY THE USER, THEN ISSUE 'VOLID READ IS XXXXXX NOT 01539000
HRC011DK: * XXXXXX'. GO BACK TO LAB2 TO RE-ISSUE 'ENTER DEVICE LABEL:'. 01540000
HRC011DK: *---------------------------------------------------------------------- 01541000
HRC011DK: SPACE , 01542000
HRC011DK: LABMATCH CLC CPLABEL,INDATA DO LABELS MATCH? 01543000
HRC011DK: BNE LABELBAD NO, BRANCH 01544000
HRC011DK: CLI FLAG,C'F' FORMAT? 01545000
HRC011DK: BE REGFORM1 YES,BRANCH 01546000
HRC011DK: B ALLOCATE MUST BE ALLOCATE 01547000
HRC011DK: SPACE , 01548000
HRC011DK: LABELBAD MVC WRONG+37(6),INDATA SET UP LABEL 01549000
HRC011DK: MVC WRONG+26(6),CPLABEL SET UP LABEL 01550000
HRC011DK: LA R4,WRONG PRINT WRONG LABEL 01551000
HRC011DK: BAL R14,WMSG PRINT MESSAGE 01552000
HRC011DK: CLI CDSW2,X'FF' CARD SWITCH ON? 01553000
HRC011DK: BE BADINPUT YES, BRANCH 01554000
HRC011DK: B LAB2 BRANCH 01555000
HRC011DK: *.3******************************************************************** 01556000
HRC011DK: * 01557000
HRC011DK: * OPERATION - 01558000
HRC011DK: * 01559000
HRC011DK: * N. HANDLE "LABEL ONLY" FUNCTION 01560000
HRC011DK: * 01561000
HRC011DK: * 1. WRITE NEW CP VOLUME LABEL IN CYLINDER 0 HEAD 0 RECORD 3. 01562000
HRC011DK: * 2. HANDLE ANY BAD STATUS RESULTING FROM WRITING OUT THE LABEL. 01563000
HRC011DK: * 3. GET ANOTHER TASK FROM CONSOLE OR IPL DEVICE WHEN LABELLING 01564000
HRC011DK: * IS COMPLETE. 01565000
HRC011DK: * 01566000
HRC011DK: * LOCAL REGISTER USAGE - 01567000
HRC011DK: * 01568000
HRC011DK: * R5 - DEVICE ADDRESS 01569000
HRC011DK: * R9 - ADDRESS OF CHANNEL PROGRAM 01570000
HRC011DK: * 01571000
HRC011DK: *.&******************************************************************** 01572000
HRC011DK: SPACE , 01573000
HRC011DK: *---------------------------------------------------------------------- 01574000
HRC011DK: * FOR A NON-CMS DISK, MOVE 'VOL1' INTO OSLABEL. 01575000
HRC011DK: *---------------------------------------------------------------------- 01576000
HRC011DK: SPACE , 01577000
HRC011DK: LABONLY MVC CPLABEL(6),INDATA MOVE IN NEW LABEL NAME 01578000
HRC011DK: CLC =C'CMS=',OSLABEL IS THIS A CMS DISK? 01579000
HRC011DK: BE LABCMS YES 01580000
HRC011DK: CLC =C'CMS1',OSLABEL IS IT CMS EDF LABEL? 01581000
HRC011DK: BE LABCMS YES 01582000
HRC011DK: MVC OSLABEL(4),VOL1 NO, MAKE IT VOL1 LABEL 01583000
HRC011DK: LABCMS DS 0H 01584000
HRC011DK: SPACE , 01585000
HRC011DK: *---------------------------------------------------------------------- 01586000
HRC011DK: * GET THE APPROPRIATE CCW STRING FOR WRITING THE LABEL. 01587000
HRC011DK: * LABWRITE - WRITE LABEL ON CKD DEVICE. 01588000
HRC011DK: *---------------------------------------------------------------------- 01589000
HRC011DK: SPACE , 01590000
HRC011DK: LH R5,DSKADD DEVICE ADDRESS INTO R5 01591000
HRC011DK: LA R9,LABWRITE LABEL CCW CHAIN INTO R9 01592000
HRC011DK: ST R9,CAW CAW POINTS TO LABEL CCWS 01593000
HRC011DK: BAL R14,STRTIO1 WRITE OUT THE LABEL 01594000
HRC011DK: SPACE , 01595000
HRC011DK: *---------------------------------------------------------------------- 01596000
HRC011DK: * HANDLE ANY BAD STATUS RESULTING FROM WRITING OUT THE LABEL. 01597000
HRC011DK: * FOR CC3 FROM TIO, ISSUE 'DEV XXX NOT OPERATIONAL OR NOT READY' 01598000
HRC011DK: * FOR CHANNEL ERRORS OR UNIT CHECK, GO ISSUE SENSE TO DEVICE AND 01599000
HRC011DK: * ISSUE ERROR MESSAGE. 01600000
HRC011DK: * FOR CHANNEL END, ISSUE 'LABEL IS NOW XXXXXX'. 01601000
HRC011DK: *---------------------------------------------------------------------- 01602000
HRC011DK: SPACE , 01603000
HRC011DK: TIO TIO 0(R5) DRAIN THE INT 01604000
HRC011DK: BC 2,*-4 LOOP UNTIL DONE 01605000
HRC011DK: BC 1,TIOCC3 CC=3 - HELP . . . 01606000
HRC011DK: TM CSW+5,X'FF' ANY BAD CHANNEL STATUS 01607000
HRC011DK: BNZ VOL1ERR YES- FATAL 01608000
HRC011DK: TM CSW+4,UC UNIT CHECK 01609000
HRC011DK: BO VOL1ERR YES- BRANCH 01610000
HRC011DK: TM CSW+4,CE CHANNEL END 01611000
HRC011DK: BO VOL1OK YES- BRANCH ALL OK 01612000
HRC011DK: B TIO NO- GO GET IT 01613000
HRC011DK: SPACE , 01614000
HRC011DK: VOL1ERR BAL R7,SENSIT GET THE SENSE DATA 01615000
HRC011DK: MVC CCHHR(5),R3VOL1 MOVE IN THE CCHHR DATA 01616000
HRC011DK: BAL R7,SENSIT2 TYPE THE MSG 01617000
HRC011DK: B FATAL 01618000
HRC011DK: SPACE , 01619000
HRC011DK: VOL1OK MVC LABELOK+14(6),CPLABEL MOVE THE LABEL INTO THE MSG 01620000
HRC011DK: LA R4,LABELOK POINT TO THE MSG 01621000
HRC011DK: BAL R14,WMSG AND GO TYPE IT 01622000
HRC011DK: B GETCARD GO PROMPT FOR ANOTHER TASK 01623000
HRC011DK: SPACE , 01624000
HRC011DK: TIOCC3 EQU * 01625000
HRC011DK: LA R4,WR1 TELL HIM ABOUT PROBLEMS 01626000
HRC011DK: BAL R14,WMSG . . . 01627000
HRC011DK: B GETCARD SEE IF THERE'S ANY MORE WORK. 01628000
HRC011DK: *.3******************************************************************** 01629000
HRC011DK: * 01630000
HRC011DK: * OPERATION - 01631000
HRC011DK: * 01632000
HRC011DK: * O. HANDLE FORMAT CYLINDER 0 FOR CKD -- OBTAIN PERTINENT TRACK AND 01633000
HRC011DK: * LABEL INFORMATION 01634000
HRC011DK: * 01635000
HRC011DK: * 1. SAVE THE FMT4 DSCB INFORMATION AND INCLUDE IT IN THE 01636000
HRC011DK: * FORMAT4 DSCB WRITTEN BY US. 01637000
HRC011DK: * 2. PRESERVE THE ALTERNATE TRACK ASSIGNMENT AND OS FORMAT 4 01638000
HRC011DK: * LABEL. 01639000
HRC011DK: * 01640000
HRC011DK: * LOCAL REGISTER USAGE - 01641000
HRC011DK: * 01642000
HRC011DK: * 01643000
HRC011DK: *.&******************************************************************** 01644000
HRC011DK: SPACE , 01645000
HRC011DK: *---------------------------------------------------------------------- 01646000
HRC011DK: * IF CPLABEL STILL EQUALS ' none ', THEN THERE WAS A PROBLEM 01647000
HRC011DK: * READING RECORD 3 - SKIP SAVING ALTERNATE TRACK INFO. 01648000
HRC011DK: * IF OSLABEL INDICATES CMS (NOT VOL1), THEN SKIP SAVING INFO. 01649000
HRC011DK: * 01650000
HRC011DK: * THE IBCDASDI FORMATTING UTILITY KEEPS THE CCHH FOR THE NEXT 01651000
HRC011DK: * AVAILABLE ALTERNATE TRACK AND THE NUMBER OF ALTERNATE TRACKS 01652000
HRC011DK: * IN THE FMT4 DSCB. WE DO NOT WANT TO DESTROY THIS INFORMATION 01653000
HRC011DK: * WHEN CP WRITES ITS FORMAT4 DSCB; THE INFO WILL BE SAVED AND 01654000
HRC011DK: * INCLUDED IN THE FORMAT4 DSCB WRITTEN BY DMKFMT. IBCDASDI AND 01655000
HRC011DK: * DMKFMT WRITE R3 WITH "VOL1". CMS FORMAT WRITES NO FMT4 DSCB 01656000
HRC011DK: * AND THEREFORE THERE IS NO POINT IN LOOKING FOR THE INFO. 01657000
HRC011DK: *---------------------------------------------------------------------- 01658000
HRC011DK: SPACE , 01659000
HRC011DK: FMT CLC CPLABEL,=X'009596958500' PROB. READING R3? 01660000
HRC011DK: BE REGFORM YES, DON'T SAVE ALT. TRK INFO 01661000
HRC011DK: CLC OSLABEL(3),=CL3'VOL' STD. LABEL 01662000
HRC011DK: BNE REGFORM NO, SKIP CMS LABEL 01663000
HRC011DK: TM TYPE,X'70' 3330,334X,3350 OR 3380? 01664000
HRC011DK: BZ REGFORM NO, THEN REG FORMAT 01665000
HRC011DK: SPACE , 01666000
HRC011DK: *---------------------------------------------------------------------- 01667000
HRC011DK: * IF THE VTOC ADDRESS IS ZEROES OR BELOW CCHHR = 0000000005, 01668000
HRC011DK: * THEN DON'T READ. IBCDASDI DOES NOT PERMIT VTOC ON TRACK 0. 01669000
HRC011DK: * CP'S DMKFMT PLACES VTOC ON CCHHR = 0000000005. 01670000
HRC011DK: *---------------------------------------------------------------------- 01671000
HRC011DK: SPACE , 01672000
HRC011DK: CLC VTOCBEG,=F'0' VERIFY VTOC ADDRESS 01673000
HRC011DK: BNE READFMT4 GO AHEAD AND READ 01674000
HRC011DK: CLI VTOCR,X'05' CANNOT BE LESS THAN R5 01675000
HRC011DK: BL REGFORM NO POINT IN READING FMT4 01676000
HRC011DK: SPACE , 01677000
HRC011DK: *---------------------------------------------------------------------- 01678000
HRC011DK: * PRESERVE ALTERNATE TRACK ASSIGNMENT AND OS FORMAT 4 LABEL. 01679000
HRC011DK: *---------------------------------------------------------------------- 01680000
HRC011DK: SPACE , 01681000
HRC011DK: DS 0H 01682000
HRC011DK: READFMT4 LA R9,RDFMT4 CH. PGM. TO RD FMT4 01683000
HRC011DK: MVC SEEKA+2(4),VTOCBEG SETUP THE SEEK ADDRESS 01684000
HRC011DK: ST R9,CAW SETUP FOR THE CHANNEL PROGRAM 01685000
HRC011DK: BAL R14,STRTIO READ FMT4 LABEL 01686000
HRC011DK: CLC NEXTCCHH(2),HIVALUE NEXT AVAILABLE ALT TRACK 01687000
HRC011DK: * BETTER BE IN ALT CYL 01688000
HRC011DK: BL REGFORM NO, DON'T SAVE INFO 01689000
HRC011DK: SAVEALT MVC ALTCCHH,NEXTCCHH SAVE NEXT AVAIL. ALT TRK & 01690000
HRC011DK: * NO. OF ALT. TRKS FOR CP'S FMT4 01691000
HRC011DK: *.3******************************************************************** 01692000
HRC011DK: * 01693000
HRC011DK: * OPERATION - 01694000
HRC011DK: * 01695000
HRC011DK: * P. FORMAT CKD 01696000
HRC011DK: * 01697000
HRC011DK: * FORMAT FROM THE STARTING CYLINDER UP TO AND INCLUDING THE 01698000
HRC011DK: * ENDING CYLINDER OF THE DASD DEVICE AS REQUESTED BY CONSOLE 01699000
HRC011DK: * OR IPL DEVICE INPUT. FORMATTED RECORDS ARE 4096 BYTES (PAGE 01700000
HRC011DK: * SIZE). IF WVFLAGS IS SET THEN PROMPT USER FOR WRITE 01701000
HRC011DK: * VERIFICATION AND SET WVFLAGS TO REFLECT RESPONSE IF ANY. 01702000
HRC011DK: * 01703000
HRC011DK: * FORMAT CKD CYLINDER 0 AS FOLLOWS: 01704000
HRC011DK: * 01705000
HRC011DK: * REC 0 PAGE BIT MAP - FLAGS BAD OR IN-USE PAGES 01706000
HRC011DK: * REC 1 IPL RECORD - SYSTEM WAIT STATE 00C 01707000
HRC011DK: * REC 2 CHECKPOINT RECORD - DMKCKP CHECKPOINT ROUTINE 01708000
HRC011DK: * REC 3 OS VOL1 LABEL - CONTAINS CP VOLUME LABEL 01709000
HRC011DK: * REC 4 ALLOCATION MAP - ALLOCATION TYPE FOR EACH CYLINDER 01710000
HRC011DK: * REC 5 OS FORMAT 4 LABEL 01711000
HRC011DK: * REC 6 OS FORMAT 5 LABEL 01712000
HRC011DK: * 01713000
HRC011DK: * FOR 3330: 01714000
HRC011DK: * RF3 PAGE SIZE FILLER RECORD FOR FUTURE CP USE. 01715000
HRC011DK: * FOR 2314 AND 2319: 01716000
HRC011DK: * RF4 FILLER RECORD 01717000
HRC011DK: * FOR 3380: 01718000
HRC011DK: * RF4-RF7 PAGE SIZE FILLER RECORDS 01719000
HRC011DK: * RF8 FILLER RECORD 01720000
HRC011DK: * R7-R10 VALID PAGE RECORDS 01721000
HRC011DK: * 01722000
HRC011DK: * CKD FORMATTING GENERAL NOTES: 01723000
HRC011DK: * 01724000
HRC011DK: * A. WRITE CP VOLUME LABEL WHEN CYLINDER 0 IS FORMATTED, 01725000
HRC011DK: * OTHERWISE READ AND COMPARE CP VOLUME LABEL TO INPUT. 01726000
HRC011DK: * B. WRITE PAGE SIZE RECORDS ON THE REST OF CYLINDER 0 01727000
HRC011DK: * AND ALL OTHER CYLINDERS REQUESTED. 01728000
HRC011DK: * C. WRITE VERIFY THAT EACH PAGE RECORD WAS WRITTEN 01729000
HRC011DK: * CORRECTLY WHEN REQUESTED. 01730000
HRC011DK: * D. RECORD ANY BAD PAGE RECORD IN THE "PAGE BIT MAP" 01731000
HRC011DK: * LOCATED ON TRACK 0 RECORD 0 OF EACH CYLINDER. 01732000
HRC011DK: * E. PRINT BAD PAGE ADDRESSES AS THEY ARE FOUND. 01733000
HRC011DK: * F. PRINT TOTAL OF BAD PAGES AS THEY ARE FOUND WHEN 01734000
HRC011DK: * FORMAT IS COMPLETE. 01735000
HRC011DK: * G. GET ANOTHER TASK FROM CONSOLE OR IPL DEVICE WHEN 01736000
HRC011DK: * FORMAT IS COMPLETE. 01737000
HRC011DK: * 01738000
HRC011DK: * 1. RESTORE OS LABEL INFORMATION AND FORMAT4 DSCB; CLEAR 01739000
HRC011DK: * ALLOCATION TABLE. FOR PAGE 0/CYLINDER 0. 01740000
HRC011DK: * 2. ISSUE 'FORMAT STARTED'. 01741000
HRC011DK: * 3. FOR EACH CYLINDER, MODIFY THE SEEK. RESTORE/CLEAR THE 01742000
HRC011DK: * FORMAT OF THE RECORD FIELDS AND SEEK FIELDS. 01743000
HRC011DK: * 4. HANDLE 3350 FILLER MODIFICATIONS AND HEAD INITIALIZATION. 01744000
HRC011DK: * 5. HANDLE 3340 HEAD INITIALIZATION. 01745000
HRC011DK: * 6. HANDLE 3380 HEAD INITIALIZATION. 01746000
HRC011DK: * 7. LOAD THE NUMBER OF SEEK FIELDS FOR A PARTICULAR DASD DEVICE 01747000
HRC011DK: * 8. INSERT THE PROPER CYLINDER NUMBER INTO THE RECORD DATA AREA 01748000
HRC011DK: * 9. GO BEGIN THE SIO FORMATTING AT OP U. 01749000
HRC011DK: * 01750000
HRC011DK: * LOCAL REGISTER USAGE - 01751000
HRC011DK: * 01752000
HRC011DK: * R4 - WORK 01753000
HRC011DK: * R5 - WORK 01754000
HRC011DK: * R6 - DEVICE FORMAT TABLE ADDRESSABILITY 01755000
HRC011DK: * R7 - WORK 01756000
HRC011DK: * R14 - LINKAGE 01757000
HRC011DK: * 01758000
HRC011DK: *.$******************************************************************** 01759000
HRC011DK: SPACE , 01760000
HRC011DK: *---------------------------------------------------------------------- 01761000
HRC011DK: * FORMATTING STARTING FROM PAGE/CYLINDER 0: 01762000
HRC011DK: * RESTORE OS LABEL INFORMATION, RESTORE FORMAT4 DSCB, CLEAR 01763000
HRC011DK: * ALLOCATION TABLE. 01764000
HRC011DK: *---------------------------------------------------------------------- 01765000
HRC011DK: SPACE , 01766000
HRC011DK: REGFORM DS 0H 01767000
HRC011DK: MVC OSLABEL,SAVEVOL1 RESTORE TO IPL'ED DATA 01768000
HRC011DK: MVC FMT4DATA(96),SAVEFMT4 RESTORE TO CP'S FMT4 01769000
HRC011DK: MVC NEXTCCHH(6),ALTCCHH MOVE NEXT AVAIL ALT TRK & 01770000
HRC011DK: * NO. OF ALT. TRKS TO CP'S FMT4 01771000
HRC011DK: XC ALTCCHH(6),ALTCCHH CLEAR IN CASE SECOND PASS 01772000
HRC011DK: L R4,=A(TABLE) POINT TO START OF ALLOC BUFFER 01773000
HRC011DK: LH R5,=AL2(DL4096-1) LOAD TABLE LENGTH 01774000
HRC011DK: SR R7,R7 SET TO LENGTH 01775000
HRC011DK: MVCL R4,R6 CLEAR REST OF BUFFER 01776000
HRC011DK: SPACE , 01777000
HRC011DK: *---------------------------------------------------------------------- 01778000
HRC011DK: * FOR CKD, INITIALIZE THE ALLOCATION TABLE. 01779000
HRC011DK: *---------------------------------------------------------------------- 01780000
HRC011DK: SPACE , 01781000
HRC011DK: L R4,=A(TABLE) POINT TO START OF ALLOC BUFFER 01782000
HRC011DK: AH R4,HIVALUE HIVALUE+1 POINTS TO END OF MAP 01783000
HRC011DK: MVI 1(R4),X'FF' TURN ON THE END OF TABLE FLAG 01784000
HRC011DK: SPACE , 01785000
HRC011DK: *---------------------------------------------------------------------- 01786000
HRC011DK: * DETERMINE IF WRITE VERIFICATION PROMPT IS NECESSARY. 01787000
HRC011DK: * NOT ALL DASD SUPPORT THIS OPTION, IN WHICH CASE PROMPTING 01788000
HRC011DK: * IS NOT NECESSARY. 01789000
HRC011DK: *---------------------------------------------------------------------- 01790000
HRC011DK: SPACE , 01791000
HRC011DK: REGFORM1 DS 0H 01792000
HRC011DK: MVC CPLABEL(6),INDATA MOVE IN LABEL 01793000
HRC011DK: TM WVFLAGS,WVPMT IF PROMPT NOT REQUIRED 01794000
HRC011DK: BZ ENDWVRTN EXIT WRT VERIF RTN 01795000
HRC011DK: PMTFORWV DS 0H 01796000
HRC011DK: LA R4,WVMSG1 GET WRITE VERIF. MSG #1 01797000
HRC011DK: BAL R14,WMSG AND WRITE TO CONSOLE 01798000
HRC011DK: LA R4,WVMSG2 GET WRITE VERIF. MSG #2 01799000
HRC011DK: BAL R14,WMSG AND WRITE TO CONSOLE 01800000
HRC011DK: BAL R14,RMSG READ MESSAGE 01801000
HRC011DK: TM CSW+4,UE IF UNIT EXCEP. 01802000
HRC011DK: BO PMTFORWV THEN PROMPT AGAIN 01803000
HRC011DK: SPACE , 01804000
HRC011DK: *---------------------------------------------------------------------- 01805000
HRC011DK: * CONVERT RESPONSE, CHECK, AND SET NECESSARY WVFLAGS BIT 01806000
HRC011DK: *---------------------------------------------------------------------- 01807000
HRC011DK: SPACE , 01808000
HRC011DK: OC INDATA(3),BLANKS8 CONVERT TO UPPER CASE 01809000
HRC011DK: CLC INDATA(3),=C'YES' WHEN 'YES' RESPONSE 01810000
HRC011DK: BE SETWVFLG THEN GO SET WVFLAGS 01811000
HRC011DK: CLC INDATA(3),=C'YE ' WHEN 'YE ' RESPONSE 01812000
HRC011DK: BE SETWVFLG THEN GO SET WVFLAGS 01813000
HRC011DK: CLC INDATA(3),=C'Y ' WHEN 'Y ' RESPONSE 01814000
HRC011DK: BE SETWVFLG THEN GO SET WVFLAGS 01815000
HRC011DK: B STRWVMSK OTHERWISE GO MASK CCW 01816000
HRC011DK: SETWVFLG DS 0H 01817000
HRC011DK: OI WVFLAGS,WVREQ INDICATE WRITE VERIF. 01818000
HRC011DK: B ENDWVRTN EXIT WRT VERIF. RTN 01819000
HRC011DK: SPACE , 01820000
HRC011DK: *---------------------------------------------------------------------- 01821000
HRC011DK: * IF WRITE VERIFICATION IS NOT REQUESTED, THEN MASK OUT 01822000
HRC011DK: * PROGRAM CHAINING TO THE WRITE VERIFICATION PROGRAM. 01823000
HRC011DK: *---------------------------------------------------------------------- 01824000
HRC011DK: SPACE , 01825000
HRC011DK: STRWVMSK DS 0H 01826000
HRC011DK: SR R7,R7 SET UP FOR GETTING DEV. 01827000
HRC011DK: BAL R14,DFOADSET SET ADDRESS TO FIND DEVICE/FORMAT 01828000
HRC011DK: * DATA FOR THIS DEVICE TYPE 01829000
HRC011DK: USING DFODATA,R6 ON RETURN R6 POINTS TO ENTRY 01830000
HRC011DK: * DEVICE/FORMAT TABLE 01831000
HRC011DK: SPACE , 01832000
HRC011DK: *---------------------------------------------------------------------- 01833000
HRC011DK: * ALL ALTERATIONS TO CHANNEL PROGRAMS MUST BE RESTORED 01834000
HRC011DK: * ONCE THIS TASK IS COMPLETED. THEREFORE ANY CHANGES MUST 01835000
HRC011DK: * BE IDENTIFIED (CHNGCCW) FOR LATER HOUSEKEEPING. 01836000
HRC011DK: *---------------------------------------------------------------------- 01837000
HRC011DK: SPACE , 01838000
HRC011DK: L R7,DFOCAWEW LAST WRITE CCW IN WRITE PROG 01839000
HRC011DK: ST R7,CCWCHNG STORE ADDRESS OF THIS CCW. 01840000
HRC011DK: NI 4(R7),X'FF'-CC MASK THE CC BIT AT THIS CCW 01841000
HRC011DK: * WHICH WILL AVOID WRT VERIF. 01842000
HRC011DK: DROP R6 DROP BASE REGISTER 01843000
HRC011DK: SPACE , 01844000
HRC011DK: *---------------------------------------------------------------------- 01845000
HRC011DK: * FORMATTING STARTING FROM OTHER THAN PAGE/CYLINDER 0. 01846000
HRC011DK: * ISSUE MESSAGE 'FORMAT STARTED'. 01847000
HRC011DK: *---------------------------------------------------------------------- 01848000
HRC011DK: SPACE , 01849000
HRC011DK: ENDWVRTN DS 0H END WRT. VERIF. STRUCTURE 01850000
HRC011DK: LA R4,PROGFOR SET UP MESSAGE FORMAT STARTED 01851000
HRC011DK: BAL R14,WMSG WRITE MESSAGE 01852000
HRC011DK: SPACE , 01853000
HRC011DK: *---------------------------------------------------------------------- 01854000
HRC011DK: * ONETIME IS A BRANCH ON EQUAL TO 'CHECK0' TO CHECK CYLINDER 0 01855000
HRC011DK: * FOR ERRORS. FOR THE FIRST TIME THROUGH, WE WANT TO GO TO 01856000
HRC011DK: * CHECK0, BUT ONLY ONCE. THE ONETIME BRANCH IS NO-OPED LATER. 01857000
HRC011DK: * PGCOUNT KEEPS A COUNT OF PAGE ERRORS FOUND. 01858000
HRC011DK: *---------------------------------------------------------------------- 01859000
HRC011DK: SPACE , 01860000
HRC011DK: MVI ONETIME+1,X'80' SET UP FOR EQUAL COMPARE 01861000
HRC011DK: MVI ALTFLAG,0 INIT FLAG FOR DASD I/O INT. HNDLR 01862000
HRC011DK: MVC IONPSW(8),NEWPSW CHANGE NEW IO PSW 01863000
HRC011DK: XC PGCOUNT(4),PGCOUNT CLEAR FIELD 01864000
HRC011DK: SPACE , 01865000
HRC011DK: *---------------------------------------------------------------------- 01866000
HRC011DK: * FOR EACH CYLINDER, MODIFY THE SEEK. GOA1 IS BRANCHED TO AFTER 01867000
HRC011DK: * ADVANCING TO THE NEXT CYLINDER. RESTORE/CLEAR THE FORMAT OF 01868000
HRC011DK: * THE RECORD FIELDS AND THE SEEK FIELDS. 01869000
HRC011DK: *---------------------------------------------------------------------- 01870000
HRC011DK: SPACE , 01871000
HRC011DK: GOA1 XC ERCOUNT(4),ERCOUNT CLEAR ERROR COUNT 01872000
HRC011DK: MVC SEEKA(118),WKSEEK RESTORE TO STARTING SEEKS 01873000
HRC011DK: MVC REC1(RNBYTE1),RNDATA RESTORE DASD RECORD FIELDS 01874000
HRC011DK: MVC REC1+RNBYTE1(RNBYTE2),RNDATA+RNBYTE1 .... 01875000
HRC011DK: MVC RECXX3(RNBYTES1),RNDATA1 .... 01876000
HRC011DK: CLI TYPE,TYP3350 MODIFY FOR 3350 FILLER LENGTH 01877000
HRC011DK: BNE GOTST40 NO, BYPASS FILLER MODIFICATIONS 01878000
HRC011DK: SPACE , 01879000
HRC011DK: *---------------------------------------------------------------------- 01880000
HRC011DK: * 3350: FILLER MODIFICATIONS + HEAD INITIALIZATION. 01881000
HRC011DK: * 01882000
HRC011DK: * THERE ARE 11 300-BYTE FILLER RECORDS FOR A 3350 PER CYLINDER. 01883000
HRC011DK: * FOR THE HEAD NUMBERS, CHANGE THEM TO FIT THE MOLD FOR 3350S. 01884000
HRC011DK: * A 3350 WILL HAVE 4 RECORDS PER HEAD, NOT 3 AS IS DEFINED IN 01885000
HRC011DK: * THE TABLE FOR 3330S. 3350S HAVE 3 HEADS PER CYLINDER. 01886000
HRC011DK: *---------------------------------------------------------------------- 01887000
HRC011DK: SPACE , 01888000
HRC011DK: LA R7,11 NUMBER OF FILLER CCWS @V304498 01889000
HRC011DK: LA R5,RECX1+6 FIRST FILLER CCW 01890000
HRC011DK: LA R4,300 ACTUAL FILLER LENGTH 01891000
HRC011DK: FILL3350 STH R4,0(0,R5) MODIFY FILLER CCW 01892000
HRC011DK: LA R5,16(R5) UPDATE FILLER CCW ADDRESS 01893000
HRC011DK: BCT R7,FILL3350 PROCESS ALL FILLER CCWS @V304498 01894000
HRC011DK: SPACE , 01895000
HRC011DK: MVI REC4+3,RECN0 CHANGE HEAD 1 TO HEAD 0 01896000
HRC011DK: MVI RECX4+3,RECN0 CHANGE HEAD 1 TO HEAD 0 01897000
HRC011DK: MVI REC7+3,RECN1 CHANGE HEAD 2 TO HEAD 1 01898000
HRC011DK: MVI RECX7+3,RECN1 CHANGE HEAD 2 TO HEAD 1 01899000
HRC011DK: MVI REC8+3,RECN1 CHANGE HEAD 2 TO HEAD 1 01900000
HRC011DK: MVI RECX8+3,RECN1 CHANGE HEAD 2 TO HEAD 1 01901000
HRC011DK: MVI REC10+3,RECN2 CHANGE HEAD 3 TO HEAD 2 01902000
HRC011DK: MVI RECX10+3,RECN2 CHANGE HEAD 3 TO HEAD 2 01903000
HRC011DK: MVI REC11+3,RECN2 CHANGE HEAD 3 TO HEAD 2 01904000
HRC011DK: MVI RECX11+3,RECN2 CHANGE HEAD 3 TO HEAD 2 01905000
HRC011DK: MVI REC12+3,RECN2 CHANGE HEAD 3 TO HEAD 2 01906000
HRC011DK: B GOA2 INITIALIZE SEEK FIELDS 01907000
HRC011DK: SPACE , 01908000
HRC011DK: *---------------------------------------------------------------------- 01909000
HRC011DK: * 3340: HEAD INITIALIZATION. 01910000
HRC011DK: * 01911000
HRC011DK: * THERE ARE NO FILLER RECORDS. FOR A 3340, THERE WILL BE 2 01912000
HRC011DK: * RECORDS PER HEAD AND 6 HEADS PER CYLINDER. 01913000
HRC011DK: *---------------------------------------------------------------------- 01914000
HRC011DK: SPACE , 01915000
HRC011DK: GOTST40 EQU * 01916000
HRC011DK: CLI TYPE,X'40' 3340 DEVICE TYPE ? 01917000
HRC011DK: BNE GOTST80 NO, BYPASS FILLER MODIFICATIONS 01918000
HRC011DK: MVI REC3+3,X'01' CHANGE HEAD 0 TO HEAD 1 01919000
HRC011DK: MVI REC4+3,X'01' CHANGE HEAD 1 TO HEAD 1 01920000
HRC011DK: MVI REC5+3,X'02' CHANGE HEAD 1 TO HEAD 2 01921000
HRC011DK: MVI REC6+3,X'02' CHANGE HEAD 1 TO HEAD 2 01922000
HRC011DK: MVI REC7+3,X'03' CHANGE HEAD 2 TO HEAD 3 01923000
HRC011DK: MVI REC8+3,X'03' CHANGE HEAD 2 TO HEAD 3 01924000
HRC011DK: MVI REC9+3,X'04' CHANGE HEAD 2 TO HEAD 4 01925000
HRC011DK: MVI REC10+3,X'04' CHANGE HEAD 3 TO HEAD 4 01926000
HRC011DK: MVI REC11+3,X'05' CHANGE HEAD 3 TO HEAD 5 01927000
HRC011DK: MVI REC12+3,X'05' CHANGE HEAD 3 TO HEAD 5 01928000
HRC011DK: B GOA2 GO INITIALIZE SEEK FIELDS 01929000
HRC011DK: SPACE , 01930000
HRC011DK: *---------------------------------------------------------------------- 01931000
HRC011DK: * 3380: HEAD INITIALIZATION. 01932000
HRC011DK: * 01933000
HRC011DK: * THERE ARE NO FILLER RECORDS. FOR A 3380 THERE WILL BE 10 01934000
HRC011DK: * RECORDS PER HEAD AND 3 HEADS PER CYLINDER. 01935000
HRC011DK: *---------------------------------------------------------------------- 01936000
HRC011DK: SPACE , 01937000
HRC011DK: GOTST80 EQU * 01938000
HRC011DK: CLI TYPE,TYP3380 3380 DEVICE TYPE? 01939000
HRC011DK: BNE GOA2 NO, BYPASS HEAD MODIFICATIONS 01940000
HRC011DK: MVI REC4+3,RECN0 CHANGE HEAD 1 TO HEAD 0 01941000
HRC011DK: MVI REC5+3,RECN0 CHANGE HEAD 1 TO HEAD 0 01942000
HRC011DK: MVI REC6+3,RECN0 CHANGE HEAD 1 TO HEAD 0 01943000
HRC011DK: MVI REC7+3,RECN0 CHANGE HEAD 2 TO HEAD 0 01944000
HRC011DK: MVI REC8+3,RECN0 CHANGE HEAD 2 TO HEAD 0 01945000
HRC011DK: MVI REC9+3,RECN0 CHANGE HEAD 2 TO HEAD 0 01946000
HRC011DK: MVI REC10+3,RECN0 CHANGE HEAD 3 TO HEAD 0 01947000
HRC011DK: MVI REC11+3,RECN1 CHANGE HEAD 3 TO HEAD 0 01948000
HRC011DK: MVI REC12+3,RECN1 CHANGE HEAD 3 TO HEAD 0 01949000
HRC011DK: SPACE , 01950000
HRC011DK: *---------------------------------------------------------------------- 01951000
HRC011DK: * LOAD THE NUMBER OF SEEK FIELDS FOR A PARTICULAR DASD DEVICE. 01952000
HRC011DK: * R4 IS THE BEGINNING SEEK ADDRESS FOR THE CURRENT CYLINDER. 01953000
HRC011DK: * INSERT THE CORRECT CYLINDER INTO EACH SEEK FIELD. 01954000
HRC011DK: *---------------------------------------------------------------------- 01955000
HRC011DK: SPACE , 01956000
HRC011DK: GOA2 MVC R1STUF(96),RNSTUF RESTORE 2314 RECORD FIELDS 01957000
HRC011DK: XC R0STUF,R0STUF CLEAR FIELD 01958000
HRC011DK: SR R7,R7 THIS MEANS: LOOK FOR PLAIN DEVICE 01959000
HRC011DK: * DATA, WITHOUT SPECIAL 01960000
HRC011DK: BAL R14,DFOADSET SET ADDRESS TO FIND DEVICE/FORMAT 01961000
HRC011DK: * DATA FOR THIS DEVICE TYPE 01962000
HRC011DK: USING DFODATA,R6 ON RETURN R6 POINTS TO ENTRY 01963000
HRC011DK: * DEVICE/FORMAT TABLE 01964000
HRC011DK: LH R7,DFOTRPAS TRACKS PER PASS COUNT AS LOOP CNT 01965000
HRC011DK: LH R4,BEGIN GET BEGINNING OR NEW CYL TO SEEK 01966000
HRC011DK: STH R4,SEEK0+2 BEGINNING CYLINDER INTO SEEK0 01967000
HRC011DK: LA R5,SEEKA+2 GET CCHH FIELD ADDRESS 01968000
HRC011DK: SPACE , 01969000
HRC011DK: STORE EQU * 01970000
HRC011DK: STH R4,0(R5) MOVE CYL INTO NEXT SEEK DATA 01971000
HRC011DK: LA R5,NXTSEEK(,R5) BUMP TO NEXT SEEK DATA FIELD 01972000
HRC011DK: BCT R7,STORE LOOP MAX# OF SEEK DATA TO BE 01973000
HRC011DK: * UPDATED IN R7 01974000
HRC011DK: SPACE , 01975000
HRC011DK: *---------------------------------------------------------------------- 01976000
HRC011DK: * INSERT THE PROPER CYLINDER NUMBER INTO THE RECORD DATA AREA. 01977000
HRC011DK: *---------------------------------------------------------------------- 01978000
HRC011DK: SPACE , 01979000
HRC011DK: L R5,DFO1REC POINT TO FIRST CCW DATA TO BE UPD 01980000
HRC011DK: LH R7,DFONRECS LOOP CNT. # OF CCW DATA TO BE UPD 01981000
HRC011DK: MVC CAW,DFOCAW GET PROPER CAW 01982000
HRC011DK: SPACE , 01983000
HRC011DK: STR EQU * 01984000
HRC011DK: STH R4,0(,R5) MOVE CYLINDER INTO RECORD DATA 01985000
HRC011DK: LA R5,NXTREC(,R5) POINT TO NEXT RECORD'S CYL.PART 01986000
HRC011DK: BCT R7,STR GO THRU AS SPECIFIED FOR DEVICE 01987000
HRC011DK: DROP R6 01988000
HRC011DK: SPACE , 01989000
HRC011DK: *---------------------------------------------------------------------- 01990000
HRC011DK: * THE CAW IS NOW SET CORRECTLY. GO TO THE COMMON ROUTINE TO 01991000
HRC011DK: * START THE ACTUAL FORMATTING. 01992000
HRC011DK: *---------------------------------------------------------------------- 01993000
HRC011DK: SPACE , 01994000
HRC011DK: SETUPIO DS 0H 01995000
HRC011DK: LH R5,DSKADD R5 CONTAINS DEVICE ADDRESS 01996000
HRC011DK: B STIO START DEVICE 01997000
HRC011DK: *.3******************************************************************** 01998000
HRC011DK: * 01999000
HRC011DK: * OPERATION - 02000000
HRC011DK: * 02001000
HRC011DK: * Q. RESUME CKD FORMATTING FOLLOWING INTERRUPT RESOLUTION 02002000
HRC011DK: * 02003000
HRC011DK: * COME HERE FROM IOINT (OP DD) TO RESUME FORMATTING AFTER A 02004000
HRC011DK: * DASD INTERRUPT (CE+DE) HAS BEEN ACCEPTED. SINCE WE HAVE A 02005000
HRC011DK: * CLEAN STATUS, WE CAN CONTINUE HERE WITH EITHER UPDATING THE 02006000
HRC011DK: * SEEKS OR ADVANCING TO A NEW CYLINDER. 02007000
HRC011DK: * 02008000
HRC011DK: * 1. IF LAST RECORD ON THIS CYLINDER WAS ALREADY WRITTEN, 02009000
HRC011DK: * THEN GO TO OP R TO ADVANCE TO THE NEXT CYLINDER. ELSE, 02010000
HRC011DK: * GO TO STEP 2 TO UPDATE SEEK DATA AND HEADS. 02011000
HRC011DK: * 2. UPDATE HEAD NUMBERS IN SEEK CCWS. 02012000
HRC011DK: * 3. UPDATE DATA RECORD NUMBERS IN CCWS. 02013000
HRC011DK: * 4. FOR A 3380, UPDATE THE FILLER RECORDS. 02014000
HRC011DK: * 5. CONTINUE FORMATTING. 02015000
HRC011DK: * 02016000
HRC011DK: * LOCAL REGISTER USAGE - 02017000
HRC011DK: * 02018000
HRC011DK: * R4 - SEEK CCHH 02019000
HRC011DK: * R5 - WORK 02020000
HRC011DK: * R6 - DFODATA ADDRESSABILITY 02021000
HRC011DK: * R7 - WORK 02022000
HRC011DK: * R14 - LINKAGE 02023000
HRC011DK: * 02024000
HRC011DK: *.&******************************************************************** 02025000
HRC011DK: SPACE , 02026000
HRC011DK: *---------------------------------------------------------------------- 02027000
HRC011DK: * 2314: IF LAST RECORD ON THIS CYLINDER WRITTEN, GO TO NEWCYL. 02028000
HRC011DK: * ELSE, UPDATE SEEK DATA AND HEADS. 02029000
HRC011DK: *---------------------------------------------------------------------- 02030000
HRC011DK: SPACE , 02031000
HRC011DK: RESUMP EQU * 02032000
HRC011DK: CLI TYPE,TYP2314 IS IT 2314 ? 02033000
HRC011DK: BNE RESUMP05 NO, GO CHECK FOR OTHER DEVICES 02034000
HRC011DK: CLC R8STUF+D4(L1),RECVALUE LAST RECORD ON THIS CYL 02035000
HRC011DK: * WRITTEN? 02036000
HRC011DK: BE NEWCYL YES, GO FOR NEW CYLINDER 02037000
HRC011DK: B MAIN2 GO FOR UPDATE SEEK DATA + HEADS 02038000
HRC011DK: SPACE , 02039000
HRC011DK: *---------------------------------------------------------------------- 02040000
HRC011DK: * 3380: IF LAST RECORD ON THIS CYLINDER WRITTEN, GO TO NEWCYL. 02041000
HRC011DK: * ELSE, UPDATE SEEK DATA AND HEADS. 02042000
HRC011DK: *---------------------------------------------------------------------- 02043000
HRC011DK: SPACE , 02044000
HRC011DK: RESUMP05 EQU * 02045000
HRC011DK: CLI TYPE,TYP3380 IS IT 3380? 02046000
HRC011DK: BNE RECONT NO, BRANCH 02047000
HRC011DK: CLC REC30+D4(L1),RECVALUE LAST RECORD ON THIS CYL 02048000
HRC011DK: * WRITTEN? 02049000
HRC011DK: BE NEWCYL YES, NEW CYLINDER 02050000
HRC011DK: B MAIN2 NO, BRANCH 02051000
HRC011DK: *---------------------------------------------------------------------- 02052000
HRC011DK: * NORMAL CKD: WE WRITE 12 RECORDS AT A TIME. IF LAST RECORD 02053000
HRC011DK: * WAS WRITTEN FROM CYLINDER, GO TO NEXT CYLINDER. ELSE, GET 02054000
HRC011DK: * SEEK FIELDS AND UPDATE HEAD AND RECORD NUMBERS. 02055000
HRC011DK: *---------------------------------------------------------------------- 02056000
HRC011DK: SPACE , 02057000
HRC011DK: RECONT EQU * 02058000
HRC011DK: OI BFORWR57+4,CC RESTORE CMD CHAINING IN CCW 02059000
HRC011DK: * IT MAY HAVE BEEN ALTERED 02060000
HRC011DK: MVC WR57(8),OFF57WRT WRITE 12REC AT A TIME 02061000
HRC011DK: MVC RD57(8),OFF57RD DO NORMAL READ CKD IN CCW 02062000
HRC011DK: CLC REC12+4(1),RECVALUE WAS LAST RECORD WRITTEN? 02063000
HRC011DK: BE NEWCYL YES,BRANCH 02064000
HRC011DK: CLI TYPE,TYP3330 3330 DEVICE ? 02065000
HRC011DK: BNE MAIN2 NO, BYPASS 3330 REC 57 TRK CHANGE 02066000
HRC011DK: CLI REC12+4,X'30' DID I JUST WRITE 48TH REC. 02067000
HRC011DK: BNE MAIN2 NO,BRANCH 02068000
HRC011DK: MVC WR57(8),ON57WRT DO NOT WRITE REC 58 TO 60 02069000
HRC011DK: MVC RD57(8),ON57RD ALTER NOT TO READ CK 58 TO 60 02070000
HRC011DK: SPACE , 02071000
HRC011DK: *---------------------------------------------------------------------- 02072000
HRC011DK: * FOR 3330 DASD, PRIOR TO WRITING RECORDS 49-57, ALTER CCW 02073000
HRC011DK: * CHAINING TO WRITE VERIFICATION PROGRAM TO REFLECT USER 02074000
HRC011DK: * REQUIREMENTS 02075000
HRC011DK: *---------------------------------------------------------------------- 02076000
HRC011DK: SPACE , 02077000
HRC011DK: MVC BFORWR57+4(1),EWT3330+4 ALTER CC BIT 02078000
HRC011DK: SPACE , 02079000
HRC011DK: *---------------------------------------------------------------------- 02080000
HRC011DK: * UPDATE HEAD NUMBERS IN SEEK CCWS. 02081000
HRC011DK: *---------------------------------------------------------------------- 02082000
HRC011DK: SPACE , 02083000
HRC011DK: MAIN2 EQU * 02084000
HRC011DK: XC ERCOUNT,ERCOUNT CLEAR 02085000
HRC011DK: SR R7,R7 THIS MEANS: LOOK FOR PLAIN DEVICE 02086000
HRC011DK: * DATA, WITHOUT SPECIAL 02087000
HRC011DK: BAL R14,DFOADSET SET ADDRESS TO FIND DEVICE/FORMAT 02088000
HRC011DK: * DATA FOR THIS DEVICE TYPE 02089000
HRC011DK: USING DFODATA,R6 ON RETURN R6 POINTS TO 02090000
HRC011DK: * ... DEVICE/FORMAT DATA ENTRY 02091000
HRC011DK: LH R7,DFOTRPAS TRACKS PER PASS COUNT AS LOOP CNT 02092000
HRC011DK: LA R4,SEEKA+D2 POINT TO CCHH OF 1ST SEEK 02093000
HRC011DK: SPACE , 02094000
HRC011DK: HDUPDATE EQU * 02095000
HRC011DK: LH R5,D2(,R4) GET HH PORTION OF SEEK DATA 02096000
HRC011DK: AH R5,DFOTRPAS INCREASE BY # OF TRACKS PER PASS 02097000
HRC011DK: STH R5,D2(,R4) PUT HEAD NUMBER ONLY 02098000
HRC011DK: LA R4,NXTSEEK(,R4) POINT TO NEXT SEEK CCHH PORTION 02099000
HRC011DK: BCT R7,HDUPDATE LOOP UNTIL ALL HEADS ARE UPDATED 02100000
HRC011DK: DROP R6 02101000
HRC011DK: SPACE , 02102000
HRC011DK: *---------------------------------------------------------------------- 02103000
HRC011DK: * UPDATE DATA RECORD NUMBERS IN CCWS. 02104000
HRC011DK: *---------------------------------------------------------------------- 02105000
HRC011DK: SPACE , 02106000
HRC011DK: BAL R14,UPHDREC GO UPDATE CCW DATA RECORD NUMBERS 02107000
HRC011DK: USING DFODATA,R6 ON RETURN R6 POINTS TO ENTRY 02108000
HRC011DK: * IN DEVICE/FORMAT TABLE 02109000
HRC011DK: MVC CAW,DFOCAW SET CORRECT CAW 02110000
HRC011DK: DROP R6 02111000
HRC011DK: SPACE , 02112000
HRC011DK: *---------------------------------------------------------------------- 02113000
HRC011DK: * FOR A 3380, UPDATE THE FILLER RECORDS. IN ANY CASE, GO BACK 02114000
HRC011DK: * UP TO SETUPIO TO CONTINUE FORMATTING. 02115000
HRC011DK: *---------------------------------------------------------------------- 02116000
HRC011DK: SPACE , 02117000
HRC011DK: CLI TYPE,TYP3380 IS THIS 3380 DEVICE ... 02118000
HRC011DK: BNE SETUPIO NO, PREPARE THE IO 02119000
HRC011DK: LA R7,DFOTBSPE THIS MEANS: LOOK FOR SPECIAL 02120000
HRC011DK: * ENTRY IN DEVICE/FORMAT TABLE TO 02121000
HRC011DK: * UPDATE FILLER RECORDS FOR 3380 02122000
HRC011DK: BAL R14,DFOADSET SET ADDRESS TO FIND DEVICE/FORMAT 02123000
HRC011DK: * DATA FOR THIS DEVICE TYPE 02124000
HRC011DK: BAL R14,UPHDREC GO UPDATE FILLER RECORDS 02125000
HRC011DK: B SETUPIO GO PREPARE THE IO 02126000
HRC011DK: *.3******************************************************************** 02127000
HRC011DK: * 02128000
HRC011DK: * OPERATION - 02129000
HRC011DK: * 02130000
HRC011DK: * R. CKD FORMAT - ADVANCE TO NEXT CYLINDER / WRITE SPECIAL SYSTEM 02131000
HRC011DK: * RECORDS ON CYLINDER 0 02132000
HRC011DK: * 02133000
HRC011DK: * 1. IF AT THE LAST CYLINDER IN THE EXTENT, GO TO CLEANUP AT 02134000
HRC011DK: * OP V. ELSE, INCREASE CYLINDER NUMBER BY 1 AND GO BACK TO 02135000
HRC011DK: * OP P. 02136000
HRC011DK: * 2. CHECK CYLINDER 0 FOR ERRORS. IF THERE ARE NO ERRORS, THEN 02137000
HRC011DK: * WRITE SPECIAL SYSTEM RECORDS. THIS IS DONE ONLY ONCE FOR 02138000
HRC011DK: * CYLINDER 0. 02139000
HRC011DK: * 02140000
HRC011DK: * LOCAL REGISTER USAGE - 02141000
HRC011DK: * 02142000
HRC011DK: * R1 - WORK 02143000
HRC011DK: * R4 - WORK 02144000
HRC011DK: * R6 - DFODATA TABLE ADDRESS 02145000
HRC011DK: * R7 - LINKAGE 02146000
HRC011DK: * R9 - CHANNEL PROGRAM ADDRESS 02147000
HRC011DK: * R14 - LINKAGE 02148000
HRC011DK: * 02149000
HRC011DK: *.&******************************************************************** 02150000
HRC011DK: SPACE , 02151000
HRC011DK: *---------------------------------------------------------------------- 02152000
HRC011DK: * FOR FIRST TIME THROUGH FOR CYLINDER 0, GO CHECK CYLINDER 0 02153000
HRC011DK: * FOR ERRORS AND NO-OP THE BRANCH TO CHECK0 FOR THE FUTURE. 02154000
HRC011DK: * IF WE ARE ON THE LAST CYLINDER IN EXTENT, THEN GO TO CLEANUP. 02155000
HRC011DK: * OTHERWISE, INCREASE CYLINDER NUMBER BY 1 AND GO ADJUST SEEKS 02156000
HRC011DK: * TO NEXT CYLINDER. 02157000
HRC011DK: *---------------------------------------------------------------------- 02158000
HRC011DK: SPACE , 02159000
HRC011DK: NEWCYL CLC SEEKA+2(2),=X'0000' IS IT CYLINDER 0 02160000
HRC011DK: ONETIME BE CHECK0 YES,BRANCH AND NOP THIS BRANCH 02161000
HRC011DK: CLC SEEKA+2(2),ENDING IS IT THE LAST CYLINDER? 02162000
HRC011DK: BE CLEANUP YES,BRANCH 02163000
HRC011DK: SR R4,R4 CLEAR R4 02164000
HRC011DK: LH R4,SEEKA+2 PUT CYL NUMBER INTO R4 02165000
HRC011DK: LA R4,1(R4) INCREASE CYL BY 1 02166000
HRC011DK: STH R4,BEGIN SAVE NEW STARTING CYLINDER 02167000
HRC011DK: B GOA1 GO SEEK NEXT CYLINDER 02168000
HRC011DK: SPACE , 02169000
HRC011DK: *---------------------------------------------------------------------- 02170000
HRC011DK: * CHECK CYLINDER 0 FOR ERRORS. IF THERE ARE NO ERRORS, WRITE 02171000
HRC011DK: * SPECIAL SYSTEM RECORDS. 02172000
HRC011DK: *---------------------------------------------------------------------- 02173000
HRC011DK: SPACE , 02174000
HRC011DK: CHECK0 MVI ONETIME+1,X'00' NOP BRANCH AT ONETIME 02175000
HRC011DK: BAL R1,*+4 R1 POINTS TO NEXT INSTRUCTION 02176000
HRC011DK: CLI TYPE,TYP3350 IS DEVICE A 3350 ? 02177000
HRC011DK: BE CYL03350 YES, TEST FOR ERR REC CYL0 HD0 02178000
HRC011DK: CLI TYPE,TYP3380 IS THIS 3380 ? 02179000
HRC011DK: BE CYL03380 YES, GO CHECK ERROR RECORD 02180000
HRC011DK: TM R0STUF,X'E0' ERR IN REC 1,2,3 ON CYL0 HD0 02181000
HRC011DK: SPACE , 02182000
HRC011DK: *---------------------------------------------------------------------- 02183000
HRC011DK: * FOR ERROR(S) FOUND ON CYLINDER 0, HEAD 0, GET SENSE INFO AND 02184000
HRC011DK: * WRITE MESSAGE ON CONSOLE. 02185000
HRC011DK: *---------------------------------------------------------------------- 02186000
HRC011DK: SPACE , 02187000
HRC011DK: CHECK5 EQU * 02188000
HRC011DK: BZ OKCYL0 NO - CONTINUE 02189000
HRC011DK: BAL R7,SENSIT YES - GET SENSE INFO. 02190000
HRC011DK: BAL R7,SENSIT2 PRINT SENSE, CCHHR FOR HIM 02191000
HRC011DK: B FATAL AND TELL HIM THE CONDITION'S 02192000
HRC011DK: * FATAL 02193000
HRC011DK: SPACE , 02194000
HRC011DK: *---------------------------------------------------------------------- 02195000
HRC011DK: * TEST ERROR RECORDS ON CYLINDER 0, HEAD 0. 02196000
HRC011DK: *---------------------------------------------------------------------- 02197000
HRC011DK: SPACE , 02198000
HRC011DK: CYL03350 TM R0STUF,X'F0' TEST ERR REC 1,2,3,4 ON CYL0 HD0 02199000
HRC011DK: B CHECK5 CONTINUE CYL0 HD0 ERROR TEST 02200000
HRC011DK: CYL03380 EQU * 02201000
HRC011DK: TM R0STUF,ERBT3380 TEST ERR REC1 THRU 6 02202000
HRC011DK: B CHECK5 CONTINUE CYL0 HD0 ERROR TEST 02203000
HRC011DK: SPACE , 02204000
HRC011DK: *---------------------------------------------------------------------- 02205000
HRC011DK: * CYLINDER 0 IS ERROR FREE. PREPARE TO WRITE SPECIAL SYSTEM 02206000
HRC011DK: * RECORDS ON IT. INDICATE THAT THE RECORDS ARE "IN USE". 02207000
HRC011DK: *---------------------------------------------------------------------- 02208000
HRC011DK: SPACE , 02209000
HRC011DK: OKCYL0 EQU * 02210000
HRC011DK: MVI R0STUF,ERBT3380 MARK RECS 1 THRU 6 IN USE 02211000
HRC011DK: CLI TYPE,TYP3380 IS THIS 3380 ? 02212000
HRC011DK: BE CYL0CONT YES, BRANCH 02213000
HRC011DK: MVI R0STUF,X'E0' SET REC 1,2,3 IN USE 02214000
HRC011DK: CLI TYPE,TYP3350 IS DEVICE A 3350 ? 02215000
HRC011DK: BNE CYL0CONT NO, CONTINUE CYL0 PROCESSING 02216000
HRC011DK: MVI R0STUF,X'F0' SET REC 1,2,3,4 IN USE 02217000
HRC011DK: SPACE , 02218000
HRC011DK: *---------------------------------------------------------------------- 02219000
HRC011DK: * SPEC2314 PROGRAM WRITES SPECIAL SYSTEM RECORDS FOR 2314. 02220000
HRC011DK: * SPEC3330 PROGRAM WRITES SPECIAL SYSTEM RECORDS FOR OTHER 02221000
HRC011DK: * NORMAL CKD DEVICES. 02222000
HRC011DK: *---------------------------------------------------------------------- 02223000
HRC011DK: SPACE , 02224000
HRC011DK: CYL0CONT EQU * WRITE CYL0 HD0 SYSTEM RECORDS 02225000
HRC011DK: L R9,=A(R4COUNT) MOVE COUNT FIELD NEXT TO 02226000
HRC011DK: MVC 0(L'R4COUNT,R9),R4ALLOC ALLOC MAP BUFFER 02227000
HRC011DK: LA R9,SPEC2314 R9 CONTAINS ADDRESS OF SPEC CCWS 02228000
HRC011DK: ST R9,CAW CAW CONTAINS ADDRESS OF CCWS 02229000
HRC011DK: CLI TYPE,X'14' IS IT 2314? 02230000
HRC011DK: BE MAIN4 YES, BRANCH 02231000
HRC011DK: MVC CAW(4),=A(SPEC3330) SET CAW FOR CYL 0 TK 0 CCWS 02232000
HRC011DK: CLI TYPE,TYP3380 IS THIS 3380 ? 02233000
HRC011DK: MVC NOP3340,TIC3380 MOVE IN 3380 SPECIAL WRITES 02234000
HRC011DK: BE MAIN4 YES, CONTINUE 02235000
HRC011DK: MVC NOP3340,WRT3340 MOVE BACK ORIGINAL CCW 02236000
HRC011DK: CLI TYPE,TYP334X 3340-35 OR 3340-70 DEVICE? 02237000
HRC011DK: BNE MAIN4 BRANCH IF NOT 02238000
HRC011DK: MVI NOP3340,X'03' SET RF3 CCW OP-CODE TO NOP 02239000
HRC011DK: SPACE , 02240000
HRC011DK: MAIN4 MVI SEEKA+5,X'00' SET TO SEEK HEAD 0 02241000
HRC011DK: MVI SEEKB+5,X'01' SET TO SEEK HEAD 1 02242000
HRC011DK: LH R5,DSKADD DEVICE ADDRESS INTO R5 02243000
HRC011DK: B STIO START DEVICE 02244000
HRC011DK: *.3******************************************************************** 02245000
HRC011DK: * 02246000
HRC011DK: * OPERATION - 02247000
HRC011DK: * 02248000
HRC011DK: * U. COME HERE TO WRITE AND VERIFY PAGE SIZE RECORDS 02249000
HRC011DK: * 02250000
HRC011DK: * 1. BEGIN THE FORMATTING. IF NON-ZERO CC FROM SIO, RETRY 100 02251000
HRC011DK: * TIMES. FOR CC=0 FROM SIO, GO TO STEP 3. 02252000
HRC011DK: * 2. IF STILL NON-ZERO CC AFTER 100 TRIES, THEN OBTAIN THE 02253000
HRC011DK: * SENSE INFORMATION IF WE DO NOT ALREADY HAVE IT. 02254000
HRC011DK: * 3. CALL SENSIT2 TO ISSUE THE ERROR MESSAGE TO THE USER GIVING 02255000
HRC011DK: * THE CCHHR AND THE SENSE DATA. 02256000
HRC011DK: * 4. LOAD A WAIT STATE AND WAIT FOR CE+DE FROM DEVICE. 02257000
HRC011DK: * 02258000
HRC011DK: * LOCAL REGISTER USAGE - 02259000
HRC011DK: * 02260000
HRC011DK: * R7 - WORK 02261000
HRC011DK: * R14 - LINKAGE 02262000
HRC011DK: * 02263000
HRC011DK: *.$******************************************************************** 02264000
HRC011DK: SPACE , 02265000
HRC011DK: *---------------------------------------------------------------------- 02266000
HRC011DK: * GO START THE CHANNEL PROGRAM FORMATTING THE DEVICE. IF WE 02267000
HRC011DK: * RECEIVE CC0 FROM SIO, THEN WE STARTED OK SO LOAD A WAIT STATE 02268000
HRC011DK: * AT XWAIT AND WAIT FOR CE+DE. FOR A CC3, ISSUE 'DEV XXX NOT 02269000
HRC011DK: * OPERATIONAL OR NOT READY' TO USER. FOR BUSY CC2, RETRY 100 02270000
HRC011DK: * TIMES BEFORE ISSUING THE 'NOT OPERATIONAL' MESSAGE. 02271000
HRC011DK: * FOR CC1, AFTER RE-ISSUING SIO FOR 100 TIMES, CHECK THE CSW 02272000
HRC011DK: * STATUS AT RDCERR. 02273000
HRC011DK: *---------------------------------------------------------------------- 02274000
HRC011DK: STIO MVC CCHHR(5),FFS8 PUT F'S IN HEADER. 02275000
HRC011DK: STIO2 LA R7,100 ERROR RETRY COUNT. 02276000
HRC011DK: START BAL R14,STRTIO1 GO START THE DEVICE 02277000
HRC011DK: BC 8,XWAIT IF STARTED OK GO WAIT 02278000
HRC011DK: BC 1,TIOCC3 CC = 3, NOTIFY USER 02279000
HRC011DK: BC 2,TIORT BUSY 02280000
HRC011DK: TM CSW+4,SM+BUSY STATUS MODIFIER AND BUSY 02281000
HRC011DK: BO START YES, RETRY 02282000
HRC011DK: CLI CSW+4,BUSY DEVICE BUSY (RESERVED) 02283000
HRC011DK: BE START LOOP UNTIL RELEASE 02284000
HRC011DK: TIORT TIO 0(R5) IF NO START CLEAR STATUS 02285000
HRC011DK: BCT R7,START TRY A TOTAL OF 100 TIMES 02286000
HRC011DK: BC 3,TIOCC3 SERIOUS PROBLEMS - LET HIM KNOW 02287000
HRC011DK: SPACE , 02288000
HRC011DK: *---------------------------------------------------------------------- 02289000
HRC011DK: * FOR A UNIT CHECK, WE HAVE THE SENSE DATA. ELSE, GET THE SENSE 02290000
HRC011DK: * DATA. THEN ISSUE THE MESSAGE 'IO ERROR XXX CCHHR = XXXXXXXXXX 02291000
HRC011DK: * SENSE = XXXXXXXXXXXX' AND THEN GO TO FATAL. 02292000
HRC011DK: *---------------------------------------------------------------------- 02293000
HRC011DK: SPACE , 02294000
HRC011DK: RDCERR EQU * 02295000
HRC011DK: TM CSW+4,UC DID DEVICE HAVE UNIT CHECK 02296000
HRC011DK: BO STARTER1 NO, ERROR SET UP MSG 02297000
HRC011DK: XC SENSE,SENSE CLEAR SENSE AREA 02298000
HRC011DK: XC SENSTA(8),SENSTA CLEAR SENSE CSW 02299000
HRC011DK: MVI SENSTA+7,X'1A' INDICATE 6 SENSE BYTES 02300000
HRC011DK: MVC SAVEIT(20),IOOPSW SAVE CSW,CAW, AND IO OLD PSW 02301000
HRC011DK: B STARTER2 GO SET UP BOTH ERROR MSG 02302000
HRC011DK: STARTER1 BAL R7,SENSIT GET SENSE DATA 02303000
HRC011DK: STARTER2 BAL R7,SENSIT2 PRINT SENSE MESSAGE 02304000
HRC011DK: B FATAL GO FATAL 02305000
HRC011DK: SPACE , 02306000
HRC011DK: *---------------------------------------------------------------------- 02307000
HRC011DK: * FORMATTING STARTED - 02308000
HRC011DK: * LOAD THE WAIT PSW AND WAIT FOR A DEVICE INTERRUPT. 02309000
HRC011DK: *---------------------------------------------------------------------- 02310000
HRC011DK: SPACE , 02311000
HRC011DK: CNOP 4,8 02312000
HRC011DK: XWAIT LPSW WAITCON 02313000
HRC011DK: WAITCON DC X'FE02' 02314000
HRC011DK: SPACE , 02315000
HRC011DK: DC A(255) 02316000
HRC011DK: *.3******************************************************************** 02317000
HRC011DK: * 02318000
HRC011DK: * OPERATION - 02319000
HRC011DK: * 02320000
HRC011DK: * V. COME HERE AFTER FORMAT OPERATION IS COMPLETE. 02321000
HRC011DK: * 02322000
HRC011DK: * 1. ISSUE 'FORMAT DONE'. 02323000
HRC011DK: * 2. ISSUE MESSAGE INDICATING NUMBER OF PAGE ERROR RECORDS. 02324000
HRC011DK: * 3. REPEAT PROMPTING FOR NEW FUNCTION TO PERFORM WHEN 02325000
HRC011DK: * USING CONSOLE AS INPUT OR READ NEXT FUNCTION FROM 02326000
HRC011DK: * THE IPL DEVICE. 02327000
HRC011DK: * 02328000
HRC011DK: * LOCAL REGISTER USAGE - 02329000
HRC011DK: * 02330000
HRC011DK: * R3 - PAGE COUNT 02331000
HRC011DK: * R4 - MESSAGE ADDRESS 02332000
HRC011DK: * R14 - LINKAGE 02333000
HRC011DK: * 02334000
HRC011DK: *.$******************************************************************** 02335000
HRC011DK: SPACE , 02336000
HRC011DK: *---------------------------------------------------------------------- 02337000
HRC011DK: * ISSUE 'FORMAT DONE' MESSAGE. 02338000
HRC011DK: *---------------------------------------------------------------------- 02339000
HRC011DK: SPACE , 02340000
HRC011DK: CLEANUP LA R4,ENDFOR SET UP FOR END OF FORMAT MSG 02341000
HRC011DK: MVC IONPSW(8),CONSIRA SET UP NEW IO PSW 02342000
HRC011DK: BAL R14,WMSG WRITE MESSAGE 02343000
HRC011DK: SPACE , 02344000
HRC011DK: *---------------------------------------------------------------------- 02345000
HRC011DK: * IF WRITE VERIFICATION IS NOT OPTIONAL FOR THIS DEVICE 02346000
HRC011DK: * (ALWAYS PERFORMED) OR WRITE VERIFICATION IS OPTIONAL AND 02347000
HRC011DK: * WAS REQUESTED THEN GO GET ERROR PAGE COUNT AND PRINT; 02348000
HRC011DK: * OTHERWISE, GO DO SOME HOUSEKEEPING. 02349000
HRC011DK: *---------------------------------------------------------------------- 02350000
HRC011DK: SPACE , 02351000
HRC011DK: CLI WVFLAGS,WVNOTOPT IF WRITE VERIF. NOT OPTIONAL 02352000
HRC011DK: BE PRTPGCNT THEN GO PRINT PAGE COUNT 02353000
HRC011DK: TM WVFLAGS,WVREQ IF WRITE VERIF. WAS REQUESTED 02354000
HRC011DK: BO PRTPGCNT THEN GO PRINT PAGE COUNT 02355000
HRC011DK: LA R4,WVMSG3 GET WRITE VERIFICATION MSG # 3 02356000
HRC011DK: BAL R14,WMSG AND WRITE TO CONSOLE 02357000
HRC011DK: L R7,CCWCHNG GET ADDRESS OF CHANGED CCW AND 02358000
HRC011DK: OI 4(R7),CC RESET CC BIT 02359000
HRC011DK: XC CCWCHNG,CCWCHNG CLEAR CCWCHNG FIELD 02360000
HRC011DK: B ENDWVCLP EXIT TO COMMON CODE 02361000
HRC011DK: SPACE , 02362000
HRC011DK: *---------------------------------------------------------------------- 02363000
HRC011DK: * ISSUE 'XXXX NO. PAGE RECORDS WITH READ-CHECK ERRORS' MESSAGE 02364000
HRC011DK: *---------------------------------------------------------------------- 02365000
HRC011DK: SPACE , 02366000
HRC011DK: PRTPGCNT DS 0H 02367000
HRC011DK: L R3,PGCOUNT GET ERROR PAGE COUNT 02368000
HRC011DK: CVD R3,FIELDA CONVERT ERROR COUNT TO DECIMAL 02369000
HRC011DK: OI FIELDA+7,X'0F' MAKE GOOD SIGN 02370000
HRC011DK: UNPK FIELDB+8-CYLNUM(CYLNUM),FIELDA+5(3) 02371000
HRC011DK: * UNPACK TO PRINTABLE CHAR. 02372000
HRC011DK: MVC PAGE+1(CYLNUM),FIELDB+8-CYLNUM 02373000
HRC011DK: * PUT ERROR COUNT INTO MSG. 02374000
HRC011DK: LA R4,PAGE SET UP ERROR PAGE MSG 02375000
HRC011DK: BAL R14,WMSG WRITE MESSAGE 02376000
HRC011DK: SPACE , 02377000
HRC011DK: *---------------------------------------------------------------------- 02378000
HRC011DK: * GET NEW FUNCTION TO PERFORM. 02379000
HRC011DK: *---------------------------------------------------------------------- 02380000
HRC011DK: SPACE , 02381000
HRC011DK: ENDWVCLP DS 0H 02382000
HRC011DK: B GETCARD END FORMAT, BRANCH 02383000
HRC011DK: *.3******************************************************************** 02384000
HRC011DK: * 02385000
HRC011DK: * OPERATION - 02386000
HRC011DK: * 02387000
HRC011DK: * W. FATAL ERROR ENCOUNTERED 02388000
HRC011DK: * 02389000
HRC011DK: * 1. ISSUE THE ERROR MESSAGE 'FATAL DASD IO ERROR CSW = XXXXXXX 02390000
HRC011DK: * XXXX'. THEN RETURN TO BEGINNING. 02391000
HRC011DK: * 02392000
HRC011DK: * LOCAL REGISTER USAGE - 02393000
HRC011DK: * 02394000
HRC011DK: * R4 - ADDRESS OF FATAL MESSAGE 02395000
HRC011DK: * R14 - LINKAGE 02396000
HRC011DK: * 02397000
HRC011DK: *.&******************************************************************** 02398000
HRC011DK: SPACE , 02399000
HRC011DK: FATAL STM R0,R15,PCREGS SAVE R0 TO R15 02400000
HRC011DK: MVC SAVFATAL(20),IOOPSW SAVE IOOLDPSW,CSW,CAW 02401000
HRC011DK: UNPK WORK(9),SAVFATAL+8(5) UNPACK THE CSW 02402000
HRC011DK: UNPK WORK+8(9),SAVFATAL+12(5) . . . 02403000
HRC011DK: TR WORK(16),TTAB-240 MAKE IT ALL READABLE 02404000
HRC011DK: MVC FATLMSG+37(16),WORK MOVE INTO MESSAGE 02405000
HRC011DK: LA R4,FATLMSG SET UP FATAL MSG 02406000
HRC011DK: MVC IONPSW(8),CONSIRA SET UP NEW IO PSW 02407000
HRC011DK: BAL R14,WMSG WRITE MESSAGE 02408000
HRC011DK: B GETCARD YES,BRANCH 02409000
HRC011DK: *.3******************************************************************** 02410000
HRC011DK: * 02411000
HRC011DK: * OPERATION - 02412000
HRC011DK: * 02413000
HRC011DK: * X. ALLOCATION ROUTINE 02414000
HRC011DK: * 02415000
HRC011DK: * CALLED FROM OP M AFTER VERIFYING THAT THE LABEL ENTERED BY THE 02416000
HRC011DK: * USER MATCHES THE REAL VOLUME LABEL. 02417000
HRC011DK: * 02418000
HRC011DK: * 1. VERIFY THAT WE HAVE A CP-OWNED VOLUME. 02419000
HRC011DK: * 2. DISPLAY 'ENTER ALLOCATION DATA FOR VOLUME XXXXXX'. 02420000
HRC011DK: * 3. ISSUE 'TYPE CYL CYL' AND GO TO OP Y. 02421000
HRC011DK: * 02422000
HRC011DK: * LOCAL REGISTER USAGE - 02423000
HRC011DK: * 02424000
HRC011DK: * R3 - ALLOCATION TABLE ADDRESSABILITY 02425000
HRC011DK: * R4 - WORK/MESSAGE ADDRESS 02426000
HRC011DK: * R5 - WORK/NUMBER OF ENTRIES IN MAP 02427000
HRC011DK: * R14 - LINKAGE 02428000
HRC011DK: * 02429000
HRC011DK: *.$******************************************************************** 02430000
HRC011DK: SPACE , 02431000
HRC011DK: *---------------------------------------------------------------------- 02432000
HRC011DK: * VERIFY THAT LABEL IS 'CP370' FOR A CP-OWNED VOLUME. IF THIS 02433000
HRC011DK: * IS NOT TRUE, PRINT "ALLOCATION FUNCTION NOT ALLOWED, FORMAT OF 02434000
HRC011DK: * VOLUME IS A PREREQUISITE". RE-DISPLAY "FORMAT OR ALLOCATE" 02435000
HRC011DK: * MESSAGE AT LABEL SELECT. 02436000
HRC011DK: *---------------------------------------------------------------------- 02437000
HRC011DK: SPACE , 02438000
HRC011DK: ALLOCATE EQU * 02439000
HRC011DK: CLC LCP370,CP370 VOLUME OWNED BY CP 02440000
HRC011DK: BE ALLOC1 YES, ALLOCATION ALLOWED 02441000
HRC011DK: MVC LCP370,CP370 RESTORE CP370 SINCE READ CCW 02442000
HRC011DK: LA R4,MSG742 OVERLAID IT 02443000
HRC011DK: BAL R14,WMSG INFORM USER 02444000
HRC011DK: LA R4,MSG742A GET PREREQ FORMATTING MSG 02445000
HRC011DK: BAL R14,WMSG AND WRITE IT 02446000
HRC011DK: TM CDSW2,X'FF' IS CARD SWITCH ON 02447000
HRC011DK: BO BADINPUT YES, PRINT CARD AND QUIT 02448000
HRC011DK: B SELECT ELSE BACK TO SELECT 02449000
HRC011DK: SPACE , 02450000
HRC011DK: *---------------------------------------------------------------------- 02451000
HRC011DK: * VERIFY LABEL AND WRITE MESSAGE INDICATING USER EXTENTS. 02452000
HRC011DK: * DISPLAY THE MESSAGE - 'ENTER ALLOCATION DATA FOR VOLUME XXXXX' 02453000
HRC011DK: *---------------------------------------------------------------------- 02454000
HRC011DK: SPACE , 02455000
HRC011DK: ALLOC1 DS 0H ALLOCATION FUNCTION IS OK 02456000
HRC011DK: MVC DATAMSG1(6),CPLABEL PUT LABEL INTO MESSAGE 02457000
HRC011DK: MVC ALLEND+19(6),CPLABEL PUT LABEL INTO CONSOLE MSG 02458000
HRC011DK: LA R4,DATAMSG SET UP DATA MSG 02459000
HRC011DK: BAL R14,WMSG WRITE MESSAGE 02460000
HRC011DK: SPACE , 02461000
HRC011DK: *---------------------------------------------------------------------- 02462000
HRC011DK: * ISSUE 'TYPE CYL CYL'. 02463000
HRC011DK: *---------------------------------------------------------------------- 02464000
HRC011DK: LA R4,ALMSG SET UP CYLINDER ALLOCATION MSG 02465000
HRC011DK: BAL R14,WMSG WRITE MESSAGE 02466000
HRC011DK: *.3******************************************************************** 02467000
HRC011DK: * 02468000
HRC011DK: * OPERATION - 02469000
HRC011DK: * 02470000
HRC011DK: * Y. ALLOCATION ROUTINE COMMON CODE FOR FETCHING AND SETTING THE 02471000
HRC011DK: * TYPE OF ALLOCATION 02472000
HRC011DK: * 02473000
HRC011DK: * +----------------------------------------------------------------+ 02474000
HRC011DK: * |TYPE BYTE DESCRIPTION OF ALLOCATION TYPE | 02475000
HRC011DK: * +----------------------------------------------------------------+ 02476000
HRC011DK: * |TEMP 00 TEMP STORAGE SPACE RESERVED FOR SPOOLING/PAGING | 02477000
HRC011DK: * |PERM 01 CP NUCLEUS, LOGOUT AREA, USER MINIDISKS | 02478000
HRC011DK: * |TDSK 02 TEMPORARY MINIDISK SPACE FOR VIRTUAL MACHINE USERS | 02479000
HRC011DK: * |DRCT 04 RESERVED FOR DIRECTORY FILES | 02480000
HRC011DK: * | 0C DIRECTORY SPACE IN USE BY DMKDIR | 02481000
HRC011DK: * | FF END OF ALLOCATION EXTENT MAP | 02482000
HRC011DK: * +----------------------------------------------------------------+ 02483000
HRC011DK: * 02484000
HRC011DK: * 1. READ THE ALLOCATION TYPE AND EXTENTS FROM CONSOLE OR CARD 02485000
HRC011DK: * INPUT. 02486000
HRC011DK: * 2. HANDLE CONSOLE INPUT. CHECK THE FIRST FIELD FOR VALID TYPE. 02487000
HRC011DK: * AFTER GETTING TYPE, GO TO OP Z. 02488000
HRC011DK: * 3. HANDLE CARD INPUT. CHECK THE FIRST FIELD FOR VALID TYPE. 02489000
HRC011DK: * AFTER GETTING TYPE, GO TO OP Z. 02490000
HRC011DK: * 4. CHECK FOR 'END' SPECIFIED (NO OTHER VALID TYPE FOUND). 02491000
HRC011DK: * IF 'END' FOUND, THEN GO TO OP BB TO WRITE ALLOCATION TABLE 02492000
HRC011DK: * TO DASD OR CONSOLE OR BOTH. 02493000
HRC011DK: * 5. IF 'END' NOT FOUND, THEN ISSUE ERROR MESSAGE. 02494000
HRC011DK: * 02495000
HRC011DK: * LOCAL REGISTER USAGE - 02496000
HRC011DK: * 02497000
HRC011DK: * R4 - MESSAGE ADDRESS 02498000
HRC011DK: * R14 - LINKAGE 02499000
HRC011DK: * 02500000
HRC011DK: *.$******************************************************************** 02501000
HRC011DK: SPACE , 02502000
HRC011DK: *---------------------------------------------------------------------- 02503000
HRC011DK: * READ THE ALLOCATION TYPE AND EXTENTS FROM CONSOLE OR CARD. 02504000
HRC011DK: *---------------------------------------------------------------------- 02505000
HRC011DK: SPACE , 02506000
HRC011DK: ANOTCARD EQU * 02507000
HRC011DK: CLI CDSW2,X'FF' IS IT CARD INPUT? 02508000
HRC011DK: BE GETCARD YES GET ANOTHER CARD 02509000
HRC011DK: SPACE , 02510000
HRC011DK: REREAD EQU * 02511000
HRC011DK: BAL R14,RMSG READ RESPONSE 02512000
HRC011DK: TM CSW+4,UE WAS IT UNIT CK OR UNIT EXCEPTION 02513000
HRC011DK: BO REREAD YES,TRY AGAIN 02514000
HRC011DK: CLI CDSW2,X'FF' IS IT CARD INPUT? 02515000
HRC011DK: BE CHECKCDS YES....GO CHECK THEM 02516000
HRC011DK: SPACE , 02517000
HRC011DK: *---------------------------------------------------------------------- 02518000
HRC011DK: * HERE FOR CONSOLE INPUT - CHECK THE FIRST FIELD FOR TYPE. 02519000
HRC011DK: *---------------------------------------------------------------------- 02520000
HRC011DK: OC INDATA(5),BLANKS8 CONVERT TO UPPER CASE 02521000
HRC011DK: CLC INDATA(5),=C'TEMP ' IS IT TEMPORARY ? 02522000
HRC011DK: MVI ATYPE,X'00' CLEAR TYPE TO 00 02523000
HRC011DK: BE AOKALL BRANCH IF TEMP 02524000
HRC011DK: CLC INDATA(5),=C'PERM ' IS IT PERMANENT ? 02525000
HRC011DK: MVI ATYPE,X'01' TYPE IS 01 02526000
HRC011DK: BE AOKALL BRANCH IF PERMANENT 02527000
HRC011DK: CLC INDATA(5),=C'TDSK ' IS IT TEMP DISK ? 02528000
HRC011DK: MVI ATYPE,X'02' TYPE IS 02 02529000
HRC011DK: BE AOKALL IF TEMP DISK BRANCH 02530000
HRC011DK: CLC INDATA(5),=C'DRCT ' IS IT DIRECTORY ? 02531000
HRC011DK: MVI ATYPE,X'04' TYPE IS 04 02532000
HRC011DK: BE AOKALL IF DIRECTORY BRANCH 02533000
HRC011DK: B CKEND NOW GO CHECK FOR AN END 02534000
HRC011DK: SPACE , 02535000
HRC011DK: *---------------------------------------------------------------------- 02536000
HRC011DK: * HERE FOR CARD INPUT - CHECK THE FIRST FIELD FOR TYPE. 02537000
HRC011DK: *---------------------------------------------------------------------- 02538000
HRC011DK: SPACE , 02539000
HRC011DK: CHECKCDS MVC INDATA(5),CDINPUT MOVE TYPE FROM CARD 02540000
HRC011DK: MVC INDATA(80),CDINPUT GET THE CARD INPUT 02541000
HRC011DK: OC INDATA(5),BLANKS8 CONVERT TO UPPER CASE 02542000
HRC011DK: CLC INDATA(5),=C'TEMP,' IS IT TEMPORARY? 02543000
HRC011DK: MVI ATYPE,X'00' CLEAR TYPE TO 00 02544000
HRC011DK: BE AOKALL BRANCH IF TEMPORARY 02545000
HRC011DK: CLC INDATA(5),=C'PERM,' IS IT PERMANENT? 02546000
HRC011DK: MVI ATYPE,X'01' TYPE IS 01 02547000
HRC011DK: BE AOKALL BRANCH IF PERMANENT 02548000
HRC011DK: CLC INDATA(5),=C'TDSK,' IS IT TEMP DISK? 02549000
HRC011DK: MVI ATYPE,X'02' TYPE IS 02 02550000
HRC011DK: BE AOKALL BRANCH IF TEMP DISK 02551000
HRC011DK: CLC INDATA(5),=C'DRCT,' IS IT DIRECTORY? 02552000
HRC011DK: MVI ATYPE,X'04' TYPE IS 04 02553000
HRC011DK: BE AOKALL BRANCH IF DIRECTORY 02554000
HRC011DK: SPACE , 02555000
HRC011DK: *---------------------------------------------------------------------- 02556000
HRC011DK: * WHETHER ALLOCATION EXTENTS ARE ENTERED OR NOT, 'END' MUST BE 02557000
HRC011DK: * TYPED AT THIS POINT SINCE NOTHING ELSE WAS RECOGNIZED AS 02558000
HRC011DK: * VALID. WRITE OUT THE ALLOCATION TABLE AT LABEL FINI. 02559000
HRC011DK: * IF 'END' WAS NOT FOUND, THEN ISSUE 'TYPE OR CYL INVALID' 02560000
HRC011DK: * FOR CARD INPUT DISPLAY THE CARD AND GO VALIDATE CARD INPUT. 02561000
HRC011DK: *---------------------------------------------------------------------- 02562000
HRC011DK: SPACE , 02563000
HRC011DK: CKEND EQU * 02564000
HRC011DK: CLC INDATA(4),=C'END ' WAS 'END' TYPED? 02565000
HRC011DK: BE FINI IF END GO WRITE ALLOCATION TABLE 02566000
HRC011DK: LA R4,TYPERR SET UP TO PRINT ERROR 02567000
HRC011DK: BAL R14,WMSG WRITE MESSAGE 02568000
HRC011DK: TM CDSW2,X'FF' CARD INPUT? 02569000
HRC011DK: BNO REREAD NO,BRANCH 02570000
HRC011DK: LA R4,CARDMESS SET UP ERROR MSG 02571000
HRC011DK: BAL R14,WMSG WRITE MESSAGE 02572000
HRC011DK: MVI ALLOERR,X'FF' ALLOCATE ERROR TURNED ON 02573000
HRC011DK: B VALIDATE BRANCH 02574000
HRC011DK: AOKALL EQU * 02575000
HRC011DK: *.3******************************************************************** 02576000
HRC011DK: * 02577000
HRC011DK: * OPERATION - 02578000
HRC011DK: * 02579000
HRC011DK: * Z. ALLOCATE CKD 02580000
HRC011DK: * 02581000
HRC011DK: * COME HERE FROM OP Y ABOVE WITH THE 'ATYPE' BYTE EQUAL TO THE 02582000
HRC011DK: * ALLOCATION TYPE AND THE CYLINDER EXTENTS IN INDATA. 02583000
HRC011DK: * 02584000
HRC011DK: * UPDATE ALLOCATION TABLE IN CORE FROM CONSOLE OR IPL DEVICE 02585000
HRC011DK: * INPUT. WE THEN WRITE THE CYLINDER ALLOCATION INTO THE CYL 02586000
HRC011DK: * BYTE MAP LOCATED IN RECORD 4 OF CYLINDER 0 HEAD 0. THIS MAP 02587000
HRC011DK: * WILL LATER BE DISPLAYED ON THE CONSOLE. 02588000
HRC011DK: * 02589000
HRC011DK: * 1. PROCESS THE INPUT DATA TO DETERMINE STARTING AND ENDING 02590000
HRC011DK: * CYLINDERS. MOVE THE CORRECT FORMAT OF THE STARTING AND 02591000
HRC011DK: * ENDING CYLINDER NUMBERS BACK INTO INDATA AFTER DELETING 02592000
HRC011DK: * ANY LEADING ZEROES OR CHECKING FOR 3 OR 4 DIGIT 02593000
HRC011DK: * SPECIFICATIONS. CHECK IF INPUT CYLINDERS ARE 3, 4, OR 02594000
HRC011DK: * MIXED NUMBERS OF DIGITS AND HANDLE ACCORDINGLY. 02595000
HRC011DK: * 2. SHOW EACH CYLINDER BY ITS RESPECTIVE ALLOCATION TYPE AND 02596000
HRC011DK: * PUT IT INTO THE CYLINDER BYTE MAP. 02597000
HRC011DK: * 3. IF AN INVALID CYLINDER WAS FOUND, ISSUE 'TYPE OR CYL 02598000
HRC011DK: * INVALID' MESSAGE. 02599000
HRC011DK: * 02600000
HRC011DK: * LOCAL REGISTER USAGE - 02601000
HRC011DK: * 02602000
HRC011DK: * R4 - MESSAGE ADDRESS 02603000
HRC011DK: * R5 - WORK 02604000
HRC011DK: * R7 - WORK 02605000
HRC011DK: * R9 - ADDRESS OF CYLINDER BYTE MAP 02606000
HRC011DK: * R14 - LINKAGE 02607000
HRC011DK: * 02608000
HRC011DK: *.$******************************************************************** 02609000
HRC011DK: SPACE , 02610000
HRC011DK: *---------------------------------------------------------------------- 02611000
HRC011DK: * 3 OR 4 MIXED DIGIT INPUT WITH A SINGLE BLANK IN BETWEEN IS 02612000
HRC011DK: * ALLOWED. CHECK FOR THE STARTING CYLINDER DIGIT FIRST. 02613000
HRC011DK: *---------------------------------------------------------------------- 02614000
HRC011DK: SPACE , 02615000
HRC011DK: MVC CHARSAVE,CHARMASK REINTIALIZE CHARSAVE AREA 02616000
HRC011DK: CLI INDATA+8,C'0' IS STR CYL 4TH DIGIT NUM? 02617000
HRC011DK: BNL CHKEND2 YES, CHECK ENDING CYL. 02618000
HRC011DK: CLI INDATA+8,C' ' IF NOT, IS IT A BLANK? 02619000
HRC011DK: BE CHKEND1 YES, CHECK ENDING CYL. 02620000
HRC011DK: CLI INDATA+8,C',' OR IS IT FROM CARD INPUT? 02621000
HRC011DK: BNE ERRCYL NO, INPUT ERROR 02622000
HRC011DK: SPACE , 02623000
HRC011DK: *---------------------------------------------------------------------- 02624000
HRC011DK: * THE STARTING CYLINDER IS 3 DIGITS -- WE NEED TO MAKE SURE THE 02625000
HRC011DK: * 4TH DIGIT OF THE ENDING CYLINDER IS EITHER A BLANK OR X'00' 02626000
HRC011DK: * SO THAT WE CAN INSERT LEADING 0'S FOR BOTH STARTING AND ENDING 02627000
HRC011DK: * CYLINDER NUMBERS. 02628000
HRC011DK: *---------------------------------------------------------------------- 02629000
HRC011DK: CHKEND1 DS 0H CHECK ENDING CYLINDER 02630000
HRC011DK: CLI INDATA+12,C'0' HOW ABOUT ENDING CYL? 02631000
HRC011DK: BNL INSERTA2 YES, INSERT A LEADING 0 02632000
HRC011DK: CLI INDATA+12,C' ' IS IT A BLANK ? 02633000
HRC011DK: BE INSERTA1 YES, INSERT 0 IN FRONT 02634000
HRC011DK: CLI INDATA+12,X'00' OR IS IT A X'00' ? 02635000
HRC011DK: BNE ERRCYL NO, INPUT ERROR 02636000
HRC011DK: INSERTA1 DS 0H INSERT A LEADING 0 02637000
HRC011DK: MVC CHARSAVE+1(4),INDATA+5 STORE START CYL TEMPRRLY 02638000
HRC011DK: MVC CHARSAVE+6(3),INDATA+9 STORE ENDT CYL TEMPRRILY 02639000
HRC011DK: B MOVEBACK MOVE BACK CYL NUMBERS 02640000
HRC011DK: SPACE , 02641000
HRC011DK: *---------------------------------------------------------------------- 02642000
HRC011DK: * HERE, STARTING CYLINDER HAS 3 DIGITS AND ENDING CYLINDER HAS 02643000
HRC011DK: * AT LEAST 4. MAKE SURE ENDING CYLINDER DOES NOT GO BEYOND 4 02644000
HRC011DK: * DIGITS. INSERT A LEADING 0 FOR STARTING CYLINDER. 02645000
HRC011DK: *---------------------------------------------------------------------- 02646000
HRC011DK: SPACE , 02647000
HRC011DK: INSERTA2 DS 0H 02648000
HRC011DK: CLI INDATA+13,C' ' 5TH DIGIT OF END CYL BLNK? 02649000
HRC011DK: BE INSERTA3 YES, INS 0 FOR START CYL 02650000
HRC011DK: CLI INDATA+13,X'00' OR IS IT A X'00' ? 02651000
HRC011DK: BNE ERRCYL NO, INPUT ERROR 02652000
HRC011DK: INSERTA3 DS 0H 02653000
HRC011DK: MVC CHARSAVE+1(8),INDATA+5 STORE START CYL TEMPRRLY 02654000
HRC011DK: B MOVEBACK MOVE BACK CYL NUMBERS 02655000
HRC011DK: SPACE , 02656000
HRC011DK: *---------------------------------------------------------------------- 02657000
HRC011DK: * STARTING CYLINDER IS 4 DIGITS, NEED TO CHECK THE ENDING 02658000
HRC011DK: * CYLINDER DIGIT. 02659000
HRC011DK: *---------------------------------------------------------------------- 02660000
HRC011DK: SPACE , 02661000
HRC011DK: CHKEND2 DS 0H CHECK THE ENDING CYL. # 02662000
HRC011DK: CLI INDATA+9,C' ' IS THE 5TH DIGIT A BLANK? 02663000
HRC011DK: BE CHKEND3 YES, CHECK THE ENDING CYL 02664000
HRC011DK: CLI INDATA+9,C',' NO, IS IT FROM CARD 02665000
HRC011DK: BNE ERRCYL NO, INPUT ERROR 02666000
HRC011DK: CHKEND3 DS 0H CHECK THE ENDING CYL. # 02667000
HRC011DK: CLI INDATA+13,C'0' IS END CYL A 3 DIGIT NUM? 02668000
HRC011DK: BNL NUMCHKA NO, GO CHECK IF NUMERIC 02669000
HRC011DK: CLI INDATA+13,C' ' IS THE 4TH DIGIT A BLANK? 02670000
HRC011DK: BE INSERTA4 YES, INSERT 0 IN FRONT 02671000
HRC011DK: CLI INDATA+13,X'00' OR IS IT A X'00' ? 02672000
HRC011DK: BNE ERRCYL NO, INPUT ERROR 02673000
HRC011DK: INSERTA4 DS 0H 02674000
HRC011DK: MVC CHARSAVE(4),INDATA+5 STORE START CYL TEMPRRLY 02675000
HRC011DK: MVC CHARSAVE+6(3),INDATA+10 STORE ENDT CYL TEMPRRILY 02676000
HRC011DK: MVC INDATA+5(4),CHARSAVE MOVE BACK THE START CYL # 02677000
HRC011DK: MVC INDATA+10(4),CHARSAVE+5 MOVE BACK THE END CYL # 02678000
HRC011DK: B NUMCHKA GO CHECK IF NUMERIC 02679000
HRC011DK: SPACE , 02680000
HRC011DK: *---------------------------------------------------------------------- 02681000
HRC011DK: * BOTH THE STARTING AND ENDING CYLINDERS ARE 4 DIGITS IN THE 02682000
HRC011DK: * CHARSAVE AREA. NOW MOVE THEM BACK TO THE INDATA AREA. 02683000
HRC011DK: *---------------------------------------------------------------------- 02684000
HRC011DK: MOVEBACK DS 0H 02685000
HRC011DK: MVC INDATA+5(9),CHARSAVE MOVE BACK THE INPUT CYL 02686000
HRC011DK: SPACE , 02687000
HRC011DK: *---------------------------------------------------------------------- 02688000
HRC011DK: * BOTH THE STARTING AND ENDING CYLINDERS ARE 4 DIGITS NOW IN 02689000
HRC011DK: * INDATA. CHECK TO VERIFY THAT THEY ARE ALL NUMERIC. FIRST 02690000
HRC011DK: * CHECK THE STARTING CYLINDER. 02691000
HRC011DK: *---------------------------------------------------------------------- 02692000
HRC011DK: SPACE , 02693000
HRC011DK: NUMCHKA DS 0H 02694000
HRC011DK: MVC MASKB(CYLNUM),MASKA REINITIALIZE MASKB TO 'F0' 02695000
HRC011DK: NC MASKB(CYLNUM),INDATA+NAMCHARS+BLANK 02696000
HRC011DK: * AND MASK IT WITH THE INDATA 02697000
HRC011DK: CLC MASKA(CYLNUM),MASKB ARE THEY ALL NUMERIC? 02698000
HRC011DK: BNE ERRCYL NO, ERROR IN INDATA 02699000
HRC011DK: CLI CDSW2,X'FF' CARD INPUT? 02700000
HRC011DK: BNE CONSDATA NO, MUST BE FROM THE CONSOLE 02701000
HRC011DK: CLI INDATA+NAMCHARS+BLANK+CYLNUM,C',' 02702000
HRC011DK: BNE ERRCYL NO...HE GOOFED. 02703000
HRC011DK: B CKREST GO CHECK THE REST OF IT 02704000
HRC011DK: SPACE , 02705000
HRC011DK: *---------------------------------------------------------------------- 02706000
HRC011DK: * IF INPUT IS FROM THE CONSOLE, THERE MUST BE A SINGLE BLANK 02707000
HRC011DK: * BETWEEN TYPE AND STARTING CYLINDER FIELDS. 02708000
HRC011DK: *---------------------------------------------------------------------- 02709000
HRC011DK: SPACE , 02710000
HRC011DK: CONSDATA EQU * 02711000
HRC011DK: CLI INDATA+NAMCHARS+BLANK+CYLNUM,C' ' IS IT A BLANK? 02712000
HRC011DK: BNE ERRCYL NOPE - REPEAT IT PLEASE 02713000
HRC011DK: SPACE , 02714000
HRC011DK: *---------------------------------------------------------------------- 02715000
HRC011DK: * NEXT CHECK THE ENDING CYLINDER - THERE MAY BE SOMETHING AFTER. 02716000
HRC011DK: *---------------------------------------------------------------------- 02717000
HRC011DK: SPACE , 02718000
HRC011DK: CKREST NC MASKB(CYLNUM),INDATA+NAMCHARS+BLANK+CYLNUM+BLANK 02719000
HRC011DK: * MASK WITH THE ENDING CYLINDER 02720000
HRC011DK: CLC MASKA(CYLNUM),MASKB IS END CYLINDER NUMERIC? 02721000
HRC011DK: BNE ERRCYL NO,ERROR IN INDATA 02722000
HRC011DK: OI INDATA+NAMCHARS+BLANK+CYLNUM+BLANK+CYLNUM,X'40' 02723000
HRC011DK: * MASK ENDING CYL WITH A BLANK 02724000
HRC011DK: CLI INDATA+NAMCHARS+BLANK+CYLNUM+BLANK+CYLNUM,X'40' 02725000
HRC011DK: * IS INPUT ENDED WITH A BLANK ? 02726000
HRC011DK: * IF NOT, MEANS SOMETHING IS THERE 02727000
HRC011DK: BNE ERRCYL YEP - DO IT AGAIN. 02728000
HRC011DK: SPACE , 02729000
HRC011DK: *---------------------------------------------------------------------- 02730000
HRC011DK: * CHECK CYLINDER BOUNDARY FOR EACH TYPE. 02731000
HRC011DK: *---------------------------------------------------------------------- 02732000
HRC011DK: SPACE , 02733000
HRC011DK: PACK FIELDA+5(3),INDATA+NAMCHARS+BLANK(CYLNUM) 02734000
HRC011DK: * PACK START CYL DATA 02735000
HRC011DK: PACK FIELDB+5(3),INDATA+NAMCHARS+BLANK+CYLNUM+BLANK(CYLNUM) 02736000
HRC011DK: * PACK END CYL DATA 02737000
HRC011DK: CVB R7,FIELDA CONVERT TO BINARY START CYL 02738000
HRC011DK: ST R7,FIELDA+4 SAVE BINARY RESULTS 02739000
HRC011DK: CVB R7,FIELDB CONVERT TO BINARY END CYL 02740000
HRC011DK: LH R5,HIVALUE MAX END CYLINDER 02741000
HRC011DK: LA R5,1(R5) ADD ONE TO HI VALUE 02742000
HRC011DK: CH R7,HIVALUE HIGHER THAN LAST CYLINDER 02743000
HRC011DK: BH ERRCYL YES,ERROR 02744000
HRC011DK: STORE2 ST R7,FIELDB+4 SAVE END CYLINDER 02745000
HRC011DK: SPACE , 02746000
HRC011DK: CLC FIELDA+4(4),FIELDB+4 IS START GREATER THAN END? 02747000
HRC011DK: BH ERRCYL YES,THAT'S ERROR 02748000
HRC011DK: SPACE , 02749000
HRC011DK: *---------------------------------------------------------------------- 02750000
HRC011DK: * SHOW EACH CYLINDER BY ITS RESPECTIVE ALLOCATION TYPE AND PUT 02751000
HRC011DK: * IT INTO THE CYLINDER BYTE MAP. 02752000
HRC011DK: *---------------------------------------------------------------------- 02753000
HRC011DK: SPACE , 02754000
HRC011DK: L R9,=A(TABLE) LOAD BYTE MAP START ADDRESS 02755000
HRC011DK: A R9,FIELDA+4 ADD START CYL TO BYTE MAP ADDR 02756000
HRC011DK: L R7,FIELDB+4 LOAD END CYL INTO R8 02757000
HRC011DK: S R7,FIELDA+4 SUBTRACT START FROM END 02758000
HRC011DK: LA R7,1(R7) ADD 1 TO NUMBER OF CYL'S 02759000
HRC011DK: MVC INDIC+1(1),ATYPE ALTER INSTR TO CORRECT TYPE 02760000
HRC011DK: INDIC MVI 0(R9),X'00' PUT TYPE INTO CYL BYTE MAP 02761000
HRC011DK: LA R9,1(R9) ADD 1 TO BYTE MAP ADDRESS 02762000
HRC011DK: BCT R7,INDIC REPEAT FOF THE NUMB CYL' 02763000
HRC011DK: SPACE , 02764000
HRC011DK: OI FLAG1,ALLOCWR SET FLAG TO WRITE ALLOC. TO DISK 02765000
HRC011DK: TM CDSW2,X'FF' IS CD SWITCH2 ON 02766000
HRC011DK: BO GETCARD YES,BRANCH 02767000
HRC011DK: B REREAD GET ANOTHER ENTRY 02768000
HRC011DK: SPACE , 02769000
HRC011DK: *---------------------------------------------------------------------- 02770000
HRC011DK: * ISSUE 'TYPE OR CYL INVALID'. 02771000
HRC011DK: *---------------------------------------------------------------------- 02772000
HRC011DK: SPACE , 02773000
HRC011DK: ERRCYL LA R4,TYPERR SET UP CYL ERROR MSG 02774000
HRC011DK: OUTMSG EQU * 02775000
HRC011DK: BAL R14,WMSG WRITE MESSAGE 02776000
HRC011DK: TM CDSW2,X'FF' IS CD SWITCH2 ON 02777000
HRC011DK: BO BADINPUT YES,BRANCH 02778000
HRC011DK: B REREAD GET ANOTHER ENTRY 02779000
HRC011DK: *.3******************************************************************** 02780000
HRC011DK: * 02781000
HRC011DK: * OPERATION - 02782000
HRC011DK: * 02783000
HRC011DK: * BB. WRITE ALLOCATION TABLE TO DASD 02784000
HRC011DK: * 02785000
HRC011DK: * COME HERE AFTER 'END' WAS SPECIFIED FROM OP Y TO WRITE THE 02786000
HRC011DK: * ALLOCATION MAP TO DASD. IF 'END' WAS SPECIFIED ALONE WITHOUT 02787000
HRC011DK: * ANY OTHER ALLOCATIONS, THEN DO NOT WRITE THE MAP TO DASD BUT 02788000
HRC011DK: * WRITE IT TO THE CONSOLE ONLY. 02789000
HRC011DK: * 02790000
HRC011DK: * 1. LOAD APPROPRIATE CCWS TO WRITE ALLOCATION. 02791000
HRC011DK: * 2. ISSUE SIO TO WRITE THE ALLOCATION MAP TO DASD. 02792000
HRC011DK: * WITH GOOD STATUS, GO TO OP CC. 02793000
HRC011DK: * 3. HANDLE ANY BAD STATUS RETURNED FROM THE SIO. 02794000
HRC011DK: * 02795000
HRC011DK: * LOCAL REGISTER USAGE - 02796000
HRC011DK: * 02797000
HRC011DK: * R1 - CHANNEL PROGRAM ADDRESS 02798000
HRC011DK: * R2 - WORK 02799000
HRC011DK: * R5 - DISK ADDRESS 02800000
HRC011DK: * R7 - LINKAGE 02801000
HRC011DK: * R14 - LINKAGE 02802000
HRC011DK: * 02803000
HRC011DK: *.&******************************************************************** 02804000
HRC011DK: SPACE , 02805000
HRC011DK: FINI EQU * 02806000
HRC011DK: *---------------------------------------------------------------------- 02807000
HRC011DK: * LOAD ALLOCREC STRING TO WRITE ALLOC MAP TO DASD. 02808000
HRC011DK: *---------------------------------------------------------------------- 02809000
HRC011DK: SPACE , 02810000
HRC011DK: L R2,=A(TABLE) LOAD MAP START ADDRESS 02811000
HRC011DK: AH R2,HIVALUE ADD MAXIMUM CYLINDER NUMBER 02812000
HRC011DK: MVI 1(R2),X'FF' SET END OF TABLE TO FF 02813000
HRC011DK: TM FLAG1,ALLOCWR NEED TO WRITE ALLOC. TO DISK? 02814000
HRC011DK: BZ PRINTALL NO,'END' WAS ONLY COMMAND,SO 02815000
HRC011DK: * JUST DISPLAY 02816000
HRC011DK: LA R1,ALLOREC ALLOCATE TABLE CCWS 02817000
HRC011DK: LH R5,DSKADD GET DEVICE ADD INTO R5 02818000
HRC011DK: SPACE , 02819000
HRC011DK: *---------------------------------------------------------------------- 02820000
HRC011DK: * ISSUE SIO TO WRITE THE ALLOCATION DATA ON DASD. 02821000
HRC011DK: *---------------------------------------------------------------------- 02822000
HRC011DK: SPACE , 02823000
HRC011DK: ALOCIO EQU * 02824000
HRC011DK: ST R1,CAW LABEL CCWS INTO CAW 02825000
HRC011DK: TIO 0(R5) DRAIN IT 02826000
HRC011DK: BC 2,*-4 LOOP IF BUSY 02827000
HRC011DK: BAL R14,STRTIO1 WRITE OUT THE ALLO TABLE 02828000
HRC011DK: TIO1 TIO 0(R5) DRAIN THE INT 02829000
HRC011DK: BC 2,*-4 LOOP UNTIL DONE 02830000
HRC011DK: BC 1,TIOCC3 DEVICE INOPER. - SAY SO 02831000
HRC011DK: TM CSW+5,X'FF' ANY BAD CHANNEL STATUS 02832000
HRC011DK: BNZ ERROR YES- BRANCH 02833000
HRC011DK: TM CSW+4,UC UNIT CHECK 02834000
HRC011DK: BO ERROR YES- BRANCH 02835000
HRC011DK: TM CSW+4,CE CHANNEL END 02836000
HRC011DK: BO PRINTALL YES- BRANCH ALL OK 02837000
HRC011DK: B TIO1 NO- GO GET IT 02838000
HRC011DK: SPACE , 02839000
HRC011DK: *---------------------------------------------------------------------- 02840000
HRC011DK: * FOR BAD STATUS FROM SIO, GET THE SENSE DATA AND ISSUE THE 02841000
HRC011DK: * ERROR MESSAGE. 02842000
HRC011DK: *---------------------------------------------------------------------- 02843000
HRC011DK: SPACE , 02844000
HRC011DK: ERROR BAL R7,SENSIT GET THE SENSE DATA 02845000
HRC011DK: MVC CCHHR(5),R4ALLOC MOVE IN THE CCHHR DATA 02846000
HRC011DK: BAL R7,SENSIT2 TYPE THE MSG 02847000
HRC011DK: B FATAL 02848000
HRC011DK: *.3******************************************************************** 02849000
HRC011DK: * 02850000
HRC011DK: * OPERATION - 02851000
HRC011DK: * 02852000
HRC011DK: * CC. WRITE OUT ALLOCATION TABLE TO CONSOLE 02853000
HRC011DK: * 02854000
HRC011DK: * COME HERE AFTER 'END' WAS SPECIFIED FROM OP BB, FOLLOWING THE 02855000
HRC011DK: * WRITING OF THE ALLOCATION TABLE TO DASD IF REQUIRED. 'END' 02856000
HRC011DK: * WAS FIRST DETECTED IN OP Y. IF 'END' WAS SPECIFIED BEFORE ANY 02857000
HRC011DK: * EXTENTS, THEN THE ALLOCATION MAP IS WRITTEN TO THE CONSOLE 02858000
HRC011DK: * ONLY. 02859000
HRC011DK: * 02860000
HRC011DK: * 1. DISPLAY THE 'ALLOCATION RESULTS' MESSAGE ON THE CONSOLE. 02861000
HRC011DK: * 2. FOR CKD, SHOW EACH ALLOCATION EXTENT. 02862000
HRC011DK: * 3. EACH BYTE REPRESENTS A CYLINDER - CHECK CYLINDER AND WRITE 02863000
HRC011DK: * TO ALLOCATION TYPE TO THE CONSOLE. 02864000
HRC011DK: * 4. DISPLAY 'ALLOCATION ENDED' MESSAGE AND GO BACK TO START 02865000
HRC011DK: * TO GET A NEW FUNCTION. 02866000
HRC011DK: * 02867000
HRC011DK: * LOCAL REGISTER USAGE - 02868000
HRC011DK: * 02869000
HRC011DK: * R2 - WORK 02870000
HRC011DK: * R3 - ALLOCATION TABLE ADDRESS 02871000
HRC011DK: * R4 - MESSAGE ADDRESS 02872000
HRC011DK: * R6 - WORK 02873000
HRC011DK: * R7 - WORK 02874000
HRC011DK: * R14 - LINKAGE 02875000
HRC011DK: * 02876000
HRC011DK: *.$******************************************************************** 02877000
HRC011DK: SPACE , 02878000
HRC011DK: *---------------------------------------------------------------------- 02879000
HRC011DK: * ISSUE MESSAGE 'ALLOCATION RESULTS' ON CONSOLE. 02880000
HRC011DK: *---------------------------------------------------------------------- 02881000
HRC011DK: SPACE , 02882000
HRC011DK: PRINTALL DS 0H PRINT ALLOCATION DATA 02883000
HRC011DK: LA R4,RESULTS PRINT ALLOCATION RESULTS 02884000
HRC011DK: BAL R14,WMSG2 PRINT MESSAGE 02885000
HRC011DK: L R3,=A(TABLE) POINT TO TABLE 02886000
HRC011DK: LR R6,R3 PUT TABLE ADDRESS IN R6 02887000
HRC011DK: SR R7,R7 CLEAR R7 02888000
HRC011DK: REENTER DS 0H 02889000
HRC011DK: CLI 0(R6),X'00' IS FIRST BYTE 00? 02890000
HRC011DK: MVC MAP+1(4),=C'TEMP' MOVE IN TEMP 02891000
HRC011DK: BE CYLINDER YES,BRANCH 02892000
HRC011DK: CLI 0(R6),X'01' IS BYTE 01? 02893000
HRC011DK: MVC MAP+1(4),=C'PERM' MOVE IN PERM 02894000
HRC011DK: BE CYLINDER YES,BRANCH 02895000
HRC011DK: CLI 0(R6),X'02' IS BTYE 02? 02896000
HRC011DK: MVC MAP+1(4),=C'TDSK' MOVE IN TDSK 02897000
HRC011DK: BE CYLINDER YES,BRANCH 02898000
HRC011DK: MVC MAP+1(4),=C'BAD ' SET UP FOR BAD ENTRY 02899000
HRC011DK: DIRECT EQU * 02900000
HRC011DK: TM 0(R6),DRCTINV CYL INVALID FOR DRCT? 02901000
HRC011DK: LA R7,1(,R7) BUMP CYLINDER COUNT 02902000
HRC011DK: LA R6,1(,R6) TABLE ADDR ALSO 02903000
HRC011DK: BNZ CONT YES, CONTINUE 02904000
HRC011DK: MVC MAP+1(4),=C'DRCT' MOVE IN DRCT 02905000
HRC011DK: SPACE , 02906000
HRC011DK: CLI 0(R6),DRCTFREE THIS FREE DRCT CYL? 02907000
HRC011DK: BE DIRECT YES, COUNT IT 02908000
HRC011DK: CLI 0(R6),DRCTDIR CYL IN USE BY DMKDIR? 02909000
HRC011DK: BE DIRECT YES, COUNT IT 02910000
HRC011DK: SPACE , 02911000
HRC011DK: B CONT NO, BRANCH 02912000
HRC011DK: SPACE , 02913000
HRC011DK: *---------------------------------------------------------------------- 02914000
HRC011DK: * CHECK TYPE, CYLINDER BY CYLINDER AND WRITE TO CONSOLE 02915000
HRC011DK: *---------------------------------------------------------------------- 02916000
HRC011DK: SPACE , 02917000
HRC011DK: CYLINDER CLC 0(1,R6),1(R6) NEXT CYLINDER THE SAME? 02918000
HRC011DK: LA R7,1(R7) BUMP CYL COUNT BY 1 02919000
HRC011DK: LA R6,1(R6) BUMP BYTE TABLE ADDRESS BY 1 02920000
HRC011DK: BE CYLINDER IF SAME CYL LOOK AT NEXT BYTE 02921000
HRC011DK: CONT LR R10,R6 PUT BYTE LOCATION INTO R10 02922000
HRC011DK: SR R10,R3 PRESENT MINUS STRT ADDR 02923000
HRC011DK: SR R10,R7 GET START CYLINDER 02924000
HRC011DK: CVD R10,FIELDA CONVERT START TO DECIMAL 02925000
HRC011DK: AR R10,R7 GET END ADDRESS 02926000
HRC011DK: BCTR R10,0 REDUCE BY 1 02927000
HRC011DK: CVD R10,FIELDB CONVERT END TO DECIMAL 02928000
HRC011DK: OI FIELDA+7,X'0F' PLUG IN SIGN 02929000
HRC011DK: OI FIELDB+7,X'0F' PLUG IN SIGN 02930000
HRC011DK: UNPK MAP+1+NAMCHARS+BLANK(CYLNUM),FIELDA+5(3) 02931000
HRC011DK: * UNPACK TO MAKE IT PRINTABLE 02932000
HRC011DK: UNPK MAP+1+NAMCHARS+BLANK+CYLNUM+BLANK(CYLNUM),FIELDB+5(3) 02933000
HRC011DK: * UNPACK TO MAKE IT PRINTABLE 02934000
HRC011DK: LA R4,MAP SET UP PRINT MAP 02935000
HRC011DK: BAL R14,WMSG2 WRITE MESSAGE 02936000
HRC011DK: SR R7,R7 CLEAR R7 02937000
HRC011DK: CR R6,R2 IS R6 AT HIVALUE 02938000
HRC011DK: BNH REENTER NO- BRANCH 02939000
HRC011DK: SPACE , 02940000
HRC011DK: *---------------------------------------------------------------------- 02941000
HRC011DK: * ISSUE MESSAGE 'DEVICE XXX VOLUME XXXXXX ALLOCATION ENDED'. 02942000
HRC011DK: * GO BACK UP TO GETCARD TO FETCH A NEW FUNCTION. 02943000
HRC011DK: *---------------------------------------------------------------------- 02944000
HRC011DK: SPACE , 02945000
HRC011DK: APRTDON EQU * 02946000
HRC011DK: LA R4,ALLEND SET UP TO ALLOCATION END 02947000
HRC011DK: BAL R14,WMSG WRITE MESSAGE 02948000
HRC011DK: MVI ALLOSW,X'00' TURN OFF ALLOCATE SWITCH 02949000
HRC011DK: B GETCARD YES,BRANCH 02950000
HRC011DK: SPACE , 02951000
HRC011DK: *---------------------------------------------------------------------- 02952000
HRC011DK: * MISCELLANEOUS EXECUTED INSTRUCTIONS. 02953000
HRC011DK: *---------------------------------------------------------------------- 02954000
HRC011DK: SPACE , 02955000
HRC011DK: TSTFRMT CLC COMWOK(*-*),=CL8'FORMAT' 02956000
HRC011DK: TSTALLOC CLC COMWOK(*-*),=CL8'ALLOCATE' 02957000
HRC011DK: TSTLABL CLC COMWOK(*-*),=CL8'LABEL ' 02958000
HRC011DK: MVCCOMW MVC COMWOK(*-*),INDATA 02959000
HRC011DK: *.3******************************************************************** 02960000
HRC011DK: * 02961000
HRC011DK: * OPERATION - 02962000
HRC011DK: * 02963000
HRC011DK: * DD. HANDLE DASD I/O INTERRUPTS 02964000
HRC011DK: * 02965000
HRC011DK: * 1. IF THE INTERRUPT IS FROM THE DEVICE WE STARTED, THEN HANDLE 02966000
HRC011DK: * THE CSW STATUS. FOR A UNIT CHECK, GO TO STEP 4. 02967000
HRC011DK: * 2. WE HAD A CLEAN CE+DE STATUS. IF ALTERNATE TRACK RECOVERY 02968000
HRC011DK: * IS IN PROGRESS, THEN GO TO THE ALTCHK SUBROUTINE. 02969000
HRC011DK: * 3. RESUME FORMATTING IN THE MAIN LOGIC AT EITHER OP Q. 02970000
HRC011DK: * 4. UNIT CHECK RECOVERY - ISSUE SENSE AND EVALUATE SENSE BYTES. 02971000
HRC011DK: * 5. CHECK FOR AND HANDLE AN IMPRECISE ENDING CONDITION. IF 02972000
HRC011DK: * NOT A REPEAT ERROR, THEN GO RESTART THE DEVICE AT OP U. 02973000
HRC011DK: * 6. INCREMENT REPEAT ERROR COUNT. FOR CKD, RETRY FIRST OR 02974000
HRC011DK: * SECOND TIME THROUGH. ELSE, GO TO STEP 16. 02975000
HRC011DK: * 7. IF CCW FAILED 10 TIMES, CONTINUE. IF LESS THAN 10, GO 02976000
HRC011DK: * RESTART AT OP U. 02977000
HRC011DK: * 8. HANDLE FAILING CKD CCW. AFTER PRINTING THE SENSE MESSAGE, 02978000
HRC011DK: * POINT TO THE FAILING CCW AND HANDLE SPECIFIC CCW TYPE. 02979000
HRC011DK: * 9. FOR A READ OR SEARCH ID EQUAL CCW, GO TO OP FF TO TRY TO 02980000
HRC011DK: * REBUILD THE STRING. 02981000
HRC011DK: * 10. IF POSSIBLE, SEARCH FOR ANOTHER SEEK IN THE CHAIN. IF ONE 02982000
HRC011DK: * FOUND, GO TO STEP 14. IF NOT, ISSUE ERROR. 02983000
HRC011DK: * 11. FOR CKD, RESTART THE STRING BY TIC'ING TO THIS SEEK AND GO 02984000
HRC011DK: * TO OP U. 02985000
HRC011DK: * 12. HANDLE CONSOLE INTERRUPT FOUND BY THIS ROUTINE. 02986000
HRC011DK: * 13. PERFORM A RECALIBRATION ON THE FAILING DEVICE. 02987000
HRC011DK: * 14. FOR SECOND ERROR ON CKD CCW STRING, RETRY CCWS. 02988000
HRC011DK: * 02989000
HRC011DK: * LOCAL REGISTER USAGE - 02990000
HRC011DK: * 02991000
HRC011DK: * R3 - WORK 02992000
HRC011DK: * R4 - WORK/INTERRUPTING DEVICE ADDRESS 02993000
HRC011DK: * R5 - DEVICE STARTED 02994000
HRC011DK: * R6 - WORK 02995000
HRC011DK: * R7 - LINKAGE 02996000
HRC011DK: * R9 - CHANNEL PROGRAM ADDRESS 02997000
HRC011DK: * R14 - WORK 02998000
HRC011DK: * 02999000
HRC011DK: *.$******************************************************************** 03000000
HRC011DK: SPACE , 03001000
HRC011DK: *---------------------------------------------------------------------- 03002000
HRC011DK: * IF THE INTERRUPT IS NOT FROM THE DEVICE WE STARTED, THEN 03003000
HRC011DK: * LEAVE IN A WAIT STATE. ELSE, HANDLE CSW STATUS. FOR UNIT 03004000
HRC011DK: * CHECK, TRY TO RECOVER AT ERRECOV. FOR CE+DE, CONTINUE AT 03005000
HRC011DK: * CLEANEND. 03006000
HRC011DK: *---------------------------------------------------------------------- 03007000
HRC011DK: SPACE , 03008000
HRC011DK: IOINT LH R4,IOOPSW+2 GET DEVICE ADDRESS 03009000
HRC011DK: CH R4,CONSOL WAS IT CONSOLE DEVICE? 03010000
HRC011DK: BE ATNTST YES,CHECK FOR ATTENTION 03011000
HRC011DK: CH R5,IOOPSW+2 WAS IT DEVICE STARTED? 03012000
HRC011DK: BNE XWAIT NO,WAIT FOR CORRECT ONE 03013000
HRC011DK: TM CSW+5,X'BF' ANYTHING BUT INCORRECT LENGTH? 03014000
HRC011DK: BM FATAL IF MIXED ERRORS,GO FATAL 03015000
HRC011DK: TM CSW+4,UC UNIT CHECK? 03016000
HRC011DK: BO ERRECOV YES,GO TO ERROR RECOVERY 03017000
HRC011DK: CLI CSW+4,CE+DE WAS IT CHANNEL END OR DEVICE END 03018000
HRC011DK: BE CLEANEND YES, CHECK FOR ALTERNATE TRACK 03019000
HRC011DK: CLI CSW+4,CUE+CE+DE DID CUE SNEAK IN TOO? 03020000
HRC011DK: BNE FATAL NOT UC & NOT CLEAN END. 03021000
HRC011DK: SPACE , 03022000
HRC011DK: *---------------------------------------------------------------------- 03023000
HRC011DK: * THE INTERRUPT WAS A CLEAN CE+DE: 03024000
HRC011DK: * IF ALTERNATE TRACK RECOVERY IS IN PROGRESS, THEN GO TO EITHER 03025000
HRC011DK: * ALTCHK2 OR ALTCHK3. 03026000
HRC011DK: *---------------------------------------------------------------------- 03027000
HRC011DK: SPACE , 03028000
HRC011DK: CLEANEND XC ERCOUNT,ERCOUNT RESET. THIS SUCCESSFUL CMPLETN 03029000
HRC011DK: * COULD BE THE END OF AN ERROR RETRY. 03030000
HRC011DK: XC TOTCNT,TOTCNT CLEAR THE TOTAL ERROR COUNT 03031000
HRC011DK: TM ALTFLAG,HAR0READ ALTERNATE TRACK RECOVERY IN 03032000
HRC011DK: * PROGRESS? 03033000
HRC011DK: BZ RESUMP NO, CONTINUE WITH MAIN LOGIC. 03034000
HRC011DK: L R6,CONTINAD ADDR OF CODE WHERE ALT TRACK 03035000
HRC011DK: * RECOVERY PROCESSING IS TO CONTINUE. 03036000
HRC011DK: BR R6 03037000
HRC011DK: SPACE , 03038000
HRC011DK: *---------------------------------------------------------------------- 03039000
HRC011DK: * UNIT CHECK RECOVERY. ISSUE SENSE AND EVALUATE SENSE BYTES. 03040000
HRC011DK: * FOR A TRACK CONDITION CHECK, GO TO ALTTRACK TO SWITCH TRACK 03041000
HRC011DK: * TO ALTERNATE FOR 3340/3344. 03042000
HRC011DK: *---------------------------------------------------------------------- 03043000
HRC011DK: SPACE , 03044000
HRC011DK: ERRECOV BAL R7,SENSIT READ SENSE DATA, THEN RESTORE 03045000
HRC011DK: * CSW, CAW, IOOPSW. 03046000
HRC011DK: L R4,TOTCNT GET TOTAL COUNT OF ERRORS ON SIO 03047000
HRC011DK: LA R4,1(R4) INCREMENT BY 1 03048000
HRC011DK: ST R4,TOTCNT SAVE THE COUNT 03049000
HRC011DK: C R4,TOTLIMIT TOO MANY SIO'S 03050000
HRC011DK: BH PRTMSG YES, JUST TERMINATE WITH MESSAGE 03051000
HRC011DK: TM SENSEB0,X'02' TRACK CONDITION CHECK? 03052000
HRC011DK: BNO NOSWTCH NO, TRACK NOT FLAGGED. 03053000
HRC011DK: CLI TYPE,TYP334X DEVICE IS 3340/3344? 03054000
HRC011DK: BE ALTTRACK YES. GO SWITCH TRACKS. 03055000
HRC011DK: SPACE , 03056000
HRC011DK: *---------------------------------------------------------------------- 03057000
HRC011DK: * GO RESTART THE DEVICE AT STIO. 03058000
HRC011DK: *---------------------------------------------------------------------- 03059000
HRC011DK: SPACE , 03060000
HRC011DK: NOSWTCH DS 0H 03061000
HRC011DK: CLC CSW(L8),SAVEDCSW SAME ERROR (AT SAME CCW) AS 03062000
HRC011DK: * BEFORE? 03063000
HRC011DK: MVC SAVEDCSW(L8),CSW SAVE FOR COMPARE NEXT TIME. 03064000
HRC011DK: BE COUNT IF SAME ERROR,BRANCH 03065000
HRC011DK: XC ERCOUNT(4),ERCOUNT CLEAR ERROR COUNT 03066000
HRC011DK: B STIO START DEVICE 03067000
HRC011DK: *---------------------------------------------------------------------- 03068000
HRC011DK: * INCREMENT REPEAT ERROR COUNT. FOR A NORMAL CKD, EITHER GO TO 03069000
HRC011DK: * RECAL TO RECALIBRATE THE DEVICE OR GO RETRY THE CCWS IF THIS 03070000
HRC011DK: * IS FIRST OR SECOND TIME THROUGH. 03071000
HRC011DK: *---------------------------------------------------------------------- 03072000
HRC011DK: SPACE , 03073000
HRC011DK: COUNT L R4,ERCOUNT PUT ERROR COUNT INTO R4 03074000
HRC011DK: LA R4,1(4) UP ERROR COUNT BY 1 03075000
HRC011DK: ST R4,ERCOUNT SAVE ERROR COUNT 03076000
HRC011DK: C R4,=F'1' IS IT FIRST ERROR? 03077000
HRC011DK: BE RECAL YES,RECALIBRATE DEVICE 03078000
HRC011DK: C R4,=F'2' IS IT SECOND ERROR 03079000
HRC011DK: BE RESET YES,RETRY CCWS 03080000
HRC011DK: SPACE , 03081000
HRC011DK: *---------------------------------------------------------------------- 03082000
HRC011DK: * IF THE CCW FAILED 10 TIMES, CONTINUE HANDLING POSSIBLE FATAL 03083000
HRC011DK: * ERROR CONDITION. IF LESS THAN 10, GO RESTART DEVICE. 03084000
HRC011DK: *---------------------------------------------------------------------- 03085000
HRC011DK: SPACE , 03086000
HRC011DK: RSTRTN C R4,ERLIMIT IS ERROR LIMIT OF 9 REACHED? 03087000
HRC011DK: BL STIO IF NO, TRY AGAIN 03088000
HRC011DK: XC ERCOUNT,ERCOUNT IF YES,CLEAR ERROR COUNT 03089000
HRC011DK: XC TOTCNT,TOTCNT CLEAR TOTAL ERROR COUNT 03090000
HRC011DK: XC SAVEDCSW(8),SAVEDCSW CLEAR SAVED CSW 03091000
HRC011DK: SPACE , 03092000
HRC011DK: *---------------------------------------------------------------------- 03093000
HRC011DK: * HANDLE FAILING CKD CCW. LOCATE THE SEEK CCW AND ADDR OF THE 03094000
HRC011DK: * DATA AREA FROM THE NON-SEEK CCW ALSO. PICK UP THE CCHHR INFO 03095000
HRC011DK: * TO PUT IN THE ERROR MESSAGE. AFTER PRINTING SENSE AND CCHH 03096000
HRC011DK: * MESSAGE, POINT TO THE FAILING CCW AND HANDLE SPECIFIC CCW 03097000
HRC011DK: * TYPE ACCORDINGLY. 03098000
HRC011DK: *---------------------------------------------------------------------- 03099000
HRC011DK: SPACE , 03100000
HRC011DK: FINDCCW EQU * 03101000
HRC011DK: L R4,CSW PUT NEXT CCW ADDRESS INTO R4 03102000
HRC011DK: SUB S R4,=F'8' GET PREVIOUS CCW ADDRESS 03103000
HRC011DK: SUB2 CLI 0(4),X'07' IS IT A SEEK? 03104000
HRC011DK: BE SUB3 NO,GET PREVIOUS CCW 03105000
HRC011DK: CLI 0(R4),LOCREC THIS A LOC REC CCW? 03106000
HRC011DK: BNE SUB NO,CONTINUE TO SEARCH 03107000
HRC011DK: L R4,0(,R4) GET 1ST HALF OF CCW 03108000
HRC011DK: LA R4,0(,R4) CLEAR OP CODE 03109000
HRC011DK: MVC CCHHR(L5),D8(R4) PICK UP CCHHR INFO 03110000
HRC011DK: B PRTMSG GO PRINT MESSAGE 03111000
HRC011DK: SUB3 DS 0H 03112000
HRC011DK: L R4,0(R4) ADDRESS OF CCW DATA AREA IN R4 03113000
HRC011DK: LA R4,0(R4) CLEARS COMMAND CODE FROM R4 03114000
HRC011DK: MVC CCHHR(5),2(R4) SAVE THE CCHHR THAT FAILED 03115000
HRC011DK: PRTMSG DS 0H 03116000
HRC011DK: BAL R7,SENSIT2 PRINT SENSE AND CCHH MESSAGE 03117000
HRC011DK: TM SENSEB0,CMDREJ COMMAND REJECT? 03118000
HRC011DK: BO FATAL YES, NO SENSE IN RECOVERY TRY 03119000
HRC011DK: L R4,CSW PUT NEXT CCW ADDRESS INTO R4 03120000
HRC011DK: S R4,=F'8' R4 NOW POINTS TO FAILING CCW 03121000
HRC011DK: SPACE , 03122000
HRC011DK: *---------------------------------------------------------------------- 03123000
HRC011DK: * FOR A READ OR SEARCH ID EQUAL CCW, GO TO 'READER06' OR 03124000
HRC011DK: * 'READER31' TO TRY TO REBUILD THE STRING AND THEN RESTART THE 03125000
HRC011DK: * DEVICE. 03126000
HRC011DK: *---------------------------------------------------------------------- 03127000
HRC011DK: SPACE , 03128000
HRC011DK: CLI 0(R4),SEEK SEEK (07) CCW? 03129000
HRC011DK: BE FATAL YES, PRINT FATAL MESSAGE 03130000
HRC011DK: CLI 0(R4),STSCTR SET SECTOR (23) CCW? 03131000
HRC011DK: BE FATAL YES, PRINT FATAL MESSAGE 03132000
HRC011DK: CLI 0(R4),WCKD WRITE COUNT-KEY-DATA (1D) CCW? 03133000
HRC011DK: BE FATAL YES, PRINT FATAL MESSAGE 03134000
HRC011DK: CLI 0(R4),WHADDR WRITE HOME ADDRESS (19) CCW? 03135000
HRC011DK: BE FATAL YES, PRINT FATAL MESSAGE 03136000
HRC011DK: CLI 0(R4),WTREC0 WRITE RECORD 0 (15) CCW? 03137000
HRC011DK: BE FATAL YES, PRINT FATAL MESSAGE 03138000
HRC011DK: CLI 0(R4),WRTD WRITE DATA (05) CCW? 03139000
HRC011DK: BE FATAL YES, PRINT FATAL MESSAGE 03140000
HRC011DK: CLI 0(R4),SFM SET FILE MASK (1F) CCW? 03141000
HRC011DK: BE FATAL YES, PRINT FATAL MESSAGE 03142000
HRC011DK: CLI 0(R4),RHADDR READ HOME ADDRESS (1A) CCW? 03143000
HRC011DK: BE FATAL YES, PRINT FATAL MESSAGE 03144000
HRC011DK: CLI 0(R4),RDREC0 READ RECORD 0 (16) CCW? 03145000
HRC011DK: BE FATAL YES, FAILED TO WRITE CYL 0 03146000
HRC011DK: CLI 0(R4),RCKD READ COUNT-KEY-DATA (1E) CCW? 03147000
HRC011DK: BE FATAL YES, PRINT FATAL MESSAGE 03148000
HRC011DK: CLI 0(R4),DEFEXT DEFINE EXTENT (63) CCW? 03149000
HRC011DK: BE FATAL YES, PRINT FATAL MESSAGE 03150000
HRC011DK: CLI 0(R4),READ READ (06) CCW? 03151000
HRC011DK: BE READER06 YES, GO REBUILD THE STRING 03152000
HRC011DK: CLI 0(R4),SIEQ SEARCH ID EQUAL (31) CCW? 03153000
HRC011DK: BE READER31 YES, GO REBUILD THE STRING 03154000
HRC011DK: SPACE , 03155000
HRC011DK: *---------------------------------------------------------------------- 03156000
HRC011DK: * IF THE FAILING CCW WAS SOMETHING OTHER THAN ABOVE, THEN POINT 03157000
HRC011DK: * TO NEXT CCW. AS LONG AS COMMAND CHAINING IS ON, KEEP 03158000
HRC011DK: * SEARCHING FOR A SEEK CCW DOWN THE CHAIN. WHEN FOUND GO TO 03159000
HRC011DK: * 'FOUND'. 03160000
HRC011DK: *---------------------------------------------------------------------- 03161000
HRC011DK: SPACE , 03162000
HRC011DK: CCWSRCH1 TM 4(R4),CC COMMAND CHAINING ?? 03163000
HRC011DK: BZ FATAL NO, FATAL ERROR 03164000
HRC011DK: CCWSRCH LA R4,8(R4) R4 POINTS TO NEXT CCW 03165000
HRC011DK: CLI 0(R4),8 IS THIS A TIC CCW ? 03166000
HRC011DK: BE CCWTIC YES, GO PROCESS 03167000
HRC011DK: CLI 0(4),X'07' WAS IT SEEK? 03168000
HRC011DK: BE FOUND YES,GO FOUND 03169000
HRC011DK: B CCWSRCH1 NO, TRY AGAIN 03170000
HRC011DK: CCWTIC CLM (R4),B'0111',1(R4) TIC BACK OR FORWARD ? 03171000
HRC011DK: BNH CCWSRCH BRANCH IF FORWARD 03172000
HRC011DK: L R4,0(,R4) GET TIC TO ADDRESS 03173000
HRC011DK: LA R4,0(,R4) CLEAR COMMAND CODE 03174000
HRC011DK: B CCWSRCH1 KEEP LOOKING FOR 07 03175000
HRC011DK: *---------------------------------------------------------------------- 03176000
HRC011DK: * THE NEXT SEEK IN THE STRING WAS FOUND FOLLOWING THE FAILING 03177000
HRC011DK: * CCW. RESTART THE STRING BY TIC'ING TO THIS SEEK. RESUMCCW 03178000
HRC011DK: * IS USED HERE ONLY TO PICK UP THE BROKEN CCW STRING. 03179000
HRC011DK: *---------------------------------------------------------------------- 03180000
HRC011DK: SPACE , 03181000
HRC011DK: FOUND ST R4,RESUMCCW+8 ADDRESS OF SEEK CCW INTO TIC 03182000
HRC011DK: MVI RESUMCCW+8,X'08' RESTORE TO TIC COMMAND 03183000
HRC011DK: LA R9,RESUMCCW CCW ADDRESS INTO R9 03184000
HRC011DK: ST R9,CAW CCW ADDRESS INTO CAW 03185000
HRC011DK: LH R5,DSKADD DEVICE INTO R5 03186000
HRC011DK: B STIO START DEVICE 03187000
HRC011DK: SPACE , 03188000
HRC011DK: *---------------------------------------------------------------------- 03189000
HRC011DK: * CONSOLE INTERRUPT FOUND BY DASD I/O INTERRUPT ROUTINE. 03190000
HRC011DK: *---------------------------------------------------------------------- 03191000
HRC011DK: SPACE , 03192000
HRC011DK: ATNTST TM 68,X'80' WAS IT ATTENTION? 03193000
HRC011DK: BCR 8,R14 NO,MUST BE FOR CONSOLE WRITE 03194000
HRC011DK: B STMSG START OVER 03195000
HRC011DK: SPACE , 03196000
HRC011DK: *---------------------------------------------------------------------- 03197000
HRC011DK: * PERFORM A RECALIBRATE ON THE FAILING DEVICE, THEN TIC TO THE 03198000
HRC011DK: * NORMAL 2314 CCW CHAIN. 03199000
HRC011DK: *---------------------------------------------------------------------- 03200000
HRC011DK: SPACE , 03201000
HRC011DK: RECAL EQU * HERE TO SET UP FOR RECALIBRATE 03202000
HRC011DK: LA R9,CALIBRAT ADDRESS OF RECAL. CCW 03203000
HRC011DK: C R9,CAW CAW ALREADY POINTING TO IT ?? 03204000
HRC011DK: BE RECAL1 YES, PREVENT TIC TO RECAL LOOP 03205000
HRC011DK: MVC CALIBRAT+9(3),CAW+1 CAUSE TIC TO FORMAT CCWS 03206000
HRC011DK: RECAL1 EQU * BR HERE MEANS TIC ALREADY SET 03207000
HRC011DK: ST R9,CAW CAW POINTS TO CALIBRATE CCWS 03208000
HRC011DK: LH R5,DSKADD DEVICE ADDRESS INTO R5 03209000
HRC011DK: B STIO START DEVICE 03210000
HRC011DK: SPACE , 03211000
HRC011DK: *---------------------------------------------------------------------- 03212000
HRC011DK: * SECOND ERROR - RESET TO NORMAL 2314 CCW CHAIN. 03213000
HRC011DK: *---------------------------------------------------------------------- 03214000
HRC011DK: SPACE , 03215000
HRC011DK: RESET MVC CAW+1(3),CALIBRAT+9 CAW POINTS TO NORMAL 2314 CCWS 03216000
HRC011DK: B RSTRTN GO CHECK ERROR COUNT 03217000
HRC011DK: *.3******************************************************************** 03218000
HRC011DK: * 03219000
HRC011DK: * OPERATION - 03220000
HRC011DK: * 03221000
HRC011DK: * EE. HANDLE TRACK CONDITION CHECK 03222000
HRC011DK: * 03223000
HRC011DK: * COME HERE FROM OP DD AFTER DASD INTERRUPT, DURING ERROR 03224000
HRC011DK: * RECOVERY FROM UNIT CHECK, FOR A TRACK CONDITION CHECK ON A 03225000
HRC011DK: * 3340/3344. RESTART WITH A SEEK TO THE ALTERNATE OR RESTART 03226000
HRC011DK: * WITH A SEEK BACK TO THE DEFECTIVE TRACK + 1. 03227000
HRC011DK: * 03228000
HRC011DK: * 1. SAVE THE ADDRESS OF THE FAILING CCW. 03229000
HRC011DK: * 2. CALL ALTCHK TO DETERMINE WHETHER THE FLAGGED TRACK HAS AN 03230000
HRC011DK: * ALTERNATE TRACK. IF NOT, GO TO STEP 4. 03231000
HRC011DK: * 3. RESTART THE BROKEN CCW CHAIN USING THE ALTERNATE TRACK. 03232000
HRC011DK: * 4. ISSUE MESSAGE THAT THE FLAGGED PRIMARY TRACK DOES NOT HAVE 03233000
HRC011DK: * AN ALTERNATE. 03234000
HRC011DK: * 03235000
HRC011DK: * LOCAL REGISTER USAGE - 03236000
HRC011DK: * 03237000
HRC011DK: * R0 - ALTCHK PARAMETER 03238000
HRC011DK: * R1 - WORK 03239000
HRC011DK: * R4 - MESSAGE ADDRESS 03240000
HRC011DK: * R7 - LINKAGE 03241000
HRC011DK: * R14 - LINKAGE 03242000
HRC011DK: * 03243000
HRC011DK: *.$******************************************************************** 03244000
HRC011DK: SPACE , 03245000
HRC011DK: ALTTRACK L R1,CSW GET FAILED CCW + 8. 03246000
HRC011DK: SH R1,=H'8' POINT TO FAILING CCW. 03247000
HRC011DK: STCM R1,B'0111',ALTTIC+1 SAVE ITS ADDR IN TIC FOR 03248000
HRC011DK: * RESTART LATER 03249000
HRC011DK: SPACE , 03250000
HRC011DK: *---------------------------------------------------------------------- 03251000
HRC011DK: * ALTCHK ROUTINE DETERMINES WHETHER OR NOT FLAGGED TRACK POINTS 03252000
HRC011DK: * TO AN ALTERNATE WITH ALTERNATE POINTING BACK. IF POINTERS ARE 03253000
HRC011DK: * BAD, THEN R1 = -1 IS RETURNED. IF POINTERS ARE GOOD, THEN 03254000
HRC011DK: * R1 = CCHH IS RETURNED, WITH CCHH BEING THE SEEK ADDRESS OF THE 03255000
HRC011DK: * OTHER TRACK (NOT THE ONE THAT GAVE THE TRACK CONDITION CHECK, 03256000
HRC011DK: * BUT THE ONE THAT THAT ONE POINTS TO). R0 = 0 IF CCHH IN R1 03257000
HRC011DK: * IS THE ASSIGNED ALTERNATE TRACK OR R0 = 1 IF CCHH IN R1 IS THE 03258000
HRC011DK: * PRIMARY TRACK. 03259000
HRC011DK: * 03260000
HRC011DK: * IF CCHH IN R1 IS PRIMARY, THEN ADD R0 TO IT TO CAUSE SEEK 03261000
HRC011DK: * BACK TO PRIMARY + 1. (NOTE: DUE TO NATURE OF CHANNEL 03262000
HRC011DK: * PROGRAMS USED TO FORMAT, THIS WILL NEVER GO BEYOND LAST TRACK 03263000
HRC011DK: * IN CYLINDER. IF LAST TRACK IS FLAGGED, THAT IS WHERE CHANNEL 03264000
HRC011DK: * PROGRAM ENDS ANYWAY, THERE IS NO SUBSEQUENT SEEK OFF OF 03265000
HRC011DK: * ALTERNATE TO CAUSE TRACK CONDITION CHECK FROM THERE.) 03266000
HRC011DK: *---------------------------------------------------------------------- 03267000
HRC011DK: SPACE , 03268000
HRC011DK: BAL R7,ALTCHK CHECK FOR ALTERNATE TRACK 03269000
HRC011DK: LTR R1,R1 DOES FLAGGED TRK HAVE ALTERNATE? 03270000
HRC011DK: BM ALTBAD NO. FATAL ERROR. ISSUE MSGS. 03271000
HRC011DK: AR R1,R0 SEEK BACK TO PRIMARY + 1. 03272000
HRC011DK: STCM R1,15,ALTSKADD+2 STORE FOR SEEK CCW. 03273000
HRC011DK: SPACE , 03274000
HRC011DK: *---------------------------------------------------------------------- 03275000
HRC011DK: * RESTART BROKEN CCW CHAIN 03276000
HRC011DK: *---------------------------------------------------------------------- 03277000
HRC011DK: SPACE , 03278000
HRC011DK: LA R1,ALTSEEK RESTART CCWS APPENDED TO FAILED 03279000
HRC011DK: * CCW. 03280000
HRC011DK: ST R1,CAW SET FOR SIO. 03281000
HRC011DK: B STIO RESTART THE CHANNEL PROGRAM. 03282000
HRC011DK: SPACE , 03283000
HRC011DK: *---------------------------------------------------------------------- 03284000
HRC011DK: * ISSUE MESSAGE 'FLAGGED PRIMARY TRACK HAS NO ALTERNATE 03285000
HRC011DK: * ASSIGNED, IO ERROR FOLLOWS'. THEN ISSUE MESSAGE GIVING CCHH 03286000
HRC011DK: * OF BAD TRACK. 03287000
HRC011DK: *---------------------------------------------------------------------- 03288000
HRC011DK: SPACE , 03289000
HRC011DK: ALTBAD LA R4,MSGATRK MSG SAYS FLAGGED TRACK HAS NO 03290000
HRC011DK: * ALTERNATE ASSIGNED. 03291000
HRC011DK: BAL R14,WMSG 03292000
HRC011DK: BAL R7,SENSIT2 PRT MSG GIVING CCHH OF BAD TRACK. 03293000
HRC011DK: B FATAL GIVE FATAL MSG, THEN RESTART. 03294000
HRC011DK: *.3******************************************************************** 03295000
HRC011DK: * 03296000
HRC011DK: * OPERATION - 03297000
HRC011DK: * 03298000
HRC011DK: * FF. HANDLE READ OR SEARCH ID FAILURE 03299000
HRC011DK: * 03300000
HRC011DK: * 1. IF THIS IS FOR A FILLER RECORD, THEN GO TO STEP 4. IF THIS 03301000
HRC011DK: * IS FOR RECORD 0, FATAL ERROR. IF NOT FOR CYLINDER BYTE MAP 03302000
HRC011DK: * GO TO STEP 3. 03303000
HRC011DK: * 2. HANDLE CYLINDER BYTE MAP. 03304000
HRC011DK: * 3. INCREMENT THE PAGE ERROR COUNT. 03305000
HRC011DK: * 4. POINT TO NEXT SEARCH ID AND THEN BACK UP TO THE SEEK. 03306000
HRC011DK: * 5. BUILD THE SEEK CCW FOR THE RETRY STRING AND THEN GO RESTART 03307000
HRC011DK: * I/O TO THE DEVICE. 03308000
HRC011DK: * 03309000
HRC011DK: * LOCAL REGISTER USAGE - 03310000
HRC011DK: * 03311000
HRC011DK: * R3 - RECORD NUMBER 03312000
HRC011DK: * R4 - CCW ADDRESS 03313000
HRC011DK: * R5 - DATA ADDRESS 03314000
HRC011DK: * R7 - WORK 03315000
HRC011DK: * R9 - RETRY CHANNEL PROGRAM ADDRESS 03316000
HRC011DK: * 03317000
HRC011DK: *.$******************************************************************** 03318000
HRC011DK: SPACE , 03319000
HRC011DK: READER06 S R4,=F'16' R4 POINTS TO SEARCH ID CCW 03320000
HRC011DK: READER31 L R5,0(R4) R5 CONTAINS DATA ADDRESS 03321000
HRC011DK: SR R3,R3 CLEAR R3 03322000
HRC011DK: ICM R3,1,4(R5) PUT REC NUMBER INTO R3 03323000
HRC011DK: BM READTRY BRANCH IF FILLER RECORD 03324000
HRC011DK: BZ FATAL BRANCH IF RECORD ZERO 03325000
HRC011DK: CLC SEEKA+2(2),=X'0000' IS IT CYLINDER 0 03326000
HRC011DK: BNE PAGECT NO, BYPASS CYLINDER BIT MAP 03327000
HRC011DK: CLM R3,1,RECN4 IS PAGE COUNT GREATER THAN 4 03328000
HRC011DK: BH PAGECT YES, BYPASS CYLINDER BIT MAP 03329000
HRC011DK: BCTR R3,0 DECREASE RECORD NUMBER BY 1 03330000
HRC011DK: STC R3,SHIFT+3 CAUSE SHIFT OF VALUE IN R3 03331000
HRC011DK: L R7,SHIFTMSK PUT 80 00 00 00 INTO R7 03332000
HRC011DK: SHIFT SRL R7,0 SHIFT RIGHT BY VALUE IN R3 03333000
HRC011DK: O R7,R0STUF OR IN R0 CYLINDER BIT MAP 03334000
HRC011DK: ST R7,R0STUF PUT RESULT BACK 03335000
HRC011DK: PAGECT EQU * COUNT PAGE ERRORS 03336000
HRC011DK: L R3,PGCOUNT PUT PGCOUNT INTO R3 03337000
HRC011DK: LA R3,1(R3) UP PAGE COUNT BY 1 03338000
HRC011DK: ST R3,PGCOUNT SAVE UPDATED PGCOUNT 03339000
HRC011DK: SPACE , 03340000
HRC011DK: *---------------------------------------------------------------------- 03341000
HRC011DK: * USE TO RESTART CCW CHAIN AFTER ERROR 03342000
HRC011DK: *---------------------------------------------------------------------- 03343000
HRC011DK: SPACE , 03344000
HRC011DK: READTRY LA R4,24(R4) POINT TO NEXT SEARCH ID 03345000
HRC011DK: ST R4,PICKUP BUILD TIC TO NEXT SEARCH ID 03346000
HRC011DK: MVI PICKUP,X'08' PUT TIC COMMAND IN CCW 03347000
HRC011DK: CLI 0(R4),X'07' IS NEXT SEARCH ID REALLY A SEEK? 03348000
HRC011DK: BE SKFOUND YES,BRANCH 03349000
HRC011DK: SEEKSEEK S R4,=F'8' NO,BACK UP 1 CCW 03350000
HRC011DK: CLI 0(R4),X'07' IS IT A SEEK? 03351000
HRC011DK: BNE SEEKSEEK NO, BACK UP AGAIN 03352000
HRC011DK: SKFOUND MVC RDRTRY(8),0(R4) BUILD SEEK CCW 03353000
HRC011DK: LA R9,RDRTRY ADDRESS OF CCW INTO R9 03354000
HRC011DK: ST R9,CAW ADDRESS OF CCW INTO CAW 03355000
HRC011DK: LH R5,DSKADD DEVICE ADDRESS INTO R5 03356000
HRC011DK: B STIO GO TO START DEVICE 03357000
HRC011DK: *---------------------------------------------------------------------- 03358000
HRC011DK: * 03359000
HRC011DK: * 03360000
HRC011DK: * 03361000
HRC011DK: * 03362000
HRC011DK: * 03363000
HRC011DK: * 03364000
HRC011DK: * 03365000
HRC011DK: * 03366000
HRC011DK: * 03367000
HRC011DK: * 03368000
HRC011DK: * 03369000
HRC011DK: * 03370000
HRC011DK: * 03371000
HRC011DK: *********************************************************************** 03372000
HRC011DK: *********************************************************************** 03373000
HRC011DK: ********************** ************************** 03374000
HRC011DK: ********************** S U B R O U T I N E S ************************** 03375000
HRC011DK: ********************** ************************** 03376000
HRC011DK: *********************************************************************** 03377000
HRC011DK: *********************************************************************** 03378000
HRC011DK: * 03379000
HRC011DK: * 03380000
HRC011DK: * 03381000
HRC011DK: * 03382000
HRC011DK: * 03383000
HRC011DK: * 03384000
HRC011DK: * 03385000
HRC011DK: * 03386000
HRC011DK: * 03387000
HRC011DK: * 03388000
HRC011DK: * 03389000
HRC011DK: * 03390000
HRC011DK: * 03391000
HRC011DK: *---------------------------------------------------------------------- 03392000
HRC011DK: *.4******************************************************************** 03393000
HRC011DK: * 03394000
HRC011DK: * SUBROUTINE NAME - *----------------* 03395000
HRC011DK: * * LNGCALC * 03396000
HRC011DK: * *----------------* 03397000
HRC011DK: * 03398000
HRC011DK: * FUNCTION - 03399000
HRC011DK: * 03400000
HRC011DK: * CALCULATE LENGTH OF WORD IN FIELD "INDATA" AND STORE INTO 03401000
HRC011DK: * COMMON WORK AREA. 03402000
HRC011DK: * 03403000
HRC011DK: * INPUT REGISTERS - 03404000
HRC011DK: * 03405000
HRC011DK: * R14 - RETURN ADDRESS 03406000
HRC011DK: * 03407000
HRC011DK: * OUTPUT REGISTERS - 03408000
HRC011DK: * 03409000
HRC011DK: * R4 - LENGTH(WORD) - 1 03410000
HRC011DK: * 03411000
HRC011DK: * LOCAL REGISTER USAGE - 03412000
HRC011DK: * 03413000
HRC011DK: * R4 - LENGTH WORD-1 FOR EXECUTE 03414000
HRC011DK: * R14 - INDATA 03415000
HRC011DK: * 03416000
HRC011DK: * OPERATION - 03417000
HRC011DK: * 03418000
HRC011DK: * 1. SCAN FIELD UNTIL BLANK IS FOUND. RESIDUAL LENGTH WILL BE 03419000
HRC011DK: * IN R4. 03420000
HRC011DK: * 2. IF THE FIELD EXISTS, THEN SAVE IT INDATA FIELD IN THE 03421000
HRC011DK: * COMMON WORK AREA. 03422000
HRC011DK: * 3. SET THE CONDITION CODE AND RETURN TO CALLER. 03423000
HRC011DK: * CC SET TO 0 IF 0 < L'WORD <= 8 AND R4 = LENGTH-1. 03424000
HRC011DK: * ELSE CC ¬=0 AND R4 IS UNPREDICTABLE. 03425000
HRC011DK: * 03426000
HRC011DK: *.$******************************************************************** 03427000
HRC011DK: SPACE , 03428000
HRC011DK: DS 0F 03429000
HRC011DK: LNGCALC EQU * 03430000
HRC011DK: ST R14,REGSAV SAVE CALLERS RETURN ADDRESS 03431000
HRC011DK: OC INDATA(8),BLANKS8 SET TO UPPER CASE OR BLANKS 03432000
HRC011DK: OC INDATA+8(2),BLANKS8 ..... 03433000
HRC011DK: LA R14,INDATA SCAN FOR L'INPUT-DATA 03434000
HRC011DK: LA R4,9 MAX LENGTH +1 03435000
HRC011DK: SPACE , 03436000
HRC011DK: *---------------------------------------------------------------------- 03437000
HRC011DK: * SCAN LENGTH OF WORD (UNTIL BLANK IS FOUND). 03438000
HRC011DK: *---------------------------------------------------------------------- 03439000
HRC011DK: SPACE , 03440000
HRC011DK: SCNWRD CLI 0(R14),X'40' BLANK ? 03441000
HRC011DK: BE ENDSCN IF SO, END OF WORD 03442000
HRC011DK: LA R14,1(,R14) NEXT BYTE PLEASE ..... 03443000
HRC011DK: BCT R4,SCNWRD CONTINUE SCAN ..... 03444000
HRC011DK: B EXCC1 GT 8, EXIT CC ¬= 0 03445000
HRC011DK: SPACE , 03446000
HRC011DK: *---------------------------------------------------------------------- 03447000
HRC011DK: * IF LENGTH IS NON-ZERO, THEN STORE INDATA IN THE COMMON WORK. 03448000
HRC011DK: *---------------------------------------------------------------------- 03449000
HRC011DK: SPACE , 03450000
HRC011DK: ENDSCN LR R14,R4 SAVE RESIDUAL LENGTH 03451000
HRC011DK: LA R4,8 CALC LENGTH (-1) 03452000
HRC011DK: SR R4,R14 LENGTH (-1) 03453000
HRC011DK: BM EXCC1 BR IF NOTHING THERE 03454000
HRC011DK: EX R4,MVCCOMW MOVE TO WORK AREA 03455000
HRC011DK: SPACE , 03456000
HRC011DK: *---------------------------------------------------------------------- 03457000
HRC011DK: * SET CONDITION CODE AND RETURN. 03458000
HRC011DK: *---------------------------------------------------------------------- 03459000
HRC011DK: SPACE , 03460000
HRC011DK: TM *,X'00' SET CC = 0 03461000
HRC011DK: B LNGEXIT AND RETURN TO CALLER 03462000
HRC011DK: EXCC1 TM *,X'FF' SET CC ¬= 0 03463000
HRC011DK: LNGEXIT L R14,REGSAV RESTORE CALLERS REGS 03464000
HRC011DK: BR R14 AND RETURN ........... 03465000
HRC011DK: *.4******************************************************************** 03466000
HRC011DK: * 03467000
HRC011DK: * SUBROUTINE NAME - *----------------* 03468000
HRC011DK: * * WMSG * 03469000
HRC011DK: * * WMSG2 * 03470000
HRC011DK: * *----------------* 03471000
HRC011DK: * 03472000
HRC011DK: * FUNCTION - 03473000
HRC011DK: * 03474000
HRC011DK: * WRITE TO THE CONSOLE. 03475000
HRC011DK: * 03476000
HRC011DK: * INPUT REGISTERS - 03477000
HRC011DK: * 03478000
HRC011DK: * R4 - MESSAGE ADDRESS 03479000
HRC011DK: * R14 - RETURN ADDRESS 03480000
HRC011DK: * 03481000
HRC011DK: * OUTPUT REGISTERS - 03482000
HRC011DK: * 03483000
HRC011DK: * R10 - CONSOLE ADDRESS 03484000
HRC011DK: * 03485000
HRC011DK: * LOCAL REGISTER USAGE - 03486000
HRC011DK: * 03487000
HRC011DK: * R1 - WORK 03488000
HRC011DK: * R4 - COUNT AND DATA POINTER 03489000
HRC011DK: * R9 - LENGTH OF MESSAGE TO BE PRINTED 03490000
HRC011DK: * R10 - ADDRESS OF CONSOLE 03491000
HRC011DK: * 03492000
HRC011DK: * OPERATION - 03493000
HRC011DK: * 03494000
HRC011DK: * 1. IF CARD INPUT COMPARE AND MAKE SURE NOT BAD INPUT. 03495000
HRC011DK: * 2. LOAD ADDRESS OF CONSOLE AND STORE DATA LENGTH, DATA AREA, 03496000
HRC011DK: * AND PROPER WRITE COMMAND CODE IN WCCW. 03497000
HRC011DK: * 3. FOR GRAPHICS, SET UP PROPER CCWS. ISSUE SIO TO DISPLAY 03498000
HRC011DK: * MESSAGE. 03499000
HRC011DK: * 4. HANDLE SIO CONDITION CODE APPROPRIATELY. 03500000
HRC011DK: * 03501000
HRC011DK: *.$******************************************************************** 03502000
HRC011DK: SPACE , 03503000
HRC011DK: *---------------------------------------------------------------------- 03504000
HRC011DK: * FOR CARD INPUT, SAVE14 IS USED TO SAVE THE RETURN ADDRESS FROM 03505000
HRC011DK: * EACH CALL. IF THIS ROUTINE IS CALLED TWICE IN A ROW FROM THE 03506000
HRC011DK: * SAME PLACE, THEN PRINT INVALID OPERAND MESSAGE AND GO BACK TO 03507000
HRC011DK: * THE START AT STMSG. SAVE4 IS USED BY RMSG ROUTINE TO 03508000
HRC011DK: * DETERMINE IF THE MESSAGE EXPECTS A RESPONSE. 03509000
HRC011DK: *---------------------------------------------------------------------- 03510000
HRC011DK: SPACE , 03511000
HRC011DK: WMSG CLI CDSW2,X'00' CARD SWITCH OFF? 03512000
HRC011DK: BE WMSG2 YES,BRANCH 03513000
HRC011DK: LA R14,0(,R14) CLEAR HIGH ORDER BYTE ....... 03514000
HRC011DK: CL R14,SAVE14 IS R14 THE SAME? 03515000
HRC011DK: BE BADINPUT THE SAME BRANCH 03516000
HRC011DK: ST R14,SAVE14 STORE NEW R14 03517000
HRC011DK: ST R4,SAVE4 SAVE R4 03518000
HRC011DK: SPACE , 03519000
HRC011DK: *---------------------------------------------------------------------- 03520000
HRC011DK: * LOAD ADDRESS OF CONSOLE AND STORE DATA LENGTH, DATA AREA, AND 03521000
HRC011DK: * PROPER WRITE COMMAND CODE IN WCCW. 03522000
HRC011DK: *---------------------------------------------------------------------- 03523000
HRC011DK: SPACE , 03524000
HRC011DK: WMSG2 LH R10,CONSOL WRITE MESSAGE 03525000
HRC011DK: MVC WCCW+7(1),0(R4) SET DATA LENGTH IN CCW 03526000
HRC011DK: SR R9,R9 ZERO IT 03527000
HRC011DK: IC R9,0(,R4) PICK UP THE LENGTH 03528000
HRC011DK: LA R9,0(R9,R4) AND ADD IT TO THE MSG POINTER 03529000
HRC011DK: LA R4,1(R4) R4 NOW POINTS TO CCW DATA AREA 03530000
HRC011DK: ST R4,WCCW PUT ADDRESS OF DATA AREA IN CCW 03531000
HRC011DK: MVI WCCW,X'09' SET UP TO WRITE WITH CARR RETURN 03532000
HRC011DK: * IS IT, ENTER FORMAT OR ALLOCATE: 03533000
HRC011DK: CLI 0(R9),C':' DO I WANT A REPLY 03534000
HRC011DK: BNE *+8 NO- WRITE WITH CARR RETURN 03535000
HRC011DK: MVI WCCW,X'01' SET UP TO WRITE WITHOUT CARR RETURN 03536000
HRC011DK: LA R9,WCCW R9 CONTAINS CCW ADDRESS 03537000
HRC011DK: SPACE , 03538000
HRC011DK: *---------------------------------------------------------------------- 03539000
HRC011DK: * FOR GRAPHIC DEVICES, SET UP THE PROPER CCW STRING TO HANDLE 03540000
HRC011DK: * GRAPHICS I/O. THIS SUPPORT IS CHECKED FOR IN GRAPHID. THEN 03541000
HRC011DK: * ISSUE THE SIO TO DISPLAY THE MESSAGE. 03542000
HRC011DK: *---------------------------------------------------------------------- 03543000
HRC011DK: SPACE , 03544000
HRC011DK: STARTIO EQU * 03545000
HRC011DK: BAL R1,GRAPHID GO CHECK FOR GRAPHIC SUPPORT 03546000
HRC011DK: STARTIO1 EQU * 03547000
HRC011DK: XC CSW,CSW CLEAR CSW FIELD 03548000
HRC011DK: ST R9,CAW SAVE CCW STRING ADDRESS IN CAW 03549000
HRC011DK: SIO 0(R10) START DEVICE 03550000
HRC011DK: BC 2,WAITIN GO START LOOP AGAIN 03551000
HRC011DK: BC 4,CSWSTOR GO TEST STATUS 03552000
HRC011DK: BC 1,NOTOPER GO INDICATE NOT OPERATIONAL 03553000
HRC011DK: SPACE , 03554000
HRC011DK: *---------------------------------------------------------------------- 03555000
HRC011DK: * GO TO INTERRUPT HANDLER AND WAIT UNTIL CONSOLE IS READY FOR US 03556000
HRC011DK: *---------------------------------------------------------------------- 03557000
HRC011DK: SPACE , 03558000
HRC011DK: WAITIN EQU * 03559000
HRC011DK: LPSW WAITCON WAIT FOR CONSOLE TO GIVE 03560000
HRC011DK: SPACE , 03561000
HRC011DK: *---------------------------------------------------------------------- 03562000
HRC011DK: * NOT OPERATIONAL - GET DIFFERENT DEVICE ADDRESS AND TRY AGAIN. 03563000
HRC011DK: *---------------------------------------------------------------------- 03564000
HRC011DK: SPACE , 03565000
HRC011DK: NOTOPER EQU * 03566000
HRC011DK: OI PARM2,X'80' SET NOT OPERATIONAL INDICATOR 03567000
HRC011DK: B IRA GO GET DEVICE ADDRESS 03568000
HRC011DK: SPACE , 03569000
HRC011DK: *---------------------------------------------------------------------- 03570000
HRC011DK: * CC1 FROM SIO -- CHECK THE CSW STATUS. 03571000
HRC011DK: *---------------------------------------------------------------------- 03572000
HRC011DK: SPACE , 03573000
HRC011DK: CSWSTOR EQU * 03574000
HRC011DK: TM CSW+4,BUSY IS THE UNIT BUSY 03575000
HRC011DK: BZ LOOKATCE NO, GO LOOK AT CE 03576000
HRC011DK: TM CSW+4,DE+ATTN+CUE+CE IS THIS ENDING STATUS 03577000
HRC011DK: BNZ STUADD YES, GO STORE ADDRESS 03578000
HRC011DK: LPSW WAITCON WAIT FOR I/O INTERRUPT 03579000
HRC011DK: SPACE , 03580000
HRC011DK: LOOKATCE EQU * 03581000
HRC011DK: TM CSW+4,CE IS THIS CHANNEL END 03582000
HRC011DK: BZ STUADD NO, GO STORE ADDRESS 03583000
HRC011DK: LA R1,8(,R9) GET ADDRESS OF FIRST CCW + 8 03584000
HRC011DK: ST R1,CSW SAVE ADDRESS IN CSW 03585000
HRC011DK: STUADD EQU * 03586000
HRC011DK: TM CSW+4,CUE IS THIS A CONTROL UNIT END ? 03587000
HRC011DK: BO STARTIO1 YES, GO RESTART I/O OPERATION 03588000
HRC011DK: STH R10,58 SAVE THE INTERRUPT DEVICE 03589000
HRC011DK: B IRA GO TO INTERRUPT HANDLER 03590000
HRC011DK: *.4******************************************************************** 03591000
HRC011DK: * 03592000
HRC011DK: * SUBROUTINE NAME - *----------------* 03593000
HRC011DK: * * RMSG * 03594000
HRC011DK: * *----------------* 03595000
HRC011DK: * 03596000
HRC011DK: * FUNCTION - 03597000
HRC011DK: * 03598000
HRC011DK: * READ FROM THE CONSOLE. 03599000
HRC011DK: * 03600000
HRC011DK: * LOCAL REGISTER USAGE - 03601000
HRC011DK: * 03602000
HRC011DK: * R9 - CHANNEL PROGRAM ADDRESS 03603000
HRC011DK: * R10 - ADDRESS OF CONSOLE 03604000
HRC011DK: * R14 - RETURN ADDRESS 03605000
HRC011DK: * 03606000
HRC011DK: * OPERATION - 03607000
HRC011DK: * 03608000
HRC011DK: * 1. FOR CONSOLE INPUT, GO TO STARTIO TO READ IN THE RESPONSE. 03609000
HRC011DK: * 2. FOR CARD INPUT, COMPARE THE CARD TO VALID PARAMETERS UNTIL 03610000
HRC011DK: * A MATCH IS FOUND. 03611000
HRC011DK: * 3. DISPLAY THE CARD INPUT RESPONSE BY CALLING WMSG. 03612000
HRC011DK: * 03613000
HRC011DK: *.$******************************************************************** 03614000
HRC011DK: SPACE , 03615000
HRC011DK: *---------------------------------------------------------------------- 03616000
HRC011DK: * FOR CONSOLE INPUT, GET THE CONSOLE ADDRESS AND READ IN THE 03617000
HRC011DK: * RESPONSE INTO INDATA USING THE STARTIO ROUTINE. 03618000
HRC011DK: *---------------------------------------------------------------------- 03619000
HRC011DK: SPACE , 03620000
HRC011DK: RMSG TM CDSW2,X'FF' IS CARD SWITCH ON ? 03621000
HRC011DK: BO GETDATA YES, BRANCH 03622000
HRC011DK: LH R10,CONSOL R10 CONTAINS CONSOLE ADDRESS 03623000
HRC011DK: XC INDATA(80),INDATA CLEAR ROOM ENOUGH TO WORK 03624000
HRC011DK: LA R9,RCCW PUT CCW ADDRESS INTO CAW 03625000
HRC011DK: B STARTIO GO ISSUE SIO 03626000
HRC011DK: SPACE , 03627000
HRC011DK: *---------------------------------------------------------------------- 03628000
HRC011DK: * FOR CARD INPUT, COMPARE THE CARD TO PARAMETERS. MOVE THE 03629000
HRC011DK: * CORRESPONDING RESPONSE WORD(S) INTO INDATA. 03630000
HRC011DK: *---------------------------------------------------------------------- 03631000
HRC011DK: SPACE , 03632000
HRC011DK: GETDATA XC INDATA+1(24),INDATA+1 CLEAR BUT 1ST POSITION @V6292B1 03633000
HRC011DK: CLC SAVE4,=A(FORA) IS IT FORMAT OR ALLOCATE? 03634000
HRC011DK: MVC INDATA(8),CDFORA MOVE IN FORMAT OR ALLOCATE 03635000
HRC011DK: BE GETBACK YES,BRANCH 03636000
HRC011DK: CLC SAVE4,=A(ADDRESS) DEVICE ADDRESS 03637000
HRC011DK: MVC INDATA(8),CDADD PASS DATA CONSOLE READ 03638000
HRC011DK: BE GETBACK YES,BRANCH 03639000
HRC011DK: CLC SAVE4,=A(TYPMSG) IS IT DEV TYPE 03640000
HRC011DK: MVC INDATA(8),CDTYPE PASS DATA CONSOLE READ 03641000
HRC011DK: BE GETBACK YES,BRANCH 03642000
HRC011DK: CLC SAVE4,=A(RDLAB) IS IT LABEL 03643000
HRC011DK: MVC INDATA(8),CDLABEL PASS DATA CONSOLE READ 03644000
HRC011DK: BE GETBACK YES,BRANCH 03645000
HRC011DK: CLC SAVE4,=A(WVMSG2) IS IT WRITE VERIFICATION? 03646000
HRC011DK: MVC INDATA(8),CDWVERIF PASS DATA CONSOLE READ 03647000
HRC011DK: BE GETBACK YES, BRANCH 03648000
HRC011DK: CLC SAVE4,=A(STCYL) IS IT START CYL? 03649000
HRC011DK: MVC INDATA(8),CDSTART PASS DATA CONSOLE READ 03650000
HRC011DK: BE GETBACK YES,BRANCH 03651000
HRC011DK: CLC SAVE4,=A(ENDCYL) IS IT END CYL? 03652000
HRC011DK: MVC INDATA(8),CDENDCYL PASS DATA CONSOLE READ 03653000
HRC011DK: BE GETBACK YES,BRANCH 03654000
HRC011DK: MVC INDATA(4),CDFORA MOVE ALLOCATION TYPE 03655000
HRC011DK: MVC INDATA+NAMCHARS+BLANK(CYLNUM),CDADD 03656000
HRC011DK: * MOVE IN ALLOCATION START CYL 03657000
HRC011DK: MVC INDATA+NAMCHARS+BLANK+CYLNUM+BLANK(CYLNUM),CDTYPE 03658000
HRC011DK: * MOVE IN ALLOCATION END CYL 03659000
HRC011DK: SPACE , 03660000
HRC011DK: *---------------------------------------------------------------------- 03661000
HRC011DK: * DISPLAY THE CARD INPUT RESPONSE BY CALLING WMSG. 03662000
HRC011DK: *---------------------------------------------------------------------- 03663000
HRC011DK: SPACE , 03664000
HRC011DK: GETBACK ST R14,REGSAV SAVE R14 03665000
HRC011DK: MVC ANSWER,INDATA SET UP INDATA TO PRINT 03666000
HRC011DK: LA R4,RESPONSE ADDRESS OF MESSAGE INTO R4 03667000
HRC011DK: BAL R14,WMSG2 WRITE MESSAGE 03668000
HRC011DK: L R14,REGSAV RESTORE R14 03669000
HRC011DK: BY LA R14,8(R14) UP R14 TO BYPASS TEST FOR UE 03670000
HRC011DK: BR R14 BRANCH BACK 03671000
HRC011DK: *.4******************************************************************** 03672000
HRC011DK: * 03673000
HRC011DK: * SUBROUTINE NAME - *----------------* 03674000
HRC011DK: * * GRAPHID * 03675000
HRC011DK: * *----------------* 03676000
HRC011DK: * 03677000
HRC011DK: * FUNCTION - 03678000
HRC011DK: * 03679000
HRC011DK: * GRAPHIC DEVICE INDICATOR ROUTINE. THIS IS CALLED TO READ 03680000
HRC011DK: * FROM OR WRITE TO GRAPHIC TYPE DEVICES. 03681000
HRC011DK: * 03682000
HRC011DK: * INPUT REGISTERS - 03683000
HRC011DK: * 03684000
HRC011DK: * R1 - RETURN ADDRESS 03685000
HRC011DK: * R9 - CCW STRING ADDRESS 03686000
HRC011DK: * 03687000
HRC011DK: * OUTPUT REGISTERS - 03688000
HRC011DK: * 03689000
HRC011DK: * R9 - PROPER MODIFIED CCW STRING ADDRESS 03690000
HRC011DK: * 03691000
HRC011DK: * LOCAL REGISTER USAGE - 03692000
HRC011DK: * 03693000
HRC011DK: * R2 - WORK 03694000
HRC011DK: * R3 - DATA COUNT 03695000
HRC011DK: * R4 - WORK 03696000
HRC011DK: * R5 - WORK 03697000
HRC011DK: * R9 - CHANNEL PROGRAM ADDRESS 03698000
HRC011DK: * R14 - WORK 03699000
HRC011DK: * 03700000
HRC011DK: * OPERATION - 03701000
HRC011DK: * 03702000
HRC011DK: * 1. GET ADDRESS OF CCW STRING 03703000
HRC011DK: * 2. GET ADDRESS OF COMMAND OP TABLE 03704000
HRC011DK: * 3. TEST COMMAND OP CODE WITH TABLE CODE 03705000
HRC011DK: * 4. IS IT A 3270 GRAPHIC DEVICE? 03706000
HRC011DK: * 5. IF NOT, CLEAR LINE POINTER 03707000
HRC011DK: * 6. GET CHANNEL PROGRAM 03708000
HRC011DK: * 7. SAVE CURRENT LINE POINTER 03709000
HRC011DK: * 8. SET COORDINATES 03710000
HRC011DK: * 9. GET ADDRESS OF BUFFER 03711000
HRC011DK: * 10. CHECK FOR DATA IN INPUT AREA 03712000
HRC011DK: * 11. CHECK FOR COMMAND CHAINING 03713000
HRC011DK: * 12. UPDATE TO NEXT CCW 03714000
HRC011DK: * 03715000
HRC011DK: *.$******************************************************************** 03716000
HRC011DK: SPACE , 03717000
HRC011DK: GRAPHID DS 0H HANDLE GRAPHICS DEVICES 03718000
HRC011DK: TM PARM,PARMGRP IS THE GRAPHIC INDICATOR ACTIVE ? 03719000
HRC011DK: BCR 8,R1 NO, GO START THE I/O REQUEST 03720000
HRC011DK: STM R14,R5,GRAPHSAV SAVE THE REGISTERS 03721000
HRC011DK: LR R4,R9 GET THE ADDRESS OF THE CCW STRING 03722000
HRC011DK: SPACE , 03723000
HRC011DK: *---------------------------------------------------------------------- 03724000
HRC011DK: * SAVE THE DATA COUNT AND CCW ADDRESS FOR LATER RESTORE. 03725000
HRC011DK: *---------------------------------------------------------------------- 03726000
HRC011DK: SPACE , 03727000
HRC011DK: GETCCW EQU * 03728000
HRC011DK: LH R3,6(R4) GET THE DATA COUNT FROM THE CCW 03729000
HRC011DK: STM R3,R4,SAVEAREA SAVE THE DATA REGISTERS 03730000
HRC011DK: NI PARM,X'FF'-(PARMREA+PARMNDA) CLEAR THE READ 03731000
HRC011DK: * REQUEST AND NO DATA INDICATOR 03732000
HRC011DK: LA R2,5 SET THE LOOP COUNT 03733000
HRC011DK: LA R14,TABLGRAP GET THE ADDRESS OF THE COMMAND 03734000
HRC011DK: * OP TABLE 03735000
HRC011DK: ICM R5,1,0(R4) GET THE OP CODE 03736000
HRC011DK: SPACE , 03737000
HRC011DK: *---------------------------------------------------------------------- 03738000
HRC011DK: * COMPARE THE COMMAND OPCODE WITH THE CODE IN TABLGRAP UNTIL 03739000
HRC011DK: * THE CODE IS FOUND IN THE TABLE. TABLGRAP CONTAINS THE 03740000
HRC011DK: * ADDRESSES OF THE CORRESPONDING SECTIONS FOR THE PROPER READ 03741000
HRC011DK: * OR WRITE ROUTINE. GO TO THE PROPER SECTION. 03742000
HRC011DK: *---------------------------------------------------------------------- 03743000
HRC011DK: SPACE , 03744000
HRC011DK: CCWEXEC EQU * 03745000
HRC011DK: EX R5,CLIP TEST THE COMMAND OP CODE WITH 03746000
HRC011DK: * TABLE CODE 03747000
HRC011DK: BE GRAPHADD YES, FOUND THE COMMAND OP CODE 03748000
HRC011DK: LA R14,4(R14) UPDATE THE ADDRESS IN THE TABLE 03749000
HRC011DK: BCT R2,CCWEXEC GO TEST THE NEXT OP CODE 03750000
HRC011DK: SPACE , 03751000
HRC011DK: B STMSG INVALID OP CODE - GO EXIT 03752000
HRC011DK: CLIP CLI 0(R14),X'00' TEST THE OP CODE IN THE TABLE 03753000
HRC011DK: GRAPHADD EQU * 03754000
HRC011DK: ICM R2,7,1(R14) GET THE ADDRESS OF THE OP CODE 03755000
HRC011DK: * ROUTINE 03756000
HRC011DK: BR R2 GO TO THE ROUTINE 03757000
HRC011DK: SPACE , 03758000
HRC011DK: *---------------------------------------------------------------------- 03759000
HRC011DK: * OPCODE X'0A' : HANDLE GRAPHIC READ FOR 3270 GRAPHIC DEVICE. 03760000
HRC011DK: *---------------------------------------------------------------------- 03761000
HRC011DK: SPACE , 03762000
HRC011DK: READ66 EQU * 03763000
HRC011DK: OI PARM,PARMREA+PARMATT INDICATE READ AND ATTENTION 03764000
HRC011DK: * REQUESTS 03765000
HRC011DK: LA R14,GRAPHIC0 RETURN ADDRESS FROM I/O HANDLER 03766000
HRC011DK: XC BLNKLINE(140),BLNKLINE CLEAR THE READ AREA 03767000
HRC011DK: MVI CSW+4,X'00' CLEAR THE CSW STATUS 03768000
HRC011DK: XC RDMIDATA(6),RDMIDATA CLEAR THE READ DATA FIELD 03769000
HRC011DK: MVC CPXYSTAT(20),REALABEL 03770000
HRC011DK: LA R9,REQREAD GET CHANNEL PROGRAM ADDRESS 03771000
HRC011DK: TM PARM,PARM327 IS THIS A 3270 GRAPHIC ? 03772000
HRC011DK: BCR 8,R1 NO, GO ISSUE SIO 03773000
HRC011DK: LA R9,REQREAD1 GET CHANNEL PROGRAM ADDRESS 03774000
HRC011DK: BR R1 GO TO THE I/O HANDLER 03775000
HRC011DK: SPACE , 03776000
HRC011DK: *---------------------------------------------------------------------- 03777000
HRC011DK: * OPCODE X'01', X'05', OR X'09' : HANDLE GRAPHIC WRITE. 03778000
HRC011DK: * FOR A NON-3270, GET THE APPROPRIATE 3066 CHANNEL PROGRAM AND 03779000
HRC011DK: * RETURN TO ISSUE SIO. 03780000
HRC011DK: *---------------------------------------------------------------------- 03781000
HRC011DK: SPACE , 03782000
HRC011DK: WRT66 EQU * 03783000
HRC011DK: MVC CPXYSTAT(20),RUNLABEL 03784000
HRC011DK: TM PARM,PARM327 IS THIS A 3270 GRAPHIC ? 03785000
HRC011DK: BO YES3270 YES, GO TO 3270 SUPPORT 03786000
HRC011DK: MVC WRT3066+1(3),1(R4) GET THE MESSAGE ADDRESS 03787000
HRC011DK: STH R3,WRT3066+6 SAVE THE DATA COUNT IN THE CCW 03788000
HRC011DK: LA R9,WRTCRTXY GET CHANNEL PROGRAM ADDRESS 03789000
HRC011DK: TM PARM,PARMCLE IS THE ERASE INDICATOR ON ? 03790000
HRC011DK: BZ GRAPWRT NO, GO TO SIO SECTION 03791000
HRC011DK: LA R9,ERSE3066 GET CHANNEL PROGRAM ADDRESS 03792000
HRC011DK: MVI SBADDR,X'00' CLEAR LINE POINTER 03793000
HRC011DK: GRAPWRT EQU * 03794000
HRC011DK: LA R14,GRAPHIC1 RETURN ADDRESS FROM I/O HANDLER 03795000
HRC011DK: BR R1 GO TO THE I/O HANDLER 03796000
HRC011DK: SPACE , 03797000
HRC011DK: *---------------------------------------------------------------------- 03798000
HRC011DK: * OPCODE X'01', X'05', OR X'09' : HANDLE GRAPHIC WRITE. 03799000
HRC011DK: * FOR A 3270 GRAPHIC, GET THE APPROPRIATE 3270 CHANNEL PROGRAM 03800000
HRC011DK: * AND RETURN TO ISSUE SIO. 03801000
HRC011DK: *---------------------------------------------------------------------- 03802000
HRC011DK: SPACE , 03803000
HRC011DK: YES3270 EQU * 03804000
HRC011DK: SR R14,R14 CLEAR REGISTER 14 03805000
HRC011DK: LA R9,WRTCRT70 GET CHANNEL PROGRAM ADDRESS 03806000
HRC011DK: TM PARM,PARMCLE IS THE ERASE INDICATOR ON ? 03807000
HRC011DK: BZ NOCL3270 NO, DON'T CLEAR SCREEN 03808000
HRC011DK: MVI SBADDR,X'00' CLEAR LINE POINTER 03809000
HRC011DK: LA R9,ERSE3270 GET CHANNEL PROGRAM ADDRESS 03810000
HRC011DK: NOCL3270 EQU * 03811000
HRC011DK: IC R14,SBADDR GET THE CURRENT LINE POINTER 03812000
HRC011DK: SLL R14,1 SETUP THE INDEX INTO THE TABLE 03813000
HRC011DK: LH R14,TABLE70(R14) GET THE LINE ADDRESS 03814000
HRC011DK: STCM R14,3,LAB3270+2 SAVE THE CURRENT LINE POINTER 03815000
HRC011DK: MVC WRTCR70+1(3),1(R4) GET THE MESSAGE ADDRESS 03816000
HRC011DK: STH R3,WRTCR70+6 SAVE THE BYTE COUNT IN THE CCW 03817000
HRC011DK: B GRAPWRT GO GET THE RETURN ADDRESS 03818000
HRC011DK: SPACE , 03819000
HRC011DK: *---------------------------------------------------------------------- 03820000
HRC011DK: * GRAPHIC1 IS THE ADDRESS RETURNED TO FROM THE I/O INTERRUPT 03821000
HRC011DK: * HANDLER, FROM THE GRAPHIC WRITE ROUTINE ABOVE. 03822000
HRC011DK: *---------------------------------------------------------------------- 03823000
HRC011DK: SPACE , 03824000
HRC011DK: GRAPHIC1 EQU * 03825000
HRC011DK: LM R3,R4,SAVEAREA GET THE DATA REGISTERS 03826000
HRC011DK: NI PARM,X'FF'-PARMCLE CLEAR THE ERASE INDICATOR 03827000
HRC011DK: SR R2,R2 CLEAR REGISTER 2 03828000
HRC011DK: IC R2,SBADDR GET THE Y COORDINATE 03829000
HRC011DK: LA R2,1(R2) UPDATE THE Y COORDINATE 03830000
HRC011DK: CH R3,=H'80' IS THE DATA COUNT LONGER THAN 1 03831000
HRC011DK: * LINE 03832000
HRC011DK: BNH *+8 NO, GO SAVE Y COORDINATE 03833000
HRC011DK: LA R2,1(R2) UPDATE THE Y COORDINATE AGAIN 03834000
HRC011DK: STC R2,SBADDR SAVE THE Y COORDINATE 03835000
HRC011DK: MH R2,=H'80' GET THE BYTE LENGTH 03836000
HRC011DK: L R14,=F'2640' GET THE MAX. LENGTH 03837000
HRC011DK: TM PARM,PARM327 IS THIS A 3270 GRAPHIC ? 03838000
HRC011DK: BZ TEST3066 NO, GO TEST FOR END OF CRT 03839000
HRC011DK: L R14,MAXLEN GET THE MAX. LEN FOR 3270/3278 03840000
HRC011DK: TEST3066 EQU * 03841000
HRC011DK: CR R2,R14 Y COORDINATE AT END OF THE CRT? 03842000
HRC011DK: BL RETWORD NO, CHECK FOR CMD CHAINING 03843000
HRC011DK: OI PARM,PARMATT SET THE ATTENTION REQUEST 03844000
HRC011DK: MVI CSW+4,X'00' CLEAR THE CSW STATUS 03845000
HRC011DK: MVC CPXYSTAT(20),MORLABEL 03846000
HRC011DK: LA R14,GRAPHIC3 RETURN ADDRESS FROM I/O HANDLER 03847000
HRC011DK: LA R9,CRTWORD GET CHANNEL PROGRAM ADDRESS 03848000
HRC011DK: TM PARM,PARM327 IS THIS A 3270 GRAPHIC ? 03849000
HRC011DK: BCR 8,R1 NO, GO ISSUE SIO 03850000
HRC011DK: LA R9,MORECCW1 GET CHANNEL PROGRAM ADDRESS 03851000
HRC011DK: BR R1 GO ISSUE SIO 03852000
HRC011DK: SPACE , 03853000
HRC011DK: *---------------------------------------------------------------------- 03854000
HRC011DK: * GRAPHIC3 IS THE ADDRESS RETURNED TO FROM THE I/O INTERRUPT 03855000
HRC011DK: * HANDLER, FROM THE GRAPHIC1 WRITE ROUTINE ABOVE. 03856000
HRC011DK: *---------------------------------------------------------------------- 03857000
HRC011DK: SPACE , 03858000
HRC011DK: GRAPHIC3 EQU * 03859000
HRC011DK: TM STAT,ATTN IS THE ATTENTION FLAG ACTIVE ? 03860000
HRC011DK: BZ GRAPPSW NO, GO WAIT FOR AN ATTENTION 03861000
HRC011DK: * INTERRUPT 03862000
HRC011DK: NI PARM,X'FF'-PARMATT CLEAR THE ATTENTION INDICATOR 03863000
HRC011DK: CANCEL1 EQU * 03864000
HRC011DK: LM R3,R4,SAVEAREA GET THE DATA REGISTERS 03865000
HRC011DK: MVI SBADDR,X'00' SET THE Y COORDINATE TO ZERO 03866000
HRC011DK: MVC CPXYSTAT(20),RUNLABEL CRT DISPLAY RUN STATUS 03867000
HRC011DK: LA R9,CNCL3066 GET CHANNEL PROGRAM ADDRESS 03868000
HRC011DK: TM PARM,PARM327 IS THIS A 3270 GRAPHIC ? 03869000
HRC011DK: BZ RETURNCN NO, GO GET RETURN ADDRESS 03870000
HRC011DK: LA R9,CNCL3270 GET CHANNEL PROGRAM ADDRESS 03871000
HRC011DK: RETURNCN EQU * 03872000
HRC011DK: LA R14,READ66 GET THE ADDRESS OF THE READ 03873000
HRC011DK: * SECTION 03874000
HRC011DK: TM PARM,PARMREA IS THIS A READ REQUEST ? 03875000
HRC011DK: BCR 1,R1 YES, GO TO THE I/O HANDLER 03876000
HRC011DK: LA R14,RETWORD RETURN ADDRESS FROM I/O HANDLER 03877000
HRC011DK: BR R1 GO TO THE I/O HANDLER 03878000
HRC011DK: SPACE , 03879000
HRC011DK: *---------------------------------------------------------------------- 03880000
HRC011DK: * GRAPHIC0 IS THE ADDRESS RETURNED TO FROM THE I/O INTERRUPT 03881000
HRC011DK: * HANDLER, FROM THE READ66 READ ROUTINE ABOVE. 03882000
HRC011DK: *---------------------------------------------------------------------- 03883000
HRC011DK: SPACE , 03884000
HRC011DK: GRAPHIC0 EQU * 03885000
HRC011DK: TM STAT,ATTN IS THE ATTENTION FLAG ACTIVE ? 03886000
HRC011DK: BO GRAPATTN YES, GO SETUP CCW FOR READ 03887000
HRC011DK: * MANUAL INPUT 03888000
HRC011DK: GRAPPSW EQU * 03889000
HRC011DK: LPSW WAITCON GO WAIT FOR INTERRUPT 03890000
HRC011DK: SPACE , 03891000
HRC011DK: *---------------------------------------------------------------------- 03892000
HRC011DK: * ATTENTION FLAG WAS ON, SO SET UP THE CCW FOR READING MANUALLY. 03893000
HRC011DK: *---------------------------------------------------------------------- 03894000
HRC011DK: SPACE , 03895000
HRC011DK: GRAPATTN EQU * 03896000
HRC011DK: LM R3,R4,SAVEAREA GET THE DATA REGISTERS 03897000
HRC011DK: NI PARM,X'FF'-PARMATT CLEAR ATTENTION REQUEST 03898000
HRC011DK: TM PARM,PARM327 IS THIS A 3270 GRAPHIC ? 03899000
HRC011DK: BO YES3270A YES, GO TO 3270 SUPPORT 03900000
HRC011DK: STH R3,RD3066DA+6 STORE THE COUNT IN THE CCW 03901000
HRC011DK: MVC RD3066DA+1(3),1(R4) MOVE THE ADDRESS OF THE READ 03902000
HRC011DK: * BUFFER INTO THE CCW 03903000
HRC011DK: LA R9,RDMI3066 GET THE ADDRESS OF THE CHANNEL 03904000
HRC011DK: * PROGRAM 03905000
HRC011DK: RETURNAD EQU * 03906000
HRC011DK: LA R14,RET66MI RETURN ADDRESS FROM I/O HANDLER 03907000
HRC011DK: BR R1 GO TO THE I/O HANDLER 03908000
HRC011DK: SPACE , 03909000
HRC011DK: *---------------------------------------------------------------------- 03910000
HRC011DK: * FOR 3270 GRAPHIC, READ INPUT FOR ATTENTION. 03911000
HRC011DK: *---------------------------------------------------------------------- 03912000
HRC011DK: SPACE , 03913000
HRC011DK: YES3270A EQU * 03914000
HRC011DK: LA R14,6(R3) ADD 6 T0 THE TOTAL COUNT 03915000
HRC011DK: STH R14,RD3270DA+6 STORE THE COUNT IN THE CCW 03916000
HRC011DK: LA R14,BLNKLINE GET THE ADDRESS OF THE BUFFER 03917000
HRC011DK: STCM R14,7,RD3270DA+1 MOVE THE ADDRESS OF THE READ 03918000
HRC011DK: * BUFFER INTO THE CCW 03919000
HRC011DK: LA R9,RDMI3270 GET THE ADDRESS OF THE CHANNEL 03920000
HRC011DK: * PROGRAM 03921000
HRC011DK: B RETURNAD GO GET THE RETURN ADDRESS 03922000
HRC011DK: SPACE , 03923000
HRC011DK: *---------------------------------------------------------------------- 03924000
HRC011DK: * RET66MI IS THE RETURN ADDRESS FROM THE I/O HANDLER AFTER 03925000
HRC011DK: * MANUALLY READING INPUT AFTER ATTENTION. 03926000
HRC011DK: *---------------------------------------------------------------------- 03927000
HRC011DK: SPACE , 03928000
HRC011DK: RET66MI EQU * 03929000
HRC011DK: LM R3,R4,SAVEAREA GET THE DATA REGISTERS 03930000
HRC011DK: MVC CPXYSTAT(20),RUNLABEL CRT DISPLAY RUN STATUS 03931000
HRC011DK: LA R9,CRTWORD GET CHANNEL PROGRAM ADDRESS 03932000
HRC011DK: LA R14,RETINPUT RETURN ADDRESS FROM I/O HANDLER 03933000
HRC011DK: TM PARM,PARM327 IS THIS A 3270 GRAPHIC ? 03934000
HRC011DK: BO YES3270B YES, GO CHECK 3270 SUPPORT 03935000
HRC011DK: TM RDMIDATA+2,X'40' DID THE OPERATOR HIT THE 03936000
HRC011DK: * CANCEL KEY 03937000
HRC011DK: BO CANCEL1 YES, GO CLEAR SCREEN 03938000
HRC011DK: CLC RDMIDATA(2),SBAREAD DID THE CURSOR MOVE ? 03939000
HRC011DK: BCR 7,R1 YES, GO WRITE STATUS 03940000
HRC011DK: OI PARM,PARMNDA SET INDICATOR FOR NO DATA 03941000
HRC011DK: BR R1 GO WRITE OUT STATUS 03942000
HRC011DK: SPACE , 03943000
HRC011DK: *---------------------------------------------------------------------- 03944000
HRC011DK: * FOR 3270 GRAPHIC, HANDLE WRITING STATUS AFTER RETURNING FROM 03945000
HRC011DK: * ATTENTION READ. 03946000
HRC011DK: *---------------------------------------------------------------------- 03947000
HRC011DK: SPACE , 03948000
HRC011DK: YES3270B EQU * 03949000
HRC011DK: CLI BLNKLINE,X'6E' DID THE OPERATOR HIT THE CANCEL 03950000
HRC011DK: * KEY 03951000
HRC011DK: BE CANCEL1 YES, GO CLEAR SCREEN 03952000
HRC011DK: CLI BLNKLINE,X'6D' DID THE OPERATOR HIT THE CLEAR 03953000
HRC011DK: * KEY 03954000
HRC011DK: BE CANCEL1 YES, GO CLEAR SCREEN 03955000
HRC011DK: CLI BLNKLINE,X'6C' DID OPERATOR HIT PA1 KEY 03956000
HRC011DK: BE CANCEL1 YES, GO CLEAR SCREEN 03957000
HRC011DK: OI PARM,PARMNDA SET INDICATOR FOR NO DATA 03958000
HRC011DK: CLI BLNKLINE,X'01' DID OPERATOR HIT TEST REQ. KEY 03959000
HRC011DK: BE ENT3270 YES, GO WRITE STATUS 03960000
HRC011DK: CLI BLNKLINE,X'E6' IS THIS THE CARD READER 03961000
HRC011DK: BE ENT3270 YES, GO WRITE STATUS 03962000
HRC011DK: CLI BLNKLINE+6,X'00' DATA IN INPUT AREA ? 03963000
HRC011DK: BNE DATA3270 YES, GO DISPLAY DATA 03964000
HRC011DK: CLC BLNKLINE+1(2),ADDR5 DID CURSOR MOVE? 03965000
HRC011DK: BE ENT3270 NO 03966000
HRC011DK: DATA3270 EQU * 03967000
HRC011DK: NI PARM,X'FF'-PARMNDA SET INDICATOR FOR NO DATA 03968000
HRC011DK: ICM R9,7,1(R4) GET ADDRESS OF USER'S BUFFER 03969000
HRC011DK: BCTR R3,R0 SUBTRACT ONE FROM COUNT (EX 03970000
HRC011DK: * INSTR.) 03971000
HRC011DK: EX R3,MOV3270 MOVE DATA INTO USER'S BUFFER 03972000
HRC011DK: ENT3270 EQU * 03973000
HRC011DK: LA R9,CRTWORD1 GET THE ADDRESS OF THE CHANNEL 03974000
HRC011DK: * PROGRAM 03975000
HRC011DK: BR R1 GO ISSUE SIO 03976000
HRC011DK: SPACE , 03977000
HRC011DK: MOV3270 MVC 0(0,R9),BLNKLINE+6 MOVE THE DATA INTO THE 03978000
HRC011DK: * USER'S BUFFER 03979000
HRC011DK: SPACE , 03980000
HRC011DK: *---------------------------------------------------------------------- 03981000
HRC011DK: * RETURN ADDRESS AFTER WRITING STATUS. 03982000
HRC011DK: *---------------------------------------------------------------------- 03983000
HRC011DK: SPACE , 03984000
HRC011DK: RETINPUT EQU * 03985000
HRC011DK: LM R3,R4,SAVEAREA GET THE DATA REGISTERS 03986000
HRC011DK: TM PARM,PARMNDA IS NO DATA INDICATED ? 03987000
HRC011DK: BZ WRT66 NO, GO DISPLAY INPUT ON CRT 03988000
HRC011DK: SPACE , 03989000
HRC011DK: *---------------------------------------------------------------------- 03990000
HRC011DK: * FOR OPCODE X'03' NOOP : RETURN SECTION. 03991000
HRC011DK: *---------------------------------------------------------------------- 03992000
HRC011DK: SPACE , 03993000
HRC011DK: RETWORD EQU * 03994000
HRC011DK: TM 4(R4),CC IS COMMAND CHAINING ON ? 03995000
HRC011DK: LA R4,8(R4) UPDATE THE CCW ADDRESS TO NEXT 03996000
HRC011DK: * CCW 03997000
HRC011DK: BO GETCCW YES, GET DATA COUNT FROM CCW 03998000
HRC011DK: LM R14,R5,GRAPHSAV GET CALLER'S REGISTERS 03999000
HRC011DK: BR R14 RETURN TO CALLER 04000000
HRC011DK: *.4******************************************************************** 04001000
HRC011DK: * 04002000
HRC011DK: * SUBROUTINE NAME - *----------------* 04003000
HRC011DK: * * XBIN * 04004000
HRC011DK: * *----------------* 04005000
HRC011DK: * 04006000
HRC011DK: * FUNCTION - 04007000
HRC011DK: * 04008000
HRC011DK: * CHECK TO SEE IF THE INPUT IS VALID AND HAS CORRECT NUMBERS. 04009000
HRC011DK: * VALID NUMBERS ARE C1-C6 AND F0-F9. 04010000
HRC011DK: * 04011000
HRC011DK: * INPUT REGISTERS - 04012000
HRC011DK: * 04013000
HRC011DK: * R7 - RETURN ADDRESS 04014000
HRC011DK: * R8 - INPUT NUMBER 04015000
HRC011DK: * R9 - COUNT 04016000
HRC011DK: * 04017000
HRC011DK: * OUTPUT REGISTERS - 04018000
HRC011DK: * 04019000
HRC011DK: * R10 - VALID INPUT (THIS IS NEGATIVE IF INVALID INPUT) 04020000
HRC011DK: * 04021000
HRC011DK: * LOCAL REGISTER USAGE - 04022000
HRC011DK: * 04023000
HRC011DK: * R4 - WORK 04024000
HRC011DK: * 04025000
HRC011DK: *.$******************************************************************** 04026000
HRC011DK: SPACE , 04027000
HRC011DK: XBIN SR R10,R10 CLEAR REG 10 04028000
HRC011DK: SPACE , 04029000
HRC011DK: *---------------------------------------------------------------------- 04030000
HRC011DK: * CHECK FOR VALID NUMBER. 04031000
HRC011DK: *---------------------------------------------------------------------- 04032000
HRC011DK: SPACE , 04033000
HRC011DK: NEWNUM IC R4,0(R8) PUT CHAR INTO R4 04034000
HRC011DK: SLL R4,28 KEEP ONLY BITS 4TO7 04035000
HRC011DK: SRL R4,28 OF LAST BYTE 04036000
HRC011DK: CLI 0(R8),X'F0' LOWER THAN F0 04037000
HRC011DK: BC 4,ALPHA COULD BE ALPHA 04038000
HRC011DK: CLI 0(R8),X'F9' IS IT GREATER THAN 9 04039000
HRC011DK: BC 2,ERRORX IF GREATER ,ERROR 04040000
HRC011DK: COMMON2 SLL R10,4 SHIFT LEFT 4 BITS 04041000
HRC011DK: OR R10,R4 OR R4 INTO R10 04042000
HRC011DK: LA R8,1(R8) ADD 1 TO REG 11 04043000
HRC011DK: BCT R9,NEWNUM LOOP IF MORE TO CHECK 04044000
HRC011DK: BR R7 GO WHENCE CAME YOU 04045000
HRC011DK: SPACE , 04046000
HRC011DK: *---------------------------------------------------------------------- 04047000
HRC011DK: * CHECK FOR VALID LETTER. 04048000
HRC011DK: *---------------------------------------------------------------------- 04049000
HRC011DK: SPACE , 04050000
HRC011DK: ALPHA CLI 0(R8),X'C1' LOWER THAN A 04051000
HRC011DK: BC 4,ERRORX IF LOWER THAT'S ERROR 04052000
HRC011DK: CLI 0(R8),X'C6' IS NUMBER HIGHER THAN F 04053000
HRC011DK: BC 2,ERRORX IF HIGHER ERROR 04054000
HRC011DK: LA R4,9(R4) CHANGE 1 TO 6 INTO A TO F 04055000
HRC011DK: B COMMON2 BRANCH 04056000
HRC011DK: ERRORX ICM R10,8,FFS8 R10 NEG TO SHOW ERROR 04057000
HRC011DK: BR R7 GO WHENCE CAME YOU 04058000
HRC011DK: *.4******************************************************************** 04059000
HRC011DK: * 04060000
HRC011DK: * SUBROUTINE NAME - *----------------* 04061000
HRC011DK: * * DIGBIN * 04062000
HRC011DK: * *----------------* 04063000
HRC011DK: * 04064000
HRC011DK: * FUNCTION - 04065000
HRC011DK: * 04066000
HRC011DK: * CONVERT EBCDIC NUMERIC VALUE TO BINARY. ON ENTRY, INDATA 04067000
HRC011DK: * CONTAINS EBCDIC VALUE, LEFT JUSTIFIED, UPPER CASE. AT END, 04068000
HRC011DK: * CC IS NON-ZERO IF INPUT WAS NOT NUMERIC. 04069000
HRC011DK: * 04070000
HRC011DK: * INPUT REGISTERS - 04071000
HRC011DK: * 04072000
HRC011DK: * R4 - LENGTH-1 OF FIELD TO CONVERT (OF INDATA) 04073000
HRC011DK: * R14 - RETURN ADDRESS 04074000
HRC011DK: * 04075000
HRC011DK: * OUTPUT REGISTERS - 04076000
HRC011DK: * 04077000
HRC011DK: * R7 - BINARY VALUE RESULTING FROM CONVERSION 04078000
HRC011DK: * 04079000
HRC011DK: *.$******************************************************************** 04080000
HRC011DK: SPACE , 04081000
HRC011DK: DIGBIN MVC FIELDC,MASKA SET UP F0'S IN FIELDC 04082000
HRC011DK: LA R7,7 * OFFSET INTO FIELDC TO 04083000
HRC011DK: * * MOVE INDATA VALUE SO 04084000
HRC011DK: SR R7,R4 * THAT IT BECOMES RIGHT 04085000
HRC011DK: LA R7,FIELDC(R7) * JUSTIFIED 04086000
HRC011DK: EX R4,MOVEBC MOVE THE EBCDIC VALUE 04087000
HRC011DK: * TO FIELDC, AT APPROP 04088000
HRC011DK: * OFFSET 04089000
HRC011DK: MVC MASKB,MASKA PUT F0'S IN MASKB 04090000
HRC011DK: NC MASKB,FIELDC AND F0'S WITH INPUT 04091000
HRC011DK: CLC MASKB,MASKA IS MASK ALL NUMERIC 04092000
HRC011DK: BCR 7,R14 NO-GO EXIT WITH CC¬=0 04093000
HRC011DK: PACK FIELDC,FIELDC FIRST PACKED, THEN 04094000
HRC011DK: CVB R7,FIELDC IN BINARY (PAGE NUM) 04095000
HRC011DK: TM *,X'00' SET CC=0 04096000
HRC011DK: BR R14 RETURN TO CALLER 04097000
HRC011DK: **** EXECUTED INSTRUCTION 04098000
HRC011DK: MOVEBC MVC 0(*-*,R7),INDATA 04099000
HRC011DK: *.4******************************************************************** 04100000
HRC011DK: * 04101000
HRC011DK: * SUBROUTINE NAME - *----------------* 04102000
HRC011DK: * * CONVZER * 04103000
HRC011DK: * *----------------* 04104000
HRC011DK: * 04105000
HRC011DK: * FUNCTION - 04106000
HRC011DK: * 04107000
HRC011DK: * CONVERT BINARY NUMBERS TO PRINTABLE FORMAT, STORE IN 04108000
HRC011DK: * DESIGNATED OUTPUT AREA, AND REMOVE LEADING ZEROES. 04109000
HRC011DK: * 04110000
HRC011DK: * INPUT REGISTERS - 04111000
HRC011DK: * 04112000
HRC011DK: * R7 - NUMBER TO BE CONVERTED 04113000
HRC011DK: * 04114000
HRC011DK: * OUTPUT REGISTERS - 04115000
HRC011DK: * 04116000
HRC011DK: * R6 - OUTPUT AREA 04117000
HRC011DK: * 04118000
HRC011DK: * LOCAL REGISTER USAGE - 04119000
HRC011DK: * 04120000
HRC011DK: * R1 - WORK 04121000
HRC011DK: * R2 - WORK 04122000
HRC011DK: * 04123000
HRC011DK: *.$******************************************************************** 04124000
HRC011DK: SPACE , 04125000
HRC011DK: CONVZER EQU * 04126000
HRC011DK: CVD R7,FIELDA CONVERT INPUT NUMBER TO DEC 04127000
HRC011DK: OI FIELDA+7,X'0F' CONVERT SIGN BYTE 04128000
HRC011DK: UNPK 0(8,R6),FIELDA+3(5) UNPACK TO OUTPUT AREA 04129000
HRC011DK: TRT 0(8,R6),TRTZEROS-X'F0' FIND FIRST NON ZERO BYTE 04130000
HRC011DK: BZ CONVZER1 BRANCH IF ALL ZEROS 04131000
HRC011DK: SR R1,R6 DISPLACEMENT TO NON ZERO BY 04132000
HRC011DK: BCTR R1,0 DECR FOR EXECUTE 04133000
HRC011DK: EX R1,MVCBLNKS MOVE BLANKS TO LEADING 0'S 04134000
HRC011DK: BR R14 RETURN 04135000
HRC011DK: CONVZER1 MVC 0(8,R6),BLANKS8 SET UP THE OUTPUT 04136000
HRC011DK: MVI 7(R6),X'F0' SO ONE ZERO WILL PRINT 04137000
HRC011DK: BR R14 04138000
HRC011DK: MVCBLNKS MVC 0(*-*,R6),BLANKS8 04139000
HRC011DK: *.4******************************************************************** 04140000
HRC011DK: * 04141000
HRC011DK: * SUBROUTINE NAME - *----------------* 04142000
HRC011DK: * * DFOADSET * 04143000
HRC011DK: * *----------------* 04144000
HRC011DK: * 04145000
HRC011DK: * FUNCTION - 04146000
HRC011DK: * 04147000
HRC011DK: * SCANS DFOTABLE UNTIL MATCHING DEVICE TYPE IS FOUND. PUTS 04148000
HRC011DK: * ADDRESS OF THAT ENTRY INTO ADFOTYPE, SETTING THE ADDRESS OF 04149000
HRC011DK: * THE DEVICE/FORMAT TABLE ENTRY. FIELD 'TYPE' CONTAINS THE 04150000
HRC011DK: * DEVICE TYPE. 04151000
HRC011DK: * 04152000
HRC011DK: * INPUT REGISTERS - 04153000
HRC011DK: * 04154000
HRC011DK: * R7 - RIGHT-MOST BYTE CONTAINS SPECIAL REQUEST (FOR POSSIBLE 04155000
HRC011DK: * SPECIFICATION SEE DESCRIPTION IN DSECT DFODATA). BYTES 04156000
HRC011DK: * 0-3 MUST BE SET TO ZERO. 04157000
HRC011DK: * 04158000
HRC011DK: * OUTPUT REGISTERS - 04159000
HRC011DK: * 04160000
HRC011DK: * R6 - POINTS TO ENTRY OF DEVICE DATA/FORMAT PROCEDURE TABLE. 04161000
HRC011DK: * ADFOTYPE CONTAINS POINTER TO DEVICE/FORMAT ENTRY. 04162000
HRC011DK: * R7 - THIS VALUE IS CHANGED 04163000
HRC011DK: * 04164000
HRC011DK: *.$******************************************************************** 04165000
HRC011DK: SPACE , 04166000
HRC011DK: DFOADSET DS 0H 04167000
HRC011DK: L R6,=A(DFOTABLE) ADDR OF DEVICE/FORMAT DATA TABLE 04168000
HRC011DK: USING DFODATA,R6 04169000
HRC011DK: SPACE , 04170000
HRC011DK: DFOADLP1 EQU * 04171000
HRC011DK: TM DFOENDFL,DFOTBEND END OF TABLE ? 04172000
HRC011DK: BO DFOADS10 YES, TAKE LAST TABLE ENTRY 04173000
HRC011DK: CLC TYPE,DFOTYPE TYPE FOUND IN TABLE ? 04174000
HRC011DK: BNE DFOADL05 NO, KEEP LOOKING 04175000
HRC011DK: LTR R7,R7 SPECIAL REQUEST ? 04176000
HRC011DK: BZ DFOADS10 NO, THEN TAKE STANDARD ENTRY 04177000
HRC011DK: EX R7,DFOADFL SPECIAL REQUEST ENTRY FOUND ? 04178000
HRC011DK: BO DFOADS10 YES, TAKE THIS ONE 04179000
HRC011DK: DFOADL05 EQU * 04180000
HRC011DK: LA R6,DFOTELEN(,R6) POINT TO NEXT ENTRY IN TABLE 04181000
HRC011DK: B DFOADLP1 TRY AGAIN 04182000
HRC011DK: SPACE , 04183000
HRC011DK: DFOADS10 EQU * 04184000
HRC011DK: ST R6,ADFOTYPE SAVE ENTRY ADDRESS 04185000
HRC011DK: SPACE , 04186000
HRC011DK: DFOADSEX EQU * 04187000
HRC011DK: BR R14 BACK TO CALLER 04188000
HRC011DK: DFOADFL TM DFOENDFL,*-* CHECK FOR SPECIAL REQUEST 04189000
HRC011DK: DROP R6 04190000
HRC011DK: *.4******************************************************************** 04191000
HRC011DK: * 04192000
HRC011DK: * SUBROUTINE NAME - *----------------* 04193000
HRC011DK: * * UPHDREC * 04194000
HRC011DK: * *----------------* 04195000
HRC011DK: * 04196000
HRC011DK: * FUNCTION - 04197000
HRC011DK: * 04198000
HRC011DK: * UPDATES THE RECORD NUMBERS AND HEAD NUMBERS IN CCW DATA. 04199000
HRC011DK: * RECORDS AND HEADS ARE UPDATED ACCORDING TO THE DATA FOUND IN 04200000
HRC011DK: * DEVICE/FORMAT TABLE ENTRY. ON ENTRY, ADFOTYPE POINTS TO ENTRY 04201000
HRC011DK: * IN DEVICE/FORMAT TABLE. 04202000
HRC011DK: * 04203000
HRC011DK: * OUTPUT REGISTERS - 04204000
HRC011DK: * 04205000
HRC011DK: * R4,R5,R7 - CHANGED 04206000
HRC011DK: * R6 - POINTS TO ENTRY OF DEVICE DATA/FORMAT PROCEDURE TABLE 04207000
HRC011DK: * 04208000
HRC011DK: *.$******************************************************************** 04209000
HRC011DK: SPACE , 04210000
HRC011DK: UPHDREC DS 0H 04211000
HRC011DK: L R6,ADFOTYPE GET DEV/FORM. ENTRY ADDRESS 04212000
HRC011DK: USING DFODATA,R6 04213000
HRC011DK: L R4,DFO1REC POINT TO FIRST CCW DATA TO BE UPD 04214000
HRC011DK: LH R7,DFONRECS LOOP CNT. # OF CCW DATA TO BE UPD 04215000
HRC011DK: SPACE , 04216000
HRC011DK: UPHDRL1 EQU * 04217000
HRC011DK: SPACE , 04218000
HRC011DK: * UPDATE RECORD NUMBER 04219000
HRC011DK: SR R5,R5 PREPARE FOR OLD RECORD NUMBER 04220000
HRC011DK: IC R5,D4(,R4) GET RECORD NUMBER (FORM IS CCHHR) 04221000
HRC011DK: AH R5,DFORPPAS ADD NUMBER OF RECORDS/PASS(PAGES) 04222000
HRC011DK: STC R5,D4(,R4) STORE UPDATED VALUE BACK 04223000
HRC011DK: SPACE , 04224000
HRC011DK: * UPDATE HEAD NUMBER 04225000
HRC011DK: LH R5,D2(,R4) LOAD HH PORTION OF OLD CCHHR 04226000
HRC011DK: AH R5,DFOTRPAS ADD NUMBER OF TRACKS/PASS 04227000
HRC011DK: STH R5,D2(,R4) STORE UPDATED VALUE BACK 04228000
HRC011DK: SPACE , 04229000
HRC011DK: LA R4,NXTREC(,R4) UPDATE R4 TO POINT TO NEXT CCHHR 04230000
HRC011DK: BCT R7,UPHDRL1 LOOP BACK MORE TIMES 04231000
HRC011DK: SPACE , 04232000
HRC011DK: BR R14 GO BACK TO CALLER 04233000
HRC011DK: DROP R6 04234000
HRC011DK: *.4******************************************************************** 04235000
HRC011DK: * 04236000
HRC011DK: * SUBROUTINE NAME - *----------------* 04237000
HRC011DK: * * SENSIT * 04238000
HRC011DK: * * SENSIT2 * 04239000
HRC011DK: * *----------------* 04240000
HRC011DK: * 04241000
HRC011DK: * FUNCTION - 04242000
HRC011DK: * 04243000
HRC011DK: * ISSUE SENSE TO OBTAIN SENSE INFORMATION/ISSUE MESSAGE TO USER 04244000
HRC011DK: * INCORPORATING THE SENSE BYTES AND FAILING CCHHR/BLOCK. 04245000
HRC011DK: * 04246000
HRC011DK: * LOCAL REGISTER USAGE - 04247000
HRC011DK: * 04248000
HRC011DK: * R1 - SENSE CCW ADDRESS 04249000
HRC011DK: * R4 - WORK/MESSAGE ADDRESS 04250000
HRC011DK: * R5 - DEVICE ADDRESS 04251000
HRC011DK: * R14 - LINKAGE 04252000
HRC011DK: * 04253000
HRC011DK: * OPERATION - 04254000
HRC011DK: * 04255000
HRC011DK: * SENSIT: 04256000
HRC011DK: * 1. CLEAR DEVICE STATUS AND ISSUE SENSE. SAVE SENSE BYTES AND 04257000
HRC011DK: * RETURN TO CALLER. 04258000
HRC011DK: * 04259000
HRC011DK: * SENSIT2: 04260000
HRC011DK: * 1. SET UP THE ERROR MESSAGE INCORPORATING THE CCHHR/BLOCK 04261000
HRC011DK: * NUMBER AND THE SENSE BYTES (EITHER 6 OR 24 BYTES). 04262000
HRC011DK: * 2. PRINT THE MESSAGE AND RETURN. 04263000
HRC011DK: * 04264000
HRC011DK: *.$******************************************************************** 04265000
HRC011DK: SPACE , 04266000
HRC011DK: *---------------------------------------------------------------------- 04267000
HRC011DK: * CLEAR DEVICE STATUS AND ISSUE THE SENSE TO THE DEVICE. WHEN 04268000
HRC011DK: * DEVICE IS READY WITH THE SENSE INFO, SAVE THE CSW AND RETURN 04269000
HRC011DK: * TO THE CALLER. 04270000
HRC011DK: *---------------------------------------------------------------------- 04271000
HRC011DK: SPACE , 04272000
HRC011DK: SENSIT LA R1,CCWSENSE ADDRESS OF SENSE CCW INTO R1 04273000
HRC011DK: XC SENSE,SENSE CLEAR SENSE AREA 04274000
HRC011DK: MVC SAVEIT(20),IOOPSW SAVE CSW,CAW,AND IO OLD PSW 04275000
HRC011DK: ST R1,CAW PUT ADDRESS OF CCW INTO CAW 04276000
HRC011DK: SENSTIO TIO 0(R5) CLEAR STATUS 04277000
HRC011DK: BC 2,*-4 LOOP IF BUSY 04278000
HRC011DK: BC 4,SENSDE IF CC=1, GO CHECK FOR DE 04279000
HRC011DK: SENSSIO BAL R14,STRTIO1 START DEVICE 04280000
HRC011DK: TIO 0(R5) DEVICE DONE? 04281000
HRC011DK: BC 2,*-4 LOOP IF BUSY 04282000
HRC011DK: MVC SENSTA(8),CSW SAVE CSW 04283000
HRC011DK: MVC IOOPSW(20),SAVEIT RESTORE CSW,CAW,AND IO OLD PSW 04284000
HRC011DK: BR R7 GO-WHENCE CAME YOU- 04285000
HRC011DK: SENSDE TM CSW+4,DE DEVICE END 04286000
HRC011DK: BO SENSSIO YES, GO DO SIO 04287000
HRC011DK: B SENSTIO 04288000
HRC011DK: *---------------------------------------------------------------------- 04289000
HRC011DK: * SENSIT2 IS CALLED TO PRINT THE SENSE AND CCHH ERROR INFO 04290000
HRC011DK: * WITHIN AN ERROR MESSAGE. 04291000
HRC011DK: *---------------------------------------------------------------------- 04292000
HRC011DK: SPACE , 04293000
HRC011DK: SENSIT2 DS 0H 04294000
HRC011DK: MVC SAVEIT(L20),IOOPSW SAVE CSW,CAW AND IO OLD PSW 04295000
HRC011DK: MVC IOERR+25(5),=C'CCHHR' SET UP FOR CKD MESSAGE 04296000
HRC011DK: SPACE , 04297000
HRC011DK: *---------------------------------------------------------------------- 04298000
HRC011DK: * ISSUE THE MESSAGE 'IO ERROR XXX CCHHR = XXXXXXXXXX SENSE = XXX 04299000
HRC011DK: * XXXXXXXXX'. IF MORE THAN SIX SENSE BYTES, THEN PUT THE 18 04300000
HRC011DK: * EXTRA SENSE BYTES INTO THE ERROR MESSAGE AND PRINT THE SECOND 04301000
HRC011DK: * LINE OF THE ERROR MESSAGE TO INCLUDE THESE SENSE BYTES. 04302000
HRC011DK: *---------------------------------------------------------------------- 04303000
HRC011DK: SPACE , 04304000
HRC011DK: MSGLNK EQU * 04305000
HRC011DK: UNPK WORK+12(11),CCHHR(6) CHANGE CCHHR DATA TO ZONED 04306000
HRC011DK: TR WORK(22),TTAB-240 TRANSLATE TO PRINTABLE CHAR 04307000
HRC011DK: MVC IOERR+33(10),WORK+12 PUT CCHHR INTO THE MSG 04308000
HRC011DK: MSGLNK1 EQU * 04309000
HRC011DK: LA R4,IOERR ADDRESS OF ERROR MESSAGE INTO R4 04310000
HRC011DK: BAL R14,WMSG WRITE MESSAGE 04311000
HRC011DK: SPACE , 04312000
HRC011DK: *---------------------------------------------------------------------- 04313000
HRC011DK: * PUT SENSE DATA INTO MESSAGE. FIRST ENSURE ALL ZONE BITS ARE ON, THEN 04314000
HRC011DK: * CALCULATE NUMBER OF SENSE BYTES AND NUMBER OF BLANKS, SET UP DATA 04315000
HRC011DK: * AREA POINTERS, AND WRITE THE MESSAGE. 04316000
HRC011DK: *---------------------------------------------------------------------- 04317000
HRC011DK: SPACE , 04318000
HRC011DK: STM R0,R3,PCREGS SAVE REGISTERS FOR NOW 04319000
HRC011DK: OI IOERR2+7,X'F0' ENSURE ALL ZONE BITS ARE ON 04320000
HRC011DK: OC IOERR2+8(63),IOERR2+7 ... 04321000
HRC011DK: LA R1,L'SENSE MAXIMUM NUMBER OF SENSE BYTES 04322000
HRC011DK: LH R2,SENSTA+6 RESIDUAL COUNT, BYTES TO BLANK 04323000
HRC011DK: SR R1,R2 RESULT IS NUMBER OF SENSE BYTES 04324000
HRC011DK: LA R3,SENSE POINT TO SENSE DATA 04325000
HRC011DK: LA R4,IOERR2+7 START OF SENSE DATA IN MESSAGE 04326000
HRC011DK: BAL R14,UNPKLOOP UNPACK SUBROUTINE DOES THE WORK 04327000
HRC011DK: LM R0,R3,PCREGS RESTORE THE REGISTERS 04328000
HRC011DK: LA R4,IOERR2 ADDRESS OF 2ND LINE OF ERROR MSG 04329000
HRC011DK: BAL R14,WMSG WRITE MESSAGE 04330000
HRC011DK: SPACE , 04331000
HRC011DK: SENSIT3 DS 0H RESTORE INFO AND RETURN 04332000
HRC011DK: MVC IOOPSW(20),SAVEIT RESTORE CSW, CAW, I/O PSW 04333000
HRC011DK: BR R7 RETURN TO CALLER 04334000
HRC011DK: *.4******************************************************************** 04335000
HRC011DK: * 04336000
HRC011DK: * SUBROUTINE NAME - *----------------* 04337000
HRC011DK: * * FMT744 * 04338000
HRC011DK: * *----------------* 04339000
HRC011DK: * 04340000
HRC011DK: * FUNCTION - 04341000
HRC011DK: * 04342000
HRC011DK: * DISPLAY MESSAGE 744 AFTER SENSE ID FAILURE. DASD CONTROL 04343000
HRC011DK: * UNIT IS IN DEEP TROUBLE IF IT CANNOT DO A SENSE ID, SO 04344000
HRC011DK: * DISPLAY THE MESSAGE AND TREAT LIKE FATAL I/O ERROR. 04345000
HRC011DK: * 04346000
HRC011DK: * LOCAL REGISTER USAGE - 04347000
HRC011DK: * 04348000
HRC011DK: * R14 - LINKAGE 04349000
HRC011DK: * R1-R5 ARE WORK REGISTERS. 04350000
HRC011DK: * 04351000
HRC011DK: * OPERATION - 04352000
HRC011DK: * 04353000
HRC011DK: * 1. SAVE INPUT ENVIRONMENT. 04354000
HRC011DK: * 2. INSERT DEVICE ADDRESS AND CSW DATA INTO THE MESSAGE. 04355000
HRC011DK: * 3. SEND THE MESSAGE, RESTORE THE ENVIRONMENT, AND EXIT. 04356000
HRC011DK: * 04357000
HRC011DK: *.$******************************************************************** 04358000
HRC011DK: SPACE , 04359000
HRC011DK: FMT744 DS 0H DISPLAY ERROR MESSAGE 744 04360000
HRC011DK: STM R0,R15,PCREGS SAVE REGISTERS 04361000
HRC011DK: MVC SAVEIT(20),IOOPSW SAVE CSW, CAW, I/O OLD PSW 04362000
HRC011DK: SPACE , 04363000
HRC011DK: *---------------------------------------------------------------------- 04364000
HRC011DK: * INSERT DEVICE ADDRESS IN MESSAGE. 04365000
HRC011DK: *---------------------------------------------------------------------- 04366000
HRC011DK: SPACE , 04367000
HRC011DK: LA R1,2 NUMBER OF BYTES TO TRANSLATE 04368000
HRC011DK: SR R2,R2 NUMBER OF BYTES TO BLANK-FILL 04369000
HRC011DK: STH R5,WORK STORE DEVICE ADDRESS 04370000
HRC011DK: LA R3,WORK SOURCE DATA POINTER 04371000
HRC011DK: LA R4,MSG744+21 DESTINATION POINTER 04372000
HRC011DK: BAL R14,UNPKLOOP PUT DEVICE ADDRESS IN MESSAGE 04373000
HRC011DK: MVI MSG744+21,C' ' BLANK OUT LEADING ZERO 04374000
HRC011DK: SPACE , 04375000
HRC011DK: *---------------------------------------------------------------------- 04376000
HRC011DK: * INSERT CSW IN MESSAGE. 04377000
HRC011DK: *---------------------------------------------------------------------- 04378000
HRC011DK: SPACE , 04379000
HRC011DK: LA R1,8 SOURCE DATA LENGTH 04380000
HRC011DK: LA R3,CSW SOURCE DATA ADDRESS 04381000
HRC011DK: LA R4,MSG744+42 DESTINATION DATA ADDRESS 04382000
HRC011DK: BAL R14,UNPKLOOP GO TRANSLATE DATA 04383000
HRC011DK: SPACE , 04384000
HRC011DK: LA R4,MSG744 POINT TO MESSAGE 04385000
HRC011DK: BAL R14,WMSG GO SEND IT 04386000
HRC011DK: MVC IOOPSW(20),SAVEIT RESTORE CAW, CSW, I/O PSW 04387000
HRC011DK: LM R0,R15,PCREGS RESTORE REGISTERS 04388000
HRC011DK: B GETCARD GO START OVER 04389000
HRC011DK: *.4******************************************************************** 04390000
HRC011DK: * 04391000
HRC011DK: * SUBROUTINE NAME - *----------------* 04392000
HRC011DK: * * UNPKLOOP * 04393000
HRC011DK: * *----------------* 04394000
HRC011DK: * 04395000
HRC011DK: * FUNCTION - 04396000
HRC011DK: * 04397000
HRC011DK: * UNPACK AND TRANSLATE DATA, AND BLANK-FILL TO RIGHT BOUNDARY. 04398000
HRC011DK: * 04399000
HRC011DK: * INPUT REGISTERS - 04400000
HRC011DK: * 04401000
HRC011DK: * R1 - NUMBER OF BYTES TO TRANSLATE 04402000
HRC011DK: * R2 - NUMBER OF BYTES TO BLANK-FILL 04403000
HRC011DK: * R3 - SOURCE DATA POINTER 04404000
HRC011DK: * R4 - DESTINATION DATA POINTER 04405000
HRC011DK: * 04406000
HRC011DK: * LOCAL REGISTER USAGE - 04407000
HRC011DK: * 04408000
HRC011DK: * R0 IS A WORK REGISTER. 04409000
HRC011DK: * 04410000
HRC011DK: * OPERATION - 04411000
HRC011DK: * 04412000
HRC011DK: * 1. UNPACK AND TRANSLATE DATA. 04413000
HRC011DK: * 2. BLANK-FILL TO RIGHT BOUNDARY. 04414000
HRC011DK: * 04415000
HRC011DK: *.$******************************************************************** 04416000
HRC011DK: SPACE , 04417000
HRC011DK: UNPKLOOP DS 0H TRANSLATE DATA 04418000
HRC011DK: IC R0,0(R3) MOVE IN FIRST HALF OF BYTE 04419000
HRC011DK: SRL R0,4 ... 04420000
HRC011DK: STC R0,0(R4) ... 04421000
HRC011DK: OI 0(R4),X'F0' ... 04422000
HRC011DK: MVN 1(1,R4),0(R3) MOVE IN SECOND HALF OF BYTE 04423000
HRC011DK: TR 0(2,R4),TTAB-240 TRANSLATE BOTH TO EBCDIC 04424000
HRC011DK: SPACE , 04425000
HRC011DK: *---------------------------------------------------------------------- 04426000
HRC011DK: * UPDATE DATA POINTERS, CHECK FOR TRANSLATE BYTES DONE. 04427000
HRC011DK: *---------------------------------------------------------------------- 04428000
HRC011DK: SPACE , 04429000
HRC011DK: LA R3,1(R3) POINT TO NEXT SOURCE BYTE 04430000
HRC011DK: LA R4,2(R4) POINT TO NEXT DESTINATION BYTE 04431000
HRC011DK: BCT R1,UNPKLOOP LOOP IF MORE SOURCE DATA 04432000
HRC011DK: SPACE , 04433000
HRC011DK: *---------------------------------------------------------------------- 04434000
HRC011DK: * BLANK-FILL TWO BYTES FOR EACH ONE IN R2, IF ANY. 04435000
HRC011DK: *---------------------------------------------------------------------- 04436000
HRC011DK: SPACE , 04437000
HRC011DK: LTR R2,R2 ANY BYTES LEFT? 04438000
HRC011DK: BZ BLNKDONE NO, JUST RETURN TO CALLER 04439000
HRC011DK: BLNKLOOP DS 0H 04440000
HRC011DK: MVC 0(2,R4),=C' ' MOVE IN TWO BLANKS 04441000
HRC011DK: LA R4,2(R4) POINT TO NEXT DIGIT 04442000
HRC011DK: BCT R2,BLNKLOOP LOOP IF MORE TO DO 04443000
HRC011DK: BLNKDONE DS 0H ALL DONE, EXIT 04444000
HRC011DK: BR R14 RETURN TO CALLER 04445000
HRC011DK: *.4******************************************************************** 04446000
HRC011DK: * 04447000
HRC011DK: * SUBROUTINE NAME - *----------------* 04448000
HRC011DK: * * CORRCSW * 04449000
HRC011DK: * *----------------* 04450000
HRC011DK: * 04451000
HRC011DK: * FUNCTION - 04452000
HRC011DK: * 04453000
HRC011DK: * TO CALL THIS ROUTINE WE HAVE AN IMPRECISE ENDING CONDITION 04454000
HRC011DK: * WHICH INDICATES THAT THE CSW DOES NOT CORRECTLY REFLECT THE 04455000
HRC011DK: * FAILING CCW. THIS ROUTINE WILL CORRECT THE CSW. ONCE WE 04456000
HRC011DK: * ARE DONE CORRECTING THE CSW, TURN OFF THE IMPRECISE ENDING 04457000
HRC011DK: * CONDITION IN THE SENSE BYTES. THE USER HAS NO NEED TO KNOW 04458000
HRC011DK: * THIS CONDITION EVER EXISTED SINCE WE HAVE CORRECTED THE CSW. 04459000
HRC011DK: * 04460000
HRC011DK: * OPERATION - 04461000
HRC011DK: * 04462000
HRC011DK: * 1. SCAN CCW STRING FOR A LOCATE RECORD CCW AND SAVE THIS 04463000
HRC011DK: * ADDRESS. 04464000
HRC011DK: * 2. CALCULATE # OF RECORDS READ = 04465000
HRC011DK: * (# RECS FROM LOC REC DATA ) - RESIDUAL CNT IN SENSE BYTE3) 04466000
HRC011DK: * 3. FAILING CCW = 04467000
HRC011DK: * (# REC READ) + (LOC REC ADDR) + 8 04468000
HRC011DK: * (ADD 8 TO CORRECT FOR CONTROL UNIT POINTER) 04469000
HRC011DK: * 04470000
HRC011DK: *.$******************************************************************** 04471000
HRC011DK: SPACE , 04472000
HRC011DK: CORRCSW DS 0H 04473000
HRC011DK: STM R14,R10,STRTSAVE SAVE REGISTERS 04474000
HRC011DK: L R3,CSW GET THE CSW 04475000
HRC011DK: LA R3,0(,R3) CLEAR THE KEYS OUT 04476000
HRC011DK: L R4,CAW GET THE CAW 04477000
HRC011DK: LA R4,0(,R4) CLEAR KEYS OUT 04478000
HRC011DK: FINDLR DS 0H 04479000
HRC011DK: CLI 0(R4),TIC BY CHANCE THIS A TIC CCW? 04480000
HRC011DK: BE TICHK GO SEE WHERE IT GOES 04481000
HRC011DK: CLI 0(R4),LOCREC THIS A LOC REC CCW? 04482000
HRC011DK: BNE GTNXT NO, GET THE NEXT CCW 04483000
HRC011DK: ST R4,SAVLOCR SAVE THIS LOC REC IN CASE NXT 04484000
HRC011DK: * ..ONE PASS THE FAILING CCW 04485000
HRC011DK: GTNXT DS 0H 04486000
HRC011DK: CR R4,R3 ARE WE PASSED THE FAILING CCW? 04487000
HRC011DK: BH GTLOCREC YES,GO GET LOC REC DATA 04488000
HRC011DK: LA R4,8(,R4) GET NEXT CCW 04489000
HRC011DK: B FINDLR CONTINUE TO FIND LOC REC CCW 04490000
HRC011DK: SPACE , 04491000
HRC011DK: TICHK DS 0H 04492000
HRC011DK: CLM R4,B'0111',D1(R4) TIC BACKWARD OR FORWARD? 04493000
HRC011DK: BNL GTNXT TICS BACKWARD, IGNORE IT 04494000
HRC011DK: L R4,0(,R4) GET TIC TO ADDRESS 04495000
HRC011DK: LA R4,0(,R4) CLEAR OP CODE 04496000
HRC011DK: B FINDLR CONTINUE TO FIND LOC REC CCW 04497000
HRC011DK: GTLOCREC DS 0H 04498000
HRC011DK: L R4,SAVLOCR RETRIEVE LAST LOC REC CCW ADDR 04499000
HRC011DK: L R5,0(,R4) PICK UP LOC REC DATA ADDRESS 04500000
HRC011DK: LA R5,0(,R5) CLEAR THE OP CODE FROM ADDRESS 04501000
HRC011DK: SR R2,R2 CLEAR WORK REG 04502000
HRC011DK: IC R2,D3(,R5) PICK UP THE RECORD COUNT 04503000
HRC011DK: SR R5,R5 CLEAR WORK REGISTER 04504000
HRC011DK: IC R5,SENSEB3 GET THE RESIDUAL COUNT 04505000
HRC011DK: SR R2,R5 REC CNT - RES CNT = # OF REC READ 04506000
HRC011DK: LA R2,2(,R2) ADD CORRECTION FACTOR 04507000
HRC011DK: SLL R2,3 GET REC CNT IN BYTES 04508000
HRC011DK: AR R2,R4 R2= ADDR OF FAILING CCW 04509000
HRC011DK: STCM R2,B'0111',CSW+1 CORRECT THE CSW 04510000
HRC011DK: NI SENSEB2,X'FF'-IMPREND CLEAR IMPRECISE END COND. 04511000
HRC011DK: LM R14,R10,STRTSAVE RESTORE REGISTERS 04512000
HRC011DK: BR R6 RETURN TO CALLER 04513000
HRC011DK: *.4******************************************************************** 04514000
HRC011DK: * 04515000
HRC011DK: * SUBROUTINE NAME - *----------------* 04516000
HRC011DK: * * STRTIO * 04517000
HRC011DK: * * STRTIO1 * 04518000
HRC011DK: * *----------------* 04519000
HRC011DK: * 04520000
HRC011DK: * FUNCTION - 04521000
HRC011DK: * 04522000
HRC011DK: * START A DEVICE AND TRAP THE FAILING DIRECTOR CONDITION. 04523000
HRC011DK: * THE OUTPUT IS THE CONDITION CODE FROM THE START I/O. 04524000
HRC011DK: * ALL REGISTERS EXCEPT R11-R13 ARE SAVED. CSW, SENSE, AND CAW 04525000
HRC011DK: * ARE SAVED WHEN SENSE IS DONE. 04526000
HRC011DK: * 04527000
HRC011DK: * INPUT REGISTERS - 04528000
HRC011DK: * 04529000
HRC011DK: * R5 - ADDRESS OF DEVICE 04530000
HRC011DK: * 04531000
HRC011DK: * LOCAL REGISTER USAGE - 04532000
HRC011DK: * 04533000
HRC011DK: * R3 - SAVE ADDRESS FOR POSSIBLE RESTART 04534000
HRC011DK: * 04535000
HRC011DK: * OPERATION - 04536000
HRC011DK: * 04537000
HRC011DK: * 1. CHECK FOR ERROR, IF ERROR SAVE ADDRESS FOR RESTART 04538000
HRC011DK: * 2. START DEVICE 04539000
HRC011DK: * 3. OBTAIN RESTART CCW CHAIN IF ERROR OCCURS 04540000
HRC011DK: * 4. RECALIBRATE FAILING DEVICE 04541000
HRC011DK: * 5. ERROR RESET 04542000
HRC011DK: * 04543000
HRC011DK: *.$******************************************************************** 04544000
HRC011DK: SPACE , 04545000
HRC011DK: *---------------------------------------------------------------------- 04546000
HRC011DK: * HERE, SIO IS ISSUED WITHOUT THE NEED TO CLEAR DEVICE STATUS 04547000
HRC011DK: * WITH A TIO. FOR CC0 OR CC3, RETURN TO CALLER. 04548000
HRC011DK: *---------------------------------------------------------------------- 04549000
HRC011DK: SPACE , 04550000
HRC011DK: STRTIO1 EQU * START I/O WITHOUT TIO 04551000
HRC011DK: STM R14,R10,STRTSAVE SAVE REGS. 04552000
HRC011DK: XC EDPERCNT,EDPERCNT ZERO EDP RETRY COUNTER 04553000
HRC011DK: LA R3,RESTRT1 SAVE ADDR. FOR POSSIBLE RESTART 04554000
HRC011DK: RESTRT1 SIO 0(R5) START THE DEVICE 04555000
HRC011DK: BC BSY,*-4 SPIN ON CHANNEL BUSY 04556000
HRC011DK: BC CSWCDE,CSWSTRD IF CSW WAS STORED GO CHECK IT OUT 04557000
HRC011DK: B STRTRET CALLER HANDLES ANY OTHER COND. 04558000
HRC011DK: SPACE , 04559000
HRC011DK: *---------------------------------------------------------------------- 04560000
HRC011DK: * STRTIO IS CALLED TO EITHER ISSUE A SENSE OR READ A LABEL FROM 04561000
HRC011DK: * A DEVICE. THIS IS PRECEDED BY A TIO TO CLEAR DEVICE STATUS 04562000
HRC011DK: * FIRST. START I/O TO THE DEVICE. FOR CC0 OR CC3, RETURN TO 04563000
HRC011DK: * THE CALLER. 04564000
HRC011DK: *---------------------------------------------------------------------- 04565000
HRC011DK: SPACE , 04566000
HRC011DK: STRTIO EQU * START I/O WITH TIO 04567000
HRC011DK: STM R14,R10,STRTSAVE SAVE REGS. 04568000
HRC011DK: TIO 0(R5) CLEAR STATUS OF DEVICE 04569000
HRC011DK: BC BSY,*-4 IF NOT CLEAR TRY AGAIN 04570000
HRC011DK: XC EDPERCNT,EDPERCNT ZERO EDP RETRY COUNTER 04571000
HRC011DK: LA R3,RESTRTIO ADDRESS FOR POSSIBLE RESTART 04572000
HRC011DK: RESTRTIO EQU * 04573000
HRC011DK: SIO 0(R5) START THE DEVICE 04574000
HRC011DK: BC BSY,*-4 SPIN ON CHANNEL BUSY 04575000
HRC011DK: BC CSWCDE,CKCSW1 IF CSW WAS STORED, GO CHECK 04576000
HRC011DK: TIO 0(R5) LET DEVICE FINISH 04577000
HRC011DK: BC BSY,*-4 IF BUSY KEEP TRYING 04578000
HRC011DK: STRTRET EQU * 04579000
HRC011DK: LM R14,R10,STRTSAVE RELOAD REGS. 04580000
HRC011DK: BR R14 RETURN TO CALLER 04581000
HRC011DK: SPACE , 04582000
HRC011DK: *---------------------------------------------------------------------- 04583000
HRC011DK: * FOR CC1 FROM THE SIO, CHECK THE CSW STATUS. CSWSTRD IS CALLED 04584000
HRC011DK: * FROM STRTIO1. FOR DEVICE BUSY, RE-ISSUE SIO. 04585000
HRC011DK: *---------------------------------------------------------------------- 04586000
HRC011DK: SPACE , 04587000
HRC011DK: CKCSW1 BALR R6,0 SAVE CONDITION CODE 04588000
HRC011DK: TM CSW+4,BUSY WAS DEVICE BUSY? 04589000
HRC011DK: BO RESTRTIO YES, RESTART I/O 04590000
HRC011DK: B NOTBUSY NO, CHECK FOR 3380 04591000
HRC011DK: SPACE , 04592000
HRC011DK: CSWSTRD EQU * 04593000
HRC011DK: BALR R6,0 SAVE CONDITION CODE 04594000
HRC011DK: NOTBUSY EQU * 04595000
HRC011DK: TM CSW+4,CUBSY+CUEND CONTROL UNIT BUSY OR END? 04596000
HRC011DK: BNZR R3 YES, TRY SIO AGAIN. 04597000
HRC011DK: CLI TYPE,TYP3380 IS DEVICE A 3380 DEVICE 04598000
HRC011DK: BNE SETCCRET NO, DON'T WORRY ABOUT FAILING DM 04599000
HRC011DK: SPACE , 04600000
HRC011DK: *---------------------------------------------------------------------- 04601000
HRC011DK: * FOR 3380 - CHECK FOR FAILING DIRECTOR MODULE. FOR A 04602000
HRC011DK: * UNIT CHECK ISSUE A SENSE TO THE FAILING DIRECTOR. IF THE 04603000
HRC011DK: * SENSE INDICATES THAT THE DIRECTOR MODULE FAILED, THEN GO ISSUE 04604000
HRC011DK: * MESSAGE. ELSE, RESTORE SENSE INFORMATION AND RETURN. 04605000
HRC011DK: *---------------------------------------------------------------------- 04606000
HRC011DK: SPACE , 04607000
HRC011DK: CKFLD EQU * 04608000
HRC011DK: TM UNSTAT,UC WAS THIS UNIT CHECK? 04609000
HRC011DK: BNO SETCCRET NO, GO REFLECT TO USER 04610000
HRC011DK: MVC STRTSVSN,SENSE SAVE THE OLD SENSE 04611000
HRC011DK: LA R2,CCWSENSE ADDRESS OF SENSE CCW IN REG 04612000
HRC011DK: XC SENSE,SENSE CLEAR SENSE AREA 04613000
HRC011DK: MVC STRTSVIO,IOOPSW SAVE CAW,CSW AND IO OLD PSW 04614000
HRC011DK: ST R2,CAW STORE CAW 04615000
HRC011DK: SIO 0(R5) SENSE FOR FAILING DIRECTOR 04616000
HRC011DK: TIO 0(R5) WAIT FOR DEVICE TO FINISH 04617000
HRC011DK: BC BSY,*-4 STILL BUSY, KEEP TRYING 04618000
HRC011DK: MVC IOOPSW(LSAVE),STRTSVIO REST. CAW,CSW AND IOOLD 04619000
HRC011DK: SPACE , 04620000
HRC011DK: *---------------------------------------------------------------------- 04621000
HRC011DK: * HANDLE ENVIRONMENTAL DATA PRESENT ON START I/O 04622000
HRC011DK: * 04623000
HRC011DK: * IF THERE IS NO EDP IN SENSE 04624000
HRC011DK: * THEN EXIT THIS ROUTINE 04625000
HRC011DK: * IF THIS IS FIRST EDP 04626000
HRC011DK: * THEN MOVE SENSE DATA TO SPECIAL SAVE AREA 04627000
HRC011DK: * IF EDP RETRY COUNT >= 255 04628000
HRC011DK: * THEN RESTORE SENSE FROM SPECIAL SAVE AREA 04629000
HRC011DK: * ISSUE MESSAGE 736 04630000
HRC011DK: * GO TO FATAL ROUTINE 04631000
HRC011DK: * INCREMENT EDP RETRY COUNT 04632000
HRC011DK: * RESTORE DEVICE ADDRESS AND RETURN TO SIO ROUTINE 04633000
HRC011DK: *---------------------------------------------------------------------- 04634000
HRC011DK: SPACE , 04635000
HRC011DK: TM SENSEB2,ENVDATA IF SENSE BYTE 2 DOES NOT HAVE 04636000
HRC011DK: BZ EQCHKRTN EDP THEN EXIT THIS ROUTINE 04637000
HRC011DK: * AND CHECK FOR EQUIPMENT CHECK 04638000
HRC011DK: LH R4,EDPERCNT LOAD AND CHECK EDP COUNT 04639000
HRC011DK: LTR R4,R4 IS THIS FIRST EDP? 04640000
HRC011DK: BNZ CKEDPLMT NO, GO CHECK EDP LIMIT 04641000
HRC011DK: MVC EDPSENSE,SENSE MOVE SENSE TO SAVE AREA 04642000
HRC011DK: SPACE , 04643000
HRC011DK: CKEDPLMT DS 0H 04644000
HRC011DK: CLC EDPERCNT,EDPLIMIT IS RETRY COUNT >= 255? 04645000
HRC011DK: BNL EDPFATAL YES, FATAL, TAKE ACTION 04646000
HRC011DK: LA R4,1(R4) INCREMENT EDP RETRY COUNT 04647000
HRC011DK: STH R4,EDPERCNT REPLACE EDP ERROR COUNT 04648000
HRC011DK: L R5,STRTSAVE+D28 RESTORE DEVICE ADDRESS 04649000
HRC011DK: BR R3 RETURN TO SIO ROUTINE 04650000
HRC011DK: SPACE , 04651000
HRC011DK: EDPFATAL DS 0H FATAL CONDITIONS EXIST 04652000
HRC011DK: MVC SENSE,EDPSENSE RESTORE SENSE 04653000
HRC011DK: BAL R7,SENSIT2 PRT SENSE AND CCHH MESSAGE 04654000
HRC011DK: B FATAL GO TO FATAL AND ABORT 04655000
HRC011DK: SPACE , 04656000
HRC011DK: *---------------------------------------------------------------------- 04657000
HRC011DK: * MUST CHECK FOR EQUIPMENT CHECK AND FAILING DIRECTOR 04658000
HRC011DK: * IT IS NOT FAILING DIRECTOR UNLESS BOTH ARE ON 04659000
HRC011DK: *---------------------------------------------------------------------- 04660000
HRC011DK: SPACE , 04661000
HRC011DK: EQCHKRTN DS 0H 04662000
HRC011DK: TM SENSE,EQCHK ANY EQUIPMENT CHECK? 04663000
HRC011DK: BZ NOTEQCHK NO EQUIPMENT CHECK, BRANCH 04664000
HRC011DK: TM SENSEB1,FLNGDRCT WAS IT THE DIRECTOR MODULE ? 04665000
HRC011DK: BO CSWMSG YES, TELL USER WHAT HAPPENED 04666000
HRC011DK: NOTEQCHK DS 0H NO FAILING DIRECTOR 04667000
HRC011DK: MVC IOOPSW(LSAVE),STRTSVIO REST. CAW,CSW AND IO OLD 04668000
HRC011DK: MVC SENSE,STRTSVSN RESTORE SENSE INFORMATION 04669000
HRC011DK: B SETCCRET SET CC AND RETURN 04670000
HRC011DK: SPACE , 04671000
HRC011DK: *---------------------------------------------------------------------- 04672000
HRC011DK: * BYTE 1, BIT 3 INDICATES THAT A PERMANENT FAILURE OCCURRED IN 04673000
HRC011DK: * THE OTHER STORAGE DIRECTOR IN THE SAME 3880 OR WITH A STATE 04674000
HRC011DK: * SAVE OPERATION IN THE REPORTING STORAGE DIRECTOR. BYTE 0, 04675000
HRC011DK: * BIT 3 INDICATES AN EQUIPMENT CHECK. THESE TWO BITS COMBINED 04676000
HRC011DK: * INDICATE A PERMANENT FAILURE OF THE ALTERNATE STORAGE 04677000
HRC011DK: * DIRECTOR. 04678000
HRC011DK: * 04679000
HRC011DK: * FOR 3380 - ISSUE MESSAGE 'XXX REPORTS DISABLED INTERFACE; 04680000
HRC011DK: * FLT CODE = XXXX; NOTIFY CE' AND THEN GO RESTART THE I/O. 04681000
HRC011DK: * 04682000
HRC011DK: * 04683000
HRC011DK: * TRANSLATION PROCESS: 04684000
HRC011DK: * 04685000
HRC011DK: * HEX DASD ADDRESS PRELIMINARY DASD ADDRESS 04686000
HRC011DK: * +----+----+----+ UNPK +----+----+----+----+ 04687000
HRC011DK: * | 01 | 9A | XX | -----> | F1 | F9 | FA | XX | 04688000
HRC011DK: * +----+----+----+ +----+----+----+----+ 04689000
HRC011DK: * 04690000
HRC011DK: * HEX FAULT CODE PRELIMINARY DASD ADDRESS AND FAULT CODE 04691000
HRC011DK: * +----+----+----+ UNPK +----+----+----+----+----+----+----+----+ 04692000
HRC011DK: * | D6 | CB | XX | -----> | F1 | F9 | FA | FD | F6 | FC | FB | XX | 04693000
HRC011DK: * +----+----+----+ +----+----+----+----+----+----+----+----+ 04694000
HRC011DK: * 04695000
HRC011DK: * PRELIMINARY DATA EBCDIC DASD ADDRESS AND FAULT CODE 04696000
HRC011DK: * +----+----+----+ TR +----+----+----+----+----+----+----+ 04697000
HRC011DK: * | | | | -----> | F1 | F9 | C1 | C4 | F6 | C3 | C2 | 04698000
HRC011DK: * +----+----+----+ +----+----+----+----+----+----+----+ 04699000
HRC011DK: * DASD ADDRESS | FAULT CODE 04700000
HRC011DK: * 04701000
HRC011DK: *---------------------------------------------------------------------- 04702000
HRC011DK: SPACE , 04703000
HRC011DK: CSWMSG EQU * 04704000
HRC011DK: UNPK WORK(L4),DSKADD(L3) CONVERT DEVICE ADDRESS 04705000
HRC011DK: UNPK WORK+D3(L5),FLTCDE(L3) CONVERT FAULT CODE 04706000
HRC011DK: TR WORK(L7),TTAB-D240 ...... 04707000
HRC011DK: MVC DRCTFAIL+D12(L3),WORK MOVE DEVICE ADDR INTO MSG 04708000
HRC011DK: MVC DRCTFAIL+D55(L4),WORK+D3 MOVE FLT CODE INTO MSG 04709000
HRC011DK: LA R4,DRCTFAIL ADDRESS OF MESSAGE INTO R4 04710000
HRC011DK: BAL R14,WMSG GO WRITE THE MESSAGE 04711000
HRC011DK: L R5,STRTSAVE+D28 RESTORE THE DEVICE ADDRESS. 04712000
HRC011DK: MVC IOOPSW(LSAVE),STRTSVIO REST. THE CSW,CAW, IOPSW 04713000
HRC011DK: MVC SENSE,STRTSVSN RESTORE SENSE INFORMATION 04714000
HRC011DK: BR R3 GO RESTART THE IO 04715000
HRC011DK: SPACE , 04716000
HRC011DK: *---------------------------------------------------------------------- 04717000
HRC011DK: * RESTORE THE SIO CONDITION CODE AND THEN RETURN TO THE CALLER. 04718000
HRC011DK: *---------------------------------------------------------------------- 04719000
HRC011DK: SPACE , 04720000
HRC011DK: SETCCRET EQU * 04721000
HRC011DK: SPM R6 SET CC FROM SIO 04722000
HRC011DK: B STRTRET AND RETURN TO USER 04723000
HRC011DK: *.4******************************************************************** 04724000
HRC011DK: * 04725000
HRC011DK: * SUBROUTINE NAME - *----------------* 04726000
HRC011DK: * * ALTCHK * 04727000
HRC011DK: * *----------------* 04728000
HRC011DK: * 04729000
HRC011DK: * FUNCTION - 04730000
HRC011DK: * 04731000
HRC011DK: * CHECK POINTERS IN FLAGGED PRIMARY TRACK AND ALTERNATE TRACK 04732000
HRC011DK: * TO SEE THAT EACH POINTS TO THE OTHER AND RETURN THE CCHH 04733000
HRC011DK: * ADDRESS OF WHICHEVER WE ARE CURRENTLY NOT AT. 04734000
HRC011DK: * 04735000
HRC011DK: * INPUT REGISTERS - 04736000
HRC011DK: * 04737000
HRC011DK: * R7 - RETURN ADDRESS 04738000
HRC011DK: * 04739000
HRC011DK: * OUTPUT REGISTERS - 04740000
HRC011DK: * 04741000
HRC011DK: * R0 - =0 IF CCHH IN R1 POINTS TO THE ASSIGNED ALTERNATE 04742000
HRC011DK: * =1 IF CCHH IN R1 POINTS TO THE DEFECTIVE PRIMARY 04743000
HRC011DK: * R1 - (-1) IF TRACKS DO NOT POINT TO EACH OTHER CORRECTLY, 04744000
HRC011DK: * OTHERWISE R1 = CCHH ADDRESS OF WHICHEVER OF THE TWO 04745000
HRC011DK: * TRACKS WE ARE NOT AT WHEN THE TRACK CONDITION CHECK 04746000
HRC011DK: * WAS DETECTED. 04747000
HRC011DK: * 04748000
HRC011DK: * LOCAL REGISTER USAGE - 04749000
HRC011DK: * 04750000
HRC011DK: * R0 - TRACK USAGE BIT 04751000
HRC011DK: * R1 - WORK 04752000
HRC011DK: * R6 - ADDRESSABILITY 04753000
HRC011DK: * R7 - LINKAGE 04754000
HRC011DK: * 04755000
HRC011DK: * OPERATION - 04756000
HRC011DK: * 04757000
HRC011DK: * TWO I/O OPERATIONS HAVE TO BE SCHEDULED FROM HERE WHICH MEANS 04758000
HRC011DK: * THAT TWICE CONTROL WILL HAVE TO LEAVE THIS SUBROUTINE AND 04759000
HRC011DK: * COME BACK IN BEFORE WE CAN RETURN TO OUR CALLER. THIS IS 04760000
HRC011DK: * ACCOMPLISHED BY GOING TO OP V (STIO) AFTER SETTING A FLAG THAT 04761000
HRC011DK: * THE I/O INTERRUPT HANDLER RECOGNIZES AS A SIGNAL TO RE-ENTER 04762000
HRC011DK: * THIS ROUTINE. THE I/O HANDLER CHECKS FOR ERRORS BEFORE 04763000
HRC011DK: * CHECKING OUR FLAG, SO ERROR RECOVERY CAN BE TRIED ON OUR I/O 04764000
HRC011DK: * IF NECESSARY. 04765000
HRC011DK: * 04766000
HRC011DK: * 1. GET THE CCHH ADDRESS OF THE TRACK WE ARE CURRENTLY ON. 04767000
HRC011DK: * 2. READ THE HOME ADDRESS AND RECORD 0 OF THIS TRACK. 04768000
HRC011DK: * 3. READ THE HOME ADDRESS AND RECORD 0 OF THE SECOND TRACK 04769000
HRC011DK: * (WHICH WOULD BE EITHER THE ALTERNATE TRACK OR THE DEFECTIVE 04770000
HRC011DK: * PRIMARY TRACK). 04771000
HRC011DK: * 4. TEST THE TRACK USAGE BITS OF THIS TRACK. IF NOT MIXED, 04772000
HRC011DK: * THEN EXIT. 04773000
HRC011DK: * 5. CHECK THE TRACK USAGE BITS TO VERIFY THAT ONE AND ONLY ONE 04774000
HRC011DK: * OF THE TRACKS IS AN ASSIGNED ALTERNATE. 04775000
HRC011DK: * 6. RETURN IN R1 THE CCHH OF THE SECOND TRACK AND RETURN IN R0 04776000
HRC011DK: * THE TRACK USAGE (ASSIGNED ALTERNATE OR DEFECTIVE PRIMARY). 04777000
HRC011DK: * 04778000
HRC011DK: *.$******************************************************************** 04779000
HRC011DK: SPACE , 04780000
HRC011DK: *---------------------------------------------------------------------- 04781000
HRC011DK: * CALL THE SENSCCHH SUBROUTINE WHICH RETURNS IN R1 THE CCHH 04782000
HRC011DK: * ADDRESS OF THE TRACK WE ARE CURRENTLY ON. THIS IS OBTAINED 04783000
HRC011DK: * FROM THE SENSE DATA READ AT THE TIME OF THE TRACK CONDITION 04784000
HRC011DK: * CHECK. 04785000
HRC011DK: *---------------------------------------------------------------------- 04786000
HRC011DK: SPACE , 04787000
HRC011DK: ALTCHK STM R2,R7,ALTCHKSV 04788000
HRC011DK: BAL R7,SENSCCHH GET CCHH TO THE FLAGGED TRACK 04789000
HRC011DK: STCM R1,15,CCHHR SAVE CCHH FOR POSSIBLE CALL TO 04790000
HRC011DK: * SENSIT2. 04791000
HRC011DK: MVI CCHHR+4,X'00' SET R OF CCHHR TO 0 FOR SENSIT2. 04792000
HRC011DK: ST R1,CCHHSV SAVE CURRENT TRK FOR COMPARISON 04793000
HRC011DK: * WITH BACKWARD POINTER LATER 04794000
HRC011DK: STCM R1,15,HAR0SKAD+2 STORE CCHH FOR SEEK CCW TO 04795000
HRC011DK: * ACCESS 04796000
HRC011DK: SPACE , 04797000
HRC011DK: *---------------------------------------------------------------------- 04798000
HRC011DK: * HAR0READ FLAG INDICATES TO THE DASD INTERRUPT HANDLER THAT 04799000
HRC011DK: * ALTERNATE TRACK RECOVERY IS IN PROGRESS AND THAT CONTROL IS TO 04800000
HRC011DK: * BE RETURNED TO THIS ROUTINE. GO START THE CHANNEL PROGRAM TO 04801000
HRC011DK: * READ THE HOME ADDRESS AND RECORD 0 AND THEN RETURN TO ALTCHK2. 04802000
HRC011DK: *---------------------------------------------------------------------- 04803000
HRC011DK: SPACE , 04804000
HRC011DK: LA R1,READHAR0 ADDR OF CHNL PRG TO READ HA, R0. 04805000
HRC011DK: ST R1,CAW SET FOR SIO. 04806000
HRC011DK: MVI ALTFLAG,HAR0READ ALT TRK RECOVERY IN PROGRESS 04807000
HRC011DK: LA R1,ALTCHK2 POINT TO GET CONTROL UPON 04808000
HRC011DK: * RETURN HERE AFTER I/O COMPLETES. 04809000
HRC011DK: ST R1,CONTINAD SAVE FOR INTERRUPT HANDLER. 04810000
HRC011DK: B STIO2 START CHNL PRG TO READ HA, R0. 04811000
HRC011DK: SPACE , 04812000
HRC011DK: *---------------------------------------------------------------------- 04813000
HRC011DK: * RETURN HERE AFTER READING HOME ADDRESS AND RECORD 0. 04814000
HRC011DK: * NOW ISSUE SIO TO SEEK TO CCHH READ FROM HOME ADDRESS ABOVE AND 04815000
HRC011DK: * READ NEXT HOME ADDRESS AND RECORD 0. CONTROL RETURNS HERE 04816000
HRC011DK: * TO ALTCHK3. 04817000
HRC011DK: *---------------------------------------------------------------------- 04818000
HRC011DK: SPACE , 04819000
HRC011DK: USING ALTCHK2,R6 04820000
HRC011DK: ALTCHK2 MVC HAFLAGSV(L1),HADATA SAVE FLAG BYTE FROM HA. 04821000
HRC011DK: MVC HAR0SKAD+2(L4),R0DATA USE CCHH POINTER TO OTHER 04822000
HRC011DK: * TRK AS NEXT SEEK ADDR. 04823000
HRC011DK: LA R1,ALTCHK3 POINT TO GET CONTROL AFTER IO END 04824000
HRC011DK: ST R1,CONTINAD SAVE FOR INTERRUPT HANDLER. 04825000
HRC011DK: B STIO2 START SAME CHNL PRG TO READ HA, 04826000
HRC011DK: * R0, BUT FROM THE OTHER TRACK THIS TIME. 04827000
HRC011DK: SPACE , 04828000
HRC011DK: *---------------------------------------------------------------------- 04829000
HRC011DK: * RETURN HERE AFTER READING HOME ADDRESS AND RECORD 0 THE SECOND 04830000
HRC011DK: * TIME. TEST THE TRACK USAGE BITS IN THE HOME ADDRESS HADATA 04831000
HRC011DK: * FLAG BYTE. THIS FLAG CAN BE FROM EITHER THE PRIMARY OR THE 04832000
HRC011DK: * ALTERNATE DEPENDING ON WHERE WE WERE WHEN THIS ROUTINE WAS 04833000
HRC011DK: * CALLED. IF NOT MIXED BITS, EXIT WITH ERROR FLAG IN R1 (BOTH 04834000
HRC011DK: * BITS THE SAME ARE FORBIDDEN). 04835000
HRC011DK: *---------------------------------------------------------------------- 04836000
HRC011DK: SPACE , 04837000
HRC011DK: USING ALTCHK3,R6 04838000
HRC011DK: ALTCHK3 SR R0,R0 04839000
HRC011DK: SR R1,R1 0 IN R1. 04840000
HRC011DK: BCTR R1,0 -1 IN R1 IN CASE OF ERROR EXIT. 04841000
HRC011DK: TM HADATA,X'03' TEST TRACK USAGE BITS IN HA FLAG 04842000
HRC011DK: BNM ALTCHKEX IF NOT MIXED, EXIT WITH ERROR 04843000
HRC011DK: CLC CCHHSV(L4),R0DATA DOES 2ND TRK POINT BACK TO 1ST 04844000
HRC011DK: BNE ALTCHKEX NO, EXIT WITH -1 IN R1. 04845000
HRC011DK: SPACE , 04846000
HRC011DK: *---------------------------------------------------------------------- 04847000
HRC011DK: * WE STILL MIGHT HAVE A SINGLE TRACK POINTING TO ITSELF. CHECK 04848000
HRC011DK: * THE FLAG BYTES TO SEE IF ONE AND ONLY ONE OF THEM IS AN 04849000
HRC011DK: * ASSIGNED ALTERNATE. IF NEITHER WAS THE ALTERNATE, EXIT. 04850000
HRC011DK: *---------------------------------------------------------------------- 04851000
HRC011DK: SPACE , 04852000
HRC011DK: XC HADATA(L1),HAFLAGSV XC OLD FLAG BYTE INTO NEW 04853000
HRC011DK: * FLAG BYTE. 04854000
HRC011DK: TM HADATA,X'01' BIT REMAINING ON IN FLAG BYTE 04855000
HRC011DK: * MEANS ONE AND ONLY ONE WAS ALTERNATE. 04856000
HRC011DK: BNO ALTCHKEX ERROR, NEITHER WAS ALTERNATE. 04857000
HRC011DK: SPACE , 04858000
HRC011DK: *---------------------------------------------------------------------- 04859000
HRC011DK: * WE HAVE AN ALTERNATE - RETURN IN R1 THE CCHH OF THE SECOND 04860000
HRC011DK: * TRACK AND RETURN IN R0 0 IF R1 POINTS TO ASSIGNED ALTERNATE 04861000
HRC011DK: * OR 1 IF R1 POINTS TO DEFECTIVE PRIMARY. 04862000
HRC011DK: *---------------------------------------------------------------------- 04863000
HRC011DK: SPACE , 04864000
HRC011DK: ICM R1,15,HAR0SKAD+2 RETURN CCHH OF 2ND TRACK. 04865000
HRC011DK: NI HAFLAGSV,X'01' CLEAR 1ST BYTE OF ALL BUT 'TRACK 04866000
HRC011DK: * USAGE' BIT. 04867000
HRC011DK: IC R0,HAFLAGSV 'TRACK USAGE' BIT IN 1ST FLAG 04868000
HRC011DK: * BYTE IS INVERSE OF BIT IN 2ND FLAG BYTE 04869000
HRC011DK: * THAT CCHH IN R1 POINTS TO. 04870000
HRC011DK: ALTCHKEX MVI ALTFLAG,0 TURN OFF SIGNAL TO INTERRUPT HDLR 04871000
HRC011DK: LM R2,R7,ALTCHKSV 04872000
HRC011DK: BR R7 RETURN 04873000
HRC011DK: DROP R6 04874000
HRC011DK: *.4******************************************************************** 04875000
HRC011DK: * 04876000
HRC011DK: * SUBROUTINE NAME - *----------------* 04877000
HRC011DK: * * SENSCCHH * 04878000
HRC011DK: * *----------------* 04879000
HRC011DK: * 04880000
HRC011DK: * FUNCTION - 04881000
HRC011DK: * 04882000
HRC011DK: * COMPUTE CCHH FROM SENSE DATA READ PREVIOUSLY. 04883000
HRC011DK: * 04884000
HRC011DK: * INPUT REGISTERS - 04885000
HRC011DK: * 04886000
HRC011DK: * R7 - RETURN ADDRESS 04887000
HRC011DK: * 04888000
HRC011DK: * OUTPUT REGISTERS - 04889000
HRC011DK: * 04890000
HRC011DK: * R1 - CCHH DATA TAKEN FROM SENSE DATA BUFFER. 04891000
HRC011DK: * 04892000
HRC011DK: *.$******************************************************************** 04893000
HRC011DK: SPACE , 04894000
HRC011DK: SENSCCHH IC R1,SENSE+6 04895000
HRC011DK: SRL R1,5 CYL BITS 512, 256 RIGHT JUSTIFIED 04896000
HRC011DK: STC R1,SENSWORK 04897000
HRC011DK: NI SENSWORK,X'03' CLEAR ALL BUT BITS 512, 256. 04898000
HRC011DK: MVC SENSWORK+1(L1),SENSE+5 LOW ORDER CYL ADDR. 04899000
HRC011DK: MVN SENSWORK+3(L1),SENSE+6 HEAD ADDRESS. 04900000
HRC011DK: L R1,SENSWORK 04901000
HRC011DK: BR R7 04902000
HRC011DK: SENSWORK DC F'0' 04903000
HRC011DK: *---------------------------------------------------------------------- 04904000
HRC011DK: * 04905000
HRC011DK: * CONSOLE MESSAGES 04906000
HRC011DK: * 04907000
HRC011DK: *---------------------------------------------------------------------- 04908000
HRC011DK: SPACE , 04909000
HRC011DK: LABELOK DC AL1(TITLE-*-1) 04910000
HRC011DK: DC C'LABEL IS NOW XXXXXX' 04911000
HRC011DK: TITLE DC AL1(FORA-*-1) 04912000
HRC011DK: DC C'VM/370 FORMAT/ALLOCATE PROGRAM ' 04913000
HRC011DK: DC C'RELEASE 6' 04914000
HRC011DK: FORA DC AL1(FMTMSG-*-1) 04915000
HRC011DK: DC C'ENTER FORMAT OR ALLOCATE:' 04916000
HRC011DK: FMTMSG DC AL1(ALLOCMSG-*-1) 04917000
HRC011DK: DC C'FORMAT FUNCTION SELECTED' 04918000
HRC011DK: ALLOCMSG DC AL1(ADDRESS-*-1) 04919000
HRC011DK: DC C'ALLOCATE FUNCTION SELECTED' 04920000
HRC011DK: ADDRESS DC AL1(WR1-*-1) 04921000
HRC011DK: DC C'ENTER DEVICE ADDRESS (CUU):' 04922000
HRC011DK: WR1 DC AL1(TYPMSG-*-1) 04923000
HRC011DK: DC C'DMKFMT730E DEV XXX NOT OPERATIONAL OR ' 04924000
HRC011DK: DC C'NOT READY.' 04925000
HRC011DK: TYPMSG DC AL1(PCMSG-*-1) 04926000
HRC011DK: DC C'ENTER DEVICE TYPE:' 04927000
HRC011DK: PCMSG DC AL1(MCMSG-*-1) 04928000
HRC011DK: DC C'DMKFMT756E PROGRAM CHECK PSW = ' 04929000
HRC011DK: DC C'XXXXXXXXXXXXXXXX' 04930000
HRC011DK: MCMSG DC AL1(ALMSG-*-1) 04931000
HRC011DK: DC C'DMKFMT732E MACHINE CHECK' 04932000
HRC011DK: ALMSG DC AL1(ALMSG1-*-1) 04933000
HRC011DK: DC C'TYPE CYL CYL' 04934000
HRC011DK: ALMSG1 DC AL1(WRONG-*-1) 04935000
HRC011DK: DC C'.... ... ...' 04936000
HRC011DK: WRONG DC AL1(WRDEV1-*-1) 04937000
HRC011DK: DC C'DMKFMT733E VOLID READ IS XXXXXX NOT XXXXXX' 04938000
HRC011DK: WRDEV1 DC AL1(WRDEV2-*-1) 04939000
HRC011DK: DC C'DMKFMT741E DEVICE ' 04940000
HRC011DK: WRDEV1AD DC C'CUU' 04941000
HRC011DK: DC C' IS ' 04942000
HRC011DK: WRDEV1AC DC C'XXXX' 04943000
HRC011DK: DC C', NOT ' 04944000
HRC011DK: WRDEV1SP DC C'XXXX-YY' 04945000
HRC011DK: DC C' AS SPECIFIED' 04946000
HRC011DK: WRDEV2 DC AL1(DATAMSG-*-1) 04947000
HRC011DK: DC C'RESPECIFY OR NOTIFY SYSTEM SUPPORT' 04948000
HRC011DK: DATAMSG DC AL1(TYPERR-*-1) 04949000
HRC011DK: DC C'ENTER ALLOCATION DATA FOR VOLUME ' 04950000
HRC011DK: DATAMSG1 DC C'XXXXXX ' 04951000
HRC011DK: TYPERR DC AL1(MAP-*-1) 04952000
HRC011DK: DC C'DMKFMT734E TYPE OR CYL INVALID' 04953000
HRC011DK: MAP DC AL1(ALLEND-*-1) 04954000
HRC011DK: DC C'XXXX 0000 0000' 04955000
HRC011DK: ALLEND DC AL1(STCYL-*-1) 04956000
HRC011DK: DC C'DEVICE XXX VOLUME XXXXXX ALLOCATION ENDED' 04957000
HRC011DK: STCYL DC AL1(ENDCYL-*-1) 04958000
HRC011DK: DC C'ENTER START CYLINDER (XXX OR XXXX) OR "LABEL":' 04959000
HRC011DK: * 04960000
HRC011DK: ENDCYL DC AL1(PROGFOR-*-1) 04961000
HRC011DK: DC C'ENTER END CYLINDER (XXX OR XXXX):' 04962000
HRC011DK: PROGFOR DC AL1(RDLAB-*-1) 04963000
HRC011DK: DC C'FORMAT STARTED' 04964000
HRC011DK: RDLAB DC AL1(WVMSG1-*-1) 04965000
HRC011DK: DC C'ENTER DEVICE LABEL:' 04966000
HRC011DK: WVMSG1 DC AL1(WVMSG2-*-1) 04967000
HRC011DK: DC C'WRITE VERIFICATION NOT PERFORMED UNLESS REQUESTED.' 04968000
HRC011DK: WVMSG2 DC AL1(WVMSG3-*-1) 04969000
HRC011DK: DC C'ENTER "YES" FOR WRITE VERIFICATION:' 04970000
HRC011DK: WVMSG3 DC AL1(ENDFOR-*-1) 04971000
HRC011DK: DC C'WRITE VERIFICATION WAS NOT PERFORMED' 04972000
HRC011DK: ENDFOR DC AL1(FATLMSG-*-1) 04973000
HRC011DK: DC C'FORMAT DONE' 04974000
HRC011DK: FATLMSG DC AL1(PAGE-*-1) 04975000
HRC011DK: DC C'DMKFMT735E FATAL DASD I/O ERROR' 04976000
HRC011DK: DC C' CSW=XXXXXXXXXXXXXXXX' 04977000
HRC011DK: PAGE DC AL1(IOERR-*-1) 04978000
HRC011DK: DC C'XXXX NO. PAGE RECORDS WITH READ-CHECK ERRORS' 04979000
HRC011DK: IOERR DC AL1(M736L) 04980000
HRC011DK: DC C'DMKFMT736E IO ERROR XXX CCHHR = 0000000000' 04981000
HRC011DK: M736L EQU *-IOERR-1 04982000
HRC011DK: IOERR2 DC AL1(M736L2) 04983000
HRC011DK: DC C'SENSE=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' 04984000
HRC011DK: DC C'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' 04985000
HRC011DK: M736L2 EQU *-IOERR2-1 04986000
HRC011DK: BAD DC AL1(IPLERROR-*-1) 04987000
HRC011DK: BADMSG DC C'DMKFMT737E INVALID OPERAND' 04988000
HRC011DK: IPLERROR DC AL1(IPLERRL) 04989000
HRC011DK: DC C'DMKFMT738A DEV XXX INTERVENTION REQUIRED' 04990000
HRC011DK: IPLERRL EQU *-IPLERROR-1 04991000
HRC011DK: MSGATRK DC AL1(MSGATRKL) 04992000
HRC011DK: DC C'DMKFMT739E FLAGGED PRIMARY TRACK HAS NO ' 04993000
HRC011DK: DC C'ALTERNATE ASSIGNED, I/O ERROR FOLLOWS' 04994000
HRC011DK: MSGATRKL EQU *-MSGATRK-1 04995000
HRC011DK: MSG35MB DC AL1(MSG35MBL) 04996000
HRC011DK: DC C'DMKFMT740E PACK MOUNTED IS 3340-35, NOT ' 04997000
HRC011DK: DC C'3340-70. MOUNT ANOTHER OR RESPECIFY.' 04998000
HRC011DK: MSG35MBL EQU *-MSG35MB-1 04999000
HRC011DK: MSG744 DC AL1(M744L) 05000000
HRC011DK: DC C'DMKFMT744E I/O ERROR 000 CODE = E4' 05001000
HRC011DK: DC C' CSW = 0000000000000000' 05002000
HRC011DK: M744L EQU *-MSG744-1 05003000
HRC011DK: DRCTFAIL DC AL1(DRCTFLLN) 05004000
HRC011DK: DC C'DMKFMT536I XXX REPORTS DISABLED INTERFACE;' 05005000
HRC011DK: DC C' FLT CODE = XXXX; NOTIFY CE' 05006000
HRC011DK: DRCTFLLN EQU *-DRCTFAIL-1 05007000
HRC011DK: CARDMESS DC AL1(RESPONSE-*-1) 05008000
HRC011DK: CDINPUT DC 80C' ' CARD INPUT - VIA CARDCCW 05009000
HRC011DK: RESPONSE DC AL1(RESULTS-*-1) 05010000
HRC011DK: ANSWER DC C' ' 05011000
HRC011DK: RESULTS DC AL1(END-*-1) 05012000
HRC011DK: DC C'ALLOCATION RESULTS' 05013000
HRC011DK: END EQU * 05014000
HRC011DK: MSG742 DC AL1(MSG742X) @VA15782 05015000
HRC011DK: DC C'DMKFMT742E ALLOCATION FUNCTION NOT ALLOWED ' @VA15782 05016000
HRC011DK: MSG742X EQU *-MSG742-1 @VA15782 05017000
HRC011DK: MSG742A DC AL1(MSG742AX) @VA15782 05018000
HRC011DK: DC C' FORMAT OF VOLUME IS A PREREQUISITE ' 05019000
HRC011DK: MSG742AX EQU *-MSG742A-1 @VA15782 05020000
HRC011DK: *---------------------------------------------------------------------- 05021000
HRC011DK: * 05022000
HRC011DK: * CONSTANTS FOR CARD AND COMMUNICATION PROCESSING 05023000
HRC011DK: * 05024000
HRC011DK: *---------------------------------------------------------------------- 05025000
HRC011DK: SPACE , 05026000
HRC011DK: CONSIRA DS 0D I/O NEW PSW AT X'120' 05027000
HRC011DK: DC X'00040000' 05028000
HRC011DK: DC A(CONSINT) CONSOLE I/O INTERRUPT ROUTINE 05029000
HRC011DK: SPACE , 05030000
HRC011DK: CDFORA DC D'0' CARD FORMAT OR ALLOCATE / ALLOC TYPE 05031000
HRC011DK: CDADD DC D'0' CARD DEVICE ADDRESS / ALLOC START 05032000
HRC011DK: CDTYPE DC D'0' CARD DEVICE TYPE / ALLOC END 05033000
HRC011DK: CDLABEL DC D'0' CARD LABEL 05034000
HRC011DK: CDSTART DC XL8'00' CARD START CYLINDER/PAGE 05035000
HRC011DK: CDENDCYL DC XL8'00' CARD END CYLINDER/PAGE 05036000
HRC011DK: CDWVERIF DC XL8'00' CARD WRITE VERIFICATION 05037000
HRC011DK: CDLAST EQU CDWVERIF CARD LAST INPUT FIELD 05038000
HRC011DK: DATA DC D'0' CARD INPUT DATA SAVE AREA 05039000
HRC011DK: SPACE , 05040000
HRC011DK: SAVE14 DC F'0' WMSG RETURN ADDRESS SAVER 05041000
HRC011DK: SAVE4 DC F'0' RMSG MESSAGE SAVER (RESPONSE?) 05042000
HRC011DK: STAT DC H'0' SAVE CSW STATUS DURING INTERRUPT 05043000
HRC011DK: LOSW DC X'00' LABEL ONLY FLAG 05044000
HRC011DK: CDSW DC X'00' CARD SELECTION SWITCH 05045000
HRC011DK: CDSW2 DC X'FF' CARD INPUT SWITCH (X'FF'=YES) 05046000
HRC011DK: ALLOSW DC X'00' ALLOCATION ONLY INDICATOR 05047000
HRC011DK: ALLOERR DC X'00' ALLOCATE ERROR INDICATOR 05048000
HRC011DK: LABIOERR DC X'00' LABEL I/O ERROR INDICATOR 05049000
HRC011DK: CCHHR DC CL5'X' CCHHR DATA FOR MESSAGE 05050000
HRC011DK: SPACE , 05051000
HRC011DK: HIVALUE DC H'00' HIGHEST CYLINDER ADDRESS 05052000
HRC011DK: HDVALUE DC H'0' HIGHEST HEAD VALUE FOR DEVICE 05053000
HRC011DK: BEGIN DC H'00' CYLINDER START ADDRESS 05054000
HRC011DK: ENDING DC H'00' CYLINDER ENDING ADDRESS 05055000
HRC011DK: SPACE , 05056000
HRC011DK: PGCOUNT DC F'0' PAGE ERROR COUNT 05057000
HRC011DK: SAVEIT DC 5F'0' SAVE CSW, CAW, AND I/O OLD PSW 05058000
HRC011DK: SAVFATAL DC 5F'0' SAVE CSW, CAW, AND I/O OLD PSW 05059000
HRC011DK: WORK DC 17F'0' WORK AREA FOR PACKS/UNPACKS 05060000
HRC011DK: DS 0F FULLWORD ALIGNMENT 05061000
HRC011DK: SEEK0 DC XL7'00' STARTING BBCCHHR 05062000
HRC011DK: SPACE , 05063000
HRC011DK: PCREGS DC 16F'0' SAVE REGS DURING PROGRAM CHECK 05064000
HRC011DK: SENSE DC XL32'00' SENSE AREA 05065000
HRC011DK: ENCHAN DC X'03FF0000' ENABLE DEVICES ON CHANNELS 6-15 05066000
HRC011DK: SENSEB0 EQU SENSE SENSE BYTE 0 05067000
HRC011DK: SENSEB1 EQU SENSE+1 SENSE BYTE 1 05068000
HRC011DK: SENSEB2 EQU SENSE+2 SENSE BYTE 2 05069000
HRC011DK: ENVDATA EQU X'10' ENVIRON. DATA PRESENT ON SENSE+2 05070000
HRC011DK: SENSEB3 EQU SENSE+3 SENSE BYTE 3 05071000
HRC011DK: SENSEB4 EQU SENSE+4 SENSE BYTE 4 (DEVTYPE) 05072000
HRC011DK: SENSEB6 EQU SENSE+6 SENSE BYTE 6 05073000
HRC011DK: FLTCDE EQU SENSE+22 SENSE BYTE 22 (FAULT CODE) 05074000
HRC011DK: *---------------------------------------------------------------------- 05075000
HRC011DK: * 05076000
HRC011DK: * STRTIO/STRTIO1 SUBROUTINE CCWS AND CONSTANTS 05077000
HRC011DK: * 05078000
HRC011DK: *---------------------------------------------------------------------- 05079000
HRC011DK: SPACE , 05080000
HRC011DK: *---------------------------------------------------------------------- 05081000
HRC011DK: * RESTART CCW CHAIN AFTER ERROR 2305,2314,3330,3340,3350, 05082000
HRC011DK: * 3380 CHANNEL PROGRAM 05083000
HRC011DK: *---------------------------------------------------------------------- 05084000
HRC011DK: SPACE , 05085000
HRC011DK: DS 0D 05086000
HRC011DK: RDRTRY CCW 07,SEEKA,CC,6 PHONY SEEKA 05087000
HRC011DK: CCW 31,FILEMASK,CC+SILI,1 05088000
HRC011DK: PICKUP CCW 08,0,0,0 05089000
HRC011DK: SHIFTMSK DC X'80',3X'00' 05090000
HRC011DK: SPACE , 05091000
HRC011DK: *---------------------------------------------------------------------- 05092000
HRC011DK: * RECALIBRATE AND RESTART FORMATTING 05093000
HRC011DK: *---------------------------------------------------------------------- 05094000
HRC011DK: SPACE , 05095000
HRC011DK: SPACE , 05096000
HRC011DK: CALIBRAT CCW 19,0,CC+SILI,1 RECALIBRATE 05097000
HRC011DK: CALTIC CCW 08,FMT2314,0,0 TIC TO NORMAL CCWS 05098000
HRC011DK: *---------------------------------------------------------------------- 05099000
HRC011DK: * 05100000
HRC011DK: * GENERAL AND MISCELLANEOUS CONSTANTS 05101000
HRC011DK: * 05102000
HRC011DK: *---------------------------------------------------------------------- 05103000
HRC011DK: SPACE , 05104000
HRC011DK: SAVEDCSW DC 2F'0' ERROR RECOVERY CSW SAVE AREA 05105000
HRC011DK: CONTINAD DC F'0' ADDR OF CODE WHERE ALT TRACK 05106000
HRC011DK: * PROCESSING IS TO RESUME. 05107000
HRC011DK: ERCOUNT DC F'0' ERROR RECOVERY ERROR COUNT 05108000
HRC011DK: ERLIMIT DC F'9' ERROR RECOVERY RETRY LIMIT 05109000
HRC011DK: TOTCNT DC F'0' TOTAL ACCUMULATED ERRORS ON SIO 05110000
HRC011DK: TOTLIMIT DC F'25' MAXIMUM ALLOWED ON 1 CHAN PROG 05111000
HRC011DK: SENSTA DC 2F'0' SENSE CSW STATUS 05112000
HRC011DK: NEWPSW DC X'00040000' I/O NEW PSW FOR DASD INTERRUPTS 05113000
HRC011DK: DC A(IOINT) 05114000
HRC011DK: RNSTUF DS 24F 2314 RECORD FIELDS SAVE AREA 05115000
HRC011DK: WKSEEK DS 30F SEEK FIELDS SAVE AREA 05116000
HRC011DK: STRTSAVE DS 13F REG SAVE FOR STRTIO 05117000
HRC011DK: STRTSVIO DS XL20 IO STATUS SAVE AREA FOR STRTIO 05118000
HRC011DK: LSAVE EQU L'STRTSVIO LENGTH OF SAVE AREA FOR MVC 05119000
HRC011DK: STRTSVSN DS XL32 SENSE INFORMATION SAVE AREA 05120000
HRC011DK: SAVEVOL1 DC 24F'0' OS LABEL SAVE AREA 05121000
HRC011DK: SAVEFMT4 DC 24F'0' SAVE CONTENTS OF CP'S FMT4 05122000
HRC011DK: ALTCCHH DC XL6'0' CCHH OF NEXT AVAIL. ALT TRK 05123000
HRC011DK: * PLUS COUNT OF NO. OF ALT. TRKS 05124000
HRC011DK: EDPSENSE DS XL32 SAVE AREA FOR SENSE WITH EDP 05125000
HRC011DK: EDPERCNT DC H'0' EDP RETRY COUNT 05126000
HRC011DK: EDPLIMIT DC H'255' EDP RETRY LIMIT 05127000
HRC011DK: SPACE , 05128000
HRC011DK: CP370 DC CL5'CP370' CP370 IS VOLUME OWNER 05129000
HRC011DK: SPACE , 05130000
HRC011DK: REGSAV DC F'0' SAVE CALLER'S RETURN ADDRESS 05131000
HRC011DK: ZERO DC XL8'00' CCW ZERO DATA AREA 05132000
HRC011DK: ATYPE DC X'00' ALLOCATION TYPE 05133000
HRC011DK: RECVALUE DC X'00' HIGHEST RECORD NUMBER 05134000
HRC011DK: FLAG1 DC X'00' WRITE ALLOCATION TO DISK FLAG 05135000
HRC011DK: ALLOCWR EQU X'01' WRITE ALLOCATION TO DISK BIT 05136000
HRC011DK: COMWOK DC XL9'00' INPUT DATA WORK AREA 05137000
HRC011DK: DS 0D 05138000
HRC011DK: IPLDEV DC X'0000' IPL DEVICE ADDRESS 05139000
HRC011DK: ADFOTYPE DS A ADDRESS OF ENTRY IN DEVICE/FORMAT 05140000
HRC011DK: * TABLE 05141000
HRC011DK: *---------------------------------------------------------------------- 05142000
HRC011DK: * 05143000
HRC011DK: * ALTERNATE TRACK PROCESSING CONSTANTS AND CCWS 05144000
HRC011DK: * 05145000
HRC011DK: *---------------------------------------------------------------------- 05146000
HRC011DK: SPACE , 05147000
HRC011DK: ALTSEEK CCW 07,ALTSKADD,CC+SILI,6 RESTART SEEK ALTERNATE 05148000
HRC011DK: CCW 31,FILEMASK,CC+SILI,1 05149000
HRC011DK: ALTTIC CCW 08,*-*,0,0 05150000
HRC011DK: ALTSKADD DC XL6'0' SEEK ADDRESS NEXT TRACK 05151000
HRC011DK: SPACE , 05152000
HRC011DK: ALTFLAG DC AL1(0) FLAG FOR 3340/3344 ALT TRACK 05153000
HRC011DK: SPACE , 05154000
HRC011DK: HAR0READ EQU 128 HA/R0 READ IN PROGRESS 05155000
HRC011DK: SPACE , 05156000
HRC011DK: SPACE , 05157000
HRC011DK: READHAR0 CCW X'07',HAR0SKAD,CC+SILI,6 SEEK 05158000
HRC011DK: CCW X'1A',HADATA,CC+SILI,5 READ HA 05159000
HRC011DK: CCW X'16',R0DATA,SILI,4 READ R0 05160000
HRC011DK: HAR0SKAD DC XL6'0' 00CCHH SEEK ADDRESS 05161000
HRC011DK: HADATA DS XL5 FLAG BYTE + CCHH READ FROM HA. 05162000
HRC011DK: HAFLAGSV DS XL1 FLAG BYTE FROM 1ST OF 2 READS 05163000
HRC011DK: * SAVED HERE. 05164000
HRC011DK: CCHHSV DS XL4 CURRENT TRACK ADDRESS SAVE AREA 05165000
HRC011DK: R0DATA DS XL4 CCHH DATA FROM COUNT FLD OF R0. 05166000
HRC011DK: ALTCHKSV DS 6F REGISTER SAVE AREA. 05167000
HRC011DK: *---------------------------------------------------------------------- 05168000
HRC011DK: * WRITE MESSAGE TO THE CONSOLE 05169000
HRC011DK: *---------------------------------------------------------------------- 05170000
HRC011DK: SPACE , 05171000
HRC011DK: DS 0D ALIGNMENT 05172000
HRC011DK: WCCW CCW 1,TITLE,CC+SILI,1 CCW FOR WRITING TO CONSOLE 05173000
HRC011DK: CCW 3,0,SILI,1 NOP TO ASSURE COMPLETION 05174000
HRC011DK: SPACE , 05175000
HRC011DK: *---------------------------------------------------------------------- 05176000
HRC011DK: * READ RESPONSE FROM THE CONSOLE 05177000
HRC011DK: *---------------------------------------------------------------------- 05178000
HRC011DK: SPACE , 05179000
HRC011DK: RCCW CCW 10,INDATA,CC+SILI,80 CONSOLE READ CCW 05180000
HRC011DK: CCW 3,0,SILI,1 NOOP 05181000
HRC011DK: SPACE , 05182000
HRC011DK: *---------------------------------------------------------------------- 05183000
HRC011DK: * READ INPUT FROM CARDS 05184000
HRC011DK: *---------------------------------------------------------------------- 05185000
HRC011DK: SPACE , 05186000
HRC011DK: CARDCCW CCW 02,CDINPUT,CC+SILI,80 START IPL DEVICE AND USE 05187000
HRC011DK: CCW 03,0,SILI,1 FOR INPUT (CARDS) 05188000
HRC011DK: SPACE , 05189000
HRC011DK: *---------------------------------------------------------------------- 05190000
HRC011DK: * ISSUE 04 SENSE CCW 05191000
HRC011DK: *---------------------------------------------------------------------- 05192000
HRC011DK: SPACE , 05193000
HRC011DK: CCWSENSE CCW 4,SENSE,SILI,L'SENSE SENSE CCW 05194000
HRC011DK: *---------------------------------------------------------------------- 05195000
HRC011DK: * 05196000
HRC011DK: * GRAPHIC SUPPORT CCWS AND CONSTANTS 05197000
HRC011DK: * 05198000
HRC011DK: *---------------------------------------------------------------------- 05199000
HRC011DK: SPACE , 05200000
HRC011DK: CRTWORD CCW X'27',SBACP,SILI+CC,2 SET BAR TO (STATUS WORD) 05201000
HRC011DK: CCW X'01',CPXYSTAT,SILI+CC,20 WRITE 'RUNNING' ON 05202000
HRC011DK: * SCREEN 05203000
HRC011DK: CCW X'27',SBAREAD,SILI+CC,2 SET BUFFER ADDR FOR 05204000
HRC011DK: * WRITE 05205000
HRC011DK: CCW X'01',BLNKZERO,SILI+CC,140 CLEAR INPUT AREA 05206000
HRC011DK: CURS3066 CCW X'0F',SBAREAD,SILI+CC,2 REPOSITION CURSOR 05207000
HRC011DK: CCW X'03',*-*,SILI,3 END OF READ CCW STRING 05208000
HRC011DK: SPACE , 05209000
HRC011DK: CRTWORD1 CCW X'01',LAB3270A,SILI+CC,LEN THE CONTROL DATA 05210000
HRC011DK: CCW X'03',*-*,SILI,2 NO-OPERATION 05211000
HRC011DK: SPACE , 05212000
HRC011DK: REQREAD CCW X'27',SBACP,SILI+CC,2 SET BUFF ADDR TO CP X-Y 05213000
HRC011DK: CCW X'01',CPXYSTAT,SILI+CC,20 WRITE SCREEN STATUS 05214000
HRC011DK: CCW X'08',CURS3066,SILI,1 RESET CURSOR POSITION 05215000
HRC011DK: SPACE , 05216000
HRC011DK: REQREAD1 CCW X'01',LAB3270B,SILI+CC,LEN1 THE CONTROL DATA 05217000
HRC011DK: CCW X'03',*-*,SILI,2 NO-OPERATION 05218000
HRC011DK: SPACE , 05219000
HRC011DK: ERSE3066 CCW X'07',*-*,SILI+CC,1 ERASE ENTIRE SCREEN 05220000
HRC011DK: WRTCRTXY CCW X'27',SBADDR,SILI+CC,2 SET CORRECT LINE IN 05221000
HRC011DK: * BUFFER 05222000
HRC011DK: WRT3066 CCW X'01',*-*,SILI+CC,140 WRITE OUT USER DATA 05223000
HRC011DK: CCW X'08',CRTWORD,SILI,1 NOW DISPLAY STATUS 05224000
HRC011DK: SPACE , 05225000
HRC011DK: ERSE3270 CCW X'05',LAB3270E,SILI+CD,LEN3 ERASE THE SCREEN 05226000
HRC011DK: CCW X'00',CPXYSTAT,SILI+CC,20 WRITE SCREEN STATUS 05227000
HRC011DK: WRTCRT70 CCW X'01',LAB3270,SILI+CD,4 THE CONTROL DATA 05228000
HRC011DK: WRTCR70 CCW X'00',*-*,SILI+CD,0 WRITE CCW 05229000
HRC011DK: CCW X'00',LAB3270A+1,SILI+CC,LEN-1 WRITE SCREEN 05230000
HRC011DK: * STATUS 05231000
HRC011DK: CCW X'03',*-*,SILI,2 NO-OPERATION 05232000
HRC011DK: SPACE , 05233000
HRC011DK: RDMI3066 CCW X'0E',RDMIDATA,SILI+CC,3 READ CCW FOR MI COMMAND 05234000
HRC011DK: RD3066 CCW X'27',SBAREAD,SILI+CC,2 SET BUFFER ADDR FOR READ 05235000
HRC011DK: RD3066DA CCW X'06',*-*,SILI+CC,140 READ INPUT DATA 05236000
HRC011DK: CCW X'08',CURS3066,SILI,1 REPOSITION CURSOR 05237000
HRC011DK: SPACE , 05238000
HRC011DK: RDMI3270 CCW X'01',LAB3270D,SILI+CC,4 WRITE SPECIAL CKD 05239000
HRC011DK: RD3270DA CCW X'06',*-*,SILI+CC,0 CCW FOR READ 05240000
HRC011DK: CCW X'03',*-*,SILI,2 NO-OPERATION 05241000
HRC011DK: SPACE , 05242000
HRC011DK: CNCL3270 CCW X'01',LAB3270E,SILI+CD,LEN3 THE CONTROL DATA 05243000
HRC011DK: CCW X'00',CPXYSTAT,SILI+CC,20 WRITE SCREEN STATUS 05244000
HRC011DK: CCW X'03',*-*,SILI,2 NO-OPERATION 05245000
HRC011DK: SPACE , 05246000
HRC011DK: CNCL3066 CCW X'07',*-*,SILI+CC,1 ERASE THE SCREEN 05247000
HRC011DK: CCW X'08',CRTWORD,SILI,1 NOW DISPLAY STATUS 05248000
HRC011DK: SPACE , 05249000
HRC011DK: MORECCW1 CCW X'01',LAB3270C,SILI+CC,LEN2 THE CONTROL DATA 05250000
HRC011DK: CCW X'03',*-*,SILI,2 NO-OPERATION 05251000
HRC011DK: SPACE , 05252000
HRC011DK: *---------------------------------------------------------------------- 05253000
HRC011DK: * FIRST DC ARE ADDRESSES FOR LINES 1 -6 05254000
HRC011DK: * SECOND DC ARE ADDRESSES FOR LINES 7 - 12 05255000
HRC011DK: * THIRD DC ARE ADDRESSES FOR LINES 13 - 18 05256000
HRC011DK: * FOURTH DC ARE ADDRESSES FOR LINES 19 - 24 05257000
HRC011DK: *---------------------------------------------------------------------- 05258000
HRC011DK: SPACE , 05259000
HRC011DK: TABLE70 DS 0D 05260000
HRC011DK: DC X'4040C150C260C3F0C540C650' 05261000
HRC011DK: DC X'C760C8F04A404B504C604DF0' 05262000
HRC011DK: DC X'4F405050D160D2F0D440D550' 05263000
HRC011DK: DC X'D660D7F0D9405A505B605CF0' 05264000
HRC011DK: SPACE , 05265000
HRC011DK: TABLGRAP EQU * 05266000
HRC011DK: DC X'0A',AL3(READ66) ADDRESS OF THE READ SECTION 05267000
HRC011DK: DC X'01',AL3(WRT66) ADDRESS OF THE WRITE SECTION 05268000
HRC011DK: DC X'09',AL3(WRT66) ADDRESS OF THE WRITE SECTION 05269000
HRC011DK: DC X'05',AL3(WRT66) ADDRESS OF THE WRITE SECTION 05270000
HRC011DK: DC X'03',AL3(RETWORD) ADDRESS OF THE RETURN SECTION 05271000
HRC011DK: SPACE , 05272000
HRC011DK: * X'5B60' - LINE 23, COL. 1 05273000
HRC011DK: * X'5D6A' - LINE 24, COL. 59 05274000
HRC011DK: WC6 EQU X'C2' WRITE CONTROL BIT 6 05275000
HRC011DK: AT7 EQU X'C1' ATTRIBUTE BIT 7 05276000
HRC011DK: AT2 EQU X'E0' ATTRIBUTE BIT 2 05277000
HRC011DK: LAC EQU X'C0' 05278000
HRC011DK: SF EQU X'1D' START OF FIELD CONTROL 05279000
HRC011DK: SBA EQU X'11' SET BUFFER ADDRESS 05280000
HRC011DK: IC EQU X'13' INSERT CURSOR 05281000
HRC011DK: EUA EQU X'12' ERASE UNPROTECTED 05282000
HRC011DK: RA EQU X'3C' REPEAT TO ADDRESS 05283000
HRC011DK: SPACE , 05284000
HRC011DK: LAB3270A DC AL1(WC6),AL1(SBA),X'5B60',AL1(SF),AL1(AT7) 05285000
HRC011DK: DC AL1(IC),AL1(EUA),X'5D6B',AL1(SF),AL1(AT2) 05286000
HRC011DK: RUNLABEL DC CL20'RUNNING' 05287000
HRC011DK: LEN EQU *-LAB3270A 05288000
HRC011DK: LAB3270B DC AL1(WC6),AL1(SBA),X'5B60',AL1(SF),AL1(AT7) 05289000
HRC011DK: DC AL1(IC),AL1(SBA),X'5D6B',AL1(SF),AL1(AT2) 05290000
HRC011DK: REALABEL DC CL20'CP READ' 05291000
HRC011DK: LEN1 EQU *-LAB3270B 05292000
HRC011DK: LAB3270C DC AL1(WC6),AL1(SBA),X'5D6B',AL1(SF),AL1(AT2) 05293000
HRC011DK: MORLABEL DC CL20'HOLDING' 05294000
HRC011DK: LEN2 EQU *-LAB3270C 05295000
HRC011DK: LAB3270D DC AL1(LAC),AL1(SBA),X'5B60' 05296000
HRC011DK: LAB3270 DC AL1(WC6),AL1(SBA),X'0000' 05297000
HRC011DK: LAB3270E DC AL1(WC6),AL1(SBA),X'4040',AL1(RA),X'5B60',X'00' 05298000
HRC011DK: DC AL1(SF),AL1(AT7),AL1(IC),AL1(SBA) 05299000
HRC011DK: DC X'5D6B',AL1(SF),AL1(AT2) 05300000
HRC011DK: LEN3 EQU *-LAB3270E 05301000
HRC011DK: PARM DC X'00' THE GRAPHIC FLAG BYTE 05302000
HRC011DK: PARMATT EQU X'80' ATTENTION REQUEST 05303000
HRC011DK: PARMGRP EQU X'40' GRAPHIC SUPPORT 05304000
HRC011DK: PARMREA EQU X'20' READ REQUEST 05305000
HRC011DK: PARMCLE EQU X'10' CLEAR/ERASE REQUEST 05306000
HRC011DK: PARM327 EQU X'08' 3270 GRAPHIC 05307000
HRC011DK: PARMNDA EQU X'04' NO DATA INDICATED 05308000
HRC011DK: PARM01F EQU X'02' 01F REQUESTED 05309000
HRC011DK: PARM321 EQU X'01' 3215/3210/1052 05310000
HRC011DK: PARM2 DC X'00' SIO SWITCHES 05311000
HRC011DK: SIONOP EQU X'80' DEVICE NOT OPERATIONAL 05312000
HRC011DK: SBADDR DC AL1(00,00) CURRENT OUTPUT LINE COORDINATES 05313000
HRC011DK: * FOR THE 3066 05314000
HRC011DK: SBACP DC AL1(34,60) COORDINATES FOR SCREEN 'STATUS' 05315000
HRC011DK: * WORD 05316000
HRC011DK: SBAREAD DC AL1(33,00) COORDINATES FOR CURSOR POSITION 05317000
HRC011DK: RDMIDATA DC XL6'00' READ DATA FROM 'MI' COMMAND 05318000
HRC011DK: CPXYSTAT DC CL20' ' SCREEN 'STATUS' WORD 05319000
HRC011DK: BLNKLINE DC XL140'00' CLEAR INPUT AREA FOR DATA 05320000
HRC011DK: BLNKZERO DC CL140' ' BLANKS FOR READ AREA 05321000
HRC011DK: GRAPHSAV DC 8F'00' SAVE AREA FOR GRAPHIC SUPPORT 05322000
HRC011DK: SAVEAREA DC 2F'00' SAVE AREA FOR GRAPHIC DATA 05323000
HRC011DK: * REGISTERS 05324000
HRC011DK: *---------------------------------------------------------------------- 05325000
HRC011DK: * CKD CCWS FOR READING AND WRITING LABELS. 05326000
HRC011DK: *---------------------------------------------------------------------- 05327000
HRC011DK: SPACE , 05328000
HRC011DK: DS 0D 05329000
HRC011DK: LBLREC CCW 7,SEEKA,CC,6 05330000
HRC011DK: CCW 31,FILEMASK,CC,1 05331000
HRC011DK: CCW 49,R3VOL1,CC+SILI,5 FIND REC 3 VOL1 LABEL RECORD 05332000
HRC011DK: CCW 8,*-8,0,0 05333000
HRC011DK: CCW 6,OSLABEL,SILI+CC,80 READ LABELS 05334000
HRC011DK: CCW 49,R4ALLOC,CC+SILI,5 SEARCH ID EQUAL 05335000
HRC011DK: CCW 08,*-8,0,0 TIC 05336000
HRC011DK: CCW 06,TABLE,SILI,DL4096 READ ALLOCATION TABLE 05337000
HRC011DK: SPACE , 05338000
HRC011DK: LABWRITE CCW 7,SEEKA,CC,6 SEEK 05339000
HRC011DK: CCW 31,FILEMASK,CC,1 SET FILE MASK 05340000
HRC011DK: CCW 49,R3VOL1,CC+SILI,5 FIND VOL1 LABEL RECORD 05341000
HRC011DK: CCW 8,*-8,0,0 TIC 05342000
HRC011DK: CCW 5,OSLABEL,SILI,80 WRITE LABEL 05343000
HRC011DK: *---------------------------------------------------------------------- 05344000
HRC011DK: * ALLOCATION CONSTANTS, EQUATES, AND WORK AREAS 05345000
HRC011DK: *---------------------------------------------------------------------- 05346000
HRC011DK: REG8SAVE DS F SAVE AREA HOLDS R8 @V6292B1 05347000
HRC011DK: SPACE , 05348000
HRC011DK: TWDIND DC X'0004080C1014181C' INDICES INTO TYPWDS FOR 05349000
HRC011DK: * EACH TYPE OF SPACE 05350000
HRC011DK: TYPWDS DC C'TEMP' THE ONE BYTE TYPE FIELD IN THE 05351000
HRC011DK: DC C'PERM' EXTENT MAP IS CONVERTED TO A 05352000
HRC011DK: DC C'TDSK' VALUE FROM TWDIND - THIS IS 05353000
HRC011DK: DC C'BAD ' USED TO INDEX TYPWDS. 05354000
HRC011DK: DC C'DRCT' TOKEN FOR DIRECTORY EXTENTS 05355000
HRC011DK: DC C'PAGE' TOKEN FOR PAGE TYPE EXTENTS 05356000
HRC011DK: DC C'DUMP' DUMP TYPE EXTENT 05357000
HRC011DK: DC C'OVRD' OVERRIDE TYPE EXTENT 05358000
HRC011DK: SPACE , 05359000
HRC011DK: TRWORK DS C WORK AREA 05360000
HRC011DK: TRTZEROS DC X'00010203040506070809' TRANSLATE TABLE STOPS 05361000
HRC011DK: * ON X'F0', CONTINUES FOR OTHERS 05362000
HRC011DK: SPACE , 05363000
HRC011DK: DRCTFREE EQU X'04' DRCT TYPE EXTENT 05364000
HRC011DK: DRCTDIR EQU X'0C' DRCT EXTENT IN USE BY DMKDIR 05365000
HRC011DK: DRCTINV EQU X'F3' INVALID DRCT CYLINDER MASK 05366000
HRC011DK: *---------------------------------------------------------------------- 05367000
HRC011DK: * NORMAL DATA RECORDS (3330/2305 DEFAULT) 05368000
HRC011DK: *---------------------------------------------------------------------- 05369000
HRC011DK: SPACE , 05370000
HRC011DK: SPACE , 05371000
HRC011DK: REC1 DC F'0' CCHH 05372000
HRC011DK: DC AL1(1),AL3(4096) REC NUMBER KL DL DL 05373000
HRC011DK: NXTREC EQU *-REC1 05374000
HRC011DK: RECX1 DC F'0' CCHH 05375000
HRC011DK: DC AL1(128+01),AL3(50) REC NUMBER KL DL DL 05376000
HRC011DK: REC2 DC F'0' CCHH 05377000
HRC011DK: DC AL1(2),AL3(4096) REC NUMBER KL DL DL 05378000
HRC011DK: RECX2 DC F'0' CCHH 05379000
HRC011DK: DC AL1(128+02),AL3(50) REC NUMBER KL DL DL 05380000
HRC011DK: REC3 DC F'0' CCHH 05381000
HRC011DK: DC AL1(3),AL3(4096) REC NUMBER KL DL DL 05382000
HRC011DK: RECX3 DC F'0' CCHH 05383000
HRC011DK: DC AL1(128+03),AL3(50) REC NUMBER KL DL DL 05384000
HRC011DK: REC4 DC F'1' CCHH 05385000
HRC011DK: DC AL1(4),AL3(4096) REC NUMBER KL DL DL 05386000
HRC011DK: RECX4 DC F'1' CCHH 05387000
HRC011DK: DC AL1(128+04),AL3(50) REC NUMBER KL DL DL 05388000
HRC011DK: REC5 DC F'1' CCHH 05389000
HRC011DK: DC AL1(5),AL3(4096) REC NUMBER KL DL DL 05390000
HRC011DK: RECX5 DC F'1' CCHH 05391000
HRC011DK: DC AL1(128+05),AL3(50) REC NUMBER KL DL DL 05392000
HRC011DK: REC6 DC F'1' CCHH 05393000
HRC011DK: DC AL1(6),AL3(4096) REC NUMBER KL DL DL 05394000
HRC011DK: RECX6 DC F'1' CCHH 05395000
HRC011DK: DC AL1(128+06),AL3(50) REC NUMBER KL DL DL 05396000
HRC011DK: REC7 DC F'2' CCHH 05397000
HRC011DK: DC AL1(7),AL3(4096) REC NUMBER KL DL DL 05398000
HRC011DK: RECX7 DC F'2' CCHH 05399000
HRC011DK: DC AL1(128+07),AL3(50) REC NUMBER KL DL DL 05400000
HRC011DK: REC8 DC F'2' CCHH 05401000
HRC011DK: DC AL1(8),AL3(4096) REC NUMBER KL DL DL 05402000
HRC011DK: RECX8 DC F'2' CCHH 05403000
HRC011DK: DC AL1(128+08),AL3(50) REC NUMBER KL DL DL 05404000
HRC011DK: REC9 DC F'2' CCHH 05405000
HRC011DK: DC AL1(9),AL3(4096) REC NUMBER KL DL DL 05406000
HRC011DK: RECX9 DC F'2' CCHH 05407000
HRC011DK: DC AL1(128+09),AL3(50) REC NUMBER KL DL DL 05408000
HRC011DK: REC10 DC F'3' CCHH 05409000
HRC011DK: DC AL1(10),AL3(4096) REC NUMBER KL DL DL 05410000
HRC011DK: RECX10 DC F'3' CCHH 05411000
HRC011DK: DC AL1(128+10),AL3(50) REC NUMBER KL DL DL 05412000
HRC011DK: REC11 DC F'3' CCHH 05413000
HRC011DK: DC AL1(11),AL3(4096) REC NUMBER KL DL DL 05414000
HRC011DK: RECX11 DC F'3' CCHH 05415000
HRC011DK: DC AL1(128+11),AL3(50) REC NUMBER KL DL DL 05416000
HRC011DK: REC12 DC F'3' CCHH 05417000
HRC011DK: DC AL1(12),AL3(4096) REC NUMBER KL DL DL 05418000
HRC011DK: SPACE , 05419000
HRC011DK: RNBYTE1 EQU *-REC1 NUMBER OF BYTES TO APP MIDDLE 05420000
HRC011DK: RNMDLE EQU * APP. MIDDLE OF RECORDS 05421000
HRC011DK: REC13 DC F'1' CCHH 05422000
HRC011DK: DC AL1(13),AL3(4096) REC NUMBER KL DL DL 05423000
HRC011DK: REC14 DC F'1' CCHH 05424000
HRC011DK: DC AL1(14),AL3(4096) REC NUMBER KL DL DL 05425000
HRC011DK: REC15 DC F'1' CCHH 05426000
HRC011DK: DC AL1(15),AL3(4096) REC NUMBER KL DL DL 05427000
HRC011DK: REC16 DC F'1' CCHH 05428000
HRC011DK: DC AL1(16),AL3(4096) REC NUMBER KL DL DL 05429000
HRC011DK: REC17 DC F'1' CCHH 05430000
HRC011DK: DC AL1(17),AL3(4096) REC NUMBER KL DL DL 05431000
HRC011DK: REC18 DC F'1' CCHH 05432000
HRC011DK: DC AL1(18),AL3(4096) REC NUMBER KL DL DL 05433000
HRC011DK: REC19 DC F'1' CCHH 05434000
HRC011DK: DC AL1(19),AL3(4096) REC NUMBER KL DL DL 05435000
HRC011DK: REC20 DC F'1' CCHH 05436000
HRC011DK: DC AL1(20),AL3(4096) REC NUMBER KL DL DL 05437000
HRC011DK: REC21 DC F'2' CCHH SECOND PART OF RECORD 21 05438000
HRC011DK: DC AL1(21),AL3(4096) REC NUMBER KL DL DL 05439000
HRC011DK: REC22 DC F'2' CCHH 05440000
HRC011DK: DC AL1(22),AL3(4096) REC NUMBER KL DL DL 05441000
HRC011DK: REC23 DC F'2' CCHH 05442000
HRC011DK: DC AL1(23),AL3(4096) REC NUMBER KL DL DL 05443000
HRC011DK: REC24 DC F'2' CCHH 05444000
HRC011DK: DC AL1(24),AL3(4096) REC NUMBER KL DL DL 05445000
HRC011DK: REC25 DC F'2' CCHH 05446000
HRC011DK: DC AL1(25),AL3(4096) REC NUMBER KL DL DL 05447000
HRC011DK: REC26 DC F'2' CCHH 05448000
HRC011DK: DC AL1(26),AL3(4096) REC NUMBER KL DL DL 05449000
HRC011DK: REC27 DC F'2' CCHH 05450000
HRC011DK: DC AL1(27),AL3(4096) REC NUMBER KL DL DL 05451000
HRC011DK: REC28 DC F'2' CCHH 05452000
HRC011DK: DC AL1(28),AL3(4096) REC NUMBER KL DL DL 05453000
HRC011DK: REC29 DC F'2' CCHH 05454000
HRC011DK: DC AL1(29),AL3(4096) REC NUMBER KL DL DL 05455000
HRC011DK: REC30 DC F'2' CCHH 05456000
HRC011DK: DC AL1(30),AL3(4096) REC NUMBER KL DL DL 05457000
HRC011DK: SPACE , 05458000
HRC011DK: RECEND EQU * 05459000
HRC011DK: SPACE , 05460000
HRC011DK: RNBYTE2 EQU RECEND-RNMDLE NUMBER OF BYTES OF COUNT FIELDS 05461000
HRC011DK: RNBYTES EQU RECEND-REC1 TOTAL NUMBER OF BYTES IN FIELD 05462000
HRC011DK: RNWRDS EQU RNBYTES/4 NUMBER OF WORDS IN COUNT FIELDS 05463000
HRC011DK: SPACE , 05464000
HRC011DK: RNDATA DC (RNWRDS)F'0' SAVE AREA FOR COUNT RECORDS 05465000
HRC011DK: RECXX3 DC F'0' CCHH 05466000
HRC011DK: DC AL1(192+01),AL3(412) REC NUMBER KL DL DL 05467000
HRC011DK: RECXX6 DC F'0' CCHH 05468000
HRC011DK: DC AL1(192+02),AL3(412) REC NUMBER KL DL DL 05469000
HRC011DK: RECXX13 DC F'1' CCHH 05470000
HRC011DK: DC AL1(192+03),AL3(412) REC NUMBER KL DL DL 05471000
HRC011DK: RECXX16 DC F'1' CCHH 05472000
HRC011DK: DC AL1(192+04),AL3(412) REC NUMBER KL DL DL 05473000
HRC011DK: RECXX23 DC F'2' CCHH 05474000
HRC011DK: DC AL1(192+05),AL3(412) REC NUMBER KL DL DL 05475000
HRC011DK: RECXX26 DC F'2' CCHH 05476000
HRC011DK: DC AL1(192+06),AL3(412) REC NUMBER KL DL DL 05477000
HRC011DK: RECEND1 EQU * 05478000
HRC011DK: RNBYTES1 EQU RECEND1-RECXX3 TOTAL NUMBER OF BYTES IN FIELD 05479000
HRC011DK: RNWRDS1 EQU RNBYTES1/4 NUMBER OF WORDS IN COUNT FIELDS 05480000
HRC011DK: RNRECS1 EQU RNWRDS1/2 NUMBER OF RECORDS 05481000
HRC011DK: RNDATA1 DC (RNWRDS1)F'0' SAVE AREA FOR COUNT RECORDS 05482000
HRC011DK: SPACE , 05483000
HRC011DK: *---------------------------------------------------------------------- 05484000
HRC011DK: * WRITE VERIFICATION FLAGS & ASSOCIATED CCW 05485000
HRC011DK: *---------------------------------------------------------------------- 05486000
HRC011DK: SPACE , 05487000
HRC011DK: CCWCHNG DS A ADDRESS OF AFFECTED CCW IN 05488000
HRC011DK: * CHAINING SEQUENCE FOR WRT VERIF. 05489000
HRC011DK: WVFLAGS DC X'00' WRITE VERIFICATION FLAGS 05490000
HRC011DK: WVPMT EQU X'80' PROMPT FOR WRITE VERIFICATION 05491000
HRC011DK: WVREQ EQU X'40' WRITE VERIFICATION REQUESTED 05492000
HRC011DK: WVNOTOPT EQU X'00' WRITE VERIFICATION IS NOT 05493000
HRC011DK: * OPTIONAL AND WILL ALWAYS BE PERFORMED 05494000
HRC011DK: *---------------------------------------------------------------------- 05495000
HRC011DK: * WITH A SET SECTOR ARGUMENT OF ZERO, RECONNECTION IS 05496000
HRC011DK: * ATTEMPTED JUST BEFORE INDEX, AND THE TRACK IS ORIENTED 05497000
HRC011DK: * TO INDEX. 05498000
HRC011DK: *---------------------------------------------------------------------- 05499000
HRC011DK: SPACE , 05500000
HRC011DK: R0SEC DC XL8'00' ZERO DATA ADDRESS 05501000
HRC011DK: SPACE , 05502000
HRC011DK: *---------------------------------------------------------------------- 05503000
HRC011DK: * SECTOR VALUES FOR DIFFERENT DASD TYPES: 05504000
HRC011DK: * 05505000
HRC011DK: * 2305 MODEL 1 --- 2,32,62 05506000
HRC011DK: * 2305 MODEL 2 --- 3,57,111 05507000
HRC011DK: * 3330 --- 2,44,86 05508000
HRC011DK: * 3340 --- 2,32 05509000
HRC011DK: * 3350 --- 2,33,63,94 05510000
HRC011DK: * 3380 --- 5,26,46,71,92,112,137,157,178,199 05511000
HRC011DK: * 05512000
HRC011DK: * USING A SET SECTOR TO 0 INSTEAD OF SECTOR VALUES BELOW 05513000
HRC011DK: * GUARANTEES THAT RECORD 0 WILL BE WRITTEN. IF SOMETHING ELSE 05514000
HRC011DK: * IS USED, IT MAY NOT ALLOW TIME TO PROCESS AN INDEX, WHICH 05515000
HRC011DK: * IS REQUIRED FOR A WRITE RECORD 0. IF THERE WAS NOT SUFFICIENT 05516000
HRC011DK: * TIME TO PROCESS AN INDEX, A FULL ROTATION OF THE DISK WOULD BE 05517000
HRC011DK: * REQUIRED. THE VALUES IN THE TABLE ABOVE ARE INFORMATIONAL. 05518000
HRC011DK: * 05519000
HRC011DK: *---------------------------------------------------------------------- 05520000
HRC011DK: SAVLOCR DC F'0' SAVE ADDRESS OF LOCATE RECORD CCW@V6AFDD9 05521000
HRC011DK: IMPREND EQU X'04' IMPRECISE ENDING CONDITION @V6AFDD9 05522000
HRC011DK: *---------------------------------------------------------------------- 05523000
HRC011DK: * CKD CCW PROGRAM TO WRITE ALLOCATION TABLE 05524000
HRC011DK: *---------------------------------------------------------------------- 05525000
HRC011DK: SPACE , 05526000
HRC011DK: SPACE , 05527000
HRC011DK: ALLOREC CCW 07,R4SEEK,CC+SILI,6 SEEK TO WRITE ALLOC 05528000
HRC011DK: CCW 31,FILEMASK,CC+SILI,1 SET FILE MASK 05529000
HRC011DK: CCW 49,R4ALLOC,CC+SILI,5 SEARCH ID EQ 05530000
HRC011DK: CCW 08,*-8,0,0 TIC BACK TO SEARCH 05531000
HRC011DK: CCW 05,TABLE,CC+SILI,DL4096 WRITE DATA 05532000
HRC011DK: CCW 49,R4ALLOC,CC+SILI,5 SEARCH ID EQ 05533000
HRC011DK: CCW 08,*-8,0,0 TIC BACK TO SEARCH 05534000
HRC011DK: CCW 06,TABLE,SILI,DL4096 READ DATA 05535000
HRC011DK: *---------------------------------------------------------------------- 05536000
HRC011DK: * 05537000
HRC011DK: * 3330 FORMAT CCWS 05538000
HRC011DK: * 05539000
HRC011DK: * THESE COMMENTS APPLY TO THE STRINGS USED FOR THE FORMATTING OF 05540000
HRC011DK: * 3330S, 3340S, 3350S AND 3380S IN GENERAL, SO WILL NOT 05541000
HRC011DK: * BE REPEATED. THE SEEK TRANSFERS A SEEK ADDRESS FROM MAIN 05542000
HRC011DK: * STORAGE TO THE STORAGE DIRECTOR (CHANNEL, POSSIBLY A 3880), 05543000
HRC011DK: * WHICH SAVES THE ADDRESS AND ALLOWS POSITIONING OF THE ACCESS 05544000
HRC011DK: * MECHANISM AT A LATER TIME. THE FIRST TWO BYTES ARE ALWAYS 05545000
HRC011DK: * ZERO, THE CYLINDER NUMBER IS IN BYTES 3 AND 4, AND THE 05546000
HRC011DK: * REQUIRED HEAD IN 5 AND 6. THE SEEK IS NOT STARTED UNTIL A SET 05547000
HRC011DK: * SECTOR, READ, SEARCH, OR WRITE COMMAND. NEXT, THE SET FILE 05548000
HRC011DK: * MASK TRANSFERS A MASK BYTE DEFINING THE WRITE AND SEEK 05549000
HRC011DK: * OPERATIONS THAT CAN BE USED. ANY VIOLATION CAUSES A UC. SET 05550000
HRC011DK: * SECTOR WITH AN ARGUMENT OF ZERO ORIENTS THE TRACK TO INDEX. 05551000
HRC011DK: * DURING THE TIME THE STORAGE DIRECTOR IS WAITING FOR INDEX, THE 05552000
HRC011DK: * CHANNEL IS AVAILABLE TO PERFORM OTHER OPERATIONS. IF THE 05553000
HRC011DK: * PREVIOUS SEEK COMMAND INDICATED THAT ACCESS MOTION WAS 05554000
HRC011DK: * REQUIRED, THE ACCESS MECHANISM IS POSITIONED WHILE THE STORAGE 05555000
HRC011DK: * DIRECTOR IS DISCONNECTED FROM THE CHANNEL. THE SEARCH ID 05556000
HRC011DK: * EQUAL COMMAND CAUSES THE FIRST ID FOUND ON THE TRACK TO BE 05557000
HRC011DK: * COMPARED WITH THE ARGUMENT. ALL UNEQUAL COMPARISONS OF IDS 05558000
HRC011DK: * CAUSES THE DIRECTOR TO SIGNAL CE AND DE CAUSING THE TIC BACK 05559000
HRC011DK: * TO SEARCH TO EXECUTE. WHEN ID OF RECORD 0 IS FOUND, CE+DE+SM 05560000
HRC011DK: * IS SIGNALLED. THE STATUS MODIFIER CAUSES THE TIC TO BE 05561000
HRC011DK: * SKIPPED AND THE FIRST WRITE CKD COMMAND TO BE EXECUTED. THIS 05562000
HRC011DK: * CAUSES A COUNT AREA, KEY AREA, AND DATA AREA WITH THE LENGTH 05563000
HRC011DK: * SPECIFIED TO BE WRITTEN ON THE DISK. THE DATA LENGTH WHICH 05564000
HRC011DK: * IS FOUND AT THE CCW DATA ADDRESS SPECIFIES A NORMAL RECORD 05565000
HRC011DK: * DATA LENGTH OF 4096 BYTES. ALTHOUGH THE CCW COUNT IS ONLY 05566000
HRC011DK: * EIGHT, 4096 BYTES ARE WRITTEN WITH ZEROES INSERTED IN THE 05567000
HRC011DK: * TRACK POSITIONS UNTIL THE BYTE COUNT REACHES ZERO. NEXT, 05568000
HRC011DK: * A WRITE DATA COMMAND (X'05') IS ISSUED. THIS MUST BE 05569000
HRC011DK: * CHAINED FROM A SEARCH ID EQUAL COMMAND THAT COMPARED EQUALLY 05570000
HRC011DK: * ON ALL BYTES OF THE SEARCHED FIELD. HERE THIS IS USED TO 05571000
HRC011DK: * PERFORM RECORD UPDATING AFTER TRACK FORMATTING, AND RECORD 0 05572000
HRC011DK: * IS UPDATED WITH ZEROES. THE ABOVE DESCRIPTION IS REPEATED 05573000
HRC011DK: * SEVERAL TIMES SO THAT A NUMBER OF TRACKS ARE FORMATTED IN 05574000
HRC011DK: * ONE STRING. FOR A 3350, FOR EXAMPLE, THE STRINGS FORMAT 05575000
HRC011DK: * FOUR RECORDS PER TRACK, THREE TRACKS AT A TIME, AND CREATES 05576000
HRC011DK: * THIRTY TRACKS PER CYLINDER. 05577000
HRC011DK: * 05578000
HRC011DK: * AT THE USER'S OPTION, THE DATA JUST WRITTEN OUT 05579000
HRC011DK: * WITH THE FORMATTING STRING IS THEN VERIFIED FOR CORRECTNESS 05580000
HRC011DK: * BY CHAINING THE FOLLOWING CCWS TO THE LAST WRITE DATA COMMAND 05581000
HRC011DK: * AND IS DONE FOR EACH TRACK: 05582000
HRC011DK: * SEEK 05583000
HRC011DK: * SET SECTOR 05584000
HRC011DK: * SEARCH ID EQUAL (RN) 05585000
HRC011DK: * TIC *-8 05586000
HRC011DK: * READ DATA (1 PAGE) 05587000
HRC011DK: * 05588000
HRC011DK: * THE FORMAT WRITE STRINGS HAVE BEEN MODIFIED HERE TO WRITE 05589000
HRC011DK: * ZERO DATA UPDATING RECORD 0 FOR EACH TRACK LAST FOR BETTER 05590000
HRC011DK: * PERFORMANCE. RECORD 0 USED TO BE UPDATED FIRST (MORE 05591000
HRC011DK: * LOGICAL?) - BUT THIS WAS NOT NECESSARY. ISSUING THE WRITE 05592000
HRC011DK: * DATA COMMAND FIRST WOULD CAUSE ADDITIONAL SEARCH TIME FOR 05593000
HRC011DK: * RECORD 0 AND POSSIBLY EXTRA REVOLUTIONS. THIS MODIFICATION 05594000
HRC011DK: * IMPROVES USER PERFORMANCE IN FORMATTING. 05595000
HRC011DK: * 05596000
HRC011DK: *---------------------------------------------------------------------- 05597000
HRC011DK: SPACE , 05598000
HRC011DK: DS 0D 05599000
HRC011DK: FMT3330 CCW 07,SEEKA,CC+SILI,6 SEEK 05600000
HRC011DK: CCW 31,FILEMASK,CC+SILI,1 SET FILE MASK 05601000
HRC011DK: CCW STSCTR,R0SEC,CC+SILI,1 SET SECTOR 05602000
HRC011DK: CCW 49,SEEKA+2,CC+SILI,5 SEARCH ID EQ RECORD 0 05603000
HRC011DK: CCW 08,*-8,0,0 TIC BACK TO SEARCH 05604000
HRC011DK: CCW 29,REC1,CC+SILI,8 WRITE 4096 PAGE 05605000
HRC011DK: CCW 29,RECX1,CC+SILI,8 WRITE FILLER 05606000
HRC011DK: CCW 29,REC2,CC+SILI,8 WRITE 4096 PAGE 05607000
HRC011DK: CCW 29,RECX2,CC+SILI,8 WRITE FILLER 05608000
HRC011DK: CCW 29,REC3,CC+SILI,8 WRITE 4096 PAGE 05609000
HRC011DK: CCW 49,SEEKA+2,CC+SILI,5 SEARCH ID EQ RECORD 0 05610000
HRC011DK: CCW 08,*-8,0,0 TIC BACK 05611000
HRC011DK: CCW 05,ZERO,CC+SILI,8 WRITE RECORD 0 05612000
HRC011DK: CCW 07,SEEKB,CC+SILI,6 SEEK 05613000
HRC011DK: CCW STSCTR,R0SEC,CC+SILI,1 SET SECTOR 05614000
HRC011DK: CCW 49,SEEKB+2,CC+SILI,5 SEARCH ID EQ RECORD 0 05615000
HRC011DK: CCW 08,*-8,0,0 TIC BACK 05616000
HRC011DK: CCW 29,REC4,CC+SILI,8 WRITE 4096 PAGE 05617000
HRC011DK: CCW 29,RECX4,CC+SILI,8 WRITE FILLER 05618000
HRC011DK: CCW 29,REC5,CC+SILI,8 WRITE 4096 PAGE 05619000
HRC011DK: CCW 29,RECX5,CC+SILI,8 WRITE FILLER 05620000
HRC011DK: CCW 29,REC6,CC+SILI,8 WRITE 4096 PAGE 05621000
HRC011DK: CCW 49,SEEKB+2,CC+SILI,5 SEARCH ID EQ RECORD 0 05622000
HRC011DK: CCW 08,*-8,0,0 TIC 05623000
HRC011DK: CCW 05,ZERO,CC+SILI,8 WRITE RECORD 0 05624000
HRC011DK: CCW 07,SEEKC,CC+SILI,6 SEEK 05625000
HRC011DK: CCW STSCTR,R0SEC,CC+SILI,1 SET SECTOR 05626000
HRC011DK: CCW 49,SEEKC+2,CC+SILI,5 SEARCH ID EQ RECORD 0 05627000
HRC011DK: CCW 08,*-8,0,0 TIC 05628000
HRC011DK: CCW 29,REC7,CC+SILI,8 WRITE 4096 PAGE 05629000
HRC011DK: CCW 29,RECX7,CC+SILI,8 WRITE FILLER 05630000
HRC011DK: CCW 29,REC8,CC+SILI,8 WRITE 4096 PAGE 05631000
HRC011DK: CCW 29,RECX8,CC+SILI,8 WRITE FILLER 05632000
HRC011DK: CCW 29,REC9,CC+SILI,8 WRITE 4096 PAGE 05633000
HRC011DK: CCW 49,SEEKC+2,CC+SILI,5 SEARCH ID EQ RECORD 0 05634000
HRC011DK: CCW 08,*-8,0,0 TIC BACK 05635000
HRC011DK: SPACE , 05636000
HRC011DK: *---------------------------------------------------------------------- 05637000
HRC011DK: * NEXT EQU STMT IS USED FOR WRITE VERIFICATION SUPPORT/NON-SUPPORT 05638000
HRC011DK: *---------------------------------------------------------------------- 05639000
HRC011DK: SPACE , 05640000
HRC011DK: BFORWR57 EQU * CCW BEFORE WR57 LABEL 05641000
HRC011DK: CCW 05,ZERO,CC+SILI,8 WRITE RECORD 0 05642000
HRC011DK: WR57 CCW 08,NEXTWRT,0,0 USED ON 57TH RECORD 05643000
HRC011DK: NEXTWRT CCW 07,SEEKD,CC+SILI,6 SEEK 05644000
HRC011DK: CCW STSCTR,R0SEC,CC+SILI,1 SET SECTOR 05645000
HRC011DK: CCW 49,SEEKD+2,CC+SILI,5 SEARCH ID EQ RECORD 0 05646000
HRC011DK: CCW 08,*-8,0,0 TIC 05647000
HRC011DK: CCW 29,REC10,CC+SILI,8 WRITE 4096 PAGE 05648000
HRC011DK: CCW 29,RECX10,CC+SILI,8 WRITE FILLER 05649000
HRC011DK: CCW 29,REC11,CC+SILI,8 WRITE 4096 PAGE 05650000
HRC011DK: CCW 29,RECX11,CC+SILI,8 WRITE FILLER 05651000
HRC011DK: CCW 29,REC12,CC+SILI,8 WRITE 4096 PAGE 05652000
HRC011DK: CCW 49,SEEKD+2,CC+SILI,5 SEARCH ID EQ RECORD 0 05653000
HRC011DK: CCW 08,*-8,0,0 TIC BACK 05654000
HRC011DK: EWT3330 EQU * ADDRESS OF LAST WRT CCW 05655000
HRC011DK: CCW 05,ZERO,CC+SILI,8 WRITE RECORD 0 05656000
HRC011DK: CCW 8,READCCW,0,0 GO READ/VERIFY TRACKS 05657000
HRC011DK: SPACE , 05658000
HRC011DK: *---------------------------------------------------------------------- 05659000
HRC011DK: * 2305 FORMAT CCWS 05660000
HRC011DK: *---------------------------------------------------------------------- 05661000
HRC011DK: SPACE , 05662000
HRC011DK: DS 0D 05663000
HRC011DK: FMT2305 CCW 07,SEEKA,CC+SILI,6 SEEK 05664000
HRC011DK: CCW 31,FILEMASK,CC+SILI,1 SET FILE MASK 05665000
HRC011DK: CCW STSCTR,R0SEC,CC+SILI,1 SET SECTOR 05666000
HRC011DK: CCW 21,SEEKA+2,CC+SILI,16 WRITE RECORD ZERO 05667000
HRC011DK: CCW 29,REC1,CC+SILI,8 WRITE 4096 PAGE 05668000
HRC011DK: CCW 29,RECX1,CC+SILI,8 WRITE FILLER 05669000
HRC011DK: CCW 29,REC2,CC+SILI,8 WRITE 4096 PAGE 05670000
HRC011DK: CCW 29,RECX2,CC+SILI,8 WRITE FILLER 05671000
HRC011DK: CCW 29,REC3,CC+SILI,8 WRITE 4096 PAGE 05672000
HRC011DK: CCW 07,SEEKB,CC+SILI,6 SEEK 05673000
HRC011DK: CCW 21,SEEKB+2,CC+SILI,16 WRITE RECORD ZERO 05674000
HRC011DK: CCW 29,REC4,CC+SILI,8 WRITE 4096 PAGE 05675000
HRC011DK: CCW 29,RECX4,CC+SILI,8 WRITE FILLER 05676000
HRC011DK: CCW 29,REC5,CC+SILI,8 WRITE 4096 PAGE 05677000
HRC011DK: CCW 29,RECX5,CC+SILI,8 WRITE FILLER 05678000
HRC011DK: CCW 29,REC6,CC+SILI,8 WRITE 4096 PAGE 05679000
HRC011DK: CCW 07,SEEKC,CC+SILI,6 SEEK 05680000
HRC011DK: CCW 21,SEEKC+2,CC+SILI,16 WRITE RECORD ZERO 05681000
HRC011DK: CCW 29,REC7,CC+SILI,8 WRITE 4096 PAGE 05682000
HRC011DK: CCW 29,RECX7,CC+SILI,8 WRITE FILLER 05683000
HRC011DK: CCW 29,REC8,CC+SILI,8 WRITE 4096 PAGE 05684000
HRC011DK: CCW 29,RECX8,CC+SILI,8 WRITE FILLER 05685000
HRC011DK: CCW 29,REC9,CC+SILI,8 WRITE 4096 PAGE 05686000
HRC011DK: CCW 07,SEEKD,CC+SILI,6 SEEK 05687000
HRC011DK: CCW 21,SEEKD+2,CC+SILI,16 WRITE RECORD ZERO 05688000
HRC011DK: CCW 29,REC10,CC+SILI,8 WRITE 4096 PAGE 05689000
HRC011DK: CCW 29,RECX10,CC+SILI,8 WRITE FILLER 05690000
HRC011DK: CCW 29,REC11,CC+SILI,8 WRITE 4096 PAGE 05691000
HRC011DK: CCW 29,RECX11,CC+SILI,8 WRITE FILLER 05692000
HRC011DK: CCW 29,REC12,CC+SILI,8 WRITE 4096 PAGE 05693000
HRC011DK: CCW TIC,READCCW,0,0 GO READ THE TRACKS 05694000
HRC011DK: SPACE , 05695000
HRC011DK: *---------------------------------------------------------------------- 05696000
HRC011DK: * READ/VERIFY CCWS FOR NORMAL RECORDS (3330 AND 2305) 05697000
HRC011DK: *---------------------------------------------------------------------- 05698000
HRC011DK: SPACE , 05699000
HRC011DK: READCCW CCW 07,SEEKA,CC+SILI,6 SEEK 05700000
HRC011DK: CCW STSCTR,R0SEC,CC+SILI,1 SET SECTOR 05701000
HRC011DK: CCW 49,REC1,CC+SILI,5 SEARCH ID EQUAL 05702000
HRC011DK: CCW 08,*-8,0,0 TIC BACK 05703000
HRC011DK: CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) 05704000
HRC011DK: CCW 49,REC2,CC+SILI,5 SEARCH ID EQUAL 05705000
HRC011DK: CCW 08,*-8,0,0 TIC BACK 05706000
HRC011DK: CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) 05707000
HRC011DK: CCW 49,REC3,CC+SILI,5 SEARCH ID EQUAL 05708000
HRC011DK: CCW 08,*-8,0,0 TIC BACK 05709000
HRC011DK: CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) 05710000
HRC011DK: CCW 07,SEEKB,CC+SILI,6 SEEK 05711000
HRC011DK: CCW STSCTR,R0SEC,CC+SILI,1 SET SECTOR 05712000
HRC011DK: CCW 49,REC4,CC+SILI,5 SEARCH ID EQUAL 05713000
HRC011DK: CCW 08,*-8,0,0 TIC BACK 05714000
HRC011DK: CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) 05715000
HRC011DK: CCW 49,REC5,CC+SILI,5 SEARCH ID EQUAL 05716000
HRC011DK: CCW 08,*-8,0,0 TIC BACK 05717000
HRC011DK: CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) 05718000
HRC011DK: CCW 49,REC6,CC+SILI,5 SEARCH ID EQUAL 05719000
HRC011DK: CCW 08,*-8,0,0 TIC BACK 05720000
HRC011DK: CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) 05721000
HRC011DK: CCW 07,SEEKC,CC+SILI,6 SEEK 05722000
HRC011DK: CCW STSCTR,R0SEC,CC+SILI,1 SET SECTOR 05723000
HRC011DK: CCW 49,REC7,CC+SILI,5 SEARCH ID EQUAL 05724000
HRC011DK: CCW 08,*-8,0,0 TIC BACK 05725000
HRC011DK: CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) 05726000
HRC011DK: CCW 49,REC8,CC+SILI,5 SEARCH ID EQUAL 05727000
HRC011DK: CCW 08,*-8,0,0 TIC BACK 05728000
HRC011DK: CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) 05729000
HRC011DK: CCW 49,REC9,CC+SILI,5 SEARCH ID EQUAL 05730000
HRC011DK: CCW 08,*-8,0,0 TIC BACK 05731000
HRC011DK: CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) 05732000
HRC011DK: RD57 CCW 08,NEXTREAD,0,0 USED ON 57TH REC 05733000
HRC011DK: NEXTREAD CCW 07,SEEKD,CC+SILI,6 SEEK 05734000
HRC011DK: CCW STSCTR,R0SEC,CC+SILI,1 SET SECTOR 05735000
HRC011DK: CCW 49,REC10,CC+SILI,5 SEARCH ID EQUAL 05736000
HRC011DK: CCW 08,*-8,0,0 TIC BACK 05737000
HRC011DK: CCW 06,0,CC+SKIP,4096 READ DATA 1 PAGE 05738000
HRC011DK: CCW 49,REC11,CC+SILI,5 SEARCH ID EQUAL 05739000
HRC011DK: CCW 08,*-8,0,0 TIC BACK 05740000
HRC011DK: CCW 06,0,CC+SKIP,4096 READ DATA 1 PAGE 05741000
HRC011DK: CCW 49,REC12,CC+SILI,5 SEARCH ID EQUAL 05742000
HRC011DK: CCW 08,*-8,0,0 TIC BACK 05743000
HRC011DK: CCW 06,0,CC+SKIP,4096 READ DATA 1 PAGE 05744000
HRC011DK: CCW 08,BITMAP,0,0 TIC TO WRITE REC 0 BIT MAP 05745000
HRC011DK: SPACE , 05746000
HRC011DK: ON57WRT CCW 08,READCCW,0,0 USED TO ALTER OTHER TICS 05747000
HRC011DK: OFF57WRT CCW 08,NEXTWRT,0,0 USED TO ALTER OTHER TICS 05748000
HRC011DK: ON57RD CCW 08,BITMAP,0,0 USED TO ALTER OTHER TICS 05749000
HRC011DK: OFF57RD CCW 08,NEXTREAD,0,0 USED TO ALTER OTHER TICS 05750000
HRC011DK: *---------------------------------------------------------------------- 05751000
HRC011DK: * CCWS FOR SPECIAL INFORMATION ON CYLINDER 0 05752000
HRC011DK: *---------------------------------------------------------------------- 05753000
HRC011DK: SPACE , 05754000
HRC011DK: SPEC2314 CCW 07,SEEKA,CC+SILI,6 SEEK CYLINDER 0 HEAD 0 05755000
HRC011DK: CCW 31,FILEMASK,CC+SILI,1 SET FILE MASK 05756000
HRC011DK: CCW 25,SEEKA+1,CC+SILI,5 WRITE HOME ADDRESS 05757000
HRC011DK: CCW 21,SEEKA+2,CC+SILI,16 WRITE RECORD 0 05758000
HRC011DK: CCW 29,R1SPEC,CC+SILI,8+24 WRITE IPL RECORD 05759000
HRC011DK: CCW 29,R2SPEC,CC+SILI,8 WRITE RECORD 2 05760000
HRC011DK: CCW 29,R3VOL1,CC+SILI,8+84 WRITE VOL1 OS LABEL 05761000
HRC011DK: CCW 29,R4COUNT,CC+SILI,8+1024 WRITE ALLOCATION MAP 05762000
HRC011DK: CCW 29,FORMAT4,CC+SILI,8+140 WRITE FORMAT4 RECORD 05763000
HRC011DK: CCW 29,FORMAT5,CC+SILI,8+140 WRITE FORMAT5 RECORD 05764000
HRC011DK: CCW 07,SEEKB,CC+SILI,6 SEEK 05765000
HRC011DK: CCW 25,SEEKB+1,CC+SILI,5 WRITE HOME ADDRESS 05766000
HRC011DK: CCW 21,SEEKB+2,CC+SILI,16 WRITE RECORD 0 05767000
HRC011DK: CCW 29,RF3,CC+SILI,8 WRITE ONE PAGE RECORD 05768000
HRC011DK: CCW 29,RF4SPEC,CC+SILI,8 WRITE FILLER 05769000
HRC011DK: CCW 01,R4SPEC,CC+SILI,8 WRITE SPECIAL CKD INFO 05770000
HRC011DK: VERIFY CCW 07,SEEKA,CC+SILI,6 SEEK 05771000
HRC011DK: CCW 26,0,CC+SKIP,5 READ HOME ADDRESS 05772000
HRC011DK: CCW 22,0,CC+SKIP,16 READ RECORD 0 05773000
HRC011DK: CCW 30,0,CC+SKIP,8+24 READ CKD IPL RECORD 05774000
HRC011DK: CCW 30,0,CC+SKIP,8+4096 READ CKD PAGE RECORD 05775000
HRC011DK: CCW 30,0,CC+SKIP,8+84 READ CKD VOL1 LABEL 05776000
HRC011DK: CCW 30,0,CC+SKIP+SILI,8+2048 READ CKD ALLO MAP 05777000
HRC011DK: CCW 30,0,CC+SKIP,8+140 READ CKD FORMAT4 RECORD 05778000
HRC011DK: CCW 30,0,CC+SKIP,8+140 READ CKD FORMAT5 RECORD 05779000
HRC011DK: GO CCW 08,GO2314,0,0 2314, 3330, 3340, 3380 05780000
HRC011DK: * DEPENDS ON DEVICE 05781000
HRC011DK: GO2314 CCW 07,SEEKB,CC+SILI,6 SEEK TRACK 1 05782000
HRC011DK: CCW 26,0,CC+SKIP,5 READ HOME ADDRESS 05783000
HRC011DK: CCW 22,0,CC+SKIP,16 READ RECORD 0 05784000
HRC011DK: CCW 30,0,CC+SKIP,8+4096 READ CKD F3 PAGE 05785000
HRC011DK: CCW 30,0,CC+SKIP,8+1624 READ CKD FILLER 05786000
HRC011DK: CCW 49,R4SPEC,CC+SILI,5 SEARCH ID EQUAL REC 4 05787000
HRC011DK: CCW 08,*-8,0,0 TIC BACK 05788000
HRC011DK: CCW 06,0,SKIP,4096 READ RECORD 4 FULLY 05789000
HRC011DK: SPACE , 05790000
HRC011DK: GO3330 CCW 30,0,SKIP+SILI,8+4096 READ F3 PAGE RECORD 05791000
HRC011DK: *---------------------------------------------------------------------- 05792000
HRC011DK: * CCW TO PICKUP BROKEN CCW CHAIN 05793000
HRC011DK: *---------------------------------------------------------------------- 05794000
HRC011DK: SPACE , 05795000
HRC011DK: RESUMCCW CCW 31,FILEMASK,CC+SILI,1 05796000
HRC011DK: CCW 08,0,0,0 05797000
HRC011DK: DS 0F 05798000
HRC011DK: DS 1H 05799000
HRC011DK: SEEKA DC H'0' BB 05800000
HRC011DK: DC F'0' CCHH - SEEK HEAD 0 05801000
HRC011DK: DC F'8' REC NO. AND DL OR R0 05802000
HRC011DK: R0STUF DC 2F'0' DATA FIELD OF R0 CYL BIT MAP 05803000
HRC011DK: DS 1H 05804000
HRC011DK: NXTSEEK EQU *-SEEKA LENGTH OF ONE SEEK DATA FIELD 05805000
HRC011DK: SEEKB DC H'0' BB 05806000
HRC011DK: DC F'1' CCHH - SEEK HEAD 1 05807000
HRC011DK: DC F'8' REC NO. AND DL OR R0 05808000
HRC011DK: DC 2F'0' 05809000
HRC011DK: DS 1H 05810000
HRC011DK: SEEKC DC H'0' 05811000
HRC011DK: DC F'2' 05812000
HRC011DK: DC F'8' 05813000
HRC011DK: DC 2F'0' 05814000
HRC011DK: DS 1H 05815000
HRC011DK: SEEKD DC H'0' 05816000
HRC011DK: DC F'3' 05817000
HRC011DK: DC F'8' 05818000
HRC011DK: DC 2F'0' 05819000
HRC011DK: DS 1H 05820000
HRC011DK: SEEKE DC H'0' 05821000
HRC011DK: DC F'4' 05822000
HRC011DK: DC F'8' 05823000
HRC011DK: DC 2F'0' 05824000
HRC011DK: DS 1H 05825000
HRC011DK: SEEKF DC H'0' 05826000
HRC011DK: DC F'5' 05827000
HRC011DK: DC F'8' 05828000
HRC011DK: DC 2F'0' 05829000
HRC011DK: *---------------------------------------------------------------------- 05830000
HRC011DK: * SAVE RECORD INFORMATION 05831000
HRC011DK: *---------------------------------------------------------------------- 05832000
HRC011DK: SPACE , 05833000
HRC011DK: R1SPEC DC F'0' IPL RECORD SAVE AREA 05834000
HRC011DK: DC AL1(1),AL3(24) AREA SIZE = 8+24 BYTES 05835000
HRC011DK: IPLREC DC X'000200000000000C' IPL RECORD (24 BYTES) 05836000
HRC011DK: DC X'0300',H'0' 05837000
HRC011DK: DC X'2000',H'0' 05838000
HRC011DK: DC 2F'0' 05839000
HRC011DK: SPACE , 05840000
HRC011DK: R2SPEC DC F'0' RECORD 2 (DMKCKP) SAVE AREA 05841000
HRC011DK: DC AL1(2),AL3(4096) 05842000
HRC011DK: SPACE , 05843000
HRC011DK: R3VOL1 DC F'0' VOL1 OS LABEL RECORD - VOL1 COUNT 05844000
HRC011DK: DC AL1(3),AL1(4),AL2(80) REC KL DL DL 05845000
HRC011DK: VOL1 DC C'VOL1' KEY 05846000
HRC011DK: DSFLABEL DS 0CL512 512 BYTES FOR USER LABEL 05847000
HRC011DK: OSLABEL DS 0CL80 80 BYTES FOR OS LABEL 05848000
HRC011DK: DC C'VOL1' 05849000
HRC011DK: CPLABEL DC C' NONE ' LABEL PLACED HERE 05850000
HRC011DK: DC X'F0' 05851000
HRC011DK: VTOCBEG DC XL4'0' PTR TO VTOC IN R3 (CCHH) 05852000
HRC011DK: VTOCR DC X'05' PTR TO VTOC IN R3 (R) 05853000
HRC011DK: DC XL5'0' 05854000
HRC011DK: DC 20XL1'40' 05855000
HRC011DK: DC XL5'00' 05856000
HRC011DK: SPACE , 05857000
HRC011DK: LCP370 DC CL5'CP370' VOLUME OWNER 05858000
HRC011DK: DC 29XL1'40' 05859000
HRC011DK: * END OF OS LABEL AREA 05860000
HRC011DK: DS CL432 05861000
HRC011DK: * END OF USER LABEL AREA 05862000
HRC011DK: CNOP 2,4 05863000
HRC011DK: R4SEEK DC H'0' 05864000
HRC011DK: R4ALLOC DC F'0' CCHH 05865000
HRC011DK: DC AL1(04) RECORD NUMBER = 4 05866000
HRC011DK: DC AL1(0) KL = 0 05867000
HRC011DK: R4DL DC AL2(0) DL=1024, 2048, OR 4096 05868000
HRC011DK: CHARSAVE DS CL9 SAVE AREA FOR INPUT CYL NUMBERS 05869000
HRC011DK: CHARMASK DC XL9'F0F0F0F040F0F0F0F0' MASK FOR CYL NUMBERS 05870000
HRC011DK: SPACE , 05871000
HRC011DK: FORMAT4 DC F'00' CCHH 05872000
HRC011DK: DC AL1(5),AL1(44),AL2(96) REC KL DL DL 05873000
HRC011DK: DC 44XL1'04' KEY OF HEX 04 05874000
HRC011DK: FMT4DATA DC X'F4' FMT4 DSCB IDENTIFIER 05875000
HRC011DK: DC X'0000000000' CCHHR 05876000
HRC011DK: DC X'0000' 05877000
HRC011DK: SPACE , 05878000
HRC011DK: NEXTCCHH DC XL4'0' CCHH OF NEXT AVAIL. ALT TRK 05879000
HRC011DK: DC X'0000' 05880000
HRC011DK: DC X'00' VTOC INDICATORS 05881000
HRC011DK: DC X'01003C00140014' 05882000
HRC011DK: DC X'1C7E922D2D' 05883000
HRC011DK: DC X'0102160202' 05884000
HRC011DK: DC XL29'00' 05885000
HRC011DK: DC X'00' TRACK ZERO 05886000
HRC011DK: DC XL8'00' 05887000
HRC011DK: DC X'00' TRACK ZERO 05888000
HRC011DK: DC XL25'00' 05889000
HRC011DK: SPACE , 05890000
HRC011DK: FORMAT5 DC F'0' CCHH 05891000
HRC011DK: DC AL1(6),AL1(44),AL2(96) REC KL DL DL 05892000
HRC011DK: DC 4XL1'05' 05893000
HRC011DK: DC X'0001000000' TRACK ZERO NO CYLINDERS NO TRACKS 05894000
HRC011DK: DC XL35'00' 05895000
HRC011DK: DC X'F5' 05896000
HRC011DK: DC XL90'00' 05897000
HRC011DK: DC XL5'00' 05898000
HRC011DK: SPACE , 05899000
HRC011DK: RF3 DC F'1' PAGE SIZE FILLER RECORD 05900000
HRC011DK: DC X'F3',AL3(4096) 05901000
HRC011DK: RF4SPEC DC F'1' FILLER RECORD 05902000
HRC011DK: DC X'F4',AL3(1624) 05903000
HRC011DK: R4SPEC DC F'1' SPECIAL CKD INFO 05904000
HRC011DK: DC AL1(4),AL3(824) 05905000
HRC011DK: RF33330 DC F'0' FILLER RECORD FOR 3330/2305 05906000
HRC011DK: DC X'F3',AL3(4096) 05907000
HRC011DK: SPACE , 05908000
HRC011DK: *---------------------------------------------------------------------- 05909000
HRC011DK: * SPECIAL RECORDS FOR 3380 CYL0 TRK0 05910000
HRC011DK: *---------------------------------------------------------------------- 05911000
HRC011DK: SPACE , 05912000
HRC011DK: RF43380 DC F'0' FILLER RECORDS FOR 3380 05913000
HRC011DK: DC AL1(244),AL3(4096) REC NUMBER KL DL DL 05914000
HRC011DK: RF53380 DC F'0' CCHH FOR FILLER 05915000
HRC011DK: DC AL1(245),AL3(4096) REC NUMBER KL DL DL 05916000
HRC011DK: RF63380 DC F'0' CCHH FOR FILLER 05917000
HRC011DK: DC AL1(246),AL3(4096) REC NUMBER KL DL DL 05918000
HRC011DK: RF73380 DC F'0' CCHH FOR FILLER 05919000
HRC011DK: DC AL1(247) RECORD NUMBER = 247 05920000
HRC011DK: DC AL1(0) KEY LENGTH = 0 05921000
HRC011DK: RF7DL DC AL2(0) DATA LENGTH IS 4K FOR 3380 MOD1 C05922000
HRC011DK: 3K FOR 3380-2, 1K FOR 3380-3 05923000
HRC011DK: RF83380 DC F'0' CCHH FOR FILLER 05924000
HRC011DK: DC AL1(248),AL3(400) REC NUMBER KL DL DL 05925000
HRC011DK: RS73380 DC F'0' VALID PAGE RECORDS FOR 3380 05926000
HRC011DK: DC AL1(007),AL3(4096) REC NUMBER KL DL DL 05927000
HRC011DK: RS83380 DC F'0' CCHH FOR RECORD 05928000
HRC011DK: DC AL1(008),AL3(4096) REC NUMBER KL DL DL 05929000
HRC011DK: RS93380 DC F'0' CCHH FOR RECORD 05930000
HRC011DK: DC AL1(009),AL3(4096) REC NUMBER KL DL DL 05931000
HRC011DK: RSA3380 DC F'0' CCHH FOR RECORD 05932000
HRC011DK: DC AL1(010),AL3(4096) REC NUMBER KL DL DL 05933000
HRC011DK: SPACE , 05934000
HRC011DK: *---------------------------------------------------------------------- 05935000
HRC011DK: * 2314 NORMAL DATA RECORDS 05936000
HRC011DK: *---------------------------------------------------------------------- 05937000
HRC011DK: SPACE , 05938000
HRC011DK: R1STUF DC F'0' 05939000
HRC011DK: DC AL1(1),AL3(4096) 05940000
HRC011DK: R2STUF DC F'0' 05941000
HRC011DK: DC AL1(2),AL3(2472) 05942000
HRC011DK: R2ASTUF DC F'1' 05943000
HRC011DK: DC AL1(2),AL3(1624) 05944000
HRC011DK: R3STUF DC F'1' 05945000
HRC011DK: DC AL1(3),AL3(4096) 05946000
HRC011DK: R4STUF DC F'1' 05947000
HRC011DK: DC AL1(4),AL3(824) 05948000
HRC011DK: R4ASTUF DC F'2' 05949000
HRC011DK: DC AL1(4),AL3(3272) 05950000
HRC011DK: R5STUF DC F'2' 05951000
HRC011DK: DC AL1(5),AL3(3296) 05952000
HRC011DK: R5ASTUF DC F'3' 05953000
HRC011DK: DC AL1(5),AL3(800) 05954000
HRC011DK: R6STUF DC F'3' 05955000
HRC011DK: DC AL1(6),AL3(4096) 05956000
HRC011DK: R7STUF DC F'3' SPECIAL CKD RECORD 05957000
HRC011DK: DC AL1(7),AL3(1648) 05958000
HRC011DK: R7ASTUF DC F'4' 05959000
HRC011DK: DC AL1(7),AL3(2448) 05960000
HRC011DK: R8STUF DC F'4' 05961000
HRC011DK: DC AL1(8),AL3(4096) 05962000
HRC011DK: RNR1STUF EQU *-R1STUF NUMBER OF BYTES FOR 2314 CCW DATA 05963000
HRC011DK: LTORG , 05964000
HRC011DK: MCYL3382 DC H'1769' HIGHEST CYLINDER ON 3380-2 05965000
HRC011DK: MCYL3383 DC H'2654' 3380 EXPANDED FEATURE 05966000
HRC011DK: FLAG DC X'00' A OR F 05967000
HRC011DK: SPACE , 05968000
HRC011DK: TYPE DC X'00' DEVICE TYPE 05969000
HRC011DK: * THIS FIELD AND THE BITS IN IT ARE USED DIFFERENTLY THAN THE 05970000
HRC011DK: * FIELD RDEVTYPE IN THE REST OF THE VM/SP CODE. 05971000
HRC011DK: * TESTED WITH CLI INSTRUCTION EXCEPT FOR DEVICE TYPE TYP2305X 05972000
HRC011DK: * WHERE TM IS USED SOMETIMES 05973000
HRC011DK: TYP2314 EQU X'14' 2314 DEVICE CODE 05974000
HRC011DK: TYP2319 EQU X'14' 2319 DEVICE CODE, SAME AS 2314 05975000
HRC011DK: TYP23051 EQU X'51' 2305 DEVICE CODE MODEL 1 05976000
HRC011DK: TYP23052 EQU X'52' 2305 DEVICE CODE MODEL 2 05977000
HRC011DK: TYP3330 EQU X'30' 3330 DEVICE CODE 05978000
HRC011DK: TYP334X EQU X'40' 3340/3344 DEVICE CODE 05979000
HRC011DK: TYP3350 EQU X'60' 3350 DEVICE CODE 05980000
HRC011DK: TYP3380 EQU X'20' 3380 DEVICE CODE 05981000
HRC011DK: RDEVMD82 EQU X'08' 3380 MODEL 2 05982000
HRC011DK: RDEVMD83 EQU X'0C' 3380 MODEL 3 05983000
HRC011DK: SPACE , 05984000
HRC011DK: CUBSY EQU X'50' CONTROL UNIT BUSY IN CSW 05985000
HRC011DK: CUEND EQU X'20' CONTROL UNIT END IN CSW 05986000
HRC011DK: SPACE , 05987000
HRC011DK: CSWCDE EQU X'04' MASK FOR CSW STORED CC AFTER IO 05988000
HRC011DK: BSY EQU X'02' MASK FOR BUSY CC AFTER IO OP 05989000
HRC011DK: NOPER EQU X'01' MASK FOR NOT OPERATIONAL CC 05990000
HRC011DK: SPACE , 05991000
HRC011DK: FLNGDRCT EQU X'10' SENSE CODE FOR FAILING DIRECTOR 05992000
HRC011DK: SPACE , 05993000
HRC011DK: *---------------------------------------------------------------------- 05994000
HRC011DK: * CYLINDER IS FORMATTED IN A CERTAIN NUMBER OF PASSES DEPENDING 05995000
HRC011DK: * ON THE D/T OF THE DASD. A PASS CONSISTS OF 3 OR MORE WHOLE 05996000
HRC011DK: * TRACKS. 05997000
HRC011DK: *---------------------------------------------------------------------- 05998000
HRC011DK: SPACE , 05999000
HRC011DK: RN3380 EQU 30 NUMBER OF PAGES/PASS FOR 3380 06000000
HRC011DK: RN3350 EQU 12 NUMBER OF PAGES/PASS FOR 3350 06001000
HRC011DK: RN3340 EQU 12 NUMBER OF PAGES/PASS FOR 3340 06002000
HRC011DK: RN3330 EQU 12 NUMBER OF PAGES/PASS FOR 3330 06003000
HRC011DK: RN2314 EQU 8 NUMBER OF PAGES/PASS FOR 2314 06004000
HRC011DK: RN2305 EQU 12 NUMBER OF PAGES/PASS FOR 2305 06005000
HRC011DK: SPACE , 06006000
HRC011DK: TRPP3380 EQU 3 NUMBER OF TRACKS/PASS FOR 3380 06007000
HRC011DK: TRPP3350 EQU 3 NUMBER OF TRACKS/PASS FOR 3350 06008000
HRC011DK: TRPP3340 EQU 6 NUMBER OF TRACKS/PASS FOR 3340 06009000
HRC011DK: TRPP3330 EQU 4 NUMBER OF TRACKS/PASS FOR 3330 06010000
HRC011DK: TRPP2314 EQU 5 NUMBER OF TRACKS/PASS FOR 2314 06011000
HRC011DK: TRPP2305 EQU 4 NUMBER OF TRACKS/PASS FOR 2305 06012000
HRC011DK: SPACE , 06013000
HRC011DK: *---------------------------------------------------------------------- 06014000
HRC011DK: * THE FOLLOWING RECORD/PASS NUMBERS CONTAIN PAGE RECORDS AND 06015000
HRC011DK: * FILLER RECORDS. ACCORDING TO THE DATA STRUCTURE, FOR SOME D/T, 06016000
HRC011DK: * MORE RECORDS ARE UPDATED THAN ARE ACTUALLY WRITTEN. 06017000
HRC011DK: *---------------------------------------------------------------------- 06018000
HRC011DK: SPACE , 06019000
HRC011DK: RNRC3380 EQU RNBYTES/8 NUMBER OF 3380 RECORDS TO UPDATE 06020000
HRC011DK: RNRC3350 EQU RNBYTE1/8 NUMBER OF 3350 RECORDS TO UPDATE 06021000
HRC011DK: RNRC3340 EQU RNBYTE1/8 NUMBER OF 3340 RECORDS TO UPDATE 06022000
HRC011DK: RNRC3330 EQU RNBYTE1/8 NUMBER OF 3330 RECORDS TO UPDATE 06023000
HRC011DK: RNRC2314 EQU RNR1STUF/8 NUMBER OF 2314 RECORDS TO UPDATE 06024000
HRC011DK: RNRC2305 EQU RNBYTE1/8 NUMBER OF 2305 RECORDS TO UPDATE 06025000
HRC011DK: SPACE , 06026000
HRC011DK: MREC3380 EQU 150 NUMBER OF PAGES /CYL FOR 3380 06027000
HRC011DK: SPACE , 06028000
HRC011DK: RNTR3380 EQU 13 #RECS IN 1 LOC REC 3380 = 1 TRACK 06029000
HRC011DK: SPACE , 06030000
HRC011DK: *---------------------------------------------------------------------- 06031000
HRC011DK: * NUMBER OF RECORDS PER LOCATE RECORD WHEN WRITING TO 06032000
HRC011DK: * CYL. 0, TRACK 0: 06033000
HRC011DK: * RECORD 0 06034000
HRC011DK: * STANDARD RECORDS 1 TO 6 06035000
HRC011DK: * X FILLER RECORDS 06036000
HRC011DK: * Y PAGE RECORDS 06037000
HRC011DK: * (BOTH ARE DEVICE DEPENDENT) 06038000
HRC011DK: *---------------------------------------------------------------------- 06039000
HRC011DK: SPACE , 06040000
HRC011DK: RNT03380 EQU 7+5+4 NO. RECS IN LOC. REC FOR CYL0/TR0 06041000
HRC011DK: * 3380: X = 5, Y = 4 06042000
HRC011DK: SPACE , 06043000
HRC011DK: MHD3380 EQU 14 MAX HEAD # FOR 3380 (HEADS 0-14) 06044000
HRC011DK: SPACE , 06045000
HRC011DK: *---------------------------------------------------------------------- 06046000
HRC011DK: * THE TRANSFER LENGTH FACTOR FOR VARIABLE LENGTH RECORDS 06047000
HRC011DK: * IS CALCULATED AS FOLLOWS: 06048000
HRC011DK: * SUMMATION (DATA LENGTH + KEY LENGTH)/ ( # OF RECORDS) 06049000
HRC011DK: * (EXCLUDING RECORD 0 IN THE RECORD COUNT) 06050000
HRC011DK: *---------------------------------------------------------------------- 06051000
HRC011DK: SPACE , 06052000
HRC011DK: TLFM3380 EQU 3482 AVERAGE TLF FOR FORMATTING 3380 06053000
HRC011DK: SPACE , 06054000
HRC011DK: TLFX3380 EQU 2578 AVERAGE TLF FOR WRITING CYL0 TRK0 06055000
HRC011DK: SPACE , 06056000
HRC011DK: ERBT3380 EQU X'FC' RECORDS TO CHECK/RECORDS TO SHOW IN USE 06057000
HRC011DK: RECN0 EQU X'00' RECORD NUMBER 0 06058000
HRC011DK: RECN1 EQU X'01' RECORD NUMBER 1 06059000
HRC011DK: RECN2 EQU X'02' RECORD NUMBER 2 06060000
HRC011DK: RECN4 DC X'04' RECORD NUMBER 4 06061000
HRC011DK: SPACE , 06062000
HRC011DK: DEFEXT EQU X'63' DEFINE EXTENT OP CODE 06063000
HRC011DK: E4 EQU X'E4' E4 SENSE OP CODE 06064000
HRC011DK: LOCREC EQU X'47' LOCATE RECORD OP CODE 06065000
HRC011DK: SEEK EQU X'07' SEEK 06066000
HRC011DK: SFM EQU X'1F' SET FILE MASK 06067000
HRC011DK: STSCTR EQU X'23' SET SECTOR 06068000
HRC011DK: SIEQ EQU X'31' SEARCH ID EQUAL 06069000
HRC011DK: TIC EQU X'08' TRANSFER IN CHANNEL PROGRAM 06070000
HRC011DK: READ EQU X'06' READ DATA 06071000
HRC011DK: RDREC0 EQU X'16' READ RECORD ZERO OP CODE 06072000
HRC011DK: RHADDR EQU X'1A' READ HOME ADDRESS OP CODE 06073000
HRC011DK: RCKD EQU X'1E' READ COUNT-KEY-DATA OP CODE 06074000
HRC011DK: WCKD EQU X'1D' WRITE COUNT-KEY-DATA 06075000
HRC011DK: WSCKD EQU X'01' WRITE SPECIAL COUNT-KEY-DATA 06076000
HRC011DK: WRTD EQU X'05' WRITE DATA 06077000
HRC011DK: WTREC0 EQU X'15' WRITE RECORD 0 OP CODE 06078000
HRC011DK: WHADDR EQU X'19' WRITE HOME ADDRESS OP CODE 06079000
HRC011DK: SENSEIO EQU X'04' SENSE I/O 06080000
HRC011DK: NOPCCW EQU X'03' NO-OPERATION CCW 06081000
HRC011DK: SPACE , 06082000
HRC011DK: COMMA EQU C',' CHARACTER COMMA 06083000
HRC011DK: BLANK EQU 1 A SINGLE BLANK IN BET. NAME & CYL 06084000
HRC011DK: CYLNUM EQU 4 4 DIGIT START/ENDING CYL NUMBERS 06085000
HRC011DK: NAMCHARS EQU 4 CHARS AS 'PERM', 'TEMP', ... ETC. 06086000
HRC011DK: SPACE , 06087000
HRC011DK: SPACE , 06088000
HRC011DK: DSKADD DC H'0' DEVICE ADDRESS 06089000
HRC011DK: CONSOL DC H'9' CONSOLE DEFAULT ADDRESS 06090000
HRC011DK: CON01F DC X'001F' CONSOLE ADDRESS 001F 06091000
HRC011DK: ADDR1 DC X'5B5F' LOCATION LINE 22 COL 80 06092000
HRC011DK: ADDR2 DC X'5D6B' LOCATION LINE 24 COL 60 06093000
HRC011DK: ADDR3 DC X'D65F' LOCATION LINE 18 COL 80 06094000
HRC011DK: ADDR4 DC X'D86B' LOCATION LINE 20 COL 60 06095000
HRC011DK: ADDR5 DC X'4040' INITIALIZED ADDR 06096000
HRC011DK: ADDR6 DC X'5B60' LOCATION LINE 23 COL 01 06097000
HRC011DK: ADDR7 DC X'D660' LOCATION LINE 19 COL 01 06098000
HRC011DK: DS 0F 06099000
HRC011DK: MAXLEN DC F'0000' 06100000
HRC011DK: LEN3270 DC F'1760' 3270 MOD2 24 LINE CONSOLE/TERM 06101000
HRC011DK: LEN3278 DC F'1440' 3278 MOD2A 20 LINE CONSOLE 06102000
HRC011DK: SPACE , 06103000
HRC011DK: DS 0D 06104000
HRC011DK: WTPSW DC X'00020000' HARD WAIT PSW FOR PROG/MACH CHK 06105000
HRC011DK: DC F'0' 06106000
HRC011DK: PRNUPSW DC F'0',A(PRCHK) PROGRAM NEW PSW 06107000
HRC011DK: MCNUPSW DC F'0',A(MCRTN) MACHINE CHECK NEW PSW 06108000
HRC011DK: SPACE , 06109000
HRC011DK: INDATA DC 132X'00' INPUT DATA AREA 06110000
HRC011DK: FILEMASK DC X'C0' ALLOW WRITE OPERATIONS 06111000
HRC011DK: MASKA DC XL8'F0F0F0F0F0F0F0F0' MASKS FOR DETERMINING IF 06112000
HRC011DK: MASKB DC XL8'F0F0F0F0F0F0F0F0' DATA IS ALL NUMERIC 06113000
HRC011DK: SPACE , 06114000
HRC011DK: FIELDA DC D'0' PACK/UNPACK DATA FIELD 06115000
HRC011DK: FIELDB DC D'0' PACK/UNPACK DATA FIELD 06116000
HRC011DK: FIELDC DC D'0' PACK/UNPACK DATA FIELD 06117000
HRC011DK: BLANKS8 DC X'4040404040404040' BLANKS 06118000
HRC011DK: FFS8 DC X'FFFFFFFFFFFFFFFF' FFS 06119000
HRC011DK: TTAB DC C'0123456789ABCDEF' TRANSLATE TABLE 06120000
HRC011DK: SPACE , 06121000
HRC011DK: TIC3380 CCW TIC,SPEC3380,0,0 MODIFYING CCW FOR 3380 WRITES 06122000
HRC011DK: WRT3340 CCW WCKD,RF33330,CC+SILI,8 TO REPLACE 3380 MOD CCW 06123000
HRC011DK: SPEC3330 CCW 07,SEEKA,CC+SILI,6 SEEK CYL 0 HEAD 0 06124000
HRC011DK: CCW 31,FILEMASK,CC+SILI,1 SET FILE MASK 06125000
HRC011DK: CCW 49,SEEKA+2,CC+SILI,5 SEARCH ID EQ RECORD 0 06126000
HRC011DK: CCW 08,*-8,0,0 TIC BACK 06127000
HRC011DK: CCW 05,R0STUF,CC+SILI,8 WRITE RECORD 0 06128000
HRC011DK: CCW 49,SEEKA+2,CC+SILI,5 SEARCH ID EQ RECORD 0 06129000
HRC011DK: CCW 08,*-8,0,0 TIC BACK TO SEARCH 06130000
HRC011DK: CCW 29,R1SPEC,CC+SILI,8+24 WRITE IPL RECORD 06131000
HRC011DK: CCW 29,R2SPEC,CC+SILI,8 WRITE RECORD 06132000
HRC011DK: CCW 29,R3VOL1,CC+SILI,8+84 WRITE VOL1 OS LABEL 06133000
HRC011DK: CCW 29,R4COUNT,CC+SILI,8+DL4096 ALLOCATION MAP 06134000
HRC011DK: * R4 IS 4K FOR 3380-3, 2K FOR 3380-2, ELSE 1K 06135000
HRC011DK: * CHAN WILL PAD END OF DATA WITH 0'S 06136000
HRC011DK: CCW 29,FORMAT4,CC+SILI,8+140 WRITE FORMAT4 RECORD 06137000
HRC011DK: CCW 29,FORMAT5,CC+SILI,8+140 WRITE FORMAT5 RECORD 06138000
HRC011DK: NOP3340 CCW 29,RF33330,CC+SILI,8 WRITE 1 PAGE RECORD 06139000
HRC011DK: CCW 08,VERIFY,0,0 VERIFY WHAT WAS WRITTEN 06140000
HRC011DK: SPACE , 06141000
HRC011DK: DS 0D 06142000
HRC011DK: RDFMT4 CCW 7,SEEKA,CC,6 RD FMT4 AS SPEC. IN VTOC 06143000
HRC011DK: CCW 31,FILEMASK,CC,1 SET FILE MASK 06144000
HRC011DK: CCW 49,VTOCBEG,CC+SILI,5 SEARCH ID EQ 06145000
HRC011DK: CCW 8,*-8,0,0 TIC 06146000
HRC011DK: CCW 6,FMT4DATA,SILI,96 READ FMT4 LABEL 06147000
HRC011DK: *---------------------------------------------------------------------- 06148000
HRC011DK: * 3380 FORMAT CYLINDER 0 TRACK 0 CCWS 06149000
HRC011DK: *---------------------------------------------------------------------- 06150000
HRC011DK: SPACE , 06151000
HRC011DK: SPEC3380 CCW WCKD,RF43380,CC+SILI,8 WRITE FILLER (1 PAGE) 06152000
HRC011DK: CCW WCKD,RF53380,CC+SILI,8 WRITE FILLER (1 PAGE) 06153000
HRC011DK: CCW WCKD,RF63380,CC+SILI,8 WRITE FILLER (1 PAGE) 06154000
HRC011DK: CCW WCKD,RF73380,CC+SILI,8 WRITE FILLER 06155000
HRC011DK: * 4K IF 3380-0, 3K IF 3380-2, 1K IF 3380-3 06156000
HRC011DK: CCW WCKD,RF83380,CC+SILI,8 WRITE FILLER 400 BYTES 06157000
HRC011DK: CCW WCKD,RS73380,CC+SILI,8 VALID PAGE RECORD 06158000
HRC011DK: CCW WCKD,RS83380,CC+SILI,8 VALID PAGE RECORD 06159000
HRC011DK: CCW WCKD,RS93380,CC+SILI,8 VALID PAGE RECORD 06160000
HRC011DK: CCW WCKD,RSA3380,CC+SILI,8 VALID PAGE RECORD 06161000
HRC011DK: CCW TIC,VERIFY,0,0 GO VERIFY SPECIAL RECORDS 06162000
HRC011DK: SPACE , 06163000
HRC011DK: *---------------------------------------------------------------------- 06164000
HRC011DK: * 3380 READ/VERIFY CYLINDER 0 TRACK 0 CCWS 06165000
HRC011DK: *---------------------------------------------------------------------- 06166000
HRC011DK: SPACE , 06167000
HRC011DK: VRFY3380 CCW SEEK,SEEKA,CC+SILI,6 VERIFY CYL0 TRK 0 RECS 06168000
HRC011DK: SPACE , 06169000
HRC011DK: CCW SIEQ,RF43380,CC+SILI,5 SEARCH ID EQUAL 06170000
HRC011DK: CCW TIC,*-8,0,0 TIC BACK 06171000
HRC011DK: CCW READ,0,CC+SKIP,4096 READ DATA (1 PAGE) 06172000
HRC011DK: CCW SIEQ,RF53380,CC+SILI,5 SEARCH ID EQUAL 06173000
HRC011DK: CCW TIC,*-8,0,0 TIC BACK 06174000
HRC011DK: CCW READ,0,CC+SKIP,4096 READ DATA (1 PAGE) 06175000
HRC011DK: CCW SIEQ,RF63380,CC+SILI,5 SEARCH ID EQUAL 06176000
HRC011DK: CCW TIC,*-8,0,0 TIC BACK 06177000
HRC011DK: CCW READ,0,CC+SKIP,4096 READ DATA (1 PAGE) 06178000
HRC011DK: CCW SIEQ,RF73380,CC+SILI,5 SEARCH ID EQUAL 06179000
HRC011DK: CCW TIC,*-8,0,0 TIC BACK 06180000
HRC011DK: CCW READ,0,CC+SKIP+SILI,DL4096 READ DATA 06181000
HRC011DK: * DATA IS 4K IF 3380, 3K IF 3380-2, 4K IF 3380-3 06182000
HRC011DK: CCW SIEQ,RF83380,CC+SILI,5 SEARCH ID EQUAL 06183000
HRC011DK: CCW TIC,*-8,0,0 TIC BACK 06184000
HRC011DK: CCW READ,0,CC+SKIP,400 READ FILLER (RF83380) 06185000
HRC011DK: CCW SIEQ,RS73380,CC+SILI,5 SEARCH ID EQUAL 06186000
HRC011DK: CCW TIC,*-8,0,0 TIC BACK 06187000
HRC011DK: CCW READ,0,CC+SKIP,4096 READ DATA (1 PAGE) 06188000
HRC011DK: CCW SIEQ,RS83380,CC+SILI,5 SEARCH ID EQUAL 06189000
HRC011DK: CCW TIC,*-8,0,0 TIC BACK 06190000
HRC011DK: CCW READ,0,CC+SKIP,4096 READ DATA (1 PAGE) 06191000
HRC011DK: CCW SIEQ,RS93380,CC+SILI,5 SEARCH ID EQUAL 06192000
HRC011DK: CCW TIC,*-8,0,0 TIC BACK 06193000
HRC011DK: CCW READ,0,CC+SKIP,4096 READ DATA (1 PAGE) 06194000
HRC011DK: CCW SIEQ,RSA3380,CC+SILI,5 SEARCH ID EQUAL 06195000
HRC011DK: CCW TIC,*-8,0,0 TIC BACK 06196000
HRC011DK: CCW READ,0,SKIP,4096 READ DATA (1 PAGE) 06197000
HRC011DK: SPACE , 06198000
HRC011DK: L18112 EQU 18112 FOR USE AS A SYMBOLIC LENGTH 06199000
HRC011DK: D28 EQU 28 FOR USE AS SYMBOLIC DISPLACEMENT 06200000
HRC011DK: D55 EQU 55 FOR USE AS SYMBOLIC DISPLACEMENT 06201000
HRC011DK: D240 EQU 240 FOR USE AS SYMBOLIC DISPLACEMENT 06202000
HRC011DK: SPACE , 06203000
HRC011DK: DL24 EQU 24 FOR USE AS SYMBOLIC DATA LENGTH 06204000
HRC011DK: DL84 EQU 84 FOR USE AS SYMBOLIC DATA LENGTH 06205000
HRC011DK: DL140 EQU 140 FOR USE AS SYMBOLIC DATA LENGTH 06206000
HRC011DK: DL1024 EQU 1024 FOR USE AS SYMBOLIC DATA LENGTH 06207000
HRC011DK: DL2048 EQU 2048 DATA LENGTH 2048 06208000
HRC011DK: DL4096 EQU 4096 FOR USE AS SYMBOLIC DATA LENGTH 06209000
HRC011DK: *---------------------------------------------------------------------- 06210000
HRC011DK: * 3340-35/3340-70 FORMAT CCWS 06211000
HRC011DK: *---------------------------------------------------------------------- 06212000
HRC011DK: SPACE , 06213000
HRC011DK: DS 0D 06214000
HRC011DK: FMT3340 CCW 07,SEEKA,CC+SILI,6 SEEK 06215000
HRC011DK: CCW 31,FILEMASK,CC+SILI,1 SET FILE MASK 06216000
HRC011DK: CCW STSCTR,R0SEC,CC+SILI,1 SET SECTOR 06217000
HRC011DK: CCW 49,SEEKA+2,CC+SILI,5 SEARCH ID EQ RECORD 0 06218000
HRC011DK: CCW 08,*-8,0,0 TIC 06219000
HRC011DK: CCW 29,REC1,CC+SILI,8 WRITE 4096 PAGE 06220000
HRC011DK: CCW 29,REC2,CC+SILI,8 WRITE 4096 PAGE 06221000
HRC011DK: CCW 49,SEEKA+2,CC+SILI,5 SEARCH ID EQ RECORD 0 06222000
HRC011DK: CCW 08,*-8,0,0 TIC 06223000
HRC011DK: CCW 05,ZERO,CC+SILI,8 WRITE RECORD 0 06224000
HRC011DK: CCW 07,SEEKB,CC+SILI,6 SEEK 06225000
HRC011DK: CCW STSCTR,R0SEC,CC+SILI,1 SET SECTOR 06226000
HRC011DK: CCW 49,SEEKB+2,CC+SILI,5 SEARCH ID EQ RECORD 0 06227000
HRC011DK: CCW 08,*-8,0,0 TIC 06228000
HRC011DK: CCW 29,REC3,CC+SILI,8 WRITE 4096 PAGE 06229000
HRC011DK: CCW 29,REC4,CC+SILI,8 WRITE 4096 PAGE 06230000
HRC011DK: CCW 49,SEEKB+2,CC+SILI,5 SEARCH ID EQ RECORD 0 06231000
HRC011DK: CCW 08,*-8,0,0 TIC 06232000
HRC011DK: CCW 05,ZERO,CC+SILI,8 WRITE RECORD 0 06233000
HRC011DK: CCW 07,SEEKC,CC+SILI,6 SEEK 06234000
HRC011DK: CCW STSCTR,R0SEC,CC+SILI,1 SET SECTOR 06235000
HRC011DK: CCW 49,SEEKC+2,CC+SILI,5 SEARCH ID EQ RECORD 0 06236000
HRC011DK: CCW 08,*-8,0,0 TIC 06237000
HRC011DK: CCW 29,REC5,CC+SILI,8 WRITE 4096 PAGE 06238000
HRC011DK: CCW 29,REC6,CC+SILI,8 WRITE 4096 PAGE 06239000
HRC011DK: CCW 49,SEEKC+2,CC+SILI,5 SEARCH ID EQ RECORD 0 06240000
HRC011DK: CCW 08,*-8,0,0 TIC 06241000
HRC011DK: CCW 05,ZERO,CC+SILI,8 WRITE RECORD 0 06242000
HRC011DK: CCW 07,SEEKD,CC+SILI,6 SEEK 06243000
HRC011DK: CCW STSCTR,R0SEC,CC+SILI,1 SET SECTOR 06244000
HRC011DK: CCW 49,SEEKD+2,CC+SILI,5 SEARCH ID EQ RECORD 0 06245000
HRC011DK: CCW 08,*-8,0,0 TIC 06246000
HRC011DK: CCW 29,REC7,CC+SILI,8 WRITE 4096 PAGE 06247000
HRC011DK: CCW 29,REC8,CC+SILI,8 WRITE 4096 PAGE 06248000
HRC011DK: CCW 49,SEEKD+2,CC+SILI,5 SEARCH ID EQ RECORD 0 06249000
HRC011DK: CCW 08,*-8,0,0 TIC 06250000
HRC011DK: CCW 05,ZERO,CC+SILI,8 WRITE RECORD 0 06251000
HRC011DK: CCW 07,SEEKE,CC+SILI,6 SEEK 06252000
HRC011DK: CCW STSCTR,R0SEC,CC+SILI,1 SET SECTOR 06253000
HRC011DK: CCW 49,SEEKE+2,CC+SILI,5 SEARCH ID EQ RECORD 0 06254000
HRC011DK: CCW 08,*-8,0,0 TIC 06255000
HRC011DK: CCW 29,REC9,CC+SILI,8 WRITE 4096 PAGE 06256000
HRC011DK: CCW 29,REC10,CC+SILI,8 WRITE 4096 PAGE 06257000
HRC011DK: CCW 49,SEEKE+2,CC+SILI,5 SEARCH ID EQ RECORD 0 06258000
HRC011DK: CCW 08,*-8,0,0 TIC 06259000
HRC011DK: CCW 05,ZERO,CC+SILI,8 WRITE RECORD 0 06260000
HRC011DK: CCW 07,SEEKF,CC+SILI,6 SEEK 06261000
HRC011DK: CCW STSCTR,R0SEC,CC+SILI,1 SET SECTOR 06262000
HRC011DK: CCW 49,SEEKF+2,CC+SILI,5 SEARCH ID EQ RECORD 0 06263000
HRC011DK: CCW 08,*-8,0,0 TIC 06264000
HRC011DK: CCW 29,REC11,CC+SILI,8 WRITE 4096 PAGE 06265000
HRC011DK: CCW 29,REC12,CC+SILI,8 WRITE 4096 PAGE 06266000
HRC011DK: CCW 49,SEEKF+2,CC+SILI,5 SEARCH ID EQ RECORD 0 06267000
HRC011DK: CCW 08,*-8,0,0 TIC 06268000
HRC011DK: EWT3340 EQU * LAST WRITE CCW IN PROG. 06269000
HRC011DK: CCW 05,ZERO,CC+SILI,8 WRITE RECORD 0 06270000
HRC011DK: *---------------------------------------------------------------------- 06271000
HRC011DK: * 3340-35/3340-70 READ/VERIFY CCWS 06272000
HRC011DK: *---------------------------------------------------------------------- 06273000
HRC011DK: SPACE , 06274000
HRC011DK: CCW 07,SEEKA,CC+SILI,6 SEEK 06275000
HRC011DK: CCW STSCTR,R0SEC,CC+SILI,1 SET SECTOR 06276000
HRC011DK: CCW 49,REC1,CC+SILI,5 SEARCH ID EQ 06277000
HRC011DK: CCW 08,*-8,0,0 TIC 06278000
HRC011DK: CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) 06279000
HRC011DK: CCW 49,REC2,CC+SILI,5 SEARCH ID EQ 06280000
HRC011DK: CCW 08,*-8,0,0 TIC 06281000
HRC011DK: CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) 06282000
HRC011DK: CCW 07,SEEKB,CC+SILI,6 SEEK 06283000
HRC011DK: CCW STSCTR,R0SEC,CC+SILI,1 SET SECTOR 06284000
HRC011DK: CCW 49,REC3,CC+SILI,5 SEARCH ID EQ 06285000
HRC011DK: CCW 08,*-8,0,0 TIC 06286000
HRC011DK: CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) 06287000
HRC011DK: CCW 49,REC4,CC+SILI,5 SEARCH ID EQ 06288000
HRC011DK: CCW 08,*-8,0,0 TIC 06289000
HRC011DK: CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) 06290000
HRC011DK: CCW 07,SEEKC,CC+SILI,6 SEEK 06291000
HRC011DK: CCW STSCTR,R0SEC,CC+SILI,1 SET SECTOR 06292000
HRC011DK: CCW 49,REC5,CC+SILI,5 SEARCH ID EQ 06293000
HRC011DK: CCW 08,*-8,0,0 TIC 06294000
HRC011DK: CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) 06295000
HRC011DK: CCW 49,REC6,CC+SILI,5 SEARCH ID EQ 06296000
HRC011DK: CCW 08,*-8,0,0 TIC BACK 06297000
HRC011DK: CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) 06298000
HRC011DK: CCW 07,SEEKD,CC+SILI,6 SEEK 06299000
HRC011DK: CCW STSCTR,R0SEC,CC+SILI,1 SET SECTOR 06300000
HRC011DK: CCW 49,REC7,CC+SILI,5 SEARCH ID EQUAL 06301000
HRC011DK: CCW 08,*-8,0,0 TIC 06302000
HRC011DK: CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) 06303000
HRC011DK: CCW 49,REC8,CC+SILI,5 SEARCH ID EQ 06304000
HRC011DK: CCW 08,*-8,0,0 TIC 06305000
HRC011DK: CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) 06306000
HRC011DK: CCW 07,SEEKE,CC+SILI,6 SEEK 06307000
HRC011DK: CCW STSCTR,R0SEC,CC+SILI,1 SET SECTOR 06308000
HRC011DK: CCW 49,REC9,CC+SILI,5 SEARCH ID EQ 06309000
HRC011DK: CCW 08,*-8,0,0 TIC 06310000
HRC011DK: CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) 06311000
HRC011DK: CCW 49,REC10,CC+SILI,5 SEARCH ID EQ 06312000
HRC011DK: CCW 08,*-8,0,0 TIC 06313000
HRC011DK: CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) 06314000
HRC011DK: CCW 07,SEEKF,CC+SILI,6 SEEK 06315000
HRC011DK: CCW STSCTR,R0SEC,CC+SILI,1 SET SECTOR 06316000
HRC011DK: CCW 49,REC11,CC+SILI,5 SEARCH ID EQ 06317000
HRC011DK: CCW 08,*-8,0,0 TIC 06318000
HRC011DK: CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) 06319000
HRC011DK: CCW 49,REC12,CC+SILI,5 SEARCH ID EQ 06320000
HRC011DK: CCW 08,*-8,0,0 TIC 06321000
HRC011DK: CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) 06322000
HRC011DK: CCW 08,BITMAP,0,0 TIC TO WRITE R0 BIT MAP 06323000
HRC011DK: *---------------------------------------------------------------------- 06324000
HRC011DK: * 3350 FORMAT CCWS 06325000
HRC011DK: *---------------------------------------------------------------------- 06326000
HRC011DK: SPACE , 06327000
HRC011DK: DS 0D 06328000
HRC011DK: FMT3350 CCW 07,SEEKA,CC+SILI,6 SEEK 06329000
HRC011DK: CCW 31,FILEMASK,CC+SILI,1 SET FILE MASK 06330000
HRC011DK: CCW STSCTR,R0SEC,CC+SILI,1 SET SECTOR 06331000
HRC011DK: CCW 49,SEEKA+2,CC+SILI,5 SEARCH ID EQ RECORD 0 06332000
HRC011DK: CCW 08,*-8,0,0 TIC 06333000
HRC011DK: CCW 29,REC1,CC+SILI,8 WRITE 4096 PAGE 06334000
HRC011DK: CCW 29,RECX1,CC+SILI,8 WRITE FILLER 06335000
HRC011DK: CCW 29,REC2,CC+SILI,8 WRITE 4096 PAGE 06336000
HRC011DK: CCW 29,RECX2,CC+SILI,8 WRITE FILLER 06337000
HRC011DK: CCW 29,REC3,CC+SILI,8 WRITE 4096 PAGE 06338000
HRC011DK: CCW 29,RECX3,CC+SILI,8 WRITE FILLER 06339000
HRC011DK: CCW 29,REC4,CC+SILI,8 WRITE 4096 PAGE 06340000
HRC011DK: CCW 49,SEEKA+2,CC+SILI,5 SEARCH ID EQ RECORD 0 06341000
HRC011DK: CCW 08,*-8,0,0 TIC 06342000
HRC011DK: CCW 05,ZERO,CC+SILI,8 WRITE RECORD 0 06343000
HRC011DK: CCW 07,SEEKB,CC+SILI,6 SEEK 06344000
HRC011DK: CCW STSCTR,R0SEC,CC+SILI,1 SET SECTOR 06345000
HRC011DK: CCW 49,SEEKB+2,CC+SILI,5 SEARCH ID EQ RECORD 0 06346000
HRC011DK: CCW 08,*-8,0,0 TIC 06347000
HRC011DK: CCW 29,REC5,CC+SILI,8 WRITE 4096 PAGE 06348000
HRC011DK: CCW 29,RECX5,CC+SILI,8 WRITE FILLER 06349000
HRC011DK: CCW 29,REC6,CC+SILI,8 WRITE 4096 PAGE 06350000
HRC011DK: CCW 29,RECX6,CC+SILI,8 WRITE FILLER 06351000
HRC011DK: CCW 29,REC7,CC+SILI,8 WRITE 4096 PAGE 06352000
HRC011DK: CCW 29,RECX7,CC+SILI,8 WRITE FILLER 06353000
HRC011DK: CCW 29,REC8,CC+SILI,8 WRITE 4096 PAGE 06354000
HRC011DK: CCW 49,SEEKB+2,CC+SILI,5 SEARCH ID EQ RECORD 0 06355000
HRC011DK: CCW 08,*-8,0,0 TIC BACK 06356000
HRC011DK: CCW 05,ZERO,CC+SILI,8 WRITE RECORD 0 06357000
HRC011DK: CCW 07,SEEKC,CC+SILI,6 SEEK 06358000
HRC011DK: CCW STSCTR,R0SEC,CC+SILI,1 SET SECTOR 06359000
HRC011DK: CCW 49,SEEKC+2,CC+SILI,5 SEARCH ID EQ RECORD 0 06360000
HRC011DK: CCW 08,*-8,0,0 TIC 06361000
HRC011DK: CCW 29,REC9,CC+SILI,8 WRITE 4096 PAGE 06362000
HRC011DK: CCW 29,RECX9,CC+SILI,8 WRITE FILLER 06363000
HRC011DK: CCW 29,REC10,CC+SILI,8 WRITE 4096 PAGE 06364000
HRC011DK: CCW 29,RECX10,CC+SILI,8 WRITE FILLER 06365000
HRC011DK: CCW 29,REC11,CC+SILI,8 WRITE 4096 PAGE 06366000
HRC011DK: CCW 29,RECX11,CC+SILI,8 WRITE FILLER 06367000
HRC011DK: CCW 29,REC12,CC+SILI,8 WRITE 4096 PAGE 06368000
HRC011DK: CCW 49,SEEKC+2,CC+SILI,5 SEARCH ID EQ RECORD 0 06369000
HRC011DK: CCW 08,*-8,0,0 TIC BACK 06370000
HRC011DK: EWT3350 EQU * LAST WRITE CCW IN PROG. 06371000
HRC011DK: CCW 05,ZERO,CC+SILI,8 WRITE RECORD 0 06372000
HRC011DK: SPACE , 06373000
HRC011DK: *---------------------------------------------------------------------- 06374000
HRC011DK: * 3350 READ/VERIFY CCWS 06375000
HRC011DK: *---------------------------------------------------------------------- 06376000
HRC011DK: SPACE , 06377000
HRC011DK: CCW 07,SEEKA,CC+SILI,6 SEEK 06378000
HRC011DK: CCW STSCTR,R0SEC,CC+SILI,1 SET SECTOR 06379000
HRC011DK: CCW 49,REC1,CC+SILI,5 SEARCH ID EQUAL 06380000
HRC011DK: CCW 08,*-8,0,0 TIC BACK 06381000
HRC011DK: CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) 06382000
HRC011DK: CCW 49,REC2,CC+SILI,5 SEARCH ID EQUAL 06383000
HRC011DK: CCW 08,*-8,0,0 TIC BACK 06384000
HRC011DK: CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) 06385000
HRC011DK: CCW 49,REC3,CC+SILI,5 SEARCH ID EQUAL 06386000
HRC011DK: CCW 08,*-8,0,0 TIC BACK 06387000
HRC011DK: CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) 06388000
HRC011DK: CCW 49,REC4,CC+SILI,5 SEARCH ID EQ 06389000
HRC011DK: CCW 08,*-8,0,0 TIC BACK 06390000
HRC011DK: CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) 06391000
HRC011DK: CCW 07,SEEKB,CC+SILI,6 SEEK 06392000
HRC011DK: CCW STSCTR,R0SEC,CC+SILI,1 SET SECTOR 06393000
HRC011DK: CCW 49,REC5,CC+SILI,5 SEARCH ID EQUAL 06394000
HRC011DK: CCW 08,*-8,0,0 TIC BACK 06395000
HRC011DK: CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) 06396000
HRC011DK: CCW 49,REC6,CC+SILI,5 SEARCH ID EQUAL 06397000
HRC011DK: CCW 08,*-8,0,0 TIC BACK 06398000
HRC011DK: CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) 06399000
HRC011DK: CCW 49,REC7,CC+SILI,5 SEARCH ID EQUAL 06400000
HRC011DK: CCW 08,*-8,0,0 TIC BACK 06401000
HRC011DK: CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) 06402000
HRC011DK: CCW 49,REC8,CC+SILI,5 SEARCH ID EQUAL 06403000
HRC011DK: CCW 08,*-8,0,0 TIC BACK 06404000
HRC011DK: CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) 06405000
HRC011DK: CCW 07,SEEKC,CC+SILI,6 SEEK 06406000
HRC011DK: CCW STSCTR,R0SEC,CC+SILI,1 SET SECTOR 06407000
HRC011DK: CCW 49,REC9,CC+SILI,5 SEARCH ID EQUAL 06408000
HRC011DK: CCW 08,*-8,0,0 TIC BACK 06409000
HRC011DK: CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) 06410000
HRC011DK: CCW 49,REC10,CC+SILI,5 SEARCH ID EQUAL 06411000
HRC011DK: CCW 08,*-8,0,0 TIC BACK 06412000
HRC011DK: CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) 06413000
HRC011DK: CCW 49,REC11,CC+SILI,5 SEARCH ID EQUAL 06414000
HRC011DK: CCW 08,*-8,0,0 TIC BACK 06415000
HRC011DK: CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) 06416000
HRC011DK: CCW 49,REC12,CC+SILI,5 SEARCH ID EQUAL 06417000
HRC011DK: CCW 08,*-8,0,0 TIC BACK 06418000
HRC011DK: CCW 06,0,CC+SKIP,4096 READ DATA (1 PAGE) 06419000
HRC011DK: CCW 08,BITMAP,0,0 TIC TO WRITE R0 BIT MAP 06420000
HRC011DK: *---------------------------------------------------------------------- 06421000
HRC011DK: * E4 SENSE CCW 06422000
HRC011DK: *---------------------------------------------------------------------- 06423000
HRC011DK: SPACE , 06424000
HRC011DK: CCWSNSE4 CCW E4,SENSE,SILI,L7 E4 SENSE 06425000
HRC011DK: SPACE , 06426000
HRC011DK: *---------------------------------------------------------------------- 06427000
HRC011DK: * 3380 CKD FORMAT CCWS 06428000
HRC011DK: *---------------------------------------------------------------------- 06429000
HRC011DK: SPACE , 06430000
HRC011DK: DS 0D 06431000
HRC011DK: FMT3380 CCW SEEK,SEEKA,CC+SILI,6 SEEK 06432000
HRC011DK: CCW SFM,FILEMASK,CC+SILI,1 SET FILE MASK 06433000
HRC011DK: CCW STSCTR,R0SEC,CC+SILI,1 SET SECTOR 06434000
HRC011DK: CCW SIEQ,SEEKA+2,CC+SILI,5 SEARCH ID EQ RECORD 0 06435000
HRC011DK: CCW TIC,*-8,0,0 TIC 06436000
HRC011DK: SPACE , 06437000
HRC011DK: * TRACK N FORMAT WRITE CCWS 06438000
HRC011DK: SPACE , 06439000
HRC011DK: CCW WCKD,REC1,CC+SILI,8 WRITE 4096 PAGE 06440000
HRC011DK: CCW WCKD,REC2,CC+SILI,8 WRITE 4096 PAGE 06441000
HRC011DK: CCW WCKD,REC3,CC+SILI,8 WRITE 4096 PAGE 06442000
HRC011DK: CCW WCKD,RECXX3,CC+SILI,8 WRITE A FILLER RECORD 06443000
HRC011DK: CCW WCKD,REC4,CC+SILI,8 WRITE 4096 PAGE 06444000
HRC011DK: CCW WCKD,REC5,CC+SILI,8 WRITE 4096 PAGE 06445000
HRC011DK: CCW WCKD,REC6,CC+SILI,8 WRITE 4096 PAGE 06446000
HRC011DK: CCW WCKD,RECXX6,CC+SILI,8 WRITE A FILLER RECORD 06447000
HRC011DK: CCW WCKD,REC7,CC+SILI,8 WRITE 4096 PAGE 06448000
HRC011DK: CCW WCKD,REC8,CC+SILI,8 WRITE 4096 PAGE 06449000
HRC011DK: CCW WCKD,REC9,CC+SILI,8 WRITE 4096 PAGE 06450000
HRC011DK: CCW WCKD,REC10,CC+SILI,8 WRITE 4096 PAGE 06451000
HRC011DK: CCW SIEQ,SEEKA+2,CC+SILI,5 SEARCH ID EQ RECORD 0 06452000
HRC011DK: CCW TIC,*-8,0,0 TIC BACK 06453000
HRC011DK: CCW WRTD,ZERO,CC+SILI,8 WRITE RECORD 0 06454000
HRC011DK: SPACE , 06455000
HRC011DK: * TRACK (N+1) 06456000
HRC011DK: SPACE , 06457000
HRC011DK: CCW SEEK,SEEKB,CC+SILI,6 SEEK 06458000
HRC011DK: CCW STSCTR,R0SEC,CC+SILI,1 SET SECTOR 06459000
HRC011DK: CCW SIEQ,SEEKB+2,CC+SILI,5 SEARCH ID EQ RECORD 0 06460000
HRC011DK: CCW TIC,*-8,0,0 TIC BACK 06461000
HRC011DK: SPACE , 06462000
HRC011DK: * TRACK (N+1) FORMAT WRITE CCWS 06463000
HRC011DK: SPACE , 06464000
HRC011DK: CCW WCKD,REC11,CC+SILI,8 WRITE 4096 PAGE 06465000
HRC011DK: CCW WCKD,REC12,CC+SILI,8 WRITE 4096 PAGE 06466000
HRC011DK: CCW WCKD,REC13,CC+SILI,8 WRITE 4096 PAGE 06467000
HRC011DK: CCW WCKD,RECXX13,CC+SILI,8 WRITE A FILLER RECORD 06468000
HRC011DK: CCW WCKD,REC14,CC+SILI,8 WRITE 4096 PAGE 06469000
HRC011DK: CCW WCKD,REC15,CC+SILI,8 WRITE 4096 PAGE 06470000
HRC011DK: CCW WCKD,REC16,CC+SILI,8 WRITE 4096 PAGE 06471000
HRC011DK: CCW WCKD,RECXX16,CC+SILI,8 WRITE A FILLER RECORD 06472000
HRC011DK: CCW WCKD,REC17,CC+SILI,8 WRITE 4096 PAGE 06473000
HRC011DK: CCW WCKD,REC18,CC+SILI,8 WRITE 4096 PAGE 06474000
HRC011DK: CCW WCKD,REC19,CC+SILI,8 WRITE 4096 PAGE 06475000
HRC011DK: CCW WCKD,REC20,CC+SILI,8 WRITE 4096 PAGE 06476000
HRC011DK: CCW SIEQ,SEEKB+2,CC+SILI,5 SEARCH ID EQ RECORD 0 06477000
HRC011DK: CCW TIC,*-8,0,0 TIC BACK 06478000
HRC011DK: CCW WRTD,ZERO,CC+SILI,8 WRITE RECORD 0 06479000
HRC011DK: SPACE , 06480000
HRC011DK: * TRACK (N+2) 06481000
HRC011DK: SPACE , 06482000
HRC011DK: CCW SEEK,SEEKC,CC+SILI,6 SEEK 06483000
HRC011DK: CCW STSCTR,R0SEC,CC+SILI,1 SET SECTOR 06484000
HRC011DK: CCW SIEQ,SEEKC+2,CC+SILI,5 SEARCH ID EQ RECORD 0 06485000
HRC011DK: CCW TIC,*-8,0,0 TIC BACK 06486000
HRC011DK: SPACE , 06487000
HRC011DK: * TRACK (N+2) FORMAT WRITE CCWS 06488000
HRC011DK: SPACE , 06489000
HRC011DK: CCW WCKD,REC21,CC+SILI,8 WRITE 4096 PAGE 06490000
HRC011DK: CCW WCKD,REC22,CC+SILI,8 WRITE 4096 PAGE 06491000
HRC011DK: CCW WCKD,REC23,CC+SILI,8 WRITE 4096 PAGE 06492000
HRC011DK: CCW WCKD,RECXX23,CC+SILI,8 WRITE A FILLER RECORD 06493000
HRC011DK: CCW WCKD,REC24,CC+SILI,8 WRITE 4096 PAGE 06494000
HRC011DK: CCW WCKD,REC25,CC+SILI,8 WRITE 4096 PAGE 06495000
HRC011DK: CCW WCKD,REC26,CC+SILI,8 WRITE 4096 PAGE 06496000
HRC011DK: CCW WCKD,RECXX26,CC+SILI,8 WRITE A FILLER RECORD 06497000
HRC011DK: CCW WCKD,REC27,CC+SILI,8 WRITE 4096 PAGE 06498000
HRC011DK: CCW WCKD,REC28,CC+SILI,8 WRITE 4096 PAGE 06499000
HRC011DK: CCW WCKD,REC29,CC+SILI,8 WRITE 4096 PAGE 06500000
HRC011DK: CCW WCKD,REC30,CC+SILI,L8 WRITE 4096 PAGE 06501000
HRC011DK: CCW SIEQ,SEEKC+2,CC+SILI,5 SEARCH ID EQ RECORD 0 06502000
HRC011DK: CCW TIC,*-8,0,0 TIC BACK 06503000
HRC011DK: EWT3380 EQU * LAST WRITE CCW IN PROG. 06504000
HRC011DK: CCW WRTD,ZERO,CC+SILI,8 WRITE RECORD 0 06505000
HRC011DK: SPACE , 06506000
HRC011DK: *---------------------------------------------------------------------- 06507000
HRC011DK: * 3380 READ/VERIFY CCWS 06508000
HRC011DK: *---------------------------------------------------------------------- 06509000
HRC011DK: SPACE , 06510000
HRC011DK: * TRACK N 06511000
HRC011DK: SPACE , 06512000
HRC011DK: VWRT3380 CCW SEEK,SEEKA,CC+SILI,6 SEEK 06513000
HRC011DK: CCW STSCTR,R0SEC,CC+SILI,1 SET SECTOR 06514000
HRC011DK: CCW SIEQ,REC1,CC+SILI,5 SEARCH ID EQ 06515000
HRC011DK: CCW TIC,*-8,0,0 TIC BACK 06516000
HRC011DK: CCW READ,0,CC+SKIP,4096 READ DATA (1 PAGE) 06517000
HRC011DK: CCW SIEQ,REC2,CC+SILI,5 SEARCH ID EQ 06518000
HRC011DK: CCW TIC,*-8,0,0 TIC BACK 06519000
HRC011DK: CCW READ,0,CC+SKIP,4096 READ DATA (1 PAGE) 06520000
HRC011DK: CCW SIEQ,REC3,CC+SILI,5 SEARCH ID EQ 06521000
HRC011DK: CCW TIC,*-8,0,0 TIC BACK 06522000
HRC011DK: CCW READ,0,CC+SKIP,4096 READ DATA (1 PAGE) 06523000
HRC011DK: CCW SIEQ,REC4,CC+SILI,5 SEARCH ID EQ 06524000
HRC011DK: CCW TIC,*-8,0,0 TIC BACK 06525000
HRC011DK: CCW READ,0,CC+SKIP,4096 READ DATA (1 PAGE) 06526000
HRC011DK: CCW SIEQ,REC5,CC+SILI,5 SEARCH ID EQ 06527000
HRC011DK: CCW TIC,*-8,0,0 TIC BACK 06528000
HRC011DK: CCW READ,0,CC+SKIP,4096 READ DATA (1 PAGE) 06529000
HRC011DK: CCW SIEQ,REC6,CC+SILI,5 SEARCH ID EQ 06530000
HRC011DK: CCW TIC,*-8,0,0 TIC BACK 06531000
HRC011DK: CCW READ,0,CC+SKIP,4096 READ DATA (1 PAGE) 06532000
HRC011DK: CCW SIEQ,REC7,CC+SILI,5 SEARCH ID EQ 06533000
HRC011DK: CCW TIC,*-8,0,0 TIC BACK 06534000
HRC011DK: CCW READ,0,CC+SKIP,4096 READ DATA (1 PAGE) 06535000
HRC011DK: CCW SIEQ,REC8,CC+SILI,5 SEARCH ID EQ 06536000
HRC011DK: CCW TIC,*-8,0,0 TIC BACK 06537000
HRC011DK: CCW READ,0,CC+SKIP,4096 READ DATA (1 PAGE) 06538000
HRC011DK: CCW SIEQ,REC9,CC+SILI,5 SEARCH ID EQ 06539000
HRC011DK: CCW TIC,*-8,0,0 TIC BACK 06540000
HRC011DK: CCW READ,0,CC+SKIP,4096 READ DATA (1 PAGE) 06541000
HRC011DK: CCW SIEQ,REC10,CC+SILI,5 SEARCH ID EQ 06542000
HRC011DK: CCW TIC,*-8,0,0 TIC BACK 06543000
HRC011DK: CCW READ,0,CC+SKIP,4096 READ DATA (1 PAGE) 06544000
HRC011DK: SPACE , 06545000
HRC011DK: * TRACK (N+1) 06546000
HRC011DK: SPACE , 06547000
HRC011DK: CCW SEEK,SEEKB,CC+SILI,6 SEEK 06548000
HRC011DK: CCW STSCTR,R0SEC,CC+SILI,1 SET SECTOR 06549000
HRC011DK: CCW SIEQ,REC11,CC+SILI,5 SEARCH ID EQ 06550000
HRC011DK: CCW TIC,*-8,0,0 TIC BACK 06551000
HRC011DK: CCW READ,0,CC+SKIP,4096 READ DATA (1 PAGE) 06552000
HRC011DK: CCW SIEQ,REC12,CC+SILI,5 SEARCH ID EQ 06553000
HRC011DK: CCW TIC,*-8,0,0 TIC BACK 06554000
HRC011DK: CCW READ,0,CC+SKIP,4096 READ DATA (1 PAGE) 06555000
HRC011DK: CCW SIEQ,REC13,CC+SILI,5 SEARCH ID EQ 06556000
HRC011DK: CCW TIC,*-8,0,0 TIC BACK 06557000
HRC011DK: CCW READ,0,CC+SKIP,4096 READ DATA (1 PAGE) 06558000
HRC011DK: CCW SIEQ,REC14,CC+SILI,5 SEARCH ID EQ 06559000
HRC011DK: CCW TIC,*-8,0,0 TIC BACK 06560000
HRC011DK: CCW READ,0,CC+SKIP,4096 READ DATA (1 PAGE) 06561000
HRC011DK: CCW SIEQ,REC15,CC+SILI,5 SEARCH ID EQ 06562000
HRC011DK: CCW TIC,*-8,0,0 TIC BACK 06563000
HRC011DK: CCW READ,0,CC+SKIP,4096 READ DATA (1 PAGE) 06564000
HRC011DK: CCW SIEQ,REC16,CC+SILI,5 SEARCH ID EQ 06565000
HRC011DK: CCW TIC,*-8,0,0 TIC BACK 06566000
HRC011DK: CCW READ,0,CC+SKIP,4096 READ DATA (1 PAGE) 06567000
HRC011DK: CCW SIEQ,REC17,CC+SILI,5 SEARCH ID EQ 06568000
HRC011DK: CCW TIC,*-8,0,0 TIC BACK 06569000
HRC011DK: CCW READ,0,CC+SKIP,4096 READ DATA (1 PAGE) 06570000
HRC011DK: CCW SIEQ,REC18,CC+SILI,5 SEARCH ID EQ 06571000
HRC011DK: CCW TIC,*-8,0,0 TIC BACK 06572000
HRC011DK: CCW READ,0,CC+SKIP,4096 READ DATA (1 PAGE) 06573000
HRC011DK: CCW SIEQ,REC19,CC+SILI,5 SEARCH ID EQ 06574000
HRC011DK: CCW TIC,*-8,0,0 TIC BACK 06575000
HRC011DK: CCW READ,0,CC+SKIP,4096 READ DATA (1 PAGE) 06576000
HRC011DK: CCW SIEQ,REC20,CC+SILI,5 SEARCH ID EQ 06577000
HRC011DK: CCW TIC,*-8,0,0 TIC BACK 06578000
HRC011DK: CCW READ,0,CC+SKIP,4096 READ DATA (1 PAGE) 06579000
HRC011DK: SPACE , 06580000
HRC011DK: * TRACK (N+2) 06581000
HRC011DK: SPACE , 06582000
HRC011DK: CCW SEEK,SEEKC,CC+SILI,6 SEEK 06583000
HRC011DK: CCW STSCTR,R0SEC,CC+SILI,1 SET SECTOR 06584000
HRC011DK: CCW SIEQ,REC21,CC+SILI,5 SEARCH ID EQ 06585000
HRC011DK: CCW TIC,*-8,0,0 TIC BACK 06586000
HRC011DK: CCW READ,0,CC+SKIP,4096 READ DATA (1 PAGE) 06587000
HRC011DK: CCW SIEQ,REC22,CC+SILI,5 SEARCH ID EQ 06588000
HRC011DK: CCW TIC,*-8,0,0 TIC BACK 06589000
HRC011DK: CCW READ,0,CC+SKIP,4096 READ DATA (1 PAGE) 06590000
HRC011DK: CCW SIEQ,REC23,CC+SILI,5 SEARCH ID EQ 06591000
HRC011DK: CCW TIC,*-8,0,0 TIC BACK 06592000
HRC011DK: CCW READ,0,CC+SKIP,4096 READ DATA (1 PAGE) 06593000
HRC011DK: CCW SIEQ,REC24,CC+SILI,5 SEARCH ID EQ 06594000
HRC011DK: CCW TIC,*-8,0,0 TIC BACK 06595000
HRC011DK: CCW READ,0,CC+SKIP,4096 READ DATA (1 PAGE) 06596000
HRC011DK: CCW SIEQ,REC25,CC+SILI,5 SEARCH ID EQ 06597000
HRC011DK: CCW TIC,*-8,0,0 TIC BACK 06598000
HRC011DK: CCW READ,0,CC+SKIP,4096 READ DATA (1 PAGE) 06599000
HRC011DK: CCW SIEQ,REC26,CC+SILI,5 SEARCH ID EQ 06600000
HRC011DK: CCW TIC,*-8,0,0 TIC BACK 06601000
HRC011DK: CCW READ,0,CC+SKIP,4096 READ DATA (1 PAGE) 06602000
HRC011DK: CCW SIEQ,REC27,CC+SILI,5 SEARCH ID EQ 06603000
HRC011DK: CCW TIC,*-8,0,0 TIC BACK 06604000
HRC011DK: CCW READ,0,CC+SKIP,4096 READ DATA (1 PAGE) 06605000
HRC011DK: CCW SIEQ,REC28,CC+SILI,5 SEARCH ID EQ 06606000
HRC011DK: CCW TIC,*-8,0,0 TIC BACK 06607000
HRC011DK: CCW READ,0,CC+SKIP,4096 READ DATA (1 PAGE) 06608000
HRC011DK: CCW SIEQ,REC29,CC+SILI,5 SEARCH ID EQ 06609000
HRC011DK: CCW TIC,*-8,0,0 TIC BACK 06610000
HRC011DK: CCW READ,0,CC+SKIP,4096 READ DATA (1 PAGE) 06611000
HRC011DK: CCW SIEQ,REC30,CC+SILI,L5 SEARCH ID EQ 06612000
HRC011DK: CCW TIC,*-8,0,0 TIC BACK 06613000
HRC011DK: CCW READ,0,CC+SKIP,4096 READ DATA (1 PAGE) 06614000
HRC011DK: SPACE , 06615000
HRC011DK: CCW TIC,BITMAP,0,0 GO WRITE BIT MAP 06616000
HRC011DK: *---------------------------------------------------------------------- 06617000
HRC011DK: * 2314/2319 FORMAT CCWS 06618000
HRC011DK: *---------------------------------------------------------------------- 06619000
HRC011DK: SPACE , 06620000
HRC011DK: FMT2314 CCW 7,SEEKA,CC+SILI,6 SEEK 06621000
HRC011DK: CCW 31,FILEMASK,CC+SILI,1 SET FILE MASK 06622000
HRC011DK: CCW 25,SEEKA+1,CC+SILI,5 WRITE HOME ADDRESS 06623000
HRC011DK: CCW 21,SEEKA+2,CC+SILI,16 WRITE RECORD 0 06624000
HRC011DK: CCW 29,R1STUF,CC+SILI,8 WRITE CKD RECORD 06625000
HRC011DK: CCW 01,R2STUF,CC+SILI,8 WRITE SPECIAL CKD 06626000
HRC011DK: CCW 07,SEEKB,CC+SILI,6 SEEK 06627000
HRC011DK: CCW 25,SEEKB+1,CC+SILI,5 WRITE HOME ADDRESS 06628000
HRC011DK: CCW 21,SEEKB+2,CC+SILI,16 WRITE RECORD 0 06629000
HRC011DK: CCW 29,R2ASTUF,CC+SILI,8 WRITE CKD RECORD 06630000
HRC011DK: CCW 29,R3STUF,CC+SILI,8 WRITE CKD RECORD 06631000
HRC011DK: CCW 01,R4STUF,CC+SILI,8 WRITE SPECIAL CKD 06632000
HRC011DK: CCW 07,SEEKC,CC+SILI,6 SEEK 06633000
HRC011DK: CCW 25,SEEKC+1,CC+SILI,5 WRITE HOME ADDRESS 06634000
HRC011DK: CCW 21,SEEKC+2,CC+SILI,16 WRITE RECORD 0 06635000
HRC011DK: CCW 29,R4ASTUF,CC+SILI,8 WRITE CKD RECORD 06636000
HRC011DK: CCW 01,R5STUF,CC+SILI,8 WRITE SPECIAL CKD 06637000
HRC011DK: CCW 07,SEEKD,CC+SILI,6 SEEK 06638000
HRC011DK: CCW 25,SEEKD+1,CC+SILI,5 WRITE HOME ADDRESS 06639000
HRC011DK: CCW 21,SEEKD+2,CC+SILI,16 WRITE RECORD 0 06640000
HRC011DK: CCW 29,R5ASTUF,CC+SILI,8 WRITE CKD RECORD 06641000
HRC011DK: CCW 29,R6STUF,CC+SILI,8 WRITE CKD RECORD 06642000
HRC011DK: CCW 01,R7STUF,CC+SILI,8 WRITE SPECIAL CKD 06643000
HRC011DK: CCW 07,SEEKE,CC+SILI,6 SEEK 06644000
HRC011DK: CCW 25,SEEKE+1,CC+SILI,5 WRITE HOME ADDRESS 06645000
HRC011DK: CCW 21,SEEKE+2,CC+SILI,16 WRITE RECORD 0 06646000
HRC011DK: CCW 29,R7ASTUF,CC+SILI,8 WRITE CKD RECORD 06647000
HRC011DK: CCW 29,R8STUF,CC+SILI,8 WRITE CKD RECORD 06648000
HRC011DK: SPACE , 06649000
HRC011DK: *---------------------------------------------------------------------- 06650000
HRC011DK: * 2314/2319 READ/VERIFY CCWS 06651000
HRC011DK: *---------------------------------------------------------------------- 06652000
HRC011DK: SPACE , 06653000
HRC011DK: CCW 07,SEEKA,CC+SILI,6 SEEK 06654000
HRC011DK: CCW 49,R1STUF,CC+SILI,5 SEARCH ID EQ 06655000
HRC011DK: CCW 08,*-8,0,0 TIC 06656000
HRC011DK: CCW 06,0,CC+SKIP,4096 READ DATA 06657000
HRC011DK: CCW 49,R2STUF,CC+SILI,5 SEARCH ID EQ 06658000
HRC011DK: CCW 08,*-8,0,0 TIC 06659000
HRC011DK: CCW 06,0,CC+SKIP,4096 READ DATA 06660000
HRC011DK: CCW 07,SEEKB,CC,6 SEEK 06661000
HRC011DK: CCW 49,R3STUF,CC,5 SEARCH ID EQ 06662000
HRC011DK: CCW 08,*-8,0,0 TIC 06663000
HRC011DK: CCW 06,0,CC+SKIP,4096 READ DATA 06664000
HRC011DK: CCW 49,R4STUF,CC,5 SEARCH ID EQ 06665000
HRC011DK: CCW 08,*-8,0,0 TIC 06666000
HRC011DK: CCW 06,0,CC+SKIP,4096 READ DATA 06667000
HRC011DK: CCW 07,SEEKC,CC,6 SEEK 06668000
HRC011DK: CCW 49,R5STUF,CC,5 SEARCH ID EQ 06669000
HRC011DK: CCW 08,*-8,0,0 TIC 06670000
HRC011DK: CCW 06,0,CC+SKIP,4096 READ DATA 06671000
HRC011DK: CCW 07,SEEKD,CC,6 SEEK 06672000
HRC011DK: CCW 49,R6STUF,CC,5 SEARCH ID EQ 06673000
HRC011DK: CCW 08,*-8,0,0 TIC 06674000
HRC011DK: CCW 06,0,CC+SKIP,4096 READ DATA 06675000
HRC011DK: CCW 49,R7STUF,CC,5 SEARCH ID EQ 06676000
HRC011DK: CCW 08,*-8,0,0 TIC 06677000
HRC011DK: CCW 06,0,CC+SKIP,4096 READ DATA 06678000
HRC011DK: CCW 07,SEEKE,CC,6 SEEK 06679000
HRC011DK: CCW 49,R8STUF,CC,5 SEARCH ID EQ 06680000
HRC011DK: CCW 08,*-8,0,0 TIC 06681000
HRC011DK: CCW 06,01,CC+SKIP,4096 READ DATA 06682000
HRC011DK: SPACE , 06683000
HRC011DK: *---------------------------------------------------------------------- 06684000
HRC011DK: * WRITE REC 0 BIT MAP FOR 2314,3330,3340,3350,3380 OR 2305 06685000
HRC011DK: *---------------------------------------------------------------------- 06686000
HRC011DK: SPACE , 06687000
HRC011DK: BITMAP CCW 07,SEEK0,CC,6 SEEK 06688000
HRC011DK: CCW 49,SEEK0+2,CC,5 SEARCH ID EQ 06689000
HRC011DK: CCW 08,*-8,0,0 TIC 06690000
HRC011DK: CCW 05,R0STUF,CC+SILI,8 REWRITE BIT MAP 06691000
HRC011DK: CCW 22,0,SKIP,16 READ RECORD 0 06692000
HRC011DK: *--------------------------------------------------------------------- 06693000
HRC011DK: * DEVICE TYPE/FORMAT PROCEDURE DATA TABLE 06694000
HRC011DK: * 06695000
HRC011DK: * THIS TABLE HAS THE FORMAT OF THE DFODATA DSECT. CHANGES MADE 06696000
HRC011DK: * HERE MUST ALSO BE MADE IN THE DSECT. EXPAND THE TABLE ONLY 06697000
HRC011DK: * BY FULL WORDS. 06698000
HRC011DK: * 06699000
HRC011DK: * TYPE DS X DEVICE TYPE 06700000
HRC011DK: * ENDFL DS X FLAGS FOR FEATURES OR PROCESS 06701000
HRC011DK: * X'01' LAST ENTRY IN TABLE (OR'ED) 06702000
HRC011DK: * NRECS DS H NUMBER OF CCW DATA TO BE UPDATED 06703000
HRC011DK: * 1REC DS A FIRST CCW TO BE UPDATED 06704000
HRC011DK: * CAW DS A CAW TO BE USED 06705000
HRC011DK: * CAWEW DS A LAST WRITE CCW IN WRITE PROGRAM 06706000
HRC011DK: * RPPAS DS H RECORDS PER PASS (PAGES) 06707000
HRC011DK: * TRPAS DS H TRACKS PER PASS 06708000
HRC011DK: * DS H FUTURE 06709000
HRC011DK: * RECTR DS X RECORDS/TRACK (NOT 2314) 06710000
HRC011DK: * DS X FOR FUTURE USE 06711000
HRC011DK: * 06712000
HRC011DK: *---------------------------------------------------------------------- 06713000
HRC011DK: SPACE , 06714000
HRC011DK: DFOTABLE DS 0F DEVICE FORMAT TABLE 06715000
HRC011DK: SPACE , 06716000
HRC011DK: DFO3380 DS 0F 3380 DEVICE DATA 06717000
HRC011DK: DC AL1(TYP3380) DEVICE TYPE 06718000
HRC011DK: DC AL1(DFOTBSTD) STANDARD NON-ECKD 06719000
HRC011DK: DC AL2(RNRC3380) NUMBER OF RECORDS TO UPDATE 06720000
HRC011DK: DC AL4(REC1) FIRST RECORD TO UPDATE 06721000
HRC011DK: DC AL4(FMT3380) CHANNEL PROGRAM ADDRESS 06722000
HRC011DK: DC AL4(EWT3380) LAST WRITE CCW IN WRITE PROGRAM 06723000
HRC011DK: DC AL2(RN3380) RECORDS PER PASS 06724000
HRC011DK: DC AL2(TRPP3380) TRACKS PER PASS 06725000
HRC011DK: DC AL2(0) 06726000
HRC011DK: DC AL1(RNTR3380) RECORDS PER TRACK 06727000
HRC011DK: DC AL1(0) 06728000
HRC011DK: DFO3380F DS 0F 3380 DEVICE DATA 06729000
HRC011DK: DC AL1(TYP3380) DEVICE TYPE 06730000
HRC011DK: DC AL1(DFOTBSPE) SPECIAL TO UPDATE FILLER RECORDS 06731000
HRC011DK: DC AL2(RNRECS1) NUMBER OF RECORDS TO UPDATE 06732000
HRC011DK: DC AL4(RECXX3) FIRST FILLER RECORD TO UPDATE 06733000
HRC011DK: DC AL4(FMT3380) CHANNEL PROGRAM ADDRESS 06734000
HRC011DK: DC AL4(EWT3380) LAST WRITE CCW IN WRITE PROGRAM 06735000
HRC011DK: DC AL2(RNRECS1) RECORDS PER PASS 06736000
HRC011DK: DC AL2(TRPP3380) TRACKS PER PASS 06737000
HRC011DK: DC AL2(0) 06738000
HRC011DK: DC AL1(RNTR3380) RECORDS PER TRACK 06739000
HRC011DK: DC AL1(0) 06740000
HRC011DK: SPACE , 06741000
HRC011DK: DFO3350 DS 0F 3350 06742000
HRC011DK: DC AL1(TYP3350) 06743000
HRC011DK: DC AL1(DFOTBSTD) STANDARD 06744000
HRC011DK: DC AL2(RNRC3350) 06745000
HRC011DK: DC AL4(REC1) 06746000
HRC011DK: DC AL4(FMT3350) 06747000
HRC011DK: DC AL4(EWT3350) LAST WRITE CCW IN WRITE PROGRAM 06748000
HRC011DK: DC AL2(RN3350) 06749000
HRC011DK: DC AL2(TRPP3350) 06750000
HRC011DK: DC AL2(0) 06751000
HRC011DK: DC AL1(0) 06752000
HRC011DK: DC AL1(0) 06753000
HRC011DK: SPACE , 06754000
HRC011DK: DFO3340 DS 0F 3340-35 AND 3340-70 06755000
HRC011DK: DC AL1(TYP334X) 06756000
HRC011DK: DC AL1(DFOTBSTD) STANDARD 06757000
HRC011DK: DC AL2(RNRC3340) 06758000
HRC011DK: DC AL4(REC1) 06759000
HRC011DK: DC AL4(FMT3340) 06760000
HRC011DK: DC AL4(EWT3340) LAST WRITE CCW IN WRITE PROGRAM 06761000
HRC011DK: DC AL2(RN3340) 06762000
HRC011DK: DC AL2(TRPP3340) 06763000
HRC011DK: DC AL2(0) 06764000
HRC011DK: DC AL1(0) 06765000
HRC011DK: DC AL1(0) 06766000
HRC011DK: SPACE , 06767000
HRC011DK: DFO3330 DS 0F 3330 MOD.1 AND MOD. 2 AND MOD. 11 06768000
HRC011DK: DC AL1(TYP3330) 06769000
HRC011DK: DC AL1(DFOTBSTD) STANDARD 06770000
HRC011DK: DC AL2(RNRC3330) 06771000
HRC011DK: DC AL4(REC1) 06772000
HRC011DK: DC AL4(FMT3330) 06773000
HRC011DK: DC AL4(EWT3330) LAST WRITE CCW IN WRITE PROGRAM 06774000
HRC011DK: DC AL2(RN3330) 06775000
HRC011DK: DC AL2(TRPP3330) 06776000
HRC011DK: DC AL2(0) 06777000
HRC011DK: DC AL1(0) 06778000
HRC011DK: DC AL1(0) 06779000
HRC011DK: SPACE , 06780000
HRC011DK: DFO2314 DS 0F 2314 AND 2319 06781000
HRC011DK: DC AL1(TYP2314) 06782000
HRC011DK: DC AL1(DFOTBSTD) STANDARD 06783000
HRC011DK: DC AL2(RNRC2314) 06784000
HRC011DK: DC AL4(R1STUF) 06785000
HRC011DK: DC AL4(FMT2314) 06786000
HRC011DK: DC AL4(0) LAST WRITE CCW IN WRITE PROGRAM 06787000
HRC011DK: DC AL2(RN2314) 06788000
HRC011DK: DC AL2(TRPP2314) 06789000
HRC011DK: DC AL2(0) 06790000
HRC011DK: DC AL1(0) 06791000
HRC011DK: DC AL1(0) 06792000
HRC011DK: SPACE , 06793000
HRC011DK: DFO23051 DS 0F 2305 MOD. 1 06794000
HRC011DK: DC AL1(TYP23051) 06795000
HRC011DK: DC AL1(DFOTBSTD) STANDARD 06796000
HRC011DK: DC AL2(RNRC2305) 06797000
HRC011DK: DC AL4(REC1) 06798000
HRC011DK: DC AL4(FMT2305) 06799000
HRC011DK: DC AL4(0) LAST WRITE CCW IN WRITE PROGRAM 06800000
HRC011DK: DC AL2(RN2305) 06801000
HRC011DK: DC AL2(TRPP2305) 06802000
HRC011DK: DC AL2(0) 06803000
HRC011DK: DC AL1(0) 06804000
HRC011DK: DC AL1(0) 06805000
HRC011DK: SPACE , 06806000
HRC011DK: DFO23052 DS 0F 2305 MOD. 2 06807000
HRC011DK: DC AL1(TYP23052) 06808000
HRC011DK: DC AL1(DFOTBSTD+DFOTBEND) STANDARD + LAST ENTRY 06809000
HRC011DK: DC AL2(RNRC2305) 06810000
HRC011DK: DC AL4(REC1) 06811000
HRC011DK: DC AL4(FMT2305) 06812000
HRC011DK: DC AL4(0) LAST WRITE CCW IN WRITE PROGRAM 06813000
HRC011DK: DC AL2(RN2305) 06814000
HRC011DK: DC AL2(TRPP2305) 06815000
HRC011DK: DC AL2(0) 06816000
HRC011DK: DC AL1(0) 06817000
HRC011DK: DC AL1(0) 06818000
HRC011DK: *---------------------------------------------------------------------- 06819000
HRC011DK: * THE FOLLOWING TWO TABLES ARE USED BY THE ROUTINE CHECKCKD 06820000
HRC011DK: * TO FIND THE DEVICE SPECIFIC PARAMETERS FOR THE DEVICE TYPE 06821000
HRC011DK: * THE USER HAS SPECIFIED. DEVTBL1 CONTAINS THE DEVICE DATA, 06822000
HRC011DK: * AND DEVTBL2 CONTAINS THE DEVICE NAME FOR COMPARISON TO HOW 06823000
HRC011DK: * THE USER SPECIFIED IT. 06824000
HRC011DK: * 06825000
HRC011DK: *** IMPORTANT: THE ENTRIES IN THESE TWO TABLES MUST BE *** 06826000
HRC011DK: *** KEPT IN THE SAME RELATIVE SEQUENCE!!! *** 06827000
HRC011DK: * 06828000
HRC011DK: * THE SPECIAL FEATURE INDEX IS USED TO DO ANY UNIQUE DEVICE 06829000
HRC011DK: * PROCESSING. CURRENT ASSIGNMENTS ARE: 06830000
HRC011DK: * DEVSFIX = 0 - NO SPECIAL HANDLING REQUIRED 06831000
HRC011DK: * DEVSFIX = 4 - 3380 06832000
HRC011DK: * DEVSFIX = 8 - 3330, 3330-11 06833000
HRC011DK: * DEVSFIX = 12- 3340-70MB 06834000
HRC011DK: * 06835000
HRC011DK: * THE WRITE VERIFICATION INDEX IS USED TO DEFINE WHETHER A CKD 06836000
HRC011DK: * DEVICE SUPPORTS THE WRITE VERIFICATION AS AN OPTION. CURRENT 06837000
HRC011DK: * ASSIGNMENTS ARE: 06838000
HRC011DK: * DEVWVDEF = 0 - OPTION IS UNAVAILABLE FOR THIS DEVICE, USER WILL 06839000
HRC011DK: * NOT RECEIVE THE PROMPT. 06840000
HRC011DK: * DEVWVDEF = 8 - OPTION IS AVAILABLE FOR THIS DEVICE, THEREFORE 06841000
HRC011DK: * PROMPT THE USER AND DETERMINE WHETHER WRITE 06842000
HRC011DK: * VERIFICATION IS REQUIRED. 06843000
HRC011DK: *---------------------------------------------------------------------- 06844000
HRC011DK: SPACE , 06845000
HRC011DK: DEVGO EQU 0 06846000
HRC011DK: DEVHIVAL EQU DEVGO+8 06847000
HRC011DK: DEVRECVL EQU DEVHIVAL+2 06848000
HRC011DK: DEVICETP EQU DEVRECVL+1 06849000
HRC011DK: DEVARGLN EQU DEVICETP+1 06850000
HRC011DK: DEVSFIX EQU DEVARGLN+1 06851000
HRC011DK: DEVWVDEF EQU DEVSFIX+1 DEVICE DEFAULTS FOR WRITE 06852000
HRC011DK: * VERIFICATION OPTION USAGE. 06853000
HRC011DK: SPACE , 06854000
HRC011DK: *------------------------------------------------------------- 06855000
HRC011DK: * DEVSFIX EQUATES 06856000
HRC011DK: *------------------------------------------------------------- 06857000
HRC011DK: SPACE , 06858000
HRC011DK: DVIXNONE EQU 0 NO SPECIAL HANDLING REQUIRED 06859000
HRC011DK: DVIX3380 EQU 4 3380 06860000
HRC011DK: DVIX3330 EQU 8 3330, 3330-11 06861000
HRC011DK: DVIX3340 EQU 12 3340-70MB 06862000
HRC011DK: SPACE , 06863000
HRC011DK: *---------------------------------------------------------------------- 06864000
HRC011DK: * DEVWVDEF EQUATES 06865000
HRC011DK: *---------------------------------------------------------------------- 06866000
HRC011DK: SPACE , 06867000
HRC011DK: DVWVPMT EQU WVPMT PROMPT USER FOR WRITE VERIFICATION 06868000
HRC011DK: DVWVSKIP EQU WVNOTOPT WRITE VERIFICATION IS NOT OPTIONAL 06869000
HRC011DK: * FOR THIS DEV AND WILL ALWAYS BE PERFORMED 06870000
HRC011DK: DVWVREQ EQU WVREQ USER HAS SELECTED WRT VERIFICATION 06871000
HRC011DK: SPACE , 06872000
HRC011DK: DEVTBEND EQU X'FF' END OF TABLE INDICATOR 06873000
HRC011DK: SPACE , 06874000
HRC011DK: *---------------------------------------------------------------------- 06875000
HRC011DK: * DEVTBL1 06876000
HRC011DK: *---------------------------------------------------------------------- 06877000
HRC011DK: SPACE , 06878000
HRC011DK: DEVTBL1 DS 0D 06879000
HRC011DK: SPACE , 06880000
HRC011DK: * 3380 ENTRY 06881000
HRC011DK: CCW TIC,VRFY3380,0,0 MODIFYING CCW FOR 3380 VERIFY 06882000
HRC011DK: DC H'884' HIGHEST CYLINDER ON 3380 06883000
HRC011DK: DC AL1(MREC3380) # RECORDS/CYLINDER 06884000
HRC011DK: DC AL1(TYP3380) DEVICE TYPE 06885000
HRC011DK: DC AL1(L'NM3380-1) LNGTH OF NAME FOR COMPARISON 06886000
HRC011DK: DC AL1(DVIX3380) SPECIAL FEATURE INDEX 06887000
HRC011DK: DC AL1(DVWVPMT) PROMPT FOR WRITE VERIFICATION 06888000
HRC011DK: SPACE , 06889000
HRC011DK: DS 0D 06890000
HRC011DK: DEVTBESZ EQU *-DEVTBL1 06891000
HRC011DK: SPACE , 06892000
HRC011DK: * 3350 ENTRY 06893000
HRC011DK: DS 0D 06894000
HRC011DK: CCW 08,GO2314,0,0 USED TO ALTER OTHER TICS 06895000
HRC011DK: DC H'554' HIGHEST CYLINDER ON 3350 06896000
HRC011DK: DC X'78' # RECORDS/CYLINDER 06897000
HRC011DK: DC AL1(TYP3350) DEVICE TYPE 06898000
HRC011DK: DC AL1(L'NM3350-1) LNGTH OF NAME FOR COMPARISON 06899000
HRC011DK: DC AL1(DVIXNONE) SPECIAL FEATURE INDEX 06900000
HRC011DK: DC AL1(DVWVPMT) PROMPT FOR WRITE VERIFICATION 06901000
HRC011DK: SPACE , 06902000
HRC011DK: * 3330 ENTRY 06903000
HRC011DK: DS 0D 06904000
HRC011DK: CCW 08,GO3330,0,0 USED TO ALTER OTHER TICS 06905000
HRC011DK: DC H'403' HIGHEST CYLINDER ON 3330 06906000
HRC011DK: DC X'3C' # RECORDS/CYLINDER 06907000
HRC011DK: DC AL1(TYP3330) DEVICE TYPE 06908000
HRC011DK: DC AL1(L'NM3330-1) LNGTH OF NAME FOR COMPARISON 06909000
HRC011DK: DC AL1(DVIX3330) SPECIAL FEATURE INDEX 06910000
HRC011DK: DC AL1(DVWVPMT) PROMPT FOR WRITE VERIFICATION 06911000
HRC011DK: SPACE , 06912000
HRC011DK: * 3330-11 ENTRY 06913000
HRC011DK: DS 0D 06914000
HRC011DK: CCW 08,GO3330,0,0 USED TO ALTER OTHER TICS 06915000
HRC011DK: DC H'807' HIGHEST CYLINDER ON 3330 06916000
HRC011DK: DC X'3C' # RECORDS/CYLINDER 06917000
HRC011DK: DC AL1(TYP3330) DEVICE TYPE 06918000
HRC011DK: DC AL1(L'NM333011-1) LNGTH OF NAME FOR COMPARISON 06919000
HRC011DK: DC AL1(DVIX3330) SPECIAL FEATURE INDEX 06920000
HRC011DK: DC AL1(DVWVPMT) PROMPT FOR WRITE VERIFICATION 06921000
HRC011DK: SPACE , 06922000
HRC011DK: * 3340-35 ENTRY 06923000
HRC011DK: DS 0D 06924000
HRC011DK: CCW 04,0,SKIP+SILI,1 USED TO ALTER OTHER TICS 06925000
HRC011DK: DC H'347' HIGHEST CYLINDER ON 3340-35 06926000
HRC011DK: DC X'18' # RECORDS/CYLINDER 06927000
HRC011DK: DC AL1(TYP334X) DEVICE TYPE 06928000
HRC011DK: DC AL1(L'NM334035-1) LNGTH OF NAME FOR COMPARISON 06929000
HRC011DK: DC AL1(DVIXNONE) SPECIAL FEATURE INDEX 06930000
HRC011DK: DC AL1(DVWVPMT) PROMPT FOR WRITE VERIFICATION 06931000
HRC011DK: SPACE , 06932000
HRC011DK: * 3340-70 ENTRY 06933000
HRC011DK: DS 0D 06934000
HRC011DK: CCW 04,0,SKIP+SILI,1 USED TO ALTER OTHER TICS 06935000
HRC011DK: DC H'695' HIGHEST CYLINDER ON 3340-70 06936000
HRC011DK: DC X'18' # RECORDS/CYLINDER 06937000
HRC011DK: DC AL1(TYP334X) DEVICE TYPE 06938000
HRC011DK: DC AL1(L'NM334070-1) LNGTH OF NAME FOR COMPARISON 06939000
HRC011DK: DC AL1(DVIX3340) SPECIAL FEATURE INDEX 06940000
HRC011DK: DC AL1(DVWVPMT) PROMPT FOR WRITE VERIFICATION 06941000
HRC011DK: SPACE , 06942000
HRC011DK: * 2305-1 ENTRY 06943000
HRC011DK: DS 0D 06944000
HRC011DK: CCW 08,GO3330,0,0 USED TO ALTER OTHER TICS 06945000
HRC011DK: DC H'47' HIGHEST CYLINDER ON 2305-1 06946000
HRC011DK: DC X'18' # RECORDS/CYLINDER 06947000
HRC011DK: DC AL1(TYP23051) DEVICE TYPE 06948000
HRC011DK: DC AL1(L'NM23051-1) LNGTH OF NAME FOR COMPARISON 06949000
HRC011DK: DC AL1(DVIXNONE) SPECIAL FEATURE INDEX 06950000
HRC011DK: DC AL1(DVWVSKIP) NO PROMPT FOR WRITE VERIFICATION 06951000
HRC011DK: SPACE , 06952000
HRC011DK: * 2305-2 ENTRY 06953000
HRC011DK: DS 0D 06954000
HRC011DK: CCW 08,GO3330,0,0 USED TO ALTER OTHER TICS 06955000
HRC011DK: DC H'95' HIGHEST CYLINDER ON 2305-2 06956000
HRC011DK: DC X'18' # RECORDS/CYLINDER 06957000
HRC011DK: DC AL1(TYP23052) DEVICE TYPE 06958000
HRC011DK: DC AL1(L'NM23052-1) LNGTH OF NAME FOR COMPARISON 06959000
HRC011DK: DC AL1(DVIXNONE) SPECIAL FEATURE INDEX 06960000
HRC011DK: DC AL1(DVWVSKIP) NO PROMPT FOR WRITE VERIFICATION 06961000
HRC011DK: SPACE , 06962000
HRC011DK: * 2314 ENTRY 06963000
HRC011DK: DS 0D 06964000
HRC011DK: CCW 08,GO2314,0,0 USED TO ALTER OTHER TICS 06965000
HRC011DK: DC H'202' HIGHEST CYLINDER ON 2314 06966000
HRC011DK: DC X'20' # RECORDS/CYLINDER 06967000
HRC011DK: DC AL1(TYP2314) DEVICE TYPE 06968000
HRC011DK: DC AL1(L'NM2314-1) LNGTH OF NAME FOR COMPARISON 06969000
HRC011DK: DC AL1(DVIXNONE) SPECIAL FEATURE INDEX 06970000
HRC011DK: DC AL1(DVWVSKIP) NO PROMPT FOR WRITE VERIFICATION 06971000
HRC011DK: SPACE , 06972000
HRC011DK: * 2319 ENTRY 06973000
HRC011DK: DS 0D 06974000
HRC011DK: CCW 08,GO2314,0,0 USED TO ALTER OTHER TICS 06975000
HRC011DK: DC H'202' HIGHEST CYLINDER ON 2319 06976000
HRC011DK: DC X'20' # RECORDS/CYLINDER 06977000
HRC011DK: DC AL1(TYP2319) DEVICE TYPE 06978000
HRC011DK: DC AL1(L'NM2319-1) LNGTH OF NAME FOR COMPARISON 06979000
HRC011DK: DC AL1(DVIXNONE) SPECIAL FEATURE INDEX 06980000
HRC011DK: DC AL1(DVWVSKIP) NO PROMPT FOR WRITE VERIFICATION 06981000
HRC011DK: DS 0D 06982000
HRC011DK: DC AL1(DEVTBEND) SIGNAL END OF TABLE 06983000
HRC011DK: SPACE , 06984000
HRC011DK: *---------------------------------------------------------------------- 06985000
HRC011DK: * DEVTBL2 - DEVICE NAMES AS SPECIFIED BY THE USER 06986000
HRC011DK: *---------------------------------------------------------------------- 06987000
HRC011DK: SPACE , 06988000
HRC011DK: DEVTBL2 EQU * 06989000
HRC011DK: SPACE , 06990000
HRC011DK: NM3380 DC C'3380 ' 06991000
HRC011DK: NM3350 DC C'3350 ' 06992000
HRC011DK: NM3330 DC C'3330 ' 06993000
HRC011DK: NM333011 DC C'3330-11 ' 06994000
HRC011DK: NM334035 DC C'3340-35 ' 06995000
HRC011DK: NM334070 DC C'3340-70 ' 06996000
HRC011DK: NM23051 DC C'2305-1 ' 06997000
HRC011DK: NM23052 DC C'2305-2 ' 06998000
HRC011DK: NM2314 DC C'2314 ' 06999000
HRC011DK: NM2319 DC C'2319 ' 07000000
HRC011DK: SPACE , 07001000
HRC011DK: * 07002000
HRC011DK: * ALLOCATION MAP BUFFER 07003000
HRC011DK: * 07004000
HRC011DK: * DO NOT SEPARATE R4COUNT AND TABLE. THEY MUST BE CONTIGUOUS SO THAT 07005000
HRC011DK: * WCKD WHICH WRITES ALLOC MAP TO CYLINDER 0 WORKS CORRECTLY. 07006000
HRC011DK: DS 0F 07007000
HRC011DK: R4COUNT DC XL8'00' ALLOC MAP COUNT FIELD 07008000
HRC011DK: TABLE DC 4096X'00' ALLOC MAP BUFFER 07009000
HRC011DK: *---------------------------------------------------------------------- 07010000
HRC011DK: * 'DEVICE DATA AND FORMATTING PROCEDURE' TABLE ENTRY DSECT 07011000
HRC011DK: *---------------------------------------------------------------------- 07012000
HRC011DK: SPACE , 07013000
HRC011DK: DFODATA DSECT DEVICE FORMAT DATA 07014000
HRC011DK: DFOTYPE DS X DEVICE TYPE 07015000
HRC011DK: DFOENDFL DS X FLAG BYTE 07016000
HRC011DK: DFOTBEND EQU X'01' SIGNALS: LAST ENTRY IN TABLE 07017000
HRC011DK: * ... OR-ED WITH OTHER BITS 07018000
HRC011DK: DFOTBSTD EQU X'00' STANDARD ENTRY 07019000
HRC011DK: DFOTBSPE EQU X'20' ENTRY USED FOR SPECIAL PURPOSE 07020000
HRC011DK: DFONRECS DS H NUMBER OF CCW DATA TO BE UPDATED 07021000
HRC011DK: DFO1REC DS A FIRST CCW DATA TO BE UPDATED 07022000
HRC011DK: DFOCAW DS A CAW TO BE USED 07023000
HRC011DK: DFOCAWEW DS A LAST WRITE CCW IN WRITE PROGRAM 07024000
HRC011DK: DFORPPAS DS H RECORDS PER PASS (PAGE RECORDS) 07025000
HRC011DK: DFOTRPAS DS H TRACKS PER PASS 07026000
HRC011DK: DS H RESERVED 07027000
HRC011DK: DFORECTR DS X RECORDS/TRACK(NOT USED FOR 2314) 07028000
HRC011DK: * ... PAGE AND NON-PAGE RECORDS 07029000
HRC011DK: DS X RESERVED 07030000
HRC011DK: SPACE , 07031000
HRC011DK: DFOTELEN EQU *-DFODATA LENGTH OF DEV/FORM TABLE ENTRY 07032000
HRC011DK: COPY EQU 07033000
HRC011DK: L1 EQU 1 07034000
HRC011DK: L2 EQU 2 07035000
HRC011DK: L3 EQU 3 07036000
HRC011DK: L4 EQU 4 07037000
HRC011DK: L5 EQU 5 07038000
HRC011DK: L6 EQU 6 07039000
HRC011DK: L7 EQU 7 07040000
HRC011DK: L8 EQU 8 07041000
HRC011DK: L9 EQU 9 07042000
HRC011DK: L10 EQU 10 07043000
HRC011DK: L11 EQU 11 07044000
HRC011DK: L12 EQU 12 07045000
HRC011DK: L13 EQU 13 07046000
HRC011DK: L14 EQU 14 07047000
HRC011DK: L15 EQU 15 07048000
HRC011DK: L16 EQU 16 07049000
HRC011DK: L17 EQU 17 07050000
HRC011DK: L18 EQU 18 07051000
HRC011DK: L19 EQU 19 07052000
HRC011DK: L20 EQU 20 07053000
HRC011DK: D1 EQU 1 07054000
HRC011DK: D2 EQU 2 07055000
HRC011DK: D3 EQU 3 07056000
HRC011DK: D4 EQU 4 07057000
HRC011DK: D5 EQU 5 07058000
HRC011DK: D6 EQU 6 07059000
HRC011DK: D7 EQU 7 07060000
HRC011DK: D8 EQU 8 07061000
HRC011DK: D9 EQU 9 07062000
HRC011DK: D10 EQU 10 07063000
HRC011DK: D11 EQU 11 07064000
HRC011DK: D12 EQU 12 07065000
HRC011DK: D13 EQU 13 07066000
HRC011DK: D14 EQU 14 07067000
HRC011DK: D15 EQU 15 07068000
HRC011DK: D16 EQU 16 07069000
HRC011DK: D17 EQU 17 07070000
HRC011DK: D18 EQU 18 07071000
HRC011DK: D19 EQU 19 07072000
HRC011DK: D20 EQU 20 07073000
HRC011DK: PSA 07074000
HRC011DK: UNSTAT EQU CSW+4 UNIT STATUS FROM CHANNEL STATUS 07075000
HRC011DK: SPACE , 07076000
HRC011DK: END DMKFMT 07077000
BEGIN APPLY >>> ./ R 00001000 03294000 $ 1990 990 03/02/06 19:30:26
VMFApply WARNING - Error 0x00000009 Source VM370Metabase Description Subscript out of range
Output Written to 'C:\Users\sjzop\AppData\Local\Temp\dmkfmt.assemble.maint(394).latest.txt'
>>>>> VMFApply COMPLETE - Execution Time 242 milliseconds.