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