;	[]===========================================================[]
;
;	NOTICE: THIS PROGRAM BELONGS TO AWARD SOFTWARE INTERNATIONAL(R)
;	        INC. IT IS CONSIDERED A TRADE SECRET AND IS NOT TO BE 	
;	        DIVULGED OR USED BY PARTIES WHO HAVE NOT RECEIVED	
;	        WRITTEN AUTHORIZATION FROM THE OWNER.
;
; 	[]===========================================================[]
;----------------------------------------------------------------------------
;Rev	Date	 Name	Description
;----------------------------------------------------------------------------
;R87A	03/23/99 ATY	Move Code to cfeature.asm.
;R93	03/22/99 PAL	Move Lan Boot String to IOFEAT.ASM
;R86B	03/22/99 RAY	Pentium III CPU processor number selection does
;			not apply to Pentium PRO.
;R92	03/10/99 RCH	Added a setup item for choosing CPUID instruction
;			for Cyrix 6x86/MII CPU. 
;			1. The system can not install Netware 5.0 if CPUID 
;			   is enabled.
;			2. Software can not use MMX instructure if CPUID
;			   is disabled.
;R88A	02/12/99 STV	Fixed "Clear DMI EVENT LOG POOL" func.
;R91	02/08/99 DRS	This function depends on Support_SumScr_Item definition
;			You can enable/disable the System configuration
;R90	02/06/99 RCH	Added AMD/K7 CPU support.
;R89	02/05/99 KVN    Fixed show wrong data for "Event Log Capacity" item
;R88	02/04/99 KVN    Fixed DMI function 54h error in POST
;R87	02/04/99 ATY	Added GPIO7 Control PCMCIA,GPIO5 Control Ethernet.
;R86A	02/02/99 RCH	Pentium III CPU processor number selection become
;			stanadard feature. BIOS will hide the CMOS setup
;			if the plugged CPU is not Pentium III.
;R78C	01/29/99 STV	Fixed show DMI Event Log in SETUP.
;R86	01/28/99 RCH	Support "Processor Number CPU" for Penitum III series
;			CPUs. Switch "PSN_CMOS" & "PSN_CMOS_BIT" are required.
;
;R85	12/12/98 RCH	Discard "Video BIOS Shadow" setup item for platform
;			without ISA Bus support like Intel/i820 & i810 chipset
;R84	11/09/98 JMS	Do not show "E,A,SCSI" & "F,A,SCSI" if define 
;			"NO_SUPPORT_4_IDE"
;R23B	09/22/98 RIC	Fix that defining "NO_PCI_IDE_CARD" still show 
;			"PCI IDE 2nd channel item" in Bfeature
;R83	09/15/98 KNH	This function depends on Three_FullLogo_CMOS definition
;R78B	09/10/98 STV	Fixed save DMI Eveny Log error code
;R82	09/10/98 RCH	Added POST message control by CMOS setting
;M02	09/02/98 RAY	Adapt Preboot-Agent from code modified by US
;	(05/04/98 TJM)  Add Phone Number Handler to Special_Do
;
;M01  	09/02/98 RAY	Adapt Preboot-Agent from code modified by US
;	(01/29/98 TJM)  Added MPC 2.0 (Formerly RPB) modifications
;
;R81	08/14/98 ATY	Customer request change boot of order.
;R54A	08/06/98 LAW	change "Fdd_install_flag_selectable" default
;R80	07/27/98 KVN	Add a new boot sequence 'A,CDROM,C' for choise.If you
;			want to use it.You should define 'BOOT_FORM_A_CD_C' in
;			BIOS.CFG
;R78A	06/30/98 STV	Fixed R78 save DMI Eveny Log error code not error 
;			code string address.
;R79	06/24/98 KVN	Remove all BFEATURE help string to XGROUP(xfile.asm)
;R66A	06/23/98 LAW	Change FDC FIFO CMOS Location
;R78	06/22/98 STV	1.Added POST Errors save in to DMI_EVENT_LOG on
;			  POST_ERROR_TO_DMI_EVENT_LOG definition.The definition
;			  first must DMI_GPNV_SUPPORT definition.
;			2.This function depends on DMI_EVENT_LOG_IN_SETUP definition
;			  & must define EDMI_EVENT_LOG_CMOS, EDMI_EVENT_LOG_CMOS_BIT,
;			  CDMI_EVENT_LOG_CMOS, CDMI_EVENT_LOG_CMOS_BIT
;			  DMI Event Log			: Disabled/Enabled
;			  Clear All DMI Event Log	: No/Yes
;			  View DMI Event Log		: [Enter]
;			  Mark DMI Events as Read	: [Enter]
;			  Event Log Capacity		: Space Available/Space FULL
;			  Event Log Validity		: Valid
;			  NOTE:This function must first DMI_GPNV_SUPPORT & 
;			       POST_ERROR_TO_DMI_EVENT_LOG definition.
;R77	04/22/98 DRS	This function depends on LOGO_SHOW_Selectable definition
;			Add item to decide that Full Screen LOGO will be hidden
;R76	03/20/98 KVN	Add a new boot sequence 'CDROM,A,C' for choise.If you
;			want to use it.You should define 'BOOT_FORM_CD_A_C' in
;			BIOS.CFG
;R75	03/13/98 RAY	Add Quiet_POST_SUPPORT
;R58A	03/10/98 RIC	Add "Fast_A20_Default_Disable" define for some chip
;			is unstable in Fast A20 working and special program.
;			(ex: Check-It, some Virus resident program)
;R74	03/06/98 RCH	Change default value of "virus warning" to "enable"
;			if ChipAway anti-virus is implemented
;R73	02/02/98 KGN	Add defin No_C8_DF_Shadow_Item for save F000 Code
;			remove C800-DFFF shadow menuitem from bfeature
;R72	12/11/97 KGN	Change Define for Numlock Item, FdcSeek_Item
;R71	10/23/97  RCH	Added Pentium II L2 cache ECC controlled by user
;			CMOS setup.
;R70	10/21/97 RCH	Added option to skip item "BootSpeed" due to current
;			platform have no speed control
;R69	10/06/97 RCH	Added boot from LAN CMOS setup support
;R68	08/21/97 BAR	Added S.M.A.R.T function to HDD_Smart_Item 
;R67A	08/08/97 RIC	Move FddAccess_Item to the right of BFEATURE Setup.
;R67	08/05/97 RCH	Disable FDD port if type user password and FDD access
;			is selected with "supervisor only" for special
;			customerization
;R66	06/17/97 LAW	added "FDC_FIFO_SELECTABLE" for Winbond 83877/83977...
;			use BorderWare Firewall Server install hang at boot
;R65	06/13/97 KVN	Support DriveA_Boot_Permit and HDD_write_protect
;			function by setup option
;R64 	06/06/97 PTY	Add code for RPB
;R63	05/28/97 RCH	Change string display for MP_TBL_SELECTABLE
;R62	05/26/97 DNL	Add "Support_1_FDD" definition to save more space
;R61A	05/07/97 KVN	Add ZIP100 bootable same as LS120
;R61	05/01/97 KVN	Add LS120 bootable even floppy A exist
;R59A	10/16/96 STV	Support only c boot be standard function
;R60	10/16/96 AVN	Added Onboard NCR SCSI IRQ Selectable by define
;			'ONBOARD_NCR_IRQ_SETUPABLE/NCR_CMOS/NCR_IRQ_BITS'
;R59	10/14/96 KVN	Added "support_only_C_boot" definition for support only
;			drive C boot
;R58	10/11/96 RCH	Don't build menuitem if defined "NO_PARITY_ITEM" or
;			"NO_FAST_A20" to save codes
;R57	10/07/96 RCH	Change item string for MP_TBL_SELECTABLE
;R56	10/04/96 KVN	Added boot HDD selectable function
;R55	09/21/96 RAY	Save codes
;R54	09/12/96 LAW	Added "Fdd_install_flag_selectable" for test Windows
;			logo fdd disable Free IRQ6
;R50C	08/29/96 LRY	Define	'PCI_VGA_IRQ_SETUP_ITEM	equ 0'
;			for for VGA IRQ default disable 
;R53	08/02/96 DNL	Change default setting for notebook power management
;R52	07/09/96 HTR	VGA_IRQ_ITEM_IN_PCIFEAT option added
;R51	07/03/96 TNY	Add "SWAP_FDD_SHOW" option.
;R50B	06/28/96 RCH	Let the setup default is enable for VGA IRQ 
;			assignment
;R50A	06/03/96 RCH	Added an option to put the item to the other setup
;			screen for existing BIOS
;R50	05/28/96 TNY	Added an item to assign PCI VGA IRQ yes or not.
;			(option:PCI_VGA_IRQ_SETUP_ITEM)
;R49	05/20/96 RCH	Added an item to control delay time before HDD initial
;R29A	04/29/96 LRY	PS/2 mouse item can move to other setup screen
;R48	04/02/96 RCH	Hide some standard items for special customer (ECS)
;			"floppy seek","boot up speed" & "typematic rate"
;R47	03/21/96 KVN	Support Floppy B drive bootable when drive A is error
;			(use software swap floppy function)
;R46	03/14/96 HTR	Typematic error fixed
;R45	03/07/96 RCH	Added item for select memory report for OS2 to support
;			DRAM more than 64Mb.
;R44	02/28/96 RCH	Added item for controlling MP table while only one
;			CPU plugged on the MP system. Must define:
;			'MP_TBL_SELECTABLE','MP_TBL_CMOS'and 'MP_TBL_CMASK'
;R43	02/14/96 RAY	Add option: Never_Disable_Password
;R42	01/31/96 TNY	Added WATCH_DOG_ONLY definition.
;R41A	01/12/96 AVN	Added Remove Parity Item From Bfeature.asm To Another
;			Feature.
;R41	12/29/95 RCH	Added special string for ECC instead of parity
;R40	12/28/95 KVN	Fixed boot sequence for none CDROM
;R39	11/23/95 RCH	Enable block as default if define NEW_IDE_MODE_3
;R38	11/21/95 HTR	Modify some default default requested by TATUNG
;R35A	10/02/95 HTR	Modify Special_IDE_ITEM 
;R37	09/06/95 KVN	Added floppy write protect function
;R36	08/29/95 RCH	Set 2nd channel of PCI/IDE to disable requested by
;			VTECH
;R35	08/12/95 HTR	Special_IDE_ITEM option added
;R34	07/18/95 AVN	Added ADVANTECH Special Item.
;R33	07/17/95 RCH	Bit 1 of 3CH is used for CD-ROM bootability , BIOS
;			maker should claim which CMOS you want to use for
;			"Turbo Switch Input"
;R32	07/14/95 RCH	Added PCI/VGA Pallete snopping setup item
;R31	07/14/95 RCH	The usage of "PS2 mouse" item is conflict with "halt
;			on" item, and there is no common CMOS location to use
;			so the BIOS maker should define the CMOS usage in 
;			BIOS.CFG
;R14A	05/08/95 KVN	if "Turbo_Pin_Handler" compile codes relocated
;R30	05/05/95 KVN	Add CD-ROM bootable feature
;R29	03/27/95 DNL	Added "PS2_Setupable" option to turn on/off PS2 mouse
;R16A	02/14/95 RAY	R16 should also include IdeBlock_Str 
;R28	01/25/95 RCH	The CYRIX C6 is out of market, so kill this item
;R23A	01/17/95 RAY	Add option to skip PCI IDE 2nd channel item in Bfeature
;R27	01/17/95 RCH	Some customers don't display boot speed
;R26	01/17/95 RCH	Show "Port 92H" instead of "Gate A20" for special
;			customer
;R25	01/11/95 RCH	Move IDE mode 3 support to cfeature for non-std chip
;R24	12/29/94 RCH	Mask E000-EFFF shadow if 128K BIOS used
;R23	11/05/94 DNL	Added PCI/IDE second channel control
;R22	11/04/94 RCH	Change CMOS bits definition for IDE 32bit transfer
;R21A	10/24/94 RAY	Fix coding mistake of R21
;R21	10/19/94 RCH	Set no virus help string default
;R20	10/14/94 BEN	Added Internal_Cache_Always_Enable.
;R19	09/26/94 RCH	Added IDE auto-detect time-out control
;R18	09/13/94 DNL	Added IDE PIO mode 3 support
;R17	08/23/94 RCH	Don't support F000 shadow any more , always enable it
;R16	08/09/94 RCH	Some M/B maker suggest IDE block mode & 32-bit 
;			transfer move to other setup screen
;R15	08/04/94 RCH	Added IDE 32-bit transfer support
;R14	07/18/94 RAY	if "No_Turbo_Pin_Handler" do not compile codes reloated
;R13	07/18/94 RAY	Add option to skip HELP messages for "VIRUS WARNING"
;R12	07/05/94 RCH	Added default parity disable support
;R11	05/21/94 RCH	Virus warning default is disable , boot sequence is
;			"A,C"
;R10	03/08/94 RCH	Shift one line if it is a 128k BIOS
;R09	01/11/94 RCH	Set system & video BIOS defautl enabled and CPU clock
;			changed to high
;R08	12/05/93 KVN	Add swap A and B drive function.
;R07	10/29/93 RCH	Added E000H shadow 64k support
;R06	09/03/93 DNL	Add Cyrix C6 Seletion item
;R05	08/26/93 RAY	Add Turbo Switch input item
;R04	05/04/93 RCH	Change some default values:
;			 1. boot sequence - C,A
;			 2. Quick Post    - enable
;			 3. Floppy Seek   - disable
;			 4. Gate A20      - fast
;R03	05/03/93 RCH	Disable E000-EFFF shadow if VGA is at onboard E000H
;R02	03/10/93 RCH	Set default to disable if chipset can not turn on
;			 DRAM parity check
;R01	02/27/93 RAY	If CPU cache does not exist, disable IntCache_Item
;R00	----	 ----	Initial Revision

		PAGE	56,132
                .386p			;R78
		.286

		include	bios.cfg
		include	common.equ
		include	bsetup.inc
		include	common.mac

		include	setup.ext
;;		include	cmos.equ

;M01 - starts
ifdef	RPB_ENABLED
		include rpb.cfg
