|
|
1.1 root 1:
2: //
3: // dosisms.h: I'd call it dos.h, but the name's taken
4: //
5:
6: #ifndef _DOSISMS_H_
7: #define _DOSISMS_H_
8:
9: int dos_lockmem(void *addr, int size);
10: int dos_unlockmem(void *addr, int size);
11:
12: typedef union {
13: struct {
14: unsigned long edi;
15: unsigned long esi;
16: unsigned long ebp;
17: unsigned long res;
18: unsigned long ebx;
19: unsigned long edx;
20: unsigned long ecx;
21: unsigned long eax;
22: } d;
23: struct {
24: unsigned short di, di_hi;
25: unsigned short si, si_hi;
26: unsigned short bp, bp_hi;
27: unsigned short res, res_hi;
28: unsigned short bx, bx_hi;
29: unsigned short dx, dx_hi;
30: unsigned short cx, cx_hi;
31: unsigned short ax, ax_hi;
32: unsigned short flags;
33: unsigned short es;
34: unsigned short ds;
35: unsigned short fs;
36: unsigned short gs;
37: unsigned short ip;
38: unsigned short cs;
39: unsigned short sp;
40: unsigned short ss;
41: } x;
42: struct {
43: unsigned char edi[4];
44: unsigned char esi[4];
45: unsigned char ebp[4];
46: unsigned char res[4];
47: unsigned char bl, bh, ebx_b2, ebx_b3;
48: unsigned char dl, dh, edx_b2, edx_b3;
49: unsigned char cl, ch, ecx_b2, ecx_b3;
50: unsigned char al, ah, eax_b2, eax_b3;
51: } h;
52: } regs_t;
53:
54: unsigned int ptr2real(void *ptr);
55: void *real2ptr(unsigned int real);
56: void *far2ptr(unsigned int farptr);
57: unsigned int ptr2far(void *ptr);
58:
59: int dos_inportb(int port);
60: int dos_inportw(int port);
61: void dos_outportb(int port, int val);
62: void dos_outportw(int port, int val);
63:
64: void dos_irqenable(void);
65: void dos_irqdisable(void);
66: void dos_registerintr(int intr, void (*handler)(void));
67: void dos_restoreintr(int intr);
68:
69: int dos_int86(int vec);
70:
71: void *dos_getmemory(int size);
72: void dos_freememory(void *ptr);
73:
74: void dos_usleep(int usecs);
75:
76: int dos_getheapsize(void);
77:
78: extern regs_t regs;
79:
80: #endif // _DOSISMS_H_
81:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.