Table of Contents

RDTAPE Source

References

Source Listing

RDTAPE.MACRO.txt
  1. MACRO 00001000
  2. &LABEL RDTAPE &BUFFER,&LENGTH,&ADDR,&MODE=,&ERROR=*+4 00002000
  3. GBLC &DMSMODE 00003000
  4. LCLC &BUF,&LEN,&TAPE 00004000
  5. LCLA &LENCNT 00004500
  6. CNOP 0,4 00005000
  7. &LABEL DS 0H 00006000
  8. AIF (T'&BUFFER EQ 'O').ERR1 00007000
  9. AIF (T'&LENGTH EQ 'O').ERR2 00008000
  10. &BUF SETC '&BUFFER' 00009000
  11. AIF ('&BUFFER'(1,1) NE '(').SKIP1 00010000
  12. &BUF SETC '0' 00011000
  13. STCM &BUFFER(1),7,DMS&SYSNDX.A+1 00012000
  14. .SKIP1 ANOP 00013000
  15. &LEN SETC '&LENGTH' 00014000
  16. AIF ('&LENGTH'(1,1) NE '(').SKIP2 00015000
  17. &LEN SETC '0' 00016000
  18. ST &LENGTH(1),DMS&SYSNDX.B 00017000
  19. AGO .SKIP2A @VA02030 00017500
  20. .SKIP2 ANOP 00018000
  21. &LENCNT SETA &LENGTH 00018100
  22. AIF (&LENCNT LT 65536).SKIP2A 00018200
  23. &LEN SETC '65535' 00018300
  24. MNOTE 4,'LENGTH PARAMETER SET TO 65535' 00018400
  25. .SKIP2A ANOP 00018500
  26. &TAPE SETC 'TAP1' 00019000
  27. AIF (T'&ADDR EQ 'O').NOAD 00020000
  28. AIF ('&ADDR'(1,3) NE 'TAP').NTAP 00021000
  29. AIF (K'&ADDR NE 4).ERR3 00022000
  30. AIF ('&ADDR'(4,1) LT '1' OR '&ADDR'(4,1) GT '4').ERR3 00023000
  31. &TAPE SETC '&ADDR' 00024000
  32. AGO .NOAD 00025000
  33. .NTAP ANOP 00026000
  34. AIF (K'&ADDR NE 3).ERR3 00027000
  35. &TAPE SETC '0&ADDR' 00028000
  36. .NOAD ANOP 00029000
  37. &DMSMODE SETC '0' 00030000
  38. AIF (T'&MODE(1) NE 'O').YESMS @VA05521 00030300
  39. AIF (T'&MODE(2) NE 'O').YESMS @VA05521 00030600
  40. AIF (T'&MODE(3) NE 'O').YESMS @VA05521 00030900
  41. AGO .NOMS @VA05521 00031200
  42. .YESMS ANOP 00031500
  43. DMSTMS &MODE(1),&MODE(2),&MODE(3) 00032000
  44. .NOMS ANOP 00033000
  45. BAL 1,DMS&SYSNDX.D 00034000
  46. DC CL8'TAPEIO' 00035000
  47. DC CL8'READ' 00036000
  48. DC CL4'&TAPE' 00037000
  49. DMS&SYSNDX.A DC BL1'&DMSMODE',AL3(&BUF) 00038000
  50. DMS&SYSNDX.B DC F'&LEN' 00039000
  51. DMS&SYSNDX.C DC F'0' 00040000
  52. DMS&SYSNDX.D SVC 202 00041000
  53. DC AL4(&ERROR) 00042000
  54. L 0,DMS&SYSNDX.C 00043000
  55. MEXIT 00044000
  56. .ERR1 MNOTE 8,'BUFFER ADDRESS NOT SPECIFIED' 00045000
  57. MEXIT 00046000
  58. .ERR2 MNOTE 8,'LENGTH PARAMETER NOT SPECIFIED' 00047000
  59. MEXIT 00048000
  60. .ERR3 MNOTE 8,'INVALID DEVICE ADDRESS SPECIFIED' 00049000
  61. MEND 00050000