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


l101e	proc	near 
	test	d3caa,1 
	jz	@@2 
	cmp	Phase,1 
	jne	@@1 
	les	di,CurType 
	mov	cx,es:[di].tdNext 
	and	cx,7fffh 
	mov	ax,Cnt.NameCount 
	call	StartBuf 
	stosw 
	mov	ax,cx 
	stosw 
	mov	ax,d3cd8.Offs 
	stosw 
	mov	ax,d3cd8.Segm 
	stosw 
	mov	al,d3ce8.B0 
	stosb 
	call	StopBuf 
@@1:	inc	Cnt.SymbolCount 
@@2:	ret 
l101e	endp 
 
l1057	proc	near 
	test	d3caa,1 
	jz	@@4 
	les	bx,CurSymbol 
	cmp	Phase,0 
	jne	@@1 
	call	l0729 
	mov	ax,Cnt.SymbolCount 
	mov	es:[bx],ax 
	jmp	short @@3 
@@1:	cmp	Phase,1 
	jne	@@3 
	call	l0729 
	mov	ax,Cnt.NameCount 
	mov	es:[bx+4],ax 
	mov	ax,bx 
	mov	cx,es:[bx+2] 
	or	d3ce8.B0,20h 
@@2:	call	StartBuf 
	stosw 
	mov	ax,cx 
	stosw 
	mov	ax,d3cd8.Offs 
	stosw 
	mov	ax,d3cd8.Segm 
	stosw 
	mov	al,d3ce8.B0 
	stosb 
	call	StopBuf 
@@3:	inc	Cnt.SymbolCount 
@@4:	ret 
l10ac  	label	near 
	test	d3caa,1 
	jz	@@4 
	cmp	Phase,1 
	jne	@@3 
	mov	ax,Cnt.NameCount 
	mov	cx,Cnt.TypeCount 
	jmp	@@2 
l1057	endp 
 
StoreData	proc	near 
	test	d3caa,4000h 
	jz	@@2 
	mov	cx,d3cdc 
	jcxz	@@2 
	cmp	Phase,4000h 
	jne	@@1 
	call	StartBuf 
	push	ds 
	lds	si,d3cde 
	rep	movsb 
	pop	ds 
	call	StopBuf 
	mov	cx,d3cdc 
@@1:	add	Cnt.DataCount,cx 
@@2:	ret 
StoreData	endp 
 
l10f1	proc	near 
	test	d3caa,100h 
	jz	@@2 
	cmp	Phase,100h 
	jnz	@@1 
	call	l1169 
@@1:	mov	ax,es:[di+4] 
	and	ax,8000h 
	or	ax,Cnt.TypeCount 
	mov	es:[di+4],ax 
	inc	Cnt.TypeCount 
@@2:	ret 
l10f1	endp 
 
l1118	proc	near 
	test	d3caa,100h 
	jz	@@2 
	cmp	Phase,100h 
	jne	@@1 
	call	l1169 
@@1:	mov	ax,Cnt.TypeCount 
	push	es bx 
	mov	bx,di 
	call	l0729 
	mov	es:[bx+2],ax 
	pop	bx es 
	inc	Cnt.TypeCount 
@@2:	ret 
l1118	endp 
 
StoreFuncType	proc	near 
	test	d3caa,100h 
	jz	@@2 
	cmp	Phase,100h 
	jne	@@1 
	push	es ds 
	call	StartBuf 
	lea	si,l02b3 
	push	cs 
	pop	ds 
	mov	cx,8 
	rep	movsb 
	pop	ds 
	call	StopBuf 
	pop	es 
@@1:	inc	Cnt.TypeCount 
@@2:	ret 
StoreFuncType	endp 
 
l1169	proc	near 
	push	es di 
	mov	cl,ah 
	call	StartBuf 
	stosb 
	xor	ax,ax 
	stosw 
	mov	ax,dx 
	stosw 
	mov	al,cl 
	stosb 
	mov	ax,bx 
	stosw 
	call	StopBuf 
	pop	di es 
	ret 
l1169	endp 
 
StoreType	proc	near 
	test	d3caa,100h 
	jz	@@2 
	cmp	Phase,100h 
	jne	@@1 
	push	es di 
	call	StartBuf 
	stosw 
	mov	ax,bx 
	stosw 
	mov	ax,cx 
	stosw 
	mov	ax,dx 
	stosw 
	call	StopBuf 
	pop	di es 