endif	;RPB_ENABLED
;M01 - ends

		Extrn	Common_Startup_Str:Near
		Extrn	Std_Help_Str:Near
		Extrn	Ena_Str:Near
		Extrn	Dis_Str:Near
		extrn	PAGE_NAME_Y:ABS
		Extrn	NullStr:Near

;R78 -start
ifdef   DMI_EVENT_LOG_IN_SETUP

                include pnp.equ
                include dmi.equ
                extrn   PNP_BIOS_Real:far
                extrn   TEMP_MEM:abs
                extrn   Xcall_proc:near
                extrn   F000_Call_proc:near
                extrn   Find_handle_fun:near
                extrn   Post_Flash_Read:near

		extrn	Error_Tbl_List:near	;R78A
		extrn	GPNV_Error_List:near	;R78A
		extrn	DISP_BYTE_HEX2:near	;R78A
		extrn	DISP_BYTE_INT2:near	;R78A
		extrn	DISPLAY_CHAR:near	;R78A

		extrn	clear_dmi_event_log_func:far	;R88A
endif   ;DMI_EVENT_LOG_IN_SETUP
;R78 -end

		Public	BIOS_Feature_StartUp_Str
		Public	BIOS_Feature_START
		Public	BIOS_Feature_END
		Public	BIOS_STAT
		Public	BIOS_FEATURE_SPECIAL_DO
		Public	BIOS_FEATURE_SPECIAL_SHOW
		Public	BIOS_FEATURE_KEY_LIST
ifdef	HDD_SMART_Support
		Public	HddSmart_Str			;R68
endif	;HDD_SMART_Support

		public	Virus_Item
		public	IntCache_Item
		public	ExtCache_Item
		public	QuickPost_Item
		public	BootSeq_Item
ifndef	NO_FAST_A20					;R58
		public	GateA20_Item
endif;	NO_FAST_A20					;R58
		public	NumLock_Item

ifndef	HIDE_STD_ITEMS						;R48
		public  Fdcseek_Item
 ifndef	NO_SPEED_ITEM						;R70
		public	BootSpeed_Item
 endif;	NO_SPEED_ITEM						;R70
		public	TypeRate_Item
		public	TypeSpeed_Item
		public	TypeDelay_Item
endif;	HIDE_STD_ITEMS						;R48

ifndef	PARITY_ITEM_NOT_IN_BFEATURE			;R41A
ifndef	NO_PARITY_ITEM					;R58
		public	Parity_Item
endif;	NO_PARITY_ITEM					;R58
endif;	PARITY_ITEM_NOT_IN_BFEATURE			;R41A
		public	SECURITY_ITEM
;R17		public	F000_Item
ifndef	No_C8_DF_Shadow_Item				;R73
		public	C800_Item
		public	CC00_Item
		public	D000_Item
		public	D400_Item
		public	D800_Item
		public	DC00_Item
endif	;No_C8_DF_Shadow_Item				;R73
ifndef	PCI_BUS							;R32
ifndef	POST_SEG						;R24
		public	E000_Item
		public	E400_Item
		public	E800_Item
		public	EC00_Item
endif;	POST_SEG						;R24
endif;	PCI_BUS							;R32
;R79 start
		extrn	Help_Virus:near
		extrn	DMI_Event_Log_Help:near
		extrn	Clear_DMI_Event_Log_Help:near
		extrn	View_DMI_Event_Log_Help:near
		extrn	Mark_DMI_Events_Log_Help:near
;R79 end

DGROUP		GROUP	FCODE
FCODE		SEGMENT	WORD PUBLIC 'CODE'
		ASSUME	CS:DGROUP,DS:DGROUP

		db	'$ML$'		;Signature For Multi-Language	;R79

BIOS_Feature_Special_Do:
			dw	BIOS_Feature_Do_NO
ifdef	SWAP_FDD_SHOW									;R51
			dw	offset SwapFloppy_Item,offset SwapFloppy_Handler	;R51
endif;	SWAP_FDD_SHOW									;R51

;R78 -start
ifdef   DMI_EVENT_LOG_IN_SETUP
                        dw      offset View_DMI_Event_Log_Item,offset Goto_View_DMI_Event_Log_Show
                        dw      offset Mark_DMI_Events_Log_Item,offset Goto_Mark_DMI_Events_Log
endif   ;DMI_EVENT_LOG_IN_SETUP
;R78 -end

;M02 - starts
ifdef RPB_ENABLED
ifdef RPB_BFEATURE_ENABLED
if RPB_NVS_PHONE_NUMBER EQ 1
  dw  offset rpb_pnum_item1, offset RPB_PHONE_HANDLER
endif ; RPB_NVS_PHONE_NUMBER
endif ; RPB_BFEATURE_ENABLED
endif ; RPB_ENABLED
;M02 - ends

BIOS_Feature_Do_NO	EQU	(($ - offset BIOS_Feature_Special_Do)-2)/4

BIOS_Feature_Special_Show:
		dw	BIOS_Feature_Show_NO
;R55 		dw	offset IntCache_Item,offset Show_IntCache	;R01
ifdef	Turbo_Pin_Handler					;R14A
;R14A ifndef	No_Turbo_Pin_Handler				;R14
		dw	offset TB_SW_Input_Item,offset Show_TB_SW	;R05
;R14A endif	;No_Turbo_Pin_Handler				;R14
endif	;Turbo_Pin_Handler					;R14A
;R28 ifdef	CYRIXC6_SETUPABLE						;R06
;R28 		dw	offset Cyrix_C6_Item,offset Show_c6_item	;R06
;R28 endif;	CYRIXC6_SETUPABLE						;R06

;R78 -start
ifdef   DMI_EVENT_LOG_IN_SETUP
                        dw      offset Event_Log_Capacity_Item,offset Goto_Event_Log_Capacity_Show
endif   ;DMI_EVENT_LOG_IN_SETUP
;R78 -end

; M02 - starts
ifdef RPB_ENABLED
ifdef RPB_BFEATURE_ENABLED
if RPB_NVS_PHONE_NUMBER EQ 1
  dw  offset rpb_pnum_item1, offset rpb_show_phone_num
endif ; RPB_NVS_PHONE_NUMBER
endif ; RPB_BFEATURE_ENABLED
endif ; RPB_ENABLED
; M02 - ends

BIOS_Feature_Show_NO	EQU	(($ - offset BIOS_Feature_Special_Show)-2)/4

BIOS_Feature_Key_List:
		dw	offset Seq_Up		;function for UP_ARROW
		dw	offset Seq_Down		;function for DOWN_ARROW
		dw	offset Go_Left_Item	;function for LEFT_ARROW
		dw	offset Go_Right_Item	;function for RIGHT_ARROW

;--------------------------------------------------------------------------------

BIOS_Feature_StartUp_Str	label	near
		STRSHOW	<,,,offset Common_StartUp_Str>
		POS	<,30,PAGE_NAME_Y>
		db	'BIOS FEATURES SETUP'
		db	0


BIOS_Feature_START	LABEL	NEAR

;------------------------------------------------------------------
Xaxis	=	2
Yaxis	=	4					;R10
Virus_Item	label	near

;R74 - start
ifdef	Trend_AntiVirus	
		menuitem <0,\
			  offset Virus_Str,NOCT,80h,3CH,10000000b,\
			  offset Ena_str,0,1,Xaxis,Yaxis,0h,0h,offset Help_Virus>
else;	Trend_AntiVirus	
		menuitem <0,\
			  offset Virus_Str,NOCT,80h,3CH,10000000b,\
			  offset Ena_str,0,1,Xaxis,Yaxis,80h,80h,offset Help_Virus>
endif;	Trend_AntiVirus	
;R74 - end

Yaxis	= Yaxis + 1
;R20 - Begin
Internal_Cache_Flag	=	0
ifdef	Internal_Cache_Always_Enable
Internal_Cache_Flag	=	ITEMDISABLE
endif	;Internal_Cache_Always_Enable
;R20 - End
IntCache_Item	label	near
		menuitem <Internal_Cache_Flag,\
			  offset IntCache_Str,NOCT,2h,3bh,00000010b,\
			  offset Dis_Str,0,1,Xaxis,Yaxis,2,2,offset Std_Help_Str>

Yaxis	= Yaxis + 1
ExtCache_Item	label	near
CACHE_FLAG	=	ITEMDISABLE
ifdef	PRIMARY_CACHE_PRESENT
CACHE_FLAG	=	0
endif;	PRIMARY_CACHE_PRESENT
		menuitem <0+CACHE_FLAG,\
			  offset ExtCache_Str,NOCT,1h,3bh,00000001b,\
			  offset Dis_Str,0,1,Xaxis,Yaxis,1,1,offset Std_Help_Str>

;R71 - start
ifdef	KLAMATH_CPU_ONLY
 ifdef	L2ECC_CMOS
 Yaxis	= Yaxis + 1
 		public	L2Ecc_Item
 L2Ecc_Item	label	near
		menuitem <0,\
			  offset L2Ecc_Str,NOCT,10h,L2ECC_CMOS,L2ECC_CMOS_BIT,\
			  offset Ena_str,0,1,Xaxis,Yaxis,0,0,Offset Std_Help_Str>
 endif;	L2ECC_CMOS
;R86 - start
;R86A ifdef PSN_CMOS
;R86A Yaxis	= Yaxis + 1
;R86A 		public	PSN_Item
;R86A PSN_Item	label	near
;R86A		menuitem <0,\
;R86A			  offset Psn_Str,NOCT,10h,PSN_CMOS,PSN_CMOS_BIT,\
;R86A			  offset Ena_str,0,1,Xaxis,Yaxis,0,0,Offset Std_Help_Str>
;R86A endif; PSN_CMOS
;R86 - end
;R86A - start
 ifndef	NO_P3_CPU_SNO_SELECT
  ifndef	K7_CPU_SUPPORT				;R90
  IF	BIOS_SUPPORT_KLAMATH				;R86B
 Yaxis	= Yaxis + 1
 		public	PSN_Item
 PSN_Item	label	near
		menuitem <0,\
			  offset Psn_Str,NOCT,10h,1BH,40H,\
			  offset Ena_str,0,1,Xaxis,Yaxis,0,0,Offset Std_Help_Str>
  endif;	K7_CPU_SUPPORT				;R90
  ENDIF	;BIOS_SUPPORT_KLAMATH				;R86B
 endif;	NO_P3_CPU_SNO_SELECT
;R86A - end
endif;	KLAMATH_CPU_ONLY
;R71 - end


;R75 - starts
ifdef	Quiet_Post_Support
Yaxis	= Yaxis + 1
		Public	Quiet_POST_Item
Quiet_POST_Item	label	near
		menuitem <0,\
			  offset QuietPost_Str,NOCT,80h,Quiet_POST_CMOS,Quiet_POST_CMOS_MASK,\
			  offset Ena_str,0,1,Xaxis,Yaxis,80h,Quiet_POST_CMOS_MASK,offset Std_Help_Str>	;R79
;R79			  offset Ena_str,0,1,Xaxis,Yaxis,80h,Quiet_POST_CMOS_MASK,offset Help_Virus>
endif;	Quiet_Post_Support
;R75 - ends

Yaxis	= Yaxis + 1
QuickPost_Item	label	near
		menuitem <0,\
			  offset Quick_Str,NOCT,10h,3ch,00010000b,\
			  offset Dis_str,0,1,Xaxis,Yaxis,0,0,Offset Std_Help_Str>

Yaxis	= Yaxis + 1

;R69 - start
ifdef	LAN_BOOT_SUPPORT
ifndef	Lan_Boot_In_IOFEAT				;R93
		public	LanBoot_Item
LanBoot_Item	label	near
	menuitem <0,\
		  offset LanBoot_Str,NOCT,LanBoot_CMOS_Mask,LanBoot_CMOS,LanBoot_CMOS_Mask,\
		  offset Dis_Str,0,1,Xaxis,Yaxis,0,LanBoot_CMOS_Mask,offset Std_Help_Str>
Yaxis	= Yaxis + 1
endif;	Lan_Boot_In_IOFEAT				;R93
endif;	LAN_BOOT_SUPPORT
;R69 - end

BootSeq_Item	label	near
;R61;R30 start
;R61ifdef	CD_ROM
;R61;R56 start
;R61ifdef HDD_Boot_Selectable
;R61;R59A start
;R61		menuitem <0,\
;R61			  offset BootSeq_Str,NOCT,7,3ch,00001111b,\
;R61			  offset Sstr,0,9,Xaxis,Yaxis,0,0,offset Std_Help_Str>	   
;R61;R59A end
;R61;R59A start
;R61;		menuitem <0,\
;R61;			  offset BootSeq_Str,NOCT,7,3ch,00001111b,\
;R61;			  offset Sstr,0,8,Xaxis,Yaxis,0,0,offset Std_Help_Str>	   
;R61;R59A end
;R61
;R61else ;HDD_Boot_Selectable
;R61;R56 end
;R61;R59A start
;R61		menuitem <0,\
;R61			  offset BootSeq_Str,NOCT,3,3ch,00000111b,\
;R61			  offset Sstr,0,4,Xaxis,Yaxis,0,0,offset Std_Help_Str>
;R61;R59A end
;R61;R59A start
;R61;		menuitem <0,\
;R61;			  offset BootSeq_Str,NOCT,3,3ch,00000011b,\
;R61;			  offset Sstr,0,3,Xaxis,Yaxis,0,0,offset Std_Help_Str>
;R61;R59A end
;R61
;R61endif ;HDD_Boot_Selectable		;R56
;R61else	;CD_ROM
;R61;R30 end
;R61;R56 start
;R61ifdef HDD_Boot_Selectable
;R61;R59A start
;R61		menuitem <0,\
;R61			  offset BootSeq_Str,NOCT,7,3ch,00000111b,\
;R61			  offset Sstr,0,7,Xaxis,Yaxis,0,0,offset Std_Help_Str>
;R61;R59A end
;R61;R59A start
;R61;		menuitem <0,\
;R61;			  offset BootSeq_Str,NOCT,7,3ch,00000111b,\
;R61;			  offset Sstr,0,6,Xaxis,Yaxis,0,0,offset Std_Help_Str>
;R61;R59A end
;R61
;R61else ;HDD_Boot_Selectable
;R61;R56 end
;R61;R59A start
;R61		menuitem <0,\
;R61			  offset BootSeq_Str,NOCT,1b,3ch,00000011b,\
;R61			  offset Sstr,0,2,Xaxis,Yaxis,0,0,offset Std_Help_Str>
;R61;R59A end
;R61;R59A start
;R61;		menuitem <0,\
;R61;			  offset BootSeq_Str,NOCT,1b,3ch,00000001b,\
;R61;			  offset Sstr,0,1,Xaxis,Yaxis,0,0,offset Std_Help_Str>
;R61;R59A end
;R61
;R61endif ;HDD_Boot_Selectable		;R56
;R61endif	;CD_ROM	;R30

