3 TITLE SELCHILD
- CHILD processing for SELECT
.EXE
;AN000;
4 SUBTTL selchild
.asm
;AN000;
5 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
15 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
16 EXTRN QM_ID
:WORD ;AN000;
17 EXTRN QM_OPT1
:WORD ;AN000;
18 EXTRN QM_ACTIVEPAN
:WORD ;AN000;
20 SELECT
SEGMENT PARA
PUBLIC 'SELECT' ;AN000;segment for far routine
21 ASSUME
CS:SELECT
;AN000;
23 EXTRN GET_PCB
:NEAR ;AN000;
24 EXTRN PCDISPQ_CALL
:NEAR ;AN000;
26 INCLUDE PCEQUATE
.INC ;AN000;
27 INCLUDE CASTRUC
.INC ;AN000;
28 INCLUDE MACROS
.INC ;AN000;
30 PUBLIC HANDLE_CHILDREN
;AN000;
31 HANDLE_CHILDREN PROC
;AN000;
32 PUSHH
<AX,BX,CX,DI,ES> ;AN000;
33 MOV QM_OPT1
,QM_PUSHCHD
;AN000; push child panels
35 MOV BX,QM_ACTIVEPAN
;AN000;
36 CALL GET_PCB
;AN000; get panel control block
37 ; for active parent panel
38 MOV CX,ES:[DI]+PCB_CHILDNUM
;AN000;
42 PUSH ES:[DI]+PCB_CHILDSEG
;AN000; get address of first child panel
43 PUSH ES:[DI]+PCB_CHILDOFF
;AN000;
47 HC_0: MOV AX,ES:[DI]+CHD_PCB
;AN000;
50 CALL PCDISPQ_CALL
;AN000; push next child on the stack
53 ADD DI,TYPE CHD_PB
;AN000; get next child control block
56 HC_1: POPP
<ES,DI,CX,BX,AX> ;AN000;
58 HANDLE_CHILDREN ENDP
;AN000;
61 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;