;
;       Microsoft Confidential
;       Copyright (C) Microsoft Corporation 1991
;       All Rights Reserved.
;
; MSBDATA.INC
;
; This file defines some locations in the BIOS data segment that are
; accessed by code outside the BIOS, e.g. by the DOS and by the ROMDOS
; loader.
;
        include oemconf.inc

        ifndef  In_Bios         ; if we're actually running in the BIOS,
;                               ;  then our segment is already open and
;                               ;  we'll actually generate code

Bdata   segment at 70h
        assume  cs:Bdata
        org     3               ; fixed location in Bios_Data segment
int_2f  =       0               ; define dummy so msbdata will assemble
i2f_handler  =  0               ; define dummy so msbdata will assemble

        endif

        public  dosdatasg
DosDataSg dw    0               ; Let DOS find it's data segment through here
                                ; Note: this value is set by the ROMDOS loader
                                ; to tell where the DOS data and init code
                                ; has been loaded into RAM


;       dos's int 2f handler will exit via a jump through here.  This is
;         how the BIOS hooks int2f

        public  bios_i2f        ; M012
bios_i2f proc   far
;       jmp     int_2f          ; assembler won't generate forward
;                               ;  reference to a far label
IFDEF In_Bios
; VCB - Jump directly to INT 2F handler
        db      0eah
        dd      i2f_handler
ELSE
        db      0eah
        dd      int_2f          ; generate manual far jump
ENDIF
bios_i2f endp

ifdef   ROMEXEC
        public  romstartaddr
romstartaddr    dw      ROMEXEC_SEG ; The start address for the romfind routines
                                    ; is obtained from here (70:A)
else
        public  romstartaddr
romstartaddr    dw      0       ; The start address for the romfind routines
                                ; This is to maintain binary compatibilty
                                ;  with DISK based DOS 5.0
endif


; This is a byte used for special key handling in the resident
; console device driver.  It must be here so that it can be included
; in the WIN386 instance table (in INC\LMSTUB.ASM).

        public  altah

altah           db      0       ;special key handling


ifdef   ROMDOS
; ROMDOS support:
;   The following values in the BIOS data segment are set by the ROMDOS
;   loader at boot time before the BIOS starts running.

        public  BIOS_Res
BIOS_Res        dw      ?       ; segment addr of BIOS resident code (in ROM)

        public  DOS_Res
DOS_Res         dw      ?       ; segment addr of DOS resident code (in ROM)

        public  BootFlags
BootFlags       dw      ?       ; boot options from CMOS or multiboot menu


endif
;
; End of ROMDOS support

        ifndef  In_Bios
Bdata   ends
        endif
