projects
/
dosdemo
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
start writing new VBE routines
[dosdemo]
/
src
/
dos
/
cdpmi.h
diff --git
a/src/dos/cdpmi.h
b/src/dos/cdpmi.h
index
cdfd2f7
..
4fc2c30
100644
(file)
--- a/
src/dos/cdpmi.h
+++ b/
src/dos/cdpmi.h
@@
-6,7
+6,9
@@
#endif
#include "inttypes.h"
#endif
#include "inttypes.h"
+#include "util.h"
+#pragma pack (push, 1)
struct dpmi_regs {
uint32_t edi, esi, ebp;
uint32_t reserved;
struct dpmi_regs {
uint32_t edi, esi, ebp;
uint32_t reserved;
@@
-14,7
+16,8
@@
struct dpmi_regs {
uint16_t flags;
uint16_t es, ds, fs, gs;
uint16_t ip, cs, sp, ss;
uint16_t flags;
uint16_t es, ds, fs, gs;
uint16_t ip, cs, sp, ss;
-};
+} PACKED;
+#pragma pack (pop)
uint16_t dpmi_alloc(unsigned int par, uint16_t *sel);
void dpmi_free(uint16_t sel);
uint16_t dpmi_alloc(unsigned int par, uint16_t *sel);
void dpmi_free(uint16_t sel);
@@
-27,6
+30,9
@@
void dpmi_munmap(void *addr);
"mov ax, 0x100" \
"int 0x31" \
"mov [edi], dx" \
"mov ax, 0x100" \
"int 0x31" \
"mov [edi], dx" \
+ "jnc alloc_skip_err" \
+ "xor ax, ax" \
+ "alloc_skip_err:" \
value[ax] \
parm[ebx][edi];
value[ax] \
parm[ebx][edi];