www.pudn.com > tp60src.zip > TDINFO2.INC


l073a	proc	near 
	cmp	si,es:[28h] 
	jb	@@1 
	jmp	l0751 
@@1:	ret 
l073a	endp 
 
l0745	proc	near 
	cmp	si,es:[28h] 
	jae	@@1 
	jmp	l0751 
@@1:	stc 
	ret 
l0745	endp 
 
l0751	proc	near 
	push	cx si di es 
	lea	bx,TypeSwitch 
	call	ChooseType 
	jnz	@@2 
	cmp	d3caa,0 
	jne	@@1 
	call	word ptr cs:[bx+3] 
	jmp	short @@2 
@@1:	mov	CurName.Offs,si 
	mov	CurName.Segm,es 
	mov	CurSymbol.Offs,di 
	mov	CurSymbol.Segm,es 
	call	word ptr cs:[bx+1] 
	jc	@@2 
	les	si,CurName 
	call	StoreName 
@@2:	pop	es di si cx 
	ret 
l0751	endp 
 
ProcessConst	proc	near 
	mov	d3ce8.B0,5 
	mov	bx,es:[di+2] 
	mov	di,es:[di] 
	mov	es,es:[bx] 
	mov	CurType.Offs,di 
	mov	CurType.Segm,es 
	mov	al,es:[di] 
	les	si,CurSymbol 
	add	si,4 
	cmp	al,7 
	je	@@5 
	cmp	al,9 
	jne	@@1 
	mov	al,es:[si] 
	xor	ah,ah 
	inc	ax 
	jmp	short @@2 
@@1:	cmp	al,10 
	jne	@@3 
	mov	ax,10 
@@2:	mov	d3cdc,ax 
	mov	d3cde.Offs,si 
	mov	d3cde.Segm,es 
	mov	ax,Cnt.DataCount 
	mov	d3cd8.W0,ax 
	mov	d3cd8.W2,0 
	jmp	short @@4 
@@3:	mov	d3cdc,0 
	mov	ax,es:[si] 
	mov	d3cd8.W0,ax 
	mov	ax,es:[si+2] 
	mov	d3cd8.W2,ax 
@@4:	call	l101e 
	call	StoreData 
	clc 
	ret 
@@5:	stc 
	ret 
ProcessConst	endp 
 
ProcessType	proc	near 
	mov	d3ce8.B0,6 
	mov	bx,es:[di+2] 
	mov	di,es:[di] 
	mov	es,es:[bx] 
	mov	CurType.Offs,di 
	mov	CurType.Segm,es 
	xor	ax,ax 
	mov	d3cd8.W0,ax 
	mov	d3cd8.W2,ax 
	call	l0b84 
	cmp	Phase,100h 
	jne	@@1 
	call	l082c 
@@1:	call	l101e 
	clc 
	ret 
ProcessType	endp 
 
l082c	proc	near 
	push	es di 
	mov	cx,es:[di+4] 
	and	cx,7fffh 
	call	StartBuf 
	mov	di,d3cb8 
	mov	ax,8 
	cwd 
	dec	cx 
	mul	cx 
	add	di,ax 
	mov	ax,Cnt.NameCount 
	mov	es:[di+1],ax 
	pop	di es 
	mov	cl,es:[di] 
	cmp	cl,3 
	jne	@@1 
	mov	es:[di+1ch],ax 
@@1:	ret 
l082c	endp 
 
ProcessVar	proc	near 
@@1:	mov	al,es:[di].vsFlags 
	test	al,vfAlias 
	jz	@@2 
	mov	bx,es:[di].vsLink.Segm 
	mov	di,es:[di].vsLink.Offs 
	mov	es,es:[bx] 
	jmp	ProcessVar 
@@2:	cmp	al,vfConst 
	ja	@@4 
	mov	bx,es:uhDataMap 
	jne	@@3 
	mov	bx,es:uhConstMap 
@@3:	add	bx,es:[di].vsMap 
	cmp	es:[bx].smAddr,-1 
	je	@@5 
