summaryrefslogtreecommitdiffstats
path: root/private/mvdm/xms.486/xmsmisc.c
diff options
context:
space:
mode:
Diffstat (limited to 'private/mvdm/xms.486/xmsmisc.c')
-rw-r--r--private/mvdm/xms.486/xmsmisc.c84
1 files changed, 84 insertions, 0 deletions
diff --git a/private/mvdm/xms.486/xmsmisc.c b/private/mvdm/xms.486/xmsmisc.c
new file mode 100644
index 000000000..9f15120ec
--- /dev/null
+++ b/private/mvdm/xms.486/xmsmisc.c
@@ -0,0 +1,84 @@
+/* xmsmisc.c - Misc. Support Functions for himem.
+ *
+ * xmsSysPageSize
+ * xmsQueryExtMem
+ *
+ * Modification History:
+ *
+ * Sudeepb 15-May-1991 Created
+ */
+
+#include "xms.h"
+
+#include <xmssvc.h>
+#include <softpc.h>
+
+extern void UpdateKbdInt15(WORD Seg,WORD Off);
+
+/* xmsSysPageSize - Get the System Page size.
+ *
+ *
+ * Entry - None
+ *
+ * Exit
+ * SUCCESS
+ * Client (AX) = Page Size in bytes
+ *
+ * FAILURE
+ * Not Valid
+ */
+
+VOID xmsSysPageSize (VOID)
+{
+SYSTEM_INFO SysInfo;
+
+ GetSystemInfo(&SysInfo);
+
+ setAX((USHORT)SysInfo.dwPageSize);
+
+ return;
+}
+
+
+
+/* xmsQueryExtMem - Get the extended memory for the vdm
+ *
+ *
+ * Entry - None
+ *
+ * Exit
+ * SUCCESS
+ * Client (AX) = Extended Memory in K
+ *
+ * FAILURE
+ * Not Valid
+ */
+
+VOID xmsQueryExtMem (VOID)
+{
+ setAX((USHORT)(xmsMemorySize));
+ return;
+}
+
+
+/* xmsNotifyHookI15 - Informs softpc that someone is hooking I15
+ * - also returns the extended memory for the vdm
+ *
+ *
+ * Entry - Client (CS:AX) seg:off of new I15 vector
+ *
+ * Exit
+ * SUCCESS
+ * Client (CX) = Extended Memory in K
+ *
+ * FAILURE
+ * Not Valid
+ */
+
+VOID xmsNotifyHookI15 (VOID)
+{
+ UpdateKbdInt15(getCS(), getAX());
+
+ setCX((USHORT)(xmsMemorySize));
+ return;
+}