76 lines
1.7 KiB
C
76 lines
1.7 KiB
C
/*++ BUILD Version: 0011 // Increment this if a change has global effects
|
|
|
|
Copyright (c) 1994 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
x86bios.h
|
|
|
|
Abstract:
|
|
|
|
This header file defines the interfaces to the x86 bios emulator.
|
|
|
|
Author:
|
|
|
|
David N. Cutler (davec) 23-Jun-1994
|
|
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
#ifndef _X86BIOS_
|
|
#define _X86BIOS_
|
|
|
|
#if !defined(_X86_)
|
|
|
|
//
|
|
// Define x86 bios emulator status codes.
|
|
//
|
|
|
|
typedef enum _X86BIOS_STATUS {
|
|
x86BiosSuccess, // X86 Emulator successfully executed adapter initialization or INT call.
|
|
x86BiosNoVideoBios, // Adapter can not be initialized because a BIOS signature was not found.
|
|
x86BiosInvalidChecksum, // Bad checksum for Video BIOS.
|
|
x86BiosInvalidInstruction, // X86 Emulator attempted to execute an invalid instruction.
|
|
x86BiosHaltInstruction, // X86 Emulator attempted to execute a HALT instruction.
|
|
x86BiosWaitInstruction, // X86 emulator attempted to execute a WAIT instruction.
|
|
x86BiosTrapFlagAsserted, // Trap flag became set. An INT 1 handler does not exist.
|
|
x86BiosDivideByZero // DIV or IDIV instruction attempted to divide by zero.
|
|
} X86BIOS_STATUS;
|
|
|
|
//
|
|
// Define x86 bios emulator context structure.
|
|
//
|
|
|
|
typedef struct _X86BIOS_CONTEXT {
|
|
ULONG Eax;
|
|
ULONG Ebx;
|
|
ULONG Ecx;
|
|
ULONG Edx;
|
|
ULONG Esi;
|
|
ULONG Edi;
|
|
ULONG Ebp;
|
|
} X86BIOS_CONTEXT, *PX86BIOS_CONTEXT;
|
|
|
|
X86BIOS_STATUS
|
|
X86BiosInitializeAdapter(
|
|
ULONG Address
|
|
);
|
|
|
|
X86BIOS_STATUS
|
|
X86BiosExecuteInt(
|
|
USHORT Type,
|
|
PX86BIOS_CONTEXT Arguments
|
|
);
|
|
|
|
VOID
|
|
X86BiosInitialize(
|
|
ULONG IsaIoVirtualBase,
|
|
ULONG IsaMemoryVirtualBase
|
|
);
|
|
|
|
#endif
|
|
|
|
#endif // _x86BIOS_
|