;R61 start
ifdef	CD_ROM
ifdef HDD_Boot_Selectable
Boot_Seq_Max	=	9
else ;HDD_Boot_Selectable
Boot_Seq_Max	=	4
endif ;HDD_Boot_Selectable
else	;CD_ROM
ifdef HDD_Boot_Selectable
Boot_Seq_Max	=	7
else ;HDD_Boot_Selectable
Boot_Seq_Max	=	2
endif ;HDD_Boot_Selectable
endif	;CD_ROM
;R61Aifdef	LS120_SUPPORT
;R61ABoot_Seq_Max	=	Boot_Seq_Max + 1
;R61Aendif	;LS120_SUPPORT
;R61A start
ifdef	LS120_SUPPORT
ifdef IOMEGA_ZIP_Support
ATAPI_Boot	equ	1
endif ;IOMEGA_ZIP_Support
endif	;LS120_SUPPORT

ifdef	ATAPI_Boot
Boot_Seq_Max	=	Boot_Seq_Max + 1
elseifdef IOMEGA_ZIP_Support
Boot_Seq_Max	=	Boot_Seq_Max + 1
elseifdef	LS120_SUPPORT
Boot_Seq_Max	=	Boot_Seq_Max + 1
endif	;LS120_SUPPORT
;R61A end
ifndef	Change_Boot_Sort									;R81
		menuitem <0,\
			  offset BootSeq_Str,NOCT,0fh,3ch,00001111b,\
			  offset Sstr,0,Boot_Seq_Max,Xaxis,Yaxis,0,0,offset Std_Help_Str>	   
else	;Change_Boot_Sort									;R81 - start
		menuitem <0,\
			  offset BootSeq_Str,NOCT,0fh,3ch,00001111b,\
			  offset Sstr,0,Boot_Seq_Max,Xaxis,Yaxis,0,3,offset Std_Help_Str>
endif	;Change_Boot_Sort									;R81 - end
;R61 end

;R08 start
ifndef	Support_1_FDD					;R62
Yaxis	= Yaxis + 1
		public	SwapFloppy_Item
SwapFloppy_Item	label	near
		menuitem <0,\
			  offset SwapFloppy_Str,NOCT,1b,3eh,00010000b,\
			  offset Dis_str,0,1,Xaxis,Yaxis,0,0,offset Std_Help_Str>
endif	;Support_1_FDD					;R62
;R08 end

ifndef	HIDE_STD_ITEMS						;R48
;R72ifdef	Notebook_Power_Management						;R53
ifdef	FdcSeek_Itemdisable			;R72
;R53 - start
Fdcseek_Item	label	near							
		menuitem <0+ITEMDISABLE,\
			  offset FdcSeek_Str,NOCT,00000001b,13H,00000001b,\
			  offset Dis_Str,0,0,Xaxis,Yaxis,0,0,Offset Std_Help_Str>
;R53 - end
else	;R72FdcSeek_Itemdisable
Yaxis	= Yaxis + 1
Fdcseek_Item	label	near
		menuitem <0,\
			  offset FdcSeek_Str,NOCT,00000001b,13H,00000001b,\
			  offset Dis_Str,0,1,Xaxis,Yaxis,1,1,Offset Std_Help_Str>
endif	;R72FdcSeek_Itemdisable
endif;	HIDE_STD_ITEMS						;R48

;R66 - start
ifdef	FDC_FIFO_SELECTABLE
ifndef	FDCFIFO_CMOS					;R66A
	FDCFIFO_CMOS		EQU	3ch		;R66A
	FDCFIFO_CMOS_bit	EQU	00100000b	;R66A
endif;	FDCFIFO_CMOS					;R66A
		public	Fdc_FIFO_Item
Yaxis	= Yaxis + 1
Fdc_FIFO_Item	label	near							
		menuitem <0,\
			  offset FdcFIFO_Str,NOCT,00000001b,FDCFIFO_CMOS,FDCFIFO_CMOS_Bit,\
			  offset Dis_Str,0,1,Xaxis,Yaxis,0,0,Offset Std_Help_Str>
;R66A			  offset FdcFIFO_Str,NOCT,00000001b,3cH,00100000b,\
endif;	FDC_FIFO_SELECTABLE
;R66 - end

;R65 start
ifdef	Support_HDD_Write_Protect
Yaxis	= Yaxis + 1
		public	Hdd_Wt_Protect_Item
Hdd_Wt_Protect_Item	label	near
		menuitem <0,\
			  offset Hdd_Wt_Pt_Str,NOCT,1b,Hdd_Wt_Pt_CMOS,Hdd_Wt_Pt_CMOS_Mask,\
			  offset Dis_Str,0,1,Xaxis,Yaxis,0,0,offset Std_Help_Str>
endif	;Support_HDD_Write_Protect

ifdef	Support_DriveA_Boot_Permit
Yaxis	= Yaxis + 1
		public	DriveA_Boot_Permit_Item
DriveA_Boot_Permit_Item	label	near
		menuitem <0,\
			  offset DriveA_Boot_Permit_Str,NOCT,1b,DriveA_Boot_Permit_CMOS,DriveA_Boot_Permit_CMOS_Mask,\
			  offset Dis_Str,0,1,Xaxis,Yaxis,0,DriveA_Boot_Permit_CMOS_Mask,offset Std_Help_Str>
endif	;Support_DriveA_Boot_Permit
;R65 end

;R37 start
ifdef	Support_FDD_Write_Protect
Yaxis	= Yaxis + 1
		public	Fdd_Wt_Protect_Item
Fdd_Wt_Protect_Item	label	near
		menuitem <0,\
			  offset Fdd_Wt_Pt_Str,NOCT,1b,Fdd_Wt_Pt_CMOS,10000000b,\
			  offset Fdd_Wt_Pt_Val,0,1,Xaxis,Yaxis,0,0,offset Std_Help_Str>
endif	;Support_FDD_Write_Protect
;R37 end

Yaxis	= Yaxis + 1
NumLock_Item	label	near
;R72ifdef	Notebook_Power_Management						;R53
ifdef	NumLock_Default_Disable			;R72
	menuitem <0,\
		  offset NumLock_Str,NOCT,10000000b,11H,10000000b,\
		  offset Off_Str,0,1,Xaxis,Yaxis,00H,00h,Offset Std_Help_Str>	;R53
else	;R72 NumLock_Default_Disable
		menuitem <0,\
			  offset NumLock_Str,NOCT,10000000b,11H,10000000b,\
			  offset Off_Str,0,1,Xaxis,Yaxis,80H,80h,Offset Std_Help_Str>
endif	;R72 NumLock_Default_Disable

ifndef	HIDE_STD_ITEMS						;R48

 ifndef	NO_SPEED_ITEM						;R70
;R27 - start
 ifdef	HIDE_BOOT_SPEED_ITEM
  BOOT_STATUS	EQU	ITEMDISABLE
 else;	HIDE_BOOT_SPEED_ITEM
  BOOT_STATUS	EQU	0
  Yaxis	= Yaxis + 1
 endif;	HIDE_BOOT_SPEED_ITEM
;R27 - end
BootSpeed_Item	label	near
		menuitem <0+BOOT_STATUS,\
			  offset BootSpeed_Str,NOCT,20h,3eh,00100000b,\
			  offset Pstr,0,1,Xaxis,Yaxis,20h,20h,offset Std_Help_Str>
;R09			  offset Pstr,0,1,Xaxis,Yaxis,0,20h,offset Std_Help_Str>

endif;	HIDE_STD_ITEMS						;R48
 endif;	NO_SPEED_ITEM						;R70

ifndef	IDE_ITEM_NOT_IN_BFEATURE				;R16

BLKMODE	=	00H			;R39
ifdef	NEW_IDE_MODE_3			;R39
BLKMODE	=	40H			;R39
endif;	NEW_IDE_MODE_3			;R39

Yaxis	= Yaxis + 1
		public	IdeBlock_Item
IdeBlock_Item	label	near
		menuitem <0,\
			  offset IdeBlock_Str,NOCT,01000000b,11H,01000000b,\
			  offset Dis_Str,0,1,Xaxis,Yaxis,0,BLKMODE,Offset Std_Help_Str>
;R15 - start
ifdef	IDE_32BIT_SUPPORT
Yaxis	= Yaxis + 1
		public	IDE_transfer_item
IDE_transfer_item	label near
		menuitem <0,\
			  offset IDE_transfer_Str,NOCT,80H,79H,80H,\
			  offset IDE_T_Val,0,1,Xaxis,Yaxis,0,0,offset Std_Help_Str>
;R22			  offset IDE_transfer_Str,NOCT,40H,36H,40H,\
;R22			  offset IDE_T_Val,0,1,Xaxis,Yaxis,0,0,offset Std_Help_Str>
endif;	IDE_32BIT_SUPPORT
;R15 - end
endif;	IDE_ITEM_NOT_IN_BFEATURE				;R16

;R18 start
ifndef	NOT_STD_IDE_MODE_3	;R25
ifdef	IDE_MODE_3_SUPPORT
Yaxis	= Yaxis + 1
		public	IDE_Mode_3_item
IDE_mode_3_item	label near
		menuitem <0,\
			  offset IDE_mode_3_Str,NOCT,20H,3eH,40H,\
			  offset Dis_Str,0,1,Xaxis,Yaxis,0,0,offset Std_Help_Str>
endif	;IDE_MODE_3_SUPPORT
endif;	NOT_STD_IDE_MODE_3	;R25
;R18 end

ifndef	NO_FAST_A20					;R58
ifdef	Fast_A20_Default_Disable			;R58A - starts
Yaxis	= Yaxis + 1
GateA20_Item	label	near
		menuitem <0,\
			  offset GateA20_Str,NOCT,00100000b,11H,00100000b,\
			  offset NormA20_Str,0,1,Xaxis,Yaxis,0,00h,Offset Std_Help_Str>
else;	Fast_A20_Default_Disable			;R58A - ends
Yaxis	= Yaxis + 1
GateA20_Item	label	near
		menuitem <0,\
			  offset GateA20_Str,NOCT,00100000b,11H,00100000b,\
			  offset NormA20_Str,0,1,Xaxis,Yaxis,0,20h,Offset Std_Help_Str>
endif;	Fast_A20_Default_Disable			;R58A
endif;	NO_FAST_A20					;R58

ifndef	PARITY_ITEM_NOT_IN_BFEATURE			;R41A
ifndef	NO_PARITY_ITEM					;R58
Parity_Item	label	near
;R02 - start
;R58 ifdef	NO_PARITY_ITEM
;R58 		menuitem <0+ITEMDISABLE,\
;R58 			  offset Parity_Str,NOCT,00000010b,13H,00000010b,\
;R58 			  offset Dis_Str,0,1,Xaxis,Yaxis,0,2,Offset Std_Help_Str>
;R58 else;	NO_PARITY_ITEM
Yaxis	= Yaxis + 1
;R12 - start
 ifdef	PARITY_DEFAULT_DISABLE
 	PARITY_CHECK	EQU	00H	
 else;	PARITY_DEFAULT_DISABLE
	PARITY_CHECK	EQU	02H	
 endif;	PARITY_DEFAULT_DISABLE
;R12 - end
		menuitem <0,\
			  offset Parity_Str,NOCT,00000010b,13H,00000010b,\
			  offset Dis_Str,0,1,Xaxis,Yaxis,PARITY_CHECK,PARITY_CHECK,Offset Std_Help_Str>
;R58 endif;	NO_PARITY_ITEM
;R02 - end
endif;	NO_PARITY_ITEM					;R58
endif;	PARITY_ITEM_NOT_IN_BFEATURE			;R41A

ifndef	HIDE_STD_ITEMS						;R48

Yaxis	= Yaxis + 1
TypeRate_Item	label	near
		menuitem <0,\
			  offset TypeRate_Str,NOCT,10000000b,13H,10000000b,\
			  offset Dis_Str,0,1,Xaxis,Yaxis,0,0,Offset Std_Help_Str>
Yaxis	= Yaxis + 1

;R38 - Start
TypeSpeed	= 00h
ifdef	KB_TypeSpeed
TypeSpeed	= KB_TypeSpeed
endif	;KB_TypeSpeed
;R38 - End
TypeSpeed_Item	label	near
		menuitem <0,\
			  offset TypeSpeed_Str,NOCT,01110000b,13H,01110000b,\
			  offset Rate_Str,0,7,Xaxis,Yaxis,TypeSpeed,TypeSpeed,Offset Std_Help_Str>;R38
;R38			  offset Rate_Str,0,7,Xaxis,Yaxis,0,0,Offset Std_Help_Str>

;R38 - Start
TypeDelay	= 00h
ifdef	KB_TypeDelay
TypeDelay	= KB_TypeDelay	;R46
;R46 TypeSpeed	= KB_TypeDelay
endif	;KB_TypeDelay
;R38 - End
TypeDelay_Item	label	near
Yaxis	= Yaxis + 1
		menuitem <0,\
			  offset TypeDelay_Str,NOCT,00001100b,13H,00001100b,\
			  offset Delay_Str,0,3,Xaxis,Yaxis,TypeDelay,TypeDelay,Offset Std_Help_Str>;R38
;R38			  offset Delay_Str,0,3,Xaxis,Yaxis,0,0,Offset Std_Help_Str>
endif;	HIDE_STD_ITEMS						;R48

Yaxis	= Yaxis + 1
Security_Item	label	near
;R43 - starts
ifdef	Never_Disable_Password
		menuitem <0,\
			  offset Security_Str,NOCT,01h,PASS_CMOS,PASS_CMOS_Bit,\
			  offset Pass_Str,0,2, Xaxis,Yaxis,0,0,Offset Std_Help_Str>
