ibm:vm370-lib:cms:dmsbop.assemble_src
Table of Contents
DMSBOP Source
References
- Fixes Applied : 6
- This Source Date : Tuesday, December 12, 1978
- Last Fix ID : [R14961DS]
Source Listing
- DMSBOP.ASSEMBLE.txt
- 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
ibm/vm370-lib/cms/dmsbop.assemble_src.txt ยท Last modified: 2023/08/06 13:35 by Site Administrator