Table of Contents

FSOPEN Source

References

Source Listing

FSOPEN.MACRO.txt
  1. MACRO 00001000
  2. &LABEL FSOPEN &FILEID,&FSCB=,&RECFM=,&BUFFER=,&BSIZE=,&RECNO=,&NOREC=X00002000
  3. ,&ERROR=*+34,&FORM= 00003100
  4. GBLC &DMSNAME,&DMSTYPE,&DMSMODE 00004000
  5. AIF (T'&FORM EQ 'O').NOFORM 00004100
  6. AIF ('&FORM' EQ 'E').FORME 00004200
  7. MNOTE 8,'Error: FSOPEN FORM=&FORM parameter not valid' 00004300
  8. MEXIT 00004400
  9. .FORME ANOP 00004500
  10. MNOTE 4,'Warning: FSOPEN FORM=E accepted but not implemented' 00004600
  11. .NOFORM ANOP 00004700
  12. AIF (T'&FILEID EQ 'O' AND T'&FSCB EQ 'O').ERR1 00005000
  13. AIF (T'&FILEID EQ 'O').NOID 00006000
  14. AIF ('&FILEID'(1,1) NE '''' AND '&FILEID'(1,1) NE '(').ERR2 00007000
  15. AIF ('&FILEID'(1,1) EQ '(' AND '&FILEID(1)' EQ '0').ERR3 00008000
  16. AIF ('&FILEID'(1,1) EQ '(' AND '&FILEID(1)' EQ '1').ERR3 00009000
  17. &DMSNAME SETC ' ' 00010000
  18. &DMSTYPE SETC ' ' 00011000
  19. &DMSMODE SETC ' ' 00012000
  20. AIF ('&FILEID'(1,1) EQ '(').NPID 00013000
  21. &DMSMODE SETC 'A1' 00014000
  22. DMSPID &FILEID 00015000
  23. AIF ('&DMSNAME' EQ ' ' OR '&DMSTYPE' EQ ' ').ERR2 00016000
  24. .NPID AIF (T'&FSCB EQ 'O').NOCB 00017000
  25. .NOID AIF (T'&LABEL EQ 'O').NLBL 00018000
  26. &LABEL DS 0H 00019000
  27. .NLBL ANOP 00020000
  28. AIF ('&FSCB'(1,1) EQ '(').REG1 00021000
  29. LA 1,&FSCB 00022000
  30. AGO .CONT1 00023000
  31. .REG1 AIF ('&FSCB(1)' EQ '1').CONT1 00024000
  32. LR 1,&FSCB(1) 00025000
  33. .CONT1 ANOP 00026000
  34. AIF (T'&FILEID EQ 'O').CONT2 00027000
  35. AIF ('&FILEID'(1,1) EQ '(').REG2 00028000
  36. MVC 8(8,1),=CL8'&DMSNAME' 00029000
  37. MVC 16(8,1),=CL8'&DMSTYPE' 00030000
  38. MVC 24(2,1),=CL2'&DMSMODE' 00031000
  39. AGO .CONT2 00032000
  40. .REG2 ANOP 00033000
  41. MVC 8(18,1),0(&FILEID(1)) 00034000
  42. .CONT2 ANOP 00035000
  43. AIF (T'&RECNO EQ 'O').SKIP1 00036000
  44. AIF ('&RECNO'(1,1) EQ '(').STOR1 00037000
  45. AIF ('&RECNO' GT '65533').ERR10 00038100
  46. MVC 26(2,1),=AL2(&RECNO) 00038200
  47. AGO .SKIP1 00039000
  48. .STOR1 ANOP 00040000
  49. AIF ('&RECNO(1)' EQ '1').ERR4 00041000
  50. STH &RECNO(1),26(,1) 00042000
  51. .SKIP1 AIF (T'&BUFFER EQ 'O').SKIP2 00043000
  52. AIF ('&BUFFER'(1,1) EQ '(').STOR2 00044000
  53. MVC 28(4,1),=A(&BUFFER) 00045000
  54. AGO .SKIP2 00046000
  55. .STOR2 ANOP 00047000
  56. AIF ('&BUFFER(1)' EQ '1').ERR5 00048000
  57. ST &BUFFER(1),28(,1) 00049000
  58. .SKIP2 AIF (T'&BSIZE EQ 'O').SKIP3 00050000
  59. AIF ('&BSIZE'(1,1) EQ '(').STOR3 00051000
  60. MVC 32(4,1),=F'&BSIZE' 00052000
  61. AGO .SKIP3 00053000
  62. .STOR3 ANOP 00054000
  63. AIF ('&BSIZE(1)' EQ '1').ERR6 00055000
  64. ST &BSIZE(1),32(,1) 00056000
  65. .SKIP3 AIF (T'&RECFM EQ 'O').SKIP4 00057000
  66. AIF ('&RECFM'(1,1) EQ '(').STOR4 00058000
  67. AIF ('&RECFM' NE 'F' AND '&RECFM' NE 'V').ERR9 00059000
  68. MVC 36(2,1),=CL2'&RECFM' 00060000
  69. AGO .SKIP4 00061000
  70. .STOR4 ANOP 00062000
  71. AIF ('&RECFM(1)' EQ '1').ERR7 00063000
  72. STC &RECFM(1),36(,1) 00064000
  73. .SKIP4 AIF (T'&NOREC EQ 'O').SKIP5 00065000
  74. AIF ('&NOREC'(1,1) EQ '(').STOR5 00066000
  75. AIF ('&NOREC' GT '65533').ERR11 00067100
  76. MVC 38(2,1),=AL2(&NOREC) 00067200
  77. AGO .SKIP5 00068000
  78. .STOR5 ANOP 00069000
  79. AIF ('&NOREC(1)' EQ '1').ERR8 00070000
  80. STH &NOREC(1),38(,1) 00071000
  81. .SKIP5 ANOP 00072000
  82. MVC 40(4,1),28(1) 00073000
  83. MVC 0(8,1),=CL8'STATE' 00074000
  84. SVC 202 00075000
  85. DC AL4(&ERROR) 00076000
  86. L 15,28(,1) 00077000
  87. MVC 28(4,1),40(1) 00078000
  88. MVC 24(2,1),24(15) 00079000
  89. MVC 32(4,1),32(15) 00080000
  90. MVC 36(1,1),30(15) 00081000
  91. SR 15,15 00082000
  92. MEXIT 00083000
  93. .NOCB ANOP 00084000
  94. CNOP 0,4 00085000
  95. &LABEL BAL 1,DMS&SYSNDX.A 00086000
  96. FSCB &FILEID 00087000
  97. DMS&SYSNDX.A EQU * 00088000
  98. AIF ('&FILEID'(1,1) EQ '(').REG2 00089000
  99. AGO .CONT2 00090000
  100. .ERR1 MNOTE 8,'NEITHER FILEID OF FSCB SPECIFIED' 00091000
  101. MEXIT 00092000
  102. .ERR2 MNOTE 8,'INVALID FILEID SPECIFICATION' 00093000
  103. MEXIT 00094000
  104. .ERR3 MNOTE 8,'REGISTERS 0 AND 1 INVALID FOR FILEID' 00095000
  105. MEXIT 00096000
  106. .ERR4 MNOTE 8,'REGISTER 1 INVALID FOR RECNO' 00097000
  107. MEXIT 00098000
  108. .ERR5 MNOTE 8,'REGISTER 1 INVALID FOR BUFFER' 00099000
  109. MEXIT 00100000
  110. .ERR6 MNOTE 8,'REGISTER 1 INVALID FOR BSIZE' 00101000
  111. MEXIT 00102000
  112. .ERR7 MNOTE 8,'REGISTER 1 INVALID FOR RECFM' 00103000
  113. MEXIT 00104000
  114. .ERR8 MNOTE 8,'REGISTER 1 INVALID FOR NOREC' 00105000
  115. MEXIT 00106000
  116. .ERR9 MNOTE 8,'INVALID RECFM SPECIFICATION' 00107000
  117. MEXIT 00107100
  118. .ERR10 MNOTE 8,'RECNO (&RECNO) EXCEEDS MAX (65533)' 00107200
  119. MEXIT 00107300
  120. .ERR11 MNOTE 8,'NOREC (&NOREC) EXCEEDS MAX (65533)' 00107400
  121. MEND 00108000