@@1:	inc	Cnt.TypeCount 
@@2:	ret 
StoreType	endp 
 
StoreMember	proc	near 
	mov	al,80h 
	xor	cx,cx 
	xor	bx,bx 
_StoreMember	label near 
	test	d3caa,200h 
	jz	@@2 
	cmp	Phase,200h 
	jne	@@1 
	push	es di 
	call	StartBuf 
	stosb 
	mov	ax,bx 
	stosw 
	mov	ax,cx 
	stosw 
	call	StopBuf 
	pop	di es 
@@1:	inc	Cnt.MemberCount 
@@2:	ret 
StoreMember	endp 
 
PatchMember	proc	near 
	cmp	Phase,200h 
	jne	@@1 
	call	StartBuf 
	or	byte ptr es:[di-5],80h 
@@1:	ret 
PatchMember	endp 
 
StoreClass	proc	near 
	test	d3caa,400h 
	jz	@@2 
	cmp	Phase,400h 
	jne	@@1 
	push	es di ax 
	mov	ax,es:[di+4] 
	and	ax,8000h 
	or	ax,Cnt.ClassCount 
	mov	es:[di+4],ax 
	pop	ax 
	mov	si,es:[di+1ch] 
	call	StartBuf 
	stosw 
	mov	ax,bx 
	stosw 
	mov	ax,cx 
	stosw 
	mov	ax,si 
	stosw 
	mov	ax,dx 
	stosw 
	mov	al,d3ce6.B1 
	stosb 
	call	StopBuf 
	pop	di es 
@@1:	inc	Cnt.ClassCount 
@@2:	ret 
StoreClass	endp 
 
StoreParent	proc	near 
	test	d3caa,800h 
	jz	@@2 
	cmp	Phase,800h 
	jne	@@1 
	call	StartBuf 
	stosw 
	call	StopBuf 
@@1:	inc	Cnt.ParentCount 
@@2:	ret 
StoreParent	endp 
 
StoreSourceFile	proc	near 
	test	d3caa,4 
	jz	@@2 
	cmp	Phase,4 
	jne	@@1 
	push	es ds es 
	mov	ax,Cnt.NameCount 
	call	StartBuf 
	pop	ds 
	stosw 
	mov	ax,[si+3] 
	stosw 
	mov	ax,[si+5] 
	stosw 
	pop	ds es 
	call	StopBuf 
@@1:	mov	ax,Cnt.SourceFileCount 
	mov	es:[si+1],ax 
	inc	Cnt.SourceFileCount 
@@2:	ret 
StoreSourceFile	endp 
 
l127d	proc	near 
	xor	dx,dx 
	call	l066a 
	mov	cx,dx 
	jcxz	@@5 
	add	Cnt.LineNumberCount,cx 
	mov	ax,4 
	cwd 
	mul	cx 
	call	GetMem 
	push	es di ds 
	mov	bx,es:[di] 
	add	bx,es:[si+4] 
	mov	dx,es:[si+6] 
	mov	cx,es:[si+8] 
	add	si,0ah 
	push	es 
	call	StartBuf 
	pop	ds 
@@1:	lodsb 
	or	al,al 
	js	@@2 
	cbw 
	jmp	short @@3 
@@2:	and	al,7fh 
	mov	ah,al 
	lodsb 
@@3:	or	ax,ax 
	jz	@@4 
	add	ax,bx 
	push	ax 
	mov	ax,dx 
	stosw 
	mov	ax,bx 
	stosw 
	pop	bx 
@@4:	inc	dx 
	loop	@@1 
	pop	ds 
	call	StopBuf 
	pop	di es 
@@5:	ret 
l127d	endp 
 
StoreCorrel	proc	near 
	test	d3caa,80h 
	jz	@@2 
	cmp	Phase,80h 
	jne	@@1 
	push	es di bx 
	add	bx,es:[18h] 
	mov	bx,es:[bx+1] 
	call	StartBuf 
	mov	ax,Cnt.XPEHCount 
	stosw 
	mov	ax,bx 
	stosw 
	mov	ax,Cnt.LineNumberCount 
	stosw 
	mov	ax,dx 
	stosw 
	call	StopBuf 
	pop	bx di es 
@@1:	inc	Cnt.CorrelCount 
	add	Cnt.LineNumberCount,dx 
@@2:	ret 
StoreCorrel	endp