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