diff options
Diffstat (limited to 'v4.0/src/SELECT/SELCHILD.ASM')
| -rw-r--r-- | v4.0/src/SELECT/SELCHILD.ASM | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/v4.0/src/SELECT/SELCHILD.ASM b/v4.0/src/SELECT/SELCHILD.ASM new file mode 100644 index 0000000..139fcf3 --- /dev/null +++ b/v4.0/src/SELECT/SELCHILD.ASM | |||
| @@ -0,0 +1,62 @@ | |||
| 1 | PAGE 55,132 ;AN000; | ||
| 2 | NAME SELCHILD ;AN000; | ||
| 3 | TITLE SELCHILD - CHILD processing for SELECT.EXE;AN000; | ||
| 4 | SUBTTL selchild.asm ;AN000; | ||
| 5 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 6 | ; | ||
| 7 | ; HANDLE_CHILDREN | ||
| 8 | ; | ||
| 9 | ; Entry: | ||
| 10 | ; | ||
| 11 | ; | ||
| 12 | ; | ||
| 13 | ; Exit: | ||
| 14 | ; | ||
| 15 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 16 | EXTRN QM_ID:WORD ;AN000; | ||
| 17 | EXTRN QM_OPT1:WORD ;AN000; | ||
| 18 | EXTRN QM_ACTIVEPAN:WORD ;AN000; | ||
| 19 | ; | ||
| 20 | SELECT SEGMENT PARA PUBLIC 'SELECT' ;AN000;segment for far routine | ||
| 21 | ASSUME CS:SELECT ;AN000; | ||
| 22 | ; | ||
| 23 | EXTRN GET_PCB:NEAR ;AN000; | ||
| 24 | EXTRN PCDISPQ_CALL:NEAR ;AN000; | ||
| 25 | ; | ||
| 26 | INCLUDE PCEQUATE.INC ;AN000; | ||
| 27 | INCLUDE CASTRUC.INC ;AN000; | ||
| 28 | INCLUDE MACROS.INC ;AN000; | ||
| 29 | ; | ||
| 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 | ||
| 34 | ; | ||
| 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; | ||
| 39 | OR CX,CX ;AN000; | ||
| 40 | JZ HC_1 ;AN000; | ||
| 41 | ; | ||
| 42 | PUSH ES:[DI]+PCB_CHILDSEG ;AN000; get address of first child panel | ||
| 43 | PUSH ES:[DI]+PCB_CHILDOFF ;AN000; | ||
| 44 | POP DI ;AN000; | ||
| 45 | POP ES ;AN000; | ||
| 46 | ; | ||
| 47 | HC_0: MOV AX,ES:[DI]+CHD_PCB ;AN000; | ||
| 48 | MOV QM_ID,AX ;AN000; | ||
| 49 | PUSHH <ES,DI> ;AN000; | ||
| 50 | CALL PCDISPQ_CALL ;AN000; push next child on the stack | ||
| 51 | POPP <DI,ES> ;AN000; | ||
| 52 | ; | ||
| 53 | ADD DI,TYPE CHD_PB ;AN000; get next child control block | ||
| 54 | LOOP HC_0 ;AN000; | ||
| 55 | ; | ||
| 56 | HC_1: POPP <ES,DI,CX,BX,AX> ;AN000; | ||
| 57 | RET ;AN000; | ||
| 58 | HANDLE_CHILDREN ENDP ;AN000; | ||
| 59 | SELECT ENDS ;AN000; | ||
| 60 | END ;AN000; | ||
| 61 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
| 62 | |||