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