else	;Never_Disable_Password
;R43 - ends
		menuitem <0,\
			  offset Security_Str,NOCT,01h,11H,00000001b,\
			  offset Pass_Str,0,1, Xaxis,Yaxis,0,0,Offset Std_Help_Str>
endif	;Never_Disable_Password	;R43

;R06 - start
;R28 ifdef	CYRIXC6_SETUPABLE
;R28 Yaxis	= Yaxis + 1
;R28 		Public	Cyrix_C6_Item
;R28 Cyrix_C6_Item:
;R28 		menuitem <0,\
;R28 			  offset Cyrix_C6_Str,NOCT,04h,3CH,00000100b,\
;R28 			  offset Cyrix_C6_Val,0,1, Xaxis,Yaxis,0,0,Offset Std_Help_Str>
;R28 endif;	CYRIXC6_SETUPABLE
;R06 - end

;R05 - start
ifdef	Turbo_Pin_Handler					;R14A
;R14A ifndef	No_Turbo_Pin_Handler				;R14
Yaxis	= Yaxis + 1
		Public	TB_SW_Input_Item
TB_SW_Input_Item:
		menuitem <0,\
			  offset TB_SW_Input_Str,NOCT,02h,TB_SW_CMOS,TB_SW_CMOS_BIT,\
			  offset TB_SW_Input_Val,0,1, Xaxis,Yaxis,0,0,Offset Std_Help_Str>
;R33			  offset TB_SW_Input_Str,NOCT,02h,3CH,00000010b,\
;R33			  offset TB_SW_Input_Val,0,1, Xaxis,Yaxis,0,0,Offset Std_Help_Str>
;R14A endif	;No_Turbo_Pin_Handler				;R14
endif	;Turbo_Pin_Handler					;R14A
;R05 - end

;R19 - start
ifdef	IDE_TIME_OUT_SETUP
Yaxis	= Yaxis + 1
		Public	IdeTime_Out_Item
IdeTime_Out_Item:
		menuitem <0,\
			  offset IdeTimeOut_Str,NOCT,070h,79h,070h,\
			  offset IdeTimeOut_Val,0,5, Xaxis,Yaxis,40h,40h,Offset Std_Help_Str>
endif;	IDE_TIME_OUT_SETUP
;R19 - end

;R23 start
ifdef	PCI_BUS
ifndef	PCI_IDE_2nd_Channel_Not_At_BF		;R23A
	ifndef	NO_PCI_IDE_CARD			;R23B
CHN2_DEF	=	08H			;R36
ifdef	Default_IDE_2nd_Dis			;R36
CHN2_DEF	=	00H			;R36
endif; Default_IDE_2nd_Dis			;R36
;R38 - Start
CHN2_Status	= 0
ifdef	IDE_2nd_ITEMDISABLE
CHN2_Status	= ITEMDISABLE
endif	;IDE_2nd_ITEMDISABLE
;R38 - End
Yaxis	= Yaxis + 1
		public	Second_IDE_channel
Second_IDE_channel	label	near
;R38		menuitem <0,\
		menuitem <CHN2_Status,\
			  offset Second_Ide_Str,NOCT,08h,3eH,08h,\
			  offset Dis_Str,0,1,Xaxis,Yaxis,CHN2_DEF,CHN2_DEF,Offset Std_Help_Str>
	endif;	NO_PCI_IDE_CARD			;R23B
endif	;PCI_IDE_2nd_Channel_Not_At_BF		;R23A
endif	;PCI_BUS
;R23 end

;R35 - Start
ifdef Special_IDE_ITEM
Yaxis	= Yaxis + 1
		Public	Onboard_IDE_Item
Onboard_IDE_Item:
menuitem <0,\
Offset Onboard_IDE_Str,		NOCT,00000001b,IDE_CMOS,IDE_CMOS_BIT,\
Offset Onboard_IDE_Val,0,1,Xaxis,Yaxis,	00000001b, IDE_CMOS_BIT,offset Std_Help_Str>
;R35A menuitem <0,\
;R35A Offset Onboard_IDE_Str,		NOCT,00000001b,CF_CMOS+05h,00000100b,\
;R35A Offset Onboard_IDE_Val,0,1,Xaxis,Yaxis,	00000001b,	00000100b,offset Std_Help_Str>
endif ;Special_IDE_ITEM
;R35 - End

;R29 - start
ifdef	PS2_SETUPABLE
 ifndef	PS2_ITEM_NOT_IN_BFEATURE		;R29A
Yaxis	= Yaxis + 1
		public	PS2_select_item
PS2_select_item	label	near
		menuitem <0,\
			  offset ps2_select_Str,NOCT,01h,PS2_CMOS,PS2_CMOS_BIT,\
			  offset Dis_Str,0,1,Xaxis,Yaxis,01h,PS2_CMOS_BIT,Offset Std_Help_Str>
;R31			  offset ps2_select_Str,NOCT,01h,3eH,01h,\
;R31			  offset Dis_Str,0,1,Xaxis,Yaxis,1h,1h,Offset Std_Help_Str>
 endif	;PS2_ITEM_NOT_IN_BFEATURE		;R29A
endif	;PS2_SETUPABLE
;R29 - end

;R32 - start
ifdef	PCI_BUS
;R38 - Start
VGA_Snoop_Status	= 0
ifdef	VGA_Snoop_ITEMDISABLE
VGA_Snoop_Status	= ITEMDISABLE
endif	;VGA_Snoop_ITEMDISABLE
;R38 - End

Yaxis = Yaxis + 1
		public	Vga_Snoop_Item
Vga_Snoop_Item	label	near
;R38		menuitem <0,\
		menuitem <VGA_Snoop_Status,\
			  offset VgaSnoop_Str,NOCT,080h,1bh,080h,\
			  offset Dis_Str,0,1,Xaxis,Yaxis,0h,0h,offset Std_Help_Str>
endif;	PCI_BUS
;R32 - end

;R50 - starts
ifdef	VGA_IRQ_ITEM_IN_PCIFEAT
VGA_IRQ_NOT_IN_BFEATURE		EQU	1
endif	;VGA_IRQ_ITEM_IN_PCIFEAT

ifndef	VGA_IRQ_NOT_IN_BFEATURE			;R50A
ifdef	PCI_VGA_IRQ_SETUP_ITEM
if	PCI_VGA_IRQ_SETUP_ITEM eq 0				;R50C
		Assign_Pci_IRQ_Setup_D4 = 0			;R50C
else								;R50C
		Assign_Pci_IRQ_Setup_D4 = Assign_Pci_IRQ_BITS	;R50C
endif								;R50C
Yaxis = Yaxis + 1
		Public	Assign_Pci_IRQ_Item
Assign_Pci_IRQ_Item	label	near
		menuitem <0,\
			  offset PciVgaIRQ_Str,NOCT,00000001b,Assign_Pci_IRQ_CMOS,Assign_Pci_IRQ_BITS,\
			  offset Dis_Str,0,1,Xaxis,Yaxis,00h,Assign_Pci_IRQ_Setup_D4,offset Std_Help_Str>;R50C
;R50C			  offset Dis_Str,0,1,Xaxis,Yaxis,00h,Assign_Pci_IRQ_BITS,offset Std_Help_Str>	;R50B
;R50B			  offset Dis_Str,0,1,Xaxis,Yaxis,00h,00h,offset Std_Help_Str>
endif	;PCI_VGA_IRQ_SETUP_ITEM
endif;	VGA_IRQ_NOT_IN_BFEATURE			;R50A
;R50 - ends

;R44 - start
;R63 ifdef	MP_TBL_SELECTABLE
ifdef	MP_SUPPORT				;R63
Yaxis	= Yaxis + 1
		public	MP_Tbl_Item
MP_Tbl_Item	label	near
		menuitem <0,\
			  offset Mp_Tbl_Str,NOCT,01h,MP_TBL_CMOS,MP_TBL_CMASK,\
			  offset Mp_Tbl_Val,0,1,Xaxis,Yaxis,01h,MP_TBL_CMASK,Offset Std_Help_Str>
;R63			  offset Dis_Str,0,1,Xaxis,Yaxis,01h,MP_TBL_CMASK,Offset Std_Help_Str>
endif	;MP_TBL_SELECTABLE
;R44 - end

;R45 - start
ifdef	COMPRESS_CODE
Yaxis	= Yaxis + 1
		public	OS_Select_Item
OS_Select_Item	label	near
		menuitem <0,\
			  offset OS_Type_Str,NOCT,01h,3cH,40H,\
			  offset OS_Type_Val,0,1,Xaxis,Yaxis,00,00,Offset Std_Help_Str>
endif;	COMPRESS_CODE
;R45 - end
;R68  start
ifdef	HDD_SMART_Support
Yaxis	= Yaxis + 1
		public	HDD_SMART_Item
HDD_SMART_Item	label	near
		menuitem <0,\
			  offset HddSmart_Str,NOCT,01h,hdd_smart_CMOS,HDD_smart_CMOS_Bits,\
			  offset Dis_Str,0,1,Xaxis,Yaxis,00,00,Offset Std_Help_Str>
endif	;Support_HDD_SMART
;R68 end

;R67 - start
;R67A ifdef	FDD_ACCESS_BY_PASSWORD
;R67A		public	FddAccess_Item
;R67A  FddAccess_Item	label	near
;R67A  Yaxis	= Yaxis + 1
;R67A	menuitem <0,\
;R67A	  offset FddAccess_Str,NOCT,01h,FDDRW_CMOS,FDDRW_CMASK,\
;R67A	  offset FddAccess_Val,0,1,Xaxis,Yaxis,01h,0,Offset Std_Help_Str>
;R67A endif;	FDD_ACCESS_BY_PASSWORD
;R67 - end

;M01 ;R64 start
;M01 ifdef	RPB_ENABLED                   ; RXX
;M01   include rpb.cfg
;M01 ifdef	RPB_BFEATURE_ENABLED
;M01   include rpb_bfs1.inc              ; rpb bfeature setup support
;M01 else
;M01   Xaxis	= 42
;M01   Yaxis	=	4					                  
;M01 endif ;	RPB_BFEATURE_ENABLED
;M01 endif ; RPB_ENABLED
;M01 ;R64 end

;R54 - start
ifdef	Fdd_install_flag_selectable
Yaxis	= Yaxis + 1
		public	Windows_Select_Item
Windows_Select_Item	label	near
		menuitem <0,\
			  offset Win_Type_Str,NOCT,01h,3cH,20H,\
			  offset Win_Type_Val,0,1,Xaxis,Yaxis,0,20h,Offset Std_Help_Str>
;R54A			  offset Win_Type_Val,0,1,Xaxis,Yaxis,0,0,Offset Std_Help_Str>
endif;	Fdd_install_flag_selectable
;R54 - end

;R83	- Starts
ifdef	ShowLOGO_selectable
Yaxis	= Yaxis + 1
		public	ShowLOGO_selectable_Item
ShowLOGO_selectable_Item	label	near
		menuitem <NODEFAULT+HIDDEN+ITEMDISABLE,\
			  offset ShowLOGO_sel_Str,NOCT,01h,Three_FullLogo_CMOS,Three_FullLogo_CMOS_Bits,\
			  offset ShowLOGO_sel_Val,0,3,Xaxis,Yaxis,0,0h,Offset Std_Help_Str>
endif;	ShowLOGO_selectable
;R83	- End

Xaxis	= 42
Yaxis	=	4					;R10
;R17 F000_Item	label	near
;R17 ifdef	SYSTEM_ALWAYS_SHADOW
;R17 		menuitem <ITEMDISABLE,\
;R17 			  offset F000_Str,NOCT,040h,3eh,01000000b,\
;R17 			  offset Dis_Str,0,1,Xaxis,Yaxis,040h,040h,offset Std_Help_Str>
;R17 else;	SYSTEM_ALWAYS_SHADOW
;R17 		menuitem <0,\
;R17 			  offset F000_Str,NOCT,040h,3eh,01000000b,\
;R17 			  offset Dis_Str,0,1,Xaxis,Yaxis,40h,040h,offset Std_Help_Str>
;R17 ;R09			  offset Dis_Str,0,1,Xaxis,Yaxis,0,040h,offset Std_Help_Str>
;R17 Yaxis	= Yaxis + 1
;R17 endif;	SYSTEM_ALWAYS_SHADOW

ifndef	NO_VIDEO_BIOS_SHADOW_ITEM				;R85
		public	C000_Item
C000_Item	label	near
		menuitem <0,\
			  offset C000_Str,NOCT,080h,3eh,10000000b,\
			  offset Dis_Str,0,1,Xaxis,Yaxis,80h,080h,offset Std_Help_Str>
;R09			  offset Dis_Str,0,1,Xaxis,Yaxis,0,080h,offset Std_Help_Str>
endif;	NO_VIDEO_BIOS_SHADOW_ITEM				;R85

ifdef	SHADOW_UNIT_32K
Yaxis	= Yaxis + 1
C800_Item	label	near
CC00_Item	label	near
		menuitem <0,\
			  offset C800_Str,NOCT,8h,11h,00001000b,\
			  offset Dis_str,0,1,Xaxis,Yaxis,0,0,Offset Std_Help_Str>
Yaxis	= Yaxis + 1
D000_Item	label	near
D400_Item	label	near
		menuitem <0,\
			  offset D000_Str,NOCT,1h,1Bh,00000001b,\
			  offset Dis_str,0,1,Xaxis,Yaxis,0,0,Offset Std_Help_Str>

Yaxis	= Yaxis + 1
D800_Item	label	near
DC00_Item	label	near
		menuitem <0,\
			  offset D800_Str,NOCT,4h,1Bh,00000100b,\
			  offset Dis_str,0,1,Xaxis,Yaxis,0,0,Offset Std_Help_Str>


ifndef	PCI_BUS							;R32
ifndef	POST_SEG						;R24
Yaxis	= Yaxis + 1
ifdef	NO_E000_EFFF_SHADOW				;R03
E000_SHADOW	EQU	ITEMDISABLE			;R03
else;	NO_E000_EFFF_SHADOW				;R03
E000_SHADOW	EQU	0				;R03
endif;	NO_E000_EFFF_SHADOW				;R03

