0,0 → 1,100 |
/* |
Copyright (C) 1996-1997 Id Software, Inc. |
|
This program is free software; you can redistribute it and/or |
modify it under the terms of the GNU General Public License |
as published by the Free Software Foundation; either version 2 |
of the License, or (at your option) any later version. |
|
This program is distributed in the hope that it will be useful, |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
|
See the GNU General Public License for more details. |
|
You should have received a copy of the GNU General Public License |
along with this program; if not, write to the Free Software |
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
|
*/ |
|
// |
// dosisms.h: I'd call it dos.h, but the name's taken |
// |
|
#ifndef _DOSISMS_H_ |
#define _DOSISMS_H_ |
|
int dos_lockmem(void *addr, int size); |
int dos_unlockmem(void *addr, int size); |
|
typedef union { |
struct { |
unsigned long edi; |
unsigned long esi; |
unsigned long ebp; |
unsigned long res; |
unsigned long ebx; |
unsigned long edx; |
unsigned long ecx; |
unsigned long eax; |
} d; |
struct { |
unsigned short di, di_hi; |
unsigned short si, si_hi; |
unsigned short bp, bp_hi; |
unsigned short res, res_hi; |
unsigned short bx, bx_hi; |
unsigned short dx, dx_hi; |
unsigned short cx, cx_hi; |
unsigned short ax, ax_hi; |
unsigned short flags; |
unsigned short es; |
unsigned short ds; |
unsigned short fs; |
unsigned short gs; |
unsigned short ip; |
unsigned short cs; |
unsigned short sp; |
unsigned short ss; |
} x; |
struct { |
unsigned char edi[4]; |
unsigned char esi[4]; |
unsigned char ebp[4]; |
unsigned char res[4]; |
unsigned char bl, bh, ebx_b2, ebx_b3; |
unsigned char dl, dh, edx_b2, edx_b3; |
unsigned char cl, ch, ecx_b2, ecx_b3; |
unsigned char al, ah, eax_b2, eax_b3; |
} h; |
} regs_t; |
|
unsigned int ptr2real(void *ptr); |
void *real2ptr(unsigned int real); |
void *far2ptr(unsigned int farptr); |
unsigned int ptr2far(void *ptr); |
|
int dos_inportb(int port); |
int dos_inportw(int port); |
void dos_outportb(int port, int val); |
void dos_outportw(int port, int val); |
|
void dos_irqenable(void); |
void dos_irqdisable(void); |
void dos_registerintr(int intr, void (*handler)(void)); |
void dos_restoreintr(int intr); |
|
int dos_int86(int vec); |
|
void *dos_getmemory(int size); |
void dos_freememory(void *ptr); |
|
void dos_usleep(int usecs); |
|
int dos_getheapsize(void); |
|
extern regs_t regs; |
|
#endif // _DOSISMS_H_ |
|