;
;	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
;----------------------------------------------------------------------------
;R12	04/16/99 BAR	Support MOSEL29C51001T 1M flash ROM.
;R11	03/29/99 BAR	Support SST 39SF010
;R10	12/18/98 BAR	Support MXIC 29F001T, ST M29400BT , 29F002T 
;			       & Intel 828802AD flash ROM.
;R09	11/17/98 BAR	Support 4M flash ROM.
;			Support AM29F400BT
;R08	08/28/98 BAR	Added SST 39SF020 2M EEPROM support.
;R07	05/14/98 BAR	Added Flash1M_16K_8K_8K_Unit definition.
;			Support ATMEL 49F001T 1M flash.
;R06    03/37/98 BAR    Added define to reduce code.
;R05	03/27/98 BAR	Added PMC 29F002C 2M EEPROM support.
;R04	01/23/98 BAR	Added BMI 29FS020 EEPROM support.
;R03	11/14/97 BAR	Added IMT 29F002T EEPROM support.
;R02	03/21/97 AVN	Added MXIC 28F002TTC EEPROM support.
;R01	03/07/97 AVN	Added MXIC 28F2000TPC EEPROM support.

		include	btromseg.equ
		include	ROMLEN.INC
		include EEPROM.EQU
ifdef	FLASH_SUPPORT
;R09 - start
ifdef	Flash_4M_support
;[]===========================================================[]
;		4M BIOS 16K_8K_8K Unit
;[]===========================================================[]
   ifdef	Flash_16K_8K_8K_Unit
	AMD_29F400BT_Start:
	ifdef	Support_AM29F400BT_Series
		include	am29f400.nvm
AMD_29F400BT_LEN		EQU	offset AMD_29F400BT_End - offset AMD_29F400BT_Start
AMD_29F400BT_WRITE_OFFSET	EQU	offset AM29F400BT_Flash_Write - offset AM29F400BT_Flash_Erase
	endif;	Support_AM29F400BT_Series
	AMD_29F400BT_End:


FLASH_CODE_SIZE_ERROR	=	0

IF	AMD_29F400BT_LEN GT _4M_EEPROM_LEN
FLASH_CODE_SIZE_ERROR	=	1
ENDIF

IF	FLASH_CODE_SIZE_ERROR	EQ	1
%OUT	ERROR: AM29F002.NVM code size is more then prepare in ROMLEN.INC
%OUT	       Please increase size in ROMLEN.INC
ENDIF
;R10 - start
;;;   elseifdef	Flash_64K_Unit

   ifdef	Support_INTEL_E82802_Series
INTEL_E82802_Start:
		include	f002bxt.nvm
INTEL_E82802_LEN		EQU	offset INTEL_E82802_End - offset INTEL_E82802_Start
INTEL_E82802_WRITE_OFFSET	EQU	offset F002BXT_Flash_Write - offset F002BXT_Flash_Erase
INTEL_E82802_End:
   endif;	Support_INTEL_E82802_Series


FLASH_CODE_SIZE_ERROR	=	0

IF	INTEL_E82802_LEN GT _4M_EEPROM_LEN
FLASH_CODE_SIZE_ERROR	=	1
ENDIF


IF	FLASH_CODE_SIZE_ERROR	EQ	1
%OUT	ERROR: F002BXT.NVM code size is more then prepare in ROMLEN.INC
%OUT	       Please increase size in ROMLEN.INC
ENDIF

;R10 - end

   endif;	Flash_16K_8K_8K_Unit
elseifdef	Flash_2M_support
;R09 - end
;R09	ifdef	Flash_2M_support
;[]===========================================================[]
;		2M BIOS 16K_8K_8K Unit
;[]===========================================================[]

ifdef	Flash_16K_8K_8K_Unit

SST_29EE020_Start:
   ifdef	Support_SST29EE020_Series		;R06
		include	sst020.nvm
   endif;	Support_SST29EE020_Series		;R06
