Advertisement
CodenameDuchess

MACRO

Aug 5th, 2014
223
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.12 KB | None | 0 0
  1. //KC03O10M JOB ,'MATTHEW ROWE' ,MSGCLASS=H
  2. //STEP1 EXEC PGM=ASSIST,PARM='MACRO=F'
  3. //STEPLIB DD DSN=KC02293.ASSIST.LOADLIB,DISP=SHR
  4. //SYSPRINT DD SYSOUT=*
  5. //SYSIN DD *
  6. MACRO
  7. &LABEL CALL &NAME,&PL=''
  8. AIF ('&NAME' EQ '').ERROR
  9. AIF ('&PL' EQ '').NOPARM
  10. L 15,=V(&NAME)
  11. LA 1,&PL
  12. BALR 14,15
  13. MEXIT
  14. .ERROR
  15. MNOTE 'NO FUNCTION WAS PASSED, NOW EXITING'
  16. MEXIT
  17. .NOPARM
  18. L 15,=V(&NAME)
  19. BALR 14,15
  20. MEND
  21. *
  22. MACRO
  23. &LABEL ENTER &NAME,&SAVE,&BR=12
  24. AIF ('&NAME' EQ '').ERR1
  25. AIF ('&SAVE' EQ '').ERR2
  26. AIF ('&BR' LT '10').BR1
  27. AIF ('&BR' GT '12').BR2
  28. STM 14,12,12(13) STORE REGISTERS
  29. LR 12,15 ENTRY LINKAGE
  30. USING &NAME,&BR
  31. LA 14,&SAVE LOAD STORAGE AREA
  32. ST 14,8(13) ADDRESS HERE
  33. ST 13,4(14) ADDRESS BACK
  34. LR 13,14
  35. MEXIT
  36. .ERR1
  37. MNOTE 'NO FUNCTION WAS PASSED, NOW EXITING'
  38. MEXIT
  39. .ERR2
  40. MNOTE 'NO SAVE AREA WAS PASSED, NOW EXITING'
  41. MEXIT
  42. .BR1
  43. MNOTE 'BAD CHOICE IN BASE REGISTER, YOU HAVE BEEN WARNED'
  44. STM 14,12,12(13) STORE REGISTERS
  45. LR 12,15 ENTRY LINKAGE
  46. USING &NAME,&BR
  47. LA 14,&SAVE LOAD STORAGE AREA
  48. ST 14,8(13) ADDRESS HERE
  49. ST 13,4(14) ADDRESS BACK
  50. LR 13,14
  51. MEXIT
  52. .BR2
  53. MNOTE 'BAD CHOICE IN BASE REGISTER, YOU HAVE BEEN WARNED'
  54. STM 14,12,12(13) STORE REGISTERS
  55. LR 12,15 ENTRY LINKAGE
  56. USING &NAME,&BR
  57. LA 14,&SAVE LOAD STORAGE AREA
  58. ST 14,8(13) ADDRESS HERE
  59. ST 13,4(14) ADDRESS BACK
  60. LR 13,14
  61. MEND
  62. *
  63. MACRO
  64. &LABEL EXIT &RC=''
  65. AIF ('&RC' GT '4095').BIG
  66. AIF ('&RC' NE '').RET
  67. L 13,4(13)
  68. LM 14,12,12(13) EXIT LINKAGE
  69. BR 14 BRANCH TO MAIN
  70. MEXIT
  71. .BIG
  72. MNOTE 'VALUE FOR RETURN CODE TOO LARGE, NOW EXITING'
  73. MEXIT
  74. .RET
  75. L 15,&RC
  76. L 13,4(0,13)
  77. L 14,12(0,13)
  78. LM 0,12,20(13)
  79. BR 14
  80. MEND
  81. // DD DSN=KC02314.SUMMER14.CSCI360.HW9.DRIVER,DISP=SHR
  82. //FT05F001 DD DUMMY
  83. //FT06F001 DD SYSOUT=*
  84. //
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement