home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 8 Other
/
08-Other.zip
/
patchldr.zip
/
GetMem.asm
next >
Wrap
Assembly Source File
|
1999-11-12
|
971b
|
71 lines
.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