SST_29EE020_End:

;R08 - start
SST_39SF020_Start:
   ifdef	Support_SST39SF020_Series
		include	sst39020.nvm
   endif;	Support_SST39SF020_Series
SST_39SF020_End:
;R08 - end

AMD_29F002T_Start:
   ifdef	Support_AM29F002_Series			;R06
		include	am29f002.nvm
   endif;	Support_AM29F002_Series			;R06
AMD_29F002T_End:

ATMEL_29C020_Start:
   ifdef	Support_ATMEL29C020_Series		;R06
		include	atmel020.nvm
   endif;	Support_ATMEL29C020_Series		;R06
ATMEL_29C020_End:

INTEL_28F002BXT_Start:
   ifdef	Support_INTEL_28F002BXT_Series		;R06
		include	f002bxt.nvm
   endif;	Support_INTEL_28F002BXT_Series		;R06
INTEL_28F002BXT_End:

MXIC_28F2000PPC_Start:					;R01
   ifdef	Support_MXIC28F2000PPC_Series		;R06
		include	mx2mppc.nvm			;R01
   endif;	Support_MXIC28F2000PPC_Series		;R06
MXIC_28F2000PPC_End:					;R01
MXIC_28F002TTC_Start:					;R02
   ifdef	Support_MXIC28F002TTC_Series		;R06
		include	mx2mttc.nvm			;R02
   endif;	Support_MXIC28F002TTC_Series		;R06
MXIC_28F002TTC_End:					;R02

IMT_29F002T_Start:					;R03
   ifdef	Support_IMT_IM29F002T_Series		;R06
		include	im29f002.nvm			;R03
   endif;	Support_IMT_IM29F002T_Series		;R06
IMT_29F002T_End:					;R03

BM_29FS020_Start:					;R04
   ifdef	Support_BRIGHT_BM29FS020_Series		;R06
		include	bm29fs02.nvm			;R04
   endif;	Support_BRIGHT_BM29FS020_Series		;R06
BM_29FS020_End:						;R04

PMC_29F002C_Start:					;R05
   ifdef	Support_PMC_PM29F002C_Series		;R06
		include	pm29f002.nvm			;R05
   endif;	Support_PMC_PM29F002C_Series		;R06
PMC_29F002C_End:					;R05

SST_29EE020_LEN			EQU	offset SST_29EE020_End - offset SST_29EE020_Start
SST_29EE020_WRITE_OFFSET	EQU	offset SST020_Flash_Write - offset SST020_Flash_Erase
;R08 - start
SST_39SF020_LEN			EQU	offset SST_39SF020_End - offset SST_39SF020_Start
SST_39SF020_WRITE_OFFSET	EQU	offset SST_39SF020_Flash_Write - offset SST_39SF020_Flash_Erase
;R08 - end

