home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Overload
/
ShartewareOverload.cdr
/
database
/
trl14db.zip
/
TRLSRC.EXE
/
_TR_FREE.ASM
< prev
next >
Wrap
Assembly Source File
|
1990-10-22
|
2KB
|
57 lines
; _TR_FREE.ASM
;
; by Ralph Davis
; modified by Rick Spence
;
; Placed in the public domain by Tom Rettig Associates, 10/22/1990.
;
; TR-LIB low-level memory allocator for C functions
;
; Syntax: int _tr_freemem(cpntr);
; char *cpntr;
; Return: 0 if successful, -1 if not.
; Note : cpntr MUST be pointer returned by _tr_allocmem().
;
PUBLIC _TR_FREEMEM
; Structure for passed parameters
IN_PARMS STRUC
OLD_BP DW ? ; caller's BP
DD ? ; caller's return address
PTR_OFFSET DW ? ; offset address of pointer
PTR_SEGMNT DW ? ; segment address of pointer
IN_PARMS ENDS
;*********************************************
CODESEG SEGMENT BYTE PUBLIC
ASSUME CS:CODESEG
;---------------------------------------------
_TR_FREEMEM PROC FAR
PUSH BP ; save caller's BP
MOV BP,SP ; set up stack addressability
PUSH DS
PUSH ES
MOV AX,[BP].PTR_SEGMNT ; pick up pointer
MOV ES,AX
MOV AH,49H ; free the memory
INT 21H
JNC GOOD_EXIT
XOR AX,AX ; return -1
DEC AX
JMP SHORT EXIT
GOOD_EXIT:
XOR AX,AX ; return 0
EXIT: POP ES
POP DS
POP BP
RET
_TR_FREEMEM ENDP
;----------------------------------------
CODESEG ENDS
;****************************************
END