📄 bioscomp.c
字号:
/* Project: HARTIK 3.0 */
/* Description: Hard Real TIme Kernel for 386 & higher machines */
/* Author: Gerardo Lamastra */
/* Date: 9/5/96 */
/* Revision: Beta 1.0 */
/* File: bioscomp.C */
/* Emulation of X_callBIOS() function under 16 bit systems */
#include <hw86.h>
#include <stdlib.h>
#include <mem.h>
static INTERRUPT original_BIOS_IDT[256];
static INTERRUPT * const real_IDT = (INTERRUPT *)0;
void X_callBIOS_init(void)
{
register i;
for (i = 0; i < 256; i++) original_BIOS_IDT[i] = *(real_IDT+i);
}
void X_callBIOS(int service,X_REGS16 *in,X_REGS16 *out,X_SREGS16 *s)
{
INTERRUPT tmp = *(real_IDT + service);
VM_disable();
*(real_IDT + service) = original_BIOS_IDT[service];
int86x(service,in,out,s);
*(real_IDT + service) = tmp;
VM_enable();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -