home *** CD-ROM | disk | FTP | other *** search
/ Microsoft Programmer's Library 1.3 / Microsoft-Programers-Library-v1.3.iso / sampcode / dos_ency / section5 / fxn48h.asm < prev    next >
Encoding:
Assembly Source File  |  1988-08-11  |  1.6 KB  |  33 lines

  1.         ;************************************************************;
  2.         ;                                                            ;
  3.         ;         Function 48H: Allocate Memory Block                ;
  4.         ;                                                            ;
  5.         ;         int get_block(nparas,pblocksegp,pmaxparas)         ;
  6.         ;             int nparas,*pblockseg,*pmaxparas;              ;
  7.         ;                                                            ;
  8.         ;         Returns 0 if nparas are allocated OK and           ;
  9.         ;         pblockseg has segment address of block,            ;
  10.         ;         otherwise returns error code with pmaxparas        ;
  11.         ;         set to maximum block size available.               ;
  12.         ;                                                            ;
  13.         ;************************************************************;
  14.  
  15. cProc   get_block,PUBLIC,ds
  16. parmW   nparas
  17. parmDP  pblockseg
  18. parmDP  pmaxparas
  19. cBegin
  20.         mov     bx,nparas       ; Get size request.
  21.         mov     ah,48h          ; Set function code.
  22.         int     21h             ; Ask MS-DOS for memory.
  23.         mov     cx,bx           ; Save BX.
  24.         loadDP  ds,bx,pmaxparas
  25.         mov     [bx],cx         ; Return result, assuming failure.
  26.         jb      gb_err          ; Exit if error, leaving error code
  27.                                 ; in AX.
  28.         loadDP  ds,bx,pblockseg
  29.         mov     [bx],ax         ; No error, so store address of block.
  30.         xor     ax,ax           ; Return 0.
  31. gb_err:
  32. cEnd
  33.