|
|
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.