home *** CD-ROM | disk | FTP | other *** search
- .286p
- ifndef ??version
- ?debug macro
- endm
- publicdll macro name
- public name
- endm
- $comm macro name,dist,size,count
- comm dist name:BYTE:count*size
- endm
- else
- $comm macro name,dist,size,count
- comm dist name[size]:BYTE:count
- endm
- endif
- ?debug V 301h
- ?debug S "xmalloc.c"
- ?debug C E95CAA331509786D616C6C6F632E63
- ?debug C E90020821B17433A5C4243345C494E434C5544455C7374646C6962+
- ?debug C 2E68
- ?debug C E90020821B16433A5C4243345C494E434C5544455C5F646566732E+
- ?debug C 68
- ?debug C E90020821B16433A5C4243345C494E434C5544455C5F6E756C6C2E+
- ?debug C 68
- ?debug C E958AA33150A2E5C676E756C69622E68
- XMALLOC_TEXT segment word public 'CODE'
- XMALLOC_TEXT ends
- DGROUP group _DATA,_BSS
- assume cs:XMALLOC_TEXT,ds:DGROUP
- _DATA segment word public 'DATA'
- d@ label byte
- d@w label word
- _DATA ends
- _BSS segment word public 'BSS'
- b@ label byte
- b@w label word
- _BSS ends
- XMALLOC_TEXT segment word public 'CODE'
- ?debug C E80109786D616C6C6F632E635CAA3315
- ;
- ; xmalloc (size_t bytes)
- ;
- ?debug L 27
- assume cs:XMALLOC_TEXT,ds:DGROUP
- _xmalloc proc far
- ?debug B
- mov ax,ds
- nop
- inc bp
- push bp
- mov bp,sp
- push ds
- mov ds,ax
- sub sp,4
- ?debug C E60562797465730A0A06000000
- ?debug B
- ;
- ; {
- ; void *ptr = (void *) malloc (bytes);
- ;
- ?debug L 29
- push word ptr [bp+6]
- call far ptr _malloc
- pop cx
- mov word ptr [bp-4],dx
- mov word ptr [bp-6],ax
- ;
- ;
- ; if (ptr == NULL)
- ;
- ?debug L 31
- mov ax,word ptr [bp-6]
- or ax,word ptr [bp-4]
- jne short @1@86
- ;
- ; error (2, 0, "Out of memory!");
- ;
- ?debug L 32
- push ds
- push offset DGROUP:s@
- push 0
- push 2
- call far ptr _error
- add sp,8
- @1@86:
- ;
- ;
- ; return ptr;
- ;
- ?debug L 34
- mov dx,word ptr [bp-4]
- mov ax,word ptr [bp-6]
- jmp short @1@114
- @1@114:
- ;
- ; }
- ;
- ?debug L 35
- pop cx
- pop cx
- pop ds
- pop bp
- dec bp
- ret
- ?debug C E318000400160100
- ?debug C E6037074721802FAFF00000562797465730A0A06+
- ?debug C 000000
- ?debug E
- ?debug E
- _xmalloc endp
- ?debug C E9
- ?debug C FA00000000
- XMALLOC_TEXT ends
- _DATA segment word public 'DATA'
- s@ label byte
- db 'Out of memory!'
- db 0
- _DATA ends
- XMALLOC_TEXT segment word public 'CODE'
- XMALLOC_TEXT ends
- _s@ equ s@
- extrn _malloc:far
- public _xmalloc
- extrn _error:far
- ?debug C EA010C
- ?debug C E31900000023180400
- ?debug C EB075F6D616C6C6F63190000
- ?debug C E31A00000023180400
- ?debug C EC085F786D616C6C6F631A180000
- ?debug C E31B00000023010401
- ?debug C EB065F6572726F721B0000
- ?debug C E60673697A655F740A0600000777636861725F74+
- ?debug C 0A060000
- end