Posted By: Keson (Keson) on 'CZprogram'
Title: Re: PASCAL, $M a DOS Fn 4Ah + 48h + 49h
Date: Thu Dec 19 17:05:50 1996
Ahoj,
> No ... divil by ses. Existujou divny lidi (treba JA), kteri se v pascalu
> odvazili napsat resident. No a moc rad bych vedel jak BEZ znalosti PSP jde
> odinstalovat program ;-))
:-)))))))))))))))))
Tak k te pameti:
Ja jsem to obvykle resil spis tak, ze jsem pomoci $M nastavil
minimalni pamet pro rozbehnuti a dalsi pamet jsem dle potreby
alokoval /dealokoval pomoci fci 48H / 49H.
**********************************************************************
* AH 48H *
* BX requested amount of memory in paragraphs (16-byte chunks) *
* ----------------------------------------------------------------- *
* AX error code if CF is set to CY *
* BX size of available RAM, in paragraphs (if allocation fails) *
* AX segment address of allocated block (if no error) *
**********************************************************************
* AH 49H *
* ES segment address (paragraph) of allocated memory to release *
* ----------------------------------------------------------------- *
* AX error code if CF is set to CY *
**********************************************************************
A k odinstalovani napriklad:
PROCEDURE Uninstall; Far;
VAR P,Q,R : Pointer;
BEGIN
GetIntVec(8,P);
GetIntVec(9,Q);
If (P = @NewInt8) And (Q = @NewInt9) Then Begin
SetIntVec(8,@OldInt8);
SetIntVec(9,@OldInt9);
Asm
mov AH,49h
mov ES,PrefixSeg
int 21h
End;
End;
END; {Uninstall}
Keson