ifdef	E000_64K_SHADOW					;R07
E000_Item	label	near				;R07
E400_Item	label	near				;R07
E800_Item	label	near				;R07
EC00_Item	label	near				;R07
		menuitem <E000_SHADOW,\
			  offset E000_Str,NOCT,10h,1Bh,00010000b,\
			  offset Dis_str,0,1,Xaxis,Yaxis,0,0,Offset Std_Help_Str>
else;	E000_64K_SHADOW					;R07
E000_Item	label	near
E400_Item	label	near
		menuitem <E000_SHADOW,\
			  offset E000_Str,NOCT,10h,1Bh,00010000b,\
			  offset Dis_str,0,1,Xaxis,Yaxis,0,0,Offset Std_Help_Str>

Yaxis	= Yaxis + 1
E800_Item	label	near
EC00_Item	label	near
		menuitem <E000_SHADOW,\
			  offset E800_Str,NOCT,40h,1Bh,01000000b,\
			  offset Dis_str,0,1,Xaxis,Yaxis,0,0,Offset Std_Help_Str>
endif;	E000_64K_SHADOW					;R07
endif;	POST_SEG						;R24
endif;	PCI_BUS							;R32

else;	SHADOW_UNIT_32K
ifndef	No_C8_DF_Shadow_Item			;R73
Yaxis	= Yaxis + 1
C800_Item	label	near
		menuitem <0,\
			  offset C800_Str,NOCT,08h,11h,00001000b,\
			  offset Dis_str,0,1,Xaxis,Yaxis,0,0,Offset Std_Help_Str>
Yaxis	= Yaxis + 1
CC00_Item	label	near
		menuitem <0,\
			  offset CC00_Str,NOCT,10h,11h,00010000b,\
			  offset Dis_str,0,1,Xaxis,Yaxis,0,0,Offset Std_Help_Str>

Yaxis	= Yaxis + 1
D000_Item	label	near
		menuitem <0,\
			  offset D000_Str,NOCT,1h,1Bh,00000001b,\
			  offset Dis_str,0,1,Xaxis,Yaxis,0,0,Offset Std_Help_Str>

Yaxis	= Yaxis + 1
D400_Item	label	near
		menuitem <0,\
			  offset D400_Str,NOCT,2h,1Bh,00000010b,\
			  offset Dis_str,0,1,Xaxis,Yaxis,0,0,Offset Std_Help_Str>

Yaxis	= Yaxis + 1
D800_Item	label	near
		menuitem <0,\
			  offset D800_Str,NOCT,4h,1Bh,00000100b,\
			  offset Dis_str,0,1,Xaxis,Yaxis,0,0,Offset Std_Help_Str>

Yaxis	= Yaxis + 1
DC00_Item	label	near
		menuitem <0,\
			  offset DC00_Str,NOCT,8h,1Bh,00001000b,\
			  offset Dis_str,0,1,Xaxis,Yaxis,0,0,Offset Std_Help_Str>
endif	;No_C8_DF_Shadow_Item				;R73
ifndef	PCI_BUS							;R32
ifndef	POST_SEG						;R24
Yaxis	= Yaxis + 1
ifdef	NO_E000_EFFF_SHADOW				;R03
E000_SHADOW	EQU	ITEMDISABLE			;R03
else;	NO_E000_EFFF_SHADOW				;R03
E000_SHADOW	EQU	0				;R03
endif;	NO_E000_EFFF_SHADOW				;R03

ifdef	E000_64K_SHADOW					;R07
E000_Item	label	near
E400_Item	label	near				;R07
E800_Item	label	near				;R07
EC00_Item	label	near				;R07
		menuitem <E000_SHADOW,\
			  offset E000_Str,NOCT,10h,1Bh,00010000b,\
			  offset Dis_str,0,1,Xaxis,Yaxis,0,0,Offset Std_Help_Str>
else;	E000_64K_SHADOW					;R07

E000_Item	label	near
		menuitem <E000_SHADOW,\
			  offset E000_Str,NOCT,10h,1Bh,00010000b,\
			  offset Dis_str,0,1,Xaxis,Yaxis,0,0,Offset Std_Help_Str>

Yaxis	= Yaxis + 1
E400_Item	label	near
		menuitem <E000_SHADOW,\
			  offset E400_Str,NOCT,20h,1Bh,00100000b,\
			  offset Dis_str,0,1,Xaxis,Yaxis,0,0,Offset Std_Help_Str>

Yaxis	= Yaxis + 1
E800_Item	label	near
		menuitem <E000_SHADOW,\
			  offset E800_Str,NOCT,40h,1Bh,01000000b,\
			  offset Dis_str,0,1,Xaxis,Yaxis,0,0,Offset Std_Help_Str>

Yaxis	= Yaxis + 1
EC00_Item	label	near
		menuitem <E000_SHADOW,\
			  offset EC00_Str,NOCT,80h,1Bh,10000000b,\
			  offset Dis_str,0,1,Xaxis,Yaxis,0,0,Offset Std_Help_Str>
endif;	E000_64K_SHADOW					;R07
endif;	POST_SEG						;R24
endif;	PCI_BUS							;R32
endif;	SHADOW_UNIT_32K

;R92 - start
IF	BIOS_SUPPORT_586
Yaxis	= Yaxis + 1
		public	M2CpuID_Item
M2CpuID_Item	label	near
		menuitem <0,\
			  offset M2ID_Str,NOCT,20h,1Bh,00100000b,\
			  offset Ena_str,0,1,Xaxis,Yaxis,0,0,Offset Std_Help_Str>
ENDIF;	BIOS_SUPPORT_586
;R92 - end

;R87 - start
;R87A Yaxis   = Yaxis + 1
;R87A ifdef	GPIO7_CNTR_PCMCIA
;R87A         menuitem <0,\
;R87A                 offset PCMCIA_str,ACPI_R+18h,80H,PCMCIA_CMOS,00000001b,\
;R87A                 offset Dis_Str,0,1,Xaxis,Yaxis,0,0,offset NullStr>
;R87A endif	;GPIO7_CNTR_PCMCIA
;R87A Yaxis   = Yaxis + 1
;R87A ifdef	GPIO5_CNTR_LAN
;R87A         menuitem <0,\
;R87A                 offset LAN_str,ACPI_R+18h,20H,LAN_CMOS,00000010b,\
;R87A                 offset Dis_Str,0,1,Xaxis,Yaxis,0,0,offset NullStr>
;R87A endif	;GPIO5_CNTR_LAN
;R87 - end

;R82 - start
 ifdef	MSG_CMOS
	public	PostMsgSelectItem
PostMsgSelectItem	label	near
  Yaxis	= Yaxis + 1
	menuitem <0,\
	  offset PostMsg_Str,NOCT,01h,MSG_CMOS,MSG_CMOS_MASK,\
	  offset Dis_Str,0,1,Xaxis,Yaxis,0,0,Offset Std_Help_Str>
 endif;	MSG_CMOS
;R82 - end

;R67A - start
 ifdef	FDD_ACCESS_BY_PASSWORD
		public	FddAccess_Item
  FddAccess_Item	label	near
  Yaxis	= Yaxis + 1
	menuitem <0,\
	  offset FddAccess_Str,NOCT,01h,FDDRW_CMOS,FDDRW_CMASK,\
	  offset FddAccess_Val,0,1,Xaxis,Yaxis,01h,0,Offset Std_Help_Str>
 endif;	FDD_ACCESS_BY_PASSWORD
;R67A - end

;R49 - start
ifdef	IDE_HDD_DELAY_SUPPORT
Yaxis	= Yaxis + 1
		public	Hdd_Delay_Item	
Hdd_Delay_Item	label	near
		menuitem <0+KEYIN+SHOWNUM+DIGIT2,\
			  offset HddDelay_Str,NOCT,0FH,DELAY_CMOS,DELAY_MASK,\
			  offset NullStr,0,15,Xaxis,Yaxis,0,0,Offset NullStr>

endif;	IDE_HDD_DELAY_SUPPORT
;R49 - end

;R34 - start
ifdef	ONBOARD_NCR_SETUPABLE_IN_BFEATURE
Yaxis = Yaxis + 2
		public	Scsi_Item
Scsi_Item	label	near
		menuitem <0,\
			  offset Scsi_Str,NOCT,00000001b,NCR_CMOS,NCR_BITS,\
			  offset Scsi_Val,0,1,Xaxis,Yaxis,0h,8h,offset Std_Help_Str>

Yaxis = Yaxis + 1
                public  Scsi_Delay
Scsi_Delay      label   near
		menuitem <0+KEYIN+SHOWNUM+DIGIT3,\
			  offset ScsiDly_Str,NOCT,11111111b,SD_CMOS,CS_BITS,\
			  offset NullStr,0,60,Xaxis,Yaxis,0h,0h,offset NullStr>
;R60 - start
ifdef	ONBOARD_NCR_IRQ_SETUPABLE
		public	Scsi_IRQ_Item
Yaxis = Yaxis + 1
Scsi_IRQ_Item	label	near
		menuitem <0,\
			  offset Scsi_Irq_Str,NOCT,00000001b,NCR_CMOS,NCR_IRQ_BITS,\
			  offset Scsi_Irq_Val,0,1,Xaxis,Yaxis,0h,0h,offset Std_Help_Str>
Yaxis = Yaxis - 1
endif;	ONBOARD_NCR_IRQ_SETUPABLE
;R60 - end
endif;	ONBOARD_NCR_SETUPABLE_IN_BFEATURE

ifdef	ADVANTECH
ifdef	WATCH_DOG_ONLY					;R42
Yaxis = Yaxis + 2
WATCH_DOG_Item	label	near
		menuitem <0,\
			  offset WATCH_DOG_Str,NOCT,00001111b,WD_CMOS,WD_BITS,\
			  offset WATCH_DOG_Val,0,12,Xaxis,Yaxis,0h,3h,offset Std_Help_Str>
Yaxis = Yaxis + 1
else	;WATCH_DOG_ONLY					;R42
Yaxis = Yaxis + 2
WATCH_DOG_Item	label	near
		menuitem <0,\
			  offset WATCH_DOG_Str,NOCT,00001111b,WD_CMOS,WD_BITS,\
			  offset WATCH_DOG_Val,0,12,Xaxis,Yaxis,0h,3h,offset Std_Help_Str>
Yaxis = Yaxis + 1

FAN_TURN_Item	label	near
		menuitem <0,\
			  offset FAN_TURN_Str,NOCT,01110000b,FT_CMOS,FT_BITS,\
			  offset FAN_TURN_Val,0,5,Xaxis,Yaxis,0h,0h,offset Std_Help_Str>
Yaxis = Yaxis + 1
CPU_OVERHEAT_Item	label	near
		menuitem <0,\
			  offset CPU_OVERHEAT_Str,NOCT,01110000b,CO_CMOS,CO_BITS,\
			  offset CPU_OVERHEAT_Val,0,4,Xaxis,Yaxis,0h,0h,offset Std_Help_Str>
Yaxis = Yaxis + 1
endif;	WATCH_DOG_ONLY				;R42
endif;	ADVANTECH
;R34 - end

;R77 -start
ifdef	Graphics_Post
ifdef	LOGO_SHOW_Selectable
Yaxis = Yaxis + 1
Public	Full_Screen_LOGO_Item
Full_Screen_LOGO_Item    label	near
		menuitem <0,\
			  offset LOGO_Str,NOCT,00000001b,LOGO_CMOS,LOGO_CMOS_BIT,\
			  offset Dis_Str,0,1,Xaxis,Yaxis,0h,0h,offset Std_Help_Str>
endif	;LOGO_SHOW_Selectable
endif	;Graphics_Post
;R77 -end

;R78 -start
ifdef   DMI_EVENT_LOG_IN_SETUP


Yaxis   = Yaxis + 1
		public	DMI_Event_Log_Item
DMI_Event_Log_Item      label   near
        menuitem <2,\
                offset DMIEventLog_Str,NOCT,EDMI_EVENT_LOG_CMOS_BIT,EDMI_EVENT_LOG_CMOS,EDMI_EVENT_LOG_CMOS_BIT,\
                offset Dis_Str,0,01h,Xaxis,Yaxis,80h,20h,offset DMI_Event_Log_Help>	;R79
;R79                offset Dis_Str,0,01h,Xaxis,Yaxis,0h,0h,offset NullStr>

Yaxis   = Yaxis + 1
		public	Clear_DMI_Event_Log_Item
Clear_DMI_Event_Log_Item        label   near
        menuitem <2,\
                offset ClearAllDMIEventLog_Str,NOCT,CDMI_EVENT_LOG_CMOS_BIT,CDMI_EVENT_LOG_CMOS,CDMI_EVENT_LOG_CMOS_BIT,\
                offset Clear_val,0,01h,Xaxis,Yaxis,0,0,offset Clear_DMI_Event_Log_Help>	;R79
;R79                offset Clear_val,0,01h,Xaxis,Yaxis,0,0,offset NullStr>

Yaxis   = Yaxis + 1
View_DMI_Event_Log_Item label   near
        menuitem <2,\
                offset ViewDMIEventLog_Str,NOCT,1,KERNAL_CONTROL,00000001b,\
                offset Enter_Str,0,0,Xaxis,Yaxis,0,0,offset View_DMI_Event_Log_Help>	;R79
;R79                offset Enter_Str,0,0,Xaxis,Yaxis,0,0,offset NullStr>

Yaxis   = Yaxis + 1
Mark_DMI_Events_Log_Item        label   near
        menuitem <2,\
                offset MarkDMIEvents_Str,NOCT,1,KERNAL_CONTROL,00000001b,\
                offset Enter_Str,0,0,Xaxis,Yaxis,0,0,offset Mark_DMI_Events_Log_Help>	;R79
;R79                offset Enter_Str,0,0,Xaxis,Yaxis,0,0,offset NullStr>

Yaxis   = Yaxis + 1
Event_Log_Capacity_Item label   near
        menuitem <SHOWONLY,\
                offset Event_Log_Capacity_str,NOCT,0,KERNAL_CONTROL,00000001b,\
                offset NullStr,0,0,Xaxis,Yaxis,0,0,offset NullStr>

Yaxis   = Yaxis + 1
Event_Log_Validity_Item label   near
        menuitem <SHOWONLY,\
                offset Event_Log_Validity_str,NOCT,1,KERNAL_CONTROL,00000001b,\
                offset Validity_Str,0,1,Xaxis,Yaxis,0,0,offset NullStr>

