ibm:vm370-lib:cp:dmkfmt.assemble_hst
Table of Contents
DMKFMT History
References
- Fixes Applied : 5
- Latest Source Date : Wednesday, December 13, 1978
- Last Fix ID : [HRC011DK]
Update History
CMS File Input : DMKFMT ASSEMBLE
Date : 12/13/1978 4:57:00 PM
VM Context : MAINT(394)
File Name : DMKFMT.ASSEMBLE.Z1.txt
Modified : 1/16/2021 7:31:46 AM
Created : 1/16/2021 7:31:46 AM
Update Order
- R09594DK 608 DMKFMT ALLOCATE REWRITES ALLOCATION MAP EVEN IF ONLY END ENTER
- R10365DK 611 DMKFMT ALLOCATION RESULTS BAD FOR '0C' AFTER V09232
- R10831DK 616 DMKFMT STAND ALONE WILL LOOP IF INTERRUPT FROM UNEXPECTED DEVICE
- R13248DK 627 UV05087 SAVE FORMAT FOUR LABEL INFO FOR 3330-3340-3350
- HRC011DK V01 ADD 3380 MDISK/DEDICATED DEVICE SUPPORT
R09594DK
Date Tuesday Jan 08, 1980 09:20:00 AM
Loaded from MAINT(294)
R09594DK: ./ I 2027000 $ 2027500 00001000 R09594DK: MVI CHECKEND,X'FF' INITIALIZE END ONLY FLAG @VA09594 00002000 R09594DK: ./ I 2075000 $ 2075500 00003000 R09594DK: MVI CHECKEND,X'00' CLEAR END ONLY FLAG @VA09594 00004000 R09594DK: ./ I 2128000 $ 2128100 100 00005000 R09594DK: CLI CHECKEND,X'FF' IS END THE ONLY COMMAND? @VA09594 00006000 R09594DK: BE PRINTALL YES, NO CHANGE SO JUST DISPLAY @VA09594 00007000 R09594DK: ./ I 2296000 $ 2296500 00008000 R09594DK: CHECKEND DC X'FF' USED TO INDICATE END AS ONLY @VA09594 00009000 R09594DK: * COMMAND 00010000 BEGIN APPLY >>> ./ I 2027000 $ 2027500 00001000 END APPLY >>> ./ I 2027000 $ 2027500 00001000 BEGIN APPLY >>> ./ I 2075000 $ 2075500 00003000 END APPLY >>> ./ I 2075000 $ 2075500 00003000 BEGIN APPLY >>> ./ I 2128000 $ 2128100 100 00005000 END APPLY >>> ./ I 2128000 $ 2128100 100 00005000 BEGIN APPLY >>> ./ I 2296000 $ 2296500 00008000 END APPLY >>> ./ I 2296000 $ 2296500 00008000 Update Succeeded Update Execution Time 31 milliseconds.
R10365DK
Date Thursday Apr 03, 1980 11:21:00 AM
Loaded from MAINT(294)
R10365DK: ./ R 2174000 2175000 $ 2174100 500 00003000 R10365DK: CLI 0(R6),X'0C' IS THIS AN IN USE DRCT CYL @VA10365 00004000 R10365DK: BH CONT NO - THATS ALL FOR THIS DRCT @VA10365 00005000 R10365DK: CLI 0(R6),X'04' IS IT A DRCT CYL @VA10365 00006000 R10365DK: BNL DIRECT YES - COUNT IT @VA10365 00007000 BEGIN APPLY >>> ./ R 2174000 2175000 $ 2174100 500 00003000 END APPLY >>> ./ R 2174000 2175000 $ 2174100 500 00003000 Update Succeeded Update Execution Time 23 milliseconds.
R10831DK
Date Monday Sep 08, 1980 06:17:00 AM
Loaded from MAINT(294)
R10831DK: ./ I 1282000 $ 1282500 00001000 R10831DK: SSM =4X'00' DISABLE I/O INTERRUPTS @VA10831 00002000 R10831DK: ./ I 1287000 $ 1287500 00003000 R10831DK: BC 8,*-8 LOOP FOR CSW @VA10831 00004000 R10831DK: ./ R 1295000 $ 1295100 00005000 R10831DK: SSM =4X'FF' ALLOW I/O INTERRUPTS @VA10831 00006000 BEGIN APPLY >>> ./ I 1282000 $ 1282500 00001000 END APPLY >>> ./ I 1282000 $ 1282500 00001000 BEGIN APPLY >>> ./ I 1287000 $ 1287500 00003000 END APPLY >>> ./ I 1287000 $ 1287500 00003000 BEGIN APPLY >>> ./ R 1295000 $ 1295100 00005000 END APPLY >>> ./ R 1295000 $ 1295100 00005000 Update Succeeded Update Execution Time 31 milliseconds.
R13248DK
Date Friday Jan 15, 1982 04:25:00 PM
Loaded from MAINT(294)
R13248DK: ./ R 1341000 1342000 $ 1341500 1000 00001000 R13248DK: TM TYPE,TYP3330+TYP334X+TYP3350 3330,334X,3350 ? @VA13248 00002000 R13248DK: BZ REGFORM NO, THEN REG FORMAT @VA13248 00003000 R13248DK: ./ R 1358000 1364000 $ 1358500 1000 00004000 R13248DK: CLC NEXTCCHH(20),HIVALUE NEXT AVAILABLE ALT TRK @VA13248 00005000 R13248DK: * BETTER BE IN ALT CYL 00006000 BEGIN APPLY >>> ./ R 1341000 1342000 $ 1341500 1000 00001000 END APPLY >>> ./ R 1341000 1342000 $ 1341500 1000 00001000 BEGIN APPLY >>> ./ R 1358000 1364000 $ 1358500 1000 00004000 END APPLY >>> ./ R 1358000 1364000 $ 1358500 1000 00004000 Update Succeeded Update Execution Time 31 milliseconds.
HRC011DK
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.
ibm/vm370-lib/cp/dmkfmt.assemble_hst.txt ยท Last modified: 2023/08/06 13:37 by Site Administrator