home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-386-Vol-2of3.iso / b / bootp.zip / MACROS.HSM < prev    next >
Text File  |  1989-09-19  |  2KB  |  151 lines

  1.  
  2. IF      FUNC_L
  3. @AB     EQU     6
  4. @ab     EQU     6
  5. ELSE
  6. @AB     EQU     4
  7. @ab     EQU     4
  8. ENDIF
  9.  
  10. if      FUNC_L
  11. %OUT    <Far Functions>
  12. else
  13. %OUT    <Near Functions>
  14. endif
  15. if      PTR_L
  16. %OUT    <Far Pointers>
  17. else
  18. %OUT    <Near Pointers>
  19. endif
  20.  
  21. cextrn  macro   WARG1
  22. if      FUNC_L
  23. EXTRN   _&WARG1&:FAR
  24. else
  25. EXTRN   _&WARG1&:NEAR
  26. endif
  27.         endm
  28.  
  29. ccall   macro   WARG1
  30. if      FUNC_L
  31.         CALL    FAR PTR _&WARG1&
  32. else
  33.         CALL    _&WARG1&
  34. endif
  35.         endm
  36.  
  37. cpublic macro   WARG1
  38. public  _&WARG1&
  39. if      FUNC_L
  40. _&WARG1&    PROC    FAR
  41. else
  42. _&WARG1&    PROC    NEAR
  43. endif
  44.         PUSH    BP
  45.         MOV     BP,SP
  46.         endm
  47.  
  48. cproc   macro   WARG1
  49. public  _&WARG1&
  50. if      FUNC_L
  51. _&WARG1&    PROC    FAR
  52. else
  53. _&WARG1&    PROC    NEAR
  54. endif
  55.         endm
  56.  
  57. cendp   macro   WARG1
  58. _&WARG1&    ENDP
  59.         endm
  60.  
  61. creturn macro   WARG1
  62.         MOV     SP,BP
  63.         POP     BP
  64. if      FUNC_L
  65.         RET
  66. else
  67.         RET
  68. endif
  69. _&WARG1&    ENDP
  70.         endm
  71.  
  72. cstart  macro   WARG1,WARG2
  73. if      FUNC_L
  74. &WARG1&_TEXT    SEGMENT WARG2
  75. else
  76. _TEXT       SEGMENT WARG2
  77. endif
  78.         endm
  79.  
  80. cend     macro   WARG1
  81. if      FUNC_L
  82. &WARG1&_TEXT        ENDS
  83. else
  84. _TEXT   ENDS
  85. endif
  86.         endm
  87.  
  88. codedef macro   WARG1,WARG2
  89. if      FUNC_L
  90. &WARG1&_TEXT    SEGMENT BYTE WARG2 PUBLIC 'CODE'
  91. &WARG1&_TEXT    ENDS
  92.         ASSUME  CS: &WARG1&_TEXT
  93. else
  94. _TEXT   SEGMENT BYTE WARG2 PUBLIC 'CODE'
  95. _TEXT   ENDS
  96.         ASSUME  CS: _TEXT
  97. endif
  98.         endm
  99.  
  100. datadef macro WARG1
  101. _DATA   SEGMENT  WORD WARG1 PUBLIC 'DATA'
  102. _DATA   ENDS
  103. CONST   SEGMENT  WORD WARG1 PUBLIC 'CONST'
  104. CONST   ENDS
  105. _BSS    SEGMENT  WORD WARG1 PUBLIC 'BSS'
  106. _BSS    ENDS
  107. DGROUP  GROUP   CONST,  _BSS,   _DATA
  108.         ASSUME  DS: DGROUP, SS: DGROUP, ES: DGROUP
  109.         endm
  110.  
  111. bssstart    macro WARG1
  112. _BSS    SEGMENT WARG1
  113.         endm
  114.  
  115. bssend  macro
  116. _BSS    ENDS
  117.         endm
  118. farbssstart    macro
  119. FAR_BSS SEGMENT
  120.         endm
  121.  
  122. farbssend  macro
  123. FAR_BSS ENDS
  124.         endm
  125.  
  126. fardatastart    macro
  127. FAR_DATA SEGMENT
  128.         endm
  129.  
  130. fardataend  macro
  131. FAR_DATA ENDS
  132.         endm
  133.  
  134. datastart    macro WARG1
  135. _DATA SEGMENT WARG1
  136.         endm
  137.  
  138. dataend  macro
  139. _DATA ENDS
  140.         endm
  141.  
  142. conststart    macro WARG1
  143. CONST   SEGMENT WARG1
  144.         endm
  145.  
  146. constend  macro
  147. CONST   ENDS
  148.         endm
  149.  
  150.  
  151.