endif   ;DMI_EVENT_LOG_IN_SETUP
;R78 -end

;R91 -start
ifdef	Support_SumScr_Item
public	SumScr_Item   
Yaxis = Yaxis + 1
SumScr_Item     label   near
	menuitem <0,\
		offset SumScr_Str,NOCT,00000001b,3Eh,01000000b,\
		offset Dis_str,0,1, 5,Yaxis,00000000b,00000000b,offset Std_Help_Str>
endif	;Support_SumScr_Item
;R91 -end

;M01 - start
ifdef	RPB_ENABLED
  ifdef	RPB_BFEATURE_ENABLED
    include rpb_bfs1.inc              ; rpb bfeature setup support
  endif
endif ; RPB_ENABLED
;M01 - end

BIOS_Feature_END	LABEL	NEAR
IF (offset BIOS_Feature_END) EQ (offset BIOS_Feature_START)
	BIOS_STAT	EQU	0 + ITEMDISABLE
ELSE
	BIOS_STAT	EQU	0
ENDIF
;----------------------------------------------------------
;R91 -start
ifdef	Support_SumScr_Item
SumScr_Str      db      'Summary Screen        : ',0
endif	;Support_SumScr_Item
;R91 -end

;R87 - start
;R87A ifdef	GPIO7_CNTR_PCMCIA
;R87A PCMCIA_str	db	'PCMCIA Card         : ',0
;R87A endif	;GPIO7_CNTR_PCMCIA
;R87A ifdef	GPIO5_CNTR_LAN
;R87A LAN_str		db	'Ethernat Card       : ',0
;R87A endif	;GPIO5_CNTR_LAN
;R87 - end

;R82 - start
 ifdef	MSG_CMOS
 PostMsg_Str	db	'Power On Message    : ',0
 endif;	MSG_CMOS
;R82 - end

;R77 -start
ifdef	LOGO_SHOW_Selectable
LOGO_Str	db	'Full Screen LOGO Show :',0
endif	;LOGO_SHOW_Selectable
;R77 -end

;R79Help_Virus:
;R79;R21 ifdef	No_Virus_Help						;R13
;R79;R21Aifdef	VIRUS_HELP_NEEDED					;R21
;R79ifndef	VIRUS_HELP_NEEDED						;R21A
;R79		db	0						;R13
;R79else	;No_Virus_Help							;R13
;R79		db	'VIRUS WARNING:',NEWLINE,NEWLINE
;R79		db	'Allows you to choose the VIRUS warning',NEWLINE
;R79		db	'feature for HARD Disk boot sector',NEWLINE
;R79		db	'protection.',NEWLINE
;R79		db	'If this function is enabled and',NEWLINE
;R79		db	'someone attempt to write data into',NEWLINE
;R79		db	'this area, BIOS will show a warning',NEWLINE
;R79		db	'message on screen and alarm beep',0
;R79endif	;No_Virus_Help							;R13

;----------------------------------------------------------

;R71 - start
ifdef	KLAMATH_CPU_ONLY
 ifdef	L2ECC_CMOS
   L2Ecc_Str	db	'CPU L2 Cache ECC Checking  : ',0
 endif;	L2ECC_CMOS
;R86A ifdef	PSN_CMOS 	   				;R86
 ifndef	NO_P3_CPU_SNO_SELECT					;R86A
  ifndef	K7_CPU_SUPPORT					;R90
   Psn_Str	db	'Processor Number Feature   : ',0	;R86
  endif;	K7_CPU_SUPPORT					;R90
 endif;	NO_P3_CPU_SNO_SELECT					;R86A
;R86A endif;	PSN_CMOS 					;R86
endif;	KLAMATH_CPU_ONLY
;R71 - end

;R67 - start
 ifdef	FDD_ACCESS_BY_PASSWORD
;R67A FddAccess_Str		db	'Diskette Access For        : ',0
FddAccess_Str		db	'Diskette Access For : ',0	;R67A
FddAccess_Val		db	'All       ',0
			db	'Supervisor',0
 endif;	FDD_ACCESS_BY_PASSWORD
;R67 - end


ifdef	COMPRESS_CODE							;R45
OS_Type_Str:		db	'OS Select For DRAM > 64MB  : ',0	;R45
OS_Type_Val:		db	'Non-OS2',0				;R45
			db	'OS2    ',0				;R45
endif;	COMPRESS_CODE							;R45

ifdef	Fdd_install_flag_selectable					;R54
Win_Type_Str:		db	'Report No FDD For WIN 95   : ',0	;R54
Win_Type_Val:		db	'No ',0					;R54
			db	'Yes',0					;R54
endif;	Fdd_install_flag_selectable					;R54

;kenneth
ifdef	ShowLOGO_selectable
ShowLOGO_sel_Str:	db	'LOGO : ',0	;R54
ShowLOGO_sel_Val:	db	'0',0			 	;R54
			db	'1',0				;R54
			db	'2',0				;R54
			db	'3',0				;R54
endif;	ShowLOGO_selectable
;kenneth
ifdef	FDC_FIFO_SELECTABLE						;R66
FdcFIFO_Str		db	'Floppy FIFO control        : ',0	;R66
endif;	FDC_FIFO_SELECTABLE						;R66

VgaSnoop_Str:		db	'PCI/VGA Palette Snoop      : ',0	;R32
ifdef	Trend_AntiVirus							;R74
Virus_Str   		db	'Anti-Virus Protection      : ',0	;R74
else;	Trend_AntiVirus							;R74
Virus_Str   		db	'Virus Warning              : ',0
endif;	Trend_AntiVirus							;R74

BootSeq_Str	     	db	'Boot Sequence              : ',0
ifndef	Support_1_FDD						;R62		
SwapFloppy_Str	     	db	'Swap Floppy Drive          : ',0	;R08
endif	;Support_1_FDD						;R62
ifndef	HIDE_STD_ITEMS						;R48
FdcSeek_Str		db	'Boot Up Floppy Seek        : ',0
endif;	HIDE_STD_ITEMS						;R48
;R65 start
ifdef	Support_HDD_Write_Protect
Hdd_Wt_Pt_Str		db	'Hard Disk Write Protect    : ',0
endif	;Support_HDD_Write_Protect
ifdef	Support_DriveA_Boot_Permit
DriveA_Boot_Permit_Str	db	'Drive A Boot Permit        : ',0
endif	;Support_DriveA_Boot_Permit
;R65 end
;R37 start
ifdef	Support_FDD_Write_Protect
Fdd_Wt_Pt_Str		db	'Floppy Disk Access Control : ',0
Fdd_Wt_Pt_Val		db	'R/W      ',0
			db	'Read Only',0
endif	;Support_FDD_Write_Protect
;R37 end
NumLock_Str		db	'Boot Up NumLock Status     : ',0
ifndef	HIDE_STD_ITEMS						;R48
 ifndef	NO_SPEED_ITEM						;R70
BootSpeed_Str		db	'Boot Up System Speed       : ',0
Pstr			db	'Low ',0
			db	'High',0
 endif;	NO_SPEED_ITEM						;R70
endif;	HIDE_STD_ITEMS						;R48
ifndef	IDE_ITEM_NOT_IN_BFEATURE				;R16A
IdeBlock_Str		db	'IDE HDD Block Mode         : ',0
endif	;IDE_ITEM_NOT_IN_BFEATURE				;R16A

;R35 - Start
ifdef Special_IDE_ITEM
Onboard_IDE_Str		db	'Onboard IDE Controller     : ',0
Onboard_IDE_Val		db	'Disabled',0
			db	'Enabled ',0
endif	;Special_IDE_ITEM
;R35 - Start

;R50 - starts
ifdef	PCI_VGA_IRQ_SETUP_ITEM
PciVgaIRQ_Str		db	'Assign IRQ For VGA         : ',0
endif	;PCI_VGA_IRQ_SETUP_ITEM
;R50 - ends

ifndef	NO_FAST_A20					;R58

ifdef	PORT92H_STRING							;R26
GateA20_Str		db	'Port 92H Fast A20G         : ',0	;R26
else;	PORT92H_STRING							;R26
GateA20_Str		db	'Gate A20 Option            : ',0
endif;	PORT92H_STRING							;R26

endif;	NO_FAST_A20					;R58

ifndef	PARITY_ITEM_NOT_IN_BFEATURE					;R41A
ifndef	NO_PARITY_ITEM					;R58
ifdef	SPECIAL_PARITY_STRING						;R41
Parity_Str		db	'Memory Parity/ECC Check    : ',0	;R41
else;	SPECIAL_PARITY_STRING						;R41
Parity_Str		db	'Memory Parity Check        : ',0
endif;	SPECIAL_PARITY_STRING						;R41
endif;	NO_PARITY_ITEM					;R58
endif;	PARITY_ITEM_NOT_IN_BFEATURE					;R41A
ifndef	HIDE_STD_ITEMS						;R48
TypeRate_Str		db	'Typematic Rate Setting     : ',0
TypeSpeed_Str		db	'Typematic Rate (Chars/Sec) : ',0
TypeDelay_Str		db	'Typematic Delay (Msec)     : ',0
Rate_Str		db	'6 ',0
			db	'8 ',0
			db	'10',0
			db	'12',0
			db	'15',0
			db	'20',0
			db	'24',0
			db	'30',0
Delay_Str		db	'250 ',0
			db	'500 ',0
			db	'750 ',0
			db	'1000',0
endif;	HIDE_STD_ITEMS						;R48
IntCache_Str 		db	'CPU Internal Cache         : ',0
ExtCache_Str 		db	'External Cache             : ',0
;R75 - starts
ifdef	Quiet_Post_Support
QuietPost_Str		db	'Quiet Post                 : ',0
endif;	Quiet_Post_Support
;R75 - ends
Quick_Str		db	'Quick Power On Self Test   : ',0
Security_Str		db	'Security Option            : ',0
;R29 - start
ifdef	PS2_SETUPABLE
 ifndef	PS2_ITEM_NOT_IN_BFEATURE		;R29A
Ps2_select_Str		db	'PS/2 mouse function control: ',0
 endif	;PS2_ITEM_NOT_IN_BFEATURE		;R29A
endif	;PS2_SETUPABLE
;R29 - end
;R68 start
ifdef	HDD_SMART_Support
HddSmart_Str		db	'HDD S.M.A.R.T. capability  : ',0	;R41
endif	;HDD_SMART_Support
;R68 end		

;R69 - start
ifdef	LAN_BOOT_SUPPORT
ifndef	Lan_Boot_In_IOFEAT		;R93
LanBoot_Str:
 ifdef	LAN_BOOT_STRING
		db	LAN_BOOT_STRING,0
 else;	LAN_BOOT_STRING
		db	'Boot From LAN First        : ',0
 endif;	LAN_BOOT_STRING
endif;	Lan_Boot_In_IOFEAT		;R93
endif;	LAN_BOOT_SUPPORT
;R69 - end

;R17 F000_Str		db	'System BIOS Shadow  : ',0

ifndef	NO_VIDEO_BIOS_SHADOW_ITEM				;R85
C000_Str		db	'Video  BIOS Shadow  : ',0
endif;	NO_VIDEO_BIOS_SHADOW_ITEM				;R85

ifdef	SHADOW_UNIT_32K
C800_Str		db	'C8000-CFFFF Shadow  : ',0
D000_Str		db	'D0000-D7FFF Shadow  : ',0
D800_Str		db	'D8000-DFFFF Shadow  : ',0
ifndef	PCI_BUS							;R32
ifndef	POST_SEG						;R24
ifdef	E000_64K_SHADOW					;R07
E000_Str		db	'E0000-EFFFF Shadow  : ',0
else;	E000_64K_SHADOW					;R07
E000_Str		db	'E0000-E7FFF Shadow  : ',0
E800_Str		db	'E8000-EFFFF Shadow  : ',0
endif;	E000_64K_SHADOW					;R07
endif;	POST_SEG						;R24
endif;	PCI_BUS							;R32
else;	SHADOW_UNIT_32K
ifndef	No_C8_DF_Shadow_Item					;R73
C800_Str		db	'C8000-CBFFF Shadow  : ',0
CC00_Str		db	'CC000-CFFFF Shadow  : ',0
D000_Str		db	'D0000-D3FFF Shadow  : ',0
D400_Str		db	'D4000-D7FFF Shadow  : ',0
D800_Str		db	'D8000-DBFFF Shadow  : ',0
DC00_Str		db	'DC000-DFFFF Shadow  : ',0
endif	;No_C8_DF_Shadow_Item					;R73
ifndef	PCI_BUS							;R32
ifndef	POST_SEG						;R24
ifdef	E000_64K_SHADOW					;R07
E000_Str		db	'E0000-EFFFF Shadow  : ',0
else;	E000_64K_SHADOW					;R07
E000_Str		db	'E0000-E3FFF Shadow  : ',0
E400_Str		db	'E4000-E7FFF Shadow  : ',0
E800_Str		db	'E8000-EBFFF Shadow  : ',0
EC00_Str		db	'EC000-EFFFF Shadow  : ',0
endif;	E000_64K_SHADOW					;R07
endif;	POST_SEG						;R24
endif;	PCI_BUS							;R32
endif;	SHADOW_UNIT_32K

;R92 - start
IF	BIOS_SUPPORT_586
M2ID_Str		db	'Cyrix 6x86/MII CPUID: ',0
ENDIF;	BIOS_SUPPORT_586
;R92 - end

;R49 - start
ifdef	IDE_HDD_DELAY_SUPPORT
HddDelay_Str		db	'Delay For HDD (Secs): ',0
HddDelay_Val		db	'NA',0
			db	' 2',0
			db	' 4',0
			db	' 8',0
			db	'10',0
			db	'12',0
			db	'15',0
			db	'20',0
endif;	IDE_HDD_DELAY_SUPPORT
;R49 - end

Pass_Str		db	'Setup ',0
			db	'System',0
ifdef	Never_Disable_Password					;R43
			db	'None  ',0			;R43
endif	;Never_Disable_Password					;R43

Off_Str			db	'Off',0
On_Str			db	'On ',0
NormA20_Str		db	'Normal',0
			db	'Fast  ',0

