Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

409 lines
8.9 KiB

/*
* VPC-XT Revision 1.0
*
* Title : BIOS definitions
*
* Description : Defintions for users of the BIOS
*
* Author : Henry Nash
*
* Notes : This is a copy of bios.h from henry/kernel taken on
* 17 dec 86. Several lines have been added to support
* the hard disk bios (marked HD-dr). See also bios.c.
*
* Mods: (r2.21): Added an external declaration of rom_basic().
*/
/* SccsID[]="@(#)bios.h 1.47 06/28/95 Copyright Insignia Solutions Ltd."; */
/*
* ============================================================================
* Structure/Data definitions
* ============================================================================
*/
/*
* The following define the BOP call numbers for the BIOS functions.
*/
#define BIOS_RESET 0x0
#define BIOS_DUMMY_INT 0x1
#define BIOS_UNEXP_INT 0x2
#define BIOS_DRIVER_INCOMPAT 0x7
#define BIOS_TIMER_INT 0x8
#define BIOS_KB_INT 0x9
#define BIOS_DISK_INT 0xD
#define BIOS_DISKETTE_INT 0xE
#define BIOS_PRINT_SCREEN 0x5
#define BIOS_VIDEO_IO 0x10
#define BIOS_EQUIPMENT 0x11
#define BIOS_MEMORY_SIZE 0x12
#define BIOS_DISK_IO 0x13
#define BIOS_RS232_IO 0x14
#define BIOS_CASSETTE_IO 0x15
#define BIOS_KEYBOARD_IO 0x16
#define BIOS_PRINTER_IO 0x17
#define BIOS_BASIC 0x18
#define BIOS_BOOT_STRAP 0x19
#define BIOS_TIME_OF_DAY 0x1A
#define BIOS_KEYBOARD_BREAK 0x1B
#define BIOS_USER_TIMER_INT 0x1C
#define BIOS_EXTEND_CHAR 0x1F
#define BIOS_DISKETTE_IO 0x40
#define EGA_FONT_INT 0x43 /* Pointer for the EGA graphics font */
/*
* Private bootstrap functions
*/
#define BIOS_BOOTSTRAP_1 0x90
#define BIOS_BOOTSTRAP_2 0x91
#define BIOS_BOOTSTRAP_3 0x92
/*
* Private diskette functions
*/
#define BIOS_FL_OPERATION_1 0xA0
#define BIOS_FL_OPERATION_2 0xA1
#define BIOS_FL_OPERATION_3 0xA2
#define BIOS_FL_RESET_2 0xA3
/*
* Private hard disk function
*/
#define BIOS_HDA_COMMAND_CHECK 0xB0
/*
* Mouse driver functions
*/
#define BIOS_MOUSE_INSTALL1 0xB8
#define BIOS_MOUSE_INSTALL2 0xB9
#define BIOS_MOUSE_INT1 0xBA
#define BIOS_MOUSE_INT2 0xBB
#define BIOS_MOUSE_IO_LANGUAGE 0xBC
#define BIOS_MOUSE_IO_INTERRUPT 0xBD
#define BIOS_MOUSE_VIDEO_IO 0xBE
/*
* Get date function
*/
#define BIOS_GETDATE 0xBF
/*
* Re-entrant CPU return function
*/
#define BIOS_CPU_RETURN 0xFE
/*
* The following defines the structure of the Bios internal storage area.
*/
#define BIOS_VAR_SEGMENT 0x40
#define BIOS_VAR_START ((sys_addr)BIOS_VAR_SEGMENT * 16L)
/*
* Address of memory size bios word variable.
*/
#define MEMORY_VAR (BIOS_VAR_START + 0x13)
/*
* The Bios FDC result data storage area
*/
#define BIOS_FDC_STATUS_BLOCK BIOS_VAR_START + 0x42
/*
* The BIOS hard disk data area. These variables are updated to their correct
* values before every exit from disk_io.c/disk.c to the cpu.
*/
#define CMD_BLOCK BIOS_VAR_START + 0x42
/*
* The Bios Reset Flag
*/
#define RESET_FLAG BIOS_VAR_START + 0x72
#define DISK_STATUS BIOS_VAR_START + 0x74
#define HF_NUM BIOS_VAR_START + 0x75
#define CONTROL_BYTE BIOS_VAR_START + 0x76
#define PORT_OFF BIOS_VAR_START + 0x77
/*
* Bios Buffer space
*/
typedef union {
word wd;
struct {
half_word scan;
half_word ch;
} byte;
} KEY_OCCURRENCE;
#define BIOS_KB_BUFFER_START (BIOS_VAR_START + 0x80)
#define BIOS_KB_BUFFER_END (BIOS_VAR_START + 0x82)
#define BIOS_KB_BUFFER_HEAD (BIOS_VAR_START + 0x1a)
#define BIOS_KB_BUFFER_TAIL (BIOS_VAR_START + 0x1c)
#define BIOS_KB_BUFFER 0x1e
#define BIOS_KB_BUFFER_SIZE 16
#define BIOS_VIRTUALISING_BYTE (BIOS_VAR_START + 0xAC)
#define SOFT_FLAG 0x1234 /* value indicating a soft reset */
/*
* The number of diskettes supported by the Bios
*/
#define MAX_DISKETTES 4
#define MODEL_BYTE 0xfc /* system model byte */
#define SUB_MODEL_BYTE 02 /* system sub model type byte */
#define BIOS_LEVEL 0 /* BIOS revision level */
/*
* ============================================================================
* External declarations and macros
* ============================================================================
*/
extern void (*BIOS[])();
#ifndef bop
#define bop(n) (*BIOS[n])()
#endif /* bop */
#ifdef PTY
extern void com_bop_pty();
#endif
#ifdef GEN_DRVR
extern void gen_driver_io();
#endif
#ifdef LIM
extern void emm_init();
extern void emm_io();
extern void return_from_call();
#endif
#ifdef SUSPEND
extern void send_script();
#endif
#ifdef CDROM
extern void cdrom_ord_fns();
extern void cdrom_ext_fns();
extern void bcdrom_io();
#endif /* CDROM */
extern void worm_init();
extern void worm_io();
extern void cmd_install();
extern void cmd_load();
#ifdef DPMI
extern void DPMI_2F();
extern void DPMI_31();
extern void DPMI_general();
extern void DPMI_int();
extern void DPMI_r0_int();
extern void DPMI_exc();
extern void DPMI_4B();
#endif
extern void reset();
extern void illegal_bop();
extern void illegal_op_int();
extern void illegal_dvr_bop();
extern void video_io();
extern void equipment();
extern void memory_size();
extern void diskette_io();
extern void diskette_int();
extern void disk_int();
extern void not_supported();
extern void rom_basic();
extern void keyboard_io();
extern void keyboard_int();
extern void printer_io();
extern void bootstrap();
extern void time_of_day();
extern void kb_idle_poll();
extern void time_int();
extern void disk_io();
extern void print_screen();
extern void rs232_io();
extern void dummy_int();
extern void unexpected_int();
extern void Get_build_id();
#ifdef WIN_VTD
extern void VtdTickSync IPT0();
#endif /* WIN_VTD */
#ifdef EGG
extern void ega_video_io();
#endif
extern void re_direct();
extern void D11_int();
extern void int_287();
extern void mouse_install1();
extern void mouse_install2();
extern void mouse_int1();
extern void mouse_int2();
extern void mouse_io_interrupt();
extern void mouse_io_language();
extern void mouse_video_io();
extern void mouse_EM_callback();
extern void host_mouse_install1();
extern void host_mouse_install2();
extern void time_of_day_init();
extern void keyboard_init();
extern void cassette_io();
extern void fl_operation1();
extern void fl_operation2();
extern void fl_operation3();
extern void fl_reset2();
extern void fl_dummy();
extern void hda_command_check(); /* HD-dr */
extern void host_unsimulate();
extern void bootstrap1();
extern void bootstrap2();
extern void bootstrap3();
#ifdef NOVELL
extern void DriverInitialize();
extern void DriverReadPacket();
extern void DriverSendPacket();
extern void DriverMulticastChange();
extern void DriverCloseSocket();
extern void DriverReset();
extern void DriverShutdown();
extern void DriverAddProtocol();
extern void DriverChangePromiscuous() ;
extern void DriverOpenSocket() ;
extern void DriverCloseSocket() ;
#ifdef NOVELL_CFM
extern void DriverCheckForMore() ;
#endif
#ifdef V4CLIENT
extern void DriverChangeIntStatus() ;
#endif /* V4CLIENT */
#endif
#ifdef MSWDVR
extern void ms_windows();
extern void msw_mouse();
extern void msw_copy();
extern void msw_copyInit();
extern void msw_keybd();
#endif
#ifdef NOVELL_IPX
extern void IPXResInit ();
extern void IPXResEntry ();
extern void IPXResInterrupt ();
#endif
#ifdef NOVELL_TCPIP
extern void TCPResInit ();
extern void TCPResEntry ();
#endif
#ifdef WINSOCK
extern void ISWSEntry();
#endif /* WINSOCK */
#ifdef SWINAPI
extern void User_call IPT0();
extern void Gdi_call IPT0();
extern void Swinapi_bop IPT0();
#endif /* SWINAPI */
#if defined(SOFTWIN_API) || defined(SWIN_HFX)
extern void SoftWindowsInit IPT0();
extern void SoftWindowsTerm IPT0();
#endif /* SOFTWIN_API or SWIN_HFX */
#if defined(SOFTWIN_API)
extern void SoftWindowsApi IPT0();
#endif /* SOFTWIN_API */
#ifdef SWIN_HAW
extern void msw_sound IPT0();
#endif /* SWIN_HAW */
#ifdef ANSI
extern void host_reset(void);
#ifndef NTVDM
extern void reboot(void);
#endif /* ! NTVDM */
extern void display_string(char *);
extern void clear_string(void);
#else
extern void host_reset();
#ifndef NTVDM
extern void reboot();
#endif /* ! NTVDM */
extern void display_string();
extern void clear_string();
#endif /* ANSI */
#ifdef ANSI
extern void smeg_collect_data(void);
extern void smeg_freeze_data(void);
#else
extern void smeg_collect_data();
extern void smeg_freeze_data();
#endif /* ANSI */
extern void softpc_version IPT0();
#ifdef NTVDM
/* MS bop stubs */
extern void MS_bop_0(void), MS_bop_1(void), MS_bop_2(void);
extern void MS_bop_3(void), MS_bop_4(void), MS_bop_5(void);
extern void MS_bop_6(void), MS_bop_7(void), MS_bop_8(void);
extern void MS_bop_9(void), MS_bop_A(void), MS_bop_B(void);
extern void MS_bop_C(void), MS_bop_D(void), MS_bop_E(void);
extern void MS_bop_F(void);
extern void switch_to_real_mode(void);
#endif /* NTVDM */
#ifdef GISP_CPU
extern void hg_bop_handler IPT0();
#endif /* GISP_CPU */
#ifdef HFX
extern void test_for_us IPT0();
#endif /* HFX */
#ifdef DOS_APP_LIC
extern void DOS_AppLicense IPT0();
#endif
IMPORT int soft_reset;
#if defined(SPC386) && defined(WDCTRL_BOP)
extern void wdctrl_bop IPT0();
#endif /* SPC386 && WDCTRL_BOP */