ReC98/libs/master.lib/hmem_lallocate.asm

59 lines
851 B
NASM
Raw Normal View History

2014-08-21 23:19:52 +00:00
; master library
;
; Description:
; ヒープメモリ取得 long版
;
; Functions:
; unsigned hmem_lallocate( unsigned long bytesize ) ;
;
; Returns:
; unsigned (cy=0) 確保したセグメント
; 0(cy=1) 管理メモリ不足
;
; Notes:
; AX以外の全てのレジスタを保存します。
; hmem_lallocate(0)として呼び出すと、メモリ不足を返します。
;
; Running Target:
; MS-DOS
;
; Author:
; 恋塚昭彦
;
; Rebision History:
; 93/ 3/31 Initial
;
func HMEM_LALLOCATE ; hmem_lallocate() {
push BX
mov BX,SP
;
byteh = (RETSIZE+2)*2
bytel = (RETSIZE+1)*2
mov AX,SS:[BX+byteh]
mov BX,SS:[BX+bytel]
add BX,15
adc AX,0
shr AX,1
rcr BX,1
shr AX,1
rcr BX,1
shr AX,1
rcr BX,1
shr AX,1
jnz short @@NOMEM
rcr BX,1
push BX
call HMEM_ALLOC
pop BX
ret 4
@@NOMEM:
mov AX,0
stc
pop BX
ret 4
endfunc ; }