home *** CD-ROM | disk | FTP | other *** search
/ Enigma Amiga Life 113 / EnigmaAmiga113CD.iso / software / sviluppo / quake_src / dosisms.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-06-17  |  2.4 KB  |  101 lines

  1. /*
  2. Copyright (C) 1996-1997 Id Software, Inc.
  3.  
  4. This program is free software; you can redistribute it and/or
  5. modify it under the terms of the GNU General Public License
  6. as published by the Free Software Foundation; either version 2
  7. of the License, or (at your option) any later version.
  8.  
  9. This program is distributed in the hope that it will be useful,
  10. but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
  12.  
  13. See the GNU General Public License for more details.
  14.  
  15. You should have received a copy of the GNU General Public License
  16. along with this program; if not, write to the Free Software
  17. Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  18.  
  19. */
  20.  
  21. //
  22. // dosisms.h: I'd call it dos.h, but the name's taken
  23. //
  24.  
  25. #ifndef _DOSISMS_H_
  26. #define _DOSISMS_H_
  27.  
  28. int dos_lockmem(void *addr, int size);
  29. int dos_unlockmem(void *addr, int size);
  30.  
  31. typedef union {
  32.   struct {
  33.     unsigned long edi;
  34.     unsigned long esi;
  35.     unsigned long ebp;
  36.     unsigned long res;
  37.     unsigned long ebx;
  38.     unsigned long edx;
  39.     unsigned long ecx;
  40.     unsigned long eax;
  41.   } d;
  42.   struct {
  43.     unsigned short di, di_hi;
  44.     unsigned short si, si_hi;
  45.     unsigned short bp, bp_hi;
  46.     unsigned short res, res_hi;
  47.     unsigned short bx, bx_hi;
  48.     unsigned short dx, dx_hi;
  49.     unsigned short cx, cx_hi;
  50.     unsigned short ax, ax_hi;
  51.     unsigned short flags;
  52.     unsigned short es;
  53.     unsigned short ds;
  54.     unsigned short fs;
  55.     unsigned short gs;
  56.     unsigned short ip;
  57.     unsigned short cs;
  58.     unsigned short sp;
  59.     unsigned short ss;
  60.   } x;
  61.   struct {
  62.     unsigned char edi[4];
  63.     unsigned char esi[4];
  64.     unsigned char ebp[4];
  65.     unsigned char res[4];
  66.     unsigned char bl, bh, ebx_b2, ebx_b3;
  67.     unsigned char dl, dh, edx_b2, edx_b3;
  68.     unsigned char cl, ch, ecx_b2, ecx_b3;
  69.     unsigned char al, ah, eax_b2, eax_b3;
  70.   } h;
  71. } regs_t;
  72.  
  73. unsigned int ptr2real(void *ptr);
  74. void *real2ptr(unsigned int real);
  75. void *far2ptr(unsigned int farptr);
  76. unsigned int ptr2far(void *ptr);
  77.  
  78. int dos_inportb(int port);
  79. int dos_inportw(int port);
  80. void dos_outportb(int port, int val);
  81. void dos_outportw(int port, int val);
  82.  
  83. void dos_irqenable(void);
  84. void dos_irqdisable(void);
  85. void dos_registerintr(int intr, void (*handler)(void));
  86. void dos_restoreintr(int intr);
  87.  
  88. int dos_int86(int vec);
  89.  
  90. void *dos_getmemory(int size);
  91. void dos_freememory(void *ptr);
  92.  
  93. void  dos_usleep(int usecs);
  94.  
  95. int dos_getheapsize(void);
  96.  
  97. extern regs_t regs;
  98.  
  99. #endif  // _DOSISMS_H_
  100.  
  101.