home *** CD-ROM | disk | FTP | other *** search
/ ftp.wwiv.com / ftp.wwiv.com.zip / ftp.wwiv.com / pub / PPPBCKP / SRC / SRC20A01.ZIP / WATTSRC.ZIP / ELIB / MACROS.HSM < prev    next >
Text File  |  1992-02-24  |  2KB  |  152 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.         PUSH    SI
  47.         PUSH    DI
  48.         endm
  49.  
  50. cproc   macro   WARG1
  51. public  _&WARG1&
  52. if      FUNC_L
  53. _&WARG1&    PROC    FAR
  54. else
  55. _&WARG1&    PROC    NEAR
  56. endif
  57.         endm
  58.  
  59. cendp   macro   WARG1
  60. _&WARG1&    ENDP
  61.         endm
  62.  
  63. creturn macro   WARG1
  64.         POP     DI
  65.         POP     SI
  66.         MOV     SP,BP
  67.         POP     BP
  68. if      FUNC_L
  69.         RET
  70. else
  71.         RET
  72. endif
  73. _&WARG1&    ENDP
  74.         endm
  75.  
  76. cstart  macro   WARG1,WARG2
  77. if      FUNC_L
  78. &WARG1&_TEXT    SEGMENT WARG2
  79. else
  80. _TEXT       SEGMENT WARG2
  81. endif
  82.         endm
  83.  
  84. cend     macro   WARG1
  85. if      FUNC_L
  86. &WARG1&_TEXT        ENDS
  87. else
  88. _TEXT   ENDS
  89. endif
  90.         endm
  91.  
  92. codedef macro   WARG1,WARG2
  93. if      FUNC_L
  94. &WARG1&_TEXT    SEGMENT BYTE WARG2 PUBLIC 'CODE'
  95. &WARG1&_TEXT    ENDS
  96.         ASSUME  CS: &WARG1&_TEXT
  97. else
  98. _TEXT   SEGMENT BYTE WARG2 PUBLIC 'CODE'
  99. _TEXT   ENDS
  100.         ASSUME  CS: _TEXT
  101. endif
  102.         endm
  103.  
  104. datadef macro WARG1
  105. _DATA   SEGMENT  WORD WARG1 PUBLIC 'DATA'
  106. _DATA   ENDS
  107. _BSS    SEGMENT  WORD WARG1 PUBLIC 'BSS'
  108. _BSS    ENDS
  109.  
  110. DGROUP  GROUP   _BSS,   _DATA
  111.         ASSUME  DS: DGROUP, SS: DGROUP, ES: DGROUP
  112.         endm
  113.  
  114. bssstart    macro WARG1
  115. _BSS    SEGMENT WARG1
  116.         endm
  117.  
  118. bssend  macro
  119. _BSS    ENDS
  120.         endm
  121. farbssstart    macro
  122. FAR_BSS SEGMENT
  123.         endm
  124.  
  125. farbssend  macro
  126. FAR_BSS ENDS
  127.         endm
  128.  
  129. fardatastart    macro
  130. FAR_DATA SEGMENT
  131.         endm
  132.  
  133. fardataend  macro
  134. FAR_DATA ENDS
  135.         endm
  136.  
  137. datastart    macro WARG1
  138. _DATA SEGMENT WARG1
  139.         endm
  140.  
  141. dataend  macro
  142. _DATA ENDS
  143.         endm
  144.  
  145. conststart    macro WARG1
  146.         endm
  147.  
  148. constend  macro
  149.         endm
  150.  
  151.  
  152.