1
0
Fork 0

Fixed unlocking handles, to report error when not locked.

Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@389
This commit is contained in:
Sjoerd van der Berg 2002-10-21 21:58:45 +00:00
parent 24c5e436be
commit 328814cf22

View file

@ -54,6 +54,8 @@
#define XMS_OUT_OF_SPACE 0xa0
#define XMS_OUT_OF_HANDLES 0xa1
#define XMS_INVALID_HANDLE 0xa2
#define XMS_BLOCK_NOT_LOCKED 0xaa
#define XMS_BLOCK_LOCKED 0xab
struct XMS_Block {
Bit16u prev,next;
@ -292,8 +294,13 @@ foundnew:
reg_bl=XMS_INVALID_HANDLE;
return CBRET_NONE;
}
if (xms_handles[reg_dx].locked) xms_handles[reg_dx].locked--;
reg_ax=1;reg_bl=0;
if (xms_handles[reg_dx].locked) {
xms_handles[reg_dx].locked--;
reg_ax=1;reg_bl=0;
} else {
reg_ax=0;
reg_bl=XMS_BLOCK_NOT_LOCKED;
}
break;
case XMS_GET_EMB_HANDLE_INFORMATION: /* 0e */
/* Check for a valid handle */