Table of Contents

FSREAD Source

References

Source Listing

FSREAD.MACRO.txt
  1. MACRO 00001000
  2. &LABEL FSREAD &FILEID,&FSCB=,&RECFM=,&BUFFER=,&BSIZE=,&RECNO=,&NOREC=X00002000
  3. ,&ERROR=*+4,&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: FSREAD FORM=&FORM parameter not valid' 00004300
  8. MEXIT 00004400
  9. .FORME ANOP 00004500
  10. MNOTE 4,'Warning: FSREAD 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 '(').CONT1 00013000
  21. &DMSMODE SETC 'A1' 00014000
  22. DMSPID &FILEID 00015000
  23. AIF ('&DMSNAME' EQ ' ' OR '&DMSTYPE' EQ ' ').ERR2 00016000
  24. .CONT1 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 .CONT2 00023000
  31. .REG1 AIF ('&FSCB(1)' EQ '1').CONT2 00024000
  32. LR 1,&FSCB(1) 00025000
  33. .CONT2 AIF (T'&FILEID EQ 'O').CONT3 00026000
  34. AIF ('&FILEID'(1,1) EQ '(').REG2 00027000
  35. MVC 8(8,1),=CL8'&DMSNAME' 00028000
  36. MVC 16(8,1),=CL8'&DMSTYPE' 00029000
  37. MVC 24(2,1),=CL2'&DMSMODE' 00030000
  38. AGO .CONT3 00031000
  39. .REG2 ANOP 00032000
  40. MVC 8(18,1),0(&FILEID(1)) 00033000
  41. .CONT3 AIF (T'&RECNO EQ 'O').SKIP1 00034000
  42. AIF ('&RECNO'(1,1) EQ '(').STOR1 00035000
  43. AIF ('&RECNO' GT '65533').ERR12 00036100
  44. MVC 26(2,1),=AL2(&RECNO) 00036200
  45. AGO .SKIP1 00037000
  46. .STOR1 ANOP 00038000
  47. AIF ('&RECNO(1)' EQ '1').ERR4 00039000
  48. STH &RECNO(1),26(,1) 00040000
  49. .SKIP1 AIF (T'&BUFFER EQ 'O').SKIP2 00041000
  50. AIF ('&BUFFER'(1,1) EQ '(').STOR2 00042000
  51. MVC 28(4,1),=A(&BUFFER) 00043000
  52. AGO .SKIP2 00044000
  53. .STOR2 ANOP 00045000
  54. AIF ('&BUFFER(1)' EQ '1').ERR5 00046000
  55. ST &BUFFER(1),28(,1) 00047000
  56. .SKIP2 AIF (T'&BSIZE EQ 'O').SKIP3 00048000
  57. AIF ('&BSIZE'(1,1) EQ '(').STOR3 00049000
  58. MVC 32(4,1),=F'&BSIZE' 00050000
  59. AGO .SKIP3 00051000
  60. .STOR3 ANOP 00052000
  61. AIF ('&BSIZE(1)' EQ '1').ERR6 00053000
  62. ST &BSIZE(1),32(,1) 00054000
  63. .SKIP3 AIF (T'&RECFM EQ 'O').SKIP4 00055000
  64. AIF ('&RECFM'(1,1) EQ '(').STOR4 00056000
  65. AIF ('&RECFM' NE 'F' AND '&RECFM' NE 'V').ERR11 00057000
  66. MVC 36(2,1),=CL2'&RECFM' 00058000
  67. AGO .SKIP4 00059000
  68. .STOR4 ANOP 00060000
  69. AIF ('&RECFM(1)' EQ '1').ERR7 00061000
  70. STC &RECFM(1),36(,1) 00062000
  71. .SKIP4 AIF (T'&NOREC EQ 'O').SKIP5 00063000
  72. AIF ('&NOREC'(1,1) EQ '(').STOR5 00064000
  73. AIF ('&NOREC' GT '65533').ERR13 00065100
  74. MVC 38(2,1),=AL2(&NOREC) 00065200
  75. AGO .SKIP5 00066000
  76. .STOR5 ANOP 00067000
  77. AIF ('&NOREC(1)' EQ '1').ERR8 00068000
  78. STH &NOREC(1),38(,1) 00069000
  79. .SKIP5 ANOP 00070000
  80. MVC 0(8,1),=CL8'RDBUF' 00071000
  81. SVC 202 00072000
  82. DC AL4(&ERROR) 00073000
  83. L 0,40(,1) 00074000
  84. MEXIT 00075000
  85. .NOCB ANOP 00076000
  86. AIF (T'&BUFFER EQ 'O').ERR9 00077000
  87. AIF (T'&BSIZE EQ 'O').ERR10 00078000
  88. CNOP 0,4 00079000
  89. &LABEL BAL 1,DMS&SYSNDX.A 00080000
  90. FSCB &FILEID 00081000
  91. DMS&SYSNDX.A EQU * 00082000
  92. AIF ('&FILEID'(1,1) EQ '(').REG2 00083000
  93. AGO .CONT3 00084000
  94. .ERR1 MNOTE 8,'NEITHER FILEID OR FSCB SPECIFIED' 00085000
  95. MEXIT 00086000
  96. .ERR2 MNOTE 8,'INVALID FILEID SPECIFICATION' 00087000
  97. MEXIT 00088000
  98. .ERR3 MNOTE 8,'REGISTERS 0 AND 1 INVALID FOR FILEID' 00089000
  99. MEXIT 00090000
  100. .ERR4 MNOTE 8,'REGISTER 1 INVALID FOR RECNO' 00091000
  101. MEXIT 00092000
  102. .ERR5 MNOTE 8,'REGISTER 1 INVALID FOR BUFFER' 00093000
  103. MEXIT 00094000
  104. .ERR6 MNOTE 8,'REGISTER 1 INVALID FOR BSIZE' 00095000
  105. MEXIT 00096000
  106. .ERR7 MNOTE 8,'REGISTER 1 INVALID FOR RECFM' 00097000
  107. MEXIT 00098000
  108. .ERR8 MNOTE 8,'REGISTER 1 INVALID FOR NOREC' 00099000
  109. MEXIT 00100000
  110. .ERR9 MNOTE 8,'BUFFER ADDRESS NOT SPECIFIED' 00101000
  111. MEXIT 00102000
  112. .ERR10 MNOTE 8,'BUFFER SIZE NOT SPECIFIED' 00103000
  113. MEXIT 00104000
  114. .ERR11 MNOTE 8,'INVALID RECFM SPECIFICATION' 00105000
  115. MEXIT 00105100
  116. .ERR12 MNOTE 8,'RECNO (&RECNO) EXCEEDS MAX (65533)' 00105200
  117. MEXIT 00105300
  118. .ERR13 MNOTE 8,'NOREC (&NOREC) EXCEEDS MAX (65533)' 00105400
  119. MEND 00106000