home *** CD-ROM | disk | FTP | other *** search
- .386
- IDEAL
- SMART
- LOCALS
-
- STRUC Desc
- Base DD ?
- BaseH DD ?
- LenL DW ?
- Len DW ?
- LenH DD ?
- Type DW ?
- ENDS Desc
-
- I1588Mem = 2
- I15E8Mem = 8
-
- SEGMENT PatchData PUBLIC 'DATA'
- ASSUME CS:PatchData
-
- PUBLIC PatchCode
-
- PatchCode:
- PUSH ES
- XOR EBX, EBX
- MOV ECX, EBX
- MOV CL, 20
- SUB SP, CX
- MOV DI, SP
- PUSH SS
- POP ES
- get:
- MOV EAX, 0E820h
- MOV EDX, 534D4150h
- INT 15h
- JC done
- CMP [(Desc SS:DI).Type], 1
- JNE continue
- CMP [(Desc SS:DI).Base], 1024*1024
- JE found
- continue:
- OR EBX, EBX
- JNZ get
- JMP done
- found:
- MOV AX, [(Desc SS:DI).Len]
- MOV BX, AX
- MOV CX, 240
- SUB BX, CX
- JAE morethan16M
- XOR BX, BX
- MOV CX, AX
- morethan16M:
- SHL CX, 6
- MOV [I1588Mem], CX
- Patch1 = $ - 2
- MOV [I15E8Mem], BX
- Patch2 = $ - 2
- done:
- ADD SP, 20
- POP ES
-
- PatchSize DW $ - PatchCode
- Patches DW Patch1, Patch2
-
- PUBLIC PatchSize, Patches
-
- ENDS PatchData
-
- END
-