home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1993 #2
/
Image.iso
/
clipper
/
52capi.zip
/
EXTENDA.MAC
< prev
next >
Wrap
Text File
|
1993-02-15
|
4KB
|
187 lines
;
; Filename: EXTENDA.MAC
; Program.: Clipper Extended Library
; Author..: Ralph Davis
; Date....: June 1, 1986
; Notice..: Placed in the public domain by Tom Rettig Associates.
; Clipper is a registered trademark of Computer Associates
; International, Inc.
; Notes...: Assembly language macros for Clipper interface
; Modified for use with Microsoft Macro Assembler.
;
EXTRN __PARINFO:FAR
EXTRN __PARC:FAR
EXTRN __PARNI:FAR
EXTRN __PARNL:FAR
EXTRN __PARND:FAR
EXTRN __PARDS:FAR
EXTRN __PARL:FAR
EXTRN __RETC:FAR
EXTRN __RETNI:FAR
EXTRN __RETNL:FAR
EXTRN __RETND:FAR
EXTRN __RETDS:FAR
EXTRN __RETL:FAR
; Equates from EXTEND.H
UNDEF EQU 0
CHARACTER EQU 1
NUMERIC EQU 2
LOGICAL EQU 4
DATE EQU 8
ALIAS EQU 16
; get number of parms passed--returned in AX
GET_PCOUNT MACRO
XOR AX,AX
PUSH AX
CALL __PARINFO
ADD SP,2
ENDM
; get type of requested parm--returned in AX
GET_PTYPE MACRO N
MOV AX,N
PUSH AX
CALL __PARINFO
ADD SP,2
ENDM
; get requested parm as string--returns segment and offset in AX:BX
GET_CHAR MACRO N
MOV AX,N
PUSH AX
CALL __PARC
ADD SP,2
ENDM
; get requested parm as integer--returned in AX
GET_INT MACRO N
MOV AX,N
PUSH AX
CALL __PARNI
ADD SP,2
ENDM
; get requested parm as long integer--returned in AX:BX
GET_LONG MACRO N
MOV AX,N
PUSH AX
CALL __PARNL
ADD SP,2
ENDM
; get requested parm as double--returned in AX:BX:CX:DX
GET_DBL MACRO N
MOV AX,N
PUSH AX
CALL __PARND
ADD SP,2
MOV ES,DX
MOV SI,AX
MOV AX,ES:[SI]
MOV BX,ES:[SI + 2]
MOV CX,ES:[SI + 4]
MOV DX,ES:[SI + 6]
ENDM
; get requested parm as date string--returns segment and offset as AX:BX
GET_DATESTR MACRO N
MOV AX,N
PUSH AX
CALL __PARDS
ADD SP,2
ENDM
; get requested parm as logical true or false--returned in AX
GET_LOGICAL MACRO N
MOV AX,N
PUSH AX
CALL __PARL
ADD SP,2
ENDM
; return char pointer in REG1:REG2
RET_CHAR MACRO REG1,REG2
IRP X,<REG1,REG2>
PUSH X
ENDM
CALL __RETC
ADD SP,4
ENDM
; return integer in REG1
RET_INT MACRO REG1
PUSH REG1
CALL __RETNI
ADD SP,2
ENDM
; return long integer in REG1:REG2
RET_LONG MACRO REG1,REG2
IRP X,<REG1,REG2>
PUSH X
ENDM
CALL __RETNL
ADD SP,4
ENDM
; return 8-byte floating-point number in REG1:REG2:REG3:REG4
RET_DBL MACRO REG1,REG2,REG3,REG4
IRP X,<REG1,REG2,REG3,REG4>
PUSH X
ENDM
CALL __RETND
ADD SP,8
ENDM
; return date string pointed to by REG1:REG2
RET_DATESTR MACRO REG1,REG2 ; return pointer to date string
; in REG1:REG2
IRP X,<REG1,REG2>
PUSH X
ENDM
CALL __RETDS
ADD SP,4
ENDM
; return logical true (1) or false (0) in REG1
RET_LOGICAL MACRO REG1 ; return 1 or 0 in REG1
PUSH REG1
CALL __RETL
ADD SP,2
ENDM
; EOF: EXTENDA.MAC