@@4:	call	l0b1d 
	les	di,CurSymbol 
	mov	bx,es:[di].vsType.Segm 
	mov	di,es:[di].vsType.Offs 
	mov	es,es:[bx] 
	mov	CurType.Offs,di 
	mov	CurType.Segm,es 
	call	l0b84 
	call	l101e 
	clc 
	ret 
@@5:	stc 
	ret 
ProcessVar	endp 
 
ProcessProc	proc	near 
	mov	al,es:[di] 
	test	al,2 
	jnz	@@3 
	mov	bx,es:[di+2] 
	add	bx,es:[0ch] 
	mov	ah,es:[bx+2] 
	test	ah,4 
	jz	@@4 
	cmp	word ptr es:[bx],0 
	je	@@3 
	mov	cx,8000h 
	test	ah,8 
	jnz	@@1 
	or	cx,4000h 
	or	cx,es:[bx+6] 
@@1:	mov	d3cd8.W2,cx 
	mov	si,es:[bx+4] 
	add	si,es:[14h] 
	mov	ax,es:[si] 
	mov	cx,Cnt.NameCount 
	or	ax,ax 
	jz	@@2 
	mov	d3cd8.W0,ax 
	cmp	ax,cx 
	jb	@@5 
@@2:	mov	d3cd8.W0,cx 
	mov	es:[si],cx 
	add	si,1 
	call	StoreName 
	jmp	short @@5 
@@3:	stc 
	ret 
@@4:	mov	dx,es:[bx+6] 
	mov	bx,es:[bx+4] 
	add	bx,es:[0eh] 
	mov	cx,es:[bx] 
	cmp	cx,-1 
	je	@@3 
	add	cx,dx 
	mov	d3cd8.W0,cx 
	mov	cx,es:[2ch] 
	mov	d3cd8.W2,cx 
@@5:	xor	cl,cl 
	test	ah,2 
	jz	@@6 
	add	cl,20h 
@@6:	test	al,88h 
	jnz	@@7 
	or	cl,8 
@@7:	add	cl,10h 
	test	al,4 
	jz	@@8 
	add	cl,80h 
@@8:	mov	d3ce8.B0,cl 
	call	l0a5d 
	call	l1057 
	clc 
	ret 
ProcessProc	endp 
 
l0958	dw	2 
	dw	130h,l02a1-3 
	dw	138h,l02aa-3 
 
l0962	proc	near 
	test	d3caa,8101h 
	jz	@@2 
	mov	d3ce8.B0,0 
	lea	si,l0958 
	segcs	lodsw 
	mov	cx,ax 
@@1:	segcs	lodsw 
	mov	bx,ax 
	add	bx,es:[0ch] 
	mov	dx,es:[bx+6] 
	mov	bx,es:[bx+4] 
	add	bx,es:[0eh] 
	mov	ax,es:[bx] 
	cmp	ax,-1 
	je	@@2 
	add	ax,dx 
	mov	d3cd8.W0,ax 
	mov	ax,es:[2ch] 
	mov	d3cd8.W2,ax 
	push	cx es 
	call	l10ac 
	push	cs 
	pop	es 
	segcs	lodsw 
	push	si 
	mov	si,ax 
	call	StoreName 
	pop	si es cx 
	loop	@@1 
	call	StoreFuncType 
@@2:	ret 
l0962	endp 
 
l09b8	proc	near 
	cmp	d3caa,0 
	jne	@@1 
	ret 
@@1:	push	si bx di es 
	mov	si,es:[si].trSymbol 
	mov	di,si 
	call	SkipName 
	mov	CurName.Offs,di 
	mov	CurName.Segm,es 
	mov	CurSymbol.Offs,si 
	mov	CurSymbol.Segm,es 
	mov	d3cec,0 
	test	es:[si].psFlags,pfMethod 
	jz	@@2 
	inc	d3cec 
@@2:	mov	bx,es:[si].psType.ptResult.Segm 
	mov	cx,bx 
	mov	di,es:[si].psType.ptResult.Offs 
	or	cx,di 
	jz	@@6 
	mov	es,es:[bx] 
	mov	CurType.Offs,di 
	mov	CurType.Segm,es 
	cmp	Phase,1 
	jne	@@5 
	cmp	es:[di].tdType,ttString 
	jne	@@3 
	mov	d3ce8.B0,3 
	les	di,CurSymbol 
	call	GetProcStackSize 
	mov	ax,dx 
	jmp	short @@4 
