BOP TITLE 'DMSBOP (CMS) VM/370 - RELEASE 6' 00001000
SPACE 2 00002000
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00003000
*. * 00004000
* MODULE NAME: * 00005000
* DMSBOP * 00006000
* * 00007000
* FUNCTION: * 00008000
* DMSBOP OPENS CMS/DOS FILES ASSOCIATED WITH THE * 00009000
* FOLLOWING DTFS - DTFCN, DTFCD, DTFPR, DTFMT, DTFDI, * 00010000
* DTFCP AND DTFSD. DTF TABLE INITIALIZATION IS PER- * 00011000
* FORMED ACCORDING TO BOTH DTF TYPE AND DEVICE TYPE. * 00012000
* ONCE THE TABLE INITIALIZATION IS COMPLETE, NORMAL I/O * 00013000
* OPERATIONS CAN BE PERFORMED AGAINST THE FILE. * 00014000
* * 00015000
* ATTRIBUTES: * 00016000
* DISCONTIGUOUS SHARED SEGMENT * 00017000
* REENTRANT * 00018000
* * 00019000
* ENTRY POINTS: * 00020000
* DMSBOP * 00021000
* * 00022000
* ENTRY CONDITIONS: * 00023000
* DMSBOP IS INVOKED BY MEANS OF THE OPEN MACRO EXPANSION * 00024000
* OR IN RESPONSE TO AN SVC 2 BEING ISSUED BY A PROBLEM * 00025000
* PROGRAM. * 00026000
* * 00027000
* EXAMPLE: * 00028000
* * 00029000
* OPEN DTF1,DTF2,ACB * 00030000
* + CNOP 0,4 * 00031000
* + DC 0F'0' * 00032000
* + LA 1,=C'$$BOPEN' * 00033000
* +IJJO0001 BAL 0,*+4+4*(4-1) * 00034000
* + DC A(DTF1) * 00035000
* + DC A(DTF2) * 00036000
* + DC A(ACB) * 00037000
* + SVC 2 * 00038000
* 00039000
* NOTE: THE ABOVE LIST OF ADCONS WILL CONTAIN 00040000
* EITHER DTFS OR ACBS BUT NOT BOTH 00041000
* 00042000
* * 00043000
* THE OPEN ROUTINE IS INVOKED BY MEANS OF AN SVC 2. * 00044000
* SVC 2 IS A FETCH FOR THE ROUTINE POINTED TO BY R1 AS * 00045000
* A RESULT OF THE MACRO EXPANSION ... IN THIS CASE * 00046000
* $$BOPEN. UPON ENTRY TO DMSBOP, R0 POINTS TO THE FIRST * 00047000
* DTF OR ACB ADCON IN THE MACRO EXPANSION. * 00048000
* * 00049000
* EXIT CONDITIONS: * 00050000
* * 00051000
* NORMAL RETURN = 0 * 00052000
* * 00053000
* NORMAL EXITS: * 00054000
* SVC 11 - RETURN TO PROBLEM PROGRAM AFTER OPEN IS * 00055000
* COMPLETE. * 00056000
* SVC 2 - FETCH $$BOVSAM TO OPEN ANY ACBS. THIS WILL BE * 00057000
* FOLLOWED BY A RETURN TO DMSBOP. * 00058000
* * 00059000
* ABNORMAL EXITS: * 00060000
* R15 = 24 * 00061000
* R15 = 36 * 00062000
* R15 = 40 * 00063000
* R15 = 100 * 00064000
* AS FOLLOWS: * 00065000
* * 00066000
* DMSBOP037E DISK 'MODE' IS READ/ONLY * 00067000
* * 00068000
* EXPLANATION: ATTEMPT TO OPEN SEQUENTIAL* 00069000
* DISK FILE FOR OUTPUT BUT ADTFLG1 IN * 00070000
* THE ADT INDICATES READ/ONLY DISK. * 00071000
* * 00072000
* SYSTEM ACTION: RC=36 * 00073000
* THE SESSION IS CANCELLED. * 00074000
* * 00075000
* USER ACTION: INSURE THAT THE * 00076000
* APPROPRIATE DISK IS BEING ASSOCIATED * 00077000
* WITH THE DTF BEING OPENED AND RESTART * 00078000
* THE SESSION. * 00079000
* * 00080000
* * 00081000
* DMSBOP058E END-OF-FILE OR END-OF-TAPE ON 'TAPN' * 00082000
* * 00083000
* EXPLANATION: END OF FILE OR END OF TAPE* 00084000
* HAS BEEN ENCOUNTERED WHILE PERFORMING * 00085000
* TAPE I/O OPERATION. * 00086000
* * 00087000
* SYSTEM ACTION: RC = 40 * 00088000
* THE SESSION IS CANCELLED. * 00089000
* * 00090000
* USER ACTION: REWIND AND REPOSITION THE * 00091000
* TAPE AND RESTART THE SESSION. * 00092000
* * 00093000
* * 00094000
* DMSBOP113S 'TAPN (CUU)' NOT ATTACHED * 00095000
* * 00096000
* EXPLANATION: THE TAPE HAS NOT BEEN * 00097000
* MOUNTED AND/OR THE DEVICE IS NOT * 00098000
* READY. * 00099000
* * 00100000
* SYSTEM ACTION: RC=100 * 00101000
* THE SESSION IS CANCELLED. * 00102000
* * 00103000
* USER ACTION: ATTACH THE TAPE TO THE * 00104000
* USER'S VIRTUAL MACHINE AND RESTART THE * 00105000
* SESSION. * 00106000
* * 00107000
* * 00108000
* DMSBOP069E DISK 'MODE' NOT ACCESSED * 00109000
* * 00110000
* EXPLANATION: ATTEMPT TO OPEN A * 00111000
* SEQUENTIAL DISK FILE AND THE DISK * 00112000
* ASSOCIATED WITH THE FILE HAS NOT BEEN * 00113000
* ACCESSED. * 00114000
* * 00115000
* SYSTEM ACTION: RC = 36 * 00116000
* THE SESSION IS CANCELLED. * 00117000
* * 00118000
* USER ACTION: ACCESS THE DISK AND * 00119000
* RESTART THE SESSION. * 00120000
* * 00121000
* * 00122000
* DMSBOP043E TAPN IS FILE PROTECTED * 00123000
* * 00124000
* EXPLANATION: TAPN WHERE N = 1,2,3,4 IS * 00125000
* FILE PROTECTED. * 00126000
* * 00127000
* SYSTEM ACTION: RC = 36 * 00128000
* THE SESSION IS CANCELLED. * 00129000
* * 00130000
* USER ACTION: VERIFY THAT CORRECT TAPE * 00131000
* HAS BEEN SELECTED, CORRECT THE FILE * 00132000
* PROTECT SITUATION AND RESTART THE * 00133000
* SESSION. * 00134000
* * 00135000
* DMSBOP088E UNSUPPORTED DTF TYPE 'DTFTYPE' * 00136000
* * 00137000
* EXPLANATION: ATTEMPT TO OPEN UNSUPPORTED 00138000
* * 00139000
* SYSTEM ACTION: RC = 24 * 00140000
* THE SESSION IS CANCELLED. * 00141000
* * 00142000
* USER ACTION: NONE, CMSDOS ONLY SUPPORTS* 00143000
* THOSE DTFS IDENTIFIED IN THE * 00144000
* SPECIFICATIONS. * 00145000
* * 00146000
* * 00147000
* * 00148000
* DMSBOP089E OPEN ERROR CODE 'CODE' ON FN/SYSXXX/TAPN* 00149000
* * 00150000
* EXPLANATION:THIS MESSAGE WILL BE ISSUED * 00151000
* FOR MANY OF THE OPEN ERROR MESSAGES. * 00152000
* A UNIQUE ERROR CODE IN THE MESSAGE WILL * 00153000
* IDENTIFY THE ERROR SITUATION. * 00154000
* * 00155000
* * 00156000
* SYSTEM ACTION: * 00157000
* * 00158000
* RC = 1 * 00159000
* SYSXXX VALUE IN DOSCB DOES NOT * 00160000
* MATCH VALUE IN DTF. * 00161000
* * 00162000
* * 00163000
* RC = 2 * 00164000
* CMS/DOS DOES NOT SUPPORT WRITING TO * 00165000
* OS/DOS DISKS. ALL FILES MUST BE WRITTEN* 00166000
* TO CMS DISKS. * 00167000
* * 00168000
* * 00169000
* RC = 3 * 00170000
* ATTEMPTING TO OPEN A SEQUENTIAL DISK * 00171000
* FILE BUT NO DOSCB EXISTS WITH THE DOSCB * 00172000
* DDNAME EQUAL TO THE DTF FILENAME. * 00173000
* CMS/DOS REQUIRES A USER ISSUED DLBL FOR * 00174000
* ALL SEQUENTIAL DISK INPUT AND OUTPUT * 00175000
* FILES. * 00176000
* * 00177000
* RC = 4 * 00178000
* ATTEMPT TO OPEN DTFCD OR DTFPR WITH * 00179000
* ASSOCFLE/FUNC PARAMETERS SPECIFIED ON * 00180000
* DTFXX MACRO. THESE PARAMETERS ARE NOT * 00181000
* SUPPORTED. * 00182000
* * 00183000
* * 00184000
* RC = 5 * 00185000
* ATTEMPT TO OPEN AN INPUT SEQUENTIAL * 00186000
* DISK FILE BUT NO EXTENT INFORMATION HAS * 00187000
* BEEN FOUND IN THE OSFST. * 00188000
* * 00189000
* RC = 6 * 00190000
* ATTEMPT TO VERIFY EXISTENCE OF DISK * 00191000
* INPUT FILE BY CALLING STATE (DMSSTTE) * 00192000
* AND FILE NOT FOUND CONDITION * 00193000
* ENCOUNTERED. * 00194000
* * 00195000
* RC = 7 * 00196000
* THE PUB DEVICE TYPE CODE IS INCOMPATIBLE* 00197000
* WITH THE DEVICE TYPES SUPPORTED BY THE * 00198000
* DTF BEING OPENED. * 00199000
* * 00200000
* RC = 8 * 00201000
* SYSTEM OR PROGRAMMER LOGICAL UNIT * 00202000
* IS UNASSIGNED (PUB POINTER IN LUB = * 00203000
* X'FF'). * 00204000
* * 00205000
* RC = 9 * 00206000
* NO CMS/DOS SUPPORT FOR READING TAPES * 00207000
* IN A BACKWARD DIRECTION. WHEN THE * 00208000
* PARAMETER 'READ= BACK' IS SPECIFIED * 00209000
* ON THE DTFMT MACRO, A FLAG IS SET IN * 00210000
* THE DTF AT COMPILATION TIME INDICATING * 00211000
* THIS CONDITION. CMS/DOS WILL ONLY * 00212000
* SUPPORT TAPE PROCESSING IN A FORWARD * 00213000
* DIRECTION. * 00214000
* * 00215000
* RC = 11 * 00216000
* ATTEMPT TO OPEN DTFMT (TAPE DATA * 00217000
* FILES) AND 'ASCII=YES' WAS * 00218000
* SPECIFIED. THIS PARAMETER IS NOT * 00219000
* SUPPORTED. * 00220000
* * 00221000
* RC = 12 * 00222000
* OPENING DTFMT (FILABL=STD) BUT NO * 00223000
* VOL1/HDR1 ENCOUNTERED. * 00224000
* * 00225000
* RC = 13 * 00226000
* PUB INFORMATION (SEVEN TRACK INDICATOR * 00227000
* OR DENSITY) IS INCOMPATIBLE WITH THE * 00228000
* TAPE DRIVE. * 00229000
* * 00230000
* RC = 14 * 00231000
* 3420 TAPE DRIVE BUT INVALID TAPE * 00232000
* MODEL NUMBER (VALID MODEL NUMBERS ARE * 00233000
* 3, 4, 5, 6, 7, 8. * 00234000
* * 00235000
* RC = 15 * 00236000
* ERROR ACCESSING OS/DOS DISK WHEN * 00237000
* OPENING A SEQUENTIAL DISK INPUT FILE * 00238000
* AS RESULT OF CALL TO STATE (DMSSTTE). * 00239000
* * 00240000
* RC = 16 * 00241000
* SYSIPT OR SYSRDR ASSIGNED TO TAPE * 00242000
* AND RECORD LENGTH DOES NOT EQUAL * 00243000
* 80 OR 81 BYTES. * 00244000
* * 00245000
* RC = 17 * 00246000
* UNEXPECTED TAPE ERROR ENCOUNTERED * 00247000
* WHEN PERFORMING TAPE IO OPERATION. * 00248000
* * 00249000
* THE SESSION IS CANCELLED IN ALL THE * 00250000
* ABOVE SITUATIONS WITH A RC = 36 EXCEPT * 00251000
* IN THE CASE WHERE A SYSTEM/PROGRAMMER * 00252000
* LOGICAL UNIT IS UNASSIGNED (RC = 8). * 00253000
* IN THIS CASE, AN SVC 2 (FETCH) * 00254000
* IS ISSUED TO THE ABNORMAL TERMINATION * 00255000
* ROUTINE (DMSBAB) WHICH VERIFIES WHETHER * 00256000
* LINKAGE HAS BEEN ESTABLISHED TO A STXIT * 00257000
* AB ROUTINE. * 00258000
* * 00259000
* USER ACTION: CORRECTION THE INDIVIDUAL * 00260000
* SITUATION AND RESTART THE SESSION. * 00261000
* 00262000
* DMSBOP400S SYSTEM 'SYSNAME' DOES NOT EXIST 00263000
* EXPLANATION: THE SUBJECT SYSTEM HAS 00264000
* NOT BEEN DEFINED IN THE CONTROL 00265000
* PROGRAM MODULE DMKSNT. 00266000
* 00267000
* SYSTEM ACTION: RC = 44 00268000
* THE SESSION IS CANCELLED. 00269000
* 00270000
* USER ACTION: CONTACT THE INSTALLATION 00271000
* SYSTEM PROGRAMMER WHO MUST USE THE 00272000
* VSAMGEN EXEC PROCEDURE TO SAVE THE CMS 00273000
* VSAM SYSTEM. 00274000
* 00275000
* DMSBOP401S V.M. SIZE CANNOT EXCEED 'CMSDOS' START 00276000
* ADDRESS 00277000
* 00278000
* EXPLANATION: THE USER'S VIRTUAL MACHINE 00279000
* STORAGE SIZE AS CURRENTLY DEFINED IS OF 00280000
* SUCH A SIZE THAT THE NAMED SYSTEM WOULD 00281000
* HAVE OVERLAID PART OF THE USER'S STORAGE. 00282000
* 00283000
* SYSTEM ACTION: RC = 104 THE SYSTEM 00284000
* EXECUTION TERMINATES; THE SYSTEM REMAINS 00285000
* IN THE SAME STATUS AS BEFORE THE ROUTINE 00286000
* WAS ENTERED. 00287000
* 00288000
* USER ACTION: CONTACT THE INSTALLATION 00289000
* SYSTEM PROGRAMMER WNO MUST RESAVE THE 00290000
* NAMED VSAM SYSTEM AT AN ADDRESS LARGE 00291000
* ENOUGH NOT TO CONFLICT WITH NORMAL 00292000
* VIRTUAL MACHINE SIZE PERMITTED TO THE 00293000
* USERS. 00294000
* 00295000
* DMSBOP410S CONTROL PROGRAM ERROR INDICATION 00296000
* 'RETCODE' 00297000
* 00298000
* EXPLANATION: AN UNEXPECTED ERROR 00299000
* OCCURRED WHILE THE CONTROL PROGRAM 00300000
* WAS PROCESSING A REQUEST FROM CMS 00301000
* TO FIND OR LOAD A SAVED VSAM SYSTEM. 00302000
* 00303000
* SYSTEM ACTION: RC = NNN 00304000
* WHERE NNN IS THE ACTUAL ERROR COD 00305000
* FROM THE CONTROL PROGRAM. 00306000
* 117 - PAGING I/O ERRORS. 00307000
* 00308000
* USER ACTION: CONTACT THE INSTALLATION 00309000
* SYSTEM PROGRAMMER FOR ASSISTANCE. 00310000
* 00311000
* DMSBOP413S STORAGE NOT INITIALIZED FOR VSAM 00312000
* PROCESSING. 00313000
* 00314000
* EXPLANATION: SET DOS ON (VSAM WAS NOT 00315000
* SPECIFIED AND THEREFORE STORAGE 00316000
* WAS NOT INITIALIZED FOR VSAM 00317000
* PROCESSING. 00318000
* 00319000
* SYSTEM ACTION: RC = 104 00320000
* EXECUTION OF THE PRESENT ROUTINE IS 00321000
* CANCELLED. THE SYSTEM REMAINS IN THE 00322000
* SAME STATUS AS BEFORE THE ROUTINE 00323000
* WAS ENTERED. 00324000
* 00325000
* USER ACTION: WHEN RUNNING DOSVSAM, 00326000
* USER SHOULD USE 'SET DOS ON (VSAM' 00327000
* TO INSURE THAT STORAGE IS INITIALIZED 00328000
* PROPERLY FOR VSAM. 00329000
* 00330000
* DMSBOP308E ' ' DISK IN CMS FORMAT; INVALID FOR 00331000
* NON-CMS DATASET. 00332000
* 00333000
* EXPLANTION: ACB IS BEING OPENED; 00334000
* DISK MUST BE OS/DOS DISK. 00335000
* SYSTEM ACTION: RC = 24 00336000
* THE ROUTINE IS CANCELLED; THE SYSTEM 00337000
* REMAINS IN THE SAME STATUS AS BEFORE 00338000
* THE ROUTINE WAS ENTERED. 00339000
* 00340000
* USER ACTION: ENSURE THAT PROPER DISK 00341000
* WAS SPECIFIED FOR DATASET. 00342000
* 00343000
* DMSBOP302E NO SYSXXX OPERAND SPECIFIED 00344000
* 00345000
* EXPLANATION: NO SYSXXX WAS SPECIFIED 00346000
* ON THE DTF MACRO OR THE DLBL FOR THE 00347000
* SPECIFIC FILENAME. 00348000
* 00349000
* SYSTEM ACTION: RC = 24 00350000
* EXECUTION OF THE ROUTINE IS CANCELLED. 00351000
* THE SYSTEM REMAINS IN THE SAME STATUS 00352000
* AS BEFORE THE ROUTINE WAS ENTERED. 00353000
* 00354000
* USER ACTION: EITHER SPECIFY THE 00355000
* SYSXXX ON THE DTF OR THE DLBL. 00356000
* 00357000
* DMSBOP086W DLBL 'DDNAME' DUMMY INVALID FOR VSAM 00358000
* 00359000
* EXPLANATION: INVALID TO SPECIFY DUMMY 00360000
* ON VSAM DATA SET 00361000
* 00362000
* SYSTEM ACTION: VSAM RC = 8 00363000
* SYSTEM REMAINS IN SAME STATE AS 00364000
* BEFORE THE ROUTINE WAS ENTERED. 00365000
* 00366000
* USER ACTION: DO NOT SPECIFY 00367000
* DLBL DUMMY FOR VSAM DATA SET 00368000
* * 00369000
* CALLS TO OTHER ROUTINES: * 00370000
* DMSTIO - SVC 202 * 00371000
* DMSSTTE * 00372000
* ADTLKP * 00373000
* DMSFRE * 00374000
* $$BOVSAM - SVC 2 (FETCH) TO PERFORM OPEN OF ACBS * 00375000
* SVC 8 - TEMPORARILY RETURN TO PROB. PROG. TO PROCESS * 00376000
* USER TAPE LABELS * 00377000
* * 00378000
* * 00379000
* EXTERNAL REFERENCES: * 00380000
* NUCON, REGEQU, DOSCB, OSFST, ADT * 00381000
* MAPPUB, BGCOM, FSTB, DOSAVE * 00382000
* * 00383000
* * 00384000
* CALLED BY: * 00385000
* INVOKED IN RESPONSE TO SVC 2 (FETCH FOR DMSBOP). * 00386000
* THE SVC 2 CAN RESULT FROM TWO SITUATIONS: * 00387000
* * 00388000
* 1. SVC 2 GENERATED AS PART OF * 00389000
* OPEN MACRO EXPANSION WHERE R1 * 00390000
* POINTS TO NAME OF FILE TO BE * 00391000
* FETCHED ($$BOPEN). * 00392000
* * 00393000
* 2. SVC 2 ISSUED IN USER PROGRAM * 00394000
* AND R1 POINTS TO NAME OF FILE TO * 00395000
* BE FETCHED ($$BOPEN). * 00396000
* * 00397000
* * 00398000
* TABLES AND WORK AREAS: * 00399000
* * 00400000
* CC - CCHH CONTROL FIELD TABLE CONTAINING AN * 00401000
* ENTRY FOR EACH DISK DEVICE TYPE. EACH * 00402000
* ENTRY CONTAINS A MAXIMUM CCHH VALUE FOR * 00403000
* A FILE RESIDING ON THE SPECIFIC DISK DEVICE * 00404000
* TYPE. THIS VALUE HAS BEEN COMPUTED * 00405000
* BASED ON 32,768 RECORDS/CMS FILE AND THE * 00406000
* NUMBER OF TRACKS/CYL. * 00407000
* * 00408000
* * 00409000
* DISKTAB - TABLE WITH FOUR (8) BYTE ENTRIES. EACH * 00410000
* ENTRY CORRESPONDS WITH A DIRECT ACCESS * 00411000
* STORAGE DEVICE TYPE (3340 35MB, 3340 70MB, * 00412000
* 2314/2319 AND 3330) AND CONTAINS FOUR FIELDS * 00413000
* RELATING TO THE STORATE DEVICE TYPE. * 00414000
* * 00415000
* 1. ADT DEVICE CODE. * 00416000
* 2. DOS DEVICE CODE. * 00417000
* 3. TRACK CAPACITY. * 00418000
* 4. MAXIMUM CCHH ADDRESS FOR THE * 00419000
* STORAGE DEVICE. * 00420000
* * 00421000
* TYPETAB - TABLE WITH AN ENTRY FOR EACH SUPPORTED * 00422000
* DTF TYPE. THE FIRST BYTE OF EACH ENTRY * 00423000
* CONTAINS THE DTF TYPE. THIS ONE-BYTE IS * 00424000
* FOLLOWED BY A THREE-BYTE ADDRESS OF A ROUTINE* 00425000
* TO BE GIVEN CONTROL TO PROCESS THE SPECIFIED * 00426000
* DTF TYPE. THE THIRD FIELD IN EACH ENTRY * 00427000
* IS A 7 CHARACTER CONSTANT (DTFXX) USED IN * 00428000
* ERROR MESSAGES. * 00429000
* * 00430000
* SYSTAB - TABLE OF THREE BYTE ENTRIES CONSISTING OF * 00431000
* SYSTEM LOGICAL UNIT SYMBOLICS (IE; PCH, IPT, * 00432000
* LST ETC.) * 00433000
* * 00434000
* FREE - THIRTY TWO DOUBLE WORDS OF FREE STORAGE USED FOR* 00435000
* SWITCHES, ADDRESSES, PLISTS AND WORKAREAS WHICH * 00436000
* WILL BE MODIFIED AT SOME POINT DURING THE * 00437000
* PROGRAM. (DMSBOP IS REENTRANT) * 00438000
* * 00439000
* * 00440000
* REGISTER USAGE: * 00441000
* * 00442000
* R0 - AT DMSBOP ENTRY R0 POINTS TO THE LIST OF ADCONS * 00443000
* GENERATED BY THE OPEN MACRO. EACH ADCON IS AN * 00444000
* ADDRESS OF A DTF TO BE OPENED BY THE PROGRAM. * 00445000
* R1 - WORKING REGISTER * 00446000
* R2 - DTF ADDRESS * 00447000
* R3 - WORKING REGISTER * 00448000
* R4 - WORKING REGISTER * 00449000
* R5 - POINTER TO PUB INDEX CODE * 00450000
* - POINTER TO PUB ENTRY * 00451000
* - WORKING REGISTER * 00452000
* R6 - BAL RETURN REGISTER * 00453000
* R7 - WORKING REGISTER * 00454000
* R8 - WORKING REGISTER * 00455000
* R9 - FREE STORAGE POINTER * 00456000
* R10 - WORKING REGISTER * 00457000
* R11 - BASE REGISTER * 00458000
* R12 - BASE REGISTER * 00459000
* R13 - WORKING REGISTER * 00460000
* R14 - EXTERNAL LINKAGE/WORKING REGISTER * 00461000
* R15 - RETURN CODES * 00462000
* * 00463000
* * 00464000
* OPERATION: * 00465000
* * 00466000
* * 00467000
* DMSBOP IS THE SIMULATED OPEN ROUTINE USED BY THE * 00468000
* CMS/DOS SUPPORT TO OPEN SUPPORTED DTF TYPES. DMSBOP * 00469000
* IS USED INSTEAD OF THE MANY $$B-TRANSIENTS * 00470000
* USED BY DOS/VS. THE FUNCTION PERFORMED BY DMSBOP IS * 00471000
* BASICALLY THAT OF DTF TABLE INITIALIZATION - * 00472000
* INITIALIZING THOSE FIELDS IN THE DTF WHICH WILL BE USED* 00473000
* LATER BY THE DOS/VS LIOCS ROUTINES. * 00474000
* * 00475000
* * 00476000
* DMSBOP PERFORMS SEVERAL MAJOR ACTIVITIES: * 00477000
* * 00478000
* 1. DMSBOP OBTAINS A WORK AREA FROM FREE STORAGE. * 00479000
* * 00480000
* 2. THE PROGRAM THEN SCANS THE LIST OF DTF/ACB FILES * 00481000
* TO BE OPENED. UPON ENCOUNTERING AN ACB, CONTROL * 00482000
* IS GIVEN TO THE VSAM OPEN ROUTINE ($$BOVSAM) TO * 00483000
* OPEN THE SPECIFIED ACB. * 00484000
* * 00485000
* 3. ONCE THIS IS ACCOMPLISHED, THE DTF TYPE IS EXAMINED* 00486000
* AND CONTROL IS PASSED TO A ROUTINE WHICH OPENS THAT* 00487000
* PARTICULAR DTF TYPE. * 00488000
* * 00489000
* THE OPEN ACTIVITY FOR EACH DTF TYPE FOLLOWS: * 00490000
* * 00491000
* DTFCD (DTF TYPE X'02'): * 00492000
* OPEN BIT IN DTF IS POSTED OPEN. * 00493000
* * 00494000
* DTFCD (DTF TYPE X'04'), * 00495000
* DTFPR (DTF TYPE X'08'): * 00496000
* IF TWO IOAREAS ARE SPECIFIED, THE IOREG * 00497000
* IS LOADED WITH THE APPROPRIATE IOAREA * 00498000
* ADDRESS TAKING INTO ACCOUNT CONTROL CHARACTER * 00499000
* AND VARIABLE LENGTH RECORDS. * 00500000
* NEXT, THE PUB INDEX BYTE IS CHECKED. * 00501000
* IF EQUAL TO X'FF' (UNASSIGNED), AN ERROR * 00502000
* MESSAGE IS ISSUED. IF EQUAL X'FE' (IGNORE), * 00503000
* THE OPEN IGNORE BIT IS POSTED. OTHERWISE, * 00504000
* PROCESSING CONTINUES BY ANALYZING THE PUB DEVICE * 00505000
* CODE. THE DTF OPEN BIT IS THEN POSTED OPEN. * 00506000
* * 00507000
* DTFCN (DTF TYPE X'03'): * 00508000
* NO OPEN IS REQUIRED FOR DTFCN (CONSOLE). * 00509000
* * 00510000
* DTFMT (TAPE DATA FILES DTF TYPE X'11', X'12', * 00511000
* X'14'): * 00512000
* ERROR MESSAGE IS ISSUED IF LOGICAL UNIT IS * 00513000
* UNASSIGNED OR IGNORED. (PUB INDEX BYTE = X'FF' * 00514000
* OR X'FE'). * 00515000
* PUB DEVICE TYPE CODE MUST INDICATE A TAPE. * 00516000
* 'READ=BACK' AND 'ASCII=YES' ARE NOT SUPPORTED. * 00517000
* THE TAPE IS REWOUND IF 'NOREWIND' IS NOT SPECIFIED.* 00518000
* IF AN IOREG IS SPECIFIED, THE IOREG IS LOADED * 00519000
* WITH THE APPROPRIATE IOAREA ADDRESS. * 00520000
* (ONLY APPROPRIATE WITH OUTPUT TAPES) * 00521000
* * 00522000
* INPUT TAPE DATA FILES: * 00523000
* * 00524000
* STANDARD LABEL: * 00525000
* * 00526000
* THE STANDARD LABEL IS SKIPPED. IF A USER * 00527000
* ENTRY HAS BEEN SPECIFIED VIA THE LABADDR * 00528000
* PARAMETER ON THE DTF MACRO, CONTROL IS PASSED * 00529000
* TO THE USER LABEL ROUTINE . UPON RETURN, * 00530000
* THE TAPE IS FORWARD SPACED BEYOND THE TAPE MARK. * 00531000
* IF NO USER ENTRY WAS SPECIFIED, THE TAPE IS * 00532000
* FORWARD SPACED BEYOND THE TAPE MARK. * 00533000
* * 00534000
* NON-STANDARD LABEL: * 00535000
* * 00536000
* IF A USER ENTRY HAS BEEN SPECIFIED, CONTROL IS * 00537000
* PASSED TO THE USER LABEL ROUTINE. IF THE UTILITIES* 00538000
* BIT IS ON UPON RETURN, THE DTF IS POSTED OPEN. * 00539000
* IF THE UTILITIES BIT IS NOT ON, THE TAPE IS * 00540000
* FORWARD SPACED BEYOND THE TAPE MARK AND THE DTF * 00541000
* IS POSTED OPEN. IF NO USER ENTRY WAS SPECIFIED, * 00542000
* THE TAPE IS FORWARD SPACED BEYOND THE TAPE MARK. * 00543000
* * 00544000
* NOLABEL: * 00545000
* * 00546000
* THE TAPE IS POSITIONED AT THE FIRST DATA RECORD. * 00547000
* * 00548000
* TAPE DATA OUTPUT FILES: * 00549000
* * 00550000
* ALL TAPE DATA OUTPUT FILES WILL BE TREATED AS * 00551000
* NOLABEL TAPES. UNLESS 'TRMARK=NO' IS SPECIFIED, * 00552000
* A TAPE MARK WILL BE WRITTEN AND THE DTF POSTED * 00553000
* OPEN. (THIS MEANS THAT IF THE TAPE IS STANDARD * 00554000
* LABEL OR NON-STANDARD LABEL, THE LABEL WILL BE * 00555000
* DESTROYED. * 00556000
* * 00557000
* DTFMT (WORKFILES DTF TYPE X'10'): * 00558000
* TAPE WORKFILES UNDERGO THE SAME OPEN PROCESS * 00559000
* AS TAPE DATA FILES. HOWEVER, SINCE ALL TAPE * 00560000
* WORKFILES ARE OPENED AS OUTPUT FIRST, THERE * 00561000
* WILL BE NO LABEL SUPPORT FOR TAPE WORKFILES. * 00562000
* ALL TAPE WORKFILES WILL BE TREATED AS NO LABEL * 00563000
* TAPES. * 00564000
* * 00565000
* DTFSD (DISK DTF TYPE X'20'), * 00566000
* DTFCP (DISK DTF TYPE X'32'), * 00567000
* DTFDI (DISK DTF TYPE X'33): * 00568000
* THE LUB IS VERIFIED TO INSURE THAT THE * 00569000
* LOGICAL UNIT HAS BEEN ASSIGNED. IF UNASSIGNED, * 00570000
* AN ERROR MESSAGE IS ISSUED. NEXT A CHECK IS * 00571000
* MADE TO SEE IF A DOSCB EXISTS FOR THE DTF FILENAME.* 00572000
* IF TWO IOAREAS ARE SPECIFIED (OUTPUT ONLY), THE * 00573000
* IOREG IS LOADED WITH THE APPROPRIATE IOAREA ADDRESS* 00574000
* IF AN INPUT FILE, A CHECK IS MADE TO VERIFY * 00575000
* EXISTENCE OF THE FILE (CALL TO DMSSTTE). * 00576000
* VARIOUS FIELDS ARE THEN INITIALIZED IN * 00577000
* THE DTF (BOTH INPUT AND OUTPUT) _ * 00578000
* TRACK CAPACITY, UPPER AND LOWER EXTENT FIELDS ETC. * 00579000
* * 00580000
* DISK OUTPUT FILES: * 00581000
* SEARCH ARGUMENT INITIALIZED X'0000000000' * 00582000
* RECORDS/TRACK INITIALIZED X'00' * 00583000
* * 00584000
* DISK INPUT FILES: * 00585000
* SEARCH ARGUMENT INITIALIZED X'0000000001' * 00586000
* IN THE CASE OF A CMS DISK. * 00587000
* SEARCH ARGUMENT INITIALIZED TO LOW EXTENT * 00588000
* IN THE CASE OF DOS DISK. * 00589000
* RECORDS/TRACK INITIALIZED TO X'01' * 00590000
* RECORDS/TRACK INITIALIZED TO X'02' - DTFCP * 00591000
* * 00592000
* DTFCP AND DTFDI FILES OTHER THAN DISK * 00593000
* WILL BE INITIALIZED IN ACCORDANCE WITH * 00594000
* THE RULES FOR THE PARTICULAR DEVICE TYPE * 00595000
* AS INDICATED ABOVE FOR TAPE AND UNIT * 00596000
* RECORD EQUIPMENT. * 00597000
* * 00598000
* 4. AFTER EACH DTF TABLE IS INITIALIZED, A CHECK IS * 00599000
* MADE TO SEE IF MORE DTFS REMAIN TO BE OPENED. * 00600000
* IF SO, PROCESSING CONTINUES AS OUTLINED IN (3) * 00601000
* ABOVE. * 00602000
* 5. WHEN ALL FILES HAVE BEEN OPENED, EXIT IS MADE BY * 00603000
* AN SVC 11 TO THE PROBLEM PROGRAM ASSUMING THERE * 00604000
* WERE NO ACBS TO OPEN. IF ACBS REMAIN TO BE OPEN, * 00605000
* AN SVC 2 IS ISSUED FOR $$BOVSAM. CONTROL RETURNS * 00606000
* TO DMSBOP AND EXIT IS MADE VIA SVC 11. * 00607000
* 6. WHEN ERRORS ARE ENCOUNTERED, AN APPROPRIATE ERROR * 00608000
* MESSAGE IS ISSUED AND EXIT IS MADE VIA SVC 6 * 00609000
* (CANCEL - ABNORMAL TERMINATION). * 00610000
* * 00611000
*. * 00612000
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00613000
PUNCH 'SPB' @VA06270 00614000
SPACE 2 00615000
DMSBOP CSECT @V305066 00616000
USING NUCON,R0 @V305066 00617000
USING DTF,R2 @V305066 00618000
USING DOSSECT,R3 @V305066 00619000
USING FREE,R9 ESTABLISH ADDRESSABILIY @V305066 00620000
USING BGCOM,R7 COMREG ADDRESSABILITY @V305066 00621000
DC CL8'$$BOPEN' @V305066 00622000
BALR R12,0 ESTABLISH ADDRESSABILITY @V305066 00623000
USING *,R12,R11 @V305066 00624000
LA R11,Q4095(R12) @VM03137 00625000
LA R11,ONE(,R11) @VM03137 00626000
LR R2,R0 PTR TO FIRST DTF/ACB ADCON @V305066 00627000
LA R0,FREEDB GET NO. DOUBLE WORDS FOR FREE @V305101 00628000
DMSFREE DWORDS=(0),TYPE=NUCLEUS,TYPCALL=BALR @V305066 00629000
LR R9,R1 ADDRESS OF FREE STORAGE @V305066 00630000
XC 0(FREELN,R9),0(R9) ZERO OUT ACQUIRED AREA @V305101 00631000
MVI SAVEFN,BLANK PROPAGATE BLANKS THROUGH @V305066 00632000
MVC SAVEFN+1(SIX),SAVEFN FIELD USED IN ERROR MSGS @VM03137 00633000
ST R2,SAVEPTR PTR FOR FIRST DTF/ACB ADCON @V305066 00634000
MVC SETMODE(SIXTEEN),CCW MOVE 2 CCWS TO FREE STRG @VM03137 00635000
LA R4,SETMODE PT TO CCW1 IN FREE STORAGE @V305066 00636000
LA R5,BUFFER PREPARE TO PLACE BUFFER @V305066 00637000
LA R6,TWO ADDRESS IN CCW @V305066 00638000
LOOP STCM R5,M7,ONE(R4) PLACE BUFFER AD IN CCW @VM03137 00639000
LA R4,EIGHT(,R4) INCREM TO NEXT CCW @VM03137 00640000
BCT R6,LOOP LOOP IF MORE CCWS @V305066 00641000
GOAHEAD L R2,SAVEPTR RESTORE PTR TO FIRST ADCON @V305066 00642000
L R2,0(,R2) DTF OR ACB ADDRESS @V305066 00643000
ISITACB CLI DTFTYPE,ACB ACB? @V305066 00644000
BE VSAMCHEK YES, GO PROCESS ACB NOW.. @V305101 00645000
CHKTYP LA R3,TYPETAB CHECK FOR SUPPORTED DTF TYPES @V305066 00646000
LA R4,TYPELAST @V305066 00647000
TYPELOOP CLC 0(ONE,R3),DTFTYPE DID WE FIND MATCH? @VM03137 00648000
BE TYPEQ MATCH @V305066 00649000
LA R3,Q11(,R3) BUMP TO NEXT ENTRY IN TABLE @VM03137 00650000
BCT R4,TYPELOOP @V305066 00651000
LA R5,DTFTYPE UNSUPPORTED DTFTYPE @V305066 00652000
B ERR88E BRANCH TO PRINT ERROR MESSAGE @V305066 00653000
TYPEQ CLI DTFTYPE,DTFCD DTFCD - PUNCH @V305066 00654000
BE TYPEFND YES, GO TO OPEN ROUTINE @V305066 00655000
CLI DTFTYPE,DTFPR DTFPR - PRINTER @V305066 00656000
BE TYPEFND YES, GO TO OPEN ROUTINE @V305066 00657000
CLI DTFTYPE,SDTYPE DTFSD @V305066 00658000
BE TYPEFND YES, GO TO OPEN ROUTINE @V305066 00659000
BAL R6,GETLUB GO GET PUB INDEX CODE @V305066 00660000
CLI 0(R5),FE UA, IGN, OR NORMAL ? @V305066 00661000
BL NORMLUB NORMAL ASSIGNMENT TO DEVICE @V305066 00662000
BH ASGNERR UA - UNASSIGNED @V305066 00663000
OI FLAGIGN,OPENIGN OPEN IGNORE @V305066 00664000
CLI DTFTYPE,THIRTY2 DTFCP DASD FILE @V305066 00665000
BE TYPEFND YES, GO TO OPEN ROUTINE @V305066 00666000
CLI DTFTYPE,THIRTY3 DTFDI DASD FILE @V305066 00667000
BE TYPEFND YES, GO TO OPEN ROUTINE @V305066 00668000
LA R6,CHMOR ADD TO SEE IF MORE FILES TO OPEN @V305066 00669000
ISIOREG CLI DTFTYPE,NOLAB NOLAB OR NONSTD LAB TAPE @V305066 00670000
BE TYPE1112 YES @V305066 00671000
CLI DTFTYPE,STD STD LABEL O/P TAPE @V305066 00672000
BE TYPE1112 YES @V305066 00673000
BR R6 RETURN @V305066 00674000
TYPE1112 TM OPENSW,INPUT INPUT FILE ? @V305066 00675000
BCR 1,R6 YES, NO NEED TO LOAD IOREG @V305066 00676000
TM FLAGIGN,SPANNED SPANNED FILE? @V305066 00677000
BCR 1,R6 YES @V305066 00678000
TM OPENSW2,IOREG IOREG PREVIOUSLY LOADED @V305066 00679000
BCR 1,R6 YES @V305066 00680000
SR R4,R4 CLEAR REGISTER 4 @V305066 00681000
IC R4,REG 2ND BYTE OF LOAD/NOP INST @V305066 00682000
SRA R4,4 CLEAR OUT X2 PART OF OPERAND @V305066 00683000
BCR 8,R6 RETURN IF RESULT R1 REG IS 0 @V305066 00684000
SH R4,CONNINE SUBTRACT 9 @V305066 00685000
BC 11,SFREG BR IF RESULT NOT NEGATIVE @V305066 00686000
LA R4,SIXTEEN(,R4) ADD DISP FOR REGS 0-B @VM03137 00687000
SFREG SLL R4,TWO MULT BY 4, 4 BYTE REGS @VM03137 00688000
LH R8,PIBPT PIB POINTER @V305066 00689000
L R8,EIGHT(,R8) PRT TO USER SAVEAREA ADD @VM03137 00690000
LA R8,SIXTEEN(,R8) POINT TO REGISTER SAVEAREA @VM03137 00691000
AR R8,R4 DISP + SAVEAREA ADDRESS @V305066 00692000
SR R4,R4 CLEAR REGISTER 4 @V305066 00693000
IC R4,IOPTR REL ADDR OF PTR TO IOAREA @V305066 00694000
L R4,DTF(R4) IOAREA ADDRESS @V305066 00695000
ST R4,0(,R8) STORE IN REG SAVEAREA @V305066 00696000
BR R6 RETURN @V305066 00697000
NORMLUB NI FLAGIGN,DF SET OFF COBOL IGN IND. @V305066 00698000
LA R6,TYPEFND ADD TO GO TO OPEN ROUTINE @V305066 00699000
B ISIOREG GO LOAD IOREG IF NECESSARY @V305066 00700000
TYPEFND L R4,0(R3) LOAD BR ADDR INTO REG @V305066 00701000
LA R4,0(R4) ZERO OUT HIGH ORDER BYTE @V305066 00702000
BR R4 GO TO APPROPRIATE DEVICE ROUTINE @V305066 00703000
EJECT 00704000
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00705000
* * 00706000
* ROUTINE TO OPEN UNIT RECORD EQUIPMENT * 00707000
* * 00708000
* * 00709000
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00710000
SPACE 2 00711000
USING DTFUNIT,R2 @V305066 00712000
* ENTER HERE IF DTFCD (DTF TYPE = X'02' - READER) 00713000
UNITREC1 TM SWITCH,RDR3525 3525 READER ? @V305066 00714000
BZ UNITREC3 NO @V305066 00715000
TM SWITCH3,ASSOC FUNC/ASSOC SPECIFIED? @V305066 00716000
BZ SETOPNBT NO, GO OPEN FILE @V305066 00717000
ERR4 BAL R6,CVTUNIT CONVERT LOGICAL UNIT @V305066 00718000
LA R15,FOUR RC = 4 @V305066 00719000
B BADOPEN BR TO PRINT MSG @V305066 00720000
* ENTER HERE IF DTFCD OR DTFPR (DTF TYPE = X'04' - PUNCH OR X'08' - 00721000
* PRINTER) 00722000
UNITREC2 TM DEVCODE,PCH3525 3525 PUNCH? @V305066 00723000
BZ UNITREC3 NO FUNC/ASSOCFLE PARMS @V305066 00724000
TM SWITCH3,ASSOC FUNC/ASSOC SPECIFIED? @V305066 00725000
BZ UNITREC3 NO, SKIP INST @V305066 00726000
B ERR4 BR TO PUT OUT MSG @VM03139 00727000
UNITREC4 TM SWITCH3,PRT3525 3525 PRINTER @V305066 00728000
BZ UNITREC3 NO @V305066 00729000
TM SWITCH3,ASSOC FUNC/ASSOC SPECIFIED? @V305066 00730000
BZ UNITREC3 NO @V305066 00731000
B ERR4 ERROR IF SPECIFIED @V305066 00732000
* ENTER HERE FOR DTFCN (DTF TYPE = X'03' - CONSOLE) 00733000
UNITREC3 TM SWITCH,TWOIO TWO IOAREAS? @V305066 00734000
BO LAINST DOES DTF HAVE INST TO LOAD IOREG @V305066 00735000
ABOVE3 BAL R6,GETLUB GO OBTAIN LUB @V305066 00736000
B CHKFE SEE IF 'IGNORE' @V305066 00737000
LAINST CLI LODIOREG,LA IS THERE INST TO LOAD IOREG @V305066 00738000
BNE ABOVE3 NO @V305066 00739000
MVC FULLWORD(4),TWENTY4(R2) MOVE IOAREA1 ADDRESS @VM03137 00740000
L R4,FULLWORD R4 CONTAINS ADDRESS OF IOAREA1 @V305066 00741000
LA R6,ONE CONSTANT @V305066 00742000
LA R5,FOUR CONSTANT @V305066 00743000
* I/O REGISTER IS LOADED WITH THE FIRST BYTE OF DATA. IF THERE IS 00744000
* A CONTROL CHAR OR VARIABLE LENGTH RECORDS, THE I/O AREA1 ADDRESS 00745000
* MUST BE ADJUSTED TO REFLECT THIS 00746000
TM SWITCH,CNTLCHAR CONTROL CHARACTER ? @V305066 00747000
BZ NOCTLCHR @V305066 00748000
SR R4,R6 ADJUST FOR CONTROL CHARACTER @V305066 00749000
NOCTLCHR TM SWITCH,VARIBL VAR LENGTH RECORDS? @V305066 00750000
BZ NOVARY @V305066 00751000
SR R4,R5 ADJUST FOR VAR LEN RECORDS @V305066 00752000
* AT THIS POINT, R4 CONTAINS THE CORRECT VALUE TO BE LOADED 00753000
* INTO THE I/OREG 00754000
* THIS VALUE WILL BE STORED INTO THE USER REG IN THE SUPERVISOR 00755000
* SAVEAREA 00756000
NOVARY L R1,ASYSREF R1 CONTAINS ADD OF COMM REG @V305066 00757000
LH R6,Q90(R1) PIB TABLE ADDRESS @VM03137 00758000
LA R5,EIGHT(R6) CALC ADDRESS OF SAVEAREA @VM03137 00759000
L R6,0(R5) SAVEAREA TO REG @VM03139 00760000
LA R6,SIXTEEN(R6) @VM03137 00761000
* R6 POINTS TO THE BEGINNING OF THE REGISTER SAVEAREA 00762000
SR R5,R5 @V305066 00763000
IC R5,LODIOREG+1 @V305066 00764000
SRL R5,FOUR GET I/O REG @VM03137 00765000
* USER REG ARE STORED STARTING WITH REG9 00766000
LA R7,NINE CONSTANT @V305066 00767000
CR R5,R7 COMPARE I/O REG TO 9 @V305066 00768000
BL LOWIORG BRANCH IF LESS @VM03141 00769000
SR R5,R7 GREATER OR EQUAL 9 BACK UP BY NINE @VA07647 00770000
B COMMON1 JOIN CODE SHORTLY BELOW. @VM03141 00771000
LOWIORG LA R5,SEVEN(R5) ADD 7 TO IOREG @VM03137 00772000
COMMON1 SLL R5,TWO MULT BY 4 TO GET PROPER DISP @VM03137 00773000
AR R5,R6 ADD SAVEAREA+DISP - LOC. OF IOREG@V305066 00774000
ST R4,0(R5) STORE IOAREA1 ADDR IN IOREG SAVE @V305066 00775000
BAL R6,GETLUB GO OBTAIN LUB @V305066 00776000
CHKFE CLI 0(R5),FE TEST FOR IGN OR UNASSIGN @V305066 00777000
BL BELOWFE BR IF NOT IGNORE @V305066 00778000
BE POST GO TO POST IGNORE BIT @V305066 00779000
ASGNERR BAL R6,CVTUNIT CONVERT LOGICAL UNIT @V305066 00780000
LA R15,EIGHT CODE=8, SYSXXX UNASSIGN OR IGNORE@V305066 00781000
B BADOPEN BRANCH TO PRINT MESSAGE @V305066 00782000
POST OI SIXTEEN(R2),TWENTY POST OPEN IGNORE BIT @VM03137 00783000
B CHMOR BYPASS OPENING THE DTF @V305066 00784000
BELOWFE NI SIXTEEN(R2),FF-OPENIGN RESET OPEN IGNORE SWITCH @VM03137 00785000
BAL R6,GETPUB GO GET PUB ENTRY @V305066 00786000
USING PUBADR,R5 @V305066 00787000
MVZ TEMP,PUBDEVT GET ZONE OF PUB DEVICE TYPE @V305066 00788000
CLI DTFTYP,CONSOLE CONSOLE? @V305066 00789000
BNE CHKPRTR NO @VM03141 00790000
CLI TEMP,FORTY DEVICE A PRINTER? @V305066 00791000
BE CHMOR YES @V305066 00792000
CLI TEMP,ZERO DEVICE A CONSOLE? @V305066 00793000
BE CHMOR YES @V305066 00794000
DEVERR BAL R6,CVTUNIT CONVERT 2 BYTE UNIT TO SYSXXX @V305066 00795000
LA R15,SEVEN INVALID DEVICE TYPE CODE IN PUB @V305066 00796000
B BADOPEN BR TO PRINT ERROR MSG @V305066 00797000
CHMOR L R2,SAVEPTR ADDR OF DTF TO BE OPEN @V305066 00798000
LA R2,FOUR(R2) POINT TO NEXT ADCON @VM03137 00799000
CLI 0(R2),ANOTHER ANY MORE FILES TO OPEN? @VA09227 00800300
BNE EXIT NO,END OF LIST @VA09227 00800600
MVI SAVEFN,BLANK PROPAGATE BLANKS THROUGH @VA04418 00802000
MVC SAVEFN+1(SIX),SAVEFN FIELD USED IN ERR. MSGS @VA04418 00803000
ST R2,SAVEPTR STORE POINTER TO NEXT ADCON @V305066 00804000
L R2,0(R2) NEXT DTF ADDR @V305066 00805000
B ISITACB GO TO OPEN NEXT FILE @V305101 00806000
CHKPRTR CLI DTFTYP,PRINTER PRINTER? @V305066 00807000
BE UCSPRT YES @V305066 00808000
CLI DTFTYP,READER DTFCD - DTFTYPE = X'02' ? @V305066 00809000
BE RDRZONE YES, CHECK PUB DEVICE FOR RDR @V305066 00810000
PCHZONE CLI TEMP,TWENTY MUST BE PUNCH DEVICE @V305066 00811000
BNE DEVERR OTHERWISE, ERROR 7 @V305066 00812000
B SETOPNBT PUNCH, GO TO SET OPEN BIT @V305066 00813000
B SETOPNBT INDICATE FILE IS OPEN @V305066 00814000
UCSPRT CLI TEMP,FORTY IS DEVICE A PRINTER? @V305066 00815000
BNE DEVERR NO, ERROR 7 @V305066 00816000
CLI FOUR(R5),UCS UNIVERSAL CHAR SET PRINTER? @VM03137 00817000
BNE SETOPNBT NO @V305066 00818000
LR R1,R2 PLACE DTF ADDRESS IN R1 @V305066 00819000
MVC TEMPSAVE,CCWADDR SAVE USER CCW ADDRESS @V305066 00820000
LA R4,SETMODE ADDRESS OF SETMODE CCW @V305066 00821000
ST R4,FULLWORD STORE THIS ADDRESS @V305066 00822000
MVC CCWADDR(THREE),FULLWORD+1 ADDR OF SETMODE CCW @VM03137 00823000
* TO CCB 00824000
MVI SETMODE,SUPPRESS SUPPRESS DATA CHECKS @V305066 00825000
TM BUFFER1+4,DATACKS WANT DATA CHECKS TO OCCUR @V305066 00826000
BZ STMODEIO DATA CHECKS CANNOT OCCUR @V305066 00827000
MVI SETMODE,DATA WANT DATA CHECKS TO OCCUR @V305066 00828000
STMODEIO SVC EXCP PERFORM SVC 0 @V305066 00829000
MVC CCWADDR(THREE),TEMPSAVE RESTORE USER CCB @VM03137 00830000
SETOPNBT OI SWITCH,HEX80 UNIT RECORD EQUIPMENT OPEN @V305066 00831000
B CHMOR GO SEE IF MORE FILES TO OPEN @VM03139 00832000
RDRZONE CLI TEMP,HEX10 READER? @V305066 00833000
BNE DEVERR NO, ERROR 7 @V305066 00834000
B SETOPNBT READER, GO SET OPEN BIT @V305066 00835000
EJECT 00836000
GETLUB L R7,ASYSREF GET ADDRESS OF BGCOM @V305066 00837000
LH R5,NICLPT NICL ADDRESS @V305066 00838000
SR R4,R4 CLEAR REGISTER R4 @V305066 00839000
IC R4,0(R5) NO. SYS LOGICAL UNITS FROM NICL @V305066 00840000
SR R5,R5 CLEAR REGISTER @V305066 00841000
CLI SIX(R2),FF DEVADDR NOT SPEC IN DTF @VM03137 00842000
BNE IC SPECIFIED @V305066 00843000
CLI DTFTYP,SDTYPE DTFSD @VM03139 00844000
BE ACCEPTFF WILL GET SYSXXX FROM DOSCB @V305066 00845000
MVC SAVEFN,FOUR(R3) MOVE DTF TYPE FOR MSG @VM03137 00846000
LA R15,EIGHT LOG. UNIT UNASSIGNED @V305066 00847000
B BADOPEN BR TO PRINT MESSAGE @V305066 00848000
ACCEPTFF BR R6 RETURN @V305066 00849000
IC IC R5,SEVEN(R2) LOG UNIT CLASS FROM DTF @VM03137 00850000
TM SIX(R2),HEX01 PROGRAMMER LOGICAL UNIT ? @VM03137 00851000
BNO DOUBLE NO, MUST BE SYSTEM UNIT @V305066 00852000
AR R5,R4 INCREM BY NO SYSTEM LUBS @V305066 00853000
DOUBLE AR R5,R5 DOUBLE VALUE IN R3 @V305066 00854000
AH R5,LUBPT ADD LUB TABLE ADDRESS @V305066 00855000
* AT THIS TIME R5 POINTS TO LUB BYTE 00856000
BR R6 RETURN TO MAINLINE @V305066 00857000
GETPUB LH R4,PUBPT PUB ADDRESS @V305066 00858000
LR R1,R5 STORE PUB POINTER @V305066 00859000
SR R5,R5 CLEAR REGISTER @V305066 00860000
IC R5,0(R1) PUB INDEX CODE @V305066 00861000
SLL R5,THREE MULTIPLY BY LENGTH OF PUB @VM03137 00862000
AR R5,R4 ADD PUB ADDRESS @V305066 00863000
* AT THIS TIME R5 POINTS TO CORRECT PUB ENTRY 00864000
BR R6 RETURN TO MAINLINE @V305066 00865000
EJECT 00866000
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00867000
* * 00868000
* ROUTINE TO OPEN TAPE DATA FILES * 00869000
* * 00870000
* * 00871000
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00872000
SPACE 2 00873000
USING DTFMT,R2 TAPE DTF ADDRESSABILITY @V305066 00874000
TAPEDATA TM MTFLAG4,PHTAB DTFPH TABLE? @V305066 00875000
BNO ASCII NO, SEE IF ASCII SPECIFIED @V305066 00876000
LA R5,TYPEMT POINT TO DTF TYPE @V305066 00877000
B ERR88E BR TO PRINT MSG @V305066 00878000
ASCII TM MTFLAG0,ASC ASCII = YES SPECIFIED @V305066 00879000
BZ PUB NO, GO ON ... @V305066 00880000
MVC SAVEFN(SEVEN),MTFN FILENAME FOR MSG @VM03137 00881000
ERR11 LA R15,ELEVEN ERROR CODE = 11 @V305066 00882000
B BADOPEN BR TO PRINT MSG @V305066 00883000
PUB BAL R6,GETPUB GET PUB ENTRY @V305066 00884000
BAL R6,CRPLIST CREATE PLIST FOR TAPEIO REQUEST @V305066 00885000
USING PUBADR,R5 ESTABLISH PUB ADDRESSABILITY @V305066 00886000
MVZ TEMP,PUBDEVT MOVE PUB DEVICE CODE TO TEMP @V305066 00887000
CLI TEMP,FIFTY DEVICE TYPE = TAPE ? @V305066 00888000
BNE DEVERR NO, ERROR @V305066 00889000
CLI PUBDEVT,TCR TAPE CARTRIDGE READER? @VM03139 00890000
BE DEVERR IF TCR, INVALID DEVICE @V305066 00891000
TM MTFLAG3,BACKWARD DRIVE DIRECTION = BACKWARD ?@V305066 00892000
BNO CHKREWND NO, SEE IF NOREWIND SPECIFIED @V305066 00893000
LA R15,NINE READ TAPE BACKWARDS NOT SUPPORTED@V305066 00894000
B TAPEMSG GO PRINT ERROR MESSAGE @V305066 00895000
CHKREWND TM MTFLAG3,NOREWIND NOREWIND SPECIFIED ? @V305066 00896000
BO LABEL YES, DO NOT REWIND @V305066 00897000
MVC FUNC,REW REWIND TAPE @V305066 00898000
BAL R6,IOROUT PERFORM I/O @V305066 00899000
LABEL TM MTFLAG3,STDLABEL STD. LABEL TAPE? @V305066 00900000
BO STDLAB YES, BR TO STD LAB ROUT @V305066 00901000
TM MTFLAG3,NONSTD NONSTD LABEL TAPE ? @V305066 00902000
BO IOCONSTD YES, BR TO NONSTD ROUTINE @V305066 00903000
* UNLABELED FILE READING IN A FORWARD DIRECTION 00904000
NOLABEL MVC FUNC,SENSE PERFORM SENSE AND SAVE SENSE INFO@V305066 00905000
BAL R6,IOROUT PERFORM I/O @V305066 00906000
BAL R6,CHKMODE TAPE MODE COMPATIBLE WITH PUB @V305066 00907000
MVC SAVESENS(ONE),BUFF2 SAVE SENSE INFORMATION @VM03137 00908000
TM SAVESENS,HEX08 TAPE AT LOAD POINT ? @V305066 00909000
BO READIT YES, GO TO READ @V305066 00910000
TM MTFLAG4,FILETYPE INPUT FILE ? @V305066 00911000
BZ SVNTRACK IF NOT, BR AROUND READ AND BACKSP@V305066 00912000
READIT EQU * @VA13166 00913000
TM MTFLAG1,MTINP INPUT @VA13166 00913100
BZ ISLOADPT BRANCH IF OUTPUT @VA13166 00913200
MVC FUNC,READ READ @VA13166 00913300
LA R3,INOUT IF TM ON NEXT IO, GO HERE @V305066 00914000
BAL R6,IO PERFORM IO @V305066 00915000
MVC FUNC,REW REWIND TAPE @V305066 00918000
TM SAVESENS,HEX08 TAPE AT LOADPT BEFORE READING @V305066 00919000
BO SKPBSR YES @V305066 00920000
MVC FUNC,BSR BACKSPACE ONE RECORD @V305066 00921000
SKPBSR BAL R6,IOROUT CALL SUBROUTINE @VM03141 00922000
ISITOPEN TM MTFLAG4,MTOPEN IS FILE OPEN ? @V305066 00923000
BZ SETOPEN NO @V305066 00924000
OI MTFLAG4,ENDFILE SET EOF SWITCH ON @V305066 00925000
NI Q88(R7),FB RESET FIRST TIME SWITCH @VM03137 00926000
SVC SVC11 RETURN TO PROBLEM PROGRAM @V305066 00927000
SETOPEN OI MTFLAG4,MTOPEN INDICATE FILE IS OPEN @V305066 00928000
B CHMOR ANYMORE FILES TO OPEN ? @V305066 00929000
CRPLIST MVC PLIST(EIGHT),TAPEIO PREPARE PLIST FOR TAPEIO @VM03137 00930000
MVC DEVID(THREE),TAPEIO MOVE 'TAP' TO PLIST @VM03137 00931000
MVC DEVID+3(ONE),PUBCUU+1 SECOND DIGIT OF CUU IN PUB@VM03137 00932000
OI DEVID+3,CHAR0 CHANGE SEC DIGIT CUU TO CHAR @V305066 00933000
LA R3,BUFFER BUFFER ADDRESS @V305066 00934000
ST R3,PMODE STORE BUFFER ADDRESS IN PLIST @V305066 00935000
MVC BUFFLEN,EIGHTY BUFFER LEN = 80 @V305066 00936000
MVC PMODE,PUBTAPM1 CMS TAPE MODE TO PLIST @V305066 00937000
BR R6 RETURN TO CALLER. @VM03141 00938000
ISLOADPT TM SAVESENS,HEX08 TAPE AT LOAD POINT? @V305066 00939000
BZ NOTLDPT NO @V305066 00940000
DOREWIND MVC FUNC,REW REWIND TAPE @V305066 00941000
DOIO BAL R6,IOROUT PERFORM I/O @V305066 00942000
SVNTRACK TM SIX(R5),TRACK7 SEVEN TRACK TAPE ? @VM03137 00943000
BO SEV YES @V305066 00944000
MVC FUNC,WRITE WRITE ON TAPE TO SET TAPE MODE @V305066 00945000
BAL R6,IOROUT PERFORM I/O @V305066 00946000
BAL R6,BKSPACE PERFORM I/O @V305066 00947000
SEV TM MTFLAG3,TMOPT TAPE MARK OPTION SPECIFIED ? @V305066 00948000
BO ISITOPEN GO TO OPEN FILE @V305066 00949000
MVC FUNC,WTM WRITE TAPE MARK @V305066 00950000
BAL R6,IOROUT PERFORM I/O @V305066 00951000
B ISITOPEN GO TO OPEN FILE @V305066 00952000
NOTLDPT MVC FUNC,BSR BACKSPACE @V305066 00953000
B DOIO GO TO PERFORM BACKSPACE @V305066 00954000
INOUT TM MTFLAG1,MTINP INPUT FILE ? @V305066 00955000
BZ ISLOADPT NO @V305066 00956000
B ISITOPEN GO SEE IF FILE IS OPEN @VM03141 00957000
BKSPACE MVC FUNC,BSR BAKSPACE @V305066 00958000
SPACE 00959000
* SUBROUTINE TO CALL TAPEIO (R6 = RETURN-REGISTER): 00960000
IOROUT EQU * @V305066 00961000
LA R1,PLIST PREPARE TAPIO REQUEST @V305066 00962000
SVC SVC202 ISSUE SVC @VM03137 00963000
DC AL4(BADTAPIO) @V305066 00964000
BR R6 @V305066 00965000
BADTAPIO EQU * @V305066 00966000
CH R15,H8 WLR LONG? @VA03457 00967000
BNL ERRLONG TELL THEM @VA03457 00968000
CH R15,NOTATT TAPE NOT ATTACHED @V305066 00969000
BE ERR113S YES, ERROR @V305066 00970000
BH ERR43E TAPE FILE PROTECTED @V305066 00971000
CH R15,TM EOF OR END OF TAPE @V305066 00972000
BE ERR58E YES, ERROR @V305066 00973000
ERRLONG LA R15,SEVTEEN UNEXPECTED TAPE ERROR @VA03457 00974000
TAPEMSG MVC SAVEFN(FOUR),DEVID MOVE DEVID FOR ERROR MSG @VM03137 00975000
B BADOPEN BR TO PRINT ERROR MESSAGE @V305066 00976000
EJECT 00977000
IO LA R1,PLIST POINTER TO PLIST @V305066 00978000
SVC SVC202 IO REQUEST @VM03137 00979000
DC AL4(TAPEMARK) ERROR ADDRESS @V305066 00980000
BR R6 RETURN IF SUCCESSFUL IO @V305066 00981000
TAPEMARK CH R15,TM TAPE MARK ENCOUNTERED? @V305066 00982000
BCR 8,R3 RETURN IF TM ENCOUNTERED @V305066 00983000
B BADTAPIO OTHER TAPE ERRORS @V305066 00984000
EJECT 00985000
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00986000
* THIS ROUTINE PROCESSES NONSTD LABELED TAPES * 00987000
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00988000
SPACE 2 00989000
IOCONSTD TM MTFLAG4,FILETYPE I/P TAPE? @V305066 00990000
BNO NOLABEL OUTPUT, TREAT AS NOLABEL @V305066 00991000
TM MTFLAG3,USERENTY USER ENTRY? @V305066 00992000
BZ IOCOTMCK NO @V305066 00993000
* EXIT TO PROCESS USER LABELS 00994000
NI MTFLAG4,FF-UTILITY TURN OFF UTILITIES BIT @VM03137 00995000
BAL R6,USER GO TO USER LABEL ROUTINE @V305066 00996000
TM MTFLAG4,UTILITY IS UTILITIES BIT ON ? @V305066 00997000
BO ISITOPEN YES, SKIP CHECK FOR TM @V305066 00998000
IOCOTMCK MVC FUNC,FSR SKIP 1 BLOCK @V305066 00999000
LA R3,ISITOPEN IF TM ON NEXT IO, GO HERE @V305066 01000000
BAL R6,IO PERFORM IO @V305066 01001000
TM MTFLAG3,USERENTY USER ENTRY? @V305066 01002000
BZ IOCOTMCK NO @V305066 01003000
MVC FUNC,BSR BACKSPACE 1 BLOCK @V305066 01004000
BAL R6,IOROUT PERFORM IO @V305066 01005000
B ISITOPEN GO SEE IF FILE IS OPEN @V305066 01006000
IOCOULAB TM MTFLAG3,NONSTD NONSTD LABELS @V305066 01007000
BZ SEV NO @V305066 01008000
TM MTFLAG3,USERENTY USER ENTRY? @V305066 01009000
BNO SEV NO @V305066 01010000
BAL R6,USER GO TO USER @V305066 01011000
B SEV BRANCH. @VM03141 01012000
USER L R14,MTFLAG3 USER LABEL ADDRESS @V305066 01013000
LA R0,O CHARACTER 'O' IN R0 @V305066 01014000
LH R1,UNITMT LOGICAL UNIT @V305066 01015000
STM R2,R3,TEMPSAVE TEMP STORE R2,R3 @V305066 01016000
SVC SVC8 GO TEMP. TO USER ROUTINE @V305066 01017000
LM R2,R3,TEMPSAVE RESTORE REGISTERS ON RETURN @V305066 01018000
BR R6 RETURN TO CALLER. @VM03141 01019000
EJECT 01020000
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 01021000
* THIS ROUTINE PROCESSES STD LABEL TAPES FOR INPUT * 01022000
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 01023000
SPACE 2 01024000
STDLAB TM MTFLAG1,MTINP INPUT FILE ? @V305066 01025000
BZ NOLABEL NO, STDLAB O/P TREAT AS NOLAB @V305066 01026000
MVC FUNC,SENSE PREPARE TO DO SENSE @V305066 01027000
BAL R6,IOROUT PERFORM IO @V305066 01028000
TM BUFF2,LOADPT IF NOT AT LOADPT @V305066 01029000
MVC FUNC,READ PREPARE FOR READ @V305066 01030000
BZ READTAPE GO HERE @V305066 01031000
* VOLUME LABEL CHECKING 01032000
ATLOADPT LA R3,INOUT IF TM ON NEXT IO, TREAT NOLABEL @V305066 01033000
BAL R6,IO PERFORM IO @V305066 01034000
CLC BUFFER(FOUR),VOL1 VOL1 LABEL READ @VM03137 01035000
BNE ERR1 FILABL=STD BUT NO 'VOL1' @V305066 01036000
TM MTFLAG4,MTOPEN FILE ALREADY OPEN? @V305066 01037000
BO READTAPE YES @V305066 01038000
* HEADER LABEL CHECKING 01039000
READTAPE BAL R6,IOROUT PERFORM IO @V305066 01040000
CLC BUFFER(FOUR),VOL1 VOL1 LABEL READ? @VM03137 01041000
BE READTAPE YES @V305066 01042000
CLC BUFFER(THREE),UVL UVL LABEL READ @VM03137 01043000
BE READTAPE YES @V305066 01044000
CLC BUFFER(FOUR),HDR1 HEADER LABEL READ @VM03137 01045000
BNE ERR1 FILABL=STD BUT NO 'HDR1' @V305066 01046000
TM MTFLAG3,USERENTY USER ENTRY? @V305066 01047000
BZ SPACEFWD NO @V305066 01048000
READLABL LA R3,RESET IF TM ON NEXT IO, GO HERE @V305066 01049000
BAL R6,IO PERFORM IO @V305066 01050000
CLC BUFFER(THREE),HDR1 HDR LABEL READ @VM03137 01051000
BE READLABL READ AGAIN IF SO @V305066 01052000
* USER LABEEL CHECKING ROUTINE 01053000
LA R0,O CHARACTER 'O' IN R0 @V305066 01054000
LA R1,BUFFER BUFFER ADDRESS @V305066 01055000
STM R2,R3,TEMPSAVE STORE REGS TEMPORARILY @V305066 01056000
SVC SVC8 RETURN TEMP TO PROB PROG @V305066 01057000
LM R2,R3,TEMPSAVE RESTORE REGS ON RETURN @V305066 01058000
LTR R1,R1 IF USER IS NOT FINISHED, @V305066 01059000
BC 7,READLABL GO HERE @V305066 01060000
SPACEFWD MVC FUNC,FSF FORWARD SPACE PAST TM @V305066 01061000
BAL R6,IOROUT PERFORM IO @V305066 01062000
RESET XC DTFMT+40(FOUR),DTFMT+40 ZERO BLOCK COUNT @VM03137 01063000
TM MTFLAG4,MTOPEN FILE ALREADY OPEN @V305066 01064000
BZ SETOPEN NO @V305066 01065000
OI MTFLAG4,ENDFILE SET EOF BIT ON @VA04418 01066000
LR R1,R9 POINT TO FREE AREA @VA04418 01067000
BAL R6,FREESTOR RELEASE ACQUIRED STORAGE @VA04418 01068000
LH R14,PIBPT PIB ADDRESS @V305066 01069000
L R14,EIGHT(,R14) GET SAVEAREA OF PP @VM03188 01070000
MVC 40(FOUR,R14),MTFLAG0 REG15 HAS MODULE ADDRESS @VM03137 01071000
SVC SVC11 RETURN TO PROBLEM PROGRAM @V305066 01072000
ERR1 MVC SAVEFN(SEVEN),MTFN FILENAME FOR MSG @VM03137 01073000
LA R15,TWELVE ERROR CODE = 12 @V305066 01074000
B BADOPEN BRANCH. @VM03141 01075000
EJECT 01076000
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 01077000
* THE FOLLOWING ROUTINE VERIFIES THAT THE CHARACTERISTICS OF * 01078000
* THE TAPE DRIVE AGREE WITH WHAT HAS BEEN SPECIFIED IN THE * 01079000
* PUB ENTRY BY THE ASSGN COMMAND. IF THE TAPE DRIVE IS 7TRACK, * 01080000
* THE 7TRACK INDICATOR IN THE PUB ENTRY MUST BE PRESENT. * 01081000
* IF THE TAPE DRIVE IS 9TRACK, THE FOLLOWING CHECKS ARE * 01082000
* PERFORMED: * 01083000
* * 01084000
* 1. IF 2400 SERIES TAPE DRIVE (6 SENSE BYTES READ BY SENSE * 01085000
* OPERATION), THE PUB DENSITY MUST BE EITHER 800 0R 1600 * 01086000
* BPI. * 01087000
* * 01088000
* 2. IF 3420 OR 3803 SERIES TAPE DRIVE (24 SENSE BYTES READ * 01089000
* BY SENSE OPERATION), AND INPUT FILE, THE PUB DENSITY * 01090000
* MUST AGREE WITH THE TAPE DRIVE. * 01091000
* * 01092000
* A. IF MODELS 4,6, OR 8, DENSITY MUST BE 1600 BPI * 01093000
* (C0 DOS MODE IN PUB) OR 6250 BPI (D0 DOS MODE IN * 01094000
* PUB) DEPENDING UPON WHAT IS SPECIFIED IN THE SENSE* 01095000
* INFORMATION. * 01096000
* * 01097000
* B. IF MODELS 3,5, OR 7, DENSITY MUST BE 1600 (C0 DOS * 01098000
* MODE IN PUB) OR 800 BPI (C0 DOS MODE IN PUB IF * 01099000
* SINGLE DENSITY DRIVE OR C8 DOS MODE IF DUAL * 01100000
* DENSITY DRIVE) DEPENDING UPON WHAT IS SPECIFIED IN* 01101000
* THE SENSE INFORMATION. * 01102000
* * 01103000
* 4. IF 3420 OR 3803 SERIES TAPE DRIVE AND OUTPUT FILE, * 01104000
* AND DUAL DENSITY BIT IS ON IN THE SENSE INFORMATION, * 01105000
* DENSITY MUST BE ONE OF THE APPROPRIATE DENSITIES * 01106000
* ASSOCIATED WITH THE MODEL TYPES. * 01107000
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 01108000
SPACE 2 01109000
CHKMODE EQU * @V305066 01110000
TM PUBTAP7,TRACK7 PUB ENTRY FOR 7TRACK ? @V305066 01111000
BO TRK7 YES, TAPE DRIVE MUST BE 7TRK @V305066 01112000
* NINE TRACK VERIFICATION FOLLOWS 01113000
TM BUFF2,TAP7 DOES SENSE INFOR IND 7TRK @VM03139 01114000
BNO PUBMODE IF NOT 7TRK, VERIFY DENSITY DATA @V305066 01115000
INCOMP LA R15,THIRTEEN PUB INCOMPATIBLE WITH TAPE DRIVE @V305066 01116000
B TAPEMSG GO TO PRINT TAPE ERROR MESSAGE @V305066 01117000
* TAPE DATA FILES 01118000
PUBMODE CLI PUBTAPM2,DEN ANY DEN PARM WHEN ASSIGNED @V305066 01119000
BNE CHK2400 YES, VERIFY SENSE AND PUB @V305066 01120000
BR R6 DON'T COMPARE, JUST CONTINUE @V305066 01121000
CHK2400 LA R4,SIX 6 SENSE BYTES FOR 2400 UNIT @V305066 01122000
C R4,BYTES COMP NO. SENSE BYTES READ TO 6 @V305066 01123000
BL CHK3420 IF MORE THAN 6, MUST BE 3420 @V305066 01124000
DT3411 TM BUFF4,BPI1600 @VA14961 01125000
BNO PUB800 NO, SEE IF PUB INDICATES 800 BPI @V305066 01126000
CLI PUBTAPM2,P1600 1600 BPI DEN IN PUB @V305066 01127000
BNE CHKC8 IF DUAL DENSITY, COULD BE 800 @V305066 01128000
BR R6 1600 BPI @V305066 01129000
PUB800 CLI PUBTAPM2,SING800 SENSE-800, C0 IN PUB SINGLE @V305066 01130000
BNE CHKC8 NOT 800 BPI SINGLE DENSITY @V305066 01131000
BR R6 @V305066 01132000
CHKC8 CLI PUBTAPM2,DUAL800 800 BPI DUAL DENSITY @V305066 01133000
BNE INCOMP IF 2400, EITHER C0 OR C8 @V305066 01134000
BR R6 RETURN TO CALLER. @VM03141 01135000
CHK3420 LA R4,NINE @VA14961 01136250
C R4,BYTES D/T3410/3411? @VA14961 01136500
BE DT3411 BR IF YES @VA14961 01136750
BO MOD468 3420 MODEL 8 @V305066 01137000
TM BUFF7,MODEL6 3420 MODEL 6 @V305066 01138000
BO MOD468 3420 MODEL 6 @V305066 01139000
TM BUFF7,MODEL4 3420 MODEL 4 @V305066 01140000
BO MOD468 3420 MODEL 4 @V305066 01141000
TM BUFF7,MODEL7 3420 MODEL 7 @V305066 01142000
BO MOD357 3420 MODEL 7 @V305066 01143000
TM BUFF7,MODEL5 3420 MODEL 5 @V305066 01144000
BO MOD357 3420 MODEL 5 @V305066 01145000
TM BUFF7,MODEL3 3420 MODEL 3 @V305066 01146000
BO MOD357 3420 MODEL 3 @V305066 01147000
B BADMODEL IF NONE OF THE ABOVE - BAD MODEL @V305066 01148000
MOD468 MVI MOD468SW,ON IND. MODELS 4, 6, OR 8 @V305066 01149000
TM BUFF7,BPI6250 CHK TAPE DEN FROM SENSE INFO@V305066 01150000
BO PUB6250 6250 BPI - CHECK PUB @V305066 01151000
B PUB1600 1600 BPI - CHECK PUB @V305066 01152000
MOD357 MVI MOD357SW,ON IND. MODELS 3, 5, OR 7 @V305066 01153000
TM BUFF7,BPI800 CHK TAPE DENS FROM SENSE @V305066 01154000
BO PUB800A 800 BPI - CHECK PUB @V305066 01155000
B PUB1600 1600 BPI - CHECK PUB @V305066 01156000
PUB800A TM BUFF7,DUAL DUAL DEN DRIVE @V305066 01157000
BO DUALDEN YES @V305066 01158000
CLI PUBTAPM2,SING800 SENSE 800, C0 800 SING. @V305066 01159000
BNE INCOMP ERROR, NOT DUAL DENSITY @V305066 01160000
BR R6 RETURN TO MAINLINE @V305066 01161000
DUALDEN TM MTFLAG1,MTINP INPUT FILE @V305066 01162000
BO ISIT800 DENSITY = 800 @V305066 01163000
CLI PUBTAPM2,DUAL800 800 DUAL DENSITY @V305066 01164000
BNE CHK1600 NO, THEN IS IT 1600 @V305066 01165000
BR R6 RETURN TO CALLER. @VM03141 01166000
CHK1600 CLI PUBTAPM2,P1600 1600 BPI @V305066 01167000
BNE INCOMP ERROR IF NEITHER 800 0R 1600 @V305066 01168000
BR R6 RETURN TO CALLER. @VM03141 01169000
ISIT800 CLI PUBTAPM2,DUAL800 800 DUAL DENSITY @V305066 01170000
BNE INCOMP NO, ERROR @V305066 01171000
BR R6 RETURN TO CALLER. @VM03141 01172000
BADMODEL LA R15,FOURTEEN INVALID TAPE MODEL NUMBER @V305066 01173000
B TAPEMSG GO TO PRINT TAPE ERROR MESSAGE @V305066 01174000
PUB6250 CLI PUBTAPM2,DEN6250 6250 BPI IN PUB @V305066 01175000
BNE IPOP2 NO @V305066 01176000
BR R6 RETURN TO CALLER. @VM03141 01177000
IPOP2 CLI TYPEMT,MTWORK WORKFILE? @V305066 01178000
BE IPOP2A ELIM INP CHK, OPEN WORK FOR O/P @V305066 01179000
TM MTFLAG1,MTINP INPUT FILE ? @V305066 01180000
BO INCOMP YES, MUST BE SPECIFIC DENSITY @V305066 01181000
IPOP2A TM BUFF7,DUAL DUAL DEN DRIVE @V305066 01182000
BNO INCOMP NO, MUST BE SPECIFIC DENSITY @V305066 01183000
CLI PUBTAPM2,P1600 1600 BPI @V305066 01184000
BNE INCOMP NO, ERROR @V305066 01185000
BR R6 @V305066 01186000
IPOP1 CLI TYPEMT,MTWORK TAPE WORKFILE @V305066 01187000
BE IPOP1A ELIM INP CHK, OPEN WORK FOR O/P @V305066 01188000
TM MTFLAG1,MTINP INPUT FILE ? @V305066 01189000
BO INCOMP YES, MUST BE SPECIFIC DENSITY @V305066 01190000
IPOP1A CLI MOD468SW,ON 3420 MODEL 4, 6, OR 8 @V305066 01191000
BE CHKDUAL YES, GO LOOK FOR DUAL DENSITY @V305066 01192000
CLI MOD357SW,ON 3420 MODEL 3, 5, OR 7 @V305066 01193000
BE CHKDUAL2 YES, GO LOOK FOR DUAL DENSITY @V305066 01194000
B INCOMP ERROR @V305066 01195000
CHKDUAL TM BUFF7,DUAL DUAL DENSITY DRIVE @V305066 01196000
BNO INCOMP NO @V305066 01197000
CLI PUBTAPM2,DEN6250 6250 BPI @V305066 01198000
BNE INCOMP NO, ERROR @V305066 01199000
BR R6 RETURN TO CALLER. @VM03141 01200000
CHKDUAL2 TM BUFF7,DUAL DUAL DENSITY DRIVE @V305066 01201000
BNO INCOMP NO, ERROR @V305066 01202000
CLI PUBTAPM2,SING800 800 BPI SINGLE DENSITY @V305066 01203000
BNE CHKC8A NO, SEE IF 800 DUAL DENSITY @V305066 01204000
BR R6 RETURN TO CALLER. @VM03141 01205000
CHKC8A CLI PUBTAPM2,DUAL800 800 BPI DUAL DEN @V305066 01206000
BNE INCOMP NO, ERROR @V305066 01207000
BR R6 RETURN TO CALLER. @VM03141 01208000
PUB1600 CLI PUBTAPM2,P1600 1600 BPI @V305066 01209000
BNE IPOP1 CHECK FOR DUAL DENSITY, IF O/P @V305066 01210000
BR R6 RETURN TO CALLER. @VM03141 01211000
TRK7 TM BUFF2,SEVTRK SEVEN TRACK @V305066 01212000
BNO INCOMP NO, INCOMPATIBLE @V305066 01213000
BR R6 RETURN TO CALLER. @VM03141 01214000
EJECT 01215000
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 01216000
* * 01217000
* ROUTINE TO OPEN TAPE WORK FILES * 01218000
* * 01219000
* * 01220000
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 01221000
SPACE 2 01222000
TAPEWK EQU * OPEN TAPE WORK FILES: @VM03141 01223000
BAL R6,GETPUB LOCATE PUB ENTRY @V305066 01224000
MVZ TEMP,PUBDEVT MOVE PUB DEVICE CODE TO TEMP @V305066 01225000
CLI TEMP,FIFTY DEVICE = TAPE ? @V305066 01226000
BNE DEVERR NO, ERROR @V305066 01227000
CLI PUBDEVT,TCR TAPE CARTRIDGE READER @V305066 01228000
BE DEVERR IF TCR - INVALID DEVICE @V305066 01229000
BOMT06 BAL R6,CRPLIST CREATE PLIST FOR TAPEIO REQUEST @V305066 01230000
TM MTFLAG1,WKNORWD NOREWIND SPECIFIED ? @V305066 01231000
BO NREWIND YES, SKIP REWIND INSTR. @V305066 01232000
YESREWND EQU * @V305066 01233000
MVC FUNC,REW REWIND @V305066 01234000
BAL R6,IOROUT PERFORM I/O @V305066 01235000
NREWIND MVC FUNC,SENSE SENSE @V305066 01236000
BAL R6,IOROUT PERFORM I/O @V305066 01237000
BAL R6,CHKMODE SENSE INFO COMPATIBLE WITH PUB @V305066 01238000
TM BUFF2,HEX08 TAPE AT LOAD POINT? @V305066 01239000
BZ CONT NO @V305066 01240000
TM SIX(R5),TRACK7 7-TRACK TAPE ? @VM03137 01241000
BO CONT YES @V305066 01242000
******* 9-TRACK TAPE PROCESSING 01243000
MVC FUNC,READ READ @V305066 01244000
LA R3,SENSEOP IF TM ON NEXT IO, GO HERE @V305066 01245000
BAL R6,IO PERFORM IO @V305066 01246000
SENSEOP MVC FUNC,SENSE SENSE @V305066 01247000
BAL R6,IOROUT PERFORM I/O @V305066 01248000
MVC FUNC,BSR BACKSPACE RECORD @V305066 01249000
LA R3,DETDEN IF TM ON NEXT IO, GO HERE @V305066 01250000
BAL R6,IO PERFORM IO @V305066 01251000
***** X'04' IN BUFFER + 3 INDICATES 1600 BPI (ON) OR 800 BPI (OFF) 01252000
***** X'08' IN PUB + 5 INDICATES 800 BPI ON DUAL DENSITY DRIVE 01253000
DETDEN TM BUFF4,HEX04 1600 BPI @V305066 01254000
BZ VOL800 NO, MUST BE 800 @V305066 01255000
TM PUBTAPM2,HEX08 DUAL DENSITY DRIVE ? @V305066 01256000
BZ CONT NO @V305066 01257000
B NVOLON BRANCH. @VM03141 01258000
VOL800 TM PUBTAPM2,HEX08 DUAL DENSITY DRIVE @V305066 01259000
BO CONT YES @V305066 01260000
NVOLON OI MTFLAG0,NEWVOL TURN NEW VOL SW ON @V305066 01261000
CONT MVC FUNC,READ READ @V305066 01262000
LA R3,CHMOR IF TM ON NEXT IO, GO HERE @V305066 01263000
BAL R6,IO PERFORM IO @V305066 01264000
CLC BUFFER(FOUR),VOL1 VOL1 LABEL @VM03137 01265000
BNE BSPREC NO, BSR AND WTM @V305066 01266000
LA R3,REWWTM GO HERE IF TM ON NEXT IO @V305066 01267000
SPACE 2 01268000
* UNDER DOS/VS, IF NO HDR1 IS ENCOUNTERED OR IF HDR1 RECORD DOES 01269000
* NOT CONTAIN BLANKS OR ZEROS, DOS WRITES THE HDR1 LABEL AND WRITES 01270000
* A TAPEMARK. SINCE CMSDOS DOES NOT SUPPORT WRITING STANDARD LABEL 01271000
* TAPES, WHEN THIS CONDITION IS ENCOUNTERED, THE TAPE WILL BE 01272000
* REWOUND AND A TAPEMARK WRITTEN. THIS MUST BE AN OUTPUT FILE. 01273000
SPACE 2 01274000
RDAGAIN BAL R6,IO READ NEXT RECORD @V305066 01275000
CLC BUFFER(FOUR),VOL1 ANOTHER VOL1 ENCOUNTERED @VM03137 01276000
BE RDAGAIN YES, SKIP ALL VOL1 LABELS @V305066 01277000
CLC BUFFER(FOUR),HDR1 HDR1 LABEL @VM03137 01278000
BNE REWWTM REWIND AND WRITE TM @V305066 01279000
CLI BUFFER+4,HDR00 ZEROS IN HDR RECORD @V305066 01280000
BNE ISBLANK NO, CHECK FOR BLANKS @V305066 01281000
CLC BUFFER+4(Q75),BUFFER+5 ZEROS ? @VM03137 01282000
BE SKIP YES, NO EXPIRATION DATE @V305066 01283000
ISBLANK CLC BUFFER+4(Q76),BLANKS HDR RECORD CONTAIN BLANKS @VM03137 01284000
BNE REWWTM NO, MUST CONTAIN EXP DATE @V305066 01285000
SKIP LA R3,CHMOR GO HERE IF TM ON NEXT IO @V305066 01286000
BAL R6,IO PERFORM READ @V305066 01287000
B CHMOR FINISHED WITH THIS DTF @V305066 01288000
REWWTM MVC FUNC,REW REWIND TAPE @V305066 01289000
BAL R6,IOROUT PERFORM REWIND IO @V305066 01290000
MVC FUNC,WTM WRITE TM @V305066 01291000
BAL R6,IOROUT PERFORM WRITE TM IO @V305066 01292000
B CHMOR FINISHED OPENING DTF @V305066 01293000
BSPREC MVC FUNC,BSR BACKSPACE ONE RECORD @V305066 01294000
BAL R6,IOROUT PERFORM I/O @V305066 01295000
MVC FUNC,WTM WRITE TAPE MARK @V305066 01296000
BAL R6,IOROUT PERFORM I/O @V305066 01297000
B CHMOR ANY MORE FILES TO OPEN ? @V305066 01298000
EJECT 01299000
USING DTFSD,R2 ESTABLISH ADDRESSABILITY @V305066 01300000
USING DOSSECT,R3 @V305066 01301000
DISK EQU * PROCESSING FOR SEQ.DISK FILES @V305066 01302000
BAL R6,GETDOSCB FIND MATCHING DOSCB @V305066 01303000
CLI SIX(R2),FF DEVADDR MISSING FROM DTF? @VM03137 01304000
BE CHECK1 YES, SEE IF SYSXXX IN DOSCB @V305066 01305000
CLC DOSYSXXX(TWO),UNITSD DTB SYSXXX = DOSCB SYSXXX? @VM03137 01306000
BNE CHECK1 NO, DOSCB SYSXXX OVERRIDES @V305066 01307000
BAL R6,GETLUB SEE IF SYSXXX ASSIGNED @V305066 01308000
CHKASSGN CLI 0(R5),FE LOG UNIT ASSIGNED @V305066 01309000
BH ASGNERR ERROR IF UNASSIGNED @V305066 01310000
MVC SAVEFN(SEVEN),FILESD MOVE DISK FN TO SAVEFN @VA04418 01311000
TM SDFLAG1,SDWORK DTFSD WORK FILE? @V305066 01312000
BO PUB3 DO NOT LOAD IOREG @V305066 01313000
TM SDFLAG1,INPSD INPUT FILE? @V305066 01314000
BO PUB3 DO NOT LOAD IOREG @V305066 01315000
SR R4,R4 CLEAR REGISTER 4 @V305066 01316000
IC R4,IOREGSD+1 2ND BYTE OF LOAD/NOP INST @V305066 01317000
SRA R4,FOUR CLEAR X2 PART OF OPERAND @VM03137 01318000
BC 8,PUB3 DO NOT LOAD IOREG @V305066 01319000
SH R4,CONNINE SUBTRACE 9 FROM REG NO. @V305066 01320000
BC 11,SFREG2 BR IF RESULT IF NOT NEG. @V305066 01321000
LA R4,SIXTEEN(,R4) ADD DISP FOR REG 0-8 @VM03137 01322000
SFREG2 SLL R4,TWO MULT BY 4, 4 BYTES PER REG @VM03137 01323000
LH R8,PIBPT PIB POINTER @V305066 01324000
L R8,EIGHT(,R8) PTR TO SAVEAREA ADD @VM03137 01325000
LA R8,SIXTEEN(,R8) POINT TO REG SAVEAREA @VM03137 01326000
AR R8,R4 DISP + SAVEAREA ADDRESS @V305066 01327000
SR R4,R4 CLEAR REGISTER @V305066 01328000
IC R4,IOREGSD+3 RLTV ADD OF PTR TO IOAREA @V305066 01329000
L R4,DTFSD(R4) IOAREA ADDRESS @V305066 01330000
ST R4,0(,R8) STORE IN REGISTER SAVEAREA @V305066 01331000
PUB3 CLI 0(R5),FE LOG UNIT ASSIGNED 'IGN' @V305066 01332000
BE POSTSD YES, POST IGNORE BIT IN DTF @V305066 01333000
NI SIXTEEN(R2),FF-OPENIGN RESET OPEN IGN BIT @VM03137 01334000
BAL R6,GETPUB GET PUB ENTRY @V305066 01335000
USING PUBADR,R5 PUB ADDRESSABILITY @V305066 01336000
MVZ TEMP(ONE),PUBDEVT ZONE OF PUB DEVICE CODE @VM03137 01337000
CLI TEMP,SIXTY DISK DEVICE TYPE @V305066 01338000
BNE DISKERR NO @V305066 01339000
TM SDFLAG1,OPENSD FILE ALREADY OPEN ? @VA04643 01340000
BO SKIPVER YES, SKIP DEVTYPE CHECK @VA04643 01341000
BAL R6,VERIFY VER ADT @V305066 01342000
SKIPVER NI SDFLAG0,FF-TRKHOLD TRK HOLD OPT NOT ALLOWED @VA04643 01343000
TM SDFLAG1,SDWORK WORK FILE ? @V305066 01344000
BO WORK YES @V305066 01345000
TM SDFLAG1,INPSD INPUT FILE ? @V305066 01346000
BO OPEN YES, SEE IF FILE ALREADY OPEN @V305066 01347000
CHKCNTRL TM SDFLAG3,CNTRLSD CONTROL = YES SPECIFIED ? @V305066 01348000
BNO GO1 NO @V305066 01349000
TM SDFLAG0,SPANSD SPANNED PROCESSING @V305066 01350000
BO SPAN YES @V305066 01351000
TM SDFLAG3,FIXSD FIXED LENGTH RECORDS ? @V305066 01352000
BO FIXED YES @V305066 01353000
TM SDFLAG1,INPSD VAR OR UNDEF - IS IT INPUT ? @V305066 01354000
BNO UNDEFOUT NO, OUTPUT @V305066 01355000
CLI CCWB,THIRTY1 SEARCH ID EQ CCW OPCODE = X'31' @V305066 01356000
BE UPDYES IMPLIES UPDATE=YES ON DTF @V305066 01357000
B DOS2 VAR OR UNDEF, INP, NO UPDATE @V305066 01358000
UPDYES MVC DOS6SD,CCBAD VAR OR UNDEF, INP, UPDATE @V305066 01359000
B GO1 CONTINUE PROCESSING @V305066 01360000
UNDEFOUT TM SDFLAG3,UNDEFOP UNDEF O/P FILE ? @V305066 01361000
BO UNDEF YES { @V305066 01362000
B BOTH VAR, OUTPUT, CONTROL @V305066 01363000
UNDEF MVC DOS7SD,CCBAD UNDEF, OUTPUT,CONTROL @V305066 01364000
B GO1 CONTINUE PROCESSING @VM03141 01365000
FIXED EQU * STORE DOSCB ADD IN ALL DTF CCBS @V305066 01366000
TM SDFLAG1,INPSD FIXED INPUT FILE ? @V305066 01367000
BO FIXINP YES @V305066 01368000
DOS3 MVC DOS3SD,CCBAD OTHERWISE FIXED OUTPUT FILE @V305066 01369000
B GO1 CONTINUE PROCESSING @V305066 01370000
FIXINP TM SDFLAG1,SDBLOCK BLOCKED FILE ? @V305066 01371000
BNO GO1 NO @V305066 01372000
CLI CCWA,NINETY2 READ COUNT CCW OPCODE = X'92' @V305066 01373000
BE CHKCCWB IMPLIES TRUNCS=YES ON DTF @V305066 01374000
CLI CCWA,THIRTY1 NO TRUNCS, SRCH ID EQ CCW OPCODE @V305066 01375000
BE UPDONLY = X'31' IMPLIES UPDATE=YES @V305066 01376000
MVC DOS8SD,CCBAD UPDATE=NO, TRUNCS=NO @V305066 01377000
B GO1 CONTINUE PROCESSING @V305066 01378000
CHKCCWB CLI CCWB,THIRTY1 SEARCH ID EQ CCW OPCODE = X'31' @V305066 01379000
BE BOTH IMPLIES UPDATE=YES @V305066 01380000
DOS2 MVC DOS2SD,CCBAD JUST TRUNCS SPECIFIED @V305066 01381000
B GO1 CONTINUE PROCESSING @V305066 01382000
BOTH MVC DOS4SD,CCBAD FIXBLK,INP,UPDATE,TRUNC,CONTROL @V305066 01383000
B GO1 CONTINUE PROCESSING @VM03141 01384000
UPDONLY MVC DOS3SD,CCBAD UPDATE ONLY @V305066 01385000
B GO1 CONTINUE PROCESSING @V305066 01386000
DISKERR LA R15,SEVEN PUB DEVICE TYPE INCOMPATIBLE @V305066 01387000
B BADOPEN BR TO PRINT ERROR MSG @V305066 01388000
SPAN TM SDFLAG1,INPSD SPANNED INPUT FILE ? @V305066 01389000
BNO GO1 NO, CONTINUE PROCESSING @V305066 01390000
CLI CCWB,THIRTY1 SPANNED REC AND UPDATE = YES? @V305066 01391000
BNE DOS2 SPANNED,INP, NO UPDATE @V305066 01392000
MVC DOS6SD,CCBAD SPANNED, INP, UPDATE = YES @V305066 01393000
GO1 LH R6,BLKLESS1 BLOCK SIZE MINUS 1 @V305066 01394000
AH R6,KON1 INCREM BY 1 TO GET BLKSIZE @V305066 01395000
STH R6,DOSBLKSZ STORE BLKSIZE IN DOSCB @V305066 01396000
TM SDFLAG3,FIXSD RECFM = FIXED ? @V305066 01397000
BO FIXFORM YES @V305066 01398000
VARIABLE MVC DOSFORM(TWO),V VARIABLE/UNDEFINED @VM03137 01399000
TESTIP TM SDFLAG1,INPSD INPUT FILE ? @V305066 01400000
BO CONTINUE YES, GO PROCESS INPUT FILE @V305066 01401000
OUT XC RECTRKSD(ONE),RECTRKSD RECS/TRK = 0 FOR OP @VM03137 01402000
OUT2 LA R1,DOSDSMD-Q24 POINT TO FM FOR ADTLKP @VM03137 01403000
L R15,VCADTLKP PREPARE TO DO ADT LOOKUP @VM03093 01404000
BALR R14,R15 ... @V305066 01405000
BNZ ERR69E BR IF NOT FOUND @V305066 01406000
BAL R6,ADTCHECK SEE IF R/W CMS DISK @V305066 01407000
MVC DOSOP(EIGHT),ERASE ERASE FILE SINCE OUTPUT @VM03137 01408000
LA R1,DOSOP R1 POINTS TO PLIST @V305066 01409000
L R15,AERASE ADDRESS OF DMSERS @V305066 01410000
BALR R14,R15 BR TO ERASE FILE @V305066 01411000
LA R4,CC CONTROL FIELD TABLE @VM03139 01412000
BAL R6,GETCON GET APPROPRIATE CONTROL FIELD @V305066 01413000
XC SEARCHSD(FIVE),SEARCHSD DEFAULT SEARCH ARG TO 1 @VM03137 01414000
XC CCHHRSD(FIVE),CCHHRSD EXT LOW LIMIT AND REC NO. @VM03137 01415000
MVC CCHHSD,0(R4) SET UP EXT LIMIT TO MAX VALUE @V305066 01416000
OI SDFLAG1,OPENSD FILE IS NOW OPEN @V305066 01417000
MVI HHSD+1,LOWLIM0 LOWLIM TO 0FOR EXT TYPE 01 @V305066 01418000
MVI COMSD+2,TYPE00 EXT SEQ NO. LAST EXT OPENED @V305066 01419000
NI SDFLAG0,BF RESET SPECIAL OPEN IND. @V305066 01420000
OI COMSD,NOEXTSD NO MORE EXTENT IND. @V305066 01421000
B CHMOR ANYMORE FILES TO OPEN ? @V305066 01422000
FIXFORM TM SDFLAG1,INPSD INPUT FILE? @V305066 01423000
BO FIX INPUT @V305066 01424000
STH R6,TRKCAPSD+1 TRKCAP = BLKSIZE @V305066 01427000
B VARIABLE BR TO PUT VAR FLAG @V305066 01428000
FIX MVC DOSFORM(TWO),F FIXED @VM03137 01429000
B TESTIP BRANCH. @VM03141 01430000
POSTSD TM SDFLAG0,OPENIGN OPEN IGNORE POSTED @V305066 01431000
BZ POST NO, FIRST OPEN CALL @V305066 01432000
TM SDFLAG1,INPSD INPUT FILE? @V305066 01433000
BO RESETEOF YES, EXIT TO USER EOF ROUTINE @V305066 01434000
B EXIT IF OUTPUT,RETURN TO LIOCS MODULE @V305066 01435000
CHECK1 CLI DOSSYS,FF SYSXXX SPECIFIED IN DLBL? @V305066 01436000
BE ERR302E NO, ERROR @V305066 01437000
MVC UNITSD(TWO),DOSYSXXX OVERRIDE SYSXXX IN DTF @VM03137 01438000
BAL R6,GETLUB FIND PUB POINTER (LUB) @V305066 01439000
B CHKASSGN SEE IF ASSIGNED @V305066 01440000
EJECT 01441000
CONTINUE OI COMSD,LASTVOL IND LAST VOL OF DATA SET @V305066 01442000
XC DOSOP(EIGHT),DOSOP CLEAR DOSOP @VM03137 01443000
LA R1,DOSOP GET ADDR OF STATE PLIST @V305066 01444000
L R15,ASTATE CALL STATE @V305066 01445000
BALR R14,R15 @V305066 01446000
L R14,DOSOSFST GET OS FST ADDR @V305066 01447000
LTR R14,R14 IS IT ZERO? @V305066 01448000
BNZ OSDOS DOS DISK @V305066 01449000
CH R15,OSRDERR ERROR ACCESSING OS/DOS DISK? @V305066 01450000
BNL ACCERR ERROR ACCESSING OS/DOS DISK @V305066 01451000
LTR R15,R15 FILE FOUND? @V305066 01452000
BZ GETFST FILE HAS BEEN FOUND @V305066 01453000
STATERR LA R15,SIX FILE NOT FOUND @V305066 01454000
B BADOPEN BRANCH TO PRINT ERROR MESSAGE @V305066 01455000
ACCERR LA R15,FIFTEEN ERROR ACCESSING OS/DOS DISK @V305066 01456000
B BADOPEN GO PRINT ERROR MESSAGE @V305066 01457000
USING FSTSECT,R7 @V305066 01458000
GETFST L R7,DOSBUFF GET ADDR OF FST CMS IP FILE @V305066 01459000
LA R4,CC CONTROL FIELD TABLE @VA07181 01460000
BAL R6,GETCON FILL CONTROL FIELD IN DTF @V305066 01461000
CLI CPBYTE,THIRTY2 DTFCP @V305066 01462000
BE ZEROBYTE YES, CLEAR SWITCH @V305066 01463000
CLI CPBYTE,THIRTY3 DTFDI @V305066 01464000
BE ZEROBYTE YES, CLEAR SWITCH @V305066 01465000
MVI RECTRKSD,RECTRK1 RECS/TRK = 1 @V305066 01466000
NEXT1 MVC SEARCHSD(FIVE),REC SEARCH ARG= ITEM ON CMSFILE @VM03137 01467000
SR R4,R4 @V305066 01468000
SR R5,R5 @V305066 01469000
SR R6,R6 @V305066 01470000
IC R6,TRK NUMBER TRKS/CYL/DEVICE @V305066 01471000
ICM R5,M3,FSTIC NUMBER OF ITEMS ON CMS FILE @V305066 01472000
LA R5,ONE(,R5) INCREM NO. ITEMS BY 1 @VM03137 01473000
DR R4,R6 DIVIDE NO. ITEMS BY NO. TRKS/CYL @V305066 01474000
STH R5,CCHHSD STORE UPPER LIMIT CYL. @VA06293 01475000
STC R4,CCHHSD+3 STORE UPPER LIMIT HEAD @V305066 01476000
MVI HHSD+1,LOWLIM0 LOW LIM = 0 , SIM AS TYPE 1 EXT @V305066 01477000
MVC CCHHRSD(FIVE),SEARCHSD SRCH ARG BUCKET = LOWLIM @VM03137 01478000
NI COMSD,F7 RESET NEW VOL IND. @V305066 01479000
NI COMSD+1,HEX7F RESET 'BYPASSED EXT' IND. @V305066 01480000
MVC COMSD+2,DEFEXTSQ DEF EXT SEQ TO 0 FOR CMSFILE@V305066 01481000
OI COMSD,NOEXTSD SET NO MORE EXTS IND. @V305066 01482000
OI SDFLAG1,OPENSD FILE IS NOW OPEN @V305066 01483000
MVC DOSDSMD,FSTM MOVE MODE FROM FST TO DOSCB @V305066 01484000
B CHMOR MORE FILES TO OPEN ? @V305066 01485000
ZEROBYTE MVI CPBYTE,CLEAR CLEAR SWITCH @V305066 01486000
B NEXT1 RECS/TRK ALREADY IN DTF @V305066 01487000
USING OSFST,R14 @V305066 01488000
OSDOS LTR R15,R15 ANY ERRORS FROM STATE? @V305066 01489000
BNZ STATERR YES, DON'T OPEN @V305066 01490000
CLI CPBYTE2,SW2311 DEV CODE IN DTF=0, 2311 @V305066 01491000
MVI CPBYTE2,CLEAR CLEAR SW FOR NEXT TIME @V305066 01492000
BE BADDEV YES, ALSO UNACCEPTABLE @V305066 01493000
OI DOSINIT,DOS INDICATE DOS DISK IN DOSCB @V305066 01494000
LA R4,CC2 CONTROL FIELD TABLE @VM03139 01495000
BAL R6,GETCON @V305066 01496000
CLI CPBYTE,THIRTY2 DTFCP @V305066 01497000
BE NEXT3 YES, FILL IN RECS/TRK @V305066 01498000
CLI CPBYTE,THIRTY3 DTFDI @V305066 01499000
BNE RECSTRK DTFSD - CALC RECS/TRK @VM03148 01500000
NEXT3 MVI CPBYTE,CLEAR REINIT CP/DI BYTE @V305066 01501000
MVC RECTRKSD,FULSAV+1 RECS/TRK FOR DOS DISK @V305066 01502000
B NEXT2 PLACE EXTENT INFO IN DTF @VM03148 01503000
CALC30 LA R4,CON3330 POINT TO 3330 CONSTANTS @VM03148 01504000
B CALC GO TO CALC RECS/TRK @VM03148 01505000
CALC50 LA R4,CON3350 POINT TO 3350 CONSTANTS @V505098 01506000
B CALC GO TO CALC RECS/TRK @V505098 01507000
CALC14 LA R4,CON2314 POINT TO 2314 CONSTANTS @VM03148 01508000
B CALC GO TO CALC RECS/TRK @VM03148 01509000
RECSTRK CLC DOSFORM(2),F FIXED RECORDS @VM03148 01510000
BNE NEXT2 NO, SKIP CALC OF RECS/TRK @VM03148 01511000
CLI DEVSD,DEV2314 2314? @VM03148 01512000
BE CALC14 YES @VM03148 01513000
CLI DEVSD,DEV3330 3330? @VM03148 01514000
BE CALC30 YES @VM03148 01515000
CLI DEVSD,DEV333B 3330-11? @V505098 01516000
BE CALC30 YES @V505098 01517000
CLI DEVSD,DEV3350 3350? @V505098 01518000
BE CALC50 YES @V505098 01519000
LA R4,CON3340 POINT TO 3340 CONSTANTS @VM03148 01520000
CALC LH R6,0(R4) GET TOLERANCE FACTOR @VM03148 01521000
MH R6,DOSBLKSZ MULT BY BLOCKSIZE @VM03148 01522000
SRL R6,9 DIVIDE BY 512 @VM03148 01523000
AH R6,2(R4) ADD OVERHEAD CONSTANT @VM03148 01524000
LH R15,4(R4) GET TRACK CAPACITY @VM03148 01525000
SH R15,DOSBLKSZ SUBTRACT BLOCKSIZE @VM03148 01526000
LR R1,R14 SAVE R14 TEMPORARILY @VM03148 01527000
SR R14,R14 CLEAR REGISTER FOR DIVIDE @VM03148 01528000
DR R14,R6 DIVIDE @VM03148 01529000
AH R15,KON1 ADD ONE @VM03223 01530000
STH R15,FULSAV STORE TEMPORARILY @VM03148 01531000
MVC RECTRKSD,FULSAV+1 MOVE RECS/TRK TO DTF @VM03148 01532000
LR R14,R1 RESTORE R14 NOW @VM03148 01533000
NEXT2 SR R4,R4 CLEAR REGISTER @V305066 01534000
IC R4,OSFSTXNO NUMBER OF DATA EXTENTS ON DISK @V305066 01535000
LTR R4,R4 ANY ENTENTS? @V305066 01536000
BZ ERR5 NO EXTENTS PRESENT, ERROR @V305066 01537000
LA R1,ONE POINTER TO CURRENT EXT @V305066 01538000
LA R14,OSFSTXTN POINTER TO EXT INFO IN DOSCB @V305066 01539000
B EXTENTS GO FILL DTF WITH EXTENT INFO @V305066 01540000
ERR5 LA R15,FIVE NO EXTENTS PRESENT- ERROR @V305066 01541000
B BADOPEN BRANCH TO PRINT ERROR MESSAGE @V305066 01542000
USING EXTENT,R14 ESTABLISH DSECT ADDRESSABILITY @V305066 01543000
EXTENTS BCT R4,MORE DECREM NUMBER OF EXTENTS @V305066 01544000
OI COMSD,NOEXTSD IF NO MORE, POST IN DTF @V305066 01545000
XC DOSEXT(TWO),DOSEXT FILL DOSEXT AND EXTCOUNT @VM03137 01546000
* ZEROS 01547000
B PROCESS PROCESS THE EXTENT AT HAND @V305066 01548000
MORE STC R4,DOSEXT NUMBER EXTENTS LEFT IN DOSCB @V305066 01549000
STC R1,DOSEXTCT STORE IN DOSCB @V305066 01550000
PROCESS MVC SEARCHSD,EXTLOW LOWER EXTENT= SEARCH ARG @V305066 01551000
MVI RECSD,REC1 REC ON SEARCH ARG = 1 @V305066 01552000
MVC CCHHSD,EXTUP MOVE UPPER LIMIT FROM OSFST @V305066 01553000
MVI HHSD+1,LOWLIM0 LOHD = 0 IF DATA EXT TYPE 01 @V305066 01554000
CLI 0(R14),TYPE01 DATA EXT TYPE = 01 @V305066 01555000
BE DOWN2 YES @V305066 01556000
MVC HHSD+1(ONE),EXTLOW+3 IF SPLIT CYL - LOW HEAD LIM@VM03137 01557000
MVC CONSD+3(ONE),EXTUP+3 SPLIT CYL - UPHD TO CONT. @VM03137 01558000
* FLD 01559000
DOWN2 OI SDFLAG1,OPENSD FILE IS NOW OPEN @V305066 01560000
MVC CCHHRSD(FIVE),SEARCHSD INIT SRCH ARG BUCKET @VM03137 01561000
NI COMSD,F7 RESET NEW VOL IND. @V305066 01562000
NI COMSD+1,HEX7F RESET 'BYPASSED EXT' IND. OFF @V305066 01563000
MVC COMSD+2(ONE),EXTSEQ INIT EXTENT SEQ NO. @VM03137 01564000
USING OSFST,R14 ESTABLISH OSFST ADDRESSABILIY @V305066 01565000
L R14,DOSOSFST ADDRESS OF OSFST @V305066 01566000
MVC DOSDSMD,OSFSTFM MOVE FM TO DOSCB FROM OSFST @V305066 01567000
MVC DOSFORM,OSFSTRFM MOVE RECFM TO DOSCB FROM OSFST@V305066 01568000
B CHMOR ANY MORE FILES TO OPEN ? @VM03141 01569000
EJECT 01570000
OPEN TM SDFLAG1,OPENSD FILE ALREADY OPEN ? @V305066 01571000
BNO CHKCNTRL NO, FIRST TIME OPEN @V305066 01572000
ALLOPEN TM COMSD,NOEXTSD ANYMORE EXTENTS @V305066 01573000
BO TESTSW NO, TEST FOR END OF EXT SW @V305066 01574000
NI SDFLAG2,F7 TURN OFF SW @V305066 01575000
TM DTFSD+4,UNITEXC UNIT EXCEPTION - EOF @V305066 01576000
BZ NEXTXTNT GO GET NEXT EXTENT @V305066 01577000
USING BGCOM,R7 @V305066 01578000
RESETEOF NI DTFSD+4,FF-UNITEXC RESET UNIT EXCEPTION @VM03137 01579000
L R7,ASYSREF BGCOM ADDRESS @V305066 01580000
OI COMSD,EXITEOF SET SW TO EXIT TO EOF ROUT @V305066 01581000
LR R1,R9 POINT TO FREE AREA @VA04418 01582000
BAL R6,FREESTOR RELEASE ACQUIRED FREE STORAGE @VA04418 01583000
LH R14,PIBPT ADDRESS OF PIB TABLE @V305066 01584000
L R14,EIGHT(R14) AD CURRENT PSW SAVE AREA @VM03137 01585000
MVC 13(THREE,R14),EODSD EOF AD TO USER'S OLD PSW @VM03137 01586000
LOADWORK SVC SVC11 RETURN TO PROB. PROG. @V305066 01587000
TESTSW TM SDFLAG2,ENDEXT END OF EXT CONDITION? @V305066 01588000
BO LOADWORK EXIT TO MODULE TO READ LAST REC @V305066 01589000
B RESETEOF EOF EXIT @V305066 01590000
USING OSFST,R14 @V305066 01591000
NEXTXTNT SR R8,R8 CLEAR REGISTER @V305066 01592000
IC R8,DOSEXTCT POINTER TO NEXT EXTENT @V305066 01593000
LA R1,ONE(,R8) INCREM EXT POINTER BY 1 @VM03137 01594000
L R14,DOSOSFST POINTER TO OSFST @V305066 01595000
MH R8,H10 MULT BY LEN OF 1 EXT INFO @V305066 01596000
LA R14,OSFSTXTN PTR TO BEGIN EXT INFO IN DOSCB @V305066 01597000
AR R14,R8 INCREMENT TO RIGHT EXT INFO @V305066 01598000
SR R4,R4 CLEAR REGISTER @V305066 01599000
IC R4,DOSEXT NO. EXTENTS LEFT @V305066 01600000
B EXTENTS FILL DTF WITH EXT INFO @V305066 01601000
EJECT 01602000
VERIFY LA R1,DOSDSMD-Q24 POSITION I/P TO ADTLKP @VM03137 01603000
L R15,VCADTLKP PREPARE TO DO ADT LOOKUP @VM03093 01604000
BALR R14,R15 BRANCH @V305066 01605000
LTR R15,R15 SUCCESSFUL ? @V305066 01606000
BC 8,FOUNDIT YES @V305066 01607000
B ERR69E NO, ERROR @V305066 01608000
FOUNDIT MVC FULLWORD(FOUR),12(R1) SAVE NUCLEUS TABLE ADDRESS@VM03137 01609000
L R4,FULLWORD PLACE THIS ADDRESS IN REG. @V305066 01610000
LA R10,DISKTAB DISTINGUISH DEVICE TYPES @V305066 01611000
CLI THREE(R4),DEV3340 TABLE MATCH ADT DEV CODE - @VM03137 01612000
* 3340 01613000
BE TYP3340 YES - SEE WHAT TYPE OF 3340 @VM03137 01614000
LA R10,SIXTEEN(,R10) TWO TABLE ENTRIES FOR 2314 @VM03137 01615000
CLI 3(R4),TYP2314 DEV CODE = 2314 ? @VM03137 01616000
BE EQUAL YES @VM03137 01617000
LA R10,EIGHT(,R10) ENTRY FOR 3330 @V505098 01618000
CLI 3(R4),TYP3330 DEV CODE = 3350 ? @V505098 01619000
BE EQUAL YES @V505098 01620000
LA R10,EIGHT(R10) ENTRY FOR 3350 @V505098 01621000
CLI 3(R4),TYP3350 DEV CODE = 3350 ? @V505098 01622000
BE EQUAL YES @V505098 01623000
LA R10,EIGHT(R10) MUST BE 3330-11 @V505098 01624000
EQUAL CLI DEVSD,DEF2311 2311 DEF CODE IN DTF @V305066 01625000
BE EQUAL2 YES, GO SET SW @V305066 01626000
CLC 0(ONE,R10),DEVSD DTF DEV CODE MATCH PUB? @VM03137 01627000
BNE ISITWORK SEE IF WORKFILE @V305066 01628000
EQUAL3 MVC DEVSD,ONE(R10) MOVE DEV CODE TO DTF @VM03137 01629000
MVC DOS1SD,CCBAD STORE DOSCB ADDRESS IN DTF CCB @V305066 01630000
BR R6 @V305066 01631000
EQUAL2 OI CPBYTE2,SW2311 SET SW FOR LATER @V305066 01632000
B EQUAL3 BRANCH TO PUT CODE IN DTF @V305066 01633000
TYP3340 CLI PUBDEVT,DSK35MB 3340 35MB? @V305066 01634000
BE EQUAL YES @V305066 01635000
LA R10,EIGHT(,R10) INCREM TO NEXT TABLE ENTRY @VM03137 01636000
B EQUAL 70MB @V305066 01637000
ISITWORK TM SDFLAG1,SDWORK DTFSD WORKFILE ? @V305066 01638000
BO EQUAL3 YES, MODIFY DEVSD PER PUB @V305066 01639000
TM SDFLAG1,INPSD SD INPUT? @VA12559 01639250
BO EQUAL3 @VA12559 01639500
BZ EQUAL3 OUTPUT @VA12559 01639750
BADDEV LA R15,SEVEN INCOMP DEV TYPE @V305066 01640000
B BADOPEN BR TO DISPLAY ERROR MSG @V305066 01641000
EJECT 01642000
USING DTFSDW,R2 ESTABLISH ADDRESSABILIY @V305066 01643000
WORK MVC SDWCAP,TWO(R10) TRACK CAP COUNTER @VM03137 01644000
BAL R6,ADTCHECK SEE IF R/W CMS DISK? @V305066 01645000
MVC DOSFORM(TWO),V FIX VAR FLAG IN DOSCB @VM03137 01646000
CLC COMNAME,PLIOPT IS THIS THE PL/I COMPILER @VA07764 01647000
BNE TRACKCAP NO - TREAT AS USUAL @VA07764 01648000
MVC DOSFORM(TWO),F MAKE FILE FIXED SO COMPILER @VA07764 01649000
* WILL RUN MUCH FASTER 01650000
TRACKCAP MVC LOHDSDW(TWO),SIX(R10) LOHD AND UPHD FOR DEV TYPE@VM03137 01651000
MVC EXTUPLIM(FOUR),FOUR(R10) EXT UP LIM=MAX CCHH @VM03137 01652000
* FOR DEV 01653000
OI COMSDW,EXTOPENW INDICATE EXTENT OPENED @V305066 01654000
NI LOGMODSW,SWOFF SET LIOCS WORKFILE SW OFF @V305066 01655000
XC SRCHSDW(FIVE),SRCHSDW SEARCH ADDRESS AND REC = 0@VM03137 01656000
MVC CNTLIM(FIVE),REC LOW LIM AND REC TO COUNT AREA @VM03137 01657000
OI SDWFLAG1,OPENSDW WORK FILE IS OPEN @V305066 01658000
MVC DOSBLKSZ(TWO),LRECLSDW RECSIZE TO DOSCB @VM03137 01659000
B CHMOR ANY MORE FILES TO OPEN ? @V305066 01660000
SPACE 2 01661000
EJECT 01662000
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 01663000
* ROUTINE TO LOCATE APPROPRIATE DOSCB, IF ONE EXITS, AND TO * 01664000
* STORE THE DOSCB ADDRESS IN THE FIRST CCB IN THE DTF. IF * 01665000
* NO MATCHING DOSCB IS FOUND, AN ERROR MESSAGE IS ISSUED AND * 01666000
* THE OPEN ROUTINE TERMINATED. * 01667000
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 01668000
SPACE 2 01669000
USING DTFSD,R2 @V305066 01670000
GETDOSCB L R3,DOSFIRST LOCATE APPROPRIATE DOSCB @V305066 01671000
TEST LTR R3,R3 ANY DOSCBS ON DOSCB CHAIN ? @V305066 01672000
BNZ COMPDD YES, GO LOOK FOR RIGHT DOSCB @V305066 01673000
MVC SAVEFN(SEVEN),FILESD MOVE DISK FN TO SAVEFN @VA04418 01674000
LA R15,THREE CODE = 3 NO DOSCBS PRESENT @V305066 01675000
B BADOPEN BRANCH TO PRINT ERROR MESSAGE @V305066 01676000
COMPDD CLC DOSDD(SEVEN),FILESD DDNAME IN DOSCB = FN IN @VM03137 01677000
* DTF ? 01678000
BE STOREAD STORE DOSCB ADDRESS @V305066 01679000
USING DTFSD,R2 @V305066 01680000
NEXT L R3,DOSNEXT CONTINUE TO SCAN DOSCB CHAIN @V305066 01681000
LA R3,0(,R3) ZERO HIGH ORDER BYTE @V305066 01682000
B TEST BRANCH @V305066 01683000
STOREAD ST R3,CCBAD STORE DOSCB ADDRESS @V305066 01684000
BR R6 RETURN @V305066 01685000
EJECT 01686000
USING ADTSECT,R1 ESTABLISH ADDRESSABILITY @V305066 01687000
ADTCHECK TM ADTFLG1,ADTFRO READ ONLY DISK ? @V305066 01688000
BO ERR37E CANNOT WRITE TO READ ONLY DISK @V305066 01689000
TM ADTFLG2,ADTFROS OS DISK ? @V305066 01690000
BO OSDOSDSK YES, INVALID TO WRITE TO OS DISK @V305066 01691000
TM ADTFLG2,ADTFDOS DOS DISK ? @V305066 01692000
BO OSDOSDSK YES, INVALID TO WRITE TO DOS DISK@V305066 01693000
BR R6 RETURN TO MAIN LINE @V305066 01694000
OSDOSDSK LA R15,TWO INVALID TO WRITE TO OS/DOS DISK @V305066 01695000
B BADOPEN BRANCH TO PRINT ERROR MESSAGE @V305066 01696000
EJECT 01697000
USING DTFCP,R2 ESTABLISH ADDRESSABILITY @V305066 01698000
CPORDI EQU * @V305066 01699000
TM CPFLAG0,ASC ASCII=YES SPECIFIED @V305066 01700000
BO ASCIIERR YES,ERROR @V305066 01701000
CLI TYPECP,THIRTY2 DISK SYSTEM TABLE ? @V305066 01702000
BNL DISKS YES @V305066 01703000
SPACE 2 01704000
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 01705000
* * 01706000
* * 01707000
* THIS ROUTINE PROCESSES DTF TYPE X'31' OR TAPE RESIDENT * 01708000
* SYSTEMS. THE DISK = PARAMETER HAS BEEN OMITTED FROM THE DTF * 01709000
* MACRO * 01710000
* * 01711000
* * 01712000
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 01713000
SPACE 2 01714000
USING TAPERES,R2 ESTABLISH ADDRESSABILITY @V305066 01715000
NI CCBSW,FB INITIALIZE SWITCH @V305066 01716000
BAL R6,GETLUB OBTAIN LUB @V305066 01717000
CLI 0(R5),FF LOGICAL UNIT UNASSIGNED ? @V305066 01718000
BNE CHKIGN EITHER IGNORE OR ASSIGNED @V305066 01719000
B ASGNERR BRANCH TO PRINT ERROR MESSAGE @V305066 01720000
CHKIGN CLI 0(R5),FE LOGICAL UNIT IGNORED ? @V305066 01721000
BE SETSW TREAT AS RDR IF IGNORED @V305066 01722000
BAL R6,GETPUB OBTAIN PUB @V305066 01723000
MVZ TEMP,PUBDEVT DEVICE TYPE CODE TO SAVE @V305066 01724000
CHKRDR2 CLI TEMP,READZONE READER @V305066 01725000
BE SETSW YES @V305066 01726000
CLI TEMP,TWENTY PUNCH ? @V305066 01727000
BNE CHKPTR2 NO GO SEE IF PRINTER @V305066 01728000
OI CPOPEN1,HEX08 PUNCH @V305066 01729000
TM PUBDEVT,PCH2540 2540/3525 PUNCH @V305066 01730000
BO P2540 YES @V305066 01731000
CLI PUBDEVT,PCH2520 2520 PUNCH @V305066 01732000
BE P2520 YES @V305066 01733000
B UNTRCP ALL OTHERS @V305066 01734000
P2520 OI CPFLAG8,LSTPCH SYSLST/SYSPCH @V305066 01735000
P2540 TM CPFLAG8,HEX40 SYSPCH TO 2540 @V305066 01736000
BZ UNTRCP NO @V305066 01737000
OI CPFLAG8,HEX20 2540 PUNCH @V305066 01738000
B UNTRCP BRANCH. @VM03141 01739000
SETSW OI CPOPEN1,READER INDICATE DEVICE IS READER @V305066 01740000
BAL R6,LDIORG2 @V305066 01741000
B CHMOR ANYMORE FILES TO OPEN ? @V305066 01742000
SPACE 2 01743000
CHKPTR2 CLI TEMP,FORTY X'40' - PRINTER @V305066 01744000
BNE CKMGTP IS IT TAPE ? @V305066 01745000
OI CPOPEN1,PRTIND PRINTER @V305066 01746000
CLI PUBDEVT,PRTUCS DOES PRINTER HAVE UCS @V305066 01747000
BL UNTRCP NO @V305066 01748000
LR R1,R2 R1 POINTS TO DTF CCB @V305066 01749000
MVC TEMPSAVE(THREE),TAPERES+9 SAVE CC @VM03137 01750000
LA R3,STMODCCW SET MODE CCW @V305066 01751000
ST R3,HOLD STORE TEMPORARILY @V305066 01752000
MVC TAPERES+9(THREE),HOLD+1 ADDR OF SET MODE CCW @VM03137 01753000
SVC EXCP ISSUE IO REQUEST @V305066 01754000
MVC TAPERES+9(THREE),TEMPSAVE REST ORIG CCW ADDR @VM03137 01755000
* TO CCB 01756000
B UNTRCP OPEN UNIT RECORD DTFS @V305066 01757000
CKMGTP CLI TEMP,FIFTY TAPE ? @V305066 01758000
BNE TAPERR TAPE ERROR @V305066 01759000
CLI PUBDEVT,TCR TAPE CARTRIDGE READER @V305066 01760000
BNE TAPEOK IF TCR, INVALID DEVICE @V305066 01761000
TAPERR MVC SAVEFN(SEVEN),CPFN1 MOVE FILENAME TO MSG SAVE @VM03137 01762000
* AREA 01763000
CODE7 LA R15,SEVEN OPEN TAPE, BUT PUB DEV TYPE INVAL@V305066 01764000
B BADOPEN BRANCH TO PRINT ERROR MESSAGE @V305066 01765000
TAPEOK BAL R6,CRPLIST CREATE TAPEIO PLIST @V305066 01766000
MVC FUNC,SENSE SENSE @V305066 01767000
BAL R6,IOROUT PERFORM SENSE @V305066 01768000
BAL R6,CHKMODE VERIFY DRIVE AGREES PUB MODE @V305066 01769000
CLI TAPERES+6,HEX01 PROGRAMMER LOGICAL UNIT @V305066 01770000
BE PROG YES, CONTINUE OPEN @V305066 01771000
BAL R6,SYSFILE SPECIAL PROCESSING FOR SYS FILES @V305066 01772000
BAL R4,SYSUNIT SYSIPT/SYSRDR @V305066 01773000
PROG OI CPOPEN1,DEVTAP DEV TYPE = X'01' TAPE @V305066 01774000
TM CPFLAG8,CPIN INPUT FILE ? @V305066 01775000
BO INITIAL2 @V305066 01776000
TM CPFLAG8,FORTY X'40' SYSLST/SYSPCH ASSIGNED @V305066 01777000
BZ INITIAL2 @V305066 01778000
OI CPFLAG8,HEX08 SYSLST/SYSPCH ON O/P TAPE @V305066 01779000
MVC CPFN1(EIGHT),MULTVOL VOL SWITCHING ROUTINE @VM03137 01780000
INITIAL2 LA R6,MGTPOP2 @V305066 01781000
LDIORG2 TM CPOPEN1,TWENTY TWO IOAREAS SUPPORTED @V305066 01782000
BCR 8,R6 YES @V305066 01783000
TM CPFLAG8,CPIN INPUT ? @V305066 01784000
BCR 1,R6 YES @V305066 01785000
LH R1,PIBPT POINTER TO PIB TABLE @V305066 01786000
L R1,EIGHT(R1) USER SAVEAREA ADDRESS @VM03137 01787000
LA R1,SIXTEEN(R1) R1 - REG SAVEAREA @VM03137 01788000
L R3,CPFLAG9 IOAREA2 ADDRESS @V305066 01789000
TM CPOPEN1,PRTPCH PRINT/PUNCH @V305066 01790000
BZ EXC BRANCH IF NEITHER @VM03141 01791000
BCTR R3,0 @V305066 01792000
EXC SR R4,R4 CLEAR REGISTER @V305066 01793000
IC R4,CPINST+1 IOREG NO. @V305066 01794000
SRL R4,FOUR GET IOREG NO. @VM03137 01795000
CH R4,CONNINE IOREG < 9 ? @V305066 01796000
BL LTNINE2 ES @V305066 01797000
SH R4,CONNINE DECREM IOREG BY 9 @V305066 01798000
B MPY2 CONTINUE SHORTLY BELOW @VM03141 01799000
LTNINE2 AH R4,H7 INCREMENT BY 7 @V305066 01800000
MPY2 SLL R4,TWO MULTIPLY BY 4 @VM03137 01801000
AR R1,R4 DISP + SAVE AREA ADDRESS @V305066 01802000
ST R3,0(R1) STORE R3 IN REG SAVE AREA @V305066 01803000
BR R6 @V305066 01804000
MGTPOP2 CLI TAPERES+6,HEX01 PROGRAMMER LOGICAL UNIT @V305066 01805000
BNE CHMOR IF SYS UNIT, DISCONTINUE OPEN @V305066 01806000
MVI CPTYPE1,CPTAP TAPE WORKFILE @V305066 01807000
TM CPFLAG8,CPIN INPUT ? @V305066 01808000
BO BOMT06 GO TO CALL OPEN FOR WORKFILES @V305066 01809000
OI CPOPEN1,HEX08 TAPE O/P FILE @V305066 01810000
B BOMT06 PROCESS AS TAPE WORKFILE @V305066 01811000
UNTRCP L R3,CPCCW0+4 RECORD COUNT FROM CCW @V305066 01812000
SH R3,KON1 DECREM BUFFER LENGTH BY 1 @V305066 01813000
ST R3,CPCCW0+4 STORE BACK IN CCW @V305066 01814000
PPRT L R3,CPCCW0 BUFFER ADDRESS IN CCW @V305066 01815000
AH R3,KON1 POINT TO SEC BYTE OF BUFFER @V305066 01816000
ST R3,CPCCW0 STORE BACK IN CCW @V305066 01817000
L R3,CPFLAG9 ALTERNATE I/O AREA ADDRESS @V305066 01818000
AH R3,KON1 POINT TO SEC BYTE OF ALT AREA @V305066 01819000
ST R3,CPFLAG9 STORE BACK IN DTF FIELD @V305066 01820000
OI CPFLAG8,IO2 2 IO AREAS @V305066 01821000
BAL R6,LDIORG2 @V305066 01822000
B CHMOR ANYMORE FILES TO OPEN ? @V305066 01823000
ASCIIERR MVC SAVEFN(SEVEN),CPFN1 FILENAME FOR MSG @VM03137 01824000
B ERR11 BR TO PRINT MSG @V305066 01825000
EJECT 01826000
USING DTFCP,R2 ESTABLISH ADDRESSABILIY @V305066 01827000
DISKS EQU * @VA04418 01828000
LUB BAL R6,GETLUB GET LUB ENTRY @V305066 01829000
CHKFFFE CLI 0(R5),FE LOG UNIT UNASSIGNED OR IGNORED ? @V305066 01830000
BL PUB1 NOT IGNORE OR UNASSIGN - GET PUB @V305066 01831000
BE RDRCI GO PROCESS AS READER FILE @V305066 01832000
B ASGNERR GO TO PRINT ERROR MESSAGE @V305066 01833000
PUB1 MVC SAVEFN(SEVEN),CPFN FILENAME @VA04418 01834000
BAL R6,GETPUB GET PUB ENTRY @VA04418 01835000
USING PUBADR,R5 ESTABLISH PUB ADDRESSABILITY @V305066 01836000
MVZ TEMP(ONE),PUBDEVT SAVE DEVICE TYPE ZONE BITS @VM03137 01837000
CLI TEMP,SIXTY DASD DEVICE ? @V305066 01838000
BE INDISC YES @V305066 01839000
TM CPDSK,FF IS DISK POSSIBLE WITH THIS DTF ? @V305066 01840000
BO CKRST NO @V305066 01841000
MVI CPDEVID+1,TYPE00 INDICATE NON-DISK DEVICE @V305066 01842000
LR R1,R2 PLACE DTF IN WORK REGISTER @V305066 01843000
LA R1,Q112(R2) INCREM BY 112 @VM03137 01844000
ST R1,CPCCW1 STORE UPD CCW IN CCB @V305066 01845000
TM CPFLAG5,CPIN INPUT FILE ? @V305066 01846000
BO INOM YES @V305066 01847000
MVC CPCCWI+1(SEVEN),CPCCWO+1 SET UP CCW FOR O/P IN @VM03137 01848000
* DTF 01849000
NI CPCCWI+4,B7 DECHAIN CCW @V305066 01850000
MVI CPCCWI,WRITEOP PUT WRITE COMMAND CODE IN CCW @V305066 01851000
B CKRST FIND DEVICE TYPE @V305066 01852000
INOM MVI CPCCWI,READOP PUT READ COMMAND IN CCW FOR IP @V305066 01853000
CKRST MVI CPFLAG4,OTHER X'F0' = OTHER THAN RDR/DASD DEV @V305066 01854000
CKRDR CLI TEMP,READZONE READER? @V305066 01855000
BE SETSW3 GO OPEN DTFCP READER FILE @V305066 01856000
CLI TEMP,TWENTY X'20' PUNCH @V305066 01857000
BNE CKPTR IF NOT SEE IF PRINTER @V305066 01858000
B PUNCH GO OPEN DTFCP PUNCH FILE @V305066 01859000
INDISC BAL R6,GETDOSCB GET DISK DOSCB @V305066 01860000
CLC DOSYSXXX(TWO),DTFCP+6 DTF SYSXXX = DOSCB SYSXXX?@VM03137 01861000
BNE OPENERR1 NO, ERROR ON DTFDI AND DTFCP @V305066 01862000
MVC DOSCB1,CCBAD MOVE DOSCB ADD TO CCB (DTF) @V305066 01863000
MVI CPDEVTY,TWENTY DISK DEVICE X'20' @V305066 01864000
OI CPFLAG1,HEX08 VERSION 2 DISK= YES INDICATOR @V305066 01865000
MVI CPFLAG4,DASD X'F3' DASD @V305066 01866000
MVC DOSBLKSZ(TWO),CPDATLEN LRECL TO DOSCB FOR CP @VM03137 01867000
* OR DI 01868000
MVC DOSFORM(TWO),F DTFCP FIXED UNBLOCKED @VM03137 01869000
CLI TYPECP,THIRTY3 DTFDI @V305066 01870000
BNE CPCONT NO, CONTINUE @V305066 01871000
BAL R6,SLIBIT TURN OFF SLIBIT @V305066 01872000
CPCONT CLI PUBDEVT,DSK2314 2314/2319 @V305066 01873000
BE INIT14 YES @V305066 01874000
CLI PUBDEVT,DSK3330 3330 @V305066 01875000
BE INIT30 YES @V305066 01876000
CLI PUBDEVT,DSK333B 3330-11 @V505098 01877000
BE INIT3B YES @V505098 01878000
CLI PUBDEVT,DSK3350 3350 @V505098 01879000
BE INIT50 YES @V505098 01880000
MVI CPDEV,HEX00 MOVE 3340 DEV CODE TO DTF @V305066 01881000
MVN CPDEV,PUBDEVT SET CORRECT DEV. CODE @V305066 01882000
LA R8,CON3340 POINT TO 3340 CONSTANTS @V305066 01883000
COMPUTE TM CPFLAG5,CPIN INPUT FILE? @V305066 01884000
BO INPCP YES @V305066 01885000
MVI CPRECS,RECTRK1 DEF RECS/TRK TO CMS DISK @V305066 01886000
B SYSO CONTINUE OPEN @V305066 01887000
OPENERR1 LA R15,ONE NO MATCHING SYSXXX @V305066 01888000
B BADOPEN BR TO PRINT ERROR MESSAGE @V305066 01889000
SPACE 2 01890000
* COMPUTE NUMBER OF RECORDS PER TRACK 01891000
* FOR 2314 USE FORMULA: 01892000
* L+(7294-RECSIZE)/(101+(534*RECSIZE)/512) 01893000
* FOR 3330 USE FORMULA: 01894000
* L+(13030-RECISZE)/(135+(512*RECSIZE)/512) 01895000
* FOR 3340 USE FORMULA: 01896000
* L+(8368-RECSIZE)/(167+(512*RECSIZE)/512) 01897000
SPACE 2 01898000
INPCP MVC CPBYTE,TYPECP SAVE DTF TYPE @V305066 01899000
MVI CPRECS,TWO DEF RECS/TRK TO CMS DISK @VM03137 01900000
LH R10,0(R8) GET TOLERANCE FACTOR @V305066 01901000
MH R10,CPDATLEN MULT BY RECSIZE @V305066 01902000
SRL R10,NINE DIVIDE BY 512 @VM03137 01903000
AH R10,TWO(R8) ADD OVERHEAD CONSTANT @VM03137 01904000
LH R7,FOUR(R8) GET TRACK CAPACITY @VM03137 01905000
SH R7,CPDATLEN SUBTRACT RECSIZE @V305066 01906000
SR R6,R6 CLEAR REGISTER FOR DIVIDE @V305066 01907000
DR R6,R10 DIVIDE @V305066 01908000
AH R7,KON2 ADD TWO @V305066 01909000
STH R7,FULSAV SAVE RECS/TRK @V305066 01910000
B SYSO CONTINUE OPEN @V305066 01911000
SLIBIT TM CPFLAG5,CPIN INPUT FILE ? @V305066 01912000
BZ RTNCP NO, OUTPUT @V305066 01913000
NI CPCCWI+4,DF TURN OFF SLI BIT @V305066 01914000
RTNCP BR R6 RETURN TO MAIN LINE @V305066 01915000
INIT14 MVI CPDEV,DEV2314 2314 DEV CODE @V305066 01916000
LA R8,CON2314 POINT TO 2314 CONSTANTS @V305066 01917000
B COMPUTE COMPUTE RECS/TRK @V305066 01918000
INIT30 MVI CPDEV,DEV3330 3330 DEV CODE @V305066 01919000
LA R8,CON3330 POINT TO 3330 CONSTANTS @V305066 01920000
B COMPUTE COMPUTE RECS/TRK @V305066 01921000
INIT3B MVI CPDEV,DEV333B 3330-11 DEV CODE @V505098 01922000
LA R8,CON3330 POINT TO 3330-11 CONSTANTS @V505098 01923000
B COMPUTE COMPUTE RECS/TRK @V505098 01924000
INIT50 MVI CPDEV,DEV3350 3350 DEV CODE @V505098 01925000
LA R8,CON3350 POINT TO 3350 CONSTANTS @V505098 01926000
B COMPUTE COMPUTE RECS/TRK @V505098 01927000
CKPTR CLI TEMP,FORTY X'40' PRINTER @V305066 01928000
BE PRINTIN GO OPEN DTFCP PRINTER FILE @V305066 01929000
CLI TEMP,FIFTY TAPE DEVICE ? @V305066 01930000
BNE DEVERR NO, ERROR INVALID DEVICE TYPE @V305066 01931000
CLI PUBDEVT,TCR TAPE CARTRIDGE READER @V305066 01932000
BE DEVERR IF TCR, DEVICE ERROR @V305066 01933000
BAL R6,CRPLIST CREATE PLIST FOR TAPEIO @V305066 01934000
MVC FUNC,SENSE SENSE @V305066 01935000
BAL R6,IOROUT PERFORM IO @V305066 01936000
BAL R6,CHKMODE VER TAPE MODE AGREES WITH PUB @V305066 01937000
CLI DTFCP+6,HEX01 PROGRAMMER LOGICAL UNIT @V305066 01938000
BE CPCONT1 YES, SKIP SYS FILE PROCESSING @V305066 01939000
BAL R6,SYSFILE PROCESS SYSTEM FILES @V305066 01940000
BAL R4,SYSUNIT MAKE SYS UNIT CHECK @V305066 01941000
CLI TYPECP,THIRTY3 DTF TYPE = X'33' - DTFDI @V305066 01942000
BNE CPCONT1 NO @V305066 01943000
BAL R6,SLIBIT TURN OFF SLIBIT @V305066 01944000
CPCONT1 MVI CPDEVTY,CPTAP INDICATE TAPE DEVICE @V305066 01945000
MVI CPFLAG4,TAPDEV INDICATE TAPE DEVICE @V305066 01946000
TM CPFLAG5,CPIN INPUT ? @V305066 01947000
BO INITIAL YES @V305066 01948000
TM CPFLAG5,PCHFILE SYSLST OR SYSPCH O/P ? @V305066 01949000
BZ INITIAL NO @V305066 01950000
OI CPFLAG5,HEX02 SET SYSLST/SYSPCH O/P TAPE @V305066 01951000
MVC CPFN(EIGHT),MULTVOL NAME OF VOL SWITCHING PHASE @VM03137 01952000
INITIAL LA R6,MGTPOP INITIALIZE BRANCH REGISTER @V305066 01953000
LDIORG TM CPFLAG5,IO2 2 IOAREAS @V305066 01954000
BCR 8,R6 NO I/O REG, GO TO CORRECT INSTR. @V305066 01955000
TM CPFLAG5,CPIN INPUT ? @V305066 01956000
BCR 1,R6 INPUT, NO LOAD NEEDED @V305066 01957000
LH R14,PIBPT PIB POINTER @V305066 01958000
L R14,EIGHT(R14) USER SAVEAREA @VM03137 01959000
LA R14,SIXTEEN(R14) R1 - REG SAVEAREA @VM03137 01960000
L R8,CPFLAG5 IOAREA2 ADDRESS TO REGISTER @V305066 01961000
TM CPDEVTY,PRTPCH PRINTER/PUNCH @V305066 01962000
BZ EXEC NO @V305066 01963000
BCTR R8,0 POINT TO CONTROL CHARACTER @V305066 01964000
EXEC SR R4,R4 CLEAR REGISTER @VM03139 01965000
TM CPDSK,FF DISK POSSSBLE WITH THIS DTF? @V305066 01966000
BO SYSLOD NO @V305066 01967000
IC R4,CPINSTR+1 OBTAIN IOREG NO. @V305066 01968000
B STOR BRANCH. @VM03141 01969000
SYSLOD IC R4,CPIOREG IOREG FOR NON-DISK @V305066 01970000
STOR SRL R4,4 GET IOREG NO. @V305066 01971000
CH R4,CONNINE IOREG < 9 ? @V305066 01972000
BL LTNINE YES @V305066 01973000
SH R4,CONNINE SUBTRACT 9 FROM IOREG @V305066 01974000
B MYP CONTINUE SHORTLY BELOW @VM03141 01975000
LTNINE LA R4,SEVEN(R4) INCREM BY 7 @VM03137 01976000
MYP SLL R4,TWO MULTIPLY BY 4 @VM03137 01977000
AR R14,R4 DISP + SAVE ADDRESS FOR REG @V305066 01978000
ST R8,0(R14) IOAREA1 ADDRESS TO REG SAVE AREA@V305066 01979000
BR R6 @V305066 01980000
SYSO MVI TYPECP,TWENTY DISK DTF TYPE @V305066 01981000
TM CPFLAG5,CPIN INPUT ? @V305066 01982000
BO STKON YES @V305066 01983000
MVI CPDEVID+1,TWENTY X'20' FOR O/P @V305066 01984000
B STKON1 CONTINUE SHORTLY BELOW @VM03140 01985000
STKON MVI CPDEVID+1,HEX18 MOVE CONSTANT TO DTF @V305066 01986000
STKON1 BAL R6,LDIORG CALL SUBROUTINE @VM03140 01987000
TM CPFLAG1,INPSD IS IT INPUT FILE @V305066 01988000
BNO OUT2 NO, MUST BE OUTPUT @V305066 01989000
TM CPFLAG1,OPENSD FILE ALREADY OPEN ? @V305066 01990000
BO ALLOPEN ALREADY OPEN @V305066 01991000
B CONTINUE PROCESS AS INPUT @V305066 01992000
MGTPOP CLI DTFCP+6,HEX01 PROGRAMMER LOGICAL UNIT @V305066 01993000
BNE CHMOR MUST BE SYSTEM FILE @V305066 01994000
TM CPFLAG5,CPIN INPUT ? @V305066 01995000
BO INWKFL YES @V305066 01996000
B OUTWKFL OUTPUT FILE @V305066 01997000
EJECT 01998000
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 01999000
* THIS ROUTINE WILL CORRECTLY POSITION A TAPE ASSOCIATED * 02000000
* WITH A SYSTEM LOGICAL UNIT (DTFCP OR DTFDI). SUCH POSITIONING * 02001000
* WILL ELIMINATE THE NEED FOR NORMAL OPEN PROCESSING. * 02002000
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 02003000
SPACE 2 02004000
SYSUNIT CLC DTFCP+6(TWO),IPTRDR SYSIPT/SYSRDR @VM03137 02005000
BCR 2,R4 CONTINUE TO OPEN @V305066 02006000
MVC FUNC,READ PREPARE TO READ RECORD @V305066 02007000
MVC BUFFLEN(FOUR),LENGTH INCREASE BUF LEN TO 82 @VM03137 02008000
READTM LA R3,READTM IF TM ON NEXT IO, GO HERE @V305066 02009000
BAL R6,IO PERFORM IO @V305066 02010000
MVC BUFFLEN,EIGHTY RESTORE BUFFLEN TO 80 @V305066 02011000
CLC BYTES(FOUR),READ80 80 BYTES READ @VM03137 02012000
BE BACKSP YES, OK @V305066 02013000
CLC BYTES(FOUR),READ81 81 BYTES READ @VM03137 02014000
BE BACKSP YES, OK @V305066 02015000
BAL R6,CVTUNIT CONVERT SYS LOG UNIT @V305066 02016000
LA R15,SIXTEEN SYSIPT/SYSRDR EXCEEDS 81 @V305066 02017000
B BADOPEN BR TO PRINT ERROR @V305066 02018000
BACKSP MVC FUNC,BSR BACKSPACE RECORD @V305066 02019000
BAL R6,IOROUT ISSUE IO @V305066 02020000
BR R4 RETURN TO MAINLINE @V305066 02021000
SPACE 2 02022000
SYSFILE TM BUFF2,LOADPT IS TAPE AT LOADPT? @V305066 02023000
BCR 8,R6 NO, DO NOT REPOSITION TAPE @V305066 02024000
CLC DTFCP+6(TWO),IPTRDR SYSIPT/SYSRDR @VM03137 02025000
BC 2,SYSLST NO, MUST BE SYSLST @V305066 02026000
MVC FUNC,READ PREPARE TO SEE IF LABELS @V305066 02027000
LA R1,PLIST POINT TO PLIST @V305066 02028000
SVC SVC202 ISSUE IO @VM03137 02029000
DC AL4(TM2) ERROR ADDRESS @V305066 02030000
CLC BUFFER(FOUR),VOL1 VOL1 LABEL READ @VM03137 02031000
BNE REWTAP NO LABELS/NO TM - REWIND @V305066 02032000
MVC FUNC,FSF FORWARD SPACE FILE BEYOND TM @V305066 02033000
LA R1,PLIST POINT TO PLIST @V305066 02034000
SVC SVC202 ISSUE IO @VM03137 02035000
DC AL4(BADTAPIO) ERROR ADDRESS @V305066 02036000
BR R6 RETURN TO MAIN LINE @V305066 02037000
REWTAP MVC FUNC,REW REWIND REQUEST @V305066 02038000
LA R1,PLIST POINT TO PLIST @V305066 02039000
SVC SVC202 ISSUE IO @VM03137 02040000
DC AL4(BADTAPIO) ERROR ADDRESS @V305066 02041000
BR R6 RETURN TO MAIN LINE @V305066 02042000
SYSLST MVC FUNC,WTM IF SYSLST, WRITE TM @V305066 02043000
LA R1,PLIST POINT TO PLIST @V305066 02044000
SVC SVC202 ISSUE IO @VM03137 02045000
DC AL4(BADTAPIO) ERROR ADDRESS @V305066 02046000
BR R6 RETURN TO MAIN LINE @V305066 02047000
SPACE 2 02048000
TM2 CH R15,TM TM ENCOUNTERED? @V305066 02049000
BCR 8,R6 YES, NO LABELS @V305066 02050000
B BADTAPIO OTHERWISE ERROR @V305066 02051000
SPACE 2 02052000
EJECT 02053000
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 02054000
* * 02055000
* ROUTINE TO OPEN DTFCP OR DTFDI TAPE OUTPUT FILES * 02056000
* * 02057000
* * 02058000
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 02059000
SPACE 4 02060000
OUTWKFL OI CPFLAG1,HEX08 TAPE O/P INDICATOR @V305066 02061000
SR R3,R3 CLEAR REGISTER 3 @V305066 02062000
MVC FUNC,REW PREPARE TO REWIND TAPE @V305066 02063000
BAL R6,IOROUT PERFORM IO @V305066 02064000
MVC FUNC,READ ISSUE READ REQUEST @V305066 02065000
LA R1,PLIST PREPARE TO ISSUE TAPEIO REQUEST @V305066 02066000
SVC SVC202 ISSUE REQUEST @VM03137 02067000
DC AL4(TM1) ERROR ROUTINE @V305066 02068000
DOSENSE MVC FUNC,REW PREPARE TO REWIND @V305066 02069000
BAL R6,IOROUT PERFORM IO @V305066 02070000
MVC FUNC,SENSE PREPARE TO DO SENSE @V305066 02071000
BAL R6,IOROUT PERFORM IO @V305066 02072000
TM BUFF2,LOADPT IS TAPE AT LOADPT? @V305066 02073000
BC 8,TMREAD NO @V305066 02074000
MVC FUNC,READ PREPARE TO READ @V305066 02075000
LA R1,PLIST PREPARE TO ISSUE READ @V305066 02076000
SVC SVC202 ... @VM03137 02077000
DC AL4(TM8) ERROR ADDRESS @V305066 02078000
TMREAD LTR R3,R3 TM MARK READ? @V305066 02079000
BC 2,SETSW2 YES, R3 > 0 @V305066 02080000
MVC FUNC,REW OTHERWISE, REWIND TAPE @V305066 02081000
BAL R6,IOROUT PERFORM IO @V305066 02082000
SETSW2 NI CPFLAG5,FE TURN OFF TAPE LABELED SWITCH @V305066 02083000
B CHMOR ANYMORE FILES TO OPEN ? @V305066 02084000
TM1 CH R15,TM TAPE MARK ENCOUNTERED @V305066 02085000
BH BADTAPIO NO, OTHER ERROR @V305066 02086000
BL BADTAPIO NO, OTHER ERROR @V305066 02087000
LA R3,ONE R3=1 MEANS TAPE MARK FOUND @V305066 02088000
B DOSENSE BRANCH. @VM03141 02089000
TM8 CH R15,TM TAPE MARK ENCOUNTERED @V305066 02090000
BE TMREAD YES,CONTINUE @V305066 02091000
B BADTAPIO OTHERWISE, ERROR @V305066 02092000
EJECT 02093000
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 02094000
* * 02095000
* ROUTINE TO OPEN DTFCP OR DTFDI TAPE INPUT FILES * 02096000
* * 02097000
* * 02098000
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 02099000
SPACE 4 02100000
INWKFL NI CPFLAG1,FD TURN OFF DISK I/P INDICATOR @V305066 02101000
TM CPFLAG0,ASC ASCII SPECIFIED @V305066 02102000
BO ASCIIERR YES, ERROR @V305066 02103000
SR R14,R14 CLEAR REGISTER 14 @V305066 02104000
TM CPFLAG1,CON80 REWIND OPTION SPECIFIED ? @VM03139 02105000
BO DETPATH NO, SKIP REWIND OPTION @V305066 02106000
MVC FUNC,REW REWIND @V305066 02107000
BAL R6,IOROUT @V305066 02108000
DETPATH MVC FUNC,SENSE PREPARE FOR SENSE OPERATION @V305066 02109000
BAL R6,IOROUT PERFORM IO @V305066 02110000
TM BUFF2,LOADPT IS TAPE AT LOADPT ? @VM03139 02111000
BC 8,ZEROR3 NO @V305066 02112000
LA R14,FOUR(,R14) ADJUST PTR FOR LOADPT @VM03137 02113000
ZEROR3 SR R3,R3 CLEAR REGISTER @V305066 02114000
MVC FUNC,READ READ @V305066 02115000
LA R1,PLIST PREPARE TO ISSUE READ @V305066 02116000
SVC SVC202 ISSUE IO @VM03137 02117000
DC AL4(TM4) ERROR ROUTINE @V305066 02118000
CHKLABEL CLC BUFFER(FOUR),VOL1READ VOL1 LABEL READ ? @VM03137 02119000
BNE HDR1CHK NO @V305066 02120000
LA R14,EIGHT(,R14) ADJUST PTR FOR LABEL FILE @VM03137 02121000
BOCPT4 L R14,PROCTAB(R14) ADD OF PROCEDURE LIST @V305066 02122000
PROCRUN1 L R1,0(R14) @V305066 02123000
BAL R6,0(R1) BR TO ROUTINE @V305066 02124000
PROCRUN2 LA R14,FOUR(,R14) ADDR NEXT SUBROUTINE @VM03137 02125000
B PROCRUN1 ... @V305066 02126000
SPACE 2 02127000
* PROCEDURE LIST 02128000
PROCTAB DC A(PROC7) @V305066 02129000
DC A(PROC7) @V305066 02130000
DC A(PROC6) @V305066 02131000
DC A(PROC5) @V305066 02132000
* ROUTINE ADDRESSES 02133000
PROC5 DC A(VOLSKIP) SKIP ADDITIONAL VOL LABELS @V305066 02134000
PROC6 DC A(FWSPTM) FORWARD SPACE TO TAPE MARK @V305066 02135000
DC A(EXITNLB) EXIT TAPE UNLABELED @V305066 02136000
PROC7 DC A(EXITNLAB) EXIT TAPE UNLABELED @V305066 02137000
SPACE 2 02138000
VOLSKIP MVC FUNC,READ PREPARE TO READ @V305066 02139000
VOLSKIP1 MVI BUFFER,BLANK PROPAGATE BLANKS THROUGH @V305066 02140000
MVC BUFFER+1(Q79),BUFFER IO AREA @VM03137 02141000
LA R1,PLIST PREPARE TO ISSUE IO @V305066 02142000
SVC SVC202 ISSUE IO @VM03137 02143000
DC AL4(BADTAPIO) ERROR ADD @V305066 02144000
CLC BUFFER(FOUR),VOL1 VOL1 LABEL READ @VM03137 02145000
BE VOLSKIP1 READ AGAIN... @V305066 02146000
CLC BUFFER(THREE),UVL UVL LABEL READ @VM03137 02147000
BE VOLSKIP1 YES, READ AGAIN... @V305066 02148000
CLC BUFFER(FOUR),HDR1 HDR1 LABEL READ @VM03137 02149000
BNE ERR1 STDLAB BUT NO HDR1 @V305066 02150000
BR R6 RETURN @V305066 02151000
FWSPTM MVC FUNC,FSF FORWARD SPACE FILE @V305066 02152000
LA R1,PLIST PREPARE TO ISSUE IO @V305066 02153000
SVC SVC202 ISSUE IO @VM03137 02154000
DC AL4(TM3) ERROR ADDRESS @V305066 02155000
BR R6 RETURN @V305066 02156000
HDR1CHK CLC BUFFER(FOUR),HDR1 HDR1 LABEL READ @VM03137 02157000
BNE BOCPT4 MUST BE NOLABEL @V305066 02158000
LA R14,EIGHT(,R14) ADJUST PTR FOR LABELED FILE @VM03137 02159000
B BOCPT4 BR TO PROCESS LABEL @V305066 02160000
TM4 CH R15,TM TAPE MARK ENCOUNTERED @V305066 02161000
BL BADTAPIO ERROR @V305066 02162000
BH BADTAPIO ERROR @V305066 02163000
LA R3,ONE R3=1 IND TAPE MARK ENCOUNTERED @V305066 02164000
B CHKLABEL CHK LABEL SITUATION @V305066 02165000
EXITNLAB LTR R3,R3 TM MARK READ ? @V305066 02166000
BC 2,EXITNLB YES,EXIT @V305066 02167000
MVC FUNC,REW PREPARE TO REWIND @V305066 02168000
BAL R6,IOROUT ISSUE IO REQUEST @V305066 02169000
EXITNLB NI CPFLAG5,FE TURN OFF TAPE LABELED SW @V305066 02170000
B CHMOR ANYMORE FILES TO OPEN ? @V305066 02171000
TM3 CH R15,TM TAPE MARK ENCOUNTERED @V305066 02172000
BCR 8,R6 YES @V305066 02173000
B BADTAPIO OTHERWISE, TAPE ERROR @V305066 02174000
EJECT 02175000
USING CPUNTREC,R2 @V305066 02176000
RDRCI MVI SWITHS,READER INDICATE THAT DEVICE IS READERCI @V305066 02177000
MVI SYSTYPE,RDTAP2 SECOND INDICATOR IN DTF @V305066 02178000
BAL R6,LDIORG GO INITIALIZE I/O REG @V305066 02179000
B CHMOR ANY MORE FILES TO OPEN ? @V305066 02180000
PUNCH MVI SWITHS,PCHFILE INDICATE DEVICE IS A PUNCH @V305066 02181000
CLI PUBDEVT,PUN3525 3525 PUNCH @V305066 02182000
BE UNTRCP2 FINISH INITIALIZING DTF @V305066 02183000
TM PUBDEVT,PCH2540 2540 PUNCH @V305066 02184000
BO P2540B YES @V305066 02185000
CLI PUBDEVT,PCH2520 2520 PUNCH @V305066 02186000
BE P2540B YES @V305066 02187000
B UNTRCP2 ALL OTHERS @V305066 02188000
P2540B TM OPSW1,PCHFILE SYSPCH ASSGNED TO 2540 PCH? @V305066 02189000
BZ UNTRCP2 NO @V305066 02190000
OI OPSW1,HEX08 INDICATE DEVICE IS 2540 PUNCH @V305066 02191000
OI CPCCB+2,EQCHK EQUIPMENT CHECK @V305066 02192000
TM CPOIND,FF IS DISK POSSIBLE WITH THIS DTF @V305066 02193000
BO UNTRCP2 YES @V305066 02194000
MVI CPOIND,FF IND DTF NOT DEFINED FOR DISK @V305066 02195000
MVC LOAD2(FOUR),LOAD MOVE IOREG LOAD INSTRUCTION @VM03137 02196000
MVC CCWND(EIGHT),CCWASA MOVE CCW TO PROPER POSITION @VM03137 02197000
LA R6,CCWND ADDRESS OF CCW @V305066 02198000
ST R6,HOLD ADDRESS OF CCW TO TEMP AREA @V305066 02199000
MVC CCWPTR(THREE),HOLD+1 ADDRESS OF CCW TO CCB @VM03137 02200000
MVC CCWE1(EIGHT),E1CCW RELOCATE 2540 PUNCH ERROR @VM03137 02201000
* CCW1 02202000
LA R6,SAVE1 ADDRESS OF SAVE AREA TO REGISTER @V305066 02203000
ST R6,HOLD ADDR OF SAVE AREA TO TEMP AREA @V305066 02204000
MVC CCWE1+1(THREE),HOLD+1 ADDR OF SAVEAREA1 TO ERR @VM03137 02205000
* CCW1 02206000
MVC CCWE2(EIGHT),E2CCW RELOCATE 2540 PUNCH ERROR @VM03137 02207000
* CCW2 02208000
LA R6,SAVE2 ADDRESS OF SAVE AREA TO REGISTER @V305066 02209000
ST R6,HOLD DRESS OF SAVE AREA TO TEMP AREA @V305066 02210000
MVC CCWE2+1(THREE),HOLD+1 ADDR OF SAVEAREA2 TO ERR @VM03137 02211000
* CCW2 02212000
B UNTRCP2 TO UNIT RECORD OPEN @V305066 02213000
SETSW3 MVI SWITHS,READER INDICATE THAT DEVICE IS A READER @V305066 02214000
MVI SYSTYPE,RDTAP2 SECOND INDICATOR IN DTF @V305066 02215000
B UNTRC1 GO TO UNIT RECORD OPEN @VM03139 02216000
CKPTR3 CLI TEMP,FORTY IS DEVICE A PRINTER ? @V305066 02217000
BNE CHMOR SEE IF MORE FILES TO OPEN @V305066 02218000
PRINTIN MVI SWITHS,HEX08 INDICATE DEVICE IS A PRINTER @V305066 02219000
CLI PUBDEVT,PRTUCS 1403 PRINTER WITH UCS @V305066 02220000
BL UNTRCP2 NO @V305066 02221000
LR R1,R2 R1 POINTS TO CCB @V305066 02222000
MVC TEMPSAVE(THREE),CCWPTR SAVE CCW ADDRESS @VM03137 02223000
LA R8,STMODCCW ADDRESS OF SET MODE CCW @V305066 02224000
ST R8,CCWPTR-1 CCW ADDRESS TO CCB @V305066 02225000
SVC EXCP SET MODE @V305066 02226000
MVC CCWPTR(THREE),TEMPSAVE RESTORE USER CCB @VM03137 02227000
UNTRCP2 TM CPOIND,FF DISK DEVICE? @V305066 02228000
BO ADJSYS BR IF DISK DEVICE @V305066 02229000
L R4,CCWASA+4 LOAD RECORD COUNT @V305066 02230000
SH R4,KON1 SUBTRACT ONE @V305066 02231000
ST R4,CCWASA+4 STORE BACK IN DTF @V305066 02232000
L R4,CCWASA LOAD IO ADDRESS @V305066 02233000
AH R4,KON1 ADD ONE @V305066 02234000
ST R4,CCWASA STORE BACK IN DTF @V305066 02235000
B AJALT GO UPD ALT IO ADDRESS @V305066 02236000
ADJSYS L R4,CCWND+4 LOAD RECORD COUNT @V305066 02237000
SH R4,KON1 SUBTRACT ONE @V305066 02238000
ST R4,CCWND+4 REPLACE COUNT @V305066 02239000
L R4,CCWND LOAD IO ADDRSS @V305066 02240000
AH R4,KON1 ADD ONE @V305066 02241000
ST R4,CCWND RESTORE LOAD IO ADDRESS @V305066 02242000
AJALT L R4,ALTIO-1 LOAD ALTERNATE IO AREA @V305066 02243000
AH R4,KON1 ADD ONE @V305066 02244000
ST R4,ALTIO-1 UPDATE ALTERNATE IOAREA @V305066 02245000
UNTRC1 BAL R6,LDIORG @V305066 02246000
B CHMOR ANY MORE FILES TO OPEN ? @V305066 02247000
EJECT 02248000
USING DTFSD,R2 ESTABLISH ADDRESSABILITY @V305066 02249000
GETCON CLI DEVSD,DEV2314 DEV TYPE = 2314 @V305066 02250000
BE INSERT YES @V305066 02251000
LA R4,FOUR(,R4) BUMP TO NEXT ENTRY IN TABLE @VM03137 02252000
CLI DEVSD,DEV3330 3330 @V305066 02253000
BE INSERT YES @V305066 02254000
LA R4,FOUR(R4) BUMP TO NEXT TABLE @V505098 02255000
CLI DEVSD,DEV333B 3330-11 @V505098 02256000
BE INSERT YES @V505098 02257000
LA R4,FOUR(,R4) BUMP TO NEXT TABLE ENTRY @VM03137 02258000
CLI DEVSD,DEV3350 3350 @V505098 02259000
BE INSERT YES @V505098 02260000
LA R4,FOUR(R4) BUMP TO NEXT TABLE ENTRY @V505098 02261000
TM DEVSD,DEV70MB 3340 70MB @V305066 02262000
BM INSERT NO, 35MB @V305066 02263000
LA R4,FOUR(,R4) BUMP TO NEXT TABLE ENTRY @VM03137 02264000
INSERT MVC CONSD,0(R4) MOVE CONTROL FIELD TO DTF @V305066 02265000
BR R6 RETURN TO MAIN LINE @V305066 02266000
EJECT 02267000
CVTUNIT SR R5,R5 CLEAR @V305066 02268000
IC R5,SEVEN(,R2) GET UNIT NUMBER @VM03137 02269000
TM SIX(R2),HEX01 PROGRAMMER LOGICAL UNIT @VM03137 02270000
BO CNVPROG YES, BRANCH @V305066 02271000
SLL R5,TWO MULTIPLY BY 4 @VM03137 02272000
LA R5,SYSTAB(R5) INDEX TO CORRECT XXX @V305066 02273000
MVC DDNAME+3(THREE),0(R5) MOVE XXX TO AREA @VM03137 02274000
CONVERT2 MVC DDNAME(THREE),SYS FIRST 3 CHAR OF LOG UNIT = @VM03137 02275000
* 'SYS' 02276000
MVC SAVEFN(SIX),DDNAME MOVE SYSXXX TO ERR MSG FIELD @VM03137 02277000
BR R6 RETURN TO CALLER @V305066 02278000
CNVPROG CVD R5,DDNAME CONVERT UNIT NUMBER @V305066 02279000
UNPK DDNAME+3(THREE),DDNAME+6(TWO) CVT TO ZONED @VM03137 02280000
OI DDNAME+5,CHAR0 SET LAST ZONE @V305066 02281000
B CONVERT2 GO TO MOVE SYS TO AREA @V305066 02282000
EJECT 02283000
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 02284000
* * 02285000
* ERROR MESSAGES * 02286000
* * 02287000
* * 02288000
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 02289000
SPACE 5 02290000
BADOPEN EQU * @V305066 02291000
LA R4,BUFFER SCRATCH AREA @V305066 02292000
CVD R15,0(R4) CVT ERROR CODE TO DECIMAL @V305066 02293000
UNPK 0(TWO,R4),SIX(TWO,R4) UNPACK ERROR CODE @VM03137 02294000
MVC TWO(Q14,R4),ERRMSG1 SETUP ERROR MESSAGE @VM03137 02295000
OI ONE(R4),CHAR0 CONVERT ERR CODE TO EBCDIC @VM03137 02296000
MVC EIGHT(SEVEN,R4),SAVEFN FILENAME/SYSXXX/TAPN @VM03137 02297000
LR R5,R15 SAVE R15 @V305066 02298000
DMSERR MF=I,SUB=(CHARA,(R4)),NUM=89,LET=E,TEXT='OPEN ERROR COD*02299000
E ''................' @V305066 02300000
LA R15,THIRTY6 RETURN CODE = 36 @VM03137 02301000
CH R5,H8 PUB UNASSIGNED? @V305066 02302000
BNE SVC6 IF NO 8, GO TO CANCEL @V305066 02303000
LR R1,R9 FREE STOR PTR IN R1 @V305066 02304000
LR R9,R15 SAVE R15 CONTENTS @V305066 02305000
BAL R6,FREESTOR FREE ACQUIRED STORAGE @V305066 02306000
LR R15,R9 RESTORE R15 ERROR CODE @V305066 02307000
SR R0,R0 CLEAR REGISTER 0 @V305066 02308000
IC R0,ABCODE AB TERM CODE @V305066 02309000
LA R1,ABTERM ABTERM ROUTINE @V305066 02310000
SVC SVC2 FETCH AB TERM ROUT @V305066 02311000
SPACE 5 02312000
ERR69E LA R5,DOSDSMD POSITION R5 FOR ERROR MSG @V305066 02313000
DMSERR NUM=69,LET=E,SUB=(CHARA,((R5),1)),TEXT='DISK ''..'' NOT*02314000
ACCESSED' @V305066 02315000
LA R15,THIRTY6 RETURN CODE = 36 @V305066 02316000
B SVC6 BR TO CANCEL @VM03141 02317000
SPACE 5 02318000
ERR37E LA R5,DOSDSMD POSITION R5 FOR ERROR MSG @V305066 02319000
DMSERR NUM=37,LET=E,SUB=(CHARA,((R5),1)),TEXT='DISK ''..'' IS *02320000
READ/ONLY' @V305066 02321000
LA R15,THIRTY6 RETURN CODE = 36 @V305066 02322000
B SVC6 BR TO CANCEL @VM03141 02323000
SPACE 5 02324000
USING DTFMT,R2 @V305066 02325000
ERR58E LA R5,DEVID POINTER TO TAPN @V305066 02326000
DMSERR NUM=58,LET=E,TEXT='END-OF-FILE OR END-OF-TAPE ON ''....*02327000
''',SUB=(CHARA,(R5)) @V305066 02328000
LA R15,RC40 RETURN CODE = 40 @V305066 02329000
B SVC6 BR TO CANCEL @VM03141 02330000
SPACE 5 02331000
ERR113S BAL R6,CVTCUU CONVERT CUU @V305066 02332000
LA R6,DEVID DEVID POINTER - TAPX @V305066 02333000
DMSERR NUM=113,LET=S,SUB=(CHARA,(R6),CHARA,(R5)),TEXT='''.... *02334000
(...)'' NOT ATTACHED',MF=(E,'SYS') @V305066 02335000
LA R15,HUNDRED RETURN CODE = 100 @V305066 02336000
B SVC6 BR TO CANCEL @V305066 02337000
SPACE 5 02338000
ERR43E LA R5,DEVID POSITION FOR MESSAGE @V305066 02339000
DMSERR NUM=43,LET=E,SUB=(CHARA,(R5)),TEXT='.... IS FILE PROTEC*02340000
TED' @V305066 02341000
LA R15,THIRTY6 RETURN CODE = 36 @V305066 02342000
B SVC6 BR TO CANCEL @V305066 02343000
ERR88E DMSERR NUM=88,LET=E,SUB=(HEX4A,(R5)),TEXT='UNSUPPORTED DTF TYP*02344000
E ''..''' @V305066 02345000
LA R15,TWENTY4 RETURN CODE = 24 @V305066 02346000
B SVC6 BR TO CANCEL @V305066 02347000
CVTCUU LH R5,0(R5) CUU TO REGISTER @V305066 02348000
SLL R5,FOUR ZERO AND SHIFT LAST 4 BITS @VM03137 02349000
ST R5,DDNAME+4 STORE PACKED DECIMAL VALUE @V305066 02350000
OI DDNAME+7,PACK INSURE SIGN IN LAST POSITION @V305066 02351000
UNPK DDNAME(THREE),DDNAME+6(2) CVT CUU TO ZONE @VM03137 02352000
OI DDNAME+2,CHAR0 PRINTABLE CHARACTER @V305066 02353000
LA R5,DDNAME POINT TO CUU @V305066 02354000
BR R6 RETURN TO CALLER. @VM03141 02355000
SPACE 1 02356000
ERR400S EQU * @V305106 02357000
DMSERR MF=(E,'SYS'),NUM=400,LET=S,SUB=(CHARA,(R2)), @V305106*02358000
TEXT='SYSTEM ''........'' DOES NOT EXIST' @V305106 02359000
LA R15,RC44 RETURN CODE = 44 @V305066 02360000
B SVC6 BR TO CANCEL @VM03141 02361000
SPACE 2 02362000
ERR308E EQU * @V305106 02363000
DMSERR NUM=308,LET=E,SUB=(CHARA,(DOSDSMD,1)), @V305106*02364000
TEXT='''..'' DISK IN CMS FORMAT; INVALID FOR NON-CMS DAT*02365000
ASET' @V305106 02366000
LA R15,TWENTY4 RETURN CODE = 24 @V305066 02367000
B SVC6 CANCEL THE JOB @V305106 02368000
SPACE 1 02369000
NOVSAM EQU * VSAM NOT GEND @V305106 02370000
DMSERR LET=S,NUM=413, @V305106*02371000
TEXT='STORAGE NOT INITIALIZED FOR VSAM PROCESSING' 02372000
LA R15,HUNDRED4 RETURN CODE = 104 @VM03137 02373000
B SVC6 CANCEL THE JOB @V305106 02374000
EJECT 02375000
ERR401S EQU * @V305106 02376000
L R6,ASYSNAMS GET A(SAVED SYS TABLE) @V305106 02377000
USING SYSNAMES,R6 @V305106 02378000
DMSERR MF=(E,'SYS'),LET=S,NUM=401,SUB=(HEXA,VMSIZE,CHARA,CMSVS*02379000
AM,HEX,(R2)),TEXT='V.M. SIZE (.......) CANNOT EXCEED ''.*02380000
.......'' START ADDRESS (......)' @V305106 02381000
DROP R6 @V305106 02382000
LA R15,HUNDRED4 RETURN CODE = 104 @V305066 02383000
B SVC6 BR TO CANCEL @VM03141 02384000
SPACE 1 02385000
ERR410S EQU * @V305106 02386000
DMSERR LET=S,NUM=410,SUB=(DEC,(R3)),TEXT='CONTROL PROGRAM ERRO*02387000
R INDICATION ''....''' @V305106 02388000
LR R15,R3 @V305106 02389000
B SVC6 BR TO CANCEL @VM03141 02390000
ERR302E EQU * @V305106 02391000
DMSERR NUM=302,LET=E,TEXT='NO SYSXXX OPERAND SPECIFIED' 02392000
LA R15,TWENTY4 RC = 24 @VM03137 02393000
B SVC6 CANCEL @V305066 02394000
ERR086I EQU * @VM03188 02395000
DMSERR TEXT='DLBL ''........'' DUMMY INVALID FOR VSAM', *02396000
SUB=(CHARA,(R4)),LET=W,NUM=086 @VM03188 02397000
LR R1,R9 POINT TO FREE AREA @VA04418 02398000
BAL R6,FREESTOR RELEASE ACQUIRED FREE STORAGE @VA04418 02399000
LA R15,EIGHT SET VSAM R.C. OF 8 @VM03188 02400000
LH R14,PIBPT GET PIB ADDRESS @VM03188 02401000
L R14,EIGHT(,R14) POINT TO PROGRAM SAVE AREA @VM03188 02402000
ST R15,40(,R14) AND PLACE R.C. IN USER'S R15 @VM03188 02403000
SVC SVC11 NOW, RETURN TO CALLER. @VM03188 02404000
SPACE 1 02405000
EJECT 02406000
*********************************************************************** 02407000
* CHEK ALL VSAM ACBS FOR DATASET DISK ACCESS, CATALOG 02408000
* DISK ACCESS AND THE CORRECT STATUS (R/W,R/O) FOR BOTH 02409000
*********************************************************************** 02410000
USING SYSCOM,R10 @V305106 02411000
USING IKQACB,R2 @V305106 02412000
VSAMCHEK EQU * @V305106 02413000
TM DOSFLAGS,DOSVSAM DOS SET ON WITH 'VSAM'? @V305106 02414000
BZ NOVSAM ERROR IF NOT... @V305106 02415000
L R7,ABGCOM POINT TO BGCOM @V305106 02416000
ICM R1,15,PPEND DOES ANCHOR TABLE EXIST? @VA11066 02416150
BNZ VSAMCHK1 YES, ALREADY IN PLACE @VA11066 02416300
LA R1,DMSSMNAT IF NOT, CALL STORAGE INITIALIZER @VA11066 02416450
SVC 202 SET UP STORAGE AND ANCHOR TABLE @VA11066 02416600
DC AL4(*+4) ... @VA11066 02416750
VSAMCHK1 EQU * @VA11066 02416900
L R10,ASYSCOM POINT TO SYSCOM @V305106 02417000
L R6,SAVEPTR ADDR IF DTF TO BE OPENED @VA07404 02418000
VSAMLOOP EQU * @VA07404 02419000
LA R4,ACBDDNM GET DDNAME FROM ACB @V305106 02420000
LA R14,HITDS FIRST FIND THE DATASET DOSCB @V305106 02421000
FINDCB L R3,DOSFIRST START AT FIRST DOSCB IN CHAIN @V305106 02422000
LH R8,DOSNUM AND NUMBER OF DOSCBS @V305106 02423000
LTR R8,R8 ARE THERE ANY DEFINED? @V305106 02424000
BZ VSAMLOAD NO, GO SEE IF VSAM IS LOADED @V305101 02425000
CBLOOP CLC 0(SEVEN,R4),DOSDD MATCH ON DDNAME ? @VM03137 02426000
BER R14 IF SO, RETURN TO CALLER @V305106 02427000
L R3,DOSNEXT IF NOT, LOAD A(NEXT DOSCB) @V305106 02428000
LA R3,0(,R3) CLEAR HIGH ORDER BYTE @V305106 02429000
BCT R8,CBLOOP KEEP LOOKING UNTIL END OF CHAIN @V305106 02430000
B VSAMLOAD NONE FOUND, SEE IF VSAM LOADED @V305101 02431000
HITDS CLI DOSDEV,DOSDUM IS DDNAME DLBL'D FOR DUMMY ? @VM03188 02432000
BNE CKIFACC NO, CHECK IF DISK ACCESSED. @VM03188 02433000
MVI ACBERFLG,ACBOLIGN SET ACB ERROR FIELD @VM03188 02434000
B ERR086I AND ISSUE INFORMATION MESSAGE. @VM03188 02435000
CKIFACC LA R1,DOSDSMD-24 POINT TO DISK MODE IN DOSCB @VM03188 02436000
L R15,VCADTLKP AND MAKE SURE IT'S ACCESSED @VM03093 02437000
BALR R14,R15 ... @V305106 02438000
BNZ ERR69E ERROR IF NOT FOUND @V305106 02439000
TM ADTFLG2,ADTFMFD FOUND, IS IT CMS DISK? @V305106 02440000
BO ERR308E ERROR IF SO... @V305106 02441000
TM ADTFLG2,ADTFROS ACCESSED AS DOS OR OS DISK? @V305106 02442000
BZ ERR69E ERROR IF NOT... @V305106 02443000
CLC DOSDD(SEVEN),IJSYSCT OPENING MASTER CATALOG @VM03137 02444000
BE INPUTDS YES, SKIP TO R/W CHEK @V305106 02445000
CLC DOSDD(SEVEN),IJSYSUC OPENING USER CATALOG? @VA06032 02446000
BE INPUTDS BRANCH IF YES @VA06032 02447000
TM ACBOFLGS,ACBCAT USER CATALOG? @VA07854 02448000
BO INPUTDS YES, SKIP TO W/R CHECK @VA07854 02449000
TM ACBMACR1,ACBOUT OPENING DATASET FOR OUTPUT? @V305106 02450000
BZ TESTCAT IF NOT, CONTINUE... @V305106 02451000
TM ADTFLG3,ADTFRW IF SO, MAKE SURE DISK R/W @V305101 02452000
BZ ERR37E ERROR IF NOT R/W @V305101 02453000
SPACE 1 02454000
TESTCAT TM DOSINIT,DOSUCAT IS DATASET ON A USER CATALOG? @V305106 02455000
BO USERCAT IF SO, FIND THE NAME @V305106 02456000
LA R4,IJSYSCT IF NO, USE MASTER CATALOG @V305066 02457000
B FINDCAT GO LOOK FOR THE CAT DOSCB @V305106 02458000
USERCAT LA R4,DOSUCNAM POINT TO USER CAT NAME @V305106 02459000
FINDCAT BAL R14,FINDCB FIND THE CATALOG DOSCB @V305106 02460000
CLI DOSDEV,DOSDUM IS DDNAME DLBL'D FOR DUMMY ? @VM03188 02461000
BE VSAMLOAD YES, BYPASS DISK CHECKS @VM03188 02462000
LA R1,DOSDSMD-Q24 FOUND IT...NOW MAKE SURE @VM03137 02463000
L R15,VCADTLKP THAT DISK IS ACCESSED @VM03093 02464000
BALR R14,R15 ... @V305106 02465000
BNZ ERR69E ERROR IF NOT FOUND @V305106 02466000
TM ADTFLG2,ADTFMFD FOUND, IS IT CMS DISK? @V305106 02467000
BO ERR308E ERROR IF SO... @V305106 02468000
TM ADTFLG2,ADTFROS ACCESSED AS DOS OR OS DISK? @V305106 02469000
BZ ERR69E ERROR IF NOT FOUND @V305106 02470000
TM ACBMACR1,ACBIN OPENING DATASET FOR INPUT? @V305106 02471000
BO INPUTDS YES, CONTINUE @V305106 02472000
TM ADTFLG3,ADTFRW NO, SO MAKE SURE CATALOG DISK @V305101 02473000
BZ ERR37E IS R/W... ERROR IF NOT @V305101 02474000
B VSAMLOAD NOW GO SEE IF VSAM IS LOADED @V305101 02475000
INPUTDS TM ADTFLG3,ADTFRW IS CATALOG DISK R/W ? @V305101 02476000
BO VSAMLOAD IF SO, LET STATS BE RECORDED @V305101 02477000
OI ACBINFLG,ACBSTSKP IF NOT R/O, NO STATS ALLOWED @V305106 02478000
SPACE 1 02479000
DROP R2 @V305106 02480000
SPACE 1 02481000
VSAMLOAD EQU * @VA07404 02482000
LA R6,FOUR(R6) POINT TO NEXT ADCON @VA07404 02483000
CLC 0(2,R6),EOL TEST OF END OF LIST @VA08388 02484000
BE DOVSAMO IF YES PROCD WITH OPEN @VA08388 02485000
L R2,ZERO(,R6) DTF/ACB ADDRESS @VA07404 02486000
USING DTF,R2 @VA07404 02487000
CLI DTFTYPE,ACB ACB ? @VA07404 02488000
BE VSAMLOOP YES, GO PROCESS @VA07404 02489000
DROP R2 @VA07404 02490000
DOVSAMO EQU * @VA08388 02491000
TM VSAMFLG1,VSAMRUN HAS VSAM BEEN LOADED ? @VA07404 02492000
BO GENFLAGS YES, NO NEED TO DO IT AGAIN @V305106 02493000
L R6,ASYSNAMS GET A (SAVED SYS TABLE) @V305106 02494000
USING SYSNAMES,R6 AND MAP IT... @V305106 02495000
LA R2,CMSVSAM POINT TO SAVED VSAM NAME @V305106 02496000
LA R3,TWELVE AND USE 'FINDSYS' CODE @VM03137 02497000
DC X'83230064' FIND SAVED SYSTEM @V305106 02498000
BC 8,LOADED CC=0, ALREADY LOADED @V305106 02499000
BC 4,LOADIT CC=1, EXISTS BUT NOT LOADED @V305106 02500000
SPACE 1 02501000
ERRORS CH R3,FORTY4 RC = 44? @V305106 02502000
BE ERR400S IF SO, NO SUCH SYSTEM @V305106 02503000
B ERR410S OTHERWISE, PAGING I/O ERRORS @V305106 02504000
FORTY4 DC H'44' CP RC FOR 'SYSTEM NOT FOUND' @V305106 02505000
SPACE 1 02506000
LOADIT C R2,VMSIZE WILL VSAM OVERLAY USER STORAGE ? @VA04565 02507000
BL ERR401S YES, THEN GIVE ERROR MESSAGE @V305101 02508000
LA R2,CMSVSAM POINT TO VSAM NAME AGAIN @V305106 02509000
DROP R6 @V305106 02510000
XR R3,R3 R3=0 FOR SHARED COPY @V305106 02511000
DC X'83230064' LOAD THE SHARED VSAM SYSTEM @V305106 02512000
BC 2,ERRORS ERRORS (SHOULDN'T HAPPEN) @V305106 02513000
SPACE 1 02514000
LOADED EQU * OK, ALL LOADED @V305106 02515000
OI VSAMFLG1,VSAMRUN SIGNAL VSAM LOADED AND RUNNING @V305106 02516000
ST R2,AVSAMSYS SAVE VSAM DCSS ADDR IN NUCON @V305106 02517000
GENFLAGS OI IJBFLG04,VSAMON INDICATE VSAM=YES IN SYSCOM @V305106 02518000
OI RMSROPEN,RPSON SET RPS BIT FOR SYSTEM @V305106 02519000
DROP R10 @V305066 02520000
LR R1,R9 POINTER TO FREE STORAGE @V305101 02521000
L R9,SAVEPTR POINT TO LIST OF ACB ADDRESSES @V305101 02522000
BAL R6,FREESTOR FREE ACQUIRED STORAGE @V305101 02523000
LA R1,VSAMOPEN PREPARE TO FETCH VSAM OPEN ROUT @V305066 02524000
LR R0,R9 NOW MOVE LIST POINTER TO R0 @V305101 02525000
* THE FOLLOWING CODE INITIALIZES THE AREA 1000(D) FROM THE 02526000
* BEGINNING OF THE LOGICAL TRANSIENT EXECUTION AREA. 02527000
L R4,DOSTRANS GET A(DOS TRANS AREA) @V305106 02528000
ST R0,LISTPNT(R4) SAVE A(ACB LIST) FOR $$BOVSAM @V305106 02529000
LH R3,PIBPT NOW GET THE USER'S PIBTAB @V305106 02530000
L R3,EIGHT(R3) AND PNT TO USER'S SAVEAREA @V305106 02531000
LA R3,SIXTEEN(,R3) NOW PNT AT REGSAVE PART @V305106 02532000
ST R3,REGADDR-1(R4) SAVE A(USER REG SAVEAREA) @V305106 02533000
NI VSAMFLG1,FF-VIPSOP TURN OFF VIPSOP FLAG @VM03137 02534000
LR R2,R0 NOW WE MUST POINT AT @V305106 02535000
L R2,0(R2) A(FIRST ACB) FOR $BOVSAM @V305106 02536000
SVC SVC2 FETCH $$BOVSAM @V305066 02537000
B EXIT2 WHEN WE COME BACK, GO TO EXIT2 @V305101 02538000
EXIT LR R1,R9 POINTER TO FREE STORAGE @V305066 02539000
BAL R6,FREESTOR FREE ACQUIRED STORAGE @V305066 02540000
EXIT2 SR R15,R15 SET RETURN CODE OF ZERO @V305101 02541000
SVC SVC11 EXIT TO PROB. PROG. FROM $$BOPEN @VM03137 02542000
SPACE 5 02543000
SVC6 LR R1,R9 POINTER TO FREE STORAGE @V305066 02544000
LR R9,R15 SAVE RETURN CODE @V305066 02545000
BAL R6,FREESTOR FREE ACQUIRED STORAGE @V305066 02546000
TM VSAMFLG1,VIPSOP WHERE WE CALLED FROM VIP ? @V305101 02547000
BZ CHKAMS NO, SEE IF AMS RUNNING... @V305101 02548000
STC R9,DOSRC SAVE ERROR RETURN CODE @V305101 02549000
SVC SVC11 AND RETURN TO DMSVIP. @V305066 02550000
CHKAMS LR R15,R9 RESTORE RETURN CODE. @V305101 02551000
TM VSAMFLG1,VSAMSERV IS AMSERV RUNNING ? @V305101 02552000
BZ DOSVC6 NO, JUST ISSUE SVC 6 (CANCEL) @V305101 02553000
LA R1,ABTERM OTHERWISE CALL $$BABEND TO @V305101 02554000
SVC SVC2 GIVE CONTROL TO AMSERV STXIT. @V305066 02555000
DOSVC6 SVC SVCSIX ISSUE CANCEL SVC @V305066 02556000
SPACE 5 02557000
FREESTOR LA R0,FREEDB GET NO. DOUBLE WORDS TO FRET @V305101 02558000
DMSFRET DWORDS=(0),LOC=(1),TYPCALL=BALR @V305101 02559000
BR R6 RETURN TO CALLER @VM03140 02560000
EJECT 02561000
CCW CCW X'73',*,X'20',1 SUPPRESS DATA CHECKS FOR UCS@V305066 02562000
CCW X'73',*,X'20',1 @V305066 02563000
SPACE 5 02564000
TAPEIO DC CL8'TAPEIO' @V305066 02565000
REW DC CL8'REW' @V305066 02566000
SENSE DC CL8'SENSE' @V305066 02567000
READ DC CL8'READ' @V305066 02568000
FSR DC CL8'FSR' @V305066 02569000
FSF DC CL8'FSF' @V305066 02570000
WRITE DC CL8'WRITE' @V305066 02571000
BSR DC CL8'BSR' @V305066 02572000
WTM DC CL8'WTM' @V305066 02573000
EOL DC X'0A02' END OF ACB/DTF LIST @VA08388 02574000
SPACE 5 02575000
EIGHTY DC F'80' @V305066 02576000
OSRDERR DC H'80' OS STATE ERROR CODE @V305066 02577000
ERRMSG1 DC C''' ON '' ''' @V305066 02578000
ABTERM DC CL8'$$BABEND' @V305066 02579000
VSAMOPEN DC CL8'$$BOVSAM' @V305066 02580000
MULTVOL DC CL8'$$BCMT07' @V305066 02581000
VOL1READ DC CL4'VOL1' @V305066 02582000
KON1 DC H'1' @V305066 02583000
KON2 DC H'2' @V305066 02584000
CONNINE DC H'9' @V305066 02585000
REC DC XL5'0000000001' @V305066 02586000
BLANKS DC 76C' ' @V305066 02587000
NOTATT DC H'5' TAPE NOT ATTACHED @V305066 02588000
TM DC H'2' TAPE MARK @V305066 02589000
H10 DC H'10' LENGTH OF ONE EXTENT ENTRY @V305066 02590000
H7 DC H'7' @V305066 02591000
H8 DC H'8' @V305066 02592000
IPTRDR DC H'1' SYSIPT/SYSRDR @V305066 02593000
LENGTH DC F'82' @V305066 02594000
PLIOPT DC CL8'PLIOPT' PL/I OPTIMIZING COMPILER @VA07764 02595000
READ80 DC F'80' @V305066 02596000
READ81 DC F'81' @V305066 02597000
VOL1 DC CL4'VOL1' @V305066 02598000
UVL DC CL3'UVL' @V305066 02599000
HDR1 DC CL4'HDR1' @V305066 02600000
V DC CL2'V ' VARIABLE/UNDEFINED FLAG @V305066 02601000
F DC CL2'F ' FIXED FLAG @V305066 02602000
ERASE DC CL8'ERASE' @V305066 02603000
SYS DC CL3'SYS' FIRST 3 CHAR OF LOGICAL UNIT @V305066 02604000
DMSSMNAT DC CL8'DMSSMNAT' ROUTINE TO SET UP ANCHOR TABLE @VA11066 02604500
IJSYSCT DC CL8'IJSYSCT' MASTER CATALOG @V305066 02605000
IJSYSUC DC CL8'IJSYSUC' USER CATALOG @VA06032 02606000
SPACE 5 02607000
* THE FOLLOWING TABLE (CC) CONTAINS DUMMY UPPER EXTENT LIMITS (CCHH) 02608000
* FOR DATA SETS WRITTEN ON CMS DISKS UNDER CMS/DOS. THE 'HH' PORTION 02609000
* TYPE (IE 2314, 3330, 3330-11, 3340, 3350) AND THE FACT THAT 02610000
* A MAXIMUN OF 65,533 02611000
* DEVICE TYPE (IE 2314, 3330, 3340). SINCE A CMS FILE HAS A MAXIMUM 02612000
* CAPACITY OF 65,533 RECORDS REGARDLESS OF DEVICE TYPE, AN EXPLICIT 02613000
* CYLINDER LIMIT IS NOT REQUIRED. 02614000
CC EQU * @VA07181 02615000
DC XL4'FFFF0013' 2314/2319 @VA07181 02616000
DC XL4'FFFF0012' 3330 @VA07181 02617000
DC XL4'FFFF0012' 3330-11 @V505098 02618000
DC XL4'FFFF001D' 3350 @V505098 02619000
DC XL4'FFFF000B' 3340 35MB @VA08280 02620000
DC XL4'FFFF000B' 3340 70MB @VA07181 02621000
SPACE 02622000
ENDCC EQU (*-CC)/4 @V305066 02623000
SPACE 2 02624000
CC2 DC XL4'00C80013' 2314/2319 @V305066 02625000
DC XL4'01FF0012' 3330 @V305066 02626000
DC XL4'03FE0012' 3330-11 @V505098 02627000
DC XL4'022B001D' 3350 @V505098 02628000
DC XL4'015C000B' 3340 35MB @V305066 02629000
DC XL4'02B8000B' 3340 70MB @V305066 02630000
ENDCC2 EQU (*-CC2)/4 @V305066 02631000
SPACE 2 02632000
CON2314 DS 0H 2314 CONSTANTS @V305066 02633000
DC H'534' @V305066 02634000
DC H'101' @V305066 02635000
DC H'7294' @V305066 02636000
CON3330 DS 0H 3330 & 3330-11 CONSTANTS @V505098 02637000
DC H'512' @V305066 02638000
DC H'135' @V305066 02639000
DC H'13030' @V305066 02640000
CON3340 DS 0H 3340 CONSTANTS @V305066 02641000
DC H'512' @V305066 02642000
DC H'167' @V305066 02643000
DC H'8368' @V305066 02644000
CON3350 DS 0H 3350 CONSTANTS @V505098 02645000
DC H'512' @V505098 02646000
DC H'185' @V505098 02647000
DC H'19069' @V505098 02648000
SPACE 2 02649000
DS 0F @V305066 02650000
DISKTAB EQU * @V305066 02651000
DC XL1'08',XL1'09',H'8368',XL4'1556000B' 3340 35 M@V505098 02652000
DC XL1'08',XL1'0A',H'8368',XL4'1556000B' 3340 70 M@V505098 02653000
DC XL1'01',XL1'01',H'7294',XL4'0CCD0013' 2314 @V505098 02654000
DC XL1'04',XL1'04',H'13030',XL4'0D7A0012' 3330 @V505098 02655000
DC XL1'07',XL1'07',H'19069',XL4'0889001D' 3350 @V505098 02656000
DC XL1'05',XL1'05',H'13030',XL4'0D7A0012' 3330-11 @V505098 02657000
DISKEND EQU (*-DISKTAB)/10 @V305066 02658000
SPACE 2 02659000
SYSTAB DS 0H @V305066 02660000
DC CL4'RDR' 00 @V305066 02661000
DC CL4'IPT' 01 @V305066 02662000
DC CL4'PCH' 02 @V305066 02663000
DC CL4'LST' 03 @V305066 02664000
DC CL4'LOG' 04 @V305066 02665000
DC CL4'LNK' 05 @V305066 02666000
DC CL4'RES' 06 @V305066 02667000
DC CL4'SLB' 07 @V305066 02668000
DC CL4'RLB' 08 @V305066 02669000
DC CL4'USE' 09 @V305066 02670000
DC CL4'REC' 0A @V305066 02671000
DC CL4'CLB' 0B @V305066 02672000
DC CL4'VIS' 0C @V305066 02673000
DC CL4'CAT' 0D @V305066 02674000
DS 0F @V305066 02675000
TYPETAB DC XL1'02',AL3(UNITREC1),CL7'DTFCD' @V305066 02676000
DC XL1'03',AL3(UNITREC3),CL7'DTFCN' @V305066 02677000
DC XL1'04',AL3(UNITREC2),CL7'DTFCD' @V305066 02678000
DC XL1'08',AL3(UNITREC4),CL7'DTFPR' @V305066 02679000
DC XL1'10',AL3(TAPEWK),CL7'DTFMT' @V305066 02680000
DC XL1'11',AL3(TAPEDATA),CL7'DTFMT' @V305066 02681000
DC XL1'12',AL3(TAPEDATA),CL7'DTFMT' @V305066 02682000
DC XL1'14',AL3(TAPEDATA),CL7'DTFMT' @V305066 02683000
DC XL1'20',AL3(DISK),CL7'DTFSD' @V305066 02684000
DC XL1'31',AL3(CPORDI),CL7'DTFCP' @V305066 02685000
DC XL1'32',AL3(CPORDI),CL7'DTFCP' @V305066 02686000
DC XL1'33',AL3(CPORDI),CL7'DTFDI' @V305066 02687000
TYPELAST EQU (*-TYPETAB)/11 @V305066 02688000
EJECT 02689000
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 02690000
* * 02691000
* EQUATES * 02692000
* * 02693000
* * 02694000
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 02695000
SPACE 2 02696000
M7 EQU B'0111' LOW 3 BYTES FOR ICM/STCM @VM03137 02697000
DEV3340 EQU X'07' 3340 @VM03137 02698000
Q4095 EQU 4095 FOR ESTABLISHING ADDRESSABILITY @VM03137 02699000
Q90 EQU 90 OFFSET OF PIB TABLE ADDRESS @VM03137 02700000
* OTHER DECIMAL EQUATES: 02701000
Q11 EQU 11 @VM03137 02702000
Q14 EQU 14 @VM03137 02703000
Q24 EQU 24 @VM03137 02704000
Q72 EQU 72 @VM03137 02705000
Q75 EQU 75 @VM03137 02706000
Q76 EQU 76 @VM03137 02707000
Q79 EQU 79 @VM03137 02708000
Q88 EQU 88 @VM03137 02709000
Q112 EQU 112 @VM03137 02710000
SVC202 EQU 202 @VM03137 02711000
M3 EQU B'0011' @V305066 02712000
O EQU C'O' @V305066 02713000
BF EQU X'BF' @V305066 02714000
B7 EQU X'B7' @V305066 02715000
P1600 EQU X'C0' 1600 PUB DENSITY @V305066 02716000
SING800 EQU X'C0' 800 SINGLE PUB DEN @V305066 02717000
MFCMASK EQU X'C0' @V305066 02718000
DUAL800 EQU X'C8' 800 BPI DUAL DENSITY @V305066 02719000
DF EQU X'DF' SET OFF COBOL IGN IND. @V305066 02720000
DEN6250 EQU X'D0' PUB 6250 DENSITY @V305066 02721000
PCHMASK EQU X'EF' @V305066 02722000
FB EQU X'FB' @V305066 02723000
FD EQU X'FD' @V305066 02724000
FE EQU X'FE' @V305066 02725000
FF EQU X'FF' @V305066 02726000
CHAR0 EQU X'F0' @V305066 02727000
TAPDEV EQU X'F1' @V305066 02728000
RDTAP2 EQU X'F1' @V305066 02729000
F7 EQU X'F7' RESET NEW VOL INDICATOR @V305066 02730000
DEV70MB EQU X'0A' 3340 70MB @V305066 02731000
MODEL4 EQU X'0B' 3420 MODEL 4 @V305066 02732000
MODEL6 EQU X'0C' 3420 MODEL 6 @V305066 02733000
PRTPCH EQU X'0C' PRINT/PUNCH @V305066 02734000
PACK EQU X'0C' @V305066 02735000
MODEL8 EQU X'0D' 3420 MODEL 8 @V305066 02736000
ANOTHER EQU X'00' ANOTHER DTF IN OPEN LIST @V305066 02737000
HDR00 EQU X'00' ZEROS IN HDR RECORD @V305066 02738000
LOWLIM0 EQU X'00' SET LOWLIM TO 0 FOR EXT TYPE 01 @V305066 02739000
DEFEXTSQ EQU X'00' DEF EXT SEQ @V305066 02740000
CLEAR EQU X'00' USED TO CLEAR SWITCHES @V305066 02741000
DEN EQU X'00' @V305066 02742000
DEF2311 EQU X'00' DEV CODE IN DTF = 2311 @V305066 02743000
HEX00 EQU X'00' @V305066 02744000
ZERO EQU X'00' @V305066 02745000
ON EQU X'01' TURN SW ON @V305066 02746000
RECTRK1 EQU X'01' INIT TO 1 REC/TRK @V305066 02747000
SW2311 EQU X'01' DEV CODE IN DTF=00, 2311 DEF @V305066 02748000
REC1 EQU X'01' RECORD ON SEARCH ARGUMENT @V305066 02749000
TYPE01 EQU X'01' DAT EXT TYPE @V305066 02750000
UNITEXC EQU X'01' UNIT EXCEPTION @V305066 02751000
WRITEOP EQU X'01' WRITE CCW OPCODE @V305066 02752000
DEV2314 EQU X'01' 2314/2319 @V305066 02753000
DEVTAP EQU X'01' @V305066 02754000
TRACK7 EQU X'01' @V305066 02755000
RPFILE EQU X'01' @V305066 02756000
HEX01 EQU X'01' @V305066 02757000
RPSON EQU X'01' SYSGEN RPS=YES FLG IN COMREG @V305106 02758000
ASC EQU X'02' ASCII SPECIFIED IN DTF @V305066 02759000
UTILITY EQU X'02' UTILITIES BIT @V305066 02760000
READOP EQU X'02' READ CCW OPCODE @V305066 02761000
RECTRK2 EQU X'02' RECS/TRK = 02 @V305066 02762000
TMOPT EQU X'02' @V305066 02763000
PPWFILE EQU X'02' @V305066 02764000
READER EQU X'02' @V305066 02765000
HEX02 EQU X'02' @V305066 02766000
CONSOLE EQU X'03' DTFTYPE FOR DTFCN @V305066 02767000
MODEL3 EQU X'03' 3420 MODEL 3 @V305066 02768000
DTFCD EQU X'04' PUNCH @V305066 02769000
SPANNED EQU X'04' SPANNED @V305066 02770000
MODEL5 EQU X'04' 3420 MODEL 5 @V305066 02771000
USERENTY EQU X'04' USER ENTRY @V305066 02772000
BPI1600 EQU X'04' 1600 BPI TAPE DENSITY @V305066 02773000
LSTPCH EQU X'04' SYSLST/SYSPCH @V305066 02774000
PRTIND EQU X'04' @V305066 02775000
DEV3330 EQU X'04' @V305066 02776000
IOREG EQU X'04' @V305066 02777000
PCHFILE EQU X'04' @V305066 02778000
PCH3525 EQU X'04' @V305066 02779000
TWOIO EQU X'04' @V305066 02780000
HEX04 EQU X'04' @V305066 02781000
MODEL7 EQU X'05' 3420 MODEL 7 @V305066 02782000
DEV333B EQU X'05' 3330-11 DTF DEV CODE @V505098 02783000
DEV3350 EQU X'07' 3350 DTF DEV CODE @V505098 02784000
ASSOC EQU X'07' FUNC/ASSOC SPECIFIED ON DTF @V305066 02785000
DTFPR EQU X'08' PRINTER @V305066 02786000
INPUT EQU X'08' INPUT FILE @V305066 02787000
LOADPT EQU X'08' TAPE LOAD POINT @V305066 02788000
ENDEXT EQU X'08' END OF EXTENT CONDITION @V305066 02789000
TYP2314 EQU X'08' 2314/2319 @V305066 02790000
HEX08 EQU X'08' @V305066 02791000
PRINTER EQU X'08' @V305066 02792000
VARIBL EQU X'08' @V305066 02793000
TYP3330 EQU X'09' 3330 ADT DEV CODE @V505098 02794000
TYP3350 EQU X'0B' 3350 ADT DEV CODE @V505098 02795000
HEX10 EQU X'10' @V305066 02796000
RDR3525 EQU X'10' @V305066 02797000
PRT3525 EQU X'10' @V305066 02798000
BPI6250 EQU X'10' 6250 TAPE DENSITY FROM SENSE @V305066 02799000
BPI800 EQU X'10' 800 BPI FROM SENSE @V305066 02800000
SEVTRK EQU X'10' 7TRK SENSE INDICATOR @V305066 02801000
NEWVOL EQU X'10' NEW VOLUME SWITCH @V305066 02802000
DOS EQU X'10' IND. DOSCB FOR DOS DISK @V305066 02803000
TAP7 EQU X'10' @V305066 02804000
EXITEOF EQU X'10' SW TO EXIT TO EOF ROUT @V305066 02805000
READZONE EQU X'10' @V305066 02806000
CPTAP EQU X'10' @V305066 02807000
IO2 EQU X'10' @V305066 02808000
TRKHOLD EQU X'10' TRK HOLD OPTION @V305066 02809000
PBITON EQU X'10' @V305066 02810000
NOLAB EQU X'11' NOLAB/NONSTD @V305066 02811000
STD EQU X'12' @V305066 02812000
HEX18 EQU X'18' @V305066 02813000
SDTYPE EQU X'20' DTFSD - DISK @V305066 02814000
OPENIGN EQU X'20' @V305066 02815000
DUAL EQU X'20' DUAL DENSITY DRIVE @V305066 02816000
LASTVOL EQU X'20' LAST VOLUME OF DATA SET @V305066 02817000
PCH2520 EQU X'20' 2520 PUNCH @V305066 02818000
HEX20 EQU X'20' @V305066 02819000
CNTLCHAR EQU X'20' @V305066 02820000
TWENTY EQU X'20' @V305066 02821000
VSAMON EQU X'20' SYSGEN VSAM=YES FLG IN SYSCOM @V305106 02822000
PCH2540 EQU X'21' 2540 PUNCH @V305066 02823000
PUN3525 EQU X'23' @V305066 02824000
ABCODE EQU X'26' CODE PASSED TO DMSBAB @V305066 02825000
ACB EQU X'28' @V305066 02826000
THIRTY1 EQU X'31' @V305066 02827000
THIRTY2 EQU X'32' @V305066 02828000
THIRTY3 EQU X'33' @V305066 02829000
BLANK EQU X'40' @V305066 02830000
HEX40 EQU X'40' @V305066 02831000
FORTY EQU X'40' @V305066 02832000
LA EQU X'41' @V305066 02833000
PRTUCS EQU X'42' 1403 WITH UCS @V305066 02834000
UCS EQU X'42' @V305066 02835000
FIFTY EQU X'50' @V305066 02836000
TCR EQU X'51' TAPE CARTRIDGE READER @V305066 02837000
SIXTY EQU X'60' @V305066 02838000
DSK2314 EQU X'62' @V305066 02839000
DSK3330 EQU X'63' 3330-11 PUB DEV CODE @V505098 02840000
DSK333B EQU X'65' 3350 PUB DEV CODE @V505098 02841000
DSK3350 EQU X'67' @V505098 02842000
DSK3340 EQU X'68' @V305066 02843000
DSK35MB EQU X'69' 3340 35MB @V305066 02844000
DATA EQU X'7B' ALLOW DATA CHECKS @V305066 02845000
HEX7F EQU X'7F' @V305066 02846000
SUPPRESS EQU X'73' SUPPRESS DATA CHECKS @V305066 02847000
PHTAB EQU X'80' DTFPH TABLE @V305066 02848000
STDLABEL EQU X'80' STD LABEL TAPE @V305066 02849000
CON80 EQU X'80' @V305066 02850000
DATACKS EQU X'80' @V305066 02851000
BUSY EQU X'80' @V305066 02852000
HEX80 EQU X'80' @V305066 02853000
EQCHK EQU X'86' EQUIPMENT CHECK @V305066 02854000
NINETY2 EQU X'92' @V305066 02855000
EXCP EQU 0 @V305066 02856000
ONE EQU 1 @V305066 02857000
TEN EQU 10 @V305066 02858000
HUNDRED EQU 100 @V305066 02859000
HUNDRED4 EQU 104 @V305066 02860000
SVC11 EQU 11 @V305066 02861000
ELEVEN EQU 11 @V305066 02862000
REGADDR EQU 1181 A(USER REGSAVE AREA) FROM TRANS S@V305106 02863000
LISTPNT EQU 1196 A(USER ACB LIST) FROM TRANS START@V305106 02864000
TWELVE EQU 12 @V305066 02865000
THIRTEEN EQU 13 @V305066 02866000
FOURTEEN EQU 14 @V305066 02867000
FIFTEEN EQU 15 @V305066 02868000
SIXTEEN EQU 16 @V305066 02869000
SEVTEEN EQU 17 @V305066 02870000
SVC2 EQU 2 @V305066 02871000
TWO EQU 2 @V305066 02872000
TWENTY4 EQU 24 @V305066 02873000
THREE EQU 3 @V305066 02874000
THIRTY6 EQU 36 @V305066 02875000
FOUR EQU 4 @V305066 02876000
RC40 EQU 40 @V305066 02877000
RC44 EQU 44 @V305066 02878000
FIVE EQU 5 @V305066 02879000
SVCSIX EQU 6 @V305066 02880000
SIX EQU 6 @V305066 02881000
WAIT EQU 7 @V305066 02882000
SEVEN EQU 7 @V305066 02883000
SVC8 EQU 8 @V305066 02884000
EIGHT EQU 8 @V305066 02885000
DIVID9 EQU 9 @V305066 02886000
NINE EQU 9 @V305066 02887000
EJECT 02888000
FREE DSECT FREE STORAGE DSECT @VM03139 02889000
DDNAME DS D MESSAGE FIELD - SYSXXX/CUU @V305066 02890000
SETMODE DS D CCW @V305066 02891000
STMODCCW DS D CCW @V305066 02892000
FULLWORD DS F USED FOR IO ADD/NUC.TAB. ADD @V305066 02893000
BUFFER DS XL1 NEXT 21F IO BUFFER @V305066 02894000
BUFF2 DS XL1 LOADPT @V305066 02895000
DS XL1 @V305066 02896000
BUFF4 DS XL1 BPI @V305066 02897000
DS XL2 @V305066 02898000
BUFF7 DS XL1 MODEL @V305066 02899000
DS XL1 @V305066 02900000
DS 19F REST OF BUFFER @V305066 02901000
TEMPSAVE DS F TEMP. SAVE AREA @V305066 02902000
HOLD DS F TEMP. SAVE AREA @V305066 02903000
SAVEPTR DS F TEMP. SAVE AREA @V305066 02904000
CCBAD DS F DOSCB ADDRESS @V305066 02905000
SPACE 2 02906000
PLIST DS CL8 IO PLIST @V305066 02907000
FUNC DS CL8 @V305066 02908000
DEVID DS CL4 @V305066 02909000
PMODE DS 1X @V305066 02910000
BUFFAD DS CL3 @V305066 02911000
BUFFLEN DS CL4 @V305066 02912000
BYTES DS CL4 @V305066 02913000
SPACE 2 02914000
SAVEFN DS CL7 MSG FLD FOR SYSXXX/FILENAME/TAPN @V305066 02915000
SAVESENS DS XL1 SAVE FOR SENSE INFORMATION @V305066 02916000
DS XL1 @V305066 02917000
MOD468SW DS XL1 SW FOR 3420 MODELS 4,8,8 @V305066 02918000
MOD357SW DS XL1 SW FOR 3420 MODELS 3,5,7 @V305066 02919000
TEMP DS XL1 SAVE FOR PUB ZONE @V305066 02920000
FULSAV DS H TEMP. SAVE AREA @V305066 02921000
CPBYTE DS XL1 SAVE FOR DTFCP/DTFDI DTF TYPE @V305066 02922000
CPBYTE2 DS XL1 2311 DEFAULT DEV. CODE IN DTFSD @V305066 02923000
FREEND DS 0D @V305101 02924000
FREELN EQU (FREEND-FREE) @V305101 02925000
FREEDB EQU (FREEND-FREE)/8 @V305101 02926000
EJECT 02927000
EXTENT DSECT @V305066 02928000
TYPEEXT DS CL1 TYPE OF DATA EXTENT @V305066 02929000
TYPE00 EQU X'00' NO EXTENTS PRESENT @V305066 02930000
EXTSEQ DS CL1 EXTENT SEQUENCE NUMBER @V305066 02931000
EXTLOW DS CL4 EXTENT LOWER LIMIT @V305066 02932000
EXTUP DS CL4 EXTENT UPPER LIMIT @V305066 02933000
EJECT 02934000
DTF DSECT @V305066 02935000
DS CL16 @V305066 02936000
FLAGIGN DS CL1 @V305066 02937000
DS CL3 @V305066 02938000
DTFTYPE DS CL1 DTF TYPE @V305066 02939000
OPENSW DS CL1 OPEN SWITCH @V305066 02940000
DS CL14 @V305066 02941000
OPENSW2 DS CL1 @V305066 02942000
DS CL16 @V305066 02943000
REG DS CL1 @V305066 02944000
DS CL1 @V305066 02945000
IOPTR DS CL1 @V305066 02946000
EJECT 02947000
DTFUNIT DSECT @V305066 02948000
CCB DS CL6 @V305066 02949000
LOGUNT DS CL3 @V305066 02950000
CCWADDR DS CL3 @V305066 02951000
DS CL4 @V305066 02952000
SWITCH3 DS CL4 @V305066 02953000
DTFTYP DS CL1 @VM03139 02954000
SWITCH DS CL1 @V305066 02955000
COMCODE DS CL2 @V305066 02956000
BUFFER1 DS CL10 @V305066 02957000
LODIOREG DS CL4 @V305066 02958000
DEVCODE DS CL1 @V305066 02959000
EJECT 02960000
DTFSDW DSECT SEQUENTIAL DISK WORKFILE DSECT @VM03139 02961000
DS CL6 @V305066 02962000
UNITSDW DS CL1 LOGICAL UNIT @V305066 02963000
CLASSSDW DS CL1 CLASS @V305066 02964000
DS CL4 @V305066 02965000
DOSSDW DS CL4 DOSCB ADDRESS @V305066 02966000
DS CL4 @V305066 02967000
TYPESDW DS CL1 DTF TYPE X'20' @V305066 02968000
SDWFLAG1 DS CL1 @V305066 02969000
OPENSDW EQU X'04' FILE OPENED @V305066 02970000
FILESDW DS CL7 FILENAME @V305066 02971000
DEVSDW DS CL1 DEVICE TYPE CODE @V305066 02972000
SDWCAP DS CL2 TRACK CAPACITY COUNTER @V305066 02973000
DS CL4 @V305066 02974000
SDWSEQ DS CL1 EXTENT SEQUENCE NUMBER @V305066 02975000
COMSDW DS CL1 OPEN COMMUNICATIONS BYTE @V305066 02976000
EXTOPENW EQU X'04' EXTENT OPENED @V305066 02977000
LOHDSDW DS CL1 LOWER HEAD LIMIT @V305066 02978000
UPHDSDW DS CL1 UPPER HEAD LIMIT @V305066 02979000
LRECLSDW DS CL2 RECORD LENGTH @V305066 02980000
EXT1LL DS CL4 INITIAL EXTENT LOWER LIMIT @V305066 02981000
CUREXTLL DS CL4 CURRENT EXTENT LOWER LIMIT @V305066 02982000
EXTUPLIM DS CL4 EXTENT UPPER LIMIT @V305066 02983000
SEEKSDW DS CL2 SEEK ADDRESS (CCHH) @V305066 02984000
SRCHSDW DS CL4 SEARCH ADDRESS (CCHH) @V305066 02985000
RECSDW DS CL1 RECORD NUMBER @V305066 02986000
LOGMODSW DS CL1 LOGIC MODULE SWITCH @V305066 02987000
SWOFF EQU X'7F' SET WORK FILE SW OFF @V305066 02988000
MAXREC DS CL2 MAXIMUM RECORD LENGTH @V305066 02989000
DS CL1 @V305066 02990000
EOFSDW DS CL3 USER'S EOF ADDRESS @V305066 02991000
LOGIND DS CL1 LOGICAL INDICATORS @V305066 02992000
CNTLIM EQU DTFSDW+144 COUNT AREA @V305066 02993000
EJECT 02994000
DTFSD DSECT SEQUENTIAL DISK DSECT @V305066 02995000
DS CL6 @V305066 02996000
UNITSD DS CL1 LOGICAL UNIT @V305066 02997000
CLASSSD DS CL1 CLASS @V305066 02998000
DS CL4 @V305066 02999000
DOS1SD DS CL4 DOSCB ADDRESS @V305066 03000000
SDFLAG0 DS CL1 @V305066 03001000
SPANSD EQU X'02' SPANNED PROCESSING @V305066 03002000
DS CL3 @V305066 03003000
TYPESD DS CL1 DTF TYPE = X'20' @V305066 03004000
SDFLAG1 DS CL1 @V305066 03005000
SDBLOCK EQU X'40' BLOCKED FILE @V305066 03006000
SDWORK EQU X'20' WORK FILE @V305066 03007000
OPENSD EQU X'04' FILE OPEN @V305066 03008000
INPSD EQU X'02' INPUT FILE @V305066 03009000
FILESD DS CL7 FILENAME @V305066 03010000
DEVSD DS CL1 DEVICE TYPE CODE @V305066 03011000
DS CL8 @V305066 03012000
COMSD DS CL1 OPEN COMMUNICATIONS BYTE @V305066 03013000
NOEXTSD EQU X'80' NO MORE EXTENTS @V305066 03014000
EOFSD EQU X'10' EXIT TO USER'S EOF ROUTINE @V305066 03015000
DS CL5 @V305066 03016000
SDIO1 DS CL4 ADDRESS OF IOAREA1 @V305066 03017000
DS CL4 @V305066 03018000
HHSD DS CL2 LOWER HEAD LIMIT @V305066 03019000
CCHHSD DS CL4 EXT UPPER LIMIT (CCHH) @V305066 03020000
SEEKSD DS CL2 SEEK ADDRESS (BB) @V305066 03021000
SEARCHSD DS CL4 SEARCH ARGUMENT @V305066 03022000
RECSD DS CL1 RECORD NUMBER @V305066 03023000
EODSD DS CL3 EOF ADDRESS IF INPUT @V305066 03024000
CONSD DS CL4 CCHH CONTROL FIELD @V305066 03025000
TRK EQU CONSD+3 TRK PORTION OF CCHH CONTROL FLD @V305066 03026000
RECTRKSD DS CL1 NO RECS PER TRK/INP @V305066 03027000
* NO RECS PER TRK MINUS ONE/OUT 03028000
SDFLAG2 DS CL1 @V305066 03029000
BLKLESS1 DS CL2 BLOCKSIZE MINUS ONE @V305066 03030000
CCHHRSD DS CL5 EXT LOWER LIMIT AND RECORD NO. @V305066 03031000
TRKCAPSD DS CL3 TRACK CAPACITY COUNTER IF OUTPUT @V305066 03032000
IOREGSD DS CL4 INST. TO LOAD IOREG @V305066 03033000
CURIOSD DS CL4 ADDRESS OF CURRENT I/O AREA @V305066 03034000
LRECLSD DS CL4 LOGICAL RECORD SIZE @V305066 03035000
ENDIOSD DS CL4 ADDRESS OF END OF I/O AREA @V305066 03036000
SDFLAG3 DS CL1 LOGICAL INDICATORS @V305066 03037000
IO2SD EQU X'08' 2 I/O AREAS @V305066 03038000
FIXSD EQU X'02' FIXED LENGTH RECORDS @V305066 03039000
CNTRLSD EQU X'01' CONTROL PARAMETER SPECIFIED @V305066 03040000
UNDEFOP EQU X'04' UNDEFINED O/P FILE @V305066 03041000
DS CL35 @V305066 03042000
CCWA DS CL8 BEG. OF VARIABLE PORTION OF DTF @V305066 03043000
CCWB DS CL8 CHK CCWA/CCWB FOR TRUNCS AND UPD @V305066 03044000
DS CL12 @V305066 03045000
DOS2SD DS CL4 VAR/UNDEF/SPAN/INP/UPD=NO DOSCB ADD@V305066 03046000
DS CL8 @V305066 03047000
ORG CCWA FIXBLK,UPDATE,INP @V305066 03048000
DS CL36 FIXBLK,CONTROL,OUTPUT @V305066 03049000
DOS3SD DS CL4 DOSCB ADDRESS @V305066 03050000
DS CL8 @V305066 03051000
ORG CCWA FIXBLK,TRUNC,UPDATE,INP @V305066 03052000
DS CL52 VAR,OUTPUT,CONTROL @V305066 03053000
DOS4SD DS CL4 DOSCB ADDRESS @V305066 03054000
DS CL8 @V305066 03055000
ORG CCWA @V305066 03056000
DS CL12 FIXBLK,CONTROL,INPUT @V305066 03057000
DOS5SD DS CL4 DOSCB ADDRESS @V305066 03058000
DS CL8 @V305066 03059000
ORG CCWA VAR,UNDEF,INP,UPDATE @V305066 03060000
DS CL68 @V305066 03061000
DOS6SD DS CL4 DOSCB ADDRESS @V305066 03062000
DS CL8 @V305066 03063000
ORG CCWA UNDEF,OUTPUT,CONTROL @V305066 03064000
DS CL45 @V305066 03065000
DOS7SD DS CL4 DOSCB ADDRESS @V305066 03066000
DS CL8 @V305066 03067000
ORG CCWA @V305066 03068000
DS CL12 FIXBLK,INP,TRUNCS=NO,UPD=NO @V305066 03069000
DOS8SD DS CL4 CONTROL= YES DOSCB ADDRESS @V305066 03070000
DS CL8 @V305066 03071000
EJECT 03072000
DTFMT DSECT @V305066 03073000
DS CL6 @V305066 03074000
UNITMT DS CL1 LOGICAL UNIT @V305066 03075000
CLASSMT DS CL1 CLASS @V305066 03076000
DS CL8 @V305066 03077000
MTFLAG0 DS CL1 TAPE SWITCH @V305066 03078000
DS CL3 @V305066 03079000
TYPEMT DS CL1 DTF TYPE = X'10'-X'14' @V305066 03080000
MTFLAG1 DS CL1 @V305066 03081000
WKNORWD EQU X'80' NO REWIND SPECIFIED @V305066 03082000
MTWORK EQU X'10' WORK AREA SPECIFIED @V305066 03083000
MTINP EQU X'08' INPUT FILE @V305066 03084000
MTFN DS CL8 FILENAME @V305066 03085000
MTFLAG2 DS CL1 TAPE SWITCH @V305066 03086000
DS CL1 @V305066 03087000
NOREWIND EQU X'10' NOREWIND SPECIFIED @V305066 03088000
NONSTD EQU X'40' NON-STANDARD LABEL PROCESSING @V305066 03089000
BACKWARD EQU X'08' DRIVE DIRECTION = BACKWARD @V305066 03090000
MTFLAG3 DS CL1 TAPE SWITCH @V305066 03091000
FILETYPE EQU X'20' INPUT FILE @V305066 03092000
MTOPEN EQU X'04' FILE OPEN @V305066 03093000
ENDFILE EQU X'08' END OF FILE SWITCH ON @V305066 03094000
DS CL3 @V305066 03095000
MTFLAG4 DS CL1 @V305066 03096000
MTDOF DS CL3 END OF FILE ADDRESS @V305066 03097000
MTBLOCK DS CL4 BLOCK COUNT @V305066 03098000
DS CL8 @V305066 03099000
MTIOREG DS CL4 INST TO LOAD IOREG @V305066 03100000
DS CL8 @V305066 03101000
MTIO DS CL4 IOAREA ADDRESS @V305066 03102000
EJECT 03103000
DTFCP DSECT @V305066 03104000
DS CL8 @V305066 03105000
CPCCW1 DS CL4 CCW ADDRESS @V305066 03106000
DOSCB1 DS CL4 @V305066 03107000
CPFLAG0 DS CL1 SWITCH @V305066 03108000
DS CL3 @V305066 03109000
TYPECP DS CL1 DTF TYPE @V305066 03110000
CPFLAG1 DS CL1 OPEN INDICATORS @V305066 03111000
CPFN DS CL7 FILENAME @V305066 03112000
CPDEV DS CL1 DEVICE TYPE CODE @V305066 03113000
CPDSK DS CL1 CODE IND WHETHER DISK POSSIBLE @V305066 03114000
CPSYSPCH DS CL1 @V305066 03115000
DS CL1 @V305066 03116000
CPIOREG DS CL1 IOREG @V305066 03117000
DS CL3 @V305066 03118000
CPIOREG2 DS CL1 IOREG FOR DIFFERENT DTF @V305066 03119000
CPFLAG2 DS CL1 OPEN SWITCH @V305066 03120000
CPSEQC DS CL1 CURRENT EXTENT SEQ @V305066 03121000
CPSEQL DS CL1 LAST EXT SEQUENCE @V305066 03122000
CPFLAG3 DS CL1 STANDARD LABEL SWITCH @V305066 03123000
CPDEVTY DS CL1 @V305066 03124000
CPFLAG4 DS CL1 DASD,RDR, OR OTHER @V305066 03125000
DASD EQU X'F3' DASD @V305066 03126000
OTHER EQU X'F0' OTHER @V305066 03127000
CPFLAG5 DS CL1 @V305066 03128000
CPIN EQU X'80' @V305066 03129000
DS CL7 @V305066 03130000
CPLOHD DS CL2 LOWER HD LIMIT @V305066 03131000
CPEXTUP DS CL4 EXT UPPER LIMIT @V305066 03132000
DS CL10 @V305066 03133000
CPBUCK DS CL4 CONTROL BUCKET CCHH @V305066 03134000
CPRECS DS CL1 NO. RECS/TRK/ FOR OUT @V305066 03135000
* NO. RECS/TRK+1 FOR INPUT 03136000
CPFLAG6 DS CL1 @V305066 03137000
CPDEVID DS CL2 @V305066 03138000
CPCOUNT DS CL5 CCHHR FOR COUNT FIELD @V305066 03139000
DS CL1 @V305066 03140000
CPDATLEN DS CL2 DATALENGTH IN DTF @V305066 03141000
CPINSTR DS CL4 INST. TO LOAD IOAREA TO IOREG @V305066 03142000
DS CL24 @V305066 03143000
CPCCWI DS CL8 CCW FOR DASD INP AND 1ST CCW FOR DASD OUT @V305066 03144000
CPCCWO DS CL8 SEC CCW FOR O/P @V305066 03145000
EJECT 03146000
TAPERES DSECT @V305066 03147000
DS CL2 @V305066 03148000
CCBSW DS CL14 @V305066 03149000
DS CL1 @V305066 03150000
LOGMOD1 DS CL3 LOGIC MODULE ADDRESS @V305066 03151000
CPTYPE1 DS CL1 DTF TYPE FOR TAPE RES X'31' @V305066 03152000
CPOPEN1 DS CL1 OPEN INDICATORS @V305066 03153000
CPFN1 DS CL7 FILENAME @V305066 03154000
DS CL1 @V305066 03155000
CPFLAG7 DS CL1 X'00' IND TO DTFCP OPEN PHASES @V305066 03156000
CPFLAG8 DS CL1 @V305066 03157000
CPFLAG9 DS CL1 OPEN INDICATORS @V305066 03158000
IO2AD DS CL3 IOAREA2 ADDRESS @V305066 03159000
CPINST DS F INST. TO LOAD IOAREA AD TO IOREG @V305066 03160000
CPCCW0 DS D CCW @V305066 03161000
*** END OF TABLE IF DTF IS DEFINED AS O/P AND DEVADDR IS NOT SYSPCH 03162000
PUNCCW1 DS D 2540 PUNCH ERROR RECOVERY CCW1 @V305066 03163000
PUNCCW2 DS D 2540 PUNCH ERROR RECOVERY CCW2 @V305066 03164000
CPEOF DS CL3 EOF ADDRESS - INPUT ONLY @V305066 03165000
EJECT 1 03166000
IKQACB @VM03188 03167000
EJECT 03168000
CPUNTREC DSECT @V305066 03169000
CPCCB DS CL6 CCB @V305066 03170000
DS CL3 @V305066 03171000
CCWPTR DS CL3 CCW POINTER @V305066 03172000
DS CL4 @V305066 03173000
LOGIC DS CL4 LOGIC MODULE ADDRESS @V305066 03174000
TYPECP2 DS CL1 DTFTYPE @V305066 03175000
CPOPEN2 DS CL1 @V305066 03176000
FILNAM DS CL7 FILENAME @V305066 03177000
DASDID DS CL1 DASD DEVICE IDENTIFICATION @V305066 03178000
CPOIND DS CL6 F1 ADDRESS OR INDICATOR @V305066 03179000
LOAD2 EQU CPOIND+2 LOAD INSTRUCTION @V305066 03180000
DS CL2 VOL SEQ NUMBER @V305066 03181000
DS CL1 DISK OPEN SWITCH @V305066 03182000
DS CL1 XTNT SEQ NO OF CURRENT EXTENT @V305066 03183000
XTNWRK DS CL1 XTNT SEQ NO OF LAST EXTENT @V305066 03184000
DS CL1 @V305066 03185000
SWITHS DS CL1 LOGICAL INDICATORS @V305066 03186000
SYSTYPE DS CL1 INDICATOR FOR DTFCP OPEN @V305066 03187000
OPSW1 DS CL1 @V305066 03188000
ALTIO DS CL3 IO AREA @V305066 03189000
CCWND DS CL4 USER LABEL @V305066 03190000
CCWE1 EQU CCWND+8 AREA TO RELOCATE PPNCH ERR CCW1 @V305066 03191000
CCWE2 EQU CCWE1+8 AREA TO RELOCATE PUNCH ERR CCW2 @V305066 03192000
DS CL8 @V305066 03193000
CPSEK DS CL4 CCHH @V305066 03194000
CPRECORD DS CL1 R @V305066 03195000
EOFADR DS CL3 EOF ADDRESS FOR INPUT FILES @V305066 03196000
CPUPP DS CL4 UPPER LIMIT @V305066 03197000
CPRMX DS CL1 NO. RECORDS/TRACK @V305066 03198000
SAVE1 EQU CPRMX CARD IMAGE SAVE AREA 1 @V305066 03199000
DS CL1 WORK AREA @V305066 03200000
DS CL1 WORK AREA @V305066 03201000
CCWKN DS CL1 ADJUSTMENT FOR CCW @V305066 03202000
CPCNT DS CL6 COUNT AND KEY FIELD @V305066 03203000
DATALGTH DS CL2 DATA LENGTH FIELD @V305066 03204000
LOAD DS CL4 LOAD USER IO REGISTER @V305066 03205000
DS 3D @V305066 03206000
CCWASA DS D @V305066 03207000
CCWOT DS D @V305066 03208000
DS 3D @V305066 03209000
E1CCW DS D 2540 PUNCH ERROR CCW1 @V305066 03210000
SAVE2 EQU E1CCW CARD IMAGE SAVE AREA 2 @V305066 03211000
E2CCW DS D 2540 PUNCH ERROR CCW2 @V305066 03212000
EJECT 03213000
NUCON @V305066 03214000
REGEQU @V305066 03215000
EJECT 03216000
DOSCB @V305066 03217000
OSFST @V305066 03218000
EJECT 03219000
ADT @V305066 03220000
EJECT 03221000
MAPPUB @V305066 03222000
SYSCOM @V305106 03223000
BGCOM @V305066 03224000
FSTB @V305066 03225000
EJECT 03226000
DOSAVE @V305066 03227000
SYSNAMES @V305066 03228000
DMSBOP CSECT @V305066 03229000
LTORG @V305066 03230000
END 03231000