2
0
mirror of https://github.com/xcat2/xNBA.git synced 2024-11-23 01:51:58 +00:00

Set carry flag before calling INT 15,e801 and INT 15,e820.

Ignore carry flag for INT 15,88; the Ralf Brown interrupt list says
that CF is unreliable for this call.
This commit is contained in:
Michael Brown 2006-05-24 12:19:16 +00:00
parent 7a53d07027
commit 53935e9dc6

View File

@ -76,6 +76,7 @@ static unsigned int extmemsize_e801 ( void ) {
unsigned int extmem;
REAL_EXEC ( rm_mem_e801,
"stc\n\t"
"int $0x15\n\t"
"pushfw\n\t"
"popw %w0\n\t",
@ -111,10 +112,8 @@ static unsigned int extmemsize_88 ( void ) {
uint16_t extmem;
REAL_EXEC ( rm_mem_88,
"int $0x15\n\t"
"jnc 1f\n\t"
"xorw %%ax, %%ax\n\t"
"\n1:\n\t",
/* Ignore CF; it is not reliable for this call */
"int $0x15\n\t",
1,
OUT_CONSTRAINTS ( "=a" ( extmem ) ),
IN_CONSTRAINTS ( "a" ( 0x8800 ) ),
@ -155,6 +154,7 @@ static int meme820 ( struct memory_region *memmap, unsigned int entries ) {
do {
REAL_EXEC ( rm_mem_e820,
"stc\n\t"
"int $0x15\n\t"
"pushfw\n\t"
"popw %w0\n\t",