MACRO 00001000 &LABEL FSREAD &FILEID,&FSCB=,&RECFM=,&BUFFER=,&BSIZE=,&RECNO=,&NOREC=X00002000 ,&ERROR=*+4,&FORM= 00003100 GBLC &DMSNAME,&DMSTYPE,&DMSMODE 00004000 AIF (T'&FORM EQ 'O').NOFORM 00004100 AIF ('&FORM' EQ 'E').FORME 00004200 MNOTE 8,'Error: FSREAD FORM=&FORM parameter not valid' 00004300 MEXIT 00004400 .FORME ANOP 00004500 MNOTE 4,'Warning: FSREAD FORM=E accepted but not implemented' 00004600 .NOFORM ANOP 00004700 AIF (T'&FILEID EQ 'O' AND T'&FSCB EQ 'O').ERR1 00005000 AIF (T'&FILEID EQ 'O').NOID 00006000 AIF ('&FILEID'(1,1) NE '''' AND '&FILEID'(1,1) NE '(').ERR2 00007000 AIF ('&FILEID'(1,1) EQ '(' AND '&FILEID(1)' EQ '0').ERR3 00008000 AIF ('&FILEID'(1,1) EQ '(' AND '&FILEID(1)' EQ '1').ERR3 00009000 &DMSNAME SETC ' ' 00010000 &DMSTYPE SETC ' ' 00011000 &DMSMODE SETC ' ' 00012000 AIF ('&FILEID'(1,1) EQ '(').CONT1 00013000 &DMSMODE SETC 'A1' 00014000 DMSPID &FILEID 00015000 AIF ('&DMSNAME' EQ ' ' OR '&DMSTYPE' EQ ' ').ERR2 00016000 .CONT1 AIF (T'&FSCB EQ 'O').NOCB 00017000 .NOID AIF (T'&LABEL EQ 'O').NLBL 00018000 &LABEL DS 0H 00019000 .NLBL ANOP 00020000 AIF ('&FSCB'(1,1) EQ '(').REG1 00021000 LA 1,&FSCB 00022000 AGO .CONT2 00023000 .REG1 AIF ('&FSCB(1)' EQ '1').CONT2 00024000 LR 1,&FSCB(1) 00025000 .CONT2 AIF (T'&FILEID EQ 'O').CONT3 00026000 AIF ('&FILEID'(1,1) EQ '(').REG2 00027000 MVC 8(8,1),=CL8'&DMSNAME' 00028000 MVC 16(8,1),=CL8'&DMSTYPE' 00029000 MVC 24(2,1),=CL2'&DMSMODE' 00030000 AGO .CONT3 00031000 .REG2 ANOP 00032000 MVC 8(18,1),0(&FILEID(1)) 00033000 .CONT3 AIF (T'&RECNO EQ 'O').SKIP1 00034000 AIF ('&RECNO'(1,1) EQ '(').STOR1 00035000 AIF ('&RECNO' GT '65533').ERR12 00036100 MVC 26(2,1),=AL2(&RECNO) 00036200 AGO .SKIP1 00037000 .STOR1 ANOP 00038000 AIF ('&RECNO(1)' EQ '1').ERR4 00039000 STH &RECNO(1),26(,1) 00040000 .SKIP1 AIF (T'&BUFFER EQ 'O').SKIP2 00041000 AIF ('&BUFFER'(1,1) EQ '(').STOR2 00042000 MVC 28(4,1),=A(&BUFFER) 00043000 AGO .SKIP2 00044000 .STOR2 ANOP 00045000 AIF ('&BUFFER(1)' EQ '1').ERR5 00046000 ST &BUFFER(1),28(,1) 00047000 .SKIP2 AIF (T'&BSIZE EQ 'O').SKIP3 00048000 AIF ('&BSIZE'(1,1) EQ '(').STOR3 00049000 MVC 32(4,1),=F'&BSIZE' 00050000 AGO .SKIP3 00051000 .STOR3 ANOP 00052000 AIF ('&BSIZE(1)' EQ '1').ERR6 00053000 ST &BSIZE(1),32(,1) 00054000 .SKIP3 AIF (T'&RECFM EQ 'O').SKIP4 00055000 AIF ('&RECFM'(1,1) EQ '(').STOR4 00056000 AIF ('&RECFM' NE 'F' AND '&RECFM' NE 'V').ERR11 00057000 MVC 36(2,1),=CL2'&RECFM' 00058000 AGO .SKIP4 00059000 .STOR4 ANOP 00060000 AIF ('&RECFM(1)' EQ '1').ERR7 00061000 STC &RECFM(1),36(,1) 00062000 .SKIP4 AIF (T'&NOREC EQ 'O').SKIP5 00063000 AIF ('&NOREC'(1,1) EQ '(').STOR5 00064000 AIF ('&NOREC' GT '65533').ERR13 00065100 MVC 38(2,1),=AL2(&NOREC) 00065200 AGO .SKIP5 00066000 .STOR5 ANOP 00067000 AIF ('&NOREC(1)' EQ '1').ERR8 00068000 STH &NOREC(1),38(,1) 00069000 .SKIP5 ANOP 00070000 MVC 0(8,1),=CL8'RDBUF' 00071000 SVC 202 00072000 DC AL4(&ERROR) 00073000 L 0,40(,1) 00074000 MEXIT 00075000 .NOCB ANOP 00076000 AIF (T'&BUFFER EQ 'O').ERR9 00077000 AIF (T'&BSIZE EQ 'O').ERR10 00078000 CNOP 0,4 00079000 &LABEL BAL 1,DMS&SYSNDX.A 00080000 FSCB &FILEID 00081000 DMS&SYSNDX.A EQU * 00082000 AIF ('&FILEID'(1,1) EQ '(').REG2 00083000 AGO .CONT3 00084000 .ERR1 MNOTE 8,'NEITHER FILEID OR FSCB SPECIFIED' 00085000 MEXIT 00086000 .ERR2 MNOTE 8,'INVALID FILEID SPECIFICATION' 00087000 MEXIT 00088000 .ERR3 MNOTE 8,'REGISTERS 0 AND 1 INVALID FOR FILEID' 00089000 MEXIT 00090000 .ERR4 MNOTE 8,'REGISTER 1 INVALID FOR RECNO' 00091000 MEXIT 00092000 .ERR5 MNOTE 8,'REGISTER 1 INVALID FOR BUFFER' 00093000 MEXIT 00094000 .ERR6 MNOTE 8,'REGISTER 1 INVALID FOR BSIZE' 00095000 MEXIT 00096000 .ERR7 MNOTE 8,'REGISTER 1 INVALID FOR RECFM' 00097000 MEXIT 00098000 .ERR8 MNOTE 8,'REGISTER 1 INVALID FOR NOREC' 00099000 MEXIT 00100000 .ERR9 MNOTE 8,'BUFFER ADDRESS NOT SPECIFIED' 00101000 MEXIT 00102000 .ERR10 MNOTE 8,'BUFFER SIZE NOT SPECIFIED' 00103000 MEXIT 00104000 .ERR11 MNOTE 8,'INVALID RECFM SPECIFICATION' 00105000 MEXIT 00105100 .ERR12 MNOTE 8,'RECNO (&RECNO) EXCEEDS MAX (65533)' 00105200 MEXIT 00105300 .ERR13 MNOTE 8,'NOREC (&NOREC) EXCEEDS MAX (65533)' 00105400 MEND 00106000