AMD_29F002T_LEN			EQU	offset AMD_29F002T_End - offset AMD_29F002T_Start
AMD_29F002T_WRITE_OFFSET	EQU	offset AM29F002T_Flash_Write - offset AM29F002T_Flash_Erase
ATMEL_29C020_LEN		EQU	offset ATMEL_29C020_End - offset ATMEL_29C020_Start
ATMEL_29C020_WRITE_OFFSET	EQU	offset ATMEL29C020_Flash_Write - offset ATMEL29C020_Flash_Erase
INTEL_28F002BXT_LEN		EQU	offset INTEL_28F002BXT_End - offset INTEL_28F002BXT_Start
INTEL_28F002BXT_WRITE_OFFSET	EQU	offset F002BXT_Flash_Write - offset F002BXT_Flash_Erase
MXIC_28F2000PPC_LEN		EQU	offset MXIC_28F2000PPC_End - offset MXIC_28F2000PPC_Start		;R01
MXIC_28F2000PPC_WRITE_OFFSET	EQU	offset MX_28f2000PPC_Flash_Write - offset MX_28f2000PPC_Flash_Erase	;R01
MXIC_28F002TTC_LEN		EQU	offset MXIC_28F002TTC_End - offset MXIC_28F002TTC_Start			;R02
MXIC_28F002TTC_WRITE_OFFSET	EQU	offset MX_28f002TTC_Flash_Write - offset MX_28F002TTC_Flash_Erase	;R02
IMT_29F002T_LEN			EQU	offset IMT_29F002T_End - offset IMT_29F002T_Start
IMT_29F002T_WRITE_OFFSET	EQU	offset IMT_29F002T_Flash_Write - offset IMT_29F002T_Flash_Erase
BM_29FS020_LEN			EQU	offset BM_29FS020_End - offset BM_29FS020_Start				;R04
BM_29FS020_WRITE_OFFSET		EQU	offset BM_29FS020_Flash_Write - offset BM_29FS020_Flash_Erase		;R04
PMC_29F002C_LEN			EQU	offset PMC_29F002C_End - offset PMC_29F002C_Start			;R05
PMC_29F002C_WRITE_OFFSET	EQU	offset PMC_29F002C_Flash_Write - offset PMC_29F002C_Flash_Erase		;R05




FLASH_CODE_SIZE_ERROR	=	0
IF	SST_29EE020_LEN GT _2M_EEPROM_LEN
FLASH_CODE_SIZE_ERROR	=	1
ENDIF
IF	AMD_29F002T_LEN GT _2M_EEPROM_LEN
FLASH_CODE_SIZE_ERROR	=	2
ENDIF
IF	ATMEL_29C020_LEN GT _2M_EEPROM_LEN
FLASH_CODE_SIZE_ERROR	=	3
ENDIF
IF	INTEL_28F002BXT_LEN GT _2M_EEPROM_LEN
FLASH_CODE_SIZE_ERROR	=	4
ENDIF
IF	MXIC_28F2000PPC_LEN GT _2M_EEPROM_LEN		;R01
FLASH_CODE_SIZE_ERROR	=	5			;R01
ENDIF							;R01
IF	MXIC_28F002TTC_LEN GT _2M_EEPROM_LEN		;R02
FLASH_CODE_SIZE_ERROR	=	6			;R02
ENDIF							;R02
IF	IMT_29F002T_LEN GT _2M_EEPROM_LEN		;R03
FLASH_CODE_SIZE_ERROR	=	7			;R03
ENDIF							;R03
IF	BM_29FS020_LEN GT _2M_EEPROM_LEN		;R04
FLASH_CODE_SIZE_ERROR	=	8			;R04
ENDIF							;R04
IF	PMC_29F002C_LEN GT _2M_EEPROM_LEN		;R05
FLASH_CODE_SIZE_ERROR	=	9			;R05
ENDIF							;R05

IF	SST_39SF020_LEN GT _2M_EEPROM_LEN		;R08
FLASH_CODE_SIZE_ERROR	=	10			;R08
ENDIF							;R08


IF	FLASH_CODE_SIZE_ERROR	EQ	1
%OUT	ERROR: SST020.NVM code size is more then prepare in ROMLEN.INC
%OUT	       Please increase size in ROMLEN.INC
ENDIF

IF	FLASH_CODE_SIZE_ERROR	EQ	2
%OUT	ERROR: AM29F002.NVM code size is more then prepare in ROMLEN.INC
%OUT	       Please increase size in ROMLEN.INC
ENDIF

IF	FLASH_CODE_SIZE_ERROR	EQ	3
%OUT	ERROR: ATMEL020.NVM code size is more then prepare in ROMLEN.INC
%OUT	       Please increase size in ROMLEN.INC
ENDIF

IF	FLASH_CODE_SIZE_ERROR	EQ	4
%OUT	ERROR: F002BXT.NVM code size is more then prepare in ROMLEN.INC
%OUT	       Please increase size in ROMLEN.INC
ENDIF

