home *** CD-ROM | disk | FTP | other *** search
-
- ; HiLevel Syntax Generator Version 2.00
- ; Source file: c:\wdasm\hello1.asm
-
- TITLE WDASM Example Program
- .286
- .MODEL SMALL
-
- OPTION NOM510
- OPTION CASEMAP:NONE
- OPTION PROLOGUE:cPrologue
- OPTION EPILOGUE:cEpilogue
-
- INCLUDE PROLOGUE.INC
- INCLUDE HILEVEL.INC
-
- INCLUDE HELLO.INC
-
- EXTERN DefWindowProc:FAR
- EXTERN GetMessage:FAR
- EXTERN TranslateMessage:FAR
- EXTERN FatalExit:FAR
- EXTERN DispatchMessage:FAR
- EXTERN GetVersion:FAR
- EXTERN GetDosEnvironment:FAR
- EXTERN LocalAlloc:FAR
- EXTERN LocalRealloc:FAR
- EXTERN LocalFree:FAR
- EXTERN FatalAppExit:FAR
- EXTERN LocalSize:FAR
- EXTERN UpdateWindow:FAR
- EXTERN GlobalRealloc:FAR
- EXTERN GlobalSize:FAR
- EXTERN InitApp:FAR
- EXTERN PostQuitMessage:FAR
- EXTERN LockSegment:FAR
- EXTERN UnlockSegment:FAR
- EXTERN WaitEvent:FAR
- EXTERN GetClientRect:FAR
- EXTERN GetModuleFileName:FAR
- EXTERN BeginPaint:FAR
- EXTERN EndPaint:FAR
- EXTERN CreateWindow:FAR
- EXTERN ShowWindow:FAR
- EXTERN LoadCursor:FAR
- EXTERN LoadIcon:FAR
- EXTERN RegisterClass:FAR
- EXTERN InitTask:FAR
- EXTERN GetStockObject:FAR
- EXTERN DrawText:FAR
- EXTERN Dos3Call:FAR
- EXTERN __winflags:FAR
-
-
- .CODE
-
- Procedure0000 PROC NEAR C
- ADD BYTE PTR [BX+SI], AL
- ADD BYTE PTR [BX+SI], AL
- ADD BYTE PTR [BX+SI], AL
- ADD BYTE PTR [BX+SI], AL
- ADD BYTE PTR [BX+SI], AL
- ADD BYTE PTR [BX+SI], AL
- ADD BYTE PTR [BX+SI], AL
- ADD BYTE PTR [BX+SI], AL
- Procedure0000 ENDP
-
-
- Procedure0010 PROC NEAR PASCAL <NOLOADDS, NOINCBP, FORCEFRAME, CHECKSTACK>, par12:WORD, par10:WORD, par8:WORD, par6:WORD, par4:WORD
- LOCAL local2:WORD, local4:WORD, local6:WORD, \
- local8:WORD, local10:WORD, local12:WORD, local14:WORD, \
- local16:WORD, local18:WORD, local20:WORD, local22:WORD, \
- local24:WORD, local26:WORD, local28:WORD, local30:WORD, \
- local32:WORD, local34:WORD, local36:WORD, local38:WORD, \
- local40:WORD, local42:WORD, local44:WORD, local46:WORD
- .IF (WORD PTR par10 == 0)
- L0022H: MOV WORD PTR local46, 0003H
- MOV WORD PTR local44, LROFFSET WNDPROC
- MOV WORD PTR local42, SEG WNDPROC
- MOV WORD PTR local40, 0000H
- MOV WORD PTR local38, 0000H
- MOV AX, WORD PTR par12
- MOV WORD PTR local36, AX
- cCall <FAR PTR LoadIcon, 0, 0, 7F00H>
- MOV WORD PTR local34, AX
- cCall <FAR PTR LoadCursor, 0, 0, 7F00H>
- MOV WORD PTR local32, AX
- cCall <FAR PTR GetStockObject, 0>
- MOV WORD PTR local30, AX
- MOV WORD PTR local28, 0000H
- MOV WORD PTR local26, 0000H
- MOV AX, 0010H
- MOV DX, DS
- MOV WORD PTR local24, AX
- MOV WORD PTR local22, DX
- LEA AX, WORD PTR local46
- MOV DX, SS
- cCall <FAR PTR RegisterClass, DX, AX>
- .ENDIF
- L008AH: MOV AX, 0010H
- MOV DX, DS
- PUSH DX
- PUSH AX
- MOV AX, 00C2H
- MOV DX, DS
- cCall <FAR PTR CreateWindow, DX, AX, 00CFH, 0, 8000H, 8000H, 8000H, 8000H, 0, 0, WORD PTR par12, 0, 0>
- MOV WORD PTR local2, AX
- cCall <FAR PTR ShowWindow, AX, WORD PTR par4>
- cCall <FAR PTR UpdateWindow, WORD PTR local2>
- L00CDH: LEA AX, WORD PTR local20
- MOV DX, SS
- cCall <FAR PTR GetMessage, DX, AX, 0, 0, 0>
- .IF (AX)
- LEA AX, WORD PTR local20
- MOV DX, SS
- cCall <FAR PTR TranslateMessage, DX, AX>
- LEA AX, WORD PTR local20
- MOV DX, SS
- cCall <FAR PTR DispatchMessage, DX, AX>
- JMP SHORT L00CDH
- NOP
- .ENDIF
- L00FEH: MOV AX, WORD PTR local16
- RET
- Procedure0010 ENDP
-
-
- Procedure0105 PROC NEAR C
- NOP
- Procedure0105 ENDP
-
-
- WNDPROC PROC FAR PASCAL PUBLIC <LOADDS, INCBP, FORCEFRAME, CHECKSTACK>, par14:WORD, par12:WORD, par10:WORD, par8:WORD, par6:WORD
- LOCAL local2:WORD, local4:WORD, local6:WORD, \
- local8:WORD, local10:WORD, local12:WORD, local14:WORD, \
- local16:WORD, local18:WORD, local20:WORD, local22:WORD, \
- local24:WORD, local26:WORD, local28:WORD, local30:WORD, \
- local32:WORD, local34:WORD, local36:WORD, local38:WORD, \
- local40:WORD, local42:WORD, local44:WORD
- PUSH SI
- PUSH DI
- MOV SI, WORD PTR par14
- MOV AX, WORD PTR par12
- JMP NEAR PTR L017AH
- NOP
- L0122H: PUSH SI
- LEA AX, WORD PTR local36
- MOV DX, SS
- cCall <FAR PTR BeginPaint, DX, AX>
- MOV DI, AX
- PUSH SI
- LEA AX, WORD PTR local44
- MOV DX, SS
- cCall <FAR PTR GetClientRect, DX, AX>
- PUSH DI
- MOV AX, 00DFH
- MOV DX, DS
- PUSH DX
- PUSH AX
- PUSH -1
- LEA AX, WORD PTR local44
- MOV DX, SS
- cCall <FAR PTR DrawText, DX, AX, 37>
- PUSH SI
- LEA AX, WORD PTR local36
- MOV DX, SS
- cCall <FAR PTR EndPaint, DX, AX>
- XOR AX, AX
- XOR DX, DX
- JMP SHORT L019FH
- NOP
- L016AH: cCall <FAR PTR PostQuitMessage, 0>
- XOR AX, AX
- XOR DX, DX
- JMP SHORT L019FH
- NOP
- JMP SHORT L0187H
- L017AH: CMP AX, 0002H
- JZ L016AH
- .IF (AX == 000FH)
- JMP NEAR PTR L0122H
- .ENDIF
- L0187H: cCall <FAR PTR DefWindowProc, SI, WORD PTR par12, WORD PTR par10, WORD PTR par8, WORD PTR par6>
- JMP SHORT L019FH
- NOP
- MOV WORD PTR par14, SI
- L019FH: POP DI
- POP SI
- RET
- WNDPROC ENDP
-
-
- L01ACH DW LROFFSET __winflags
- Procedure01AC PROC NEAR C
- L01AEH: MOV AL, -1
- cCall <NEAR PTR Procedure034E, AX>
- L01B4H:: XOR BP, BP
- cCall <FAR PTR InitTask, BP>
- OR AX, AX
- JZ L01AEH
- MOV WORD PTR D0064H, ES
- ADD CX, 0100H
- JB L01AEH
- MOV WORD PTR D002EH, CX
- MOV WORD PTR D0030H, SI
- MOV WORD PTR D0032H, DI
- MOV WORD PTR D0034H, BX
- MOV WORD PTR D0036H, ES
- MOV WORD PTR D0038H, DX
- CALL FAR PTR GetVersion
- MOV WORD PTR D0066H, AX
- MOV AH, 48
- .IF (WORD PTR CS:L01ACH & SWORD PTR 0001H)
- CALL FAR PTR Dos3Call
- JMP SHORT L01FEH
- .ENDIF
- L01FCH: INT 0021H
- L01FEH: MOV WORD PTR D0068H, AX
- .IF ( !(WORD PTR CS:L01ACH & 0001H))
- MOV AL, 0
- MOV BYTE PTR D006BH, AL
- .ENDIF
- L020FH: XOR AX, AX
- cCall <FAR PTR WaitEvent, AX>
- cCall <FAR PTR InitApp, WORD PTR D0032H>
- OR AX, AX
- JZ L01AEH
- CALL NEAR PTR Procedure0268
- CALL NEAR PTR Procedure047E
- CALL NEAR PTR Procedure05FC
- CALL NEAR PTR Procedure085C
- cCall <NEAR PTR Procedure024C, WORD PTR D00A0H, WORD PTR D009EH, WORD PTR D009CH>
- ADD SP, 6
- cCall <NEAR PTR Procedure0347, AX>
- MOV AX, 0015H
- JMP NEAR PTR L0683H
- Procedure01AC ENDP
-
-
- ; Missing MOV SP,BP and POP BP in epilogue.
- Procedure024C PROC NEAR C
- PUSH BP
- MOV BP, SP
- cCall <NEAR PTR Procedure0010, WORD PTR D0032H, WORD PTR D0030H, WORD PTR D0036H, WORD PTR D0034H, WORD PTR D0038H>
- POP BP
- RET
- Procedure024C ENDP
-
-
- Procedure0268 PROC NEAR C
- MOV AX, 3500H
- .IF (WORD PTR CS:L01ACH & SWORD PTR 0001H)
- CALL FAR PTR Dos3Call
- JMP SHORT L027DH
- .ENDIF
- L027BH: INT 0021H
- L027DH: MOV WORD PTR D0050H, BX
- MOV WORD PTR D0052H, ES
- PUSH CS
- POP DS
- MOV AX, 2500H
- MOV DX, 067EH
- .IF (WORD PTR CS:L01ACH & SWORD PTR 0001H)
- CALL FAR PTR Dos3Call
- JMP SHORT L029FH
- .ENDIF
- L029DH: INT 0021H
- L029FH: PUSH SS
- POP DS
- MOV CX, WORD PTR D00B8H
- JCXZ L02D0H
- MOV ES, WORD PTR D0064H
- MOV SI, WORD PTR ES:D002CH
- MOV AX, WORD PTR D00BAH
- MOV DX, WORD PTR D00BCH
- XOR BX, BX
- CALL DWORD PTR D00B6H
- JAE L02C2H
- JMP NEAR PTR L0424H
- L02C2H: MOV AX, WORD PTR D00BEH
- MOV DX, WORD PTR D00C0H
- MOV BX, 0003H
- CALL DWORD PTR D00B6H
- L02D0H: MOV ES, WORD PTR D0064H
- MOV CX, WORD PTR ES:D002CH
- JCXZ L0319H
- MOV ES, CX
- XOR DI, DI
- L02DFH: .IF (BYTE PTR ES:[DI] != 0)
- MOV CX, 000DH
- MOV SI, 0042H
- REPE CMPSB
- JZ L02FAH
- MOV CX, 7FFFH
- XOR AX, AX
- REPNE SCASB
- JNZ L0319H
- JMP SHORT L02DFH
- L02FAH: PUSH ES
- PUSH DS
- POP ES
- POP DS
- MOV SI, DI
- MOV DI, 0074H
- MOV CL, 4
- L0305H: LODSB
- SUB AL, 65
- JB L0317H
- SHL AL, CL
- XCHG DX, AX
- LODSB
- SUB AL, 65
- JB L0317H
- OR AL, DL
- STOSB
- JMP SHORT L0305H
- L0317H: PUSH SS
- POP DS
- .ENDIF
- L0319H: MOV SI, 00C2H
- MOV DI, 00C2H
- CALL NEAR PTR Procedure03EB
- MOV SI, 00C2H
- MOV DI, 00C2H
- CALL NEAR PTR Procedure03FA
- MOV SI, 00C2H
- MOV DI, 00C2H
- CALL NEAR PTR Procedure03EB
- MOV SI, 00C2H
- MOV DI, 00C2H
- CALL NEAR PTR Procedure03EB
- MOV SI, 00C2H
- MOV DI, 00C2H
- CALL NEAR PTR Procedure03FA
- RET
- Procedure0268 ENDP
-
-
- ; Missing MOV SP,BP and POP BP in epilogue.
- Procedure0347 PROC NEAR C
- PUSH BP
- MOV BP, SP
- XOR CX, CX
- JMP SHORT L0368H
- Procedure0347 ENDP
-
-
- ; Missing MOV SP,BP and POP BP in epilogue.
- Procedure034E PROC NEAR C
- PUSH BP
- MOV BP, SP
- MOV CX, 0001H
- JMP SHORT L0368H
- PUSH BP
- MOV BP, SP
- PUSH SI
- PUSH DI
- MOV CX, 0100H
- JMP SHORT L0368H
- PUSH BP
- MOV BP, SP
- PUSH SI
- PUSH DI
- MOV CX, 0101H
- L0368H:: MOV BYTE PTR D00A9H, CH
- PUSH CX
- OR CL, CL
- JNZ L038DH
- MOV SI, 024CH
- MOV DI, 024CH
- CALL NEAR PTR Procedure03EB
- MOV SI, 00C2H
- MOV DI, 00C2H
- CALL NEAR PTR Procedure03EB
- MOV SI, WORD PTR [BP+4]
- cCall <NEAR PTR Procedure085C, SI>
- ADD SP, 2
- L038DH: MOV SI, 00C2H
- MOV DI, 00C2H
- CALL NEAR PTR Procedure03EB
- MOV SI, 00C2H
- MOV DI, 00C2H
- CALL NEAR PTR Procedure03FA
- CALL NEAR PTR Procedure03C2
- POP AX
- OR AH, AH
- JNZ L03BEH
- MOV AX, WORD PTR [BP+4]
- MOV AH, 76
- .IF (WORD PTR CS:L01ACH & SWORD PTR 0001H)
- CALL FAR PTR Dos3Call
- JMP SHORT L03BEH
- .ENDIF
- L03BCH: INT 0021H
- L03BEH: POP DI
- POP SI
- POP BP
- RET
- Procedure034E ENDP
-
-
- Procedure03C2 PROC NEAR C
- MOV CX, WORD PTR D00B8H
- JCXZ L03CFH
- MOV BX, 0002H
- CALL DWORD PTR D00B6H
- L03CFH: PUSH DS
- LDS DX, DWORD PTR D0050H
- MOV AX, 2500H
- .IF (WORD PTR CS:L01ACH & SWORD PTR 0001H)
- CALL FAR PTR Dos3Call
- JMP SHORT L03E9H
- .ENDIF
- L03E7H: INT 0021H
- L03E9H: POP DS
- RET
- Procedure03C2 ENDP
-
-
- Procedure03EB PROC NEAR C
- L03EBH:
- .IF (SI < DI)
- DEC DI
- DEC DI
- MOV CX, WORD PTR [DI]
- JCXZ L03EBH
- CALL CX
- JMP SHORT L03EBH
- .ENDIF
- L03F9H: RET
- Procedure03EB ENDP
-
-
- Procedure03FA PROC NEAR C
- L03FAH:
- .IF (SI < DI)
- SUB DI, 4
- MOV AX, WORD PTR [DI]
- OR AX, WORD PTR [DI+2]
- JZ L03FAH
- CALL DWORD PTR [DI]
- JMP SHORT L03FAH
- .ENDIF
- L040CH: RET
- Procedure03FA ENDP
-
-
- L040DH DB 0000H
- Procedure040D PROC NEAR C
- Procedure040D ENDP
-
-
- Procedure040E PROC NEAR C <NOLOADDS, NOINCBP, FORCEFRAME, NOCHECKSTACK>
- MOV AX, 00FCH
- cCall <NEAR PTR Procedure06ED, AX>
- MOV AX, 00FFH
- cCall <NEAR PTR Procedure06ED, AX>
- RET
- Procedure040E ENDP
-
-
- L0423H DB 0000H
- Procedure0423 PROC NEAR C
- L0424H:: MOV AX, 0002H
- JMP NEAR PTR L0683H
- Procedure0423 ENDP
-
-
- _aNchkstk PROC NEAR C
- POP BX
- INC AX
- AND AL, -2
- SUB AX, SP
- JAE L0477H
- NEG AX
- CMP WORD PTR SS:D000AH, AX
- JA L0477H
- .IF (WORD PTR SS:D000CH > AX)
- MOV WORD PTR D000CH, AX
- .ENDIF
- L0446H: MOV SP, AX
- JMP BX
- POP BX
- POP DX
- INC AX
- AND AL, -2
- SUB AX, SP
- JAE L046CH
- NEG AX
- CMP WORD PTR SS:D000AH, AX
- JA L046CH
- .IF (WORD PTR SS:D000CH > AX)
- MOV WORD PTR D000CH, AX
- .ENDIF
- L0467H: MOV SP, AX
- PUSH DX
- PUSH BX
- RETF
- _aNchkstk ENDP
-
-
- L047DH DB 0000H
- Procedure046C PROC NEAR C
- L046CH:: MOV DX, WORD PTR SS:D00ACH
- INC DX
- JZ L0477H
- JMP WORD PTR D00ACH
- L0477H:: MOV AX, 0000H
- JMP NEAR PTR L0683H
- Procedure046C ENDP
-
-
- L05FBH DB 0000H
- Procedure047E PROC NEAR C
- POP WORD PTR D00AEH
- MOV AX, 0104H
- MOV CX, 0008H
- CALL NEAR PTR Procedure071E
- MOV WORD PTR D00A4H, DX
- MOV WORD PTR D00A2H, AX
- PUSH DX
- PUSH AX
- PUSH WORD PTR D0032H
- PUSH DX
- PUSH AX
- MOV AX, 0104H
- cCall <FAR PTR GetModuleFileName, AX>
- POP BX
- POP ES
- ADD BX, AX
- MOV BYTE PTR ES:[BX], 0
- MOV DX, 0001H
- MOV DI, 0001H
- MOV SI, 0081H
- MOV DS, WORD PTR D0064H
- L04B8H: LODSB
- CMP AL, 32
- JZ L04B8H
- CMP AL, 9
- JZ L04B8H
- .IF (AL != 13)
- OR AL, AL
- JZ L0534H
- INC DI
- L04CAH: DEC SI
- L04CBH: LODSB
- CMP AL, 32
- JZ L04B8H
- CMP AL, 9
- JZ L04B8H
- CMP AL, 13
- JZ L0534H
- OR AL, AL
- JZ L0534H
- .IF (AL != 34)
- .IF (AL != 92)
- INC DX
- JMP SHORT L04CBH
- .ENDIF
- L04E7H: XOR CX, CX
- L04E9H: INC CX
- LODSB
- CMP AL, 92
- JZ L04E9H
- .IF (AL != 34)
- ADD DX, CX
- JMP SHORT L04CAH
- .ENDIF
- L04F7H: MOV AX, CX
- SHR CX, 1
- ADC DX, CX
- TEST AL, 1
- JNZ L04CBH
- JMP SHORT L0504H
- L0503H: DEC SI
- .ENDIF
- L0504H: LODSB
- CMP AL, 13
- JZ L0534H
- OR AL, AL
- JZ L0534H
- CMP AL, 34
- JZ L04CBH
- .IF (AL != 92)
- INC DX
- JMP SHORT L0504H
- .ENDIF
- L0518H: XOR CX, CX
- L051AH: INC CX
- LODSB
- CMP AL, 92
- JZ L051AH
- .IF (AL != 34)
- ADD DX, CX
- JMP SHORT L0503H
- .ENDIF
- L0528H: MOV AX, CX
- SHR CX, 1
- ADC DX, CX
- TEST AL, 1
- JNZ L0504H
- JMP SHORT L04CBH
- .ENDIF
- L0534H: PUSH SS
- POP DS
- MOV WORD PTR D009CH, DI
- ADD DX, DI
- INC DI
- SHL DI, 1
- ADD DX, DI
- INC DX
- AND DL, -2
- SUB SP, DX
- MOV AX, SP
- MOV WORD PTR D009EH, AX
- MOV BX, AX
- ADD DI, BX
- PUSH SS
- POP ES
- LDS SI, DWORD PTR D00A2H
- MOV WORD PTR SS:[BX], SI
- INC BX
- INC BX
- MOV DS, WORD PTR SS:D0064H
- MOV SI, 0081H
- JMP SHORT L0568H
- L0565H: XOR AX, AX
- STOSB
- L0568H: LODSB
- CMP AL, 32
- JZ L0568H
- CMP AL, 9
- JZ L0568H
- .IF (AL != 13)
- OR AL, AL
- JZ L05F1H
- MOV WORD PTR SS:[BX], DI
- INC BX
- INC BX
- L057EH: DEC SI
- L057FH: LODSB
- CMP AL, 32
- JZ L0565H
- CMP AL, 9
- JZ L0565H
- .IF (AL != 13)
- OR AL, AL
- JZ L05EEH
- .IF (AL != 34)
- .IF (AL != 92)
- STOSB
- JMP SHORT L057FH
- .ENDIF
- L059BH: XOR CX, CX
- L059DH: INC CX
- LODSB
- CMP AL, 92
- JZ L059DH
- .IF (AL != 34)
- MOV AL, 92
- REP STOSB
- JMP SHORT L057EH
- .ENDIF
- L05ADH: MOV AL, 92
- SHR CX, 1
- REP STOSB
- JAE L05BBH
- MOV AL, 34
- STOSB
- JMP SHORT L057FH
- L05BAH: DEC SI
- .ENDIF
- L05BBH: LODSB
- CMP AL, 13
- JZ L05EEH
- OR AL, AL
- JZ L05EEH
- CMP AL, 34
- JZ L057FH
- .IF (AL != 92)
- STOSB
- JMP SHORT L05BBH
- .ENDIF
- L05CFH: XOR CX, CX
- L05D1H: INC CX
- LODSB
- CMP AL, 92
- JZ L05D1H
- .IF (AL != 34)
- MOV AL, 92
- REP STOSB
- JMP SHORT L05BAH
- .ENDIF
- L05E1H: MOV AL, 92
- SHR CX, 1
- REP STOSB
- JAE L057FH
- MOV AL, 34
- STOSB
- JMP SHORT L05BBH
- .ENDIF
- L05EEH: XOR AX, AX
- STOSB
- .ENDIF
- L05F1H: PUSH SS
- POP DS
- MOV WORD PTR [BX], 0000H
- JMP WORD PTR D00AEH
- Procedure047E ENDP
-
-
- ; Missing MOV SP,BP and POP BP in epilogue.
- Procedure05FC PROC NEAR C
- PUSH BP
- MOV BP, SP
- cCall <FAR PTR GetDosEnvironment, DS>
- OR AX, AX
- JZ L060BH
- MOV DX, AX
- L060BH: MOV BX, DX
- MOV ES, DX
- XOR AX, AX
- XOR SI, SI
- XOR DI, DI
- MOV CX, 0FFFFH
- OR BX, BX
- JZ L062AH
- .IF (BYTE PTR ES:D0000H != 0)
- L0624H: REPNE SCASB
- INC SI
- SCASB
- JNZ L0624H
- .ENDIF
- L062AH: MOV AX, DI
- INC AX
- AND AL, -2
- INC SI
- MOV DI, SI
- SHL SI, 1
- MOV CX, 0009H
- CALL NEAR PTR Procedure071E
- PUSH AX
- MOV AX, SI
- CALL NEAR PTR Procedure071E
- MOV WORD PTR D00A0H, AX
- PUSH ES
- PUSH DS
- POP ES
- POP DS
- MOV CX, DI
- MOV BX, AX
- XOR SI, SI
- POP DI
- DEC CX
- JCXZ L0677H
- L0651H: MOV AX, WORD PTR [SI]
- .IF (AX == WORD PTR SS:D0042H)
- PUSH CX
- PUSH SI
- PUSH DI
- MOV DI, 0042H
- MOV CX, 0006H
- REPE CMPSW
- POP DI
- POP SI
- POP CX
- JZ L066FH
- .ENDIF
- L066AH: MOV WORD PTR ES:[BX], DI
- INC BX
- INC BX
- L066FH: LODSB
- STOSB
- OR AL, AL
- JNZ L066FH
- LOOP L0651H
- L0677H: MOV WORD PTR ES:[BX], CX
- POP DS
- POP BP
- RET
- Procedure05FC ENDP
-
-
- L067DH DB 0000H
- Procedure067D PROC NEAR C
- PUSH SS
- POP DS
- MOV AX, 0003H
- L0683H:: cCall <NEAR PTR Procedure040E, AX, AX>
- CALL NEAR PTR Procedure06ED
- CALL NEAR PTR Procedure06C2
- XOR BX, BX
- OR AX, AX
- JZ L06B1H
- MOV DI, AX
- MOV AX, 0009H
- .IF (BYTE PTR [DI] == 77)
- MOV AX, 000FH
- .ENDIF
- L06A1H: ADD DI, AX
- PUSH DI
- PUSH DS
- POP ES
- MOV AL, 13
- MOV CX, 0022H
- REPNE SCASB
- MOV BYTE PTR [DI-1], BL
- POP AX
- L06B1H: cCall <FAR PTR FatalAppExit, BX, DS, AX>
- MOV AX, 00FFH
- cCall <FAR PTR FatalExit, AX>
- Procedure067D ENDP
-
-
- Procedure06C2 PROC NEAR PASCAL <NOLOADDS, NOINCBP, FORCEFRAME, NOCHECKSTACK>, par4:WORD
- PUSH SI
- PUSH DI
- PUSH DS
- POP ES
- MOV DX, WORD PTR par4
- MOV SI, 0102H
- L06CFH: LODSW
- .IF (AX != DX)
- INC AX
- XCHG SI, AX
- JZ L06E4H
- XCHG DI, AX
- XOR AX, AX
- MOV CX, 0FFFFH
- REPNE SCASB
- MOV SI, DI
- JMP SHORT L06CFH
- .ENDIF
- L06E4H: XCHG SI, AX
- POP DI
- POP SI
- RET
- Procedure06C2 ENDP
-
-
- Procedure06ED PROC NEAR PASCAL <NOLOADDS, NOINCBP, FORCEFRAME, NOCHECKSTACK>, par4:WORD
- PUSH DI
- .IF (WORD PTR D00B2H != 0)
- cCall <NEAR PTR Procedure06C2, WORD PTR par4>
- OR AX, AX
- JZ L0716H
- XCHG DX, AX
- MOV DI, DX
- XOR AX, AX
- MOV CX, 0FFFFH
- REPNE SCASB
- NOT CX
- DEC CX
- MOV BX, WORD PTR D006EH
- CALL NEAR PTR Procedure0861
- .ENDIF
- L0716H: POP DI
- RET
- Procedure06ED ENDP
-
-
- L071DH DB 0000H
- Procedure071D PROC NEAR C
- Procedure071D ENDP
-
-
- Procedure071E PROC NEAR C <NOLOADDS, NOINCBP, FORCEFRAME, NOCHECKSTACK>
- PUSH BX
- PUSH ES
- PUSH CX
- MOV CX, 1000H
- XCHG CX, WORD PTR D00B0H
- cCall <NEAR PTR Procedure0868, CX, AX>
- POP BX
- POP WORD PTR D00B0H
- POP CX
- MOV DX, DS
- OR AX, AX
- JZ L0740H
- POP ES
- POP BX
- JMP SHORT L0745H
- L0740H: MOV AX, CX
- JMP NEAR PTR L0683H
- L0745H: RET
- Procedure071E ENDP
-
-
- L0749H DB 0000H
- Procedure0749 PROC NEAR C
- PUSH CX
- PUSH DI
- .IF (BYTE PTR [BX+2] & SBYTE PTR 1)
- CALL NEAR PTR Procedure083C
- MOV DI, SI
- MOV AX, WORD PTR [SI]
- .IF (AL & SBYTE PTR 1)
- SUB CX, AX
- DEC CX
- .ENDIF
- L0760H: INC CX
- INC CX
- MOV SI, WORD PTR [BX+4]
- OR SI, SI
- JZ L07B5H
- ADD CX, SI
- JAE L0776H
- XOR AX, AX
- MOV DX, 0FFF0H
- JCXZ L07A4H
- JMP SHORT L07B5H
- L0776H: PUSH SS
- POP ES
- MOV AX, WORD PTR D00B0H
- .IF (AX != 1000H)
- MOV DX, 8000H
- L0784H: .IF (DX >= AX)
- SHR DX, 1
- JNZ L0784H
- JMP SHORT L07B0H
- .ENDIF
- L078EH: CMP DX, 8
- JB L07B0H
- SHL DX, 1
- MOV AX, DX
- .ENDIF
- L0797H: DEC AX
- MOV DX, AX
- ADD AX, CX
- JAE L07A0H
- XOR AX, AX
- L07A0H: NOT DX
- AND AX, DX
- L07A4H: cCall <NEAR PTR Procedure07D6, DX>
- POP DX
- JAE L07B8H
- CMP DX, -16
- JZ L07B5H
- L07B0H: MOV AX, 0010H
- JMP SHORT L0797H
- .ENDIF
- L07B5H: STC
- JMP SHORT L07D3H
- L07B8H: MOV DX, AX
- SUB DX, WORD PTR ES:[BX+4]
- MOV WORD PTR [BX+4], AX
- MOV WORD PTR [BX+10], DI
- MOV SI, WORD PTR [BX+12]
- DEC DX
- MOV WORD PTR [SI], DX
- INC DX
- ADD SI, DX
- MOV WORD PTR [SI], 0FFFEH
- MOV WORD PTR [BX+12], SI
- L07D3H: POP DI
- POP CX
- RET
- Procedure0749 ENDP
-
-
- Procedure07D6 PROC NEAR C
- MOV DX, AX
- .IF ( !(BYTE PTR [BX+2] & 4))
- L07E0H: PUSH DX
- PUSH CX
- PUSH BX
- MOV SI, WORD PTR [BX+6]
- MOV BX, WORD PTR CS:L01ACH
- XOR CX, CX
- OR DX, DX
- JNZ L07F8H
- TEST BX, 0010H
- JNZ L0837H
- INC CX
- L07F8H: MOV AX, 0022H
- .IF ( !(BX & 0001H))
- MOV AX, 0020H
- .ENDIF
- L0804H: cCall <FAR PTR GlobalRealloc, SI, CX, DX, AX>
- OR AX, AX
- JZ L0837H
- CMP AX, SI
- JNZ L0831H
- cCall <FAR PTR GlobalSize, SI>
- OR DX, AX
- JZ L0831H
- POP BX
- POP CX
- POP DX
- MOV AX, DX
- .IF (BYTE PTR [BX+2] & SBYTE PTR 4)
- DEC DX
- MOV WORD PTR [BX-2], DX
- .ENDIF
- L082EH: CLC
- JMP SHORT L083BH
- .ENDIF
- L0831H: MOV AX, 0012H
- JMP NEAR PTR L0683H
- L0837H: POP BX
- POP CX
- POP DX
- STC
- L083BH: RET
- Procedure07D6 ENDP
-
-
- Procedure083C PROC NEAR C
- PUSH DI
- MOV SI, WORD PTR [BX+10]
- .IF (SI == WORD PTR [BX+12])
- MOV SI, WORD PTR [BX+8]
- .ENDIF
- L0848H: LODSW
- .IF (AX != -2)
- MOV DI, SI
- AND AL, -2
- ADD SI, AX
- JMP SHORT L0848H
- .ENDIF
- L0856H: DEC DI
- DEC DI
- MOV SI, DI
- POP DI
- RET
- Procedure083C ENDP
-
-
- ; Missing MOV SP,BP and POP BP in epilogue.
- Procedure085C PROC NEAR C
- PUSH BP
- MOV BP, SP
- POP BP
- RET
- Procedure085C ENDP
-
-
- L0867H DB 0000H
- Procedure0861 PROC NEAR C
- MOV AX, 0014H
- JMP NEAR PTR L0683H
- Procedure0861 ENDP
-
-
- Procedure0868 PROC NEAR C <NOLOADDS, NOINCBP, FORCEFRAME, NOCHECKSTACK>, par4:WORD
- LOCAL local2:WORD, local4:WORD
- MOV AX, 0FFFFH
- cCall <FAR PTR LockSegment, AX>
- MOV AX, 0020H
- PUSH AX
- .IF (WORD PTR par4 != 0)
- MOV AX, WORD PTR par4
- JMP SHORT L0889H
- .ENDIF
- L0886H: MOV AX, 0001H
- L0889H: cCall <FAR PTR LocalAlloc, AX>
- MOV WORD PTR local2, AX
- MOV AX, 0FFFFH
- cCall <FAR PTR UnlockSegment, AX>
- MOV AX, WORD PTR local2
- RET
- Procedure0868 ENDP
-
-
- Procedure08A2 PROC NEAR C <NOLOADDS, NOINCBP, FORCEFRAME, NOCHECKSTACK>, par4:WORD
- PUSH WORD PTR par4
- CALL FAR PTR LocalFree
- RET
- Procedure08A2 ENDP
-
-
- Procedure08B1 PROC NEAR C <NOLOADDS, NOINCBP, FORCEFRAME, NOCHECKSTACK>, par6:WORD, par4:WORD
- LOCAL local2:WORD, local4:WORD
- .IF (WORD PTR par4 == 0)
- cCall <NEAR PTR Procedure0868, WORD PTR par6>
- ADD SP, 2
- JMP SHORT L08FEH
- NOP
- .ENDIF
- L08CAH: MOV AX, 0FFFFH
- cCall <FAR PTR LockSegment, AX>
- PUSH WORD PTR par4
- .IF (WORD PTR par6 != 0)
- MOV AX, WORD PTR par6
- JMP SHORT L08E5H
- NOP
- .ENDIF
- L08E2H: MOV AX, 0001H
- L08E5H: PUSH AX
- MOV AX, 0062H
- cCall <FAR PTR LocalRealloc, AX>
- MOV WORD PTR local2, AX
- MOV AX, 0FFFFH
- cCall <FAR PTR UnlockSegment, AX>
- MOV AX, WORD PTR local2
- L08FEH: RET
- Procedure08B1 ENDP
-
-
- Procedure0902 PROC NEAR C <NOLOADDS, NOINCBP, FORCEFRAME, NOCHECKSTACK>, par4:WORD
- PUSH WORD PTR par4
- CALL FAR PTR LocalSize
- RET
- Procedure0902 ENDP
-
-
- Procedure0911 PROC NEAR C
- NOP
- Procedure0911 ENDP
-
-
- END L01B4H
-