ibm:vm370-lib:cms:dmstio.assemble_src
Table of Contents
DMSTIO Source
References
- Fixes Applied : 4
- This Source Date : Wednesday, December 20, 1978
- Last Fix ID : [HRC002DS]
Source Listing
- DMSTIO.ASSEMBLE.txt
- TIO TITLE 'DMSTIO (CMS) VM/370 - RELEASE 6' 00001000
- SPACE 2 00002000
- *. 00004000
- * MODULE NAME: 00005000
- * 00006000
- * DMSTIO (TAPEIO) 00007000
- * 00008000
- * FUNCTION: 00009000
- * 00010000
- * TO READ OR WRITE A TAPE RECORD OR TO CONTROL TAPE 00011000
- * POSITIONING. 00012000
- * 00013000
- * ENTRY POINTS: 00014000
- * 00015000
- * 1. DMSTIO, TAPEIO 00016000
- * 00017000
- * ATTRIBUTES: 00018000
- * 00019000
- * | NUCLEUS RESIDENT, REENTRANT, CALLED VIA SVC 202. 00020100
- * 00021000
- * ENTRY CONDITIONS: 00022000
- * 00023000
- * LA 1,PLIST 00024000
- * SVC 202 00025000
- * DC A(ERROR) 00026000
- * 00027000
- * PLIST DC CL8'TAPEIO' 00028000
- * DC CL8'FUNCTION' OPERATION TO BE PERFORMED 00029000
- * DC CL4'DEVICE ID' TAPE DRIVE IDENTIFICATION 00030000
- * DC XL1'MODE' MODE OF OPERATION 00031000
- * DC AL3(BUFFER) BUFFER ADDRESS 00032000
- * DC F'LENGTH' BUFFER LENGTH (MAX 65535) 00033100
- * DC F'0' NUMBER OF BYTES READ 00034000
- * 00035000
- * FUNCTION MUST BE ONE OF THE FOLLOWING: 00036000
- * 00037000
- * READ - READ ONE RECORD 00038000
- * WRITE - WRITE ONE RECORD 00039000
- * READBK - READ ONE RECORD BACKWARD 00040000
- * SENSE - SENSE THE TAPE CONTROL UNIT 00041000
- * REW - REWIND THE TAPE 00042000
- * RUN - REWIND AND UNLOAD THE TAPE 00043000
- * ERG - ERASE A GAP 00044000
- * WTM - WRITE A TAPE MARK 00045000
- * BSR - BACKSPACE ONE RECORD 00046000
- * BSF - BACKSPACE ONE FILE 00047000
- * FSR - FORWARD SPACE ONE RECORD 00048000
- * FSF - FORWARD SPACE ONE FILE 00049000
- * 00050000
- * THE DEVICE ID MAY BE EITHER A SYMBOLIC TAPE NUMBER 00051000
- * (TAP1 - TAP7, TAP8 - TAPF) OR THE CORRESPONDING UNIT HRC002DS 00052590
- * ADDRESS (0181 - 0187, 0288 - 028F). HRC002DS 00053180
- * 00054000
- * THE MODE BYTE IDENTIFITES THE NUMBER OF TRACKS, 00055000
- * DENSITY, AND TRANSLATION OPTIONS. IT MUST BE IN THE 00056000
- * FORM DDMMM011 WHERE: 00057000
- * 00058000
- * DD | TRACKS AND DENSITY 00059000
- * _____|__________________________________________ 00060000
- * _ 00061000
- * | 00062000
- * 00 | 7 TRACK, 200 BPI 00063000
- * 01 | 7 TRACK, 556 BPI 00064000
- * 10 | 7 TRACK, 800 BPI 00065000
- * 11 | 9 TRACK, SEE MMM 00066000
- * 00067000
- * 00068000
- * MMM | MODE 00069000
- * _____|_______________________________________________ 00070000
- * _ 00071000
- * | 00072000
- * 000 | 1600 BPI (9 TRACK ONLY) 00073000
- * 001 | 800 BPI (9 TRACK ONLY) 00074000
- * 010 | ODD PARITY, DATA CONVERT ON, TRANSLATOR OFF 00075000
- * 011 | READ TRACK IN ERROR (9 TRACK ONLY) 00076000
- * 100 | EVEN PARITY, DATA CONVERT OFF, TRANSLATOR OFF 00077000
- * 101 | EVEN PARITY, DATA CONVERT OFF, TRANSLATOR ON 00078000
- * 110 | ODD PARITY, DATA CONVERT OFF, TRANSLATOR OFF 00079000
- * 111 | ODD PARITY, DATA CONVERT OFF, TRANSLATOR ON 00080000
- * 00081000
- * 00082000
- * EXIT CONDITIONS: 00083000
- * 00084000
- * NORMAL RETURN 00085000
- * 00086000
- * R15 = 0 SUCCESSFUL COMPLETION 00087000
- * 00088000
- * ERROR RETURN 00089000
- * 00090000
- * R15 = 1 INVALID FUNCTION OR PARAMETER LIST 00091000
- * R15 = 2 END-OF-FILE OR END-OF-TAPE ENCOUNTERED 00092000
- * R15 = 3 PERMANENT I/O ERROR 00093000
- * R15 = 4 ILLEGAL DEVICE ID SPECIFIED 00094000
- * R15 = 5 TAPE NOT ATTACHED 00095000
- * R15 = 6 TAPE IS FILE PROTECTED 00096000
- * R15 = 8 INCORRECT LENGTH 00096650
- * 00097300
- * CALLS TO OTHER ROUTINES: 00098000
- * 00099000
- * NONE 00100000
- * 00101000
- * EXTERNAL REFERENCES: 00102000
- * 00103000
- * NUCON - NUCLEUS AREA CONSTANTS 00104000
- * DEVTAB - DEVICE TABLE 00105000
- * 00106000
- * TABLES/WORKAREAS: 00107000
- * 00108000
- * COMTAB - TABLE OF TAPE FUNCTIONS 00109000
- * 00110000
- * REGISTER USAGE: 00111000
- * 00112000
- * GPR2 = BASE REGISTER 00113000
- * GPR1, GPR3 = PLIST 00114000
- * 00115000
- * NOTES: 00116000
- * 00117000
- * USES CP DIAGNOSE FOR I/O 00118000
- * 00118100
- * FOR 'READBK' OPERATION, THE BUFFER ADDRESS IN THE 00118200
- * PLIST MUST POINT TO THE LAST BYTE OF THE BUFFER. 00118300
- * 00118400
- * | "TAPEIO" IS TREATED AS A "COMMAND" OR A "FUNCTION" 00118500
- * | ACCORDING TO THE HIGH-ORDER BYTE OF R1 AT INPUT, VIZ: 00118600
- * | IF = X'0C', IT WAS ISSUED AS A COMMAND FROM DMSINT. 00118700
- * | IF = X'0D', IT WAS ISSUED FROM AN EXEC FILE (DMSEXT), 00118800
- * | WITH "&CONTROL" SET TO EITHER "CMS" OR "ALL". 00118900
- * | IF = X'0E', IT WAS ISSUED FROM AN EXEC FILE (DMSEXT), 00119000
- * | WITH "&CONTROL OFF" IN EFFECT. 00119100
- * | IF < X'0C' OR > X'0E', IT IS ASSUMED TO BE A FUNCTION, 00119200
- * | I.E. CALLED FROM ANOTHER PROGRAM. 00119300
- * 00119400
- * | TAPEIO MUST BE CALLED AS A FUNCTION; 00119500
- * | IF CALLED AS A COMMAND, AN ERROR 1 IS RETURNED. 00119600
- * 00119700
- * OPERATION: 00120000
- * 00121000
- * DMSTIO FIRST VERIFIES THAT THE DEVICE ID IS VALID. 00122000
- * IF THE FUNCTION IS A READ, WRITE, READBK, OR SENSE, A 00123000
- * CONTROL CCW IS BUILT TO SET THE MODE. IF THE MODE IS 00124000
- * OMITTED FROM THE PARAMETER LIST, THE MODE IS TAKEN @VA13323 00124500
- * FROM THE FIRST BYTE OF THE DEVMISC FIELD OF THE DEVTAB@VA13323 00125000
- * IN THE NUCLEUS. IF THERE IS NO MODE STORED IN THE @VA13323 00125500
- * DEVICE TABLE, THE DEFAULT MODE IS 1600 BPI FOR DUAL @VA13323 00126000
- * DENSITY TAPES, ODD PARITY CONVERTER OFF AND @VA13323 00126500
- * TRANSLATOR OFF FOR 7-TRACK TAPES. @VA13323 00127000
- * THE BUFFER ADDRESS AND BYTE COUNT ARE FILLED 00128000
- * INTO A READ, WRITE, READBK, OR SENSE CCW AND IT IS 00129000
- * COMMAND CHAINED TO THE CONTROL CCW. A DIAGNOSE 00130000
- * INSTRUCTION IS EXECUTED TO CAUSE CP TO INITIATE THE 00131000
- * I/O OPERATION. WHEN CONTROL IS RETURNED, THE 00132000
- * OPERATION IS COMPLETE AND NECESSARY RETRY OPERATIONS 00133000
- * HAVE ALREADY BEEN EXECUTED BY CP. IF THE FUNCTION IS 00134000
- * A CONTROL OPERATION, THE CCW STRING IS BUILT IN THE SAME 00135000
- * WAY. A 00136000
- * DIAGNOSE INSTRUCTION IS EXECUTED TO CAUSE THE I/O 00137000
- * OPERATION TO BE STARTED. CP WILL RETURN CONTROL AS 00138000
- * SOON AS THE OPERATION IS STARTED. CONTROL IS THEN 00139000
- * RETURNED TO THE CALLING PROGRAM. 00140000
- *. 00141000
- EJECT 00142000
- TAPEIO START 0 00143000
- DMSTIO EQU * 00144000
- ENTRY DMSTIO 00145000
- LR BASE,15 00146000
- USING TAPEIO,BASE 00147000
- LR PLIST,1 00148000
- USING PLISTX,PLIST 00149000
- USING NUCON,R0 ACCESS NUCLESUS CONSTANTS AREA 00150000
- USING SCRATCH,R13 00151000
- CLM R1,8,=X'0C' WAS TAPEIO CALLED AS A COMMAND? @VA01154 00152100
- BL OKFUN NO - OK (CALLED AS A FUNCTION). @VA01154 00152200
- CLM R1,8,=X'0E' CHECK FURTHER (0C/0D/0E) @VA01154 00152300
- BNH ERR01 ERROR IF CALLED FROM TERMINAL @VA01154 00152400
- * OR FROM AN EXEC FILE. 00152500
- OKFUN L TAPE,PTAPE OK - GET SYMBOLIC TAPE NAME, @VA01154 00152600
- CLI PTAPE,X'FF' IS THERE A 'FENCE' THERE INSTEAD ? LL 00155000
- BNE TPOK BNE IF NOT, TAPE NO. SHOULD BE OK. JS 00156000
- L TAPE,=CL4'TAP1' IF FENCE THERE, USE 'TAP1' INSTEAD. 00157000
- B TPOK2 SEE IF THE DEVICE IS ATTACHED 00159000
- * GET INDICES FOR DEVICE ADDRESS TABLE 00160000
- * 00161000
- TPOK EQU * 00162000
- LA XR1,PTAPE SEE IF THE DEVICE IS ALL NUMERIC 00163000
- LA XR2,4 COMPARE ALL FOUR CHARACTERS 00164000
- LOOP EQU * 00165000
- TM 0(XR1),X'F0' IS THIS CHARACTER NUMERIC 00166000
- BNO TPOK2 NO, COMPARE SYMBOLIC DEVICE 00167000
- LA XR1,1(,XR1) COMPARE THE NEXT CHARACTER 00168000
- BCT XR2,LOOP IF HAVEN'T COMPARED ALL 4 00169000
- XC DBLWRD1(L'DBLWRD1+L'DBLWRD2),DBLWRD1 00170000
- MVC DBLWRD1+4(4),PTAPE MOVE THE FIELD TO A DOUBLE WORD 00171000
- PACK DBLWRD2,DBLWRD1 FOR CONVERSION 00172000
- L TAPE,DBLWRD2+4 GET THE NUMBER 00173000
- SRL TAPE,4 SHIFT OFF THE SIGN 00174000
- TPOK2 EQU * COMPARE THE DEVADDR IN DEVICE TABLE 00175000
- L XR1,ADEVTAB XR1 = A(DEVICE TABLE) 00176000
- USING DEVSECT,XR1 ACCESS THE DEVICE TABLE SYMBOLLICALLY 00177000
- L XR3,ATABEND XR3 = A(END OF DEVICE TABLE) 00178000
- LA XR2,DEVSIZE XR2 = SIZE OF AN ENTRY IN THE DEVICE TBL. 00179000
- * 00180000
- * (XR1, XR2, & XR3 ALL SET FOR BXLE-LOOP NOW ...) JS 00181000
- * 00182000
- TLOP EQU * 00183000
- CL TAPE,DEVNAME COMPARE THE DEVICE NAMES 00184000
- BE FOUND 00185000
- CH TAPE,DEVADDR COMPARE THE DEVICE ADDRESSES 00186000
- BE FOUND 00187000
- BXLE XR1,XR2,TLOP 00188000
- B ERR04 00189000
- FOUND EQU * 00191000
- LR R0,R5 SAVE XR1 @VA11365 00191010
- LH R5,DEVADDR GET THE DEVICE CUU @VA11365 00191020
- DROP XR1 @VA11365 00191030
- DIAG R5,R6,X'24' DIAGNOSE FOR DEVICE INFO @VA11365 00191040
- BNE ERR05 DEVICE NOT ATTACHED @VA11365 00191050
- MVC MODECCW(16),DEFLTCCW SET CCW STRING FROM DEFAULT@V305032 00191100
- LR R5,R0 RESTORE XR1 @VA13323 00191102
- USING DEVSECT,R5 EST. ADDRESSABILITY TO DEVTAB @VA13323 00191104
- CLI DEVMISC,ZEROMODE IS THERE NO MODE IN DEVTAB @VA13323 00191106
- BE SKIPMODE NO MODE, USE DEFAULT @VA13323 00191108
- MVC MODECCW(1),DEVMISC GET THE MODE FROM THE DEVTAB @VA13323 00191110
- SKIPMODE EQU * @VA13323 00191112
- DROP R5 RELEASE REGISTER @VA13323 00191114
- ICM R15,B'1000',PBUFF PLIST MODESET @VA11365 00191120
- BZ PMODEOK OK IF NONE @VA11365 00191140
- CLM R7,B'0100',TYP3420 IS IT 3420 MODEL .? @VA11365 00191160
- BNE PMODEOK IF NOT, NO CHECK DONE..ELSE IS IT@VA11365 00191180
- CLM R7,B'0010',MODEL3 MODEL 3 OR LESS? @VA11365 00191200
- BNH TST34208 GO CHECK 800 BPI @VA11365 00191220
- CLM R7,B'0010',MODEL5 MODEL 5? @VA11365 00191240
- BE TST34208 GO CHECK 800 BPI @VA11365 00191260
- CLM R7,B'0010',MODEL7 MODEL 7? @VA11365 00191280
- BE TST34208 GO CHECK 800 BPI @VA11365 00191300
- TM PBUFF,D8009TRK 800 BPI? @VA11365 00191320
- BO ERR01 YES, ERROR 800 BPI NOT SUPPORTED @VA11365 00191340
- SLDL R6,25 NOW.. THIS IS SOME STRANGE WAY @VA11365 00191360
- * TO STRIP OFF THE DUAL DENSITY 00191380
- * FEATURE FROM R7, BUT THAT'S LIFE..!! 00191400
- LTR R7,R7 IS THE X'40' BIT ON.? @VA11365 00191420
- SRDL R6,25 MAKE R7 PRESENTABLE AGAIN @VA11365 00191440
- BM PMODEOK YES, 1600 SUPPORTED FOR 4,6,8 @VA11365 00191460
- TM PBUFF,TRK96250 DID HE ASK FOR 6250.? @VA11365 00191480
- BO PMODEOK LOOKS GOOD. 6250 IS THE DEFAULT @VA11365 00191500
- B ERR01 ELSE HE (SHE) IS WET..!! @VA11365 00191520
- TST34208 DS 0H @VA11365 00191540
- TM PBUFF,D8009TRK IS THIS 800 BPI ? @VA11365 00191560
- BNO TEST6250 BRANCH IF NOT TO CHECK 6250BPI @VA11365 00191580
- * HERE WE GO AGAIN TESTING FOR DUAL FTR 00191600
- SLDL R6,25 NOW.. THIS IS SOME STRANGE WAY @VA11365 00191620
- * TO STRIP OFF THE DUAL DENSITY 00191640
- * FEATURE FROM R7, BUT THAT'S LIFE.. 00191660
- LTR R7,R7 IS THE X'40' BIT ON.? @VA11365 00191680
- SRDL R6,25 MAKE R7 PRESENTABLE AGAIN @VA11365 00191700
- BNM ERR01 800 BPI NOT SUPPORTED @VA11365 00191720
- B PMODEOK ELSE ALL SET. @VA11365 00191740
- TEST6250 DS 0H @VA11365 00191760
- TM PBUFF,TRK96250 IS IT 6250.? @VA11365 00191780
- BO ERR01 YES, CAN'T HAVE IT.! @VA11365 00191800
- PMODEOK EQU * @VA11365 00191820
- LR R5,R0 RESTORE XR1 @VA11365 00191840
- LR R11,XR1 SAVE LOCATION OF DEVICE TABLE ENTRY 00192000
- USING DEVSECT,R11 ACCESS IN FUTURE FROM R11 00193000
- LH TAPE,DEVADDR GET THE DEVICE ADDRESS 00194000
- * 00195000
- * SEE IF THE TAPEIO FUNCTION IS VALID 00196000
- * 00197000
- LM XR1,XR3,COMTABX SEARCH FOR COMMAND 00198000
- LA R12,CONTRL1 SET BRANCH POINT FOR CONTROL COMMAND 00199000
- LA R15,RDBKSNS SET BRANCH POINT FOR READBK OR SENSE 00200000
- TLIP CLC PCOMM2(8),0(XR1) 00201000
- BE 8(,XR1) 00202000
- BXLE XR1,XR2,TLIP 00203000
- B ERR01 00204000
- EJECT 00205000
- * 00206000
- * SENSE AND READBK CONTROL COMMANDS 00207000
- * 00208000
- SPACE 2 00209000
- RDBKSNS EQU * 00210000
- MVC RDWRCCW(2),10(XR1) MOVE IN THE CONTROL CODE 00211000
- B READ10 FILL IN THE REST OF THE READ INFORMATION 00212000
- SPACE 2 00213000
- * 00214000
- * READ CONTROL COMMAND 00215000
- * 00216000
- SPACE 2 00217000
- READ05 EQU * 00218000
- MVI RDWRCCW,X'02' SET FOR READ @VM08813 00218100
- READ10 EQU * @VM08813 00218200
- MVI RDWRCCW+4,X'00' SET FLAGS 00225000
- B RDWR @VA01538 00227100
- SPACE 2 00229000
- * 00230000
- * WRITE CONTROL COMMAND 00231000
- * 00232000
- SPACE 2 00233000
- WRITE05 EQU * 00234000
- MVI RDWRCCW,X'01' SET THE MODE FOR WRITE 00235000
- * NOTE: SILI FLAG IS ALREADY SET 00236100
- SPACE 2 00243000
- * 00244000
- * READ / WRITE / READBK / SENSE 00245000
- * 00246000
- SPACE 2 00247000
- RDWR EQU * 00248000
- CLC PBUFF+1(3),=F'0' BUFFER ADDR ZERO ? @VA01538 00248125
- BE ERR01 YES, ERROR @VA01538 00248250
- CLC PBUFFSZ(4),=F'0' BUFFER LENGTH ZERO ? @VA01538 00248375
- BE ERR01 YES, ERROR @VA01538 00248500
- CLC PBUFFSZ(4),=F'65535' BUFF LEN EXCEEDS MAX ? @VA01538 00248625
- BH ERR01 YES, ERROR @VA01538 00248750
- MVC RDWRCCW+1(3),PBUFF+1 SET BUFFER ADDRESS 00249000
- MVC RDWRCCW+6(2),PBUFFSZ+2 SET BUFFER SIZE 00250000
- BAL LINK,TAPWAIT START THE TAPE AND WAIT 00251000
- L TEMP,PBUFFSZ GET BUFFER SIZE 00252000
- ST TEMP,PRECSZ SET RECORD READ SIZE 00253000
- B RETURN 00254000
- EJECT 00255000
- ******************************************************************* 00256000
- * 00257000
- * CONTROL MODES 00258000
- * 00259000
- ******************************************************************* 00260000
- SPACE 2 00261000
- CONTRL1 EQU * 00262000
- MVC RDWRCCW(2),10(XR1) MOVE IN THE CONTROL FUNCTION 00263000
- * NOTE: SILI FLAG IS SET & BYTE COUNT = 1 00264100
- BAL LINK,TAPWAIT 00266000
- B RETURN 00267000
- EJECT 00268000
- TAPWAIT EQU * 00269000
- * NOTE: DEFAULT MODE ALREADY SET @VA13323 00269400
- * TO THE MODE IN THE DEVTAB @VA13323 00269800
- * OR X'B3' IF THERE WAS NO @VA13323 00270200
- * MODE IN THE DEVTAB @VA13323 00270600
- ICM R15,8,PBUFF GET MODE-SET SPECIFIED BY CALLER @V305032 00271100
- BZ NOMODSET IF NONEXISTENT, KEEP THE DEFAULT @V305032 00272100
- STCM R15,8,MODECCW OTHERWISE USE CALLER'S MODE-SET. @V305032 00273100
- NOMODSET EQU * 00274000
- LA CAWADR,MODECCW SET THE A(CCW STRING) 00275000
- DIAG20 DC X'839A0020' DIAGNOSE TAPE I/O @VA03458 00276100
- BCR 8,LINK RETURN IF NO ERRORS 00277000
- BC 4,CKBUSY SEE IF BUSY OR NOT ATTACHED @VA03458 00278100
- BC 2,TEST2 BRANCH IF UNIT EXCEPTION OR INCOR LENGTH 00279000
- STH CAWADR,DEVMISC+2 SAVE THE SENSE INFO. FROM CP 00280000
- TM DEVMISC+2,X'80' COMMAND REJECT (WRITE)? V0033 00280100
- BNO ERR3A NOT A PROTECT ERR V0033 00280200
- TM DEVMISC+3,X'02' FILE PROTECTED ? 00281000
- BO FILEPRO BRANCH IF YES 00282000
- ERR3A EQU * @VA08542 00283100
- CH R15,DEC13 TEST RETCOD FOR PERM ERR @VA08542 00283110
- BE ERR03 SET RETCOD3 @VA08542 00283120
- XR XR3,XR3 SIGNAL UNIT CHECK @VA08542 00283130
- B TEST2A V0033 00283200
- SPACE 00284000
- CKBUSY CH R15,=H'5' WAS DEVICE BUSY? @VA03458 00284100
- BNE ERR05 NO - DEVICE NOT ATTACHED @VA03458 00284200
- B DIAG20 YES - TRY AGAIN @VA03458 00284300
- TEST2 CH R15,=H'2' IS IT A UNIT EXCEPTION 00285000
- BE UNITEXCP BRANCH IF YES 00286000
- TEST2A EQU * V0033 00286100
- LH R15,CSW+6 GET RESIDUAL COUNT 00287000
- N R15,=X'0000FFFF' CLEAR SIGN IF NEGATIVE 00288000
- L TEMP,PBUFFSZ LOAD BUFFER LENGTH 00289000
- SR TEMP,R15 SUBTRACT RESIDUAL COUNT 00290000
- ST TEMP,PRECSZ STORE NUMBER OF BYTES READ 00291000
- LTR R15,R15 IS THERE A RESIDUAL COUNT? @VA03457 00291025
- BZ INCLEN NO, THEN GIVE ERROR 8 @VA03457 00291050
- LTR XR3,XR3 WAS THERE A UNIT CHECK? V0033 00291100
- BZ ERR03 ERR RETURN WITH NO.BYTES READ V0033 00291200
- * OTHERWISE CONTINUE TO 'RETURN' ... 00292100
- RETURN SR 15,15 NORMAL RETURN 00294000
- BR 14 00295000
- ERR01 LA 15,1 INVALID COMMAND 00296000
- BR 14 00297000
- UNITEXCP LA 15,2 EOF 00298000
- BR 14 00299000
- ERR03 LA 15,3 PERM I/O ERROR 00300000
- BR 14 00301000
- ERR04 LA 15,4 ILLEGAL SYMBOLIC UNIT 00302000
- BR 14 00303000
- ERR05 LA R15,5 TAPE NOT ATTACHED 00304000
- BR R14 AND EXIT. 00305000
- * 00306000
- FILEPRO EQU * FILE-PROTECTED ON A 'WRITE' ... 00307000
- LA R15,6 ERROR NO. 6, 00308000
- BR R14 EXIT. 00309000
- INCLEN LA R15,8 INCORRECT LENGTH ERROR @VA03457 00309100
- BR R14 @VA03457 00309200
- DEC13 DC H'13' RETCOD FROM DIAG 20 @VA08542 00309210
- EJECT 00310000
- PLISTX DSECT 00311000
- PCOMM1 DC CL8'TAPEIO' 00312000
- PCOMM2 DC CL8' ' 00313000
- PTAPE DC CL4'TAPX' SYMBOLIC TAPE ADDRESS 00314000
- PBUFF DC A(0) BUFFER ADDRESS 00315000
- PBUFFSZ DC F'0' BUFFER SIZE 00316000
- PRECSZ DC F'0' ACTUAL NO. OF BYTES READ 00317000
- SPACE 00317100
- SCRATCH DSECT 00318000
- DBLWRD1 DS 1D 00319000
- DBLWRD2 DS 1D 00320000
- * FILLED-IN CCW-STRING .. 00320100
- MODECCW CCW X'B3',0,SILI+CC,1 800,ODD,CONV-OFF,TRANS-OFF @V305032 00320200
- RDWRCCW CCW *-*,*-*,SILI,*-* READ, WRITE, CONTROL @V305032 00320300
- SPACE 00320400
- TAPEIO CSECT 00321000
- EJECT 00322000
- * 00323000
- * CONSTANTS 00324000
- BASE EQU 2 00325000
- PLIST EQU 3 00326000
- LINK EQU 4 00327000
- XR1 EQU 5 00328000
- XR2 EQU 6 00329000
- XR3 EQU 7 00330000
- TAPE EQU 9 00331000
- TEMP EQU 8 00332000
- CAWADR EQU 10 00333000
- * 00334000
- * 00335000
- COMTAB DS 0F 00336000
- DC CL8'READ' 00337000
- B READ05 00338000
- DC CL8'WRITE' 00339000
- B WRITE05 00340000
- DC CL8'REW' REWIND 00341000
- BR R12 00342000
- DC X'0700' 00343000
- DC CL8'WTM' 00344000
- BR R12 00345000
- DC X'1F00' 00346000
- DC CL8'RUN' 00347000
- BR R12 00348000
- DC X'0F00' 00349000
- DC CL8'BSR' 00350000
- BR R12 00351000
- DC X'2700' 00352000
- DC CL8'FSR' 00353000
- BR R12 00354000
- DC X'3700' 00355000
- DC CL8'FSF' 00356000
- BR R12 00357000
- DC X'3F00' 00358000
- DC CL8'BSF' 00359000
- BR R12 00360000
- DC X'2F00' 00361000
- DC CL8'ERG' JS 00362000
- BR R12 JS 00363000
- DC X'1700' JS 00364000
- DC CL8'SENSE' SENSE 00365000
- BR R15 00366000
- DC X'0400' 00367000
- DC CL8'READBK' READBK 00368000
- BR R15 00369000
- DC X'0C00' 00370000
- COMTABN EQU * 00371000
- COMTABX DC A(COMTAB,12,COMTABN-12) 00372000
- * 00373000
- * 00374000
- * DEFAULT (INITIAL) VALUES FOR MODECCW AND RDWRCCW .. 00375100
- DEFLTCCW CCW X'B3',0,SILI+CC,1 800,ODD,CONV-OFF,TRANS-OFF @V305032 00375600
- CCW *-*,*-*,SILI,1 READ, WRITE, CONTROL @V305032 00376100
- * 00376200
- MODEL3 DC X'03' 3420 MODEL 3 @VA11365 00376300
- MODEL5 DC X'05' 3420 MODEL 5 @VA11365 00376400
- MODEL7 DC X'07' 3420 MODEL 7 @VA11365 00376500
- TYP3420 DC X'10' 3420 TAPE DRIVE..!! @VA11365 00376600
- D8009TRK EQU X'CB' MODESET - 9 TRACK, 800 BPI @VA11365 00376700
- TRK96250 EQU X'D3' MODESET - 9 TRACK, 6250 BPI @VA11365 00376800
- * 00377000
- ZEROMODE EQU X'00' INDICATES DEVTAB HAS NO MODE @VA13323 00377500
- LTORG 00378000
- EJECT 00379000
- NUCON 00380000
- DEVSECT 00381000
- REGEQU 00382000
- EQUATES 00383000
- END 00384000
ibm/vm370-lib/cms/dmstio.assemble_src.txt ยท Last modified: 2023/08/06 13:36 by Site Administrator