IF	FLASH_CODE_SIZE_ERROR	EQ	5					;R01
%OUT	ERROR: MX2MPPC.NVM code size is more then prepare in ROMLEN.INC		;R01
%OUT	       Please increase size in ROMLEN.INC				;R01
ENDIF										;R01

IF	FLASH_CODE_SIZE_ERROR	EQ	6					;R02
%OUT	ERROR: MX2MTTC.NVM code size is more then prepare in ROMLEN.INC		;R02
%OUT	       Please increase size in ROMLEN.INC				;R02
ENDIF										;R02

IF	FLASH_CODE_SIZE_ERROR	EQ	7					;R03
%OUT	ERROR: IMT002T.NVM code size is more then prepare in ROMLEN.INC		;R03
%OUT	       Please increase size in ROMLEN.INC				;R03
ENDIF

IF	FLASH_CODE_SIZE_ERROR	EQ	8					;R04
%OUT	ERROR: BM29FS02.NVM code size is more then prepare in ROMLEN.INC	;R04
%OUT	       Please increase size in ROMLEN.INC				;R04
ENDIF
IF	FLASH_CODE_SIZE_ERROR	EQ	9					;R05
%OUT	ERROR: PM29F002.NVM code size is more then prepare in ROMLEN.INC	;R05
%OUT	       Please increase size in ROMLEN.INC				;R05
ENDIF

IF	FLASH_CODE_SIZE_ERROR	EQ	10					;R08
%OUT	ERROR: SST39020.NVM code size is more then prepare in ROMLEN.INC	;R08
%OUT	       Please increase size in ROMLEN.INC				;R08
ENDIF

;[]===========================================================[]
;		2M BIOS 4K Unit
;[]===========================================================[]

elseifdef	Flash_4K_Unit
MXIC_28F2000PPC_Start:
   ifdef	Support_MXIC28F2000PPC_Series		;R06
		include	mx2mppc.nvm
   endif;	Support_MXIC28F2000PPC_Series		;R06
MXIC_28F2000PPC_End:

MXIC_28F2000PPC_LEN		EQU	offset MXIC_28F2000PPC_End - offset MXIC_28F2000PPC_Start
MXIC_28F2000PPC_WRITE_OFFSET	EQU	offset MX_28f2000PPC_Flash_Write - offset MX_28f2000PPC_Flash_Erase

FLASH_CODE_SIZE_ERROR	=	0
IF	MXIC_28F2000PPC_LEN GT _2M_EEPROM_LEN
FLASH_CODE_SIZE_ERROR	=	1
ENDIF

IF	FLASH_CODE_SIZE_ERROR	EQ	1
%OUT	ERROR: MX2MPPC.NVM code size is more then prepare in ROMLEN.INC
%OUT	       Please increase size in ROMLEN.INC
ENDIF

endif;	Flash_16K_8K_8K_Unit
else;	Flash_2M_support
;[]===========================================================[]
;		1M BIOS 4K Unit
;[]===========================================================[]

ifdef	Flash_4K_Unit
FLASH_CODE_SIZE_ERROR	=	0			;R11
SST_29EE010_Start:
   ifdef	Support_SST_29EE010_Series		;R06
		include	sst010.nvm
   endif;	Support_SST_29EE010_Series		;R06
SST_29EE010_End:
;R11 - start
SST_39SF010_Start:
   ifdef	Support_SST_39SF010_Series
		include	sst39010.nvm
SST_39SF010_End:

SST_39SF010_LEN			EQU	offset SST_39SF010_End - offset SST_39SF010_Start
SST_39SF010_WRITE_OFFSET	EQU	offset SST_39SF010_Flash_Write - offset SST_39SF010_Flash_Erase

IF	SST_39SF010_LEN GT _1M_EEPROM_LEN
FLASH_CODE_SIZE_ERROR	=	5
ENDIF
   endif;	Support_SST_39SF010_Series
;R11 - end

;R12 - start
   ifdef	Support_MOSEL_V29C51001T_Series