;R30 start
ifdef	CD_ROM
;R40Sstr			db	'A,C,CDROM',0
;R40			db	'C,A,CDROM',0
;R47 start
ifdef Support_B_Drive_Boot
;R56 start
ifdef HDD_Boot_Selectable
Sstr			db	'A/B,C,SCSI',0
;R59 start
;R59A start
;ifdef support_only_C_boot
;			db	'C only   ',0
;else ;support_only_C_boot
;R59A end
;R59 end
			db	'C,A/B,SCSI',0
;R59A endif ;support_only_C_boot	;R59
			db	'C,CD,A/B ',0
			db	'CD,C,A/B ',0
			db	'D,A/B,SCSI',0
			db	'E,A/B,SCSI',0
			db	'F,A/B,SCSI',0
			db	'SCSI,A/B,C',0
			db	'SCSI,C,A/B',0
			db	'C only   ',0		 ;R59A

else ;HDD_Boot_Selectable
;R56 end
Sstr			db	'A/B,C    ',0
;R59 start
;R59A start
;ifdef support_only_C_boot
;			db	'C only   ',0
;else ;support_only_C_boot
;R59A end
;R59 end
			db	'C,A/B    ',0
;R59A endif ;support_only_C_boot	;R59
			db	'C,CD,A/B ',0
			db	'CD,C,A/B ',0
			db	'C only   ',0	       ;R59A

endif ;HDD_Boot_Selectable				;R56
else ;Support_B_Drive_Boot
;R47 end
;R56 start
ifdef HDD_Boot_Selectable
Sstr			db	'A,C,SCSI ',0
;R59 start
;R59A start
;ifdef support_only_C_boot
;			db	'C only   ',0
;else ;support_only_C_boot
;R59A end
;R59 end
			db	'C,A,SCSI ',0
;R59A endif ;support_only_C_boot	;R59
ifdef	BOOT_FORM_A_CD_C					;R80
			db	'A,CDROM,C',0			;R80
else	;BOOT_FORM_A_CD_C					;R80
			db	'C,CDROM,A',0
endif	;BOOT_FORM_A_CD_C					;R80
ifdef	BOOT_FORM_CD_A_C					;R76
			db	'CDROM,A,C',0			;R76
else	;BOOT_FORM_CD_A_C					;R76
			db	'CDROM,C,A',0
endif	;BOOT_FORM_CD_A_C					;R76
			db	'D,A,SCSI ',0
ifndef  NO_SUPPORT_4_IDE	       				;R84
			db	'E,A,SCSI ',0
			db	'F,A,SCSI ',0
ELSE								;R84
			db	'E,A,SCSI ',1			;R84
			db	'F,A,SCSI ',1			;R84
endif ;NO_SUPPORT_4_IDE						;R84

			db	'SCSI,A,C ',0
			db	'SCSI,C,A ',0
			db	'C only   ',0	      ;R59A

else ;HDD_Boot_Selectable
;R56 end
Sstr			db	'A,C      ',0		;R40
;R59 start
;R59A start
;ifdef support_only_C_boot
;			db	'C only   ',0
;else ;support_only_C_boot
;R59A end
;R59 end
			db	'C,A      ',0		;R40
;R59A endif ;support_only_C_boot	;R59
ifdef	BOOT_FORM_A_CD_C					;R80
			db	'A,CDROM,C',0			;R80
else	;BOOT_FORM_A_CD_C					;R80
			db	'C,CDROM,A',0
endif	;BOOT_FORM_A_CD_C					;R80
ifdef	BOOT_FORM_CD_A_C					;R76
			db	'CDROM,A,C',0			;R76
else	;BOOT_FORM_CD_A_C					;R76
			db	'CDROM,C,A',0
endif	;BOOT_FORM_CD_A_C					;R76
			db	'C only   ',0		;R59A

endif ;HDD_Boot_Selectable				;R56
endif ;Support_B_Drive_Boot				;R47
else	;CD_ROM
;R30 end
;R47 start
ifdef Support_B_Drive_Boot
;R56 start
ifdef HDD_Boot_Selectable
Sstr			db	'A/B,C,SCSI',0
;R59 start
;R59A start
;ifdef support_only_C_boot
;			db	'C only   ',0
;else ;support_only_C_boot
;R59A end
;R59 end
			db	'C,A/B,SCSI',0
;R59A endif ;support_only_C_boot	;R59
			db	'D,A/B,SCSI',0
			db	'E,A/B,SCSI',0
			db	'F,A/B,SCSI',0
			db	'SCSI,A/B,C',0
			db	'SCSI,C,A/B',0
			db	'C only   ',0		 ;R59A

else ;HDD_Boot_Selectable
;R56 end
;R59 start
;R59A ifdef support_only_C_boot
Sstr			db	'A/B,C    ',0
;R59A			db	'C only',0
;R59A else ;support_only_C_boot
;R59 end
;R59A Sstr			db	'A/B,C',0
			db	'C,A/B    ',0
			db	'C only   ',0	    ;R59A

;R59A endif ;support_only_C_boot	;R59
endif ;HDD_Boot_Selectable				;R56
else ;Support_B_Drive_Boot
;R47 end
;R56 start
ifdef HDD_Boot_Selectable
Sstr			db	'A,C,SCSI ',0
;R59 start
;R59A start
;ifdef support_only_C_boot
;			db	'C only   ',0
;else ;support_only_C_boot
;R59A end
;R59 end
			db	'C,A,SCSI ',0
;R59A endif ;support_only_C_boot	;R59
			db	'D,A,SCSI ',0
			db	'E,A,SCSI ',0
			db	'F,A,SCSI ',0
			db	'SCSI,A,C ',0
			db	'SCSI,C,A ',0
			db	'C only   ',0		;R59A

else ;HDD_Boot_Selectable
;R56 end
;R59 start
;R59A ifdef support_only_C_boot
Sstr			db	'A,C      ',0
;R59A			db	'C only   ',0
;R59A else ;support_only_C_boot
;R59 end
;R59A Sstr			db	'A,C',0
			db	'C,A      ',0
			db	'C only   ',0		;R59A

;R59A endif ;support_only_C_boot	;R59
endif ;HDD_Boot_Selectable				;R56
endif ;Support_B_Drive_Boot				;R47
endif	;CD_ROM		;R30

;R61A start
ifdef	ATAPI_Boot
			db	'LS/ZIP,C ',0
elseifdef IOMEGA_ZIP_Support
			db	'ZIP100,C ',0
elseifdef	LS120_SUPPORT
;R61A end
;R61Aifdef	LS120_SUPPORT					;R61
			db	'LS120,C  ',0		;R61
endif	;LS120_SUPPORT					;R61

;R05 - start
ifdef	Turbo_Pin_Handler					;R14A
;R14A ifndef	No_Turbo_Pin_Handler				;R14
TB_SW_Input_Str		db	'Turbo Switch Input         : ',0
TB_SW_Input_Val		db	'Disabled',0
			db	'Enabled ',0
;R14A endif	;No_Turbo_Pin_Handler				;R14
endif	;Turbo_Pin_Handler					;R14A
;R05 - end

;R15 - start
ifndef	IDE_ITEM_NOT_IN_BFEATURE				;R16
ifdef	IDE_32BIT_SUPPORT
IDE_transfer_Str	db	'IDE 32-bit Transfer Mode   : ',0
IDE_T_Val		db	'Disabled',0
			db	'Enabled ',0
endif;	IDE_32BIT_SUPPORT
endif;	IDE_ITEM_NOT_IN_BFEATURE				;R16
;R15 - end

;R18 start
ifndef	NOT_STD_IDE_MODE_3	;R25
ifdef	IDE_MODE_3_SUPPORT
IDE_mode_3_Str		db	'IDE PIO Mode 3 Support     : ',0
endif	;IDE_MODE_3_SUPPORT
endif;	NOT_STD_IDE_MODE_3	;R25
;R18 end

;R19 - start
ifdef	IDE_TIME_OUT_SETUP
IdeTimeOut_Str		db	'Time Out(Sec.) For IDE Auto: ',0
IdeTimeOut_Val		db	'2 ',0
			db	'4 ',0
			db	'6 ',0
			db	'8 ',0
			db	'10',0
			db	'12',0
endif;	IDE_TIME_OUT_SETUP
;R19 - end

ifdef	PCI_BUS
ifndef	PCI_IDE_2nd_Channel_Not_At_BF					;R23A
Second_Ide_Str		db	'IDE Second Channel Control : ',0	;R23
endif	;PCI_IDE_2nd_Channel_Not_At_BF					;R23A
endif	;PCI_BUS


;R34 - start
ifdef	ONBOARD_NCR_SETUPABLE_IN_BFEATURE
Scsi_Str		db	'Onboard SCSI Controller  : ',0
Scsi_Val		db	'Disabled',0
			db	'Enabled ',0
ScsiDly_Str		db	'Delay For SCSI/HDD (Secs): ',0
;R60 - start
ifdef	ONBOARD_NCR_IRQ_SETUPABLE
Scsi_Irq_Str		db	'Onboard SCSI IRQ use     : ',0
Scsi_Irq_Val		db	'IRQ  9',0
			db	'IRQ 10',0
endif;	ONBOARD_NCR_IRQ_SETUPABLE
;R60 - end
endif;	ONBOARD_NCR_SETUPABLE_IN_BFEATURE
ifdef	ADVANTECH
WATCH_DOG_Str		db	'WATCH DOG TIMER SETTING  : ',0
WATCH_DOG_Val		db	'Disable',0
			db	'    0.5',0
			db	'    1.0',0
			db	'    2.0',0
			db	'    3.9',0
			db	'    7.9',0
			db	'   15.8',0
			db	'   31.5',0
			db	' 1:03.0',0
			db	' 2:06.0',0
			db	' 4:12.0',0
			db	' 8:24.0',0
			db	'16:48.0',0

FAN_TURN_Str		db	'FAN TURN ON TEMPERATURE  : ',0
FAN_TURN_Val		db	' ALWAYS',0
			db	'   40øC',0
			db	'   45øC',0
			db	'   50øC',0
			db	'   55øC',0
			db	'   60øC',0

CPU_OVERHEAT_Str	db	'CPU OVERHEAT TEMPERATURE : ',0
CPU_OVERHEAT_Val	db	'Disable',0
			db	'   80øC',0
			db	'   75øC',0
			db	'   70øC',0
			db	'   65øC',0
endif;	ADVANTECH
;R34 - end

;R44 - start
;R63 ifdef	MP_TBL_SELECTABLE
;R63 Mp_Tbl_Str	db	'MPS V1.4 For Single CPU    : ',0;R57
;R63 ;R57 Mp_Tbl_Str		db	'MP Table For Single CPU    : ',0
;R63 endif	;MP_TBL_SELECTABLE
;R44 - end

;R64 start
ifdef	RPB_ENABLED                   ; RXX
ifdef RPB_BFEATURE_ENABLED
  include rpb_bfs2.inc
endif ; RPB_BFEATURE_ENABLED
endif ; RPB_ENABLED
;R64 end

ifdef	MP_SUPPORT				;R63
Mp_Tbl_Str	db	'MPS Version Control For OS : ',0
Mp_Tbl_Val	db	'1.1',0
		db	'1.4',0
endif;	MP_SUPPORT				;R63

;R78 -start
ifdef   DMI_EVENT_LOG_IN_SETUP

DMIEventLog_Str         db      'DMI Event Log           : ',0
ClearAllDMIEventLog_Str db      'Clear All DMI Event Log : ',0
ViewDMIEventLog_Str     db      'View DMI Event Log      : ',0
MarkDMIEvents_Str       db      'Mark DMI Events as Read : ',0
Event_Log_Capacity_str  db      'Event Log Capacity : ',0
Event_Log_Validity_str  db      'Event Log Validity : ',0

Enter_Str               db      '[Enter]',0

Validity_Str            db      'Valid  ',0
                        db      'UnValid',0

Clear_val               db      'No ',0
                        db      'Yes',0
endif   ;DMI_EVENT_LOG_IN_SETUP
;R78 -end

;R01 Starts
;R55 Show_IntCache	Proc	Near
;R55 
;R55 		cmp	al,Special_Before
;R55 		jne	short Show_IntCache_Exit
;R55 
;R55 		test	byte ptr Fixed_Disk_Step[bp],CPUCACHE
;R55 		jnz	short Show_IntCache_Exit
;R55 
;R55 		call	Self_Disable
;R55 
;R55 		stc
;R55 
;R55 Show_IntCache_Exit:
;R55 
;R55 		ret
;R55 
;R55 Show_IntCache	Endp
;R01 Ends

;R05 - start
ifdef	Turbo_Pin_Handler					;R14A
;R14A ifndef	No_Turbo_Pin_Handler				;R14
		EXTRN	SYSTEM_BYTE:BYTE
Show_TB_SW	Proc	Near

		test	byte ptr cs:SYSTEM_BYTE,80h	;turbo switch enabled?
		jnz	short Show_TB_SW_Exit

		call	Self_Disable

		stc

Show_TB_SW_Exit:

		ret

Show_TB_SW	Endp
;R14A endif;	No_Turbo_Pin_Handler				;R14
endif;	Turbo_Pin_Handler					;R14A
;R05 - end

;R06 - start
;R28 ifdef	CYRIXC6_SETUPABLE						;R06
;R28 Cyrix_C6_Str		db	'Cyrix 487 Coprocessor      : ',0
;R28 Cyrix_C6_Val		db	'Absent ',0
;R28 			db	'Present',0
;R28 Show_c6_item	Proc	Near
;R28 
;R28 		cmp	al,Special_after
;R28 		jne	short Show_C6
;R28 
;R28 		mov	al,FIXED_DISK_STEP[bp]
;R28 		and	al,CPU_TYPE_MASK
;R28 
;R28 		cmp	al,TYPE_CX486S
;R28 		je	short Show_C6
;R28 		cmp	al,TYPE_CX486S2
;R28 		jne	short @F
;R28 Show_C6:
;R28 		clc
;R28 		ret
;R28 @@:
;R28 		call	Self_Disable
;R28 		stc
;R28 		ret
;R28 
;R28 Show_c6_item	endp
;R28 endif;	CYRIXC6_SETUPABLE						;R06
;R06 - end