@@3:	mov	d3ce8.B0,2 
	mov	ax,es:[di].tdSizeOf 
	neg	ax 
	les	di,CurSymbol 
	mov	bx,es:[di].psProcMap 
	add	bx,es:uhProcMap 
	test	byte ptr es:[bx].pmFlags,2 
	jz	@@4 
	sub	ax,2 
@@4:	mov	d3cd8.W0,ax 
	mov	d3cd8.W2,0 
@@5:	call	l101e 
	les	si,CurName 
	call	StoreName 
@@6:	pop	es di bx si 
	ret 
l09b8	endp 
 
l0a5d	proc	near 
	test	d3caa,100h 
	jnz	@@1 
	ret 
@@1:	mov	al,es:[di] 
	mov	bx,es:[0ch] 
	add	bx,es:[di+2] 
	mov	ah,es:[bx+2] 
	test	al,4 
	jz	@@2 
	mov	cl,7 
	jmp	short @@3 
@@2:	mov	cl,1 
	test	al,1 
	jz	@@3 
	mov	cl,5 
@@3:	cmp	word ptr es:[di+4],0 
	je	@@4 
	or	cl,40h 
@@4:	test	ah,20h 
	jz	@@5 
	or	cl,80h 
@@5:	mov	ah,cl 
	mov	bx,es:[di+12h] 
	mov	cx,bx 
	mov	di,es:[di+10h] 
	or	cx,di 
	jz	@@6 
	mov	es,es:[bx] 
	mov	bx,es:[di+4] 
	and	bx,7fffh 
	les	di,CurSymbol 
	test	al,10h 
	jnz	@@7 
	mov	al,23h 
	mov	dx,4 
	call	l1118 
	jmp	short @@11 
@@6:	les	di,CurSymbol 
	test	al,10h 
	jz	@@8 
	mov	bx,1 
@@7:	mov	al,2dh 
	and	ah,7 
	mov	dx,4 
	call	l1118 
	les	bx,CurSymbol 
	call	l0729 
	mov	cx,es:[bx] 
	les	di,CurSymbol 
	mov	bx,es:[di+8] 
	mov	di,es:[di+4] 
	mov	ax,es:[di+4] 
	and	ax,7fffh 
	mov	dx,1000h 
	call	StoreType 
	jmp	short @@11 
@@8:	mov	ax,1ch 
	cmp	word ptr es:[di+4],0 
	jne	@@9 
	inc	ax 
	inc	ax 
@@9:	test	byte ptr es:[di],1 
	jz	@@10 
	inc	ax 
@@10:	mov	bx,di 
	call	l0729 
	mov	es:[bx+2],ax 
@@11:	ret 
l0a5d	endp 
 
l0b1d	proc	near 
	test	d3caa,1 
	jz	@@2 
	push	bx 
	lea	bx,l028c 
	and	al,0dfh 
	segcs	xlat 
	mov	d3ce8.B0,al 
	lea	bx,l0293 
	mov	d3cee,al 
	call	ChooseType 
	mov	ax,es:[di+1] 
	call	word ptr cs:[bx+1] 
	pop	bx 
	cmp	d3cee,0 
	jnz	@@1 
	add	ax,es:[bx] 
@@1:	mov	d3cd8.W0,ax 
	mov	d3cd8.W2,dx 
@@2:	ret 
l0b1d	endp 
 
l0b54	proc	near 
	mov	dx,DataStart 
	ret 
l0b54	endp 
 
l0b59	proc	near 
	xor	dx,dx 
	test	byte ptr es:[di],20h 
	jz	@@1 
	or	d3ce8.B0,8 
@@1:	ret 
l0b59	endp 
 
l0b67	proc	near 
	mov	dx,es:[di+3] 
	ret 
l0b67	endp 
 
l0b6c	proc	near 
	xor	dx,dx 
	test	d3cec,1 
	jz	@@1 
	cmp	ax,6 
	je	@@2 
@@1:	or	d3ce8.B0,8 
	inc	d3ced 
@@2:	ret 
l0b6c	endp