MOSEL_V29C51001T_Start:
		include	MOSEL001.NVM
MOSEL_V29C51001T_LEN		EQU	$ - offset MOSEL_V29C51001T_Start
MOSEL_V29C51001T_WRITE_OFFSET	EQU	offset MOSEL_V29C51001T_Flash_Write - offset MOSEL_V29C51001T_Flash_Erase

IF	MOSEL_V29C51001T_LEN GT _1M_EEPROM_LEN
FLASH_CODE_SIZE_ERROR	=	6
ENDIF
   endif;	Support_MOSEL_V29C51001T_Series
;R12 - end

INTEL_28F001BXT_Start:
   ifdef	Support_INTEL_28F001BXT_Series		;R06
		include	f001bxt.nvm
   endif;	Support_INTEL_28F001BXT_Series		;R06
INTEL_28F001BXT_End:
MXIC_28F1000_Start:
   ifdef	Support_MXIC_28F1000PPC_Series		;R06
		include	mxic.nvm
   endif;	Support_MXIC_28F1000PPC_Series		;R06
MXIC_28F1000_End:

MXIC_29F001T_Start:					;R10
   ifdef	Support_MXIC_29F001T_Series		;R10
		include	MX29F001.NVM			;R10
   endif;	Support_MXIC_29F001T_Series		;R10
MXIC_29F001T_End:					;R10


SST_29EE010_LEN			EQU	offset SST_29EE010_End - offset SST_29EE010_Start
SST_29EE010_WRITE_OFFSET	EQU	offset SST010_Flash_Write - offset SST010_Flash_Erase
INTEL_28F001BXT_LEN		EQU	offset INTEL_28F001BXT_End - offset INTEL_28F001BXT_Start
INTEL_28F001BXT_WRITE_OFFSET	EQU	offset F001BXT_Flash_Write - offset F001BXT_Flash_Erase
MXIC_28F1000_LEN		EQU	offset MXIC_28F1000_End - offset MXIC_28F1000_Start
MXIC_28F1000_WRITE_OFFSET	EQU	offset MXIC_Flash_Write - offset MXIC_Flash_Erase
;R10 - start
MXIC_29F001T_LEN		EQU	offset MXIC_29F001T_End - offset MXIC_29F001T_Start
MXIC_29F001T_WRITE_OFFSET	EQU	offset MX29F001T_Flash_Write - offset MX29F001T_Flash_Erase
;R10 - end

;R11 FLASH_CODE_SIZE_ERROR	=	0
IF	SST_29EE010_LEN	GT _1M_EEPROM_LEN
FLASH_CODE_SIZE_ERROR	=	1
ENDIF
IF	INTEL_28F001BXT_LEN GT _1M_EEPROM_LEN
FLASH_CODE_SIZE_ERROR	=	2
ENDIF
IF	MXIC_28F1000_LEN GT _1M_EEPROM_LEN
FLASH_CODE_SIZE_ERROR	=	3
ENDIF
;R10 - start
IF	MXIC_29F001T_LEN GT _1M_EEPROM_LEN
FLASH_CODE_SIZE_ERROR	=	4
ENDIF
;R10 - end
;R11 - start
IF	FLASH_CODE_SIZE_ERROR	EQ	5
%OUT	ERROR: SST39010.NVM code size is more then prepare in ROMLEN.INC
%OUT	       Please increase size in ROMLEN.INC
ENDIF
;R11 - end

IF	FLASH_CODE_SIZE_ERROR	EQ	1
%OUT	ERROR: SST010.NVM code size is more then prepare in ROMLEN.INC
%OUT	       Please increase size in ROMLEN.INC
ENDIF

IF	FLASH_CODE_SIZE_ERROR	EQ	2
%OUT	ERROR: F001BXT.NVM code size is more then prepare in ROMLEN.INC
%OUT	       Please increase size in ROMLEN.INC
ENDIF

IF	FLASH_CODE_SIZE_ERROR	EQ	3
%OUT	ERROR: MXIC.NVM code size is more then prepare in ROMLEN.INC
%OUT	       Please increase size in ROMLEN.INC
ENDIF

;R10 - start
IF	FLASH_CODE_SIZE_ERROR	EQ	4
%OUT	ERROR: MX29F001.NVM code size is more then prepare in ROMLEN.INC
%OUT	       Please increase size in ROMLEN.INC
ENDIF
;R10 - end
;R12 - start
IF	FLASH_CODE_SIZE_ERROR	EQ	6
%OUT	ERROR: MOSEL001.NVM code size is more then prepare in ROMLEN.INC
%OUT	       Please increase size in ROMLEN.INC
ENDIF
;R12 - end


;R07 - start
;[]===========================================================[]
;		1M BIOS 16K_8K_8K Unit
;[]===========================================================[]

elseifdef	Flash1M_16K_8K_8K_Unit

ATMEL_49F001T_Start:
   ifdef	Support_ATMEL_49F001T_Series
		include	am29f002.nvm
   endif;	Support_ATMEL_49F001T_Series
ATMEL_49F001T_End:

ATMEL_49F001T_LEN		EQU	offset ATMEL_49F001T_End - offset ATMEL_49F001T_Start
ATMEL_49F001T_WRITE_OFFSET	EQU	offset AT49F001T_Flash_Write - offset AT49F001T_Flash_Erase

FLASH_CODE_SIZE_ERROR	=	0

IF	ATMEL_49F001T_LEN GT _1M_EEPROM_LEN
FLASH_CODE_SIZE_ERROR	=	1
ENDIF

IF	FLASH_CODE_SIZE_ERROR	EQ	1
%OUT	ERROR: AM29F002.NVM code size is more then prepare in ROMLEN.INC
%OUT	       Please increase size in ROMLEN.INC
ENDIF
;R07 - end

;[]===========================================================[]
;		1M BIOS 16K Unit
;[]===========================================================[]

elseifdef	Flash_16K_Unit

AMD_29F010_Start:
   ifdef	Support_AM29F010_Series			;R06
		include	amd29f.nvm
   endif;	Support_AM29F010_Series			;R06
AMD_29F010_End:
MXIC_28F1000_Start:
   ifdef	Support_MXIC_28F1000PC_Series		;R06
		include	mxic.nvm
   endif;	Support_MXIC_28F1000PC_Series		;R06
MXIC_28F1000_End:

AMD_29F010_LEN			EQU	offset AMD_29F010_End - offset AMD_29F010_Start
AMD_29F010_WRITE_OFFSET		EQU	offset AMD29F_Flash_Write - offset AMD29F_Flash_Erase
MXIC_28F1000_LEN		EQU	offset MXIC_28F1000_End - offset MXIC_28F1000_Start
MXIC_28F1000_WRITE_OFFSET	EQU	offset MXIC_Flash_Write - offset MXIC_Flash_Erase

FLASH_CODE_SIZE_ERROR	=	0
IF	AMD_29F010_LEN GT _1M_EEPROM_LEN
FLASH_CODE_SIZE_ERROR	=	1
ENDIF
IF	MXIC_28F1000_LEN GT _1M_EEPROM_LEN
FLASH_CODE_SIZE_ERROR	=	2
ENDIF

IF	FLASH_CODE_SIZE_ERROR	EQ	1
%OUT	ERROR: AMD29F.NVM code size is more then prepare in ROMLEN.INC
%OUT	       Please increase size in ROMLEN.INC
ENDIF
IF	FLASH_CODE_SIZE_ERROR	EQ	2
%OUT	ERROR: MXIC.NVM code size is more then prepare in ROMLEN.INC
%OUT	       Please increase size in ROMLEN.INC
ENDIF

endif;	Flash_4K_Unit
endif;	Flash_2M_support
endif;	FLASH_SUPPORT