;R51 - start
ifdef	SWAP_FDD_SHOW
SwapFloppy_Handler:
		cmp	al,Special_Before
		jne	short Do_ABABCHG_Exit

		mov	ax,LAST_KEY[bp]
		cmp	ax,K_PLUS
		je	short @F
		cmp	ax,PGDN
		je	short @F

		cmp	ax,K_MINUS
		je	short @F
		cmp	ax,PGUP
		jne	short Do_ABABCHG_Exit
	@@:

		ror	byte ptr CMOS10[bp],4

Do_ABABCHG_Exit:

		clc
		ret
endif;	SWAP_FDD_SHOW
;R51 - end

;R78 -start
ifdef   DMI_EVENT_LOG_IN_SETUP

Goto_View_DMI_Event_Log_Show    proc    near

                cmp     al, Special_After
                je      Goto_View_DMI_Event_Log_End

                cmp     word ptr LAST_KEY[bp], K_CR1
                jne     Goto_View_DMI_Event_Log_End

.386p
                pushad
                push    word ptr ATTRIBUTE[bp]
                push    word ptr CURSOR_X[bp]

;R78A                mov     si, offset Show_DMI_Event_Log_Border
;R78A                call    Display_String
                Xcall   Show_DMI_Event_Log_str
;R78A                xor     ax, ax
;R78A                int     16h

                call    Refresh_Menu1
                pop     word ptr CURSOR_X[bp]
                pop     word ptr ATTRIBUTE[bp]
                popad

Goto_View_DMI_Event_Log_End:

                ret

;R78AShow_DMI_Event_Log_Border:
;R78A                db      V_WARN
;R78A                BORDER1 <,21, 4, 60, 22, 1+Empty_Border>
;R78A                POS     <, 32, 21>
;R78A                db      V_HILITE, 'Any Key to exit'
;R78A                db      0

Goto_View_DMI_Event_Log_Show    endp


Goto_Mark_DMI_Events_Log        proc    near

                cmp     al, Special_After
                je      Mark_DMI_Events_Log_End

                cmp     word ptr LAST_KEY[bp], K_CR1
                jne     Mark_DMI_Events_Log_End

.386p
                pushad
                push    word ptr ATTRIBUTE[bp]
                push    word ptr CURSOR_X[bp]

                mov     si, offset Mark_DMI_Events_Log_Border
                call    Display_String
                stc                             ;default NO
                call    Ask_Confirm
                jnz     short @F                ;ESC pressed
                jnc     short Clear_Event_Log   ;'Y'
@@:
                jmp     short No_Clear_Event_Log

Clear_Event_Log:
		call	clear_dmi_event_log_func		;R88A
;R88A                 push    ax
;R88A                 push    ax
;R88A                 mov     ax,1                            ; control
;R88A                 push    ax
;R88A ;R88 start
;R88A ifdef	flash_in_smbase
;R88A 		xor	eax,eax
;R88A else	;flash_in_smbase
;R88A ;R88 end
;R88A                 mov     ax,TEMP_MEM
;R88A                 shl     eax,16
;R88A endif	;flash_in_smbase		;R88
;R88A                 push    eax                             ; data buffer
;R88A ifndef	flash_in_smbase			;R88
;R88A                 mov     ax,0
;R88A endif	;flash_in_smbase		;R88
;R88A                 push    ax                              ; sub func num
;R88A                 mov     ax,54h                          ; Pnp Func num
;R88A                 push    ax
;R88A                 FAR_CALL  <offset PNP_BIOS_Real>, 0F000h
;R88A                 add     sp,0Eh
;R88A 
No_Clear_Event_Log:

                call    Refresh_Menu1
                pop     word ptr CURSOR_X[bp]
                pop     word ptr ATTRIBUTE[bp]
                popad

Mark_DMI_Events_Log_End:
                ret

Mark_DMI_Events_Log_Border:
                db      V_WARN
                BORDER1 <,22,11,57,15,1+Empty_Border>
                POS     <,25,13>
                db      'Mark DMI Event Log (Y/N)? '
                db      0

Goto_Mark_DMI_Events_Log        endp

Goto_Event_Log_Capacity_Show    proc    near

                cmp     al,Special_Before
                jne     short Special_Exit

                pushad
                push    es
                push    ds
                Xcall   Check_Event_Log_Space
                pop     ds
                pop     es
                popad
Special_Exit:
                ret

Goto_Event_Log_Capacity_Show    endp

endif   ;DMI_EVENT_LOG_IN_SETUP
;R78 -end

FCODE		ENDS

;R78 -start
ifdef   DMI_EVENT_LOG_IN_SETUP

.386
XGROUP          GROUP   XCODE
XCODE           SEGMENT USE16 PARA PUBLIC 'XCODE'
                ASSUME  CS:XGROUP,ES:XGROUP

Show_DMI_Event_Log_str  proc    near
                pusha
                push    es
                push    ds

                xor     eax,eax
                mov     ax,TEMP_MEM
                shl     eax,16
                mov     bx,0                            ; handle
                mov     cx,56h                          ; Pnp Func num
                push    ax
                push    ax
                push    eax
                push    eax
                push    bx
                push    cx
                FAR_CALL  <offset PNP_BIOS_Real>, 0F000h
                add     sp,10h

;R78A                mov     ax,cs
;R78A                mov     ds,ax
;R78A                mov     si,offset First_new_line
;R78A                F000_call       Display_String
                mov     ax,TEMP_MEM
                mov     es,ax
                xor     di,di
                cmp     word ptr es:[di], 0ffffh
;R78A                je      short not_event_log
                je      not_event_log
		add	di,10h		;R78C add 10h byte for type1 header.
disply_event_log_str:
		call	show_event_time		;R78A
                add     di,8
;R78A                mov     si,word ptr es:[di]
;R78A                mov     ax,word ptr es:[di+2]
;R78A                mov     ds,ax
;R78A                F000_call       Display_String
;R78A                add     di,8
;R78A                cmp     word ptr es:[di],0ffffh
;R78A                je      short exit_Show_DMI_Event_Log_str
;R78A                mov     ax,cs
;R78A                mov     ds,ax
;R78A                mov     si,offset show_new_line
;R78A                F000_call       Display_String
;R78A                jmp     short disply_event_log_str

;R78A start
		mov	ax,0e000h			;R78AEGROUP
		mov	ds,ax
		push	di
		xor	bx,bx				; Clear count
Find_Error_Code_Loop:
		push	bx
		mov	si,offset Error_Tbl_List	; get Error_Tbl_List add
		mov	al,byte ptr es:[di]
		or	al,al
		jz	short not_have_post_error
		push	si
		mov	si,offset GPNV_Error_List
		mov	ax,word ptr ds:[si+bx]
		pop	si
;R78B start
		or	ax,ax
		jz	short next_error_type
;R78B end

Catagory_Loop:
		mov	dx,ds:[si+2]		;DI = next catagory
		add	si,4			;skip checking bits
						; & pointer to next addr.
In_This_Catagory_Loop:
		mov	bx,word ptr ds:[si]
		cmp	ax,word ptr ds:[bx]
		je	short Find_Error_Catagory
		inc	si
		inc	si
		cmp	si,dx
		jne	short In_This_Catagory_Loop
		mov	si,dx			;SI point to next catagory
		cmp	word ptr ds:[si], -1	;have we finished all
						; catagory of errors ?
		jne	short Catagory_Loop	;no, please continue !
		jmp	short not_have_post_error
Find_Error_Catagory:
		pusha
		call	Show_Errors
		popa
not_have_post_error:
		inc	di
		pop	bx
		add	bx,2
;R78B		cmp	bx,6
;R78B		je	short next_error_type
;R78B start
		mov	si,offset GPNV_Error_List
		mov	ax,ds:[si+bx]
		or	ax,ax
		jz	short next_error_type
;R78B end
		jmp	short Find_Error_Code_Loop
next_error_type:
		pop	di
wait_key:
		push	bx
		F000_call	key			;wait for key
		pop	bx

                cmp     ax,PGUP
		jne	short not_pgup_key
;R78C		cmp	di,08h
		cmp	di,18h		;R78C add 10h byte for type1 header.
		jbe	short wait_key
		sub	di,18h
;R78A		jmp	short disply_event_log_str
		jmp	disply_event_log_str
not_pgup_key:
                cmp     ax,PGDN
		jne	short not_pgdn_key
		cmp	di,78h
		jae	short wait_key
                cmp     word ptr es:[di+8],0ffffh
		je	short wait_key
                add     di,08h
		jmp	disply_event_log_str
not_pgdn_key:
                cmp     ax,K_ESC1
		jne	short wait_key
		jmp	short exit_Show_DMI_Event_Log_str
;R78A end

not_event_log:
                mov     ax,cs
                mov     ds,ax
                mov     si,offset Show_DMI_Event_Log_Border	;R78A
                F000_call       Display_String			;R78A
                mov     si,offset not_event_log_str
                F000_call       Display_String
                xor     ax, ax					;R78A
                int     16h					;R78A
exit_Show_DMI_Event_Log_str:
                pop     ds
                pop     es
                popa
                ret

;R78AFirst_new_line:
;R78A                db      V_WARN
;R78A                POS     <, 22, 5>
;R78A                db      0

show_new_line:
                db      NEWLINE
;R78B                db      V_ADDX,22
                db      V_ADDX,21					;R78B
                db      0

not_event_log_str:
;R78B                POS     <, 22, 5>					  ;R78A
                POS     <, 21, 5>					  ;R78B
                db      V_WARN						  ;R78A
                db      'No Post Error'
;R78B                POS     <, 22, 21>					  ;R78A
                POS     <, 21, 21>					  ;R78B
	        db      V_HILITE, '             Any Key Exit              ';R78A
                db      0
Show_DMI_Event_Log_str  endp

;R78A start
Show_Errors	proc	near
		mov	cx,bx
		add	bx,2
		mov	si,bx
@@:
		lodsb
		mov	bl,al
		lodsw

		or	bl,bl
		jz	short exit_show_errors

		test	byte ptr es:[di],bl
		je	short @B

		push	ds
		push	si

		mov	si,ax
                F000_call       Display_String		; print err str

		mov	bx,cx
		cmp	word ptr ds:[bx],159H		; FLOPPY_ERROR
		jne	short not_floppy_error
		mov	al,byte ptr es:[di]		; FLOPPY_ERROR_CODE
		F000_call DISP_BYTE_HEX2
not_floppy_error:

                mov     ax,cs
                mov     ds,ax
                mov     si,offset show_new_line		; new line
                F000_call       Display_String

		pop	si
		pop	ds
		jmp	short @B
exit_show_errors:
		ret
Show_Errors	endp


show_event_time	proc	near
                mov     ax,cs
                mov     ds,ax
                mov     si, offset Show_DMI_Event_Log_Border
                F000_call       Display_String

		push	di
		add	di,2
                mov     si, offset Date_str
                F000_call       Display_String
		mov	cx,2
@@:
		push	cx
		mov	al,byte ptr es:[di]
		F000_call	DISP_BYTE_INT2
		mov	al,'/'
		F000_call	DISPLAY_CHAR
		pop	cx
		inc	di
		loop	short @B
		mov	al,byte ptr es:[di]
		F000_call	DISP_BYTE_INT2
		inc	di

                mov     si, offset Time_str
                F000_call       Display_String
		mov	cx,2
@@:
		push	cx
		mov	al,byte ptr es:[di]
		F000_call	DISP_BYTE_INT2
		mov	al,':'
		F000_call	DISPLAY_CHAR
		pop	cx
		inc	di
		loop	short @B
		mov	al,byte ptr es:[di]
		F000_call	DISP_BYTE_INT2

                mov     si,offset show_new_line		; new line
                F000_call       Display_String

		pop	di
		ret
Show_DMI_Event_Log_Border:
                db      V_WARN
;R78B                BORDER1 <,21, 4, 60, 22, 1+Empty_Border>
                BORDER1 <,20, 4, 62, 22, 1+Empty_Border>		;R78B
                POS     <, 22, 21>					
	        db      V_HILITE, 'ESC:Quit PgUp/PgDn:Previous/Next Event'
                db      0

Date_str:
;R78B                POS     <, 22, 5>
                POS     <, 21, 5>					;R78B
	        db      V_HILITE, 'Date : '
                db      V_WARN
                db      0
Time_str:
                POS     <, 40, 5>
	        db      V_HILITE, 'Time : '
                db      V_WARN
                db      0
show_event_time	endp
;R78Aend

Check_Event_Log_Space   proc    near
                mov     ax,TEMP_MEM
                mov     es,ax
                xor     di,di
                mov     ax,DMI_STORAGE_BASE
                mov     ds,ax
                mov     si,DMI_OFFSET + DMI_MAX_POOL_SIZE
                mov     cx,DMI_STORAGE_SIZE - DMI_MAX_POOL_SIZE
                F000_call       Post_Flash_Read
                push    es
                pop     ds
                push    di
                pop     si
                mov     bx,Event_Log_Handle
                F000_call       Find_handle_fun
                jc      short Space_Available
;R89            add     si, 2
                add     si,12h			;R89 point to first offset of gpnv data
                xor     ax,ax

Find_Event_Logo_space:
                cmp     word ptr ds:[si],0ffffh
                je      short Space_Available
;R89            xor     bx,bx
;R89            mov     bl,byte ptr ds:[si+1]
                movzx     bx,byte ptr ds:[si+1]	;R89 get one gpnv's size
                add     ax,bx			;count it
                cmp     ax,GPNV_BLOCK_SIZE * 2	;overflow for buffer of GPNV_BLOCK
                jae     short Space_UnAvailable
                add     si,bx			;point to next gpnv data
                jmp     short Find_Event_Logo_space

Space_Available:
                mov     ax,cs
                mov     ds,ax
                mov     si,offset Space_Avail_Str
                F000_call       Display_String
                ret
Space_UnAvailable:
                mov     ax,cs
                mov     ds,ax
                mov     si,offset Space_Full_Str
                F000_call       Display_String
                ret

Check_Event_Log_Space   endp

Space_Avail_Str db      'Space Available',0
Space_Full_Str  db      'Space FULL     ',0

XCODE           ENDS
endif   ;DMI_EVENT_LOG_IN_SETUP
;R78 -end

		END
