Table of Contents

DMSFRT Source

References

Source Listing

DMSFRT.MACRO.txt
  1. MACRO 00001000
  2. DMSFRT &CSECT 00002000
  3. PUSH PRINT 00002200
  4. AIF ('&SYSPARM' NE 'SUP').ACC01 00002400
  5. PRINT OFF,NOGEN 00002600
  6. .ACC01 ANOP 00002800
  7. AIF ('&CSECT' NE 'CSECT' AND '&CSECT' NE 'TEST').D 00003000
  8. .C ANOP 00004000
  9. ENTRY DMSFRT 00005000
  10. DMSFRT DS 0D 00006000
  11. AIF ('&CSECT' EQ 'CSECT').CE 00007000
  12. FRDSECT EQU * 00008000
  13. AGO .CE 00009000
  14. .D ANOP 00010000
  15. FRDSECT DSECT 00011000
  16. .CE ANOP 00012000
  17. SPACE 00013000
  18. * THE FOLLOWING ARE THE FOUR FREE CHAIN ELEMENT HEADER BLOCKS 00014000
  19. FREELN DC 3F'0',AL1(FLNU+FLPA,NUCKEY,NUCCODE,0) LOWCORE NUCLEUS 00015000
  20. FREELU DC 3F'0',AL1(0,USERKEY,USERCODE,0) LOWCORE USER CHAIN 00016000
  21. FREEHN DC 3F'0',AL1(FLNU+FLHC,NUCKEY,NUCCODE,0) HIGHCORE NUCLEUS 00017000
  22. FREEHU DC 3F'0',AL1(FLHC,USERKEY,USERCODE,0) HIGHCORE USER CHAIN 00018000
  23. SPACE 00019000
  24. * THE FOLLOWING SYMBOLIC EQUATES DESCRIBE THE FORMAT OF EACH OF THE 00020000
  25. * FOUR FREE CHAIN ELEMENT HEADER BLOCKS. 00021000
  26. POINTER EQU 0 POINT TO FIRST FREE ELEMENT 00022000
  27. NUM EQU 4 NUMBER OF ELEMENTS IN CHAIN 00023000
  28. MAX EQU 8 MAXIMUM SIZE OF AN ELEMENT 00024000
  29. FLAGS EQU 12 FLAG BYTE 00025000
  30. SKEY EQU 13 STORAGE KEY FOR THIS CHAIN 00026000
  31. TCODE EQU 14 FREETAB TABLE CODE 00027000
  32. *UNUSED EQU 15 00028000
  33. BLOCKLEN EQU 16 SYMBOLIC LENGTH OF BLOCK 00029000
  34. SPACE 00030000
  35. * DEFINITIONS FOR THE 'FLAGS' FLAG BYTE 00031000
  36. FLCLN EQU X'80' CLEAN-UP FLAG 00032000
  37. FLCLB EQU X'40' CLOBBERED CHAIN FLAG 00033000
  38. FLHC EQU X'20' HIGH-CORE FLAG 00034000
  39. FLNU EQU X'10' NUCLEUS FLAG 00035000
  40. FLPA EQU X'08' PAGE AVAILABLE ON CHAIN 00036000
  41. SPACE 00037000
  42. * DEFINITIONS FOR 'SKEY' STORAGE KEY VALUES 00038000
  43. USERKEY EQU X'E0' USER STORAGE KEY 00039000
  44. NUCKEY EQU X'F0' NUCLEUS STORAGE KEY 00040000
  45. SPACE 00041000
  46. * DEFINITIONS FOR 'TCODE' FREETAB TABLE CODE VALUES 00042000
  47. USERCODE EQU 1 USER FREE STORAGE PAGE 00043000
  48. NUCCODE EQU 2 NUCLEUS FREE STORAGE PAGE 00044000
  49. TRNCODE EQU 3 TRANSIENT AREA PAGE 00045000
  50. USARCODE EQU 4 USER AREA PAGE 00046000
  51. SYSCODE EQU 5 SYSTEM PAGE 00047000
  52. MAXCODE EQU 5 MAXIMUM POSSIBLE CODE VALUE 00048000
  53. SPACE 3 00049000
  54. AFREETAB DC A(0) ADDRESS OF FREETAB TABLE 00050000
  55. FREELOW1 DS F ORIGINAL VALUE OF FREELOWE *00051000
  56. (SET BY INIT2) 00052000
  57. ACALL DS A ADDRESS OF CALLER (FOR ERRORS) 00053000
  58. SPACE 2 00054000
  59. * FLAGS SET BY EXAMINIG SVC 203 HALFWORD CODE 00055000
  60. FREEFLG1 DC BL1'0' 00056000
  61. FRF1C EQU X'80' CONDITIONAL REQUEST 00057000
  62. FRF1V EQU X'40' VARIABLE REQUEST 00058000
  63. FRF1N EQU X'20' NUCLEUS REQUEST 00059000
  64. FRF1E EQU X'10' FREE (VS FRET) REQUEST 00060000
  65. FRF1L EQU X'08' LOW-CORE IS OK 00061000
  66. FRF1H EQU X'04' HIGH-CORE IS OK 00062000
  67. FRF1M EQU X'02' MESSAGES WANTED ON ERROR 00063000
  68. FRF1B EQU X'01' 'TYPCALL' EQUALS 'BALR' IN MACRO 00064000
  69. SPACE 00065000
  70. * THE FOLLOWING BYTE HOLDS FLAGS INTERNAL TO THE DMSFRE ROUTINE. 00066000
  71. FREEFLG2 DC BL1'0' 00067000
  72. FRF2CL EQU X'80' CLEANUP FLAG 00068000
  73. FRF2SVP EQU X'40' SCHVPGE FLAG 00069000
  74. FRF2NOI EQU X'20' 2ND INITIALIZATION ROUTINE HAS *00070000
  75. NOT YET BEEN CALLED BY DMSINS 00071000
  76. FRF2CKE EQU X'10' DO A 'CHECK' EQCH TIME FREE *00072000
  77. OR FRET IS CALLED 00073000
  78. FRF2CKT EQU X'08' DO A CHECK THIS TI ME 00074000
  79. FRF2CKX EQU X'04' EXECUTING 'CHECK' ROUTINE NOW 00075000
  80. SPACE 4 00076000
  81. * FREE CHAIN ELEMENT DESCRIPTION. 00077000
  82. *POINTER EQU 0 POINTER TO NEXT FREE ELEMENT 00078000
  83. SIZE EQU 4 SIZE OF THIS ELEMENT IN BYTES 00079000
  84. EJECT 00080000
  85. POP PRINT 00080100
  86. MEND 00081000