ibm:vm370-lib:macro:cpmod.macro_src
Table of Contents
CPMOD Source
References
- Fixes Applied : 0
- This Source Date : Friday, December 15, 1978
- Last Fix ID : [Unmodified]
Source Listing
- CPMOD.MACRO.txt
- CATALS A.CPMOD 00001000
- MACRO 00002000
- &NAME CPMOD &TYPEFLE=,&IOAREA2=,&DISK=,&IOPTR=,&RETRY=,&SEPASMB=, X00003000
- &RDONLY=,&ASCII=,&RPS= 00004000
- LCLB &SWITCH,&RDNLYSW,&IO2SW 00005000
- LCLC &NAM,&R 00006000
- * IOCS AND DEV INDEPENDANT I/O CPMOD 5745-SC-IOX - REL. 34.0 @DA11146 00007000
- AIF ('&ASCII' NE 'YES').NOASCII 00008000
- &SWITCH SETB (1) 00009000
- AIF ('&RPS' EQ 'SVA').RPSOPTA 00010000
- AIF ('&TYPEFLE' EQ 'INPUT').ASCMNOT 00011000
- AIF ('&IOAREA2' EQ 'YES').ASCMNOT 00012000
- AIF (T'&DISK EQ 'O').ASCMNOT 00013000
- AIF (T'&IOPTR NE 'O').ASCMNOT 00014000
- AIF ('&RETRY' NE 'NO').ASCMNOT 00015000
- AGO .NOASCII 00016000
- .ASCMNOT ANOP 00017000
- MNOTE 1,'CONFLICTING ASCII SPECIFICATION.MACRO GENERATION *00018000
- TERMINATED.' 3-8 00019000
- MEXIT 00020000
- .RPSOPTA ANOP 00021000
- * RPS=SVA, ASCII=YES IMPLIES THE FOLLOWING OPTIONS - DISK, @DL30SMT 00022000
- * OUTPUT, NO I/O POINTER, ONE I/O AREA, @DL30SMT 00023000
- * NO RETRY, SEPARATE ASSEMBLY AND READ ONLY @DL30SMT 00024000
- .NOASCII ANOP 00025000
- AIF ('&RPS' EQ 'SVA' AND '&ASCII' NE 'YES' AND T'&IOPTR EQ 'X00026000
- O').SET2 00027000
- AIF ('&IOAREA2' NE 'YES').TSTRNLY 00028000
- .SET2 ANOP 00029000
- &IO2SW SETB (1) 00030000
- .TSTRNLY ANOP 00031000
- AIF (T'&RDONLY EQ 'O' OR '&RDONLY' EQ 'YES').OK1A 00032000
- MNOTE 0,'IMPROPER RDONLY. ''YES'' ASSUMED' 3-3 00033000
- .OK1A ANOP 00034000
- &R SETC 'P' 00035000
- AIF (T'&RDONLY EQ 'O' AND '&RPS' NE 'SVA').OK1AA 00036000
- &RDNLYSW SETB (1) 00037000
- &R SETC 'O' 00038000
- AIF ('&RPS' NE 'SVA').OK1AA 00039000
- &R SETC 'V' 00040000
- .OK1AA ANOP 00041000
- AIF (T'&TYPEFLE NE 'O' OR '&RPS' EQ 'SVA').OK1B 00042000
- MNOTE 1,'TYPEFLE OMMITTED, OUTPUT ASSUMED-HANDLES INPUT' 00043000
- .OK1B ANOP 00044000
- AIF (T'&IOPTR NE 'O' AND T'&IOAREA2 NE 'O').OK1 00045000
- AGO .OK1C 00046000
- .OK1 ANOP 00047000
- AIF ('&IOAREA2' EQ 'NO').OK1C 00048000
- MNOTE 1,'IMPROPER IOAREA2, ONE IOAREA ASSUMED' 3-3 00049000
- .OK1C ANOP 00050000
- AIF ('&RPS' EQ 'SVA').RSEP 00051000
- AIF ('&SEPASMB' NE 'YES').OK1D 00052000
- .RSEP ANOP 00053000
- AIF (T'&NAME NE 'O').SEP1 00054000
- AIF (NOT &SWITCH).NOASC 00055000
- &NAM SETC 'IJJC&R.A1N' 00056000
- AGO .SEP 00057000
- .NOASC ANOP 00058000
- AIF ('&RPS' NE 'SVA').NORPS 00059000
- AIF (T'&IOPTR NE 'O').RPSOPTB 00060000
- * RPS=SVA IMPLIES THE FOLLOWING OPTIONS - DISK, OUTPUT, @DL30SMT 00061000
- * NO I/O POINTER, TWO I/O AREAS, RETRY, NOT ASCII, @DL30SMT 00062000
- * SEPARATE ASSEMBLY AND READ ONLY @DL30SMT 00063000
- AGO .GRTY1 00064000
- .RPSOPTB ANOP 00065000
- * RPS=SVA, IOPTR=YES IMPLIES THE FOLLOWING OPTIONS - DISK, @DL30SMT 00066000
- * OUTPUT, NO I/O AREAS, RETRY, NOT ASCII, @DL30SMT 00067000
- * SEPARATE ASSEMBLY AND READ ONLY @DL30SMT 00068000
- AGO .GRTY3 00069000
- .NORPS ANOP 00070000
- AIF ('&TYPEFLE' NE 'INPUT').GOTPT 00071000
- AIF (T'&IOPTR NE 'O').GVARND 00072000
- AIF ('&IOAREA2' NE 'YES').GWIN 00073000
- AIF (T'&DISK EQ 'O').GND1 00074000
- &NAM SETC 'IJJC&R.D2' 00075000
- AGO .SEP 00076000
- .GVARND ANOP 00077000
- AIF (T'&DISK EQ 'O').GNDVAR 00078000
- &NAM SETC 'IJJC&R.DV2' 00079000
- AGO .SEP 00080000
- .GNDVAR ANOP 00081000
- &NAM SETC 'IJJC&R.V2' 00082000
- AGO .SEP 00083000
- .GND1 ANOP 00084000
- &NAM SETC 'IJJC&R.2' 00085000
- AGO .SEP 00086000
- .GOTPT ANOP 00087000
- AIF (T'&IOPTR NE 'O').GVAROD 00088000
- AIF ('&IOAREA2' NE 'YES').GWOUT 00089000
- AIF (T'&DISK EQ 'O').GND3 00090000
- AIF ('&RETRY' NE 'NO').GRTY1 00091000
- &NAM SETC 'IJJC&R.D0N' 00092000
- AGO .SEP 00093000
- .GRTY1 ANOP 00094000
- &NAM SETC 'IJJC&R.D0' 00095000
- AGO .SEP 00096000
- .GVAROD ANOP 00097000
- AIF (T'&DISK EQ 'O').GNDVO 00098000
- AIF ('&RETRY' NE 'NO').GRTY3 00099000
- &NAM SETC 'IJJC&R.DV1' 00100000
- AGO .SEP 00101000
- .GRTY3 ANOP 00102000
- &NAM SETC 'IJJC&R.DV' 00103000
- AGO .SEP 00104000
- .GNDVO ANOP 00105000
- AIF ('&RETRY' NE 'NO').GRTYV 00106000
- &NAM SETC 'IJJC&R.V1' 00107000
- AGO .SEP 00108000
- .GRTYV ANOP 00109000
- &NAM SETC 'IJJC&R.V' 00110000
- AGO .SEP 00111000
- .GND3 ANOP 00112000
- AIF ('&RETRY' NE 'NO').GRTYN1 00113000
- &NAM SETC 'IJJC&R.0N' 00114000
- AGO .SEP 00115000
- .GRTYN1 ANOP 00116000
- &NAM SETC 'IJJC&R.0' 00117000
- AGO .SEP 00118000
- .GWOUT ANOP 00119000
- AIF (T'&DISK EQ 'O').GND5 00120000
- AIF ('&RETRY' NE 'NO').GRTY2 00121000
- &NAM SETC 'IJJC&R.D1N' 00122000
- AGO .SEP 00123000
- .GRTY2 ANOP 00124000
- &NAM SETC 'IJJC&R.D1' 00125000
- AGO .SEP 00126000
- .GND5 ANOP 00127000
- AIF ('&RETRY' NE 'NO').GRTYN2 00128000
- &NAM SETC 'IJJC&R.1N' 00129000
- AGO .SEP 00130000
- .GRTYN2 ANOP 00131000
- &NAM SETC 'IJJC&R.1' 00132000
- AGO .SEP 00133000
- .GWIN ANOP 00134000
- AIF (T'&DISK EQ 'O').GND7 00135000
- &NAM SETC 'IJJC&R.D3' 00136000
- AGO .SEP 00137000
- .GND7 ANOP 00138000
- &NAM SETC 'IJJC&R.3' 00139000
- AGO .SEP 00140000
- .SEP1 ANOP 00141000
- &NAM SETC '&NAME' 00142000
- .SEP ANOP 00143000
- AIF ('&RPS' NE 'SVA').SEPNRPS 00144000
- PUNCH ' CATALR &NAM,34.0 ' @D34DEF4 00145000
- PUNCH ' PHASE &NAM,*,NOAUTO,SVA ' @DM08008 00146000
- AGO .OK1D 00147000
- .SEPNRPS ANOP 00148000
- PUNCH ' CATALR &NAM,34.0' @D34DEF4 00149000
- .OK1D ANOP 00150000
- IJJCPTAB DSECT 00151000
- AIF (T'&DISK EQ 'O' AND '&RPS' NE 'SVA').TAPES 00152000
- IJJCPCCB DS CL30 CCB, ADDR OF LOGIC, DTF TYPE, OPEN SW, FILE NAME 00153000
- IJJCOMBT EQU IJJCPCCB+2 1ST COMMUNICATION BYTE 00154000
- IJJCMBT2 EQU IJJCPCCB+3 2ND COMMUNICATION BYTE 00155000
- IJJCPCB4 EQU IJJCPCCB+4 CSW STATUS 00156000
- AIF (NOT &SWITCH).NOASC0 00157000
- IJJASCSU EQU IJJCPCCB+6 SYMBOLIC UNIT ADDRESS 3-8 00158000
- .NOASC0 ANOP 00159000
- IJJCPTCB EQU IJJCPCCB+8 CCW ADDR 00160000
- AIF (NOT &SWITCH).NOASC1 00161000
- IJJASCII EQU IJJCPCCB+16 ASCII INDICATOR 3-8 00162000
- .NOASC1 ANOP 00163000
- IJJFLNME EQU IJJCPCCB+22 FILE NAME 00164000
- IJJCPDDI EQU IJJCPCCB+29 DASDI DEVICE INDICATORS @DL30SMT 00165000
- IJJCPF1 DS CL10 F1 ADDR, WORK AREA OR FLAG & SEQ. NO. & OPEN SW 00166000
- IJJCPLD2 EQU IJJCPF1+2 LOAD INSTRUCTION FOR SYSTEM UNIT 00167000
- IJJCPXTN DS CL2 XTNT SEQ. NO. OF LAST XTNT & WORK AREA 00168000
- IJJCPHCD EQU IJJCPXTN FOR ADJUSTMENT OF PUNCH CODE 00169000
- IJJCPSWS DS CL1 DEV IND & RPS SWITCH @DL30SMT 00170000
- IJJC2NSW DS CL1 INDICATOR FOR OPEN AND LOGIC 00171000
- IJJALSW DS CL1 LOGICAL INDICATORS 00172000
- IJJCP2ND DS CL3 I/O AREA 00173000
- IJJCPSCW DS CL4 CCW OR WORK AREA 00174000
- IJJLOHED DS CL2 HH LOWER HEAD LIMIT 00175000
- IJJCPMAX DS CL6 CCHH UPPER LIMIT & BB SEEK ADDR 00176000
- IJJCCWE1 EQU IJJCPMAX+2 PUNCH ERROR CCW IF DEVICE IS 2540 PUNCH 00177000
- IJJCPSEK DS CL4 CCHH 00178000
- IJJCPREC DS CL4 00179000
- IJJCCWE2 EQU IJJCPREC PUNCH ERROR CCW2 IF DEVICE IS 2540 PUNCH 00180000
- IJJCPSSV EQU IJJCPREC PUNCH STACKER SELECT V CI 00181000
- IJJCPSSW EQU IJJCPREC+1 PUNCH STACKER SELECT W CI 00182000
- IJJCPEAD EQU IJJCPREC EOF ADD 00183000
- IJJCPUPP DS CL4 UPPER LIMIT 00184000
- IJJCPRMX DS CL1 NO. OF RECORDS/TRACK 00185000
- IJJCPSV1 EQU IJJCPRMX 80 BYTE CARD IMAGE SAVEAREA 00186000
- IJJFRSTR DS CL1 1 FIRST REC FOR INPUT OR OUTPUT 00187000
- IJJCPADJ DS CL2 ADJUSTMENT FOR CCW ADDRESS 00188000
- IJJCPCNT DS CL4 CCHH COUNT FIELD 00189000
- IJJCPCTR DS CL2 RECORD & KEY LENGTH 00190000
- IJJCPDAT DS CL2 DATA LENGTH 00191000
- IJJLOAD DS CL4 00192000
- IJJCPSST DS CL24 SEEK, SEARCH, TIC CCW'S 00193000
- IJJCPCCW DS CL16 CCW'S FOR INPUT AND OUTPUT 00194000
- IJJCPVER DS CL24 VERIFY CCW'S 00195000
- IJJECCW1 DS CL8 2540 PUNCH ERROR CCW1 00196000
- IJJCPSV2 EQU IJJECCW1 80 BYTE CARD IMAGE SAVEAREA 00197000
- IJJECCW2 DS CL8 2540 PUNCH ERROR CCW2 00198000
- IJJSAVEA DS CL64 RESERVED FOR SAVE AREA 00199000
- SPACE 2 @DL30SMT 00200000
- AIF (NOT &RDNLYSW).ELIM 00201000
- AIF ('&RPS' EQ 'SVA').RPSDSCT 00202000
- IJJXNTAB DSECT @DL30SMT 00203000
- * USER REGISTER SAVE AREA FOR READ ONLY @DL30SMT 00204000
- DS 0F @DL30SMT 00205000
- IJJCPSAF DS 0CL48 USER REGISTER SAVE AREA @DL30SMT 00206000
- DS CL20 @DL30SMT 00207000
- IJJCPTMP DS CL4 ADDRESS WORK AREA @DL30SMT 00208000
- DS CL4 DTF ADDR ADDR - TEMP @DL30SMT 00209000
- DS CL1 PARM LIST END INDICATOR @DL30SMT 00210000
- AIF (&SWITCH).ASC1 00211000
- DS CL19 NOT USED @DL30SMT 00212000
- AGO .DSEND1 00213000
- .ASC1 ANOP 00214000
- DS CL2 NOT USED @DL30SMT 00215000
- IJJASCSW DS CL1 ASCII SWITCH @DL30SMT 00216000
- IJJASCSV DS CL4 ASCII SAVE AREA @DL30SMT 00217000
- DS CL12 NOT USED @DL30SMT 00218000
- .DSEND1 ANOP 00219000
- IXEND EQU *-IJJXNTAB LENGTH OF WORK SAVE AREA@DL30SMT 00220000
- SPACE 2 @DL30SMT 00221000
- AGO .ELIM 00222000
- .RPSDSCT ANOP 00223000
- IJJXNTAB DSECT @DL30SMT 00224000
- * RPS DTF EXTENSION WORK AREA @DL30SMT 00225000
- DS CL32 SEEK, SET SECTOR, SEARCH@DL30SMT 00226000
- * AND TIC CCW'S @DL30SMT 00227000
- IJJXRDWR DS 0D READ/WRITE CCW @DL30SMT 00228000
- DS CL6 @DL30SMT 00229000
- IJJLGFLD DS CL2 . RECORD LENGTH @DL30SMT 00230000
- DS CL72 BALANCE OF CCW CHAIN @DL30SMT 00231000
- DS CL52 RESERVED @DL30SMT 00232000
- AIF (&SWITCH).ASC2 00233000
- IJJCPTMP DS CL4 ADDRESS WORK AREA @DL30SMT 00234000
- AGO .NASC1 00235000
- .ASC2 ANOP 00236000
- IJJASCSV DS CL4 ASCII SAVE AREA @DL30SMT 00237000
- .NASC1 ANOP 00238000
- IJJXDTF DS CL4 DTF POINTER @DL30SMT 00239000
- DS CL1 SECTOR VALUE @DL30SMT 00240000
- AIF (&SWITCH).ASC3 00241000
- DS CL3 @DL30SMT 00242000
- AGO .NASC2 00243000
- .ASC3 ANOP 00244000
- DS CL2 @DL30SMT 00245000
- IJJASCSW DS CL1 ASCII SWITCH @DL30SMT 00246000
- .NASC2 ANOP 00247000
- DS CL4 ORIGINAL CCW CHAIN PTR @DL30SMT 00248000
- DS CL4 ORIGINAL LOGIC MOD PTR @DL30SMT 00249000
- IJJXNSAV DS 0CL72 REGISTER SAVE AREA @DL30SMT 00250000
- DS CL8 @DL30SMT 00251000
- IJJX1312 DS 0CL64 REGISTERS 13 THRU 12 @DL30SMT 00252000
- IJJXRG13 DS CL4 REG 13 @DL30SMT 00253000
- IJJXRG14 DS CL16 REGS 14, 15, 0, 1 @DL30SMT 00254000
- IJJCPSAF DS CL20 REGS 2, 3, 4, 5, 6 @DL30SMT 00255000
- DS CL24 REGS 7, 8, 9, 10, 11, 12@DL30SMT 00256000
- IXEND EQU *-IJJXNTAB LENGTH OF RPS EXTENSION @DL30SMT 00257000
- SPACE 2 @DL30SMT 00258000
- AGO .ELIM 00259000
- .TAPES ANOP 00260000
- IJJCPCCB DS CL16 THE CCB 00261000
- IJJCOMBT EQU IJJCPCCB+2 1ST COMMUNICATION BYTE 00262000
- IJJCMBT2 EQU IJJCPCCB+3 2ND COMMUNICATION BYTE 00263000
- IJJSTSBT EQU IJJCPCCB+4 STATUS BYTES 00264000
- IJJLOGMD DS CL4 ADDRESS OF LOGIC MODULE 00265000
- IJJDTFTY DS CL1 DTF TYPE 00266000
- IJJSWITH DS CL1 NO. OF I/O AREAS, DEVICE TYPE 00267000
- IJJFLNME DS CL8 FILENAME OUTPUT 00268000
- IJJEOFAD EQU IJJFLNME+2 EOF ADDRESS INPUT 00269000
- IJJPCHCD DS CL1 TO OBTAIN CORRECT PUNCH CODES 00270000
- IJJCPLSW DS CL2 INDICATORS FOR LOGIC MODULE 00271000
- IJJALTIO DS CL3 SECOND I/O AREA 00272000
- IJJLOAD DS CL4 INSTRUCTION TO LOAD USER I/O REG 00273000
- IJJCPCCW DS CL8 THE CCW 00274000
- IJJIOARE EQU IJJCPCCW CCW DATA ADDRESS 00275000
- AIF ('&TYPEFLE' EQ 'INPUT').ELIM 00276000
- IJJCCWE1 DS CL8 PUNCH ERROR CCW1-OUTPUT 00277000
- IJJCCWE2 DS CL8 PUNCH ERROR CCW2 00278000
- IJJCPSSV EQU IJJCCWE2 PUNCH STACKER SELECT V CI 00279000
- IJJCPSSW EQU IJJCCWE2+1 PUNCH STACKER SELECT W CI 00280000
- IJJCPSV1 DS CL80 00281000
- IJJCPSV2 DS CL80 00282000
- .ELIM ANOP 00283000
- AIF (T'&NAME NE 'O').USRNM 00284000
- AIF (NOT &SWITCH).NOTASC 00285000
- IJJC&R.A1N CSECT @DL30SMT 00286000
- AGO .STRT 00287000
- .NOTASC ANOP 00288000
- AIF ('&RPS' NE 'SVA').NOTRPS 00289000
- AIF (T'&IOPTR NE 'O').RTY3 00290000
- AGO .RTY1 00291000
- .NOTRPS ANOP 00292000
- AIF ('&TYPEFLE' NE 'INPUT').OTPT 00293000
- AIF (T'&IOPTR NE 'O').VARND 00294000
- AIF ('&IOAREA2' NE 'YES').WIN 00295000
- AIF (T'&DISK EQ 'O').ND1 00296000
- IJJC&R.D2 CSECT 3-3 00297000
- IJJC&R.D3 EQU * 3-3 00298000
- ENTRY IJJC&R.D3 3-3 00299000
- AGO .STRT 00300000
- .VARND ANOP 00301000
- AIF (T'&DISK EQ 'O').NDVAR 00302000
- IJJC&R.DV2 CSECT 3-3 00303000
- AGO .STRT 00304000
- .NDVAR ANOP 00305000
- IJJC&R.V2 CSECT 3-3 00306000
- AGO .STRT 00307000
- .ND1 ANOP 00308000
- IJJC&R.2 CSECT 3-3 00309000
- IJJC&R.3 EQU * 3-3 00310000
- ENTRY IJJC&R.3 3-3 00311000
- AGO .STRT 00312000
- .OTPT ANOP 00313000
- AIF (T'&IOPTR NE 'O').VAROD 00314000
- AIF ('&IOAREA2' NE 'YES').WOUT 00315000
- AIF (T'&DISK EQ 'O').ND3 00316000
- AIF ('&RETRY' NE 'NO').RTY1 00317000
- IJJC&R.D0N CSECT 3-3 00318000
- IJJC&R.D1N EQU * 3-3 00319000
- IJJC&R.D2 EQU * 3-3 00320000
- IJJC&R.D3 EQU * 3-3 00321000
- ENTRY IJJC&R.D1N,IJJC&R.D2,IJJC&R.D3 3-3 00322000
- AGO .STRT 00323000
- .RTY1 ANOP 00324000
- IJJC&R.D0 CSECT 3-3 00325000
- AIF ('&RPS' EQ 'SVA').STRT 00326000
- IJJC&R.D0N EQU * 3-3 00327000
- IJJC&R.D1 EQU * 3-3 00328000
- IJJC&R.D1N EQU * 3-3 00329000
- IJJC&R.D2 EQU * 3-3 00330000
- IJJC&R.D3 EQU * 3-3 00331000
- ENTRY IJJC&R.D1,IJJC&R.D2,IJJC&R.D3,IJJC&R.D0N,IJJC&R.D1N 3-3 00332000
- AGO .STRT 00333000
- .VAROD ANOP 00334000
- AIF (T'&DISK EQ 'O').NDVO 00335000
- AIF ('&RETRY' NE 'NO').RTY3 00336000
- IJJC&R.DV1 CSECT 3-3 00337000
- IJJC&R.DV2 EQU * 3-3 00338000
- ENTRY IJJC&R.DV2 3-3 00339000
- AGO .STRT 00340000
- .RTY3 ANOP 00341000
- IJJC&R.DV CSECT 3-3 00342000
- AIF ('&RPS' EQ 'SVA').STRT 00343000
- IJJC&R.DV1 EQU * 3-3 00344000
- IJJC&R.DV2 EQU * 3-3 00345000
- ENTRY IJJC&R.DV1,IJJC&R.DV2 3-3 00346000
- AGO .STRT 00347000
- .NDVO ANOP 00348000
- AIF ('&RETRY' NE 'NO').RTYV 00349000
- IJJC&R.V1 CSECT 3-3 00350000
- IJJC&R.V2 EQU * 3-3 00351000
- ENTRY IJJC&R.V2 3-3 00352000
- AGO .STRT 00353000
- .RTYV ANOP 00354000
- IJJC&R.V CSECT 3-3 00355000
- IJJC&R.V1 EQU * 3-3 00356000
- IJJC&R.V2 EQU * 3-3 00357000
- ENTRY IJJC&R.V1,IJJC&R.V2 3-3 00358000
- AGO .STRT 00359000
- .ND3 ANOP 00360000
- AIF ('&RETRY' NE 'NO').RTYN1 00361000
- IJJC&R.0N CSECT 3-3 00362000
- IJJC&R.1N EQU * 3-3 00363000
- IJJC&R.2 EQU * 3-3 00364000
- IJJC&R.3 EQU * 3-3 00365000
- ENTRY IJJC&R.1N,IJJC&R.2,IJJC&R.3 3-3 00366000
- AGO .STRT 00367000
- .RTYN1 ANOP 00368000
- IJJC&R.0 CSECT 3-3 00369000
- IJJC&R.0N EQU * 3-3 00370000
- IJJC&R.1 EQU * 3-3 00371000
- IJJC&R.1N EQU * 3-3 00372000
- IJJC&R.2 EQU * 3-3 00373000
- IJJC&R.3 EQU * 3-3 00374000
- ENTRY IJJC&R.1,IJJC&R.2,IJJC&R.3,IJJC&R.0N,IJJC&R.1N 3-3 00375000
- AGO .STRT 00376000
- .WOUT ANOP 00377000
- AIF (T'&DISK EQ 'O').ND5 00378000
- AIF ('&RETRY' NE 'NO').RTY2 00379000
- IJJC&R.D1N CSECT 3-3 00380000
- IJJC&R.D3 EQU * 3-3 00381000
- ENTRY IJJC&R.D3 3-3 00382000
- AGO .STRT 00383000
- .RTY2 ANOP 00384000
- IJJC&R.D1 CSECT 3-3 00385000
- IJJC&R.D1N EQU * 3-3 00386000
- IJJC&R.D3 EQU * 3-3 00387000
- ENTRY IJJC&R.D1N,IJJC&R.D3 3-3 00388000
- AGO .STRT 00389000
- .ND5 ANOP 00390000
- AIF ('&RETRY' NE 'NO').RTYN2 00391000
- IJJC&R.1N CSECT 3-3 00392000
- IJJC&R.3 EQU * 3-3 00393000
- ENTRY IJJC&R.3 3-3 00394000
- AGO .STRT 00395000
- .RTYN2 ANOP 00396000
- IJJC&R.1 CSECT 3-3 00397000
- IJJC&R.1N EQU * 3-3 00398000
- IJJC&R.3 EQU * 3-3 00399000
- ENTRY IJJC&R.1N,IJJC&R.3 3-3 00400000
- AGO .STRT 00401000
- .WIN ANOP 00402000
- AIF (T'&DISK EQ 'O').ND7 00403000
- IJJC&R.D3 CSECT 3-3 00404000
- AGO .STRT 00405000
- .ND7 ANOP 00406000
- IJJC&R.3 CSECT 3-3 00407000
- AGO .STRT 00408000
- .USRNM ANOP 00409000
- &NAME CSECT 00410000
- .STRT ANOP 00411000
- AIF (T'&DISK EQ 'O' AND '&RPS' NE 'SVA').TPESY 00412000
- USING *,IJJCPBAS BASE FOR LOGIC 00413000
- USING IJJCPTAB,IJJCPTBB ESTABLISH BASE FOR TABLE 00414000
- AIF (NOT &RDNLYSW).NRPS1 00415000
- USING IJJXNTAB,IJJCPSAV REG 13 WORK & SAVE BASE @DL30SMT 00416000
- .NRPS1 ANOP 00417000
- AIF ('&TYPEFLE' EQ 'INPUT' AND '&RPS' NE 'SVA').ISDIF 00418000
- DS 0F 00419000
- IJJERRAD DC C'$$BERRTN' ERROR ROUTINE NAME 00420000
- AGO .CMTT1 00421000
- .ISDIF ANOP 00422000
- AIF (&RDNLYSW).BK001 00423000
- DC F'0' USED FOR DISPLACEMENT @DM11837 00424000
- .BK001 ANOP 00425000
- IJJSKP DC H'04' CONSTANT 00426000
- DC H'0' 00427000
- .CMTT1 ANOP 00428000
- B IJJCPGP ENTRY FOR GET 00429000
- B IJJCPGP ENTRY FOR PUT 00430000
- AIF ('&TYPEFLE' EQ 'INPUT').NOCLOS 00431000
- AIF (NOT &IO2SW OR T'&IOPTR NE 'O').CLOS1 00432000
- B IJJCLDU TEST 3540 @DA08318 00433000
- IJJCPNC XC IJJCPDAT(2),IJJCPDAT DSK CLOSE, ZERO DATA LTH @DA08318 00434000
- BAL IJJCPRGA,IJJCPDSK WRITE FILEMARK @DM08144 00435000
- AGO .CLOS2 00436000
- .CLOS1 ANOP 00437000
- B IJJCLDU TEST 3540 @DA08318 00438000
- IJJCPNC XC IJJCPDAT(2),IJJCPDAT DSK CLOSE, ZERO DATA LGTH@DA08318 00439000
- BAL IJJBRG,IJJCPDSK WRITE FILEMARK @DM08144 00440000
- .CLOS2 ANOP 00441000
- AIF ('&RPS' EQ 'SVA').RPS1 00442000
- LM IJJCP1ST,IJJCPLST,IJJCPSAF RESTORE REGS @DM08144 00443000
- IJJCPNCL EQU * @DM08144 00444000
- AGO .CLOS3 00445000
- .RPS1 ANOP 00446000
- LM IJJCPSAV,IJJREG12,IJJXRG13 RESTORE REGS @DM08144 00447000
- IJJCPNCL EQU * @DM08144 00448000
- .CLOS3 ANOP 00449000
- AIF (&RDNLYSW).SVC9 00450000
- TM IJJCPCCB+16,IJJXBKSP Q-FROM DISK BKSP RTN @DM08144 00451000
- BCR 1,IJJCPRTR YES,RETURN BY REG 14 @DM08144 00452000
- .SVC9 ANOP 00453000
- SVC 9 RETURN TO CLOSE @DM08144 00454000
- IJJCLDU CLI IJJCPF1-1,IJJCPFDT 3540 DEVICE @DM08144 00455000
- BE IJJCPNCL YES,3540, GET OUT @DM08144 00456000
- AIF ('&RPS' EQ 'SVA').RPS2 00457000
- STM IJJCP1ST,IJJCPLST,IJJCPSAF SAVE USER REGS @DM08144 00458000
- AGO .CLOS4 00459000
- .RPS2 ANOP 00460000
- L IJJCPTBB,IJJCPTCB LOAD RPS EXIT ADDR @DM08144 00461000
- ST IJJCPSAV,IJJONE92(IJJCPTBB) SAVE REG 13 @DM08144 00462000
- LR IJJCPSAV,IJJCPTBB LOAD EXTENS. BASE @DM08144 00463000
- L IJJCPTBB,IJJXDTF RESTORE DTF ADDRESS @DM08144 00464000
- STM IJJCPRTR,IJJREG12,IJJXRG14 SAVE REGS @DM08144 00465000
- .CLOS4 ANOP 00466000
- AIF (NOT &IO2SW OR T'&IOPTR NE 'O').CLOS5 00467000
- B IJJCPNC PROCEED CLOSE @DA08318 00468000
- SPACE 1 @DM08144 00469000
- AGO .NOCLOS 00470000
- .CLOS5 ANOP 00471000
- B IJJCPNC PROCEED CLOSE @DA08318 00472000
- SPACE 1 @DM08144 00473000
- .NOCLOS ANOP 00474000
- AIF ('&RPS' EQ 'SVA').RPS3 00475000
- DS 0H @D34DE97 00476000
- DC X'FFFFD9E5FFFF' LOGIC MOD LEVEL ID @D34DE97 00477000
- DC X'3400' LOGIC MOD RELEASE LVL @D34DE97 00478000
- IJJCPGP STM IJJCP1ST,IJJCPLST,IJJCPSAF SAVE USER REGISTERS 3-3 00479000
- AGO .ASCLR2 00480000
- .RPS3 ANOP 00481000
- DS 0H @D34DE97 00482000
- DC X'FFFFD9E5FFFF' LOGIC MOD LEVEL ID @D34DE97 00483000
- DC X'3400' LOGIC MOD RELEASE LVL @D34DE97 00484000
- IJJCPGP L IJJCPTBB,IJJCPTCB LOAD RPS EXT ADDR @DL30SMT 00485000
- ST IJJCPSAV,IJJONE92(IJJCPTBB) SAVE REG 13 @DL30SMT 00486000
- LR IJJCPSAV,IJJCPTBB LOAD EXTENSION BASE @DL30SMT 00487000
- L IJJCPTBB,IJJXDTF RESTORE DTF ADDRESS @DL30SMT 00488000
- STM IJJCPRTR,IJJREG12,IJJXRG14 SAVE REGISTERS @DL30SMT 00489000
- .ASCLR2 ANOP 00490000
- AIF (NOT &SWITCH).BK007 00491000
- AIF (NOT &RDNLYSW).BK007 00492000
- NI IJJASCSW,IJJASCOF CLEAR ASCII SWITCH @DL30SMT 00493000
- .BK007 ANOP 00494000
- L IJJCPCWR,IJJCPTCB LOAD CCW ADDRESS 00495000
- AIF (NOT &SWITCH).NOASC2 00496000
- CLI IJJCPSWS,IJJASCTP IS DEVICE TAPE 3-8 00497000
- BNE IJJASCNO NOT A TAPE 3-8 00498000
- TM IJJASCII,IJJASCIS ASCII SPECIFIED 3-8 00499000
- BZ IJJASCNO NO 3-8 00500000
- TM IJJASCSU,IJJASCSY Q- SYSTEM UNIT ON ASCII TAPE 3-8 00501000
- BO IJJASCOK NO,BRANCH 3-8 00502000
- SVC 50 YES, CANCEL JOB 3-8 00503000
- IJJASCOK OI IJJASCSW,IJJASCMK TURN ASCII SWITCH ON 3-8 00504000
- ST IJJCPTBB,IJJASCSV SAVE REGISTER 3-8 00505000
- COMRG 3-8 00506000
- L IJJASCR2,136(IJJCPTBB) POINTER TO COMREG EXTENSION 3-8 00507000
- L IJJASCR2,44(IJJASCR2) POINTER TO TRANSLATE TABLE 3-8 00508000
- L IJJCPTBB,IJJASCSV RESTORE REGISTER 3-8 00509000
- IJJASCNO CLI IJJCPF1,IJJCPSYT IS DISK POSSIBLE WITH THIS TABLE 3-8 00510000
- AGO .NOASC3 00511000
- .NOASC2 ANOP 00512000
- CLI IJJCPF1,IJJCPSYT IS DISK POSSIBLE WITH THIS TABLE 3-8 00513000
- .NOASC3 ANOP 00514000
- AIF (NOT &IO2SW OR T'&IOPTR NE 'O').STWON 00515000
- BE IJJCPST NO 00516000
- AGO .ADDJ 00517000
- .STWON ANOP 00518000
- BE IJJCPIO NO 00519000
- .ADDJ ANOP 00520000
- AH IJJCPCWR,IJJCPADJ ADJUST ADDRESS FOR TABLE TYPE 00521000
- AIF ('&RPS' NE 'SVA').NRPS2 00522000
- LA IJJCPCWR,IJJEIGHT(IJJCPCWR) ADD MORE FOR RPS @DL30SMT 00523000
- .NRPS2 ANOP 00524000
- AIF ('&TYPEFLE' EQ 'INPUT' AND '&RPS' NE 'SVA').INMD 00525000
- AIF (NOT &IO2SW OR T'&IOPTR NE 'O').WOTMD 00526000
- IJJCPST TM IJJALSW,IJJCP2FT OVERLAP AND/OR FIRST PASS 00527000
- BO IJJCPSLO NOT FIRST PASS, BUT OVERLAP 00528000
- BAL IJJCPRGA,IJJCPIO GET I/O 00529000
- IJJCPSLO BAL IJJBRG,IJJWCHED WAIT FOR CHANNEL END 00530000
- IJJCPUNX TM IJJCPCB4,IJJCPNEX HAS UNIT EXCEPTION OCCURRED 00531000
- BO IJJCPMG1 YES 3-8 00532000
- TM IJJALSW,X'80' Q - INPUT OR OUTPUT FILE 3-10 00533000
- BZ IJJCPTOV IF OUTPUT FILE BYPASS /* CHECK 3-10 00534000
- CLI IJJCPDDI,IJJCPFDT DEVICE 3540 @DL30SMT 00535000
- BNE IJJCPF01 NO, CONTINUE @DL29R05 00536000
- TM IJJCMBT2,IJJCHEND ' SPECIAL RECORD ' @DL29R05 00537000
- BZ IJJCPF01 NO, CONTINUE @DL29R05 00538000
- OI IJJCPLD2+6,IJJCPX40 SET DELETE REC SW @DL29R05 00539000
- XI IJJCMBT2,IJJCHEND SET OFF SPECIAL REC SW @DL29R05 00540000
- AIF ('&RPS' NE 'SVA').NRPS3 00541000
- IJJCPF01 L IJJCTL,IJJXRDWR LOAD INPUT AREA ADDRESS @DL30SMT 00542000
- AGO .RPS6 00543000
- .NRPS3 ANOP 00544000
- IJJCPF01 L IJJCTL,IJJCPCCW LOAD I/O AREA ADDR @DL29R05 00545000
- .RPS6 ANOP 00546000
- LA IJJCTL,0(IJJCTL) CLEAR HI ORDER BTYE @DL30SMT 00547000
- CLC 0(3,IJJCTL),IJJEOF HAS /* BEEN READ @DA10192 00548000
- BNE IJJCPTOV NO 3-8 00549000
- IJJCPMG1 TM IJJCPSWS,IJJCPRT IS DEVICE A PRINTER 3-8 00550000
- BO IJJCPTOV YES HANDLED BY LINE COUNT 00551000
- TM IJJALSW,IJJTPHLT IS THIS SYSPCH OR SYSLST ON OUTPUT TAPE 00552000
- BO IJJCPEOV TO EOV ROUTINE 00553000
- IJJCPEND EQU * EOF PT FOR 3540 @DL29R05 00554000
- L IJJCPZRO,IJJCPEAD EOF ADDRESS TO RETURN REGISTER 00555000
- B IJJCEXEC BRANCH TO EOF ADDRESS 3-10 00556000
- IJJCPEOV LR IJJDTFPS,IJJCPTBB ADDRESS OF DTF TABLE TO REGISTER 00557000
- LH IJJZRO,6(IJJDTFPS) PASS LOGICAL UNIT AND CLASS 00558000
- LA IJJCPTBB,IJJFLNME ADDRESS OF MULTI-VOLUME ROUTINE NAME 00559000
- SVC 2 CALL IN TRANSIENT TO HANDLE EOV CONDITION 00560000
- LR IJJCPTBB,IJJDTFPS RESTORE DTF TABLE ADDRESS TO REGISTER1 00561000
- IJJCPTOV TM IJJALSW,IJJCPOLP ARE THER E 2 I/O AREAS 00562000
- BZ IJJRTRN NO 00563000
- XC IJJCP2ND(3),1(IJJCPCWR) SWAP I/O AREAS 00564000
- XC 1(3,IJJCPCWR),IJJCP2ND NEW I/O AREA ADDRESS TO CCW 00565000
- EX 0,*-12 COMPLETE THE EXCHANGE 00566000
- BAL IJJCPRGA,IJJCPIO GET I/O 00567000
- IJJRTRN LR IJJZRO,IJJCPRTR SAVE RETURN REGISTER 00568000
- L IJJCPRTR,IJJALSW NEXT I/O AREA 00569000
- TM IJJCPSWS,IJJCPTPH IS DEVICE A PRINTER OR PUNCH 00570000
- BZ IJJCEXEC BRANCH TO EOF ADDRESS 3-10 00571000
- BCTR IJJCPRTR,0 POINT TO CONTROL CHAR 3-10 00572000
- AIF ('&RPS' EQ 'SVA').RPS7 00573000
- IJJCEXEC LM IJJCP1ST,IJJCPLST,IJJCPSAF RESTORE REGISTERS 3-3 00574000
- AGO .BK009B 00575000
- .RPS7 ANOP 00576000
- IJJCEXEC LM IJJCP1ST,IJJREG12,IJJCPSAF RESTORE REGISTERS @DL30SMT 00577000
- L IJJCPSAV,IJJXRG13 RESTORE EXTN ADDR @DL30SMT 00578000
- .BK009B ANOP 00579000
- TM IJJCPF1,IJJCPSYT IS THIS A SYSTEM UNIT TABLE 00580000
- BO IJJCPSLD YES 00581000
- TM IJJCPSWS,IJJCPMFC TEST MFCM/U CI 00582000
- BNZ IJJCPSLD YES CI 00583000
- EX 0,IJJLOAD LOAD I/O REG 00584000
- B IJJCPRES 00585000
- IJJCPSLD EX 0,IJJCPLD2 LOAD I/O REGISTER 00586000
- IJJCPRES LR IJJCPRTR,IJJCPZRO RESTORE RETURN REGISTER 00587000
- OI IJJALSW,IJJCPNTF INDICATE NOT FIRST PASS 00588000
- CLI IJJCPF1-1,IJJCPFDT 3540 DEVICE ? @DL29R05 00589000
- BNE IJJCPF50 NO, CONTINUE @DL29R05 00590000
- TM IJJCPLD2+6,IJJCPX40 'DELETE REC' SW ON ? @DL29R05 00591000
- BZ IJJCPF50 NO, CONTINUE @DL29R05 00592000
- XI IJJCPLD2+6,IJJCPX40 SET OFF DELETE SW @DL29R05 00593000
- B IJJCPGP IGNORE READ @DL29R05 00594000
- IJJCPF50 EQU * TO USER @DL29R05 00595000
- BR IJJCPRTR TO USER 00596000
- .WOTMD ANOP 00597000
- AIF (T'&IOPTR EQ 'O').NDVRY 00598000
- IJJCPIO TM IJJCPSWS,IJJDSKTP IS THIS A TAPE OR A DISK 00599000
- BZ IJJCPSTO NO 00600000
- TM IJJALSW,IJJLSTPH IS THIS SYSLST OR SYSPCH 00601000
- BZ IJJCPSTO NO 00602000
- BCTR IJJIOPTR,IJJIOPTR POINT TO CONTROL CHARACTER 00603000
- IJJCPSTO ST IJJIOPTR,IJJCPTMP STORE DATA ADDRESS 3-3 00604000
- MVC 1(3,IJJCPCWR),IJJCPTMP+1 MOVE ADDRESS TO CCW 3-3 00605000
- TM IJJC2NSW,IJJCPRTD IS DEVICE READER, TAPE OR DISK 00606000
- AGO .IOCOM 00607000
- .NDVRY ANOP 00608000
- IJJCPIO TM IJJC2NSW,IJJCPRTD IS DEVICE READER, TAPE OR DISK 00609000
- .IOCOM ANOP 00610000
- BO IJJCPDSK A DISK 00611000
- BM IJJCPCAL DEVICE IS READER OR TAPE 00612000
- TM IJJALSW,IJJCPEJT EJECT NEEDED FOR READER-PUNCH CI 00613000
- BZ IJJCPMF1 NO EJECT NEEDED CI 00614000
- NI IJJALSW,IJJCPNEJ INDICATE NO EJECT NEEDED CI 00615000
- BAL IJJBRG,IJJCAL2 EJECT FIRST CARD CI 00616000
- IJJCPMF1 L IJJCPCTL,0(IJJCPCWR) MUST BE PUNCH OR PRINTER CI 00617000
- BCTR IJJCPCTL,0 POINT TO CONTROL CHAR 00618000
- TM IJJCPSWS,IJJCPMFC TEST MFCM/U CI 00619000
- BZ IJJCPTAS NO, TEST ASA CONTROL CHAR CI 00620000
- OI IJJCPSCW+4,X'60' SET CHAIN BIT IN 1ST CCW CI 00621000
- MVC IJJCPSCW(1),IJJCPSSW STACKER SELECT W TO 1ST CCW CI 00622000
- CLI 0(IJJCPCTL),IJJCPTCW TEST W CONTROL CHAR CI 00623000
- BE IJJCPAD8 RETURN CI 00624000
- MVC IJJCPSCW(1),IJJCPSSV STACKER SELECT V TO 1ST CCW CI 00625000
- CLI 0(IJJCPCTL),IJJCPTCV TEST V CONTROL CHAR CI 00626000
- BE IJJCPAD8 RETURN CI 00627000
- MVC IJJCPSCW(1),0(IJJCPCTL) CURRENT CTL CHAR TO 1ST CCW CI 00628000
- IJJCPAD8 B IJJCPCAL BRANCH TO GET I/O CI 00629000
- IJJCPTAS EQU * CI 00630000
- LR IJJCMP,IJJCPZRO 00631000
- IC IJJCPZRO,0(IJJCPCTL) CONTROL CHAR TO REG 00632000
- LA IJJCPCTL,IJJNUMCH NO. OF CHAR TO COMPARE 00633000
- IJJCPLUP IC IJJCMP,IJJCPASA(IJJCPCTL) ASA CHAR FROM TABLE 00634000
- CR IJJCMP,IJJCPZRO SAME CHAR 00635000
- BE IJJCFOND YES-THIS IS THE ONE 00636000
- BCT IJJCPCTL,IJJCPLUP NOT THE ONE, CHECK NEXT 00637000
- IJJCFOND CH IJJCPCTL,IJJSKP IS COMMAND A SKIP 00638000
- BNL IJJMOV NO, NOT A SKIP CI 00639000
- MVI 0(IJJCPCWR),IJJCPSP SPACE COMMAND TO CCW 00640000
- BAL IJJBRG,IJJCAL2 SPACE FROM CHANNEL 00641000
- IJJMOV LA IJJCPCTL,IJJCP360(IJJCPCTL) CONTROL CHAR ADDR 00642000
- MVC 0(1,IJJCPCWR),0(IJJCPCTL) CONTROL CHARACTER TO CCW 00643000
- OC 0(1,IJJCPCWR),IJJCPHCD PRODUCE CORRECT PUNCH CODE 00644000
- AIF ('&RETRY' EQ 'NO' AND &SWITCH).NNRTY1 00645000
- AIF ('&RETRY' EQ 'NO' AND '&RPS' NE 'SVA').NNRTY1 00646000
- TM IJJALSW,IJJ2540 IS DEVICE 2540 PUNCH 00647000
- BZ IJJCPCAL NO, GET I/O 00648000
- IJJCPWDE TM IJJCOMBT,IJJDEVED WAIT FOR DEVICE END 00649000
- BO *+6 00650000
- SVC 7 WAIT 00651000
- TM IJJCMBT2,IJJCP010 TEST IF PUNCH ERROR 00652000
- BZ IJJSAVE NO, SAVE CARD IMAGES AND COMMAND CODES 00653000
- IJJERRTN CLC IJJCPDAT(2),IJJDTZRO ENTERED FROM CLOSE 3-8 00654000
- BNE IJJERROR NO, BRANCH TO ERROR RTN 3-8 00655000
- OI IJJFRSTR,IJJNOEOF INDICATE NO EOF WRITTEN 3-8 00656000
- BR IJJBRG RETURN TO CORRECT INSTRUCTION 3-8 00657000
- IJJERROR LR IJJBRG,IJJCPTBB ADDRESS OF DTF TABLE TO REG 4 3-8 00658000
- LA IJJCPTBB,IJJERRAD ADDRESS OF ERROR RECOVERY ROUTINE NAME 00659000
- SVC 2 CALL IN TRANSIENT ROUTINE 00660000
- LR IJJCPTBB,IJJBRG RESTORE DTF TABLE ADDRESS TO REGISTER 1 00661000
- IJJSAVE MVC IJJCCWE2(1),IJJCCWE1 OPCODE 1ST ERR CCW INTO 2ND ERR CCW 00662000
- MVC IJJCCWE1(1),IJJCPSCW OPCODE CURRENT CCW TO 1ST ERR CCW 00663000
- MVC IJJCPSV2(80),IJJCPSV1 CARD IMAGE FROM SVAREA1 TO SVAREA2 00664000
- L IJJIOADR,IJJCPSCW CALCULATE CURRENT I/O AREA ADDRESS 00665000
- MVC IJJCPSV1(80),0(IJJIOADR) SAVE CURRENT CARD IMAGE 00666000
- .NNRTY1 ANOP 00667000
- AIF (NOT &IO2SW OR T'&IOPTR NE 'O').ONE 00668000
- IJJCPCAL SVC 0 GET I/O 00669000
- TM IJJCPSWS,IJJCPRT IS THIS A PRINTER 00670000
- BCR 8,IJJCPRGA NOT PRINTER, GO TO CORRECT INSTRUCT 00671000
- BAL IJJBRG,IJJWCHED A PRINTER, WAIT FOR CHANNEL END 00672000
- MVI 0(IJJCPCWR),IJJCPRTC MOVE PRINT COMMAND TO CCW 00673000
- SVC 0 START I/O FOR ACTUAL PRINT 00674000
- BR IJJCPRGA TO CORRECT INSTRUCTION 00675000
- IJJCAL2 SVC 0 START I/O FOR CONTROL 00676000
- IJJWCHED TM IJJCOMBT,IJJCHEND TEST FOR CHANNEL END 00677000
- BO *+6 00678000
- SVC 7 WAIT 00679000
- TM IJJCPSWS,IJJCPMFC MULTIFUNC CARD MCH ? @DA11146 00680000
- BZR IJJBRG IF NOT BRANCH @DA11146 00681000
- TM IJJALSW,X'80' INPUT OR OUTPUT FILE ? @DA11146 00682000
- BOR IJJBRG IF INPUT FILE BRANCH @DA11146 00683000
- LA IJJCPCWR,IJJCPSCW GET CCW ADDR. @DA11146 00684000
- ST IJJCPCWR,IJJCPTCB STORE CCW ADDR. @DA11146 00685000
- AH IJJCPCWR,IJJCPADJ ADJUST CCW ADDR. @DA11146 00686000
- BR IJJBRG RETURN TO CORRECT INSTRUCTION 00687000
- AGO .COMT 00688000
- .ONE ANOP 00689000
- IJJCPCAL BAL IJJBRG,IJJCAL2 GET I/O 00690000
- TM IJJCPSWS,IJJCPRT IS THIS A PRINTER 00691000
- BZ IJJUNITX NOT A PRINTER 00692000
- IJJPWT MVI 0(IJJCPCWR),IJJCPRTC PRINTER, MOVE PRINT COMMAND TO CCW 00693000
- BAL IJJBRG,IJJCAL2 00694000
- IJJUNITX TM IJJCPCB4,IJJCPNEX HAS UNIT EXCEPTION OCCURRED 00695000
- BO IJJCPMG3 GO TO EOF 3-8 00696000
- TM IJJALSW,X'80' Q - INPUT OR OUTPUT FILE 3-10 00697000
- BZ IJJC1RT IF OUTPUT FILE BYPASS /* CHECK 3-10 00698000
- AIF ('&RPS' EQ 'SVA').RPS9 00699000
- L IJJCTL,IJJCPCCW LOAD I/O AREA ADDRESS 3-8 00700000
- AGO .NRPS4 00701000
- .RPS9 ANOP 00702000
- L IJJCTL,IJJXRDWR LOAD INPUT AREA ADDRESS @DL30SMT 00703000
- .NRPS4 ANOP 00704000
- LA IJJCTL,0(IJJCTL) CLEAR HI ORDER BTYE @DL30SMT 00705000
- CLC 0(3,IJJCTL),IJJEOF HAS /* BEEN READ @DA10192 00706000
- BNE IJJC1RT NO 00707000
- IJJCPMG3 TM IJJALSW,IJJTPHLT Q- SYSLST OR SYSPCH ON OUTPUT TAPE 00708000
- BO IJJCPEOV TO EOV ROUTINE 00709000
- TM IJJCPSWS,IJJCPRT A PRINTER 00710000
- BO IJJC1RT YES, HANDLED BY USER LINE COUNT 00711000
- IJJCPEND EQU * EOF PT FOR 3540 @DL29R05 00712000
- L IJJCPRTR,IJJCPEAD EOF ADDRESS TO RETURN REGISTER 00713000
- AIF ('&RPS' EQ 'SVA').RPS10 00714000
- IJJC1RT LM IJJCP1ST,IJJCPLST,IJJCPSAF RESTORE REGISTERS 3-3 00715000
- AGO .NRPS5 00716000
- .RPS10 ANOP 00717000
- IJJC1RT LM IJJCP1ST,IJJREG12,IJJCPSAF RESTORE REGISTERS @DL30SMT 00718000
- L IJJCPSAV,IJJXRG13 RESTORE EXTN ADDR @DL30SMT 00719000
- .NRPS5 ANOP 00720000
- OI IJJALSW,IJJCPNTF INDICATE NOT FIRST PASS @DL30SMT 00721000
- CLI IJJCPF1-1,IJJCPFDT 3540 ? @DL29R05 00722000
- BNE IJJCPF50 NO, CONTINUE @DL29R05 00723000
- TM IJJCMBT2,IJJCHEND 'SPECIAL RECORD ' ? @DL29R05 00724000
- BZ IJJCPF50 NO, CONTINUE @DL29R05 00725000
- XI IJJCMBT2,IJJCHEND SET OF 'SPEC REC' SW @DL29R05 00726000
- B IJJCPGP IGNORE RECORD @DL29R05 00727000
- IJJCPF50 EQU * CONTINUE @DL29R05 00728000
- BR IJJCPRTR TO USER 00729000
- AGO .COMT 00730000
- .INMD ANOP 00731000
- AIF (T'&IOPTR NE 'O' OR NOT &IO2SW).WIMD 00732000
- IJJCPST TM IJJALSW,IJJCP2FT OVERLAP AND/OR 1ST PASS 00733000
- BO IJJSLOWI NOT FIRST PASS, BUT OVERLAP 00734000
- BAL IJJCPRGA,IJJCP2IO GET I/O 00735000
- IJJSLOWI TM IJJCOMBT,IJJCHEND TEST FOR CHANNEL END 00736000
- BO *+6 00737000
- SVC 7 WAIT 00738000
- TM IJJCPSWS,IJJCPDSC IS THIS A DISK 00739000
- BZ IJJCPINX NO 00740000
- IC IJJCTL,IJJCPREC PICK UP REC NO. 00741000
- LA IJJCTL,1(IJJCTL) ADD ONE 00742000
- STC IJJCTL,IJJCPREC STROE NEW REC NO. IN SEARCH ADDR 00743000
- IJJCPINX TM IJJCPCB4,IJJCPNEX HAS UNIT EXCEPTION OCCURRED 00744000
- BO IJJCPMG2 00745000
- TM IJJALSW,X'80' Q - INPUT OR OUTPUT FILE 3-10 00746000
- BZ IJJTEST IF OUTPUT FILE BYPASS /* CHECK 3-10 00747000
- CLI IJJCPF1-1,IJJCPFDT 3540 ? @DL29R05 00748000
- BNE IJJCPF01 NO, CONTINUE @DL29R05 00749000
- TM IJJCMBT2,IJJCHEND ' SPEC REC ' ? @DL29R05 00750000
- BZ IJJCPF01 NO, CONTINUE @DL29R05 00751000
- OI IJJCPLD2+6,IJJCPX40 SET DELETE REC SW @DL29R05 00752000
- XI IJJCMBT2,IJJCHEND SET OFF SPEC REC SW @DL29R05 00753000
- IJJCPF01 EQU * CONTINUE @DL29R05 00754000
- L IJJCTL,0(IJJCPCWR) LOAD I/O AREA ADDR CI 00755000
- LA IJJCTL,0(IJJCTL) CLEAR HI ORDER BYTE 3-8 00756000
- CLC 0(3,IJJCTL),IJJEOF HAS /* BEEN READ @DA10192 00757000
- BNE IJJTEST 3-8 00758000
- IJJCPMG2 EQU * 00759000
- AGO .COMN 00760000
- .WIMD ANOP 00761000
- AIF (T'&IOPTR EQ 'O').NDVRI 00762000
- IJJCPIO ST IJJIOPTR,IJJCPTMP STORE DATA ADDRESS 3-3 00763000
- MVC 1(3,IJJCPCWR),IJJCPTMP+1 MOVE ADDRESS TO CCW 3-3 00764000
- TM IJJCPSWS,IJJCPDSC IS THIS A DISK 3-3 00765000
- AGO .NDVR2 00766000
- .NDVRI ANOP 00767000
- IJJCPIO TM IJJCPSWS,IJJCPDSC IS DEVICE A DISK 00768000
- .NDVR2 ANOP 00769000
- BO IJJCPDSK YES 00770000
- IJJCNDSK SVC 0 EXCP 00771000
- IJJC2SLO TM IJJCOMBT,IJJCHEND TEST FOR CHANNEL END 00772000
- BO *+6 00773000
- SVC 7 WAIT 00774000
- TM IJJCPSWS,IJJCPDSC IS THIS A DISK 00775000
- BZ IJJWINX NO 00776000
- IC IJJCTL,IJJCPREC PIK UP REC NO. 00777000
- LA IJJCTL,1(IJJCTL) ADD ONE 00778000
- STC IJJCTL,IJJCPREC STROE NEW REC NO. IN SEARCH ADDR 00779000
- IJJWINX TM IJJCPCB4,IJJCPNEX HAS UNIT EXCEPTION OCCURRED 00780000
- BO IJJCPMG4 YES 3-8 00781000
- TM IJJALSW,X'80' Q - INPUT OR OUTPUT FILE 3-10 00782000
- BZ IJJCNOEX IF OUTPUT FILE BYPASS /* CHECK 3-10 00783000
- L IJJCTL,0(IJJCPCWR) LOAD I/O AREA ADDRESS CI 00784000
- LA IJJCTL,0(IJJCTL) CLEAR HI ORDER BTYE 3-8 00785000
- CLC 0(3,IJJCTL),IJJEOF HAS /* BEEN READ @DA10192 00786000
- BNE IJJCNOEX NO 3-8 00787000
- IJJCPMG4 EQU * 3-8 00788000
- .COMN ANOP 00789000
- AIF (&IO2SW AND T'&IOPTR EQ 'O').TWIN 00790000
- IJJCPEND EQU * EOF PT FOR 3540 @DL29R05 00791000
- L IJJCPRTR,IJJCPEAD EOF ADDRESS TO RETURN REGISTER 00792000
- IJJCNOEX LM IJJCP1ST,IJJCPLST,IJJCPSAF RESTORE REGISTERS 3-3 00793000
- CLI IJJCPF1-1,IJJCPFDT 3540 ? @DL29R05 00794000
- BNE IJJCPF50 NO, CONTINUE @DL29R05 00795000
- TM IJJCMBT2,IJJCHEND ' SPEC REC ' ? @DL29R05 00796000
- BZ IJJCPF50 NO, CONTINUE @DL29R05 00797000
- XI IJJCMBT2,IJJCHEND SET OFF SPEC REC SW @DL29R05 00798000
- B IJJCPGP IGNORE RECORD @DL29R05 00799000
- IJJCPF50 EQU * CONTINUE @DL29R05 00800000
- BR IJJCPRTR TO USER 00801000
- AGO .COMT1 00802000
- .TWIN ANOP 00803000
- AIF ('&RPS' EQ 'SVA').TWIN1 00804000
- IJJCPEND EQU * EOF PT FOR 3540 @DL29R05 00805000
- .TWIN1 ANOP 00806000
- L IJJCPZRO,IJJCPEAD EOF ADDR TO RETURN REGISTER @DL30SMT 00807000
- B IJJEXEC BRANCH TO EOF ADDRESS 00808000
- IJJTEST TM IJJALSW,IJJCPOLP ARE THERE 2 I/O AREAS 00809000
- BZ IJJRTRN NO 00810000
- XC IJJCP2ND(3),1(IJJCPCWR) SWAP I/O AREAS 00811000
- XC 1(3,IJJCPCWR),IJJCP2ND NEW I/O AREA ADDRESS TO CCW 00812000
- EX 0,*-12 COMPLETE THE EXCHANGE 00813000
- BAL IJJCPRGA,IJJCP2IO GET I/O 00814000
- IJJRTRN LR IJJCPZRO,IJJCPRTR SAVE RETURN REGISTER 00815000
- L IJJCPRTR,IJJCP2ND-1 NEXT I/O AREA 00816000
- IJJEXEC LM IJJCP1ST,IJJCPLST,IJJCPSAF RESTORE REGISTERS 3-3 00817000
- TM IJJCPF1,IJJCPSYT IS THIS A SYSTEM UNIT TABLE 00818000
- BO IJJC2SLD YES 00819000
- EX 0,IJJLOAD LOAD I/O REG 00820000
- B IJJC2RES 00821000
- IJJC2SLD EX 0,IJJCPLD2 LOAD I/O REG 00822000
- IJJC2RES LR IJJCPRTR,IJJCPZRO RESTORE RETURN REGISTER 00823000
- OI IJJALSW,IJJCPNTF INDICATE NOT FIRST PASS 00824000
- CLI IJJCPF1-1,IJJCPFDT 3540 ? @DL29R05 00825000
- BNE IJJCPF50 NO, CONTINUE @DL29R05 00826000
- TM IJJCPLD2+6,IJJCPX40 'DELETE ' REC SW ON @DL29R05 00827000
- BZ IJJCPF50 NO, CONTINUE @DL29R05 00828000
- XI IJJCPLD2+6,IJJCPX40 SET OFF ' DELETE' SW @DL29R05 00829000
- B IJJCPGP IGNORE RECORD @DL29R05 00830000
- IJJCPF50 EQU * CONTINUE @DL29R05 00831000
- BR IJJCPRTR TO USER 00832000
- IJJCP2IO TM IJJCPSWS,IJJCPDSC IS DEVICE A DISK 00833000
- BO IJJCPDSK YES 00834000
- IJJCNDSK SVC 0 EXCP 00835000
- BR IJJCPRGA TO CORRECT INSTRUCT 00836000
- .COMT1 ANOP 00837000
- IJJCPDSK CLC IJJCPREC(1),IJJCPRMX HAS REC LIMIT BEEN REACHED 00838000
- AGO .CMTT2 00839000
- .COMT ANOP 00840000
- IJJCPDSK MVC IJJCPREC(1),IJJCPCTR UPDATE SEEK RECORD NO. 00841000
- CLC IJJCPREC(1),IJJCPRMX HAS REC LIMIT BEEN REACHED 00842000
- .CMTT2 ANOP 00843000
- BNE IJJDKFST NO 00844000
- AIF ('&TYPEFLE' EQ 'INPUT' OR &IO2SW).CMTT2A 00845000
- LR IJJCPRGA,IJJBRG SAVE RETURN REGISTER 00846000
- .CMTT2A ANOP 00847000
- L IJJWRK,IJJCPSEK PICK UP CCHH 4-0 00848000
- AH IJJWRK,IJJCPONE ADD 1 TO HEAD 4-0 00849000
- LR IJJCTL,IJJWRK EQUATE REGISTERS 4-0 00850000
- IC IJJCTL,IJJCPUPP+3 TAKE UPPER HEAD LIMIT 4-0 00851000
- CR IJJWRK,IJJCTL COMPARE HEADS 4-0 00852000
- BNH IJJCPSTS BRANCH IF LIMIT NOT EXCEEDED4-0 00853000
- A IJJWRK,IJJCPONE ADD 1 TO CYLINDER 4-0 00854000
- IC IJJWRK,IJJLOHED+1 SET LOWER HEAD LIMIT 4-0 00855000
- IJJCPSTS ST IJJWRK,IJJCPSEK UPDATE SEEK FIELD 4-0 00856000
- AIF ('&TYPEFLE' EQ 'INPUT' AND '&RPS' NE 'SVA').CPCOMN 00857000
- AIF (&IO2SW).CMTT2B 00858000
- LR IJJBRG,IJJCPRGA RESTORE RETURN REG 00859000
- .CMTT2B ANOP 00860000
- CLC IJJCPSEK(4),IJJCPMAX UPPER XTENT EXCEEDED 00861000
- BL IJJCPF05 NO, CONTINUE @DL29R05 00862000
- BE IJJCPF02 TEST IF 3540 @DL29R05 00863000
- CLI IJJCPF1-1,IJJCPFDT 3540 DEVICE @DL29R05 00864000
- BNE IJJERRTN CANCEL JOB @DL29R05 00865000
- BE IJJCPF03 YES, ISSUE FEED @DL29R05 00866000
- IJJCPF02 CLI IJJCPF1-1,IJJCPFDT 3540 DEVICE @DL29R05 00867000
- BNE IJJCPF05 NO, CONTINUE @DL29R05 00868000
- AIF ('&IOAREA2' NE 'YES' OR T'&IOPTR NE 'O').NOIOA2 00869000
- TM IJJALSW,IJJCHEND INPUT FILE @DL29R05 00870000
- BZ IJJCPF03 NO, OUTPUT, CONTINUE @DL29R05 00871000
- TM IJJALSW,IJJCPOLP DUAL I/O AREAS @DL29R05 00872000
- BZ IJJCPF03 NO, AT EOE, HANDLE IT @DL29R05 00873000
- TM IJJCPLD2+6,IJJCHEND MORE EXTENTS @DL29R05 00874000
- BZ IJJCPF03 YES, BRANCH TO FEED @DL29R05 00875000
- MVC IJJCPREC(1),IJJFRSTR MOVE 1ST REC TO PASTN @DL29R05 00876000
- B IJJRTRN GIVE USER LAST REC @DL29R05 00877000
- .NOIOA2 ANOP 00878000
- IJJCPF03 TM IJJCPLD2+6,IJJCHEND MORE EXTENTS @DL29R05 00879000
- BZ IJJCPFA3 YES, FEED @DL29R05 00880000
- TM IJJALSW,IJJCHEND INPUT FILE @DL29R05 00881000
- BZ IJJCPF04 NO, OUTPUT, GET EXTENT @DL29R05 00882000
- B IJJCPEND BR TO USER EOF RTN @DL29R05 00883000
- IJJCPFA3 LA IJJWRK,IJJCPFED LA OF FEED CCW @DL29R05 00884000
- ST IJJWRK,IJJCPTCB SET CCB CCW ADDRS @DL29R05 00885000
- SVC 0 ISSUE FEED TO 3540 @DL29R05 00886000
- TM IJJCOMBT,IJJCHEND TEST FOR CHAN END @DL29R05 00887000
- BO *+6 YES, CONTINUE @DL29R05 00888000
- SVC 7 WAIT @DL29R05 00889000
- LA IJJWRK,IJJCPSST PT TO PROPER CCW @DL29R05 00890000
- ST IJJWRK,IJJCPTCB SET CCB CCW ADDRS @DL29R05 00891000
- IJJCPF04 STM IJJZRO,IJJCPLST,IJJCPSAF+20 SAVE REGS 0-6 @DL29R05 00892000
- MVI IJJCPSAF+28,IJJCPSYT SET PARM LIST END IND @DL29R05 00893000
- LA IJJZRO,IJJCPSAF+24 SET UP DTF ADRS ADRS @DL29R05 00894000
- LA IJJCPTBB,IJJCPFDR PT TO OPEN TRANS. NAME @DL29R05 00895000
- SVC 2 CALL OPEN TRANSIENT @DL29R05 00896000
- MVI IJJCPSAF+28,IJJCPZRO RESET PARM LIST END IND @DL29R05 00897000
- LM IJJZRO,IJJCPLST,IJJCPSAF+20 RSTR REGS 0-6 @DL29R05 00898000
- IJJCPF05 MVC IJJCPREC(1),IJJFRSTR MOVE 1ST REC TO POSITION @DL29R05 00899000
- MVC IJJCPCNT(4),IJJCPSEK MOVE IN ID 00900000
- IJJDKFST IC IJJCTL,IJJCPREC PICK UP RECORD NO. 00901000
- LA IJJCTL,1(IJJCTL) ADD ONE 00902000
- STC IJJCTL,IJJCPCTR STORE IN COUNT FIELD 00903000
- AIF (&IO2SW AND T'&IOPTR EQ 'O').XCP1 00904000
- CLC IJJCPDAT(2),IJJDTZRO ENTERED FROM CLOSE 00905000
- BNE IJJCPCAL NO GET I/O 00906000
- AIF (NOT &SWITCH).NOASC4 00907000
- IJJCAL2 TM IJJASCSW,IJJASCMK ASCII SWITCH ON 3-8 00908000
- BZ IJJASCN1 NO 3-8 00909000
- AH IJJASCR2,IJJASCHW PTR TO EBCDIC-ASCII TR TAB 3-8 00910000
- AIF ('&RPS' EQ 'SVA').RPS11 00911000
- L IJJASCR4,IJJCPCCW INIT POINTER FOR IOAREA 3-8 00912000
- LH IJJASCR5,IJJCPCCW+6 GET RECORD LENGTH 3-8 00913000
- AGO .NRPS6 00914000
- .RPS11 ANOP 00915000
- L IJJASCR4,IJJXRDWR INIT POINTER FOR IOAREA @DL30SMT 00916000
- LH IJJASCR5,IJJLGFLD GET RECORD LENGTH @DL30SMT 00917000
- .NRPS6 ANOP 00918000
- IJJASCS1 SH IJJASCR5,IJJASCHW SUBTRACT 256 3-8 00919000
- LTR IJJASCR5,IJJASCR5 BRANCH IF 3-8 00920000
- BNP IJJASCA1 NOT POSITIVE 3-8 00921000
- TR 0(256,IJJASCR4),0(IJJASCR2) TR 256 BYTES TO ASCII 3-8 00922000
- LA IJJASCR4,256(IJJASCR4) UPDATE IOAREA POINTER 3-8 00923000
- B IJJASCS1 3-8 00924000
- IJJASCA1 LA IJJASCR5,255(IJJASCR5) ADD 255 3-8 00925000
- EX IJJASCR5,IJJASCTR TRANSLATE TO ASCII 3-8 00926000
- IJJASCN1 SVC 0 EXCP 3-8 00927000
- AGO .NOASC5 00928000
- .NOASC4 ANOP 00929000
- IJJCAL2 SVC 0 EXCP 00930000
- .NOASC5 ANOP 00931000
- IJJWCHED TM IJJCOMBT,IJJCHEND TEST FOR CHANNEL END 00932000
- BO *+6 00933000
- SVC 7 WAIT 00934000
- AIF (NOT &SWITCH).NOASC6 00935000
- TM IJJASCSW,IJJASCMK ASCII SWITCH ON 3-8 00936000
- BZ IJJASCN2 NO 3-8 00937000
- SH IJJASCR2,IJJASCHW PTR TO ASCII-EBCDIC TR TAB 3-8 00938000
- AIF ('&RPS' EQ 'SVA').RPS12 00939000
- L IJJASCR4,IJJCPCCW INIT POINTER FOR IOAREA 3-8 00940000
- LH IJJASCR5,IJJCPCCW+6 GET RECORD LENGTH 3-8 00941000
- AGO .NRPS7 00942000
- .RPS12 ANOP 00943000
- L IJJASCR4,IJJXRDWR INIT POINTER FOR IOAREA @DL30SMT 00944000
- LH IJJASCR5,IJJLGFLD GET RECORD LENGTH @DL30SMT 00945000
- .NRPS7 ANOP 00946000
- IJJASCS2 SH IJJASCR5,IJJASCHW SUBTRACT 256 3-8 00947000
- LTR IJJASCR5,IJJASCR5 BRANCH IF 3-8 00948000
- BNP IJJASCA2 NOT POSITIVE 3-8 00949000
- TR 0(256,IJJASCR4),0(IJJASCR2) TR 256 BYTES TO EBCDIC 3-8 00950000
- LA IJJASCR4,256(IJJASCR4) UPDATE IOAREA POINTER 3-8 00951000
- B IJJASCS2 3-8 00952000
- IJJASCA2 LA IJJASCR5,255(IJJASCR5) ADD 255 3-8 00953000
- EX IJJASCR5,IJJASCTR TRANSLATE TO EBCDIC 3-8 00954000
- IJJASCN2 BR IJJBRG RETURN TO CORRECT INSTRUCTION 3-8 00955000
- AGO .NOASC7 00956000
- NI IJJASCSW,255-IJJASCMK TURN ASCII SWITCH OFF 3-8 00957000
- .NOASC6 ANOP 00958000
- BR IJJBRG RETURN TO CORRECT INSTRUCTION 3-8 00959000
- .NOASC7 ANOP 00960000
- IJJCPEOV LR IJJDTFPS,IJJCPTBB ADDRESS OF DTF TABLE TO REGISTER 00961000
- LH IJJZRO,6(IJJDTFPS) PASS LOGICAL UNIT AND CLASS 00962000
- LA IJJCPTBB,IJJFLNME ADDRESS OF MULTI-VOLUME ROUTINE NAME 00963000
- SVC 2 CALL IN TRANSIENT TO HANDLE EOV CONDITION 00964000
- LR IJJCPTBB,IJJDTFPS RESTORE DTF TABLE ADDRESS TO REGISTER1 00965000
- B IJJC1RT PREPARE TO RETURN TO USER 00966000
- AGO .XCP2 00967000
- .XCP1 ANOP 00968000
- B IJJCPCAL GET I/O 00969000
- .XCP2 ANOP 00970000
- AIF ('&RETRY' NE 'NO' OR '&RPS' EQ 'SVA').YESRTY 00971000
- IJJERRTN CLC IJJCPDAT(2),IJJDTZRO ENTER FROM CLOSE 3-8 00972000
- BNE IJJERROR NO, BRANCH TO ERROR RTN 3-8 00973000
- OI IJJFRSTR,IJJNOEOF INDICATE NO EOF WRITTEN 3-8 00974000
- BR IJJBRG RETURN TO CORRECT INSTRUCTION 3-8 00975000
- IJJERROR LR IJJBRG,IJJCPTBB ADDRESS OF DTF TABLE TO REG 4 3-8 00976000
- LA IJJCPTBB,IJJERRAD ADDRESS OF ERROR RECOVERY ROUTINE NAME 00977000
- SVC 2 CALL IN TRANSIENT ROUTINE 00978000
- .YESRTY ANOP 00979000
- AIF (&IO2SW).OUT2 00980000
- AIF (T'&IOPTR EQ 'O').OUT1 00981000
- IJJDTZRO DC H'0' CONSTANT 00982000
- IJJSKP DC H'04' CONSTANT 00983000
- AIF (&RDNLYSW).BK017 00984000
- IJJCPTMP DC F'0' USED FOR STORAGE 3-3 00985000
- IJJCPSAF DC 12F'0' REGISTER SAVE AREA @DL29R05 00986000
- .BK017 ANOP 00987000
- IJJCPASA EQU *-1 00988000
- DC C'9C1+VW-0 ' ASA COMMAND CODES 00989000
- IJJCP360 DC X'0BCBE38B0301411B130B' CORRESPONDING SYS/360 CODES 00990000
- AGO .SAME 00991000
- .OUT1 ANOP 00992000
- AIF (NOT &SWITCH).NOASC8 00993000
- IJJASCTR TR 0(0,IJJASCR4),0(IJJASCR2) ASCII TRANSLATE INSTR 3-8 00994000
- AIF (&RDNLYSW).RPS13 00995000
- IJJASCSW DC X'00' ASCII SWITCH 3-8 00996000
- IJJASCSV DS F SAVE AREA 3-8 00997000
- .RPS13 ANOP 00998000
- IJJASCHW DC H'256' CONSTANT 3-8 00999000
- .NOASC8 ANOP 01000000
- IJJDTZRO DC H'0' CONSTANT 01001000
- IJJSKP DC H'04' CONSTANT 01002000
- AIF (&RDNLYSW).BK018 01003000
- IJJCPTMP DC F'0' @DM11873 01004000
- IJJCPSAF DC 12F'0' REGISTER SAVE AREA @DL29R05 01005000
- .BK018 ANOP 01006000
- IJJCPASA EQU *-1 01007000
- DC C'9C1+VW-0 ' ASA COMMAND CODES 01008000
- IJJCP360 DC X'0BCBE38B0301411B130B' CORRESPONDING SYS/360 CODES 01009000
- AGO .SAME 01010000
- .OUT2 ANOP 01011000
- AIF (&RDNLYSW).BK019 01012000
- IJJCPTMP DC F'0' @DM11873 01013000
- IJJCPSAF DC 12F'0' REGISTER SAVE AREA @DL29R05 01014000
- .BK019 ANOP 01015000
- IJJSKP DC H'04' CONSTANT 01016000
- IJJDTZRO DC H'0' 3-8 01017000
- IJJCPASA EQU *-1 01018000
- DC C'9C1+VW-0 ' ASA COMMAND CODES 01019000
- IJJCP360 DC X'0BCBE38B0301411B130B' CORRESPONDING SYS/360 CODES 01020000
- AGO .SAME 01021000
- .CPCOMN ANOP 01022000
- CLI IJJCPF1-1,IJJCPFDT IS THIS 3540 DEVICE @DL29R05 01023000
- BNE IJJCPF11 NO, CONTINUE @DL29R05 01024000
- CLC IJJCPSEK(4),IJJCPMAX END OF EXT ON 3540 @DL29R05 01025000
- AIF ('&IOAREA2' EQ 'YES' AND T'&IOPTR EQ 'O').YIOA12 01026000
- BNL IJJCPF13 YES, HANDLE IT @DL29R05 01027000
- AGO .FDCONT 01028000
- .YIOA12 ANOP 01029000
- BH IJJCPF13 YES, HANDLE IT @DL29R05 01030000
- BL IJJCPF11 NO, CONTINUE @DL29R05 01031000
- TM IJJALSW,IJJCPOLP DUAL I/O AREAS @DL29R05 01032000
- BZ IJJCPF13 NO, AT EOE, HANDLE IT @DL29R05 01033000
- TM IJJCPLD2+6,IJJCHEND MORE EXTENTS @DL29R05 01034000
- BZ IJJCPF13 YES, BRANCH TO FEED @DL29R05 01035000
- MVC IJJCPREC(1),IJJFRSTR MOVE 1ST REC TO PASTN @DL29R05 01036000
- B IJJRTRN GIVE USER LAST REC @DL29R05 01037000
- .FDCONT ANOP 01038000
- IJJCPF11 MVC IJJCPREC(1),IJJFRSTR MOVE 1ST REC # TO PASTN @DL29R05 01039000
- IJJDKFST B IJJCNDSK GET I/O 01040000
- IJJCPF13 TM IJJCPLD2+6,IJJCHEND MORE EXTENTS @DL29R05 01041000
- BO IJJCPEND NO, BR TO USERS EOF RTN @DL29R05 01042000
- LA IJJWRK,IJJCPFED LA OF FEED CCW @DL29R05 01043000
- ST IJJWRK,IJJCPTCB SET CCB CCW ADDRS @DL29R05 01044000
- SVC 0 ISSUE FEED TO 3540 @DL29R05 01045000
- TM IJJCOMBT,IJJCHEND TEST FOR CHAN. END @DL29R05 01046000
- BO *+6 YES, CONTINUE @DL29R05 01047000
- SVC 7 WAIT @DL29R05 01048000
- LA IJJWRK,IJJCPSST PT TO PROPER CCW @DL29R05 01049000
- ST IJJWRK,IJJCPTCB SET CCB CCW ADDRS @DL29R05 01050000
- IJJCPF14 STM IJJZRO,IJJCPLST,IJJCPSAF+20 SAVE REGS 0-6 @DL29R05 01051000
- MVI IJJCPSAF+28,IJJCPSYT SET PARM LIST END IND @DL29R05 01052000
- LA IJJZRO,IJJCPSAF+24 SET UP DTF ADRS ADRS @DL29R05 01053000
- LA IJJCPTBB,IJJCPFDR PT TO OPEN TRANS. NAME @DL29R05 01054000
- SVC 2 CALL OPEN TRANSIENT @DL29R05 01055000
- MVI IJJCPSAF+28,IJJCPZRO RESET PARM LIST END IND @DL29R05 01056000
- LM IJJZRO,IJJCPLST,IJJCPSAF+20 RSTR REGS 0-6 @DL29R05 01057000
- B IJJCPF11 CONT WITH NEXT VOL @DL29R05 01058000
- AIF (&RDNLYSW).SAME 01059000
- IJJCPTMP DC F'0' @DM11873 01060000
- IJJCPSAF DC 12F'0' SAVE AREA @DL29R05 01061000
- .SAME ANOP 01062000
- IJJCPFED CCW 23,*,0,1 3540 FEED CCW @DL29R05 01063000
- IJJCPFDR DC CL8'$$BOPEN' OPEN NEXT VOL FOR 3540 @DL29R05 01064000
- IJJCPONE DC F'65536' X'00010000' ADD 1 AT CYL. 4-0 01065000
- IJJEOF DC C'/* ' TEST FOR /* ON INPUT @DA10192 01066000
- IJJCPTBB EQU 1 DTF FILE BASE 01067000
- IJJCPBAS EQU 15 BASE REGISTER 01068000
- IJJZRO EQU 0 WORK REGISTER 01069000
- IJJCPRTR EQU 14 RETURN REGISTER 01070000
- IJJCPZRO EQU 0 WORK REGISTER 01071000
- IJJCPRGA EQU 5 WORK REGISTER 01072000
- IJJCPRG1 EQU 0 LOWER DISK ADDRESS 01073000
- IJJIOADR EQU 3 USED TO CALCULATE I/O AREA ADDRESS 01074000
- IJJCMP EQU 3 WORK REGISTER 01075000
- IJJCTL EQU 4 WORK REGISTER 01076000
- IJJWRK EQU 2 WORK REGISTER 01077000
- IJJCP1ST EQU 2 WORK REGISTER 01078000
- IJJCPLST EQU 6 WORK REGISTER 01079000
- IJJCPCWR EQU 6 CONTAINS CCW ADDRESS 01080000
- IJJDTFPS EQU 2 USED TO PASS DTF TABLE ADDRESS TO TRANSIENT 01081000
- IJJTPHLT EQU X'02' TEST FOR SYSLST OR SYSPCH ON OUTPUT TAPE 01082000
- IJJCPNEX EQU X'01' TEST FOR UNIT EXCEPTION 01083000
- IJJCPSYT EQU X'FF' TEST TABLE FORMAT 01084000
- IJJCPKN4 EQU 3 CONSTANT FOR COUNTER 01085000
- IJJCPKN1 EQU 1 CONSTANT OF 1 @DL30SMT 01086000
- AIF ('&RPS' NE 'SVA').NRPS8 01087000
- IJJONE92 EQU 192 OFFSET TO SAVEAREA + 8 @DL30SMT 01088000
- IJJEIGHT EQU 8 CONSTANT OF 8 @DL30SMT 01089000
- IJJREG12 EQU 12 REGISTER 12 @DL30SMT 01090000
- .NRPS8 ANOP 01091000
- IJJCPSAV EQU 13 POINTER TO SAVE AREA 3-3 01092000
- IJJXBKSP EQU X'04' TEST FOR BACKSPACE RTN 01093000
- IJJCPNTF EQU X'20' INDICATE NOT FIRST PASS 01094000
- IJJCPOLP EQU X'10' TEST FOR 2 I/O AREAS 01095000
- IJJCPDSC EQU X'20' TEST FOR A DISK 01096000
- IJJCP2FT EQU X'30' TEST FOR OVERLAP AND FIRST PASS 01097000
- IJJCHEND EQU X'80' TEST FOR CHANNEL END 01098000
- IJJCPFDT EQU X'06' TEST FOR 3540 @DL29R05 01099000
- IJJCPX40 EQU X'40' MASK FOR 3540 DELETE @DL29R05 01100000
- IJJCPMFC EQU X'80' TEST MFCM/U @DM08032 01101000
- IJJCPTCV EQU X'E5' TEST CONTROL CHAR V CI 01102000
- IJJCPTCW EQU X'E6' TEST CONTROL CHAR W CI 01103000
- IJJNOEOF EQU X'F0' INDICATOR FOR NO EOF WRITTEN 3-8 01104000
- AIF (T'&IOPTR EQ 'O').NOPTR 01105000
- IJJIOPTR EQU 0 REGISTER POINTING TO I/O AREA 01106000
- IJJLSTPH EQU X'04' TEST FOR SYSLST OR SYSPCH 01107000
- IJJDSKTP EQU X'30' TEST FOR DISK OR TAPE 01108000
- .NOPTR ANOP 01109000
- AIF ('&TYPEFLE' EQ 'INPUT' AND '&RPS' NE 'SVA').FIN 01110000
- IJJCPTPH EQU X'0C' TEST FOR PRINTER OR PUNCH 01111000
- IJJCPSP EQU X'0B' SPACE COMMAND FOR PRINTER 01112000
- IJJCPRTC EQU X'01' PRINT COMMAND 01113000
- IJJCPRT EQU X'08' TEST FOR A PRINTER 01114000
- IJJCPNEJ EQU X'BF' TURN OFF EJECT NEEDED 01115000
- IJJCPEJT EQU X'40' TEST FOR EJECT NEEDED 01116000
- IJJCPRTD EQU X'03' TEST FOR READER, TAPE OR DISK 01117000
- IJJNUMCH EQU 9 NO. OF CONTROL CHARS 01118000
- IJJBRG EQU 3 BRANCH REGISTER 01119000
- IJJCPCTL EQU 4 WORK REGISTER 01120000
- AIF (NOT &SWITCH).NOASC9 01121000
- IJJASCIS EQU X'02' TEST FOR ASCII 3-8 01122000
- IJJASCTP EQU X'10' TEST FOR A TAPE 3-8 01123000
- IJJASCMK EQU X'01' ASCII MASK 3-8 01124000
- IJJASCOF EQU X'FE' ASCII SWITCH OFF MASK @DL30SMT 01125000
- IJJASCSY EQU X'01' TEST FOR SYSTEM UNIT 3-8 01126000
- IJJASCR2 EQU 2 WORK REGISTER 3-8 01127000
- IJJASCR4 EQU 4 WORK REGISTER 3-8 01128000
- IJJASCR5 EQU 5 WORK REGISTER 3-8 01129000
- .NOASC9 ANOP 01130000
- AIF ('&RETRY' EQ 'NO' AND '&RPS' NE 'SVA').FIN 01131000
- IJJ2540 EQU X'08' TEST FOR 2540 PUNCH 01132000
- IJJDEVED EQU X'80' TEST FOR DEVICE END 01133000
- IJJCP010 EQU X'10' TEST FOR PUNCH ERROR 01134000
- AGO .FIN 01135000
- .TPESY ANOP 01136000
- USING *,IJJCPBAS BASE FOR LOGIC 01137000
- USING IJJCPTAB,IJJTABAS ESTABLISH BASE FOR DTF TABLE 01138000
- AIF ('&TYPEFLE' EQ 'INPUT').INMDT 01139000
- AIF ('&IOAREA2' NE 'YES' OR T'&IOPTR NE 'O').WOTMDT 01140000
- IJJCPSKP DC H'04' CONSTANT FOR SKIP TEST 01141000
- DC H'0' 01142000
- DC F'0' 01143000
- B IJJGET 01144000
- AIF (T'&RDONLY NE 'O').BK020 01145000
- IJJGET STM IJJNXTRG,IJJENDRG,IJJCPSVE SAVE REGS THAT ARE USED 3-3 01146000
- AGO .BK021 01147000
- .BK020 ANOP 01148000
- IJJGET STM IJJNXTRG,IJJENDRG,0(IJJRGSAV) SAVE USER REGS 3-3 01149000
- .BK021 ANOP 01150000
- IJJLAPOV TM IJJSWITH,IJJOLPFT OVERLAP AND/OR FIRST PASS 01151000
- BO IJJTEST NOT FIRST PASS BUT OVERLAP 01152000
- OI IJJSWITH,IJJFIRST INDICATE NOT FIRST PASS 01153000
- BAL IJJRTBCK,IJJGETIO GET I/O 01154000
- IJJTEST BAL IJJBRG,IJJWCHED TEST FOR CHANNEL END 01155000
- TM IJJSTSBT,IJJUNTEX HAS UNIT EXCEPTION OCCURRED 01156000
- BO IJJCPMG5 YES 3-8 01157000
- L IJJENDRG,IJJCPCCW LOAD I/O AREA ADDRESS 3-8 01158000
- LA IJJENDRG,0(IJJENDRG) CLEAR HI ORDER BYTE 3-8 01159000
- CLC 0(3,IJJENDRG),IJJIEOF HAS /* BEEN READ @DA10192 01160000
- BNE IJJT2IOA NO 3-8 01161000
- IJJCPMG5 TM IJJSWITH,IJJPRNTR IS THIS A PRINTER 3-8 01162000
- BO IJJT2IOA YES, HANDLED BY LINE COUNT 01163000
- TM IJJCPLSW,IJJTPHLT IS SYSLST OR SYSPCH ON OUTPUT TAPE 01164000
- BO IJJCPEOV TO EOV ROUTINE 01165000
- TM IJJSWITH,X'08' TEST PUNCH FILE CI 01166000
- BO IJJCPEXC YES CI 01167000
- IJJCPEND L IJJZRO,IJJEOFAD PREPARE TO GO TO EOF ADDRESS 01168000
- B IJJCPEXC BRANCH TO EOF ADDRESS 01169000
- IJJCPEOV LR IJJDTFPS,IJJTABAS ADDRESS OF DTF TABLE TO REGISTER 01170000
- LH IJJZRO,6(IJJDTFPS) PASS LOGICAL UNIT AND CLASS 01171000
- LA IJJTABAS,IJJFLNME NAME OF TRANSIENT TO BE CALLED 01172000
- SVC 2 CALL IN TRANSIENT ROUTINE TO HANDLE EOV CONDITION 01173000
- LR IJJTABAS,IJJDTFPS RESTORE DTF TABLE ADDRESS TO REGISTER1 01174000
- IJJT2IOA TM IJJSWITH,IJJOVLAP 2 I/O AREAS 01175000
- BZ IJJRTRN NO 01176000
- LA IJJRTBCK,IJJCPCCW CI 01177000
- TM IJJCPLSW,IJJCPMFC TEST MFCM/U CI 01178000
- BZ IJJCP2I NO CI 01179000
- TM IJJCPLSW,IJJCPIN TEST INPUT FILE CI 01180000
- BNZ IJJCP2I YES CI 01181000
- LA IJJRTBCK,8(IJJRTBCK) POINTER TO 2ND OUTPUT CCW CI 01182000
- IJJCP2I XC IJJALTIO(3),1(IJJRTBCK) SWAP I/O AREAS CI 01183000
- XC 1(3,IJJRTBCK),IJJALTIO NEW I/O AREA ADDRESS TO CCW CI 01184000
- EX 0,*-12 COMPLETE THE EXCHANGE 01185000
- BAL IJJRTBCK,IJJGETIO GET I/O 01186000
- IJJRTRN LR IJJZRO,IJJRTREG SAVE RETURN REGISTER 01187000
- L IJJRTREG,IJJALTIO-1 NEXT I/O AREA 01188000
- TM IJJCPLSW,IJJPTPH IS THIS A PUNCH OR A PRINTER 01189000
- BZ IJJCPEXC NO 01190000
- BCTR IJJRTREG,0 POINT TO CONTROL CHARACTER 01191000
- AIF (T'&RDONLY NE 'O').BK022 01192000
- IJJCPEXC LM IJJNXTRG,IJJENDRG,IJJCPSVE RESTORE REGISTERS 3-3 01193000
- AGO .BK023 01194000
- .BK022 ANOP 01195000
- IJJCPEXC LM IJJNXTRG,IJJENDRG,0(IJJRGSAV) RESTORE USER REGS 3-3 01196000
- .BK023 ANOP 01197000
- EX 0,IJJLOAD LOAD I/O REGISTER WITH NEXT I/O AREA 01198000
- LR IJJRTREG,IJJZRO RESTORE RETURN REGISTER 01199000
- BR IJJRTREG TO USER 01200000
- AGO .NOVAR 01201000
- .WOTMDT ANOP 01202000
- IJJCPSVE DC 2F'0' 01203000
- B IJJGET 01204000
- IJJGET STM IJJNXTRG,IJJENDRG,IJJCPSVE SAVE REGS THAT ARE USED 01205000
- AGO .BK025 01206000
- .BK024 ANOP 01207000
- B IJJGET 3-3 01208000
- IJJGET STM IJJNXTRG,IJJENDRG,0(IJJRGSAV) SAVE USER REGS 3-3 01209000
- .BK025 ANOP 01210000
- AIF (T'&IOPTR EQ 'O').NOVAR 01211000
- IJJGETIO TM IJJSWITH,IJJCPTAP IS DEVICE A TAPE 01212000
- BZ IJJSTOR NO 01213000
- TM IJJCPLSW,IJJLTPCH SYSLST OR SYSPCH ON TAPE 01214000
- BZ IJJSTOR NO 01215000
- IJJADJJS BCTR IJJIOPTR,IJJIOPTR POINT TO CONTROL CHARACTER 01216000
- AIF (T'&RDONLY NE 'O').BK026 01217000
- IJJSTOR ST IJJIOPTR,IJJTEMP STORE ON FULL WORD BOUNDARY 3-3 01218000
- MVC IJJCPCCW+1(3),IJJTEMP+1 MOVE DATA ADDRESS TO CCW 3-3 01219000
- AGO .BK027 01220000
- .BK026 ANOP 01221000
- IJJSTOR ST IJJIOPTR,16(IJJRGSAV) DATA ADDR TO FULL WORD BOUNDR3-3 01222000
- MVC IJJCPCCW+1(3),17(IJJRGSAV) MOVE DATA ADDR TO CCW 3-3 01223000
- .BK027 ANOP 01224000
- TM IJJSWITH,IJJRDTP IS DEVICE READER OR TAPE 01225000
- AGO .WTCOM 01226000
- .NOVAR ANOP 01227000
- IJJGETIO TM IJJSWITH,IJJRDTP IS DEVICE READER OR TAPE 01228000
- .WTCOM ANOP 01229000
- BC 7,IJJCPCLL YES 01230000
- TM IJJSWITH,IJJEJT IS EJECT NEEDED FOR A PUNCH CI 01231000
- BZ IJJCPMF2 NO EJECT NEEDED CI 01232000
- NI IJJSWITH,IJJNOEJ INDICATE NO EJECT NEEDED CI 01233000
- BAL IJJBRG,IJJCAL2 EJECT FIRST CARD CI 01234000
- IJJCPMF2 TM IJJCPLSW,IJJCPMFC TEST MFCM/U CI 01235000
- BZ IJJCPTAS NO, TEST ASA CONTROL CHAR CI 01236000
- AIF (T'&IOPTR EQ 'O').MF02 01237000
- MVC IJJCCWE1+1(3),IJJCPCCW+1 IOADDR TO PUNCH CCW CI 01238000
- .MF02 ANOP 01239000
- L IJJCMDCD,IJJCCWE1 CI 01240000
- BCTR IJJCMDCD,0 CI 01241000
- OI IJJCPCCW+4,X'60' SET CHAIN BIT IN 1ST CCW CI 01242000
- MVC IJJCPCCW(1),IJJCPSSW STACKER SELECT W TO 1ST CCW CI 01243000
- CLI 0(IJJCMDCD),IJJCPTCW TEST W CONTROL CHAR CI 01244000
- BE IJJCPAD8 RETURN CI 01245000
- MVC IJJCPCCW(1),IJJCPSSV STACKER SELECT V TO 1ST CCW CI 01246000
- CLI 0(IJJCMDCD),IJJCPTCV TEST V CONTROL CHAR CI 01247000
- BE IJJCPAD8 RETURN CI 01248000
- MVC IJJCPCCW(1),0(IJJCMDCD) CURRENT CTL CHAR TO 1ST CCW CI 01249000
- IJJCPAD8 B IJJCPCLL BRANCH TO GET I/O CI 01250000
- IJJCPTAS EQU * CI 01251000
- L IJJCMDCD,IJJIOARE PUNCH OR PRINTER CI 01252000
- BCTR IJJCMDCD,0 POINT TO COMMAND CODE 01253000
- LA IJJCNTRL,IJJNMCHR NO. OF CHARACTERS TO COMPARE 01254000
- LR IJJCOMPR,IJJCMDCD EQUATE REGISTERS 01255000
- IC IJJCOMPR,0(IJJCMDCD) USER CONTROL CHARACTER TO REGISTER 01256000
- IJJCPLUP IC IJJCMDCD,IJJCPASA(IJJCNTRL) ASA CHARACTER FROM TABLE 01257000
- CR IJJCOMPR,IJJCMDCD USER CNTRL CHARACTER EQUAL ASA CHARCTR 01258000
- BE IJJCPFND YES, THIS IS CHARACTER 01259000
- BCT IJJCNTRL,IJJCPLUP NOT THE ONE, CHECK THE NEXT 01260000
- IJJCPFND CH IJJCNTRL,IJJCPSKP IS COMMAND A SKIP 01261000
- BNL IJJNOSK NO, NOT A SKIP 01262000
- MVI IJJCPCCW,IJJCPSP MOVE SPACE COMMAND TO CCW 01263000
- BAL IJJBRG,IJJCAL2 SPACE FROM CHANNEL 01264000
- IJJNOSK TM IJJSWITH,IJJEJT IS EJECT NEEDED FOR A PUNCH 01265000
- BZ IJJCPMOV NO EJECT NEEDED 01266000
- NI IJJSWITH,IJJNOEJ INDICATE NO EJECT 01267000
- BAL IJJBRG,IJJCAL2 EJECT FIRST CARD 01268000
- IJJCPMOV LA IJJCNTRL,IJJCP360(IJJCNTRL) 360 CONTROL CHARACTER ADDR 01269000
- MVC IJJCPCCW(1),0(IJJCNTRL) 360 CONTROL CHARACTER TO CCW 01270000
- OC IJJCPCCW(1),IJJPCHCD PRODUCE CORRECT PUNCH CODE 01271000
- AIF ('&RETRY' EQ 'NO').NRTY 01272000
- TM IJJCPLSW,IJJ2540 IS DEVICE 2540 PUNCH 01273000
- BZ IJJCPCLL NO, GET I/O 01274000
- IJJCPWDE TM IJJCOMBT,IJJDEVED WAIT DEVICE END 01275000
- BO *+6 01276000
- SVC 7 WAIT 01277000
- TM IJJCMBT2,IJJCP010 TEST IF PUNCH ERROR 01278000
- BZ IJJSAVE NO, SAVE CARD IMAGES AND COMMAND CODES 01279000
- LR IJJBRG,IJJTABAS ADDRESS OF DTF TABLE TO REGISTER 4 01280000
- LA IJJTABAS,=C'$$BERRTN' ADDRESS OF PUNCH ERROR RECOVERY 01281000
- SVC 2 CALL IN TRANSIENT ROUTINE 01282000
- LR IJJTABAS,IJJBRG RESTORE DTF TABLE ADDRESS TO REGISTER 1 01283000
- IJJSAVE MVC IJJCCWE2(1),IJJCCWE1 OPCODE 1ST ERR CCW INTO 2ND ERR CCW 01284000
- MVC IJJCCWE1(1),IJJCPCCW OPCODE CURRENT CCW TO 1ST ERR CCW 01285000
- MVC IJJCPSV2(80),IJJCPSV1 CARD IMAGE FROM SVAREA1 TO SVAREA2 01286000
- L IJJIOADR,IJJIOARE CALCULATE CURRENT I/O AREA ADDRESS 01287000
- MVC IJJCPSV1(80),0(IJJIOADR) SAVE CURRENT CARD IMAGE 01288000
- .NRTY ANOP 01289000
- IJJCPCLL SVC 0 EXCP 01290000
- TM IJJSWITH,IJJPRNTR IS THIS A PRINTER 01291000
- AIF ('&IOAREA2' NE 'YES' OR T'&IOPTR NE 'O').ONET 01292000
- BZ 0(IJJRTBCK) NO, RETURN TO CORRECT INSTRUCTION 01293000
- IJJPWT BAL IJJBRG,IJJWCHED WAIT FOR CHANNEL END 01294000
- MVI IJJCPCCW,IJJPRTC MOVE PRINT COMMAND TO CCW 01295000
- SVC 0 EXCP START I/O FOR ACTUAL PRINT 01296000
- BR IJJRTBCK RETURN TO PROPER INSTRUCTION 01297000
- IJJCAL2 SVC 0 EXCP 01298000
- IJJWCHED TM IJJCOMBT,IJJCHEND TEST FOR CHANNEL END 01299000
- BO *+6 01300000
- SVC 7 WAIT 01301000
- BR IJJBRG RETURN TO CORRECT INSTRUCTION 01302000
- AGO .COMTT 01303000
- .ONET ANOP 01304000
- BZ IJJTEST NOT A PRINTER 01305000
- IJJPWT BAL IJJBRG,IJJWCHED A PRINTER, WAIT FOR CHANNEL END 01306000
- MVI IJJCPCCW,IJJPRTC MOVE PRINT COMMAND TO CCW 01307000
- SVC 0 EXCP START I/O FOR ACTUAL PRINT 01308000
- IJJTEST BAL IJJBRG,IJJWCHED TEST FOR CHANNEL END 01309000
- TM IJJSTSBT,IJJUNTEX HAS UNIT EXCEPTION OCCURED 01310000
- BO IJJCPMG6 YES 3-8 01311000
- L IJJENDRG,IJJCPCCW LOAD I/O AREA ADDRESS 3-8 01312000
- LA IJJENDRG,0(IJJENDRG) CLEAR HI ORDER BYTE 3-8 01313000
- CLC 0(3,IJJENDRG),IJJIEOF HAS /* BEEN READ @DA10192 01314000
- BNE IJJCPEXC NO 3-8 01315000
- IJJCPMG6 TM IJJSWITH,IJJPRNTR IS THIS A PRINTER 3-8 01316000
- BO IJJCPEXC YES, HANDLED BY LINE COUNT 01317000
- TM IJJCPLSW,IJJTPHLT IS SYSLST OR SYSPCH ON OUTPUT TAPE 01318000
- BO IJJCPEOV TO EOV ROUTINE 01319000
- TM IJJSWITH,X'08' TEST PUNCH FILE CI 01320000
- BO IJJCPEXC YES CI 01321000
- IJJCPEND L IJJRTREG,IJJEOFAD EOF ADDRESS TO RETURN REGISTER 01322000
- AIF (T'&RDONLY NE 'O').BK028 01323000
- IJJCPEXC LM IJJNXTRG,IJJENDRG,IJJCPSVE RESTORE REGISTERS 3-3 01324000
- AGO .BK029 01325000
- .BK028 ANOP 01326000
- IJJCPEXC LM IJJNXTRG,IJJENDRG,0(IJJRGSAV) RESTORE USER REGS 3-3 01327000
- .BK029 ANOP 01328000
- BR IJJRTREG RETURN TO USER 01329000
- IJJCAL2 SVC 0 EXCP 01330000
- IJJWCHED TM IJJCOMBT,IJJCHEND TEST FOR CHANNEL END 01331000
- BO *+6 01332000
- SVC 7 WAIT 01333000
- TM IJJCPLSW,IJJCPMFC MULTIFUNC CARD MCH ? @DA11146 01334000
- BZR IJJBRG IF NOT BRANCH @DA11146 01335000
- TM IJJCPLSW,IJJCPIN INPUT OR OUTPUT FILE ? @DA11146 01336000
- BOR IJJBRG IF INPUT FILE BRANCH @DA11146 01337000
- LA IJJRTBCK,IJJCPCCW+8 GET CCW ADDR. @DA11146 01338000
- ST IJJRTBCK,IJJCPCCB+8 STORE CCW ADDR. @DA11146 01339000
- BR IJJBRG RETURN TO CORRECT INSTRUCTION 01340000
- IJJCPEOV LR IJJDTFPS,IJJTABAS ADDRESS OF DTF TABLE TO REGISTER 01341000
- LH IJJZRO,6(IJJDTFPS) PASS LOGICAL UNIT AND CLASS 01342000
- LA IJJTABAS,IJJFLNME NAME OF TRANSIENT TO BE CALLED 01343000
- SVC 2 CALL IN TRANSIENT ROUTINE TO HANDLE EOV CONDITION 01344000
- LR IJJTABAS,IJJDTFPS RESTORE DTF TABLE ADDRESS TO REGISTER1 01345000
- B IJJCPEXC PREPARE RETURN TO USER 01346000
- .COMTT ANOP 01347000
- AIF ('&IOAREA2' NE 'YES' OR T'&IOPTR NE 'O').DIFT 01348000
- AIF (T'&RDONLY NE 'O').BK030 01349000
- IJJCPSVE DC 3F'0' 3-3 01350000
- .BK030 ANOP 01351000
- LTORG 01352000
- AIF (T'&IOPTR EQ 'O').KGO 01353000
- AIF (T'&RDONLY NE 'O').KGO 01354000
- IJJTEMP DC F'0' TEMPORARY STORAGE AREA 01355000
- AGO .KGO 01356000
- .DIFT ANOP 01357000
- AIF (T'&IOPTR EQ 'O').NTPA 01358000
- AIF (T'&RDONLY NE 'O').BK032 01359000
- IJJTEMP DC F'0' TEMPORARY STORAGE AREA 3-3 01360000
- .BK032 ANOP 01361000
- LTORG 01362000
- IJJCPSKP DC H'04' CONSTANT FOR SKIP TEST 01363000
- AGO .KGO 01364000
- .NTPA ANOP 01365000
- LTORG 01366000
- IJJCP360 DC X'0BCBE38B0301411B130B' CORRESPONDING SYS/360 CODES 01367000
- IJJCPSKP DC H'04' CONSTANT FOR SKIP TEST 01368000
- IJJCPASA EQU *-1 01369000
- DC C'9C1+VW-0 ' ASA COMMAND CODES 01370000
- AGO .REGS 01371000
- .KGO ANOP 01372000
- IJJCPASA EQU *-1 01373000
- DC C'9C1+VW-0 ' ASA COMMAND CODES 01374000
- IJJCP360 DC X'0BCBE38B0301411B130B' CORRESPONDING S/360 CODES 01375000
- .REGS ANOP 01376000
- IJJRGSAV EQU 13 POINTER TO SAVE AREA 3-3 01377000
- IJJCPBAS EQU 15 BASE REGISTER 01378000
- IJJBRG EQU 3 BRANCH REGISTER 01379000
- IJJRTBCK EQU 2 BRANCH REGISTER 01380000
- IJJCOMPR EQU 0 COMPARE REGISTER 01381000
- IJJCMDCD EQU 3 INSERTS CONTROL COMMAND TO CCW 01382000
- IJJNXTRG EQU 2 WORK REG 01383000
- AIF ('&IOAREA2' NE 'YES' OR T'&IOPTR NE 'O').DODIF 01384000
- IJJCNTRL EQU 4 COMPARE REGISTER 01385000
- IJJENDRG EQU 4 WORK REG 01386000
- IJJIEOF DC C'/* ' @DA10192 01387000
- AGO .KGOO 01388000
- .DODIF ANOP 01389000
- IJJCNTRL EQU 2 COMPARE REGISTER 01390000
- IJJENDRG EQU 3 WORK REG 01391000
- IJJIEOF DC C'/* ' @DA10192 01392000
- .KGOO ANOP 01393000
- IJJRTREG EQU 14 HAS RETURN ADDRESS 01394000
- IJJTABAS EQU 1 BASE REGISTER FOR DTF TABLE 01395000
- IJJZRO EQU 0 WORK REGISTER 01396000
- IJJDTFPS EQU 2 USED TO PASS DTF TABLE ADDRESS TO TRANSIENT 01397000
- IJJTPHLT EQU X'08' TEST FOR SYSLST OR SYSPCH ON OUTPUT TAPE 01398000
- IJJIOADR EQU 3 USED TO CALCULATE I/O AREA ADDRESS 01399000
- IJJEJT EQU X'80' TEST FOR EJECT NEEDED 01400000
- IJJFIRST EQU X'10' TURN OFF FIRST PASS BIT 01401000
- IJJNOEJ EQU X'7F' TURN OFF EJECT BIT 01402000
- IJJNMCHR EQU 9 NUMBER OF CHARACTERS TO COMPARE 01403000
- IJJOLPFT EQU X'30' TEST FOR 2 I/O AREAS AND FIRST PASS 01404000
- IJJOVLAP EQU X'20' TEST FOR 2 I/O AREAS 01405000
- IJJPRNTR EQU X'04' TEST FOR A PRINTER 01406000
- IJJPRTC EQU X'01' PRINT COMMAND 01407000
- IJJPTPH EQU X'10' TEST FOR A PRINTER OR A PUNCH 01408000
- IJJRDTP EQU X'03' TEST FOR READER OR TAPE 01409000
- IJJCPSP EQU X'0B' SPACE COMMAND 01410000
- IJJUNTEX EQU X'01' TEST FOR UNIT EXCEPTION 01411000
- IJJCHEND EQU X'80' TEST FOR CHANNEL END 01412000
- IJJCPIN EQU X'80' TEST INPUT FILE CI 01413000
- IJJCPMFC EQU X'03' TEST FOR MFCM/U CI 01414000
- IJJCPTCV EQU X'E5' TEST CONTROL CHAR V CI 01415000
- IJJCPTCW EQU X'E6' TEST CONTROL CHAR W CI 01416000
- AIF ('&RETRY' EQ 'NO').FINOT 01417000
- IJJ2540 EQU X'20' TEST FOR 2540 PUNCH 01418000
- IJJDEVED EQU X'80' TEST FOR DEVICE END 01419000
- IJJCP010 EQU X'10' TEST FOR PUNCH ERROR 01420000
- .FINOT ANOP 01421000
- AIF (T'&IOPTR EQ 'O').FIN 01422000
- IJJIOPTR EQU 0 REGISTER POINTING TO I/O AREA 01423000
- IJJCPTAP EQU X'01' TEST FOR A TAPE 01424000
- IJJLTPCH EQU X'40' TEST FOR SYSLST OR SYSPCH 01425000
- AGO .FIN 01426000
- .INMDT ANOP 01427000
- AIF (T'&RDONLY NE 'O').BK033 01428000
- IJJCPSVE DC F'0' REGISTER SAVE AREA 3-3 01429000
- .BK033 ANOP 01430000
- IJJSKP DC H'04' CONSTANT 01431000
- DC H'0' 01432000
- B IJJGET 01433000
- AIF (T'&IOPTR NE 'O' OR '&IOAREA2' NE 'YES').WIMDT 01434000
- AIF (T'&RDONLY NE 'O').BK034 01435000
- IJJGET ST IJJCPWRK,IJJCPSVE SAVE WORK REGISTER 3-3 01436000
- AGO .BK035 01437000
- .BK034 ANOP 01438000
- IJJGET ST IJJCPWRK,0(IJJREGSV) SAVE USER REG 3-3 01439000
- .BK035 ANOP 01440000
- IJJLAPOV TM IJJSWITH,IJJOLPFT OVERLAP AND/OR FIRST PASS 01441000
- BO IJJTEST NOT FIRST PASS, BUT OVERLAP 01442000
- OI IJJSWITH,IJJFIRST INDICATE NOT FIRST PASS 01443000
- BAL IJJRTBCK,IJJGETIO GET I/O 01444000
- IJJTEST TM IJJCOMBT,IJJCHEND TEST FOR CHANNEL END 01445000
- BO *+6 01446000
- SVC 7 WAIT 01447000
- TM IJJSTSBT,IJJUNTEX HAS UNIT EXCEPTION OCCURRED 01448000
- BO IJJCPEND YES 3-8 01449000
- ST IJJENDRG,IJJENDSV SAVE USER REGISTER 4-0 01450000
- L IJJENDRG,IJJCPCCW LOAD I/O AREA ADDRESS 3-8 01451000
- LA IJJENDRG,0(IJJENDRG) CLEAR HI ORDER BYTE 3-8 01452000
- CLC 0(3,IJJENDRG),IJJIEOF HAS /* BEEN READ @DA10192 01453000
- L IJJENDRG,IJJENDSV RESTORE USER REGISTER 4-0 01454000
- BNE IJJT2IOA NO, TEST FOR 2 I/O AREAS 3-8 01455000
- AGO .TWIT 01456000
- .WIMDT ANOP 01457000
- AIF (T'&IOPTR EQ 'O').NOVRI 01458000
- AIF (T'&RDONLY NE 'O').BK036 01459000
- IJJGET ST IJJIOPTR,IJJTEMP STORE I/O AREA ADDRESS 3-3 01460000
- MVC IJJCPCCW+1(3),IJJTEMP+1 I/O AREA ADDRESS TO CCW 3-3 01461000
- SVC 0 GET I/O 3-3 01462000
- AGO .NVR2 01463000
- .BK036 ANOP 01464000
- IJJGET ST IJJIOPTR,0(IJJREGSV) SAVE I/O AREA ADDR 3-3 01465000
- MVC IJJCPCCW+1(3),1(IJJREGSV) MOVE I/O AREA ADDR TO CCW 3-3 01466000
- SVC 0 GET I/O 3-3 01467000
- AGO .NVR2 01468000
- .NOVRI ANOP 01469000
- IJJGET SVC 0 EXCP 01470000
- .NVR2 ANOP 01471000
- IJJTEST TM IJJCOMBT,IJJCHEND TEST FOR CHANNEL END 01472000
- BO *+6 01473000
- SVC 7 WAIT 01474000
- TM IJJSTSBT,IJJUNTEX HAS UNIT EXCEPTION OCCURRED 01475000
- BO IJJCPEND YES 3-8 01476000
- ST IJJENDRG,IJJENDSV SAVE USER REGISTER 4-0 01477000
- L IJJENDRG,IJJIOARE LOAD I/O AREA ADDRESS 3-8 01478000
- LA IJJENDRG,0(IJJENDRG) CLEAR HI ORDER BYTE 3-8 01479000
- CLC 0(3,IJJENDRG),IJJIEOF HAS /* BEEN READ @DA10192 01480000
- L IJJENDRG,IJJENDSV RESTORE USER REGISTER 4-0 01481000
- BNE IJJCPEXT NO 3-8 01482000
- IJJCPEND L IJJRTREG,IJJEOFAD PREPARE TO GO TO EOF ADDRESS 01483000
- IJJCPEXT BR IJJRTREG RETURN TO USER 01484000
- AGO .LABINT 01485000
- .TWIT ANOP 01486000
- IJJCPEND L IJJZRO,IJJEOFAD PREPARE TO GO TO EOF ADDRESS 01487000
- B IJJCPEXC BRANCH TO EOF ADDRESS 01488000
- IJJT2IOA TM IJJSWITH,IJJOVLAP 2 I/O AREAS 01489000
- BZ IJJRTRN NO 01490000
- XC IJJALTIO(3),IJJIOARE+1 SWAP I/O AREAS 01491000
- XC IJJIOARE+1(3),IJJALTIO NEW I/O AREA ADDRESS TO CCW 01492000
- EX 0,*-12 COMPLETE THE EXCHANGE 01493000
- BAL IJJRTBCK,IJJGETIO GET I/O 01494000
- IJJRTRN LR IJJZRO,IJJRTREG SAVE RETURN REGISTER 01495000
- L IJJRTREG,IJJALTIO-1 NEXT I/O AREA 01496000
- AIF (T'&RDONLY NE 'O').BK037 01497000
- IJJCPEXC L IJJCPWRK,IJJCPSVE RESTORE WORK REGISTER 3-3 01498000
- AGO .BK038 01499000
- .BK037 ANOP 01500000
- IJJCPEXC L IJJCPWRK,0(IJJREGSV) RESTORE USER REG 3-3 01501000
- .BK038 ANOP 01502000
- EX 0,IJJLOAD LOAD I/O REGISTER WITH NEXT I/O AREA 01503000
- LR IJJRTREG,IJJZRO RESTORE RETURN REGISTER 01504000
- BR IJJRTREG RETURN TO USER 01505000
- IJJGETIO SVC 0 EXCP 01506000
- BR IJJRTBCK RFTURN TO PROPER INSTRUCTION 01507000
- .LABINT ANOP 01508000
- IJJENDSV DC F'0' SAVE AREA TO ENABLE USE OF IJJENDRG 4-0 01509000
- IJJREGSV EQU 13 POINTER TO SAVE AREA 3-3 01510000
- IJJCPBAS EQU 15 PROGRAM BASE REGISTER 01511000
- IJJENDRG EQU 4 3-8 01512000
- IJJIEOF DC C'/* ' @DA10192 01513000
- IJJTABAS EQU 1 BASE REGISTER FOR DTF TABLE 01514000
- IJJCPWRK EQU 2 WORK REGISTER 01515000
- IJJRTBCK EQU 2 BRANCH REGISTER 01516000
- IJJZRO EQU 0 WORK REGISTER 01517000
- IJJRTREG EQU 14 HAS RETURN ADDRESS 01518000
- IJJOLPFT EQU X'30' TEST FOR 2 I/O AREAS AND FIRST PASS 01519000
- IJJFIRST EQU X'10' TURN OFF FIRST PASS BIT 01520000
- IJJCHEND EQU X'80' TEST FOR CHANNEL END 01521000
- IJJUNTEX EQU X'01' TEST FOR UNIT EXCEPTION 01522000
- IJJOVLAP EQU X'20' TEST FOR 2 I/O AREAS 01523000
- AIF (T'&IOPTR EQ 'O').FIN 01524000
- AIF (T'&RDONLY NE 'O').BK039 01525000
- IJJTEMP EQU IJJSKP 3-3 01526000
- .BK039 ANOP 01527000
- IJJIOPTR EQU 0 REGISTER POINTING TO I/O AREA 3-3 01528000
- .FIN ANOP 01529000
- AIF (T'&SEPASMB NE 'O' OR '&RPS' EQ 'SVA').FINIS 01530000
- &SYSECT CSECT 01531000
- .FINIS ANOP 01532000
- MEND 01533000
- /* 01534000
ibm/vm370-lib/macro/cpmod.macro_src.txt ยท Last modified: 2023/08/06 13:38 by Site Administrator