ASN TITLE 'DMSASN (CMS) VM/370 - RELEASE 6' 00001000 SPACE 2 00002000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00003000 *. * 00004000 * * 00005000 * MODULE NAME: * 00006000 * * 00007000 * DMSASN * 00008000 * * 00009000 * FUNCTION: * 00010000 * * 00011000 * TO ALLOW THE USER TO ASSOCIATE SYSTEM OR PROGRAMMER * 00012000 * LOGICAL UNITS WITH THE PHYSICAL HARDWARE DEVICE. * 00013000 * THE ASSGN COMMAND WILL BE USED WITH CMS/DOS AND CMS * 00014000 * VSAM. * 00015000 * * 00016000 * ATTRIBUTES: * 00017000 * * 00018000 * TRANSIENT; SERIALLY REUSABLE. * 00019000 * * 00020000 * ENTRY POINTS: * 00021000 * * 00022000 * DMSASN * 00023000 * * 00024000 * ENTRY CONDITIONS: * 00025000 * R1 MUST POINT TO THE ASSGN PARAMETER LIST * 00026000 * THE COMMAND LANGUAGE USER'S GUIDE GIVES A DESCRIPTION * 00027000 * OF THE PARAMETER LIST FORMATS * 00028000 * * 00029000 * THE GENERAL FORMAT IS AS FOLLOWS: * 00030000 * DS 0F * 00031000 * PLIST DC CL8'ASSGN' * 00032000 * DC CL8'SYSXXX' SYSTEM OR PROG. LOGICAL UNIT * 00033000 * DC CL8'IGN' OR 'UA' OR DEVICE TYPE * 00034000 * DC CL8'(' START OF OPTIONS * 00035000 * DC CL8'OPTIONS' * 00036000 * DC 8X'FF' FENCE * 00037000 * * 00038000 * EXIT CONDITIONS: * 00039000 * NORMAL RETURN * 00040000 * R15 = 0 * 00041000 * * 00042000 * ERROR RETURN * 00043000 * R15 NONZERO: * 00044000 * = 24 INVALID, DUPLICATE OR CONFLICTING OPTIONS * 00045000 * = 36 SPECIFIED DISK MODE LETTER IS NOT ACCESSED * 00046000 * = 100 DEVICE NOT ATTACHED * 00047000 * * 00048000 * ERROR MESSAGES: * 00049000 * * 00050000 * * 00051000 * DMSASN028E NO LOGICAL UNIT SPECIFIED * 00052000 * * 00053000 * EXPLANATION: THE COMMAND REQUIRES THE SPECIFICATION * 00054000 * OF A LOGICAL UNIT WHEN REQUESTING THE ASSGN FUNCTION. * 00055000 * * 00056000 * SYSTEM ACTION: RC = 24 * 00057000 * EXECUTION OF THE COMMAND TERMINATES. THE SYSTEM * 00058000 * REMAINS IN THE SAME STATUS AS BEFORE THE COMMAND * 00059000 * WAS ENTERED. * 00060000 * * 00061000 * USER ACTION: RETYPE THE COMMAND SUPPLYING A LOGICAL * 00062000 * UNIT TO BE ASSIGNED. * 00063000 * * 00064000 * * 00065000 * DMSASN087E INVALID ASSIGNMENT OF 'SYSXXX' TO DEVICE * 00066000 * 'DEVICE' * 00067000 * * 00068000 * EXPLANATION: THE ASSGN COMMAND MAKES CERTAIN * 00069000 * RESTRICTIONS ON THE ASSIGNMENT OF LOGICAL * 00070000 * UNITS TO VIRTUAL DEVICES: * 00071000 * * 00072000 * SYS000-SYS240 - CAN BE ASSIGNED TO ANY * 00073000 * DEVICE AS SPECIFIED BY THE * 00074000 * ASSGN COMMAND. * 00075000 * * 00076000 * SYSLOG - VALID ASSIGNMENT TO TERMINAL AND * 00077000 * PRINTER. * 00078000 * * 00079000 * SYSLST - VALID ASSIGNMENT TO PRINTER, * 00080000 * DISK, AND TAPE. * 00081000 * * 00082000 * SYSIPT - VALID ASSIGNMENT TO READER, DISK AND TAPE. * 00083000 * * 00084000 * SYSPCH - VALID ASSIGNMENT TO PUNCH, DISK, * 00085000 * AND TAPE. * 00086000 * * 00087000 * SYSRDR - VALID ASSIGNMENT TO READER, DISK, * 00088000 * AND TAPE. * 00089000 * * 00090000 * SYSCAT - VALID ASSIGNMENT TO DISK. * 00091000 * * 00092000 * SYSCLB - VALID ASSIGNMENT TO DISK. * 00093000 * * 00094000 * SYSRLB - VALID ASSIGNMENT TO DISK. * 00095000 * * 00096000 * SYSSLB - VALID ASSIGNMENT TO DISK. * 00097000 * * 00098000 * SYSIN - VALID ASSIGNMENT TO READER, TAPE, * 00099000 * AND DISK. * 00100000 * * 00101000 * SYSOUT - VALID ASSIGNMENT TO TAPE. * 00102000 * * 00103000 * DMSASN087E IS ISSUED WHEN THE ASSGN COMMAND * 00104000 * HAS BEEN ISSUED IN VIOLATION OF THE VALID * 00105000 * ASSIGNMENTS DISCUSSED ABOVE. * 00106000 * * 00107000 * SYSTEM ACTION: RC = 24 * 00108000 * EXECUTION OF THE COMMAND TERMINATES. THE SYSTEM * 00109000 * REMAINS IN THE SAME STATUS AS BEFORE THE COMMAND * 00110000 * WAS ENTERED. * 00111000 * * 00112000 * USER ACTION: REISSUE THE ASSGN COMMAND * 00113000 * SPECIFYING A VALID COMBINATION OF LOGICAL * 00114000 * UNIT AND VIRTUAL DEVICE. * 00115000 * * 00116000 * * 00117000 * DMSASN070E INVALID PARAMETER 'PARAMETER' * 00118000 * * 00119000 * EXPLANATION: INVALID OPERAND ON THE COMMAND LINE. * 00120000 * * 00121000 * SYSTEM ACTION: RC = 24 * 00122000 * EXECUTION OF THE COMMAND TERMINATES. THE SYSTEM * 00123000 * REMAINS IN THE SAME STATUS AS BEFORE THE COMMAND WAS * 00124000 * ENTERED. * 00125000 * * 00126000 * USER ACTION: RETYPE THE COMMAND IN THE CORRECT FORMAT.* 00127000 * * 00128000 * * 00129000 * DMSASN050E PARAMETER MISSING AFTER SYSXXX * 00130000 * * 00131000 * EXPLANATION: THE DEVICE TYPE OPERAND IS MISSING FROM * 00132000 * THE COMMAND LINE. * 00133000 * * 00134000 * SYSTEM ACTION: RC = 24 * 00135000 * EXECUTION OF THE COMMAND TERMINATES. THE SYSTEM * 00136000 * REMAINS IN THE SAME STATUS AS BEFORE THE COMMAND * 00137000 * WAS ENTERED. * 00138000 * * 00139000 * USER ACTION: RETYPE THE COMMAND SUPPLYING A PROPER * 00140000 * DEVICE TYPE. * 00141000 * * 00142000 * * 00143000 * DMSASN003E INVALID OPTION 'OPTION' * 00144000 * * 00145000 * EXPLANATION: THE SPECIFIED OPTION IS INVALID OR MAY * 00146000 * HAVE BEEN MISSPELLED. * 00147000 * * 00148000 * SYSTEM ACTION: RC = 24 * 00149000 * EXECUTION OF THE COMMAND TERMINATES. THE SYSTEM * 00150000 * REMAINS IN THE SAME STATUS AS BEFORE THE COMMAND WAS * 00151000 * ENTERED. * 00152000 * * 00153000 * USER ACTION: RETYPE THE COMMAND SPECIFYING THE CORRECT* 00154000 * OPTION. * 00155000 * * 00156000 * * 00157000 * DMSASN027E INVALID DEVICE 'DEVICE' * 00158000 * * 00159000 * EXPLANATION: THE SPECIFIED DEVICE TYPE IS INVALID * 00160000 * OR MAY HAVE BEEN MISSPELLED. * 00161000 * * 00162000 * SYSTEM ACTION: RC = 24 * 00163000 * EXECUTION OF THE COMMAND TERMINATES. THE SYSTEM * 00164000 * REMAINS IN THE SAME STATUS AS BEFORE THE COMMAND * 00165000 * WAS ENTERED. * 00166000 * * 00167000 * USER ACTION: RETYPE THE COMMAND SPECIFYING THE * 00168000 * CORRECT DEVICE TYPE. * 00169000 * * 00170000 * * 00171000 * DMSASN029E INVALID PARAMETER 'PARAMETER' IN THE OPTION * 00172000 * 'OPTION' FIELD * 00173000 * * 00174000 * EXPLANATION: THE SPECIFIED PARAMETER FOLLOWING THE * 00175000 * SPECIFIED OPTION IS INVALID. * 00176000 * * 00177000 * SYSTEM ACTION: RC = 24 * 00178000 * EXECUTION OF THE COMMAND TERMINATES. THE SYSTEM REMAINS* 00179000 * IN THE SAME STATUS AS BEFORE THE COMMAND WAS ENTERED. * 00180000 * * 00181000 * USER ACTION: CHECK THE FORMAT OF THE FIELD, SUPPLY * 00182000 * THE RIGHT PARAMETER AND RETRY THE COMMAND. * 00183000 * * 00184000 * * 00185000 * DMSASN035E INVALID TAPE MODE * 00186000 * * 00187000 * EXPLANATION: AN INVALID COMBINATION OF TAPE OPTIONS * 00188000 * WAS SPECIFIED. FOR EXAMPLE: 9TRACK, DEN 200 * 00189000 * * 00190000 * SYSTEM ACTION: RC = 24 * 00191000 * EXECUTION OF THE COMMAND TERMINATES. THE SYSTEM * 00192000 * REMAINS IN THE SAME STATUS AS BEFORE THE COMMAND * 00193000 * WAS ENTERED. * 00194000 * * 00195000 * USER ACTION: CORRECT THE TAPE OPTIONS AND RETRY. * 00196000 * * 00197000 * * 00198000 * DMSASN099E CMS/DOS ENVIRONMENT NOT ACTIVE * 00199000 * * 00200000 * EXPLANATION: IN ORDER TO EXECUTE THE COMMAND, THE * 00201000 * CMS/DOS ENVIRONMENT SHOULD BE ACTIVE. * 00202000 * * 00203000 * SYSTEM ACTION: RC = 24 * 00204000 * EXECUTION OF THE COMMAND TERMINATES. THE SYSTEM * 00205000 * REMAINS IN THE SAME STATUS AS BEFORE THE COMMAND * 00206000 * WAS ENTERED. * 00207000 * * 00208000 * USER ACTION: USE THE 'SET DOS' COMMAND TO ACTIVATE * 00209000 * THE CMS/DOS ENVIRONMENT AND RETYPE THE COMMAND. * 00210000 * * 00211000 * * 00212000 * DMSASN065E 'OPTION' OPTION SPECIFIED TWICE * 00213000 * * 00214000 * EXPLANATION: THE OPTION WAS SPECIFIED MORE THAN ONCE. * 00215000 * * 00216000 * SYSTEM ACTION: RC = 24 * 00217000 * EXECUTION OF THE COMMAND TERMINATES. THE SYSTEM REMAINS* 00218000 * IN THE SAME STATUS AS BEFORE THE COMMAND WAS ENTERED. * 00219000 * * 00220000 * USER ACTION: REMOVE ALL BUT ONE OCCURRENCE OF THE * 00221000 * OPTION AND REISSUE THE COMMAND. * 00222000 * * 00223000 * * 00224000 * DMSASN066E 'OPTION' AND 'OPTION' ARE CONFLICTING OPTIONS* 00225000 * * 00226000 * EXPLANATION: THE SPECIFIED OPTIONS ARE MUTUALLY * 00227000 * EXCLUSIVE AND MAY NOT BE SPECIFIED IN THE SAME COMMAND.* 00228000 * * 00229000 * SYSTEM ACTION: RC = 24 * 00230000 * EXECUTION OF THE COMMAND TERMINATES. THE SYSTEM REMAINS* 00231000 * IN THE SAME STATUS AS BEFORE THE COMMAND WAS ENTERED. * 00232000 * * 00233000 * USER ACTION: CORRECT AND REISSUE THE COMMAND. * 00234000 * * 00235000 * * 00236000 * DMSASN069E DISK 'MODE' NOT ACCESSED * 00237000 * * 00238000 * EXPLANATION: THE SPECIFIED DISK HAS NOT BEEN ACCESSED.* 00239000 * * 00240000 * SYSTEM ACTION: RC = 36 * 00241000 * EXECUTION OF THE COMMAND TERMINATES. THE SYSTEM REMAINS* 00242000 * IN THE SAME STATUS AS BEFORE THE COMMAND WAS ENTERED. * 00243000 * * 00244000 * USER ACTION: ACCESS THE SPECIFIED DISK AND REISSUE * 00245000 * THE COMMAND. * 00246000 * * 00247000 * DMSASN113S 'TAPN/MODE/READER/PUNCH/PRINTER (CUU)' NOT * 00248000 * ATTACHED * 00249000 * * 00250000 * EXPLANATION: THE DEVICE SPECIFIED IS NOT ATTACHED * 00251000 * TO THE VIRTUAL MACHINE. * 00252000 * * 00253000 * SYSTEM ACTION: RC = 100 * 00254000 * EXECUTION OF THE COMMAND TERMINATES. THE SYSTEM REMAINS* 00255000 * IN THE SAME STATUS AS BEFORE THE COMMAND WAS ENTERED. * 00256000 * * 00257000 * USER ACTION: ATTACH THE DEVICE TO THE VIRTUAL MACHINE * 00258000 * AND RETYPE THE COMMAND. * 00259000 * * 00260000 * * 00261000 * DMSASN090E INVALID DEVICE CLASS 'DEVICE CLASS' FOR * 00262000 * 'DEVICE' * 00263000 * * 00264000 * EXPLANATION: THE DEVICE CLASS INFORMATION RETURNED * 00265000 * AFTER EXECUTION OF A DIAGNOSE REQUEST (CODE 24) * 00266000 * CONFLICTS WITH THE DEVICE BEING ASSIGNED. * 00267000 * * 00268000 * SYSTEM ACTION: RC = 36 * 00269000 * EXECUTION OF THE COMMAND TERMINATES. THE SYSTEM REMAINS* 00270000 * IN THE SAME STATUS AS BEFORE THE COMMAND WAS ENTERED. * 00271000 * * 00272000 * USER ACTION: RETRY THE COMMAND. IF THIS FAILS, CONTACT* 00273000 * YOUR IBM REPRESENTATIVE. * 00274000 * * 00275000 * * 00276000 * * 00277000 * * 00278000 * CALLS TO OTHER ROUTINES: * 00279000 * DMSLAD * 00280000 * * 00281000 * EXTERNAL REFERENCE: * 00282000 * NUCON, CMSCB, REGEQU, DEVTAB * 00283000 * * 00284000 * CALLED BY : * 00285000 * INVOKED AS COMMAND BY TERMINAL USER USING CMS/DOS * 00286000 * AND CMS VSAM * 00287000 * * 00288000 * TABLES AND WORK AREAS : * 00289000 * * 00290000 * TABSTART - TABLE CONTAINING KEYWORD OPTIONS, DEVICE FOR* 00293000 * WHICH OPTION IS VALID AND CONFLICTING * 00294000 * OPTIONS. * 00295000 * DENTAB - TABLE CONTAINING VALID TAPE DENSITIES. * 00296000 * UNITTAB - TABLE USED TO CONVERT SYSTEM LOGICAL * 00297000 * UNITS TO AN INDEX IN THE LUB TABLE. * 00298000 * TRTCH - TABLE TO CONVERT CMS TAPE UNIT, DENSITY * 00299000 * AND TRTCH INFORMATION TO THE APPROPRIATE * 00300000 * CMS/DOS VALUE. * 00301000 * TRTAB - TABLE TO ASSIGN DISPLACEMENTS WITHIN * 00302000 * TRTCH TABLE. * 00303000 * * 00304000 * REGISTER USAGE : * 00305000 * * 00306000 * R1 - PLIST ON ENTRY * 00307000 * R2 - WORKING REGISTER * 00308000 * R3 - WORKING REGISTER * 00309000 * R4 - WORKING REGISTER * 00310000 * R5 - USED FOR SCANNING PLIST * 00311000 * R6 - WORKING REGISTER * 00312000 * R7 - WORKING REGISTER * 00313000 * R8 - WORKING REGISTER * 00314000 * R9 - WORKING REGISTER * 00315000 * R10 - WORKING REGISTER * 00316000 * R11 - BASE REGISTER * 00317000 * R12 - BASE REGISTER * 00318000 * R14 - EXTERNAL LINKAGE * 00319000 * R15 - EXTERNAL LINKAGE * 00320000 * * 00321000 * * 00322000 * OPERATION: * 00323000 * * 00324000 * THE SIMULATED DOS/VS SUPERVISOR CONTAINS TWO CONTROL * 00325000 * BLOCKS WHICH ARE MANIPULATED BY THE ASSGN COMMAND: * 00326000 * THE LUB (LOGICAL UNIT BLOCK) AND THE PUB (PHYSICAL * 00327000 * UNIT BLOCK). CMS/DOS WILL SUPPORT 255 LUBS * 00328000 * WHICH IS CONSISTENT WITH DOS/VS AND 18 PUBS * 00329000 * CORRESPONDING WITH THE 18 CMS SUPPORTED DEVICE TYPES. * 00330000 * FIRST, THE PLIST IS SCANNED FOR INVALID PARAMETERS * 00331000 * AND SPECIFIED OPTIONS, IF ANY. THE SYSXXX PARAMETER * 00332000 * IS THEN CONVERTED TO THE CORRESPONDING 2 BYTE * 00333000 * ENTRY CORRESPONDING TO A SYSTEM LOGICAL UNIT OR A * 00334000 * PROGRAMMER LOGICAL UNIT. * 00335000 * * 00336000 * THE DEVICE PARAMETER IS THEN ANALYZED TO SEE WHETHER * 00337000 * TERMINAL, PRINTER, PUNCH, READER, TAP1, TAP2, TAP3, * 00338000 * TAP4, DISK MODE LETTER A - G, S,Y,Z, IGN OR UA * 00339000 * WAS SPECIFIED. * 00340000 * * 00341000 * INFORMATION IS STORED IN THE LUB AND PUB ENTRIES * 00342000 * DEPENDING ON THE DEVICE TYPE AS FOLLOWS: * 00343000 * * 00344000 * * 00345000 * PUB INFORMATION: * 00346000 * * 00347000 * TERMINAL - CUU = 2-BYTE ENTRY IN DEVTAB, DEVTYPE=X'00' * 00348000 * PRINTER - CUU = X'000E',DEVTYPE=X'40'- X'43' * 00349000 * READER - CUU = X'000C', DEVTYPE = X'10'-X'12' * 00350000 * PUNCH - CUU = X'000D',DEVTYPE = X'20', X'21', X'23' * 00351000 * TAP1 - CUU = X'0181', DEVTYPE = X'50', X'52', X'53' * 00352000 * TAP2 - CUU = X'0182', DEVTYPE = X'50', X'52', X'53' * 00353000 * TAP3 - CUU = X'0183', DEVTYPE = X'50', X'52', X'53' * 00354000 * TAP4 - CUU = X'0184', DEVTYPE = X'50',X'52', X'53' * 00355000 * IGN - NO ALTERATION TO PUB ENTRY * 00356000 * UA - NO ALTERATION TO THE PUB ENTRY * 00357000 * A - G INFORMATION OBTAINED FROM THE ADT AS FOLLOWS: * 00358000 * S,Y,Z - CUU FOR APPROPRIATE DISK ADDRESS, DEVTYPE = * 00359000 * X'62'IF 2314 OR = X'63' IF 3330 OR = X'69' IF 3340 35MB* 00360000 * OR = X'6A' IF 3340 70MB OR = X'65' IF 3330-11 * 00360600 * OR = X'67' IF 3350 00361200 * OR = X'6C' IF 3380 HRC004DS 00361600 * * 00362000 * * 00363000 * LUB INFORMATION: * 00364000 * THERE ARE 255 LUBS AS PART OF THE SIMULATED DOS * 00365000 * SUPERVISOR. EACH ENTRY CONTAINS TWO BYTES. CMS/DOS * 00366000 * WILL USE THE FIRST BYTE OF EACH ENTRY. THIS BYTE WILL * 00367000 * CONTAIN AN INDEX PTR TO THE CORRESPONDING PUB ENTRY. * 00368000 * THE ONE BYTE LUB BYTE CAN BE ANY OF THE FOLLOWING: * 00369000 * * 00370000 * HEX * 00371000 * 00 - POINTER TO TERMINAL PUB * 00372000 * 01 - POINTER TO PRINTER PUB * 00373000 * 02 - POINTER TO THE PUNCH PUB * 00374000 * 03 - POINTER TO THE READER PUB * 00375000 * 04 - POINTER TO THE TAP1 PUB * 00376000 * 05 - POINTER TO THE TAP2 PUB * 00377000 * 06 - POINTER TO THE TAP3 PUB * 00378000 * 07 - POINTER TO THE TAP4 PUB * 00379000 * 08 - POINTER TO THE A-DISK PUB * 00380000 * 09 - POINTER TO THE B-DISK PUB * 00381000 * 0A - POINTER TO THE C-DISK PUB * 00382000 * 0B - POINTER TO THE D-DISK PUB * 00383000 * 0C - POINTER TO THE E-DISK PUB * 00384000 * 0D - POINTER TO THE F-DISK PUB * 00385000 * 0E - POINTER TO THE G-DISK PUB * 00386000 * 0F - POINTER TO THE S-DISK PUB * 00387000 * 10 - POINTER TO THE Y-DISK PUB * 00388000 * 11 - POINTER TO THE Z-DISK PUB * 00389000 * * 00390000 * IF UA (UNASSIGNED) WAS SPECIFIED ON THE COMMAND LINE, * 00391000 * THE LUB ENTRY WILL BE MODIFIED TO A X'FF'. IF THE * 00392000 * KEYWORD IGN WAS SPECIFIED, THE LUB ENTRY WILL BE * 00393000 * MODIFIED TO A X'FE'. * 00394000 * IF SYSXXX = SYSIN, THE LUB ENTRIES FOR SYSIPT AND * 00395000 * SYSRDR WILL BE ALTERED. IF SYSXXX = SYSOUT, THEN THE * 00396000 * LUB ENTRIES FOR SYSPCH AND SYSLST WILL BE ALTERED. * 00397000 * RESTRICTIONS: * 00398000 * * 00399000 * ASSIGNMENT OF SYSRES, SYSVIS, SYSREC, SYSUSE, AND * 00400000 * SYSLNK WILL BE RESTRICTED UNDER CMS/DOS. * 00401000 * SYSOUT CANNOT BE ASSIGNED TO A DISK. * 00402000 * * 00403000 * OPTIONS: * 00404000 * * 00405000 * * 00406000 * FOR DEVICE = TERMINAL * 00407000 * * 00408000 * UPCASE - PROVIDE TRANSLATION TO UPPERCASE. * 00409000 * THIS IS THE DEFAULT CONDITION. * 00410000 * * 00411000 * LOWCASE - PROVIDE NO TRANSLATION TO UPPERCASE; * 00412000 * * 00413000 * * 00414000 * FOR DEVICE = TAPN, ONLY: * 00415000 * * 00416000 * 7TRACK|9TRACK - SPECIFIES TRACK SETTING * 00417000 * * 00418000 * DEN 200|556|800|1600 - SPECIFIES BIT DENSITY * 00419000 * * 00420000 * TRTCH O|OC|OT|E|ET - INDICATES THE DESIRED TAPE * 00421000 * RECORDING TECHNIQUE ('O' IS DEFAULT): * 00422000 * * 00423000 * PARITY (ODD, EVEN), CONVERTER (ON, OFF), * 00424000 * TRANSLATOR (ON, OFF). * 00425000 * * 00426000 * THE TAPE OPTIONS WILL BE CONVERTED TO A ONE BYTE CODE * 00427000 * WHICH WILL BE STORED IN BYTE 6 OF THE PUB ENTRY. * 00428000 * IF NO TAPE OPTIONS ARE SPECIFIED, AND THE TAPE IS * 00429000 * 7TRACK, DEFAULTS ARE 800 BPI, DATA CONVERTER ON, * 00430000 * TRANSLATOR OFF AND ODD PARITY. IF THE TAPE IS * 00431000 * 9TRACK, THE DENSITY WILL DEFAULT TO THE DENSITY OF THE * 00432000 * TAPE DRIVE. * 00433000 * THE DISK MODE LETTER WILL BE STORED IN BYTE 4 OF * 00434000 * THE PUB ENTRY WHEN APPLICABLE. * 00435000 * * 00436000 *. * 00437000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00438000 EJECT 00439000 DMSASN START X'E000' TRANSIENT (SERIALLY REUSABLE) @V305066 00440000 * 00441000 * SET UP BASIC ADDRESSABILITY * 00442000 * 00443000 LR R12,R15 @V305066 00444000 USING DMSASN,R12,R11 ADDRESSIBILITY @V305066 00445000 USING NUCON,R0 @V305066 00446000 L R11,BASE2 @V305066 00447000 ST R14,GR14SA @V305066 00448000 LR R5,R1 SAVE INPUT PARAMETER POINTER @V305066 00449000 ST R13,GR13SA SAVE SA POINTER @V305066 00450000 L R2,ASYSREF @V305066 00451000 USING BGCOM,R2 ESTABLISH ADDRESSABILITY @V305066 00452000 USING NUCON,R0 @V305066 00453000 SR R13,R13 CLEAR R13 FOR LATER USE @V305066 00454000 TM DOSFLAGS,DOSMODE DOS ENVIRONMENT IN EFFECT ? @V305066 00455000 BNO ERR99E ASSGN INVAL OUTSIDE DOS ENVIR @V305066 00456000 XC ASNFLAGS(ENDFLAGS-ASNFLAGS),ASNFLAGS CLEAR FLG @V305066 00457000 MVI NINTRACK+8,RESET04 REINITIALIZE TABLE @V305066 00458000 MVI SEVTRACK+8,RESET04 REINITIALIZE TABLE @V305066 00459000 MVI TRKTCH+8,RESET04 REINITIALIZE TABLE @V305066 00460000 MVI DEVID,BLANK PROPAGATE BLANKS THROUGH @V305066 00461000 MVC DEVID+1(13),DEVID FIELD FOR REUSEABILITY @V305066 00462000 * 00463000 * 00464000 * THE PLIST PTR IS UPDATED TO POINT TO OPERAND ONE AND 00465000 * THE PLIST END INDICATOR IS PUT IN GR 6. 00466000 * 00467000 LA R5,8(,R5) SKIP TO FIRST PARAMETER @V305066 00468000 SR R15,R15 ZERO RETURN CODE REGISTER @V305066 00469000 L R6,PLISTEND SET REG 6 = X'FFFFFFFF' @V305066 00470000 C R6,0(,R5) ? NULL ENTRIES ? @V305066 00471000 BE ERR28E YES. NOT ALLOWED - ERROR @V305066 00472000 C R6,8(,R5) ONLY 1 PARAMETER ? @V305066 00473000 BE ERR50E YES, ERROR @V305066 00474000 * CHECK FOR ANY OPTIONS. 00475000 LR R2,R5 SAVE CURRENT PLIST POINTER @V305066 00476000 LA R2,16(,R2) POINT TO OPTIONS/FENCE @V305066 00477000 LR R9,R6 TEMP SWITCH @V305066 00478000 C R6,0(R2) ANY OPTIONS? @V305066 00479000 BE SETPLIST NO @V305066 00480000 CLI 0(R2),LTPAREN START OF OPTIONS? @V305066 00481000 BNE ERR70 ERROR - INVALID PARAMETER @V305066 00482000 B PAREN1 FIRST '(' ENCOUNTERED @V305066 00483000 OPT1A C R6,0(,R2) ? END OF PARAMETER ? @V305066 00484000 BE SETPLIST YES - GO SET UP PLIST COPY @V305066 00485000 CLI 0(R2),LTPAREN START OF OPTIONS? @V305066 00486000 BNE ADDTO NO, TRY SOME MORE @V305066 00487000 PAREN1 LTR R9,R9 FIRST PARENTHESES? @V305066 00488000 BM PAROK O.K., FIRST PAREN @V305066 00489000 LR R5,R2 TWO '(' FOUND: ERROR @V305066 00490000 B ERR65E @V305066 00491000 PAROK EQU * @V305066 00492000 XR R9,R9 CLEAR SWITCH @V305066 00493000 SR R13,R13 @V305066 00494000 LR R13,R2 SAVE START OF OPTION @V305066 00495000 ADDTO LA R2,8(,R2) INCREMENT @V305066 00496000 CLI 0(R2),RTPAREN CHECK END OF PLIST @V305066 00497000 BNE OPT1A NO - SCAN NEXT 8 BYTES @V305066 00498000 LTR R9,R9 TEST FOR '(' ENTERED @V305066 00499000 BNM REPFF @V305066 00500000 LR R5,R2 ERROR IF NO '(' @V305066 00501000 B ERR70E @V305066 00502000 REPFF EQU * @V305066 00503000 ST R6,0(,R2) REPL WITH X'FF'S FOR LATER @V305066 00504000 SETPLIST LTR R13,R13 ANY OPTIONS? @V305066 00505000 BNZ OPTNS YES @V305066 00506000 OI OPTNFLAG,NOOPTNS NO '(' FOUND: NO OPTS ALLOW @V305066 00507000 LR R8,R5 DUMMY R8 @V305066 00508000 B OP1 GO PROCESS PARAMS @V305066 00509000 OPTNS CLI 1(R13),BLANK DO OPTS FOLLOW IMMED. @V305066 00510000 BNE ADJOPT YES @V305066 00511000 LA R13,8(,R13) GET FIRST OPTION @V305066 00512000 LR R8,R13 SAVE OPTION START @V305066 00513000 B OP1 @V305066 00514000 ADJOPT MVC 0(7,R13),1(R13) LEFT ADJUST OPTION CHECK @V305066 00515000 MVI 7(R13),BLANK PAD WITH BLANK @V305066 00516000 LR R8,R13 SAVE OPTION START @V305066 00517000 * 00518000 * CHECK VALID OPTIONS... 00519000 * 00520000 * PLIST POINTS TO PARAMETER 1. 00521000 * THE FIRST PARAMETER IS CHECKED FOR TYPE AND VALIDITY. 00522000 * 00523000 OP1 EQU * @V305066 00524000 CLC 0(3,R5),SYS SYSXXX PARAMETER? @V305066 00525000 BNE ERR70E NO, ERROR @V305066 00526000 CLI 7(R5),BLANK PARM CAN BE MAX OF 6 CHARACTERS @V305066 00527000 BNE ERR70E ERROR IF NOT BLANK @V305066 00528000 CLI 6(R5),BLANK BLANK CHARACTER? @V305066 00529000 BNE ERR70E ERROR IF NOT BLANK @V305066 00530000 CLC 3(3,R5),ZERO PROG/SYS UNIT @V305066 00531000 BL SYSTEM SYSTEM UNIT @V305066 00532000 LA R1,3(R5) PT TO XXX PART OF SYSXXX @V305066 00533000 LA R7,3 SET UP COUNT @V305066 00534000 COMPARE CLI 0(R1),HEXF0 MAKE SURE EACH DIGIT NUMERIC @V305066 00535000 BL ERR70E ERROR IF NOT NUMERIC @V305066 00536000 CLI 0(R1),HEXF9 NUMERIC? @V305066 00537000 BH ERR70E ERROR IF NOT NUMERIC @V305066 00538000 LA R1,1(,R1) POINT TO NEXT DIGIT @V305066 00539000 BCT R7,COMPARE ALL THROUGH CHECKING ? @V305066 00540000 MVI SAVEUNIT,PROG PROG LUB UNIT @V305066 00541000 CLC 3(3,R5),TWO41 MAX 241 PROG LOG UNITS @V305066 00542000 BH ERR70E INVALID OPTION SYSXXX @V305066 00543000 PACK PACKFLD(8),3(3,R5) CVT ZONED XXX VAL.TO PACK @V305066 00544000 CVB R7,PACKFLD CVT PACKED DEC TO BINARY @V305066 00545000 STC R7,SAVEUNIT+1 STORE IN SAVEUNIT @V305066 00546000 B DEV1 @V305066 00547000 SYSTEM MVI SAVEUNIT,SYSLOG SYSTEM LOGICAL UNIT @V305066 00548000 CLC 3(3,R5),IN SYSXXX = SYSIN ? @V305066 00549000 BE SYSIN YES @V305066 00550000 CLC 3(3,R5),OUT SYSXXX = SYSOUT ? @V305066 00551000 BE SYSOUT YES @V305066 00552000 LA R7,UNITTAB CVT LAST 3 BYTES SYSXXX @V305066 00553000 LA R9,ENDTAB @V305066 00554000 REPEAT CLC 3(3,R5),1(R7) MATCH? @V305066 00555000 BE MOVE1 YES @V305066 00556000 LA R7,4(,R7) BUMP TO NEXT ENTRY @V305066 00557000 BCT R9,REPEAT GO TO REPEAT @V305066 00558000 B ERR70E NOT FOUND @V305066 00559000 SYSIN MVC SAVEUNIT+1(2),IPTRDR IF SYSIN WAS SPECIFIED, @V305066 00560000 OI SYSSW,PASS1 BOTH SYSIPT/SYSRDR LUBS @V305066 00561000 B DEV1 MUST BE ALTERED @V305066 00562000 SYSOUT MVC SAVEUNIT+1(2),PCHLST IF SYSOUT WAS SPECIFIED, @V305066 00563000 OI SYSSW,PASS1 BOTH SYSPCH/SYSLST LUBS @V305066 00564000 B DEV1 MUST BE ALTERED. @V305066 00565000 MOVE1 MVC SAVEUNIT+1(1),0(R7) SAVE SEC HALF LOG UNIT @V305066 00566000 ST R7,JSAVER7 REM. R7 IN CASE = 'SYSCAT' @V305066 00567000 DEV1 C R6,8(,R5) ? ONLY 1 PARAM? @V305066 00568000 BE ERR50E YES, QUIT @V305066 00569000 MVC LOGUNIT(6),0(R5) SAVE SYSXXX VALUE @V305066 00570000 LA R5,8(,R5) PTS TO DEVICE @V305066 00571000 SR R4,R4 CLEAR REG4 4 FOR LATER USE @V305066 00572000 LA R14,TERM PROVIDE NAME/MIN. ABBREV. @V305066 00573000 LA R2,ONE TO SUBRTN @V305066 00574000 BAL R10,DEVABBR CHECK FOR 'TERM' DEVICE @V305066 00575000 BNE DEV3 NOT EQUAL @V305066 00576000 LA R1,TERMTAB VALID LOG UNITS FOR TERM @V305066 00577000 BAL R10,CHKASN SEE IF VALID ASSIGNMENT @V305066 00578000 LA R4,DISP0 R4 USED FOR PUB DISP @V305066 00579000 L R10,ADEVTAB DEVTAB ADDRESS TO R10 @V305066 00580000 MVC CUU(2),0(R10) SAVE CUU FOR TERMINAL @V305066 00581000 MVI DEVTYPE,DEVTERM DEV TYPE = X'00' FOR TERM @V305066 00582000 NI PUBMODE,255-PUBCASE DEFAULT TO UPCASE @V305066 00583000 TM OPTNFLAG,NOOPTNS ANY OPTIONS? @V305066 00584000 BO GETLUB @V305066 00585000 CLC 0(8,R13),LOWRCASE LOWERCASE? @V305066 00586000 BNE CHKUP NO, CHECK FOR UPCASE @V305066 00587000 OI PUBMODE,PUBCASE SET CODE TO LOWER CASE @V305066 00588000 CHKEND C R6,8(,R13) BETTER BE END OF PLIST @V305066 00589000 BE GETLUB YES, LOC. LUB/PUB ENTRIES @V305066 00590000 TM PUBMODE,PUBCASE LOWERCASE ALREADY SPECIFIED?@V305066 00591000 BO LOWCASE2 YES @V305066 00592000 CLC 8(8,R13),UPCASE REPEAT OF UPCASE @V305066 00593000 BNE CONFLCT2 NO, SEE IF CONFLICT OPTION @V305066 00594000 B DUP SPECIFIED TWICE @V305066 00595000 PREP66E LR R2,R13 POINT TO CONFLICTING OPTION @V305066 00596000 LA R7,8(R13) OTHER CONFLICTING OPTION @V305066 00597000 B ERR66E CONFLICTING OPTION MSG @V305066 00598000 LOWCASE2 CLC 8(8,R13),LOWRCASE REPEAT OF LOWCASE @V305066 00599000 BNE CONFLICT NO, IS IT CONFLICT OPTION ? @V305066 00600000 DUP LA R5,8(,R13) POINT TO SECOND OPTION @V305066 00601000 B ERR65E OPTION SPECIFIED TWICE @V305066 00602000 CONFLICT CLC 8(8,R13),UPCASE IS IT UPCASE? @V305066 00603000 BE PREP66E YES, CONFLICT OPTION @V305066 00604000 B ERR03A INVALID OPTION @V305066 00605000 CONFLCT2 CLC 8(8,R13),LOWRCASE IS IT LOWCASE ? @V305066 00606000 BE PREP66E YES, CONFLICT OPTION @V305066 00607000 B ERR03A INVALID OPTION @V305066 00608000 CHKUP CLC 0(8,R13),UPCASE SEARCH FOR 'UPCASE' @V305066 00609000 BE CHKEND YES @V305066 00610000 C R6,0(,R13) END OF PLIST? @V305066 00611000 BE GETLUB @V305066 00612000 LR R5,R13 POINT TO INVALID OPTION @V305066 00613000 B ERR03E INVALID OPTION @V305066 00614000 DEV3 EQU * @V305066 00615000 LA R14,RDR PROVIDE DEVICE NAME AND MIN. @V305066 00616000 LA R2,ONE ABBREV. FOR SUBRTN @V305066 00617000 BAL R10,DEVABBR CHECK FOR 'READER' @V305066 00618000 BNE DEV4 NO, GO ON @V305066 00619000 TM BATFLAGS,BATRUN IS BATCH RUNNING? @VA04311 00619100 BZ NOTBAT NO, COOL SO FAR @VA04311 00619150 OI BATFLAG2,BATDCMS TELL BATCH WHO'S CALLING @VA04311 00619200 LR R1,R5 R1 -> INVALID PLIST @VA04311 00619250 LA R2,8 BACK UP ON @VA04311 00619300 SR R1,R2 COMMAND LINE @VA04311 00619350 L R14,GR14SA BATCH GOES BACK TO CMS @VA04311 00619400 L R15,ABATABND ENTER BATCH AT 'ABEND' POINT @VA04311 00619450 BR R15 AND DON'T COME BACK @VA04311 00619500 NOTBAT EQU * @VA04311 00619550 LA R1,RDRTAB VALID LOG UNITS FOR RDR @V305066 00620000 BAL R10,CHKASN SEE IF VALID ASSIGNMENT @V305066 00621000 BAL R10,OPTCHK OPTIONS INVALID FOR READER @V305066 00622000 LA R4,THREE R4=3 IMPLIES RDR PUB ENTRY @V305066 00623000 MVC CUU(2),RDRCUU CUU FOR RDR @V305066 00624000 LA R0,T12 PREP TO ISSUE DIAGNOSE @V305066 00625000 BAL R10,DIAGNOSE BRANCH TO ISSUE DIAGNOSE @V305066 00626000 CLI VIRTSAVE,CLASURI UNIT/REC I/P DEV CLASS @V305066 00627000 BNE ERR113SA INVALID @V305066 00628000 CLI VIRTSAVE+1,TYP2501 2501 CARD READER? @V305066 00629000 BE RDR2501 YES @V305066 00630000 CLI VIRTSAVE+1,TYP2540R 2540 CARD READER? @V305066 00631000 BE RDR2540 YES @V305066 00632000 MVI DEVTYPE,DOS3505 DOS 3505 RDR, CMS CODE=X'84'@V305066 00633000 B GETLUB OBTAIN LUB ENTRY @V305066 00634000 RDR2501 MVI DEVTYPE,DOS2501 DOS 2501 READER @V305066 00635000 B GETLUB GET LUB AND PUB ENTRIES @V305066 00636000 RDR2540 MVI DEVTYPE,DOS2540 DOS 2540 RDR @V305066 00637000 B GETLUB @V305066 00638000 DEV4 EQU * @V305066 00639000 LA R14,PRT PROVIDE DEVICE NAME @V305066 00640000 LA R2,TWO AND MIN. ABBREV. FOR SUBRTN @V305066 00641000 BAL R10,DEVABBR CHECK FOR 'PRINTER' @V305066 00642000 BNE DEV5 NO, GO ON @V305066 00643000 LA R1,PRTTAB VALID LOG UNITS FOR PRT @V305066 00644000 BAL R10,CHKASN SEE IF VALID ASSIGNMENT @V305066 00645000 BAL R10,OPTCHK OPTIONS INVALID FOR PRINTER @V305066 00646000 LA R4,ONE R4 = 1 IMPLIES PRT PUB ENTRY @V305066 00647000 MVC CUU(2),PRTCUU SAVE CUU FOR PRINTER @V305066 00648000 LA R0,FOURTEEN PREP FOR DIAGNOSE @V305066 00649000 BAL R10,DIAGNOSE ISSUE DIAGNOSE @V305066 00650000 CLI VIRTSAVE,CLASURO UNIT REC OP DEV CLASS @V305066 00651000 BNE ERR113SA INVALID @V305066 00652000 CLI VIRTSAVE+1,TYP1403 1403 PRT? @V305066 00653000 BE PRT1403 YES @V305066 00654000 CLI VIRTSAVE+1,TYP3211 3211 PRINTER? @V305066 00655000 BE PRT3211 YES @V305066 00656000 CLI VIRTSAVE+1,TYP3203 3203 PRINTER? @V505098 00656300 BE PRT3211 YES @V505098 00656600 MVI DEVTYPE,DOS1443 DOS 1443 PRT, CMS CODE=X'44'@V305066 00657000 B GETLUB @V305066 00658000 PRT1403 TM REALSAVE+3,FTRUCS UCS FEAT ON 1403 PRT? @V305066 00659000 BO UCSFEAT YES @V305066 00660000 MVI DEVTYPE,DOS1403 DOS 1403 PRT WITHOUT UCS @V305066 00661000 B GETLUB @V305066 00662000 UCSFEAT MVI DEVTYPE,DOS1403U DOS 1403 PRT WITH UCS @V305066 00663000 B GETLUB @V305066 00664000 PRT3211 MVI DEVTYPE,DOS3211 DOS 3203/3211 PRINTERS @V505098 00665000 B GETLUB @V305066 00666000 DEV5 EQU * @V305066 00667000 LA R14,PUN PROVIDE NAME/MIN. ABBREV @V305066 00668000 LA R2,TWO SUBRTN CHECK FOR 'PUNCH' @V305066 00669000 BAL R10,DEVABBR @V305066 00670000 BNE DEV6 @V305066 00671000 LA R1,PCHTAB VALID LOG UNITS FOR PUNCH @V305066 00672000 BAL R10,CHKASN SEE IF VALID ASSIGNMENT @V305066 00673000 BAL R10,OPTCHK OPTIONS INVALID FOR PUNCH @V305066 00674000 LA R4,TWO R4 = 2 IMPLIES PCH PUB ENTRY @V305066 00675000 MVC CUU(2),PCHCUU SAVE CUU FOR PUNCH @V305066 00676000 LA R0,THIRTEEN PUNCH @V305066 00677000 BAL R10,DIAGNOSE ISSUE DIAGNOSE @V305066 00678000 CLI VIRTSAVE,CLASURO UNIT/REC OP DEV CLASS @V305066 00679000 BNE ERR113SA INVALID @V305066 00680000 CLI VIRTSAVE+1,TYP2540P 2540 PUNCH? @V305066 00681000 BE PCH2540 YES @V305066 00682000 CLI VIRTSAVE+1,TYP3525 3525 PUNCH @V305066 00683000 BE PCH3525 YES @V305066 00684000 MVI DEVTYPE,DOS2520 DOS2520 PCH, CMS CODE X '90' @V305066 00685000 B GETLUB @V305066 00686000 PCH2540 MVI DEVTYPE,PUN2540 2540 PUNCH @V305066 00687000 B GETLUB @V305066 00688000 PCH3525 MVI DEVTYPE,DOS3525 3525 PUNCH @V305066 00689000 B GETLUB GO GET LUB/PUB ENTRIES @V305066 00690000 SPACE 2 00691000 OPTCHK EQU * @V305066 00692000 TM OPTNFLAG,NOOPTNS ANY OPTIONS? @V305066 00693000 BCR 1,R10 NO, RETURN TO MAINLINE @V305066 00694000 C R6,0(R13) PLIST FENCE ? @V305066 00695000 BCR 8,R10 YES, RETURN TO MAINLINE @V305066 00696000 LR R5,R13 POINT TO INVALID OPTION @V305066 00697000 B ERR03E INVALID OPTION @V305066 00698000 SPACE 2 00699000 DEV6 CLC 0(3,R5),TAP ?1ST 3 CHAR TAP ? @V305066 00700000 BNE CHKIGN NO, SEE IF DUMMY ENTRY @V305066 00701000 CLI 3(R5),BLANK NO SPECIFIC TAPE ID? @V305066 00702000 BNE T2 FALSE, GO CHK VALIDITY @V305066 00703000 MVI 3(R5),CHAR1 MAKE DEFAULT TAPE = 'TAP1' @V305066 00704000 B T3 @V305066 00705000 T2 CLI 4(R5),BLANK ONLY 1 DIGIT ON TAPID? @V305066 00706000 BNE ERR27E TOO MANY - ERROR @V305066 00707000 CLI 3(R5),CHAR1 IS IT NUMERIC > 0 ? @V305066 00708000 BL ERR27E NO ERROR @V305066 00709000 CLI 3(R5),CHAR5 IS IT DIGIT > 5? @V305066 00710000 BH ERR27E YES, ERROR @V305066 00711000 LA R9,TAPETAB CONVERT TAPID TO PUB INDEX @V305066 00712000 LA R7,TAPEND NO. OF TABLE ENTRIES @V305066 00713000 TAPLOOP CLC 0(4,R5),0(R9) TABLE MATCH PARAMETER? @V305066 00714000 BE CVT YES @V305066 00715000 LA R9,5(,R9) NO MATCH, PT NEXT TAB ENTRY @V305066 00716000 BCT R7,TAPLOOP GO COMPARE AGAIN @V305066 00717000 B ERR70E OTHERWISE, ERROR @V305066 00718000 CVT IC R4,4(R9) PLACE RIGHT CODE IN R4 @V305066 00719000 T3 LA R1,TAPTAB VALID LOG UNIT FOR TAPE @V305066 00720000 BAL R10,CHKASN SEE IF VALID ASSIGNMENT @V305066 00721000 L R10,ADEVTAB ADDRESS OF DEVTAB @V305066 00722000 USING DEVTAB,R10 ESTABLISH ADDRESSABILITY @V305066 00723000 LA R10,TAPE1 PREPARE FOR DEVTAB LOOKUP @V305066 00724000 ST R6,SAVEAD TEMP STORE R6 @V305066 00725000 LA R6,CON8 LENGTH OF DEVTAB ENTRY @V305066 00726000 LA R7,TAPE4 LAST ENTRY IN DEVTAB @V305066 00727000 COMPEQ CLC 4(4,R10),0(R5) TAPX IN PLIST = TAB ENTRY? @V305066 00728000 BE MOVECUU YES @V305066 00729000 BXLE R10,R6,COMPEQ END OF TABLE LOOKUP? @V305066 00730000 B ERR27E YES, NOT FOUND, ERROR @V305066 00731000 MOVECUU L R6,SAVEAD RESTORE R6 @V305066 00732000 MVC CUU(2),0(R10) MOVE CUU FROM DEVTAB @V305066 00733000 DROP R10 @V305066 00734000 MVI VALFLAG,TAPDEV INDICATE TAPE @V305066 00735000 LH R0,CUU TAPE CUU FOR DIAGNOSE @V305066 00736000 LR R14,R5 MAKE R14 = R5 @V305066 00737000 BAL R10,DIAGNOSE ISSUE DIAGNOSE @V305066 00738000 CLI VIRTSAVE,CLASTAPE MAG TAPE DEV. CLASS @V305066 00739000 BNE ERR113SA INVALID @V305066 00740000 CLI VIRTSAVE+1,TYP2401 2401 TAPE? @V305066 00741000 BE TAP2400 2400 TAPE ? @V305066 00742000 CLI VIRTSAVE+1,TYP2415 2415 TAPE? @V305066 00743000 BE TAP2400 YES @V305066 00744000 CLI VIRTSAVE+1,TYP2420 2420 TAPE? @V305066 00745000 BE TAP2400 YES @V305066 00746000 CLI VIRTSAVE+1,TYP3420 3420 TAPE? @V305066 00747000 BE TAP3420 YES @V305066 00748000 MVI DEVTYPE,DOS3410 DOS 3410 DEV TYPE @V305066 00749000 B TESTOPT GO TO SEE IF OPTIONS @V305066 00750000 TAP2400 MVI DEVTYPE,DOS2400 DOS 2400 DEV TYPE @V305066 00751000 B TESTOPT SEE IF ANY OPTIONS @V305066 00752000 TAP3420 MVI DEVTYPE,DOS3420 DOS 3420 DEV TYPE @V305066 00753000 TESTOPT TM OPTNFLAG,NOOPTNS ANY OPTIONS? @V305066 00754000 BO DEFAULT @V305066 00755000 LR R9,R8 POINT TO BEGIN OPTIONS @V305066 00756000 LR R5,R8 @V305066 00757000 XR R7,R7 @V305066 00758000 * 'CODE' IN COMMENTS REFERS TO DISPLACEMENT IN 'TRTCH' ASSIGNED TO 00759000 * KEYWORD OPERANDS. 00760000 MVC KEYWORD(8),DEN SEARCH FOR DENSITY KEYWORD @V305066 00761000 BAL R10,SCAN 'SCAN' ROUT FOR KEYWORDS @V305066 00762000 CLI FLAG2,MATCH 'DEN' FOUND ? @V305066 00763000 BNE TRK9SRCH NO. @V305066 00764000 LA R9,DENTAB YES - SEARCH FOR VALID DEN @V305066 00765000 DENSRCH CLC 0(8,R9),0(R5) DENSITY VALID ? @V305066 00766000 BE GOODEN YES - CONTINUE @V305066 00767000 CLC 0(8,R9),DENEND NO - END OF DENSITY TAB ? @V305066 00768000 BE ERR29E SORRY, THAT'S IT @V305066 00769000 LA R9,8(,R9) @V305066 00770000 B DENSRCH OTHERWISE, GET ANOTHER @V305066 00771000 DEFAULT EQU * @V305066 00772000 MVC PUBMODE(2),DEFMODES @V305066 00773000 B GETLUB @V305066 00774000 * 00775000 GOODEN OI TAPSW,DENSITY YES - SET DENSITY SWITCH @V305066 00776000 MVC TDENSITY(4),0(R5) SAVE DENSITY @V305066 00777000 TRK9SRCH LR R5,R8 RESTORE R5 TO 1ST KEYWORD @V305066 00778000 MVC KEYWORD(8),NINTRACK SEARCH FOR 9-TRACK OPTION @V305066 00779000 BAL R10,SCAN 'SCAN' FOR OPTION @V305066 00780000 LR R5,R8 RESET OPTION PTR @V305066 00781000 CLI FLAG2,MATCH '9TRACK' FOUND ? @V305066 00782000 BNE TRK7SRCH NO. @V305066 00783000 OI TAPSW,TRK9 YES - SET 9-TRACK SWITCH @V305066 00784000 * 00785000 TRK7SRCH MVC KEYWORD(8),SEVTRACK SEARCH FOR 7-TRACK OPTION @V305066 00786000 BAL R10,SCAN GOT O 'SCAN' FOR OPTION @V305066 00787000 LR R5,R8 RESET OPTION PTR @V305066 00788000 CLI FLAG2,MATCH '7TRACK' FOUND ? @V305066 00789000 BNE TRTSRCH NO. @V305066 00790000 OI TAPSW,TRK7 YES - SET 7-TRACK SWITCH @V305066 00791000 * 00792000 TRTSRCH MVC KEYWORD(8),TRKTCH SEARCH FOR TRTCH KEYWORD @V305066 00793000 BAL R10,SCAN USE 'SCAN' FOR KEYWORD @V305066 00794000 XR R7,R7 CLEAR FOR CODE USE @V305066 00795000 CLI FLAG2,MATCH 'TRTCH' FOUND ? @V305066 00796000 BNE DENCHEK NO. @V305066 00797000 OI TAPSW,TRTFLAG YES - SET TRT SWITCH @V305066 00798000 TM TAPSW,TRK9 DID USER SPEC'FY 9-TRACK ? @V305066 00799000 BO ERR35E IF SO, ERROR @V305066 00800000 * 00801000 * SEARCH TRTAB TABLE TO GET DISPLACEMENT FOR 'TRTCH' 00802000 LA R9,TRTAB START OF TABLE @V305066 00803000 AGAIN CLC 0(3,R9),0(R5) CHEK FOR O, OC,OT,E,ET @V305066 00804000 BE VALID FOUND @V305066 00805000 CLC 0(2,R9),TRTEND CHEK END OF TABLE @V305066 00806000 BE ERR29E ERROR IF NOTHING FOUND @V305066 00807000 LA R9,4(,R9) BUMP INDEX AND @V305066 00808000 B AGAIN CHEK AGAIN @V305066 00809000 * 00810000 VALID IC R7,3(R9) GET CODE FOR 'TRTCH' DISPL @V305066 00811000 TM TAPSW,DENSITY DENSITY GIVEN? @V305066 00812000 BZ EQUAL7 NO. DEFAULT DENSITY. @V305066 00813000 B DENSNUM YES - CONTINUE LATER @V305066 00814000 * 00815000 DENCHEK TM TAPSW,DENSITY DENSITY? (NO TRTCH COND.) @V305066 00816000 BZ CHEKNEW NO - CHEK FOR NEW ENTRY @V305066 00817000 DENSNUM CLC TDENSITY(4),SIXTN00 COMP DENSITY TO 1600 BPI @V305066 00818000 BE VAL1600 @V305066 00819000 CLC TDENSITY(4),HIDENSTY 6250 BPI @V305066 00820000 BE VAL6250 EQUAL @V305066 00821000 CLC TDENSITY(4),EIGHT00 COMP DENSITY TO '800' BPI @V305066 00822000 BL CHEKLOW @V305066 00823000 BE CHEKEQL @V305066 00824000 B ERR35E INVALID MODE @V305066 00825000 VAL6250 TM TAPSW,TRK7 CHECK FOR '7TRACK' @V305066 00826000 BO ERR35E '7TRACK' INVALID WITH 6250 @V305066 00827000 TM TAPSW,TRTFLAG 'TRTCH' IS EQUALLY BAD @V305066 00828000 BO ERR35E 6250 INVALID WITH '7TRACK' @V305066 00829000 LA R7,17(,R7) SET '9TRACK', 6250 BPI @V305066 00830000 B DT11 @V305066 00831000 VAL1600 TM TAPSW,TRK7 CHEK FOR '7TRACK' @V305066 00832000 BO ERR35E @V305066 00833000 TM TAPSW,TRTFLAG 'TRTCH' IS EQUALLY BAD @V305066 00834000 BO ERR35E @V305066 00835000 LA R7,16(,R7) SET 9 TRACK, 1600 BPI @V305066 00836000 B DT11 @V305066 00837000 * 00838000 CHEKEQL TM TAPSW,TRK7 IF =800, CHEK FOR 7TRACK @V305066 00839000 BO EQUAL7 IF 7TRACK, DROP @V305066 00840000 TM TAPSW,TRTFLAG CHEK 'TRTCH' ALSO (7TRK) @V305066 00841000 BO EQUAL7 @V305066 00842000 XR R7,R7 DEF TO PROVIDE 9TRK,800 BPI @V305066 00843000 B DT11 @V305066 00844000 EQUAL7 LA R7,1(,R7) 7TRACK, 800 BPI CODE (1) @V305066 00845000 TM TAPSW,TRTFLAG 'TRTCH' SPEC'D? @V305066 00846000 BO DT11 YES. @V305066 00847000 LA R7,2(,R7) NO, DEFAULT TO 'O' @V305066 00848000 B DT11 @V305066 00849000 * 00850000 CHEKLOW TM TAPSW,TRK9 MAKE SURE IT'S 7 TRACK... @V305066 00851000 BNZ ERR35E @V305066 00852000 TM TAPSW,TRTFLAG 'TRTCH' SPEC'D? @V305066 00853000 BO CHEK200 YES @V305066 00854000 LA R7,2(,R7) NO, DEFAULT TO 'O' @V305066 00855000 CHEK200 EQU * @V305066 00856000 CLC TDENSITY(4),TWO00 CHEK FOR 200 BPI @V305066 00857000 BH FIVE56 IF NOT, DROP @V305066 00858000 LA R7,11(,R7) PROVIDE 7TRK/200 BPI CODE (11) @V305066 00859000 B DT11 @V305066 00860000 FIVE56 LA R7,6(,R7) IF >200, USE 7TRK, 556 BPI CODE (6) @V305066 00861000 B DT11 @V305066 00862000 CHEKNEW MVC PUBMODE(2),DEFMODES DEFAULT MODES @V305066 00863000 B DT14 GO CKECK ERRRONEOUS PARAMS. @V305066 00864000 * 00865000 DT11 LTR R7,R7 IS MODE NUMBER 0 TO 16 ? @V305066 00866000 BM ERR35E NO - ERROR @V305066 00867000 CH R7,H17 HIGHEST INDEX IN TABLE @V305066 00868000 BH ERR35E NO - ERROR @V305066 00869000 * USE R7 AS DISPLACEMENT IN 'TRTCH' TABLE 00870000 AR R7,R7 DOUBLE VALUE IN R7 @V305066 00871000 LA R5,TRTCH ADDR OF TRTCH TABLE IN R5 @V305066 00872000 AR R5,R7 PT TO ENTRY IN TRTCH TAB @V305066 00873000 MVC PUBMODE(2),0(R5) CMS/DOS TAPE MODES TO PUB @V305066 00874000 CLI PUBMODE+1,TWELVE DEALING WITH 7 TRACK TAPE @V305066 00875000 BNL DT14 IF 9 TRACK BRANCH @V305066 00876000 OI PUBFLAG,TRACK7 INDICATE 7-TRACK @V305106 00877000 * THIS CODE CHECKS FOR ERRONEOUS PARAMETERS WHEN USING THE DISK OR 00878000 * TAPE OPTIONS OF THE ASSGN COMMAND 00879000 DT14 LR R5,R8 RESET TO FIRST KEYWORD @V305066 00880000 OI FLAG3,LASTCHK FINAL CHEK FOR BAD OPTIONS @V305066 00881000 DT15 EQU * @V305066 00882000 BAL R2,SCANTS INVOKE OPTION SCANNER @V305066 00883000 CLI 2(R5),ROPTCD 9TRACK/7TRACK OR PERMANENT? @V305066 00884000 BE BUMP8A @V305066 00885000 CLC 0(2,R5),LOWRCASE LOWCASE? @V305066 00886000 BE CHKTERM @V305066 00887000 CLC 0(2,R5),UPCASE UPCASE? @V305066 00888000 BNE BUMP16A IF NOT THESE, IT'S A KEYWORD @V305066 00889000 CHKTERM TM VALFLAG,TERMDEV TERMINAL DEVICE? @V305066 00890000 BNO ERR03E IF NOT, ERROR @V305066 00891000 BUMP8A LA R5,8(,R5) UP PTR FOR NON-KEYWORD OPTS @V305066 00892000 B ENDCHEKA @V305066 00893000 BUMP16A LA R5,16(,R5) @V305066 00894000 ENDCHEKA C R6,0(,R5) IS THIS END OF SCAN? @V305066 00895000 BH DT15 NO, INVOKE THE SCANNER AGAIN @V305066 00896000 B GETLUB YES, PLIST IS OK @V305066 00897000 * 00898000 * 00899000 CHKIGN CLC 0(8,R5),IGN IGNORE PARAMETER @V305066 00900000 BNE CHKUA @V305066 00901000 LR R14,R5 SEE IF ASSGNED TO RESTRICTED @V305066 00902000 S R14,FULL8 LOGICAL UNITS @V305066 00903000 CLC 0(8,R14),SYSRDR SYSRDR ? @V305066 00904000 BE RESTRICT RESTRICTED @V305066 00905000 CLC 0(8,R14),SYSIPT SYSIPT? @V305066 00906000 BE RESTRICT RESTRICTED @V305066 00907000 CLC 0(8,R14),SYSINA SYSIN? @V305066 00908000 BE RESTRICT RESTRICTED @V305066 00909000 CLC 0(8,R14),SYSCLB SYSCLB? @V305066 00910000 BE RESTRICT RESTRICTED @V305066 00911000 OI FLAG4,DUM INDICATE DUMMY SPECIFIED @V305066 00912000 B GETLUB @V305066 00913000 RESTRICT LR R4,R14 READY R4 FOR MESSAGE @V305066 00914000 B ERR87E1 GO TO PRINT ERROR MESSAGE @V305066 00915000 CHKUA CLC 0(8,R5),UA UNASSIGNED @V305066 00916000 BNE CHKMODE NO @V305066 00917000 OI FLAG4,NOASN IND. UNASSIGNED SPECIFIED @V305066 00918000 B GETLUB @V305066 00919000 CHKMODE CLI 1(R5),BLANK IS IT MODE PARM? @V305066 00920000 BNE ERR70E @V305066 00921000 LA R9,MODETAB ADDR OF MODE CONVER TABLE @V305066 00922000 LA R7,ENDMODE NO. OF TABLE ENTRIES @V305066 00923000 MODECOMP CLC 0(1,R5),0(R9) TAB MODE=COMMAND MODE? @V305066 00924000 BE MODEOK YES @V305066 00925000 LA R9,2(,R9) NO, PT TO NEXT TAB ENTRY @V305066 00926000 BCT R7,MODECOMP GO COMPARE AGAIN @V305066 00927000 B ERR70E OTHERWISE ERROR @V305066 00928000 MODEOK IC R4,1(R9) PLACE DISK MODE CODE IN R4 @V305066 00929000 LA R1,DSKTAB VALID LOG UNIT FOR DISK @V305066 00930000 BAL R10,CHKASN SEE IF VALID ASSIGNMENT @V305066 00931000 MVC MODESAVE(1),0(R5) SAVE CMS DISK MODE @V305066 00932000 L R15,VCADTLKP PREPARE TO DO ADT LOOKUP @VM03093 00933000 LA R1,MODESAVE-24 POSITION INPUT TO ADTLKP @V305066 00934000 BALR R14,R15 BRANCH @V305066 00935000 LTR R15,R15 SUCCESSFUL? @V305066 00936000 BNZ ERR69E NO ... @V305066 00937000 ST R1,AADTDISK FOUND - REMEMBER A(ADT) @V305066 00938000 USING ADTSECT,R1 CHECK THE ADT BLOCK ... @V305066 00939000 TM ADTFLG2,ADTFROS OS DISK @V305066 00940000 BO FOUNDIT YES @V305066 00941000 TM ADTFLG2,ADTFDOS DOS DISK ? @V305066 00942000 BO FOUNDIT YES @V305066 00943000 TM ADTFLG1,ADTFRO+ADTFRW SHOULD BE ACCESS'D @V305066 00944000 BZ ERR69E ERROR IF NOT ACCESSED @V305066 00945000 FOUNDIT MVC SAVEAD(4),ADTDTA DEVICE TABLE IN NUCON @V305066 00946000 L R10,SAVEAD PUT ADDRESS IN REGISTER @V305066 00947000 MVC CUU(2),DTAD(R10) DISK CUU TO PUB ENTRY @V305066 00948000 CLI DTADT(R10),T2314 2314/2319 @V305066 00949000 BE TYP2314 YES @V305066 00950000 TM DOSFLAGS,DOSVSAM HAS VSAM BEEN 'SET'? @V505098 00950700 BZ CHK3350 NO, CONTINUE @V505098 00951400 OI PUBFLAG,PUBRPS MARK DISK FOR VSAM RPS USE @V505098 00952100 CHK3350 CLI DTADT(R10),T3350 3350? @V505098 00952800 BNE CHK3380 IF NOT 3350, CHECK FOR 3380 HRC004DS 00953790 MVI DEVTYPE,DOS3350 OTHERWISE, SUPPORT AS 3350 @V505098 00954200 B MVEMODE GO MOVE DISK MODE TO PUB @V505098 00954900 CHK3380 CLI DTADT(R10),T3380 3350? HRC004DS 00955000 BNE CHK3340 IF NOT 3380, CHECK FOR 3340 HRC004DS 00955100 MVI DEVTYPE,DOS3380 OTHERWISE, SUPPORT AS 3380 HRC004DS 00955200 B MVEMODE GO MOVE DISK MODE TO PUB HRC004DS 00955300 * B ERR366E NO SUPPORT FOR 3380 HRC004DS 00955400 CHK3340 CLI DTADT(R10),T3340 3340 ? @V505098 00955600 BE TYP3340 YES @V305106 00957000 EQUAL MVI DEVTYPE,DOS3330 DOS PUB DEV. CODE FOR 3330 @V305066 00958000 LH R0,CUU GET DEVICE ADDRESS @V505098 00958100 DC X'83090024' DIAGNOSE TO GET MODEL NUMBER@V505098 00958200 BO ERR113S ERROR, DEVICE NOT ATTACHED @V505098 00958300 CLM R10,B'0010',MDL333B IS IT 3330-11? @V505098 00958400 BNE MVEMODE NO, MUST BE REGULAR 3330 @V505098 00958500 MVI DEVTYPE,DOS333B PUB DEV CODE FOR 3330-11 @V505098 00958600 MVEMODE MVC DISKMODE,0(R5) DISK MODE TO PUB DUMMY @V305066 00959000 TM OPTNFLAG,NOOPTNS ANY OPTIONS SPECIFIED? @V305066 00960000 BNZ GETLUB NO @V305066 00961000 LR R5,R8 R5 = ADDR OF FIRST OPTION @V305066 00962000 C R6,0(,R8) END OF PLIST? @V305066 00963000 BE GETLUB OK @V305066 00964000 B ERR03E INVALID OPTION @V305066 00965000 TYP3340 LH R0,CUU CUU TO REGISTER @V305066 00966000 DC X'83090024' DIAGNOSE CODE 24 @V305066 00967000 BO ERR113S ERROR, DEVICE NOT ATTACHED @V305066 00968000 ST R9,VIRTSAVE STORE DEVICE CLASS INFO @V305066 00969000 ST R10,REALSAVE STORE FEATURE INFO @V305066 00970000 CLI VIRTSAVE,CLASDASD DISK DEVICE CLASS @V305066 00971000 BNE ERR113SA NO, INVALID DEVICE CLASS @V305066 00972000 TM REALSAVE+3,FTR35MB 3340 35MB @V305066 00973000 BO TYPE35 YES, 35MB @V305066 00974000 MVI DEVTYPE,DOS3340B 3340 70MB @V305066 00975000 B MVEMODE MOVE CMS DISK MODE LETTER @V305066 00976000 TYPE35 MVI DEVTYPE,DOS3340A 3340 35MB @V305066 00977000 B MVEMODE MOVE CMS DISK MODE LETTER @V305066 00978000 TYP2314 MVI DEVTYPE,DOS2314 DOS PUB DEV. CODE FOR 2314/2319@V305066 00979000 B MVEMODE BRANCH ABOVE @V305066 00980000 * 00981000 DROP R1 (THRU WITH ADT BLOCK HERE) @V305066 00982000 CHKASN CLI LOGUNIT+3,CHAR0 PROG LOG UNIT @V305066 00983000 BCR 11,R10 YES, GO NO FURTHER @V305066 00984000 COMP CLC LOGUNIT+3(3),0(R1) MATCH ON TABLE ENTRY @V305066 00985000 BCR 8,R10 YES, GO NO FURTHER @V305066 00986000 CLI 3(R1),END END OF VALID LOG. UNITS @V305066 00987000 BE ERR87E YES, INVALID ASSIGNMENT @V305066 00988000 LA R1,3(,R1) POINT TO NEXT TABLE ENTRY @V305066 00989000 B COMP COMPARE AGAIN @V305066 00990000 * 00991000 DIAGNOSE DC X'83010024' @V305066 00992000 BO ERR113SB DEVICE NOT ATTACHED @V305066 00993000 ST R1,VIRTSAVE STORE R1 AND R2 UPON @V305066 00994000 ST R2,REALSAVE RETURN FROM DIAGNOSE @V305066 00995000 BR R10 RETURN TO MAIN CODE. @V305066 00996000 * 00997000 GETLUB L R1,ABGCOM PART COMREG ADDRESS @V305066 00998000 LA R7,SAVEUNIT+1 R7 POINTS TO LUB INDEX @V305066 00999000 CVTSEC LH R3,74(R1) NICL @V305066 01000000 SR R14,R14 GET ... @V305066 01001000 IC R14,0(,R3) NUMBER OF SYSTEM LUBS @V305066 01002000 SR R3,R3 @V305066 01003000 IC R3,0(R7) LOGICAL UNIT NUMBER @V305066 01004000 TM SAVEUNIT,PROG PROG CLASS? @V305066 01005000 BNO AREA2 SYS CLASS @V305066 01006000 AR R3,R14 INCREM BY NO. OF SYS LUBS @V305066 01007000 AREA2 EQU * @V305066 01008000 AR R3,R3 ADD SYS CLASS FICL @V305066 01009000 AH R3,76(R1) ADD LUB TAB ADDR @V305066 01010000 TM SYSSW,PASS1+PASS2 SYSIN/SYSOUT SPECIFIED ? @V305066 01011000 BO GETPUB SECOND PASS - GET PUB @V305066 01012000 TM SYSSW,PASS1 FIRST PASS? @V305066 01013000 BO PASFIRST YES @V305066 01014000 * AT THIS TIME R3 POINTS TO LUB BYTE 01015000 * 01016000 GETPUB L R2,ABGCOM ADDRESS OF BGCOM IN R2 @V305066 01017000 LH R2,PUBPT PUB ADDRESS @V305066 01018000 TM FLAG4,DUM DUMMY SPECIFIED ON COMMAND ? @V305066 01019000 BNO CHKNEXT NO @V305066 01020000 MOVEFE MVI 0(R3),IGNORE YES, INSERT PROPER LUB INDEX @V305066 01021000 TM SYSSW,PASS1+PASS2 SYSIN OR SYSOUT SPECIFIED? @V305066 01022000 BO FE YES @V305066 01023000 B EXIT @V305066 01024000 FE L R3,LUBPOINT RESTORE FIRST LUB POINTER @V305066 01025000 NI SYSSW,255-PASS1+PASS2 TURN OFF SW @V305066 01026000 B MOVEFE @V305066 01027000 PASFIRST ST R3,LUBPOINT TWO LUBS MUST BE @V305066 01028000 OI SYSSW,PASS2 SET UP FOR SECOND PASS @V305066 01029000 LA R7,1(,R7) BUMP SAVEUNIT PTR BY 1 @V305066 01030000 B CVTSEC REPEAT OPERATION @V305066 01031000 CHKNEXT TM FLAG4,NOASN WAS UNASSIGNED SPECIFIED? @V305066 01032000 BNO PUBENTRY NO, GO LOCATE PUB ENTRY @V305066 01033000 MOVEFF MVI 0(R3),NOASSGN INSERT PROPER LUB ENTRY @V305066 01034000 TM SYSSW,PASS1+PASS2 SYSIN OR SYSOUT SPECIFIED? @V305066 01035000 BO FF YES @V305066 01036000 B EXIT @V305066 01037000 FF L R3,LUBPOINT RESTORE FIRST LUB POINTER @V305066 01038000 NI SYSSW,255-PASS1+PASS2 TURN OFF SWITCH @V305066 01039000 B MOVEFF @V305066 01040000 PUBENTRY STC R4,0(R3) STORE PUB INDEX CODE IN LUB @V305066 01041000 TM SYSSW,PASS1+PASS2 SYSIN OR SYSOUT SPECIFIED? @V305066 01042000 BO FILL2 YES, STORE CODE IN LUB @V305066 01043000 SLL R4,3 MULT BY LEN OF PUB ENTRY @V305066 01044000 AR R4,R2 ADD ADDRESS OF PUB @V305066 01045000 INSERT MVC 0(8,R4),CUU CUU/DEVTYPE/PUBMODES/7TRK FLG @V305066 01046000 B EXIT @V305066 01047000 FILL2 L R3,LUBPOINT RESTORE FIRST LUB POINTER @V305066 01048000 NI SYSSW,255-PASS1+PASS2 TURN OFF SWITCH @V305066 01049000 B PUBENTRY @V305066 01050000 * 01051000 *********************************************************************** 01052000 * 01053000 * THE SCAN ROUTINE CHECKS THE PARAMETER WHICH IS POINTED TO BY PLIST 01054000 * TO SEE IF IT IS A LEGAL PARAMETER. IF IT IS NOT LEGAL AN ERROR 01055000 * MESSAGE IS TYPED AT THE USER'S TERMINAL 01056000 ******************************************************************** 01057000 SCANTS EQU * @V305066 01058000 LA R7,TABSTART BEG ADDR OF KEYWORD/OPT TAB @V305066 01059000 LR R3,R8 @V305066 01060000 LA R8,T12 LENGTH OF EACH TAB. ENTRY @V305066 01061000 LA R9,TABEND1 END OF TABLE @V305066 01062000 * 01063000 KEYCOMP CLC 0(8,R7),0(R5) CHEK VALID OPTION @V305066 01064000 BNE BXLE TRY AGAIN... @V305066 01065000 TM FLAG3,LASTCHK IS THIS FINAL CHEK? @V305066 01066000 BO FINAL YES, SKIP @V305066 01067000 MVC TESTBYTE(1),8(R7) GET FLAG BYTE @V305066 01068000 NC TESTBYTE(1),VALFLAG 'AND' IT FOR VALID DEVICE @V305066 01069000 CLC TESTBYTE(1),VALFLAG DEVICE/OPTION COMPATIBLE? @V305066 01070000 BNE ERR03E INVALID OPTION @V305066 01071000 FINAL LR R8,R3 @V305066 01072000 BR R2 @V305066 01073000 BXLE BXLE R7,R8,KEYCOMP @V305066 01074000 BNE ERR03E INVALID OPTION @V305066 01075000 EJECT 01076000 * 01077000 DEVABBR EQU * CHEK DEV NAME AND ABBRE @V305066 01078000 LR R9,R5 PRESERVE COMMAND PTR @V305066 01079000 BCTR R2,0 DECREMENT FOR 'EXECUTE' @V305066 01080000 AR R9,R2 R9 TO SCAN FOR 1ST BLANK @V305066 01081000 MATCHR EX R2,COMPABR LOOK FOR MATCH @V305066 01082000 BCR 7,R10 IF NO MATCH, RET.: CC > 0 @V305066 01083000 CLI 1(R9),BLANK MATCH, NEXT CHAR BLANK @V305066 01084000 BCR 8,R10 YES, RETURN: CC = 0 @V305066 01085000 CH R2,H7 LAST CHAR @V305066 01086000 BCR 8,R10 YES,RETURN: CC = 0 @V305066 01087000 LA R2,1(,R2) IF NOT, BUMP CHAR COUNT AND @V305066 01088000 LA R9,1(,R9) BLANK PTR AND @V305066 01089000 B MATCHR CONTINUE SCANNING @V305066 01090000 COMPABR CLC 0(*-*,R14),0(R5) MATCH DEVICE PASSED VS. ENTRY @V305066 01091000 EJECT 01092000 * 01093000 *********************************************************************** 01094000 * 01095000 * KEYWORD SCAN SUB-ROUTINE 01096000 * 01097000 * THIS SUB-ROUTINE ATTEMPTS TO FIND THE KEYWORD (GIVEN 01098000 * TO IT AS A PARAMETER) IN THE COMMAND INPUT PLIST. 01099000 * 01100000 *********************************************************************** 01101000 * 01102000 * 'SCAN' SEARCHES THE PLIST FOR THE OPTION PASSED TO IT 01103000 * IN 'KEYWORD'. IF FOUND, A FLAG IS SET AND THE SCAN CONTINUES 01104000 * TO CHECK FOR A DUPLICATE OPTION. IF NO DUPLICATION, 01105000 * 'SCANTS' IS CALLED TO POSITION R7 AT THE OPTION TABLE ENTRY 01106000 * FOR THIS OPTION. IF THERE IS A POSSIBLE CONFLICTING OPTION 01107000 * FOR THE 'FOUND' OPTION, THE TABLE ENTRY FOR THE CONFLICTING 01108000 * OPTION IS CHECKED FOR THE 'FOUND' FLAG. IF THE FLAG IS ON 01109000 * THERE IS A CONFLICT AND AN ERROR EXIT IS TAKEN. 01110000 * 01111000 SCAN EQU * @V305066 01112000 SCANNING CLC KEYWORD(8),0(R5) MATCH? @V305066 01113000 BNE SCANNOT NO... @V305066 01114000 TM VALFLAG,FOUND IS THIS A REPEAT? @V305066 01115000 BO ERR65E YES, ERROR @V305066 01116000 LR R2,R5 KEEP OPTION POINTR @V305066 01117000 OI VALFLAG,FOUND FIRST HIT. @V305066 01118000 SCANBUMP LA R5,8(,R5) @V305066 01119000 B SCANNING KEEP ON MOVING... @V305066 01120000 * 01121000 SCANNOT C R6,0(,R5) END OF PLIST? @V305066 01122000 BNE SCANBUMP NO, CONTINUE @V305066 01123000 TM VALFLAG,FOUND WAS OPTION FOUND? @V305066 01124000 BO SCANHIT YES, GO PROCESS @V305066 01125000 MVI FLAG2,NOMATCH NO, TELL CALLER @V305066 01126000 BR R10 @V305066 01127000 SCANHIT MVI FLAG2,MATCH TELL CALLER IT'S A HIT @V305066 01128000 NI VALFLAG,255-FOUND TURN OFF 'FOUND' COND. @V305066 01129000 LR R5,R2 POINT TO OPT IN COMMAND @V305066 01130000 BAL R2,SCANTS GO POINT TO TABLE ENTRY @V305066 01131000 LA R5,8(,R5) KEYWRD OPER. FOR CALLER @V305066 01132000 * R7 -> TABLE ENTRY FOR OPT 01133000 L R2,8(R7) LOAD CONFLICTING OPT ADDR. @V305066 01134000 LA R2,0(,R2) CLEAR THE FLAG BYTE @V305066 01135000 LTR R2,R2 ANY POSSIBLE CONFLICTS? @V305066 01136000 BZ SCANRET IF NOT, RETURN @V305066 01137000 TM 8(R2),FOUND IF SO, FOUND CONFLICT OPT @V305066 01138000 BO ERR66E CONFLICTING OPTIONS @V305066 01139000 SCANRET OI 8(R7),FOUND SET 'FOUND' OPTN'S CONFLICT FLG @V305066 01140000 BR R10 RETURN @V305066 01141000 EJECT 01142000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 01143000 * ROUTINE TO CONVERT CUU FROM BINARY TO ZONED FORMAT * 01144000 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 01145000 SPACE 2 01146000 CVTCUU LH R4,CUU CUU TO REGISTER @V305066 01147000 SLL R4,4 ZERO OUT LAST 4 BITS @V305066 01148000 ST R4,PACK+4 STORE IN PACKED FIELD @V305066 01149000 OI PACK+7,PACKDEC INSURE PACKED DECIMAL @V305066 01150000 UNPK PACK(3),PACK+6(2) UNPACK @V305066 01151000 OI PACK+2,CHAR0 MAKE SURE PRINTABLE @V305066 01152000 LA R4,PACK POSITION FOR MESSAGE @V305066 01153000 BR R10 @V305066 01154000 EJECT 01155000 * 01156000 *********************************************************************** 01157000 * 01158000 * ERROR MESSAGES 01159000 * 01160000 *********************************************************************** 01161000 ERR28E EQU * @V305066 01162000 DMSERR NUM=28,LET=E,TEXT='NO LOGICAL UNIT SPECIFIED' @V305066 01163000 LA R15,TWENTY4 RETURN CODE = 24 @V305066 01164000 B EXIT @V305066 01165000 ERR87E LA R4,LOGUNIT POINT TO SYSXXX @V305066 01166000 ERR87E1 DMSERR NUM=87,LET=E,TEXT='INVALID ASSIGNMENT OF ''......'' TO *01167000 DEVICE ''.......''',SUB=(CHARA,(R4),CHARA,(R5)),RENT=NO 01168000 LA R15,24 RETURN CODE = 24 @V305066 01169000 B EXIT BR TO EXIT @V305066 01170000 ERR70 EQU * @V305066 01171000 LR R5,R2 R5 POINTS TO INVALID PARAMETER @V305066 01172000 ERR70E EQU * @V305066 01173000 DMSERR NUM=70,LET=E,SUB=(CHARA,(R5)),TEXT='INVALID PARAMETER '*01174000 '........''' @V305066 01175000 LA R15,TWENTY4 RETURN CODE = 24 @V305066 01176000 B EXIT @V305066 01177000 SPACE 2 01178000 * 01179000 ERR50E DMSERR NUM=50,SUB=(CHARA,(R5)),LET=E,TEXT='PARAMETER MISSING A*01180000 FTER ......' @V305066 01181000 LA R15,TWENTY4 RETURN CODE = 24 @V305066 01182000 B EXIT @V305066 01183000 SPACE 2 01184000 ERR03A LA R5,8(,R13) POINT TO INVALID OPTION @V305066 01185000 ERR03E DMSERR NUM=03,LET=E,SUB=(CHARA,(R5)),TEXT='INVALID OPTION ''..*01186000 ......''' @V305066 01187000 LA R15,TWENTY4 RETURN CODE = 24 @V305066 01188000 B EXIT @V305066 01189000 ERR27E DMSERR NUM=27,LET=E,SUB=(CHARA,(R5)),TEXT='INVALID DEVICE ''..*01190000 ......''' @V305066 01191000 LA R15,TWENTY4 RETURN CODE = 24 @V305066 01192000 B EXIT @V305066 01193000 SPACE 2 01194000 ERR29E LA R3,8 THIS ROUTINE SUBS 8 FROM @V305066 01195000 LR R4,R5 THE PARM TO GET THE OPT @V305066 01196000 SR R4,R3 FOR ERR MSG. @V305066 01197000 DMSERR NUM=29,LET=E,SUB=(CHARA,(R5),CHARA,(R4)),TEXT='INVALID *01198000 PARAMETER ''........'' IN THE OPTION ''........'' FIELD'*01199000 ,RENT=NO @V305066 01200000 LA R15,TWENTY4 RETURN CODE = 24 @V305066 01201000 B EXIT @V305066 01202000 SPACE 2 01203000 ERR35E DMSERR NUM=35,LET=E,TEXT='INVALID TAPE MODE' @V305066 01204000 LA R15,TWENTY4 RETURN CODE = 24 @V305066 01205000 B EXIT @V305066 01206000 SPACE 2 01207000 ERR99E DMSERR NUM=99,LET=E,TEXT='CMS/DOS ENVIRONMENT NOT ACTIVE' 01208000 LA R15,FORTY RETURN CODE = 40 @V305066 01209000 B EXIT @V305066 01210000 ERR65E DMSERR NUM=65,LET=E,SUB=(CHARA,(R5)),TEXT='''........'' OPTION*01211000 SPECIFIED TWICE' @V305066 01212000 LA R15,TWENTY4 RETURN CODE = 24 @V305066 01213000 B EXIT @V305066 01214000 SPACE 2 01215000 ERR66E DMSERR NUM=66,LET=E,SUB=(CHARA,(R2),CHARA,(R7)),TEXT='''......*01216000 ..'' AND ''........'' ARE CONFLICTING OPTIONS',RENT=NO 01217000 LA R15,TWENTY4 RETURN CODE = 24 @V305066 01218000 B EXIT @V305066 01219000 SPACE 2 01220000 * 01221000 ERR69E LA R5,MODESAVE POINT TO MODE LETTER, @V305066 01222000 DMSERR NUM=69,LET=E,SUB=(CHARA,((R5),1)),TEXT='DISK ''..'' NOT*01223000 ACCESSED' @V305066 01224000 LA R15,THIRTY6 RETURN CODE = 36 @V305066 01225000 B EXIT @V305066 01226000 * 01227000 * 01228000 ERR113SA MVI CLASSSW,SWON INDICATE WHICH MESSAGE @V305066 01229000 ERR113SB CLC CUU(2),RDRCUU READER? @V305066 01230000 BE RDRMSG YES, ISSUE MESSAGE @V305066 01231000 CLC CUU(2),PCHCUU PUNCH? @V305066 01232000 BE PCHMSG YES, ISSUE MESSAGE @V305066 01233000 CLC CUU(2),PRTCUU PRINTER? @V305066 01234000 BE LSTMSG YES, ISSUE MESSAGE @V305066 01235000 L R4,ADEVTAB DEVTAB ADDRESS @V305066 01236000 USING DEVTAB,R4 ESTABLISH ADDRESSABILITY @V305066 01237000 LA R6,CON8 LEN. OF DEVTAB ENTRY @V305066 01238000 LA R4,TAPE1 FIRST ENTRY IN DEVTAB @V305066 01239000 LA R7,TAPE4 LAST DEVTAB ENTRY @V305066 01240000 EQ CLC 0(2,R4),CUU CUU MATCH? @V305066 01241000 BE TAPMSG YES, ISSUE TAPE MESSAGE @V305066 01242000 BXLE R4,R6,EQ BUMP TO NEXT ENTRY @V305066 01243000 MVC DEVID(1),0(R5) MUST BE DISK @V305066 01244000 B ERR113S BR TO PRINT ERROR @V305066 01245000 TAPMSG MVC DEVID(4),4(R4) MOVE TAPX TO MESSAGE @V305066 01246000 B ERR113S BR TO PPINT ERROR @V305066 01247000 RDRMSG MVC DEVID(6),READER READER MESSAGE @V305066 01248000 MVC PACK(3),RDRPACK PACKED RDR CUU @V305066 01249000 B ERR113S GO TO PRINT MESSAGE @V305066 01250000 PCHMSG MVC DEVID(5),PUNCH PUNCH MESSAGE @V305066 01251000 MVC PACK(3),PCHPACK PACKED PCH CUU @V305066 01252000 B ERR113S GO TO PRINT MESSAGE @V305066 01253000 LSTMSG MVC DEVID(7),PRINTER PRINTER MESSAGE @V305066 01254000 MVC PACK(3),PRTPACK PACKED PRT CUU @V305066 01255000 DROP R4 @V305066 01256000 ERR113S LA R5,DEVID PREPARE TO ISSUE MESSAGE @V305066 01257000 CLI CLASSSW,SWON IS IT INVAL MESSAGE CLASS @V305066 01258000 BE ERR90E YES @V305066 01259000 LA R4,PACK ERROR MSG FIELD @V305066 01260000 CLI PACK,PACKSW CUU ALREADY PACKED @V305066 01261000 BNE MSGOUT YES, SKIP CONVERT @V305066 01262000 BAL R10,CVTCUU CONVERT CUU @V305066 01263000 MSGOUT DMSERR NUM=113,LET=S,SUB=(CHARA,(R5),CHARA,(R4)),TEXT='''.....*01264000 ... (...)'' NOT ATTACHED',RENT=NO @V305066 01265000 LA R15,HUNDRED RETURN CODE = 100 @V305066 01266000 B EXIT @V305066 01267000 * 01268000 ERR90E LA R6,VIRTSAVE POINTER FOR MESSAGE @V305066 01269000 DMSERR NUM=90,LET=E,SUB=(HEX4A,(R6),CHARA,(R5)),TEXT='INVALID *01270000 DEVICE CLASS ''..'' FOR ''.......''',RENT=NO @V305066 01271000 LA R15,THIRTY6 RETURN CODE = 36 @V305066 01272000 B EXIT @V305066 01273000 * 01274000 ERR366E DMSERR TEXT='NO CMS/DOS SUPPORT FOR NATIVE 3380 DISK',LET=E,NU*01275490 M=366 @V305066 01276000 LA R15,THIRTY6 RETURN CODE @V305066 01277000 B EXIT GET OUT @V305066 01278000 *********************************************************************** 01279000 * 01280000 * EXIT PROCESSING 01281000 * 01282000 *********************************************************************** 01283000 * 01284000 EXIT EQU * @V305066 01285000 L R13,GR13SA GET R13 BACK @V305066 01286000 L R14,GR14SA GET GR14 BACK @V305066 01287000 ST R15,GR15SAVE SAVE REG 15 TEMPORARILY @V305066 01288000 L R15,GR15SAVE RESTORE REG 15 @V305066 01289000 BR R14 RETURN @V305066 01290000 * 01291000 EJECT 01292000 * 01293000 *********************************************************************** 01294000 * 01295000 * CONSTANTS AND WORK AREAS * 01296000 * 01297000 *********************************************************************** 01298000 DS 0F @V305066 01299000 GR13SA DS F SAVE GR 13 ON ENTRY. @V305066 01300000 GR15SAVE DS F SAVE GR 15 BEFORE SVCFRET CALL. @V305066 01301000 GR14SA DS F SAVE AREA FOR RETURN REGISTER @V305066 01302000 TDENSITY DS F USER DENSITY SAVE @V305066 01303000 VIRTSAVE DS F @V305066 01304000 REALSAVE DS F @V305066 01305000 JSAVER7 DS F REM R7 = ADDR OF UNITTAB ENTRY @V305066 01306000 PLISTEND DC XL4'FFFFFFFF' PARAM LIST END INDICATOR. @V305066 01307000 DS 0D ALIGN. @V305066 01308000 BASE2 DC A(DMSASN+4096) @V305066 01309000 LUBPOINT DS F @V305066 01310000 IPTRDR DC XL2'0001' @V305066 01311000 PCHLST DC XL2'0203' @V305066 01312000 UA DC CL8'UA' @V305066 01313000 IGN DC CL8'IGN' @V305066 01314000 SYS DC CL3'SYS' FIRST 3 CHARS IN SYSXXX @V305066 01315000 ZERO DC CL3'000' PROG/SYS LOGICAL UNIT @V305066 01316000 TWO41 DC CL3'241' MAX 241 PROG.LOG. UNITS @V305066 01317000 IN DC CL3'IN ' LOG. UNIT = SYSIN @V305066 01318000 OUT DC CL3'OUT' LOG. UNIT = SYSOUT @V305066 01319000 PCHCUU DC XL2'000D' CUU FOR PUNCH @V305066 01320000 RDRCUU DC XL2'000C' CUU FOR RDR @V305066 01321000 PRTCUU DC XL2'000E' CUU FOR PRINTER @V305066 01322000 FULL8 DC F'8' @V305066 01323000 H17 DC H'17' @V305066 01324000 H7 DC H'7' @V305066 01325000 DEFMODES DC XL2'0000' DEFAULT MODES IN PUB @V305066 01326000 SYSRDR DC CL8'SYSRDR' SYSRDR @V305066 01327000 SYSIPT DC CL8'SYSIPT' SYSIPT @V305066 01328000 SYSINA DC CL8'SYSIN ' SYSIN @V305066 01329000 SYSCLB DC CL8'SYSCLB' SYSCLB @V305066 01330000 PRINTER DC CL7'PRINTER' @V305066 01331000 PUNCH DC CL5'PUNCH' @V305066 01332000 READER DC CL6'READER' @V305066 01333000 RDRPACK DC XL3'F0F0C3' PACKED READER CUU @V305066 01334000 PCHPACK DC XL3'F0F0C4' PACKED PUNCH CUU @V305066 01335000 PRTPACK DC XL3'F0F0C5' PACKED PRINTER CUU @V305066 01336000 SPACE 01337000 ASNFLAGS EQU * BEG OF CONSECUTIVE FLAGS: @V305066 01338000 FLAG3 DC X'00' FLAG FOR DSK OR TAP OPTION. @V305066 01339000 CLASSSW DC X'00' @V305066 01340000 TESTBYTE DS X @V305066 01341000 VALFLAG DC X'00' @V305066 01342000 OPTNFLAG DC X'00' INVALID OPTIONS FLAG @V305066 01343000 FLAG2 DC X'00' @V305066 01344000 FLAG4 DC X'00' @V305066 01345000 TAPSW DC X'00' SWITCH FOR TAPE OPTIONS @V305066 01346000 SYSSW DC X'00' @V305066 01347000 CUU DC H'0' @V305066 01348000 DC XL1'00' @V305066 01349000 DISKMODE DC XL1'00' @V305066 01350000 DEVTYPE DC XL1'00' @V305066 01351000 PUBMODE DC XL1'00' @V305066 01352000 DC XL1'00' @V305066 01353000 PUBFLAG DC XL1'00' PUB FLAG BYTE @V305106 01354000 PUBRPS EQU X'04' ON FOR VSAM RPS SUPPORT @V305106 01355000 TRACK7 EQU X'01' @V305066 01356000 PACK DC 2F'0' SPACE FOR PACKED DECIMAL. @V305066 01357000 ENDFLAGS EQU * END OF CONSECUTIVE FLAGS. @V305066 01358000 DEVID DC CL8' ' @V305066 01359000 LOGUNIT DC CL6' ' @V305066 01360000 SPACE 01361000 * FLAG3 DEFINITIONS: 01362000 LASTCHK EQU X'10' @V305066 01363000 SPACE 01364000 * VALFLAG DEFINITIONS: 01365000 FOUND EQU X'F0' @V305066 01366000 TAPDEV EQU X'04' @V305066 01367000 TERMDEV EQU X'02' @V305066 01368000 SPACE 01369000 ROPTCD EQU C'R' @V305066 01370000 SPACE 01371000 * FLAG4 DEFINITIONS: 01372000 DUM EQU X'80' @V305066 01373000 NOASN EQU X'40' @V305066 01374000 SPACE 01375000 * OPTNFLAG DEFINITIONS: 01376000 NOOPTNS EQU X'FF' OPTIONS NOT ALLOWED @V305066 01377000 SPACE 01378000 * FLAG2 DEFINITIONS: 01379000 MATCH EQU X'FF' @V305066 01380000 NOMATCH EQU X'00' @V305066 01381000 SPACE 01382000 * TAPSW DEFINITIONS: 01383000 RESET EQU X'00' RESET @V305066 01384000 TRK9 EQU X'80' 9TRACK @V305066 01385000 TRK7 EQU X'40' 7TRACK @V305066 01386000 DENSITY EQU X'20' DENSITY SPECIFIED @V305066 01387000 TRTFLAG EQU X'10' 'TRTCH' SPECIFIED @V305066 01388000 SPACE 01389000 BLANK EQU C' ' @V305066 01390000 A EQU X'C1' @V305066 01391000 G EQU C'G' @V305066 01392000 S EQU C'S' @V305066 01393000 Y EQU C'Y' @V305066 01394000 Z EQU C'Z' @V305066 01395000 PUBCASE EQU X'08' @V305066 01396000 LTPAREN EQU C'(' @V305066 01397000 RTPAREN EQU C')' @V305066 01398000 CHAR1 EQU C'1' @V305066 01399000 CHAR5 EQU C'5' @V305066 01400000 SPACE 2 01401000 IGNORE EQU X'FE' IGN @V305066 01402000 END EQU X'FF' END FOF TABLE @V305066 01403000 NOASSGN EQU X'FF' UN ASSIGNED @V305066 01404000 CHAR0 EQU X'F0' PRINTABLE CHAR @V305066 01405000 HEXF0 EQU X'F0' @V305066 01406000 HEXF9 EQU X'F9' @V305066 01407000 PACKDEC EQU X'0C' PACKED DECIMAL @V305066 01408000 DEVTERM EQU X'00' DEVICE TYPE FOR TERMINAL @V305066 01409000 PACKSW EQU X'00' @V305066 01410000 UCS EQU X'01' @V305066 01411000 SWON EQU X'01' @V305066 01412000 FTRUCS EQU X'01' UCS FEATURE @V305066 01413000 RESET04 EQU X'04' @V305066 01414000 CLASDASD EQU X'04' DIRECT ACC STORAGE DEV CLASS @V305066 01415000 FTR70MB EQU X'04' 3340 70MB @V305066 01416000 CLASTAPE EQU X'08' MAGNETIC TAPE DEVICE CLASS @V305066 01417000 TYP3410 EQU X'08' 3410 TAPE DRIVE @V305066 01418000 TYP3411 EQU X'08' 3411 TAPE DRIVE @V305066 01419000 FTR35MB EQU X'08' 3340 35MB @V305066 01420000 DOS2501 EQU X'10' @V305066 01421000 CLASURO EQU X'10' UNIT RECORD OUTPUT DEVICE CLASS @V305066 01422000 TYP3420 EQU X'10' 3420 TAPE DRIVE @V305066 01423000 DOS2540 EQU X'11' @V305066 01424000 DOS3505 EQU X'12' @V305066 01425000 DOS2520 EQU X'20' @V305066 01426000 CLASURI EQU X'20' UNIT RECORD INPUT DEVICE CLASS @V305066 01427000 TYP2420 EQU X'20' 2420 TAPE DRIVE @V305066 01428000 PUN2540 EQU X'21' @V305066 01429000 DOS3525 EQU X'23' @V305066 01430000 DOS1403 EQU X'40' @V305066 01431000 TYP2415 EQU X'40' 2415 TAPE DRIVE @V305066 01432000 DOS1443 EQU X'41' @V305066 01433000 TYP1403 EQU X'41' 1403 PRINTER @V305066 01434000 DOS1403U EQU X'42' @V305066 01435000 TYP3211 EQU X'42' 3211 PRINTER @V305066 01436000 TYP3203 EQU X'43' 3203 PRINTER @V505098 01436500 DOS3211 EQU X'43' @V305066 01437000 TYP1443 EQU X'44' 1443 PRINTER @V305066 01438000 DOS2400 EQU X'50' DOS DEV TYPE CODE FOR 2400 @V305066 01439000 DOS3420 EQU X'52' DOS DEV TYPE CODE FOR 3420 @V305066 01440000 DOS3410 EQU X'53' DOS DEV TYPE CODE FOR 3410 @V305066 01441000 TYP2401 EQU X'80' 2401 TAPE DRIVE @V305066 01442000 TYP2501 EQU X'81' 2501 CARD READER @V305066 01443000 TYP2540R EQU X'82' 2540 CARD READER @V305066 01444000 TYP2540P EQU X'82' 2540 CARD PUNCH @V305066 01445000 TYP3505 EQU X'84' 3505 CARD READER @V305066 01446000 TYP3525 EQU X'84' 3525 CARD PUNCH @V305066 01447000 TYP2520P EQU X'90' 2520 CARD PUNCH @V305066 01448000 SPACE 2 01449000 DISP0 EQU 0 @V305066 01450000 ONE EQU 1 @V305066 01451000 TWO EQU 2 @V305066 01452000 THREE EQU 3 @V305066 01453000 FOUR EQU 4 @V305066 01454000 CON8 EQU 8 @V305066 01455000 T12 EQU 12 @V305066 01456000 THIRTEEN EQU 13 @V305066 01457000 FOURTEEN EQU 14 @V305066 01458000 TWENTY4 EQU 24 RETURN CODE = 24 @V305066 01459000 FORTY EQU 40 RETURN CODE = 40 @V305066 01460000 HUNDRED EQU 100 RETURN CODE = 100 @V305066 01461000 PROG EQU X'01' @V305066 01462000 SYSLOG EQU X'00' @V305066 01463000 TWELVE EQU X'C0' @V305066 01464000 THIRTY6 EQU 36 @V305066 01465000 * 01466000 * ADT DEVICE CODES 01467000 * 01468000 T2314 EQU X'08' 2314/2319 @V305066 01469000 T3330 EQU X'09' 3330 @V505098 01469500 T3340 EQU X'07' 3340 @V305066 01470000 T3350 EQU X'0B' 3350 @V305066 01471000 T3380 EQU X'0E' 3380 HRC004DS 01471500 * 01472000 * DOS/VS PUB DEVICE CODES FOR DASD 01473000 * 01474000 DOS2314 EQU X'62' DOS PUB DEV CODE FOR 2314/2319 @V305066 01475000 DOS3330 EQU X'63' DOS PUB DEV CODE FOR 3330 @V305066 01476000 DOS333B EQU X'65' DOS PUB DEV CODE FOR 3330-11 @V505098 01476300 DOS3350 EQU X'67' DOS PUB DEV CODE FOR 3350 @V505098 01476600 DOS3380 EQU X'6C' DOS PUB DEV CODE FOR 3380 HRC004DS 01476800 DOS3340B EQU X'6A' 3340 70MB @V305066 01477000 DOS3340A EQU X'69' 3340 35MB @V305066 01478000 SPACE 01479000 * SYSSW DEFINITIONS: 01480000 PASS1 EQU X'80' USED WHEN SYSIN/SYSOUT SPEC @V305066 01481000 PASS2 EQU X'40' USED WHEN SYSIN/SYSOUT SPEC @V305066 01482000 SPACE 01483000 MODESAVE DC CL2' ' DISK-MODE (FOLLOWED BY ONE BLANK) @V305066 01484000 MDL333B DC X'0B' MODEL NUMBER FOR 3330-11 @V505098 01484500 SPACE 01485000 SAVEAD DC F'0' @V305066 01486000 SAVEUNIT DC CL3' ' @V305066 01487000 DS 0D @V305066 01488000 PACKFLD DC 2F'0' @V305066 01489000 KEYWORD DS 8C @V305066 01490000 * 01491000 TERMTAB DC CL3'LOG',XL1'FF' @V305066 01492000 PRTTAB DC CL3'LOG',CL3'LST',XL1'FF' @V305066 01493000 PCHTAB DC CL3'PCH',XL1'FF' @V305066 01494000 RDRTAB DC CL3'RDR',CL3'IN ',CL3'IPT',XL1'FF' @V305066 01495000 DSKTAB DC CL3'RDR',CL3'IPT',CL3'PCH',CL3'LST',CL3'CAT',CL3'CLB' 01496000 DC CL3'RLB',CL3'SLB',CL3'IN ',XL1'FF' @V305066 01497000 TAPTAB DC CL3'RDR',CL3'IPT',CL3'PCH',CL3'LST',CL3'IN ',CL3'OUT' 01498000 DC XL1'FF' @V305066 01499000 * 01506000 TABSTART DS 0D @V305066 01507000 UPCASE DC CL8'UPCASE',X'02',AL3(LOWRCASE) @V305066 01508000 LOWRCASE DC CL8'LOWCASE',X'02',AL3(UPCASE) @V305066 01509000 DEN DC CL8'DEN',X'04',AL3(0) @V305066 01510000 NINTRACK DC CL8'9TRACK',X'04',AL3(SEVTRACK) @V305066 01511000 SEVTRACK DC CL8'7TRACK',X'04',AL3(NINTRACK) @V305066 01512000 TRKTCH DC CL8'TRTCH',X'04',AL3(NINTRACK) @V305066 01513000 TABEND1 EQU * @V305066 01514000 * 01515000 DENTAB EQU * @V305066 01516000 TWO00 DC CL8'200' @V305066 01517000 EIGHT00 DC CL8'800' @V305066 01518000 SIXTN00 DC CL8'1600' @V305066 01519000 HIDENSTY DC CL8'6250' @V305066 01520000 DENEND DC CL8'556' @V305066 01521000 * 01522000 MODETAB EQU * @V305066 01523000 DC CL1'A',XL1'08' @V305066 01524000 DC CL1'B',XL1'09' @V305066 01525000 DC CL1'C',XL1'0A' @V305066 01526000 DC CL1'D',XL1'0B' @V305066 01527000 DC CL1'E',XL1'0C' @V305066 01528000 DC CL1'F',XL1'0D' @V305066 01529000 DC CL1'G',XL1'0E' @V305066 01530000 DC CL1'H',XL1'1E' HRC002DS 01530080 DC CL1'I',XL1'1F' HRC002DS 01530160 DC CL1'J',XL1'20' HRC002DS 01530240 DC CL1'K',XL1'21' HRC002DS 01530320 DC CL1'L',XL1'22' HRC002DS 01530400 DC CL1'M',XL1'23' HRC002DS 01530480 DC CL1'N',XL1'24' HRC002DS 01530560 DC CL1'O',XL1'25' HRC002DS 01530640 DC CL1'P',XL1'26' HRC002DS 01530720 DC CL1'Q',XL1'27' HRC002DS 01530800 DC CL1'R',XL1'28' HRC002DS 01530880 DC CL1'S',XL1'0F' @V305066 01531000 DC CL1'T',XL1'29' HRC002DS 01531100 DC CL1'U',XL1'2A' HRC002DS 01531200 DC CL1'V',XL1'2B' HRC002DS 01531300 DC CL1'W',XL1'2C' HRC002DS 01531400 DC CL1'X',XL1'2D' HRC002DS 01531500 DC CL1'Y',XL1'10' @V305066 01532000 DC CL1'Z',XL1'11' @V305066 01533000 ENDMODE EQU (*-MODETAB)/2 @V305066 01534000 * 01535000 TAPETAB EQU * @V305066 01536000 DC CL4'TAP0',XL1'12' HRC002DS 01537290 DC CL4'TAP1',XL1'04' HRC002DS 01537580 DC CL4'TAP2',XL1'05' @V305066 01538000 DC CL4'TAP3',XL1'06' @V305066 01539000 DC CL4'TAP4',XL1'07' @V305066 01540000 DC CL4'TAP5',XL1'13' HRC002DS 01540080 DC CL4'TAP6',XL1'14' HRC002DS 01540160 DC CL4'TAP7',XL1'15' HRC002DS 01540240 DC CL4'TAP8',XL1'16' HRC002DS 01540320 DC CL4'TAP9',XL1'17' HRC002DS 01540400 DC CL4'TAPA',XL1'18' HRC002DS 01540480 DC CL4'TAPB',XL1'19' HRC002DS 01540560 DC CL4'TAPC',XL1'1A' HRC002DS 01540640 DC CL4'TAPD',XL1'1B' HRC002DS 01540720 DC CL4'TAPE',XL1'1C' HRC002DS 01540800 DC CL4'TAPF',XL1'1D' HRC002DS 01540880 TAPEND EQU (*-TAPETAB)/5 @V305066 01541000 * 01542000 UNITTAB DC XL1'00',CL3'RDR' @V305066 01543000 DC XL1'01',CL3'IPT' @V305066 01544000 DC XL1'02',CL3'PCH' @V305066 01545000 DC XL1'03',CL3'LST' @V305066 01546000 DC XL1'04',CL3'LOG' @V305066 01547000 DC XL1'07',CL3'SLB' @V305066 01548000 DC XL1'08',CL3'RLB' @V305066 01549000 DC XL1'0B',CL3'CLB' @V305066 01550000 UNITCAT DC XL1'0D',CL3'CAT' @V305066 01551000 ENDTAB EQU (*-UNITTAB)/4 @V305066 01552000 * 01553000 RDR DC CL8'READER',CL3'00C' @V305066 01554000 PUN DC CL8'PUNCH',CL3'00D' @V305066 01555000 PRT DC CL8'PRINTER',CL3'00E' @V305066 01556000 TERM DC CL8'TERMINAL',CL3'009' @V305066 01557000 TAP DC CL8'TAP0',CL3'180' HRC002DS 01558290 DC CL8'TAP1',CL3'181' HRC002DS 01558580 DC CL8'TAP2',CL3'182' @V305066 01559000 DC CL8'TAP3',CL3'183' @V305066 01560000 DC CL8'TAP4',CL3'184' @V305066 01561000 DC CL8'TAP5',CL3'185' HRC002DS 01561080 DC CL8'TAP6',CL3'186' HRC002DS 01561160 DC CL8'TAP7',CL3'187' HRC002DS 01561240 DC CL8'TAP8',CL3'288' HRC002DS 01561320 DC CL8'TAP9',CL3'289' HRC002DS 01561400 DC CL8'TAPA',CL3'28A' HRC002DS 01561480 DC CL8'TAPB',CL3'28B' HRC002DS 01561560 DC CL8'TAPC',CL3'28C' HRC002DS 01561640 DC CL8'TAPD',CL3'28D' HRC002DS 01561720 DC CL8'TAPE',CL3'28E' HRC002DS 01561800 DC CL8'TAPF',CL3'28F' HRC002DS 01561880 DEVEND EQU (*-RDR)/11 @V305066 01562000 * 01563000 EJECT 01564000 * THE FOLLOWING IS THE TABLE FOR MODE SET FOR TAPE 01565000 SPACE 3 01566000 TRTCH EQU * @V305066 01567000 DC B'11001011',XL1'C8' 800 BPI/9TRACK @V305066 01568000 DC B'10010011',XL1'90' 800 BPI/ODD /CV- ON/TR-OFF@V305066 01569000 DC B'10111011',XL1'B8' 800 BPI/ODD/CV-OFF/TR-ON @V305066 01570000 DC B'10110011',XL1'B0' 800 BPI/ODD/CV-OFF/TR-OFF @V305066 01571000 DC B'10101011',XL1'A8' 800 BPI/EVEN/CV-OFF/TR-ON @V305066 01572000 DC B'10100011',XL1'A0' 800 BPI/EVEN/CV-OFF/TR-OFF@V305066 01573000 DC B'01010011',XL1'50' 556 BPI/ ODD/CV- ON/TR-OFF@V305066 01574000 DC B'01111011',XL1'78' 556 BPI/ODD/CV-OFF/TR-ON @V305066 01575000 DC B'01110011',XL1'70' 556 BPI/ODD/CV-OFF/TR-OFF @V305066 01576000 DC B'01101011',XL1'68' 556 BPI/EVEN/CV-OFF/TR-ON @V305066 01577000 DC B'01100011',XL1'60' 556 BPI/EVEN/CV-OFF/TR-OFF@V305066 01578000 DC B'00010011',XL1'10' 200BPI/ ODD/CV- ON/TR-OFF @V305066 01579000 DC B'00111011',XL1'38' 200 BPI/ODD/CV-OFF/TR-ON @V305066 01580000 DC B'00110011',XL1'30' 200 BPI/ODD/CV-OFF/TR-OFF @V305066 01581000 DC B'00101011',XL1'28' 200 BPI/EVEN/CV-OFF/TR-ON @V305066 01582000 DC B'00100011',XL1'20' 200 BPI/EVEN/CV-OFF/TR-OFF@V305066 01583000 DC B'11000011',XL1'C0' 1600 BPI/9TRACK @V305066 01584000 DC B'11010011',XL1'D0' 6250 BPI/9TRACK @V305066 01585000 SPACE 3 01586000 * THIS TABLE IS USED BY FILEDEF TO ASSIGN DISPLACEMENTS WITHIN 01587000 * 'TRTCH' (ABOVE) FOR VARIOUS TAPE OPTIONS SPECIFIED BY THE USER 01588000 * 01589000 TRTAB DC C'O ',X'02' @V305066 01590000 DC C'OC ',X'00' @V305066 01591000 DC C'OT ',X'01' @V305066 01592000 DC C'E ',X'04' @V305066 01593000 TRTEND DC C'ET ',X'03' @V305066 01594000 SPACE 01595000 AADTDISK DS F ADDR OF ADT FOR ACCESS DISK @V305066 01596000 SPACE 01597000 LTORG OTHER CONSTANTS AS NEEDED: @V305066 01598000 EJECT 01599000 *********************************************************************** 01600000 * 01601000 * DSECTS AND DUMMY AREAS 01602000 * 01603000 *********************************************************************** 01604000 * 01605000 CMSCB @V305066 01606000 * 01607000 EJECT 01608000 NUCON @V305066 01609000 EJECT 01610000 SYSCOM @V305066 01611000 BGCOM @V305066 01612000 SVCSAVE @V305066 01613000 ADT @V305066 01614000 REGEQU @V305066 01615000 DEVTAB @V305066 01616000 END 01617000