MACRO 00001000 &LABEL FSOPEN &FILEID,&FSCB=,&RECFM=,&BUFFER=,&BSIZE=,&RECNO=,&NOREC=X00002000 ,&ERROR=*+34,&FORM= 00003100 GBLC &DMSNAME,&DMSTYPE,&DMSMODE 00004000 AIF (T'&FORM EQ 'O').NOFORM 00004100 AIF ('&FORM' EQ 'E').FORME 00004200 MNOTE 8,'Error: FSOPEN FORM=&FORM parameter not valid' 00004300 MEXIT 00004400 .FORME ANOP 00004500 MNOTE 4,'Warning: FSOPEN 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 '(').NPID 00013000 &DMSMODE SETC 'A1' 00014000 DMSPID &FILEID 00015000 AIF ('&DMSNAME' EQ ' ' OR '&DMSTYPE' EQ ' ').ERR2 00016000 .NPID 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 .CONT1 00023000 .REG1 AIF ('&FSCB(1)' EQ '1').CONT1 00024000 LR 1,&FSCB(1) 00025000 .CONT1 ANOP 00026000 AIF (T'&FILEID EQ 'O').CONT2 00027000 AIF ('&FILEID'(1,1) EQ '(').REG2 00028000 MVC 8(8,1),=CL8'&DMSNAME' 00029000 MVC 16(8,1),=CL8'&DMSTYPE' 00030000 MVC 24(2,1),=CL2'&DMSMODE' 00031000 AGO .CONT2 00032000 .REG2 ANOP 00033000 MVC 8(18,1),0(&FILEID(1)) 00034000 .CONT2 ANOP 00035000 AIF (T'&RECNO EQ 'O').SKIP1 00036000 AIF ('&RECNO'(1,1) EQ '(').STOR1 00037000 AIF ('&RECNO' GT '65533').ERR10 00038100 MVC 26(2,1),=AL2(&RECNO) 00038200 AGO .SKIP1 00039000 .STOR1 ANOP 00040000 AIF ('&RECNO(1)' EQ '1').ERR4 00041000 STH &RECNO(1),26(,1) 00042000 .SKIP1 AIF (T'&BUFFER EQ 'O').SKIP2 00043000 AIF ('&BUFFER'(1,1) EQ '(').STOR2 00044000 MVC 28(4,1),=A(&BUFFER) 00045000 AGO .SKIP2 00046000 .STOR2 ANOP 00047000 AIF ('&BUFFER(1)' EQ '1').ERR5 00048000 ST &BUFFER(1),28(,1) 00049000 .SKIP2 AIF (T'&BSIZE EQ 'O').SKIP3 00050000 AIF ('&BSIZE'(1,1) EQ '(').STOR3 00051000 MVC 32(4,1),=F'&BSIZE' 00052000 AGO .SKIP3 00053000 .STOR3 ANOP 00054000 AIF ('&BSIZE(1)' EQ '1').ERR6 00055000 ST &BSIZE(1),32(,1) 00056000 .SKIP3 AIF (T'&RECFM EQ 'O').SKIP4 00057000 AIF ('&RECFM'(1,1) EQ '(').STOR4 00058000 AIF ('&RECFM' NE 'F' AND '&RECFM' NE 'V').ERR9 00059000 MVC 36(2,1),=CL2'&RECFM' 00060000 AGO .SKIP4 00061000 .STOR4 ANOP 00062000 AIF ('&RECFM(1)' EQ '1').ERR7 00063000 STC &RECFM(1),36(,1) 00064000 .SKIP4 AIF (T'&NOREC EQ 'O').SKIP5 00065000 AIF ('&NOREC'(1,1) EQ '(').STOR5 00066000 AIF ('&NOREC' GT '65533').ERR11 00067100 MVC 38(2,1),=AL2(&NOREC) 00067200 AGO .SKIP5 00068000 .STOR5 ANOP 00069000 AIF ('&NOREC(1)' EQ '1').ERR8 00070000 STH &NOREC(1),38(,1) 00071000 .SKIP5 ANOP 00072000 MVC 40(4,1),28(1) 00073000 MVC 0(8,1),=CL8'STATE' 00074000 SVC 202 00075000 DC AL4(&ERROR) 00076000 L 15,28(,1) 00077000 MVC 28(4,1),40(1) 00078000 MVC 24(2,1),24(15) 00079000 MVC 32(4,1),32(15) 00080000 MVC 36(1,1),30(15) 00081000 SR 15,15 00082000 MEXIT 00083000 .NOCB ANOP 00084000 CNOP 0,4 00085000 &LABEL BAL 1,DMS&SYSNDX.A 00086000 FSCB &FILEID 00087000 DMS&SYSNDX.A EQU * 00088000 AIF ('&FILEID'(1,1) EQ '(').REG2 00089000 AGO .CONT2 00090000 .ERR1 MNOTE 8,'NEITHER FILEID OF FSCB SPECIFIED' 00091000 MEXIT 00092000 .ERR2 MNOTE 8,'INVALID FILEID SPECIFICATION' 00093000 MEXIT 00094000 .ERR3 MNOTE 8,'REGISTERS 0 AND 1 INVALID FOR FILEID' 00095000 MEXIT 00096000 .ERR4 MNOTE 8,'REGISTER 1 INVALID FOR RECNO' 00097000 MEXIT 00098000 .ERR5 MNOTE 8,'REGISTER 1 INVALID FOR BUFFER' 00099000 MEXIT 00100000 .ERR6 MNOTE 8,'REGISTER 1 INVALID FOR BSIZE' 00101000 MEXIT 00102000 .ERR7 MNOTE 8,'REGISTER 1 INVALID FOR RECFM' 00103000 MEXIT 00104000 .ERR8 MNOTE 8,'REGISTER 1 INVALID FOR NOREC' 00105000 MEXIT 00106000 .ERR9 MNOTE 8,'INVALID RECFM SPECIFICATION' 00107000 MEXIT 00107100 .ERR10 MNOTE 8,'RECNO (&RECNO) EXCEEDS MAX (65533)' 00107200 MEXIT 00107300 .ERR11 MNOTE 8,'NOREC (&NOREC) EXCEEDS MAX (65533)' 00107400 MEND 00108000