home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a013 / 1.ddi / SOURCE.EXE / DEVELOP.MAC < prev    next >
Encoding:
Text File  |  1991-01-25  |  5.9 KB  |  158 lines

  1. ; ***************************************************************
  2. ; DEVELOP.MAC
  3. ; ***************************************************************
  4. ;
  5. ; Assembly language macros for the Developer's Library.
  6. ;
  7. ; Copyright(c) 1991 -- James Occhiogrosso
  8. ;
  9. ;
  10. ; To use this file, include it by placing the directive
  11. ;
  12. ;     INCLUDE DEVELOP.MAC
  13. ;
  14. ; at the top of your assembly language source file.
  15. ;
  16. ;
  17. ;
  18. ; ---------------------------------------------------------------
  19. PUSH_REGS MACRO    ; Save Clipper stack/return address
  20. ; ---------------------------------------------------------------
  21.          PUSH      BP
  22.          MOV       BP,SP
  23.          PUSH      DS
  24.          PUSH      ES
  25.          PUSH      SI
  26.          PUSH      DI
  27. ENDM
  28.  
  29.  
  30. ; ---------------------------------------------------------------
  31. POP_REGS MACRO     ; Restore Clipper stack/return address
  32. ; ---------------------------------------------------------------
  33.          POP       DI
  34.          POP       SI
  35.          POP       ES
  36.          POP       DS
  37.          POP       BP
  38. ENDM
  39.  
  40.  
  41. ; ---------------------------------------------------------------
  42. RET_LOGIC MACRO    ; Returns a logic value
  43. ; ---------------------------------------------------------------
  44.          PUSH      AX        ; Put return value on stack
  45.          CALL      __RETL    ; Call - return logic function
  46.          ADD       SP, 2     ; Clean up stack
  47.          RET                 ; Actual return
  48. ENDM
  49.  
  50.  
  51. ; ---------------------------------------------------------------
  52. RET_LONG MACRO     ; Returns a LONG integer value
  53. ; ---------------------------------------------------------------
  54.          PUSH      DX        ; Put return value on stack
  55.          PUSH      AX        ; as DX:AX (32 bit) long number
  56.          CALL      __RETNL   ; Call - return long number function
  57.          ADD       SP, 4     ; Clean up stack
  58.          RET                 ; Actual return
  59. ENDM
  60.  
  61.  
  62. ; ---------------------------------------------------------------
  63. RET_NONE MACRO     ; Returns to Clipper with no value passed
  64. ; ---------------------------------------------------------------
  65.          CALL       __RET    ; Call - return nothing function
  66.          RET                 ; Actual return
  67. ENDM
  68.  
  69. ; ---------------------------------------------------------------
  70. RET_INT  MACRO     ; Returns a numeric integer
  71. ; ---------------------------------------------------------------
  72.          PUSH      AX        ; Place value on stack
  73.          CALL      __RETNI   ; Call - return integer function
  74.          ADD       SP,2      ; Clean up stack
  75.          RET
  76. ENDM
  77.  
  78.  
  79. ; ---------------------------------------------------------------
  80. RET_DATE MACRO REG1, REG2   ; Returns a date string
  81. ; ---------------------------------------------------------------
  82.          PUSH      REG1      ; Place segment address on stack
  83.          PUSH      REG2      ; Place offset address on stack
  84.          CALL      __RETDS   ; Call - return date function
  85.          ADD       SP,4      ; Clean up stack
  86.          RET
  87. ENDM
  88.  
  89.  
  90. ; ---------------------------------------------------------------
  91. RET_STRING MACRO REG1, REG2  ; Returns a character string
  92. ; ---------------------------------------------------------------
  93.          PUSH      REG1      ; Place segment address on stack
  94.          PUSH      REG2      ; Place offset address on stack
  95.          CALL      __RETC    ; Call - return character function
  96.          ADD       SP,4      ; Clean up stack
  97.          RET
  98. ENDM
  99.  
  100. ; ---------------------------------------------------------------
  101. P_COUNT MACRO      ; Returns number of passed parameters in AX
  102. ; ---------------------------------------------------------------
  103.          MOV AX, 0           ; Request number of parameters
  104.          PUSH AX             ; Place value on stack
  105.          CALL __PARINFO      ; Call - parameter info function
  106.          ADD SP, 2           ; Clean up stack
  107. ENDM
  108.  
  109.  
  110. ; ---------------------------------------------------------------
  111. P_TYPE MACRO par_num     ; Get value for parameter type to AX
  112. ; ---------------------------------------------------------------
  113.          MOV AX, par_num     ; Request info on parameter
  114.          PUSH AX             ; Place value on stack
  115.          CALL __PARINFO      ; Return it in AX
  116.          ADD SP, 2           ; Clean up stack
  117. ENDM
  118.  
  119.  
  120. ; ---------------------------------------------------------------
  121. GET_PARNI MACRO par_num  ; Place numeric integer parameter in AX
  122. ; ---------------------------------------------------------------
  123.          MOV AX, par_num     ; Parameter number
  124.          PUSH AX             ; Place value on stack
  125.          CALL __PARNI        ; Return its value in AX
  126.          ADD SP, 2           ; Clean up stack
  127. ENDM
  128.  
  129.  
  130. ; ---------------------------------------------------------------
  131. GET_PARL MACRO par_num   ; Place logical value in AX (1 or 0)
  132. ; ---------------------------------------------------------------
  133.          MOV AX, par_num     ; Parameter number
  134.          PUSH AX             ; Place value on stack
  135.          CALL __PARL         ; Return its value in AX
  136.          ADD SP, 2           ; Clean up stack
  137. ENDM
  138.  
  139.  
  140. ; ---------------------------------------------------------------
  141. GET_PARC MACRO par_num   ; Place string pointer in DX:AX
  142. ; ---------------------------------------------------------------
  143.          MOV AX, par_num     ; Parameter number
  144.          PUSH AX             ; Place value on stack
  145.          CALL __PARC         ; Return pointer in DX:AX
  146.          ADD SP, 2           ; Clean up stack
  147. ENDM
  148.  
  149.  
  150. ; ---------------------------------------------------------------
  151. GET_PARDS MACRO par_num  ; Place date pointer in DX:AX (YYYYMMDD)
  152. ; ---------------------------------------------------------------
  153.          MOV AX, par_num     ; Parameter number
  154.          PUSH AX             ; Place value on stack
  155.          CALL __PARDS        ; Return pointer in DX:AX
  156.          ADD SP, 2           ; Clean up stack
  157. ENDM
  158.