www.pudn.com > hpbios.rar > ACPIPOST.ASM


;	[]===========================================================[] 
; 
;	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. 
; 
; 	[]===========================================================[] 
; 
 
;		PAGE	60,132 
;		TITLE	POST  -- 386 ROM/BIOS POST 
;---------------------------------------------------------------------------- 
;Rev	Date	 Name	Description 
;---------------------------------------------------------------------------- 
;R11	03/06/00 PHI	Add a define "Chipset_Hook_Before_Mem_Count".It can 
;			enable a new hook Ct_Before_Mem_Count, Because some 
;			chipset (like ArtX) can't hidden it's share memory 
;			so we must do something befor mem counting. 
;R10	12/01/99 STV	Fixed show LOGO of 256 colors fail when system is warmboot 
;			from OS (after last POST).The reason of this problem is 
;			POST will destroy base memory 8000h:0-9000h:0 on POST_150s 
;			when BIOS is 2MB support and the LOGO is occupy at 
;			4000h:0-8000h:0b30ch so some datas of LOGO be destroied. 
;R09	11/10/99 RAY	BIOS_STK, BIOSSTK_TOP & POSTSTK_TOP become EQUATES 
;			in COMMON.EQU 
;R08	06/11/99 RAY	Some post of E0 & E8 post has been re-arranged 
;R07	06/07/99 GAR	add NEW_SUPERIO_KERNEL condition 
;R06B	07/27/98 BAR	Resegmentaion E0POST & E8POST . 
;R06	07/20/98 BAR	Resegmentaion E0POST . 
;R05	06/05/98 PAL	Fixed Simple Boot abnormal after restart 
 
.386P 
;[]-----------------------------------[] 
; 
;   Award Software Elite BIOS 
;	  Simple Boot Self-Test 
;   Initial Revision 03-Mar-1998 
; 
; 
;	Copyright (C) 1991 
;	Award Software, Inc. 
;	All Rights Reserved 
;[]-----------------------------------[] 
 
.XLIST 
 
		INCLUDE BIOS.CFG 
 
ifndef	No_Support_4_IDE 
Support_4_IDE		EQU	1 
endif	;No_Support_4_IDE 
ifdef	RPB_ENABLED 
	    include rpb.cfg 
endif	;RPB_ENABLED 
 
		INCLUDE COMMON.EQU 
		INCLUDE POST.EQU 
		INCLUDE ATORGS.EQU 
		INCLUDE PORT61.EQU 
		INCLUDE 8042.EQU 
		INCLUDE 8259.EQU 
 
		INCLUDE COMMON.MAC 
		INCLUDE POST.MAC 
		INCLUDE USERINT.MAC 
		INCLUDE BTROMSEG.EQU 
 
ifdef	ACPI_SUPPORT 
		EXTRN	TEST_INDEX:ABS 
		EXTRN	GDT_LOC:ABS 
 
		extrn	Ct_PMRAM_Use_SYSRAM:near	 
		extrn	XCALL_PROC:near			 
		extrn	Issue_System_Reset:near 
ifdef	NEW_SUPERIO_KERNEL			;R07 
		extrn	Superio_Early_Init:near 
endif	;NEW_SUPERIO_KERNEL			;R07 
		extrn	F000_Set_CMOS:NEAR 
		extrn	F000_Buffer_8042_Full:NEAR 
		extrn	F000_Out_8042_Full:NEAR 
		extrn	IntCache_Status:near 
		extrn	F000_Cpu_Cache:near 
		extrn	PM_Init:near 
		extrn	Ct_PM_Final_Init:near		 
		extrn	Try_Actual_Cache:near 
ifdef	S4_SUPPORT 
		extrn	Notebook_Resume:near 
endif	;S4_SUPPORT 
ifdef	USB_SUPPORT				 
		extrn	Usb_Final_Init:near 
endif	;USB_SUPPORT				 
		Extrn	Check_PS2_Mouse_Support:NEAR 
		EXTRN	TEST_MEM_MSG:NEAR 
		EXTRN	OK_Msg:NEAR 
		EXTRN	A20_OFF:NEAR 
		EXTRN	KBD_A20_OFF:NEAR 
		EXTRN	Ct_Remap:NEAR 
		EXTRN	Get_Switch:NEAR 
		EXTRN	SYSTEM5_BYTE:BYTE 
		EXTRN	Enable_Prot_Mode:NEAR 
		EXTRN	E000_Back_Real_Mode:NEAR 
		EXTRN	Shutdown_From_Mem_Test:NEAR  
if	BIOS_SUPPORT_IBM_CPU 
		EXTRN	IBMCPU_Cacheable_Size:NEAR 
endif	;BIOS_SUPPORT_IBM_CPU 
		EXTRN	Prg_K5_Write_Allocate:NEAR 
		EXTRN	Ct_Ext_Mem_Limit:NEAR 
		EXTRN	F000_GetItem_Value:NEAR 
		EXTRN	Set_Cpu_MtRR:NEAR 
		EXTRN	Read_Memory:NEAR 
		EXTRN	DISP_DWORD_INT6:NEAR 
		EXTRN	Disp_Str_In_POST:NEAR 
		EXTRN	F000_Vcrlf:NEAR 
		EXTRN	E000_A20_On:NEAR 
		EXTRN	E000_Enter_Prot_mode:NEAR 
		EXTRN	ExtCache_Item:NEAR 
		EXTRN	Later_cache_Sizing:NEAR 
 
ifdef	KLAMATH_CPU_ONLY				 
		EXTRN	ConfigurePProL2Cache:NEAR 
endif	;KLAMATH_CPU_ONLY				 
ifdef	P6_BIOS_ONLY 
		EXTRN	Init_Apic:NEAR 
endif;	P6_BIOS_ONLY 
ifdef	USB_SUPPORT 
		EXTRN	Usb_Init:NEAR 
endif	;USB_SUPPORT 
ifdef	SPECIAL_SHARE_MEMORY_SHOW					 
		EXTRN	Ct_Share_Memory_Size:NEAR 
endif	;SPECIAL_SHARE_MEMORY_SHOW					 
ifndef	KBC_KBDMOUSE_SWAP 
		EXTRN	Special_KBC_Init:NEAR 
endif;	KBC_KBDMOUSE_SWAP 
 
		extrn	CPU_Cache:near 
		EXTRN	SET_CMOS:NEAR 
		EXTRN	HALTSYSTEM:NEAR 
		EXTRN	Ram_Post_Tests:NEAR 
 
;R11 - starts 
ifdef	Chipset_Hook_Before_Mem_Count 
		extrn	Ct_Before_Mem_Count:far 
endif	;Chipset_Hook_Before_Mem_Count	 
;R11 - ends 
 
		EXTRN	POST_2S:NEAR 
		EXTRN	POST_3S:NEAR 
		EXTRN	POST_4S:NEAR 
		EXTRN	POST_5S:NEAR 
		EXTRN	POST_6S:NEAR 
		EXTRN	POST_7S:NEAR 
		EXTRN	POST_8S:NEAR 
		EXTRN	POST_9S:NEAR 
		EXTRN	POST_10S:NEAR 
		EXTRN	POST_11S:NEAR 
		EXTRN	POST_12S:NEAR 
		EXTRN	POST_13S:NEAR 
		EXTRN	POST_14S:NEAR 
		EXTRN	POST_15S:NEAR 
		EXTRN	POST_16S:NEAR 
		EXTRN	POST_17S:NEAR 
		EXTRN	POST_18S:NEAR 
		EXTRN	POST_19S:NEAR 
		EXTRN	POST_20S:NEAR 
		EXTRN	POST_21S:NEAR 
		EXTRN	POST_22S:NEAR 
		EXTRN	POST_23S:NEAR 
		EXTRN	POST_24S:NEAR 
		EXTRN	POST_25S:NEAR 
		EXTRN	POST_26S:NEAR 
		EXTRN	POST_27S:NEAR 
		EXTRN	POST_28S:NEAR 
		EXTRN	POST_29S:NEAR 
		EXTRN	POST_30S:NEAR 
		EXTRN	POST_31S:NEAR 
		EXTRN	POST_32S:NEAR 
		EXTRN	POST_33S:NEAR 
		EXTRN	POST_34S:NEAR 
		EXTRN	POST_35S:NEAR 
		EXTRN	POST_36S:NEAR 
		EXTRN	POST_37S:NEAR 
		EXTRN	POST_38S:NEAR 
		EXTRN	POST_39S:NEAR 
		EXTRN	POST_40S:NEAR 
		EXTRN	POST_41S:NEAR 
		EXTRN	POST_42S:NEAR 
		EXTRN	POST_43S:NEAR 
		EXTRN	POST_44S:NEAR 
		EXTRN	POST_45S:NEAR 
		EXTRN	POST_46S:NEAR 
		EXTRN	POST_47S:NEAR 
		EXTRN	POST_48S:NEAR 
		EXTRN	POST_49S:NEAR 
		EXTRN	POST_50S:NEAR 
		EXTRN	POST_51S:NEAR 
		EXTRN	POST_52S:NEAR 
		EXTRN	POST_53S:NEAR 
		EXTRN	POST_54S:NEAR 
		EXTRN	POST_55S:NEAR 
		EXTRN	POST_56S:NEAR 
		EXTRN	POST_57S:NEAR 
		EXTRN	POST_58S:NEAR 
		EXTRN	POST_59S:NEAR 
		EXTRN	POST_60S:NEAR 
		EXTRN	POST_61S:NEAR 
		EXTRN	POST_62S:NEAR 
		EXTRN	POST_63S:NEAR 
		EXTRN	POST_64S:NEAR 
		EXTRN	POST_65S:NEAR 
		EXTRN	POST_66S:NEAR 
		EXTRN	POST_67S:NEAR 
		EXTRN	POST_68S:NEAR 
		EXTRN	POST_69S:NEAR 
		EXTRN	POST_70S:NEAR 
		EXTRN	POST_71S:NEAR 
		EXTRN	POST_72S:NEAR 
		EXTRN	POST_73S:NEAR 
		EXTRN	POST_74S:NEAR 
		EXTRN	POST_75S:NEAR 
		EXTRN	POST_76S:NEAR 
		EXTRN	POST_77S:NEAR 
		EXTRN	POST_78S:NEAR 
		EXTRN	POST_79S:NEAR 
		EXTRN	POST_80S:NEAR 
		EXTRN	POST_81S:NEAR 
		EXTRN	POST_82S:NEAR 
		EXTRN	POST_83S:NEAR 
		EXTRN	POST_84S:NEAR 
		EXTRN	POST_85S:NEAR 
		EXTRN	POST_86S:NEAR 
		EXTRN	POST_87S:NEAR 
		EXTRN	POST_88S:NEAR 
		EXTRN	POST_89S:NEAR 
		EXTRN	POST_90S:NEAR 
		EXTRN	POST_91S:NEAR 
		EXTRN	POST_92S:NEAR 
		EXTRN	POST_93S:NEAR 
		EXTRN	POST_94S:NEAR 
		EXTRN	POST_95S:NEAR 
		EXTRN	POST_96S:NEAR 
		EXTRN	POST_97S:NEAR 
		EXTRN	POST_98S:NEAR 
		EXTRN	POST_99S:NEAR 
		EXTRN	POST_100S:NEAR 
		EXTRN	POST_101S:NEAR 
		EXTRN	POST_102S:NEAR 
		EXTRN	POST_103S:NEAR 
		EXTRN	POST_104S:NEAR 
		EXTRN	POST_105S:NEAR 
		EXTRN	POST_106S:NEAR 
		EXTRN	POST_107S:NEAR 
		EXTRN	POST_108S:NEAR 
		EXTRN	POST_109S:NEAR 
		EXTRN	POST_110S:NEAR 
		EXTRN	POST_111S:NEAR 
		EXTRN	POST_112S:NEAR 
		EXTRN	POST_113S:NEAR 
		EXTRN	POST_114S:NEAR 
		EXTRN	POST_115S:NEAR 
		EXTRN	POST_116S:NEAR 
		EXTRN	POST_117S:NEAR 
		EXTRN	POST_118S:NEAR 
		EXTRN	POST_119S:NEAR 
		EXTRN	POST_120S:NEAR 
		EXTRN	POST_121S:NEAR 
		EXTRN	POST_122S:NEAR 
		EXTRN	POST_123S:NEAR 
		EXTRN	POST_124S:NEAR 
		EXTRN	POST_125S:NEAR 
		EXTRN	POST_126S:NEAR 
		EXTRN	POST_127S:NEAR 
		EXTRN	POST_128S:NEAR 
		EXTRN	POST_129S:NEAR 
 
		EXTRN	POST_130S:NEAR 
		EXTRN	POST_131S:NEAR 
		EXTRN	POST_132S:NEAR 
		EXTRN	POST_133S:NEAR 
		EXTRN	POST_134S:NEAR 
		EXTRN	POST_135S:NEAR 
		EXTRN	POST_136S:NEAR 
		EXTRN	POST_137S:NEAR 
		EXTRN	POST_138S:NEAR 
		EXTRN	POST_139S:NEAR 
		EXTRN	POST_140S:NEAR 
		EXTRN	POST_141S:NEAR 
		EXTRN	POST_142S:NEAR 
		EXTRN	POST_143S:NEAR 
		EXTRN	POST_144S:NEAR 
		EXTRN	POST_145S:NEAR 
		EXTRN	POST_146S:NEAR 
		EXTRN	POST_147S:NEAR 
		EXTRN	POST_148S:NEAR 
		EXTRN	POST_149S:NEAR 
		EXTRN	POST_150S:NEAR 
 
		extrn	F000_func_end:Near 
		extrn	F000_VECT:Near 
endif	;ACPI_SUPPORT 
 
;Macro for far calling from E-segment and the called routine is in F-segment 
F000_call	MACRO	func_addr 
		LOCAL	Ret_addr 
		push	0e000h 
		push	offset cs:Ret_addr 
		push	offset F000_func_end 
if ((.TYPE func_addr) and 10h)			;func_addr is register? 
		push	func_addr		;Yes,direct push 
else 
		push	offset func_addr 
endif 
		FAR_JMP ,0F000H 
Ret_addr: 
		ENDM 
 
;R09 ;[]---------------------------[] 
;R09 ; 
;R09 ;   Stack init 
;R09 ; 
;R09 ;[]---------------------------[] 
;R09  
;R09 BIOS_STK	SEGMENT USE16 AT 0H 
;R09 		ORG	400H 
;R09 BIOSSTK_TOP	LABEL	WORD 
;R09 		ORG	5B00H 
;R09 POSTSTK_TOP	LABEL	WORD 
;R09  
;R09 BIOS_STK	ENDS 
 
;[]---------------------------[] 
; 
;   Low memory init (1st 64k) 
; 
;[]---------------------------[] 
 
G_RAM		SEGMENT USE16 AT 0 
 
		ORG	04H*4 
		INCLUDE SEG_0.INC 
 
		ORG	400H 
		INCLUDE G_RAM.INC 
 
G_RAM		ENDS 
EGROUP		GROUP	ECODE 
DGROUP		GROUP	FCODE 
ECODE		SEGMENT USE16 PARA PUBLIC 'ECODE' 
		ASSUME	CS:EGROUP,DS:G_RAM,ES:EGROUP 
 
ifdef	ACPI_SUPPORT 
if	Quick_POST_Flag		EQ	1 
;[]==============================================================[] 
; 
; Quick_Mem_Init: 
; 
;	Find and display the size of yotal memory   
;	which also happens to clear memory. 
; 
;Saves: NONE 
; 
;Entry: NONE 
;Exit:	NONE 
; 
;[]==============================================================[] 
		Public	Quick_Mem_Init 
Quick_Mem_Init	Proc	Near 
 
	;Before memory sizing , we must program chipset's remap feature if needed 
 
		F000_call	Ct_Remap 
 
		cli 
 
		mov	ax,G_RAM		; setup ds point to low ram 
		mov	ds,ax 
 
		mov	ax,word ptr BASE_MEMORY[bp] ; move orig. amount to 40: area 
		mov	Size_Sysram,ax 
 
		cmp	ax,200h 			; >512K memory? 
		jbe	short p48_5 
 
		or	byte ptr INFO_FLAG[bp],EXT_128KB 
p48_5: 
		and	byte ptr CMOS_STATUS[bp], NOT MEM_STATUS 
 
;[]==============================================================[] 
;	Here we will size extended memory, starting at just over 
;	the 1M boundary. We will continue until we fail to read 
;	what we write or we come to the 64M boundary. 
;[]==============================================================[] 
 
		xor	ax,ax 
		mov	ds,ax			;segment at 0 
 
	;save data to avoid destoried by memory sizing due to wrap-around 
		push	dword ptr ds:[0FFF8H] 
		push	dword ptr ds:[0FFFCH] 
 
	;write a pre-defined pattern to check wrap-around 
		mov	dword ptr ds:[0FFF8H],12345678H 
 
		mov	ax,G_RAM 
		mov	ds,ax 
 
;	Go into protected mode... 
 
		call	Enable_Prot_Mode	; enable protected mode 
		jc	Exit_Mem_Sizing 
 
;	Size extended memory from 1Mb 
 
		xor	eax,eax 
		mov	ax,10h 
p48_62: 
		mov	esi,TEST_INDEX 
		add	esi,GDT_LOC 
		mov	byte ptr ds:[esi+HIBASE+20000h],al 
		mov	byte ptr ds:[esi+MSBASE+20000h],ah 
 
		mov	si,TEST_INDEX 
		mov	es,si			; es = test segment 
 
		mov	dword ptr es:[0fff8h],0 	; write data to memory 
		mov	dword ptr es:[0fffch],eax	; flush bus 
 
		cmp	dword ptr ds:[0fff8h], 12345678h 
		jne	short P48_64 
 
		cmp	dword ptr es:[0fff8h],0 	; memory exist? 
		mov	dword ptr es:[0fff8h],0 	; clear offboard latches 
		jne	short p48_64			; end of memory 
 
		mov	dword ptr es:[0fff8h],0ffffffffh ; write data into memory 
		mov	dword ptr es:[0fffch],eax	 ; flush bus 
		cmp	dword ptr es:[0fff8h],0ffffffffh ; memory exist?? 
		mov	dword ptr es:[0fff8h],0ffffffffh ; clear off board parity latches 
		jne	short p48_64			 ; jump if no more mem found 
 
		mov	dword ptr es:[0fff8h],0 	 ; write data into memory 
		mov	dword ptr es:[0fffch],eax	 ; flush bus 
		cmp	dword ptr es:[0fff8h],0 	 ; memory exist?? 
		mov	dword ptr es:[0fff8h],0 	 ; clear offboard parity latches 
		jne	short p48_64			 ; jump if no more mem found 
 
p48_623: 
 
		inc	ax			; increment 64k mem count 
 
ifdef	MAX_DRAM_SIZE 
		cmp	ax,MAX_DRAM_SIZE	; DRAM size limit 
else;	MAX_DRAM_SIZE 
 		cmp	ax,MAX_MEM_SIZE*4*4	; (400H*16)  1Gb yet? 
endif;	MAX_DRAM_SIZE 
 
		jae	short P48_64		; test only up to 256Mb 
		jmp	p48_62 
 
;	Enable parity 
 
p48_64: 
 
;	Save amount found 
 
		sub	ax,10h			; ax = no. of 64k chunk above 1M 
		shl	eax,6			; change to 1K 
		mov	EXT_MEM_SIZE[bp],eax	; save memory found 
		cmp	eax,0ffffh		; over 64Mb 
		jbe	short @F		; No. 
		mov	ax,0ffffh		; set 65535Kb max. 
@@: 
		and	ax,0FFC0h 
		mov	cx,ax			; save orginial size 
 
;	Write information to the screen... 
 
p48_65: 
		call	Shutdown_From_Mem_Test			; back to real mode... 
 
		F000_call	Ct_Ext_Mem_Limit	; limit extended size 
 
		mov	EXT_MEM_FOUND[bp],ax	; save amount of memory found in CMOS 
		cmp	cx,ax 
		je	short @F		; extended size changed 
		xor	ecx,ecx 
		mov	cx,ax 
		mov	EXT_MEM_SIZE[bp],ecx	; save memory found 
@@: 
 
;R11 - starts 
ifdef	Chipset_Hook_Before_Mem_Count 
		call far ptr	Ct_Before_Mem_Count 
endif	;Chipset_Hook_Before_Mem_Count	 
;R11 - ends 
 
 
;	Display amount of memory 
 
		mov	dx,EXT_MEM_FOUND[bp]	; get the found amount of ext. memory 
		mov	EXT_MEMORY[bp],dx	; set value 
 
if	BIOS_SUPPORT_IBM_CPU 
		call	IBMCPU_Cacheable_Size 
endif	;BIOS_SUPPORT_IBM_CPU 
		call	Prg_K5_Write_Allocate 
 
Exit_Mem_Sizing: 
 
		xor	ax,ax 
		mov	ds,ax			;segment at 0 
 
	;restore data to avoid destoried by memory sizing due to wrap-around 
 
		pop	dword ptr ds:[0FFFCH] 
		pop	dword ptr ds:[0FFF8H] 
 
		mov	byte ptr MEM_ERR_STATUS[bp],0 
 
		mov	ax,G_RAM 
		mov	ds,ax 
		ASSUME	DS:G_RAM 
 
ifdef	KLAMATH_CPU_ONLY 
		mov	si,offset ExtCache_Item	;get CMOS status of L2 cache 
		call	F000_GetItem_Value 
		mov	bl,al			;for Set_Cpu_Mtrr use 
endif;	KLAMATH_CPU_ONLY 
 
		mov	esi,EXT_MEM_SIZE[bp]	;extended memory size 
		mov	al,1			;program address above 1Mb 
		call	Set_Cpu_MtRR 
 
ifdef	P6_BIOS_ONLY 
		push	ds 
		mov	ax,4100H 
		mov	ds,ax 
		mov	esi,EXT_MEM_SIZE[bp]	;extended memory size 
		mov	dword ptr ds:[0],esi	;save extended size 
		call	Init_Apic 
		pop	ds 
endif;	P6_BIOS_ONLY 
 
		cmp	word ptr ds:[User_Reboot],CTRL_ALT_DEL	 
		je	Fill_Mem_0			 
 
		mov	si,offset Test_Mem_Msg 
		call	Disp_Str_In_POST 
 
ifdef	Show_Total_After_Memory_Test 
 
	;show total memory size (multiple of 512K) 
 
		mov	cl,0 
		F000_call Read_Memory 
 
else	;Show_Total_After_Memory_Test 
 
		mov	eax,EXT_MEM_SIZE[bp]	;extended memory size 
		add	eax,1024 
 
endif	;Show_Total_After_Memory_Test 
 
ifdef	SPECIAL_SHARE_MEMORY_SHOW					 
		push	eax						 
		F000_call Ct_Share_Memory_Size	;get shared mem. size	 
		xor	ecx,ecx						 
		mov	cx, ax						 
		pop	eax						 
		add	eax, ecx					 
endif	;SPECIAL_SHARE_MEMORY_SHOW					 
 
		F000_call	Disp_Dword_Int6 
		mov	si,offset OK_Msg 
		call	Disp_Str_In_POST 
 
		call	F000_Vcrlf 
 
Fill_Mem_0:						 
 
ifndef	KBC_KBDMOUSE_SWAP 
		mov	ax,0f000h 
		mov	ds,ax 
		lea	si,SYSTEM5_BYTE 
		call	Get_Switch 
		call	Special_KBC_Init 
endif;	KBC_KBDMOUSE_SWAP 
 
ifdef	USB_SUPPORT 
ifndef	SMIHANDLE_IN_XGROUP 
		call	Usb_Init 
else	;SMIHANDLE_IN_XGROUP 
		Xcall	Usb_Init 
endif	;SMIHANDLE_IN_XGROUP 
endif	;USB_SUPPORT 
		cli				;R05 
		call	E000_A20_On		; turn on a20 gate 
		call	E000_Enter_Prot_mode	;enter CPU protected mode 
 
		mov	ax,ds 
		mov	es,ax			;setup descriptor table 
 
		call	E000_Back_Real_Mode	;enter CPU big real mode 
 
;----- clear 4000:0 - 5000:FFFF memory 
		mov	edi,4*64*1024 
		mov	ecx,128*1024/4 
		xor	eax,eax 
		db	67h 
		rep	stosd			;clear memory 
 
	;----- clear 7000:0 - 9000:FFFF memory 
		mov	edi,7*64*1024		;start from 7000:0 
 
ifdef	Flash_2M_support 
	;----- clear 7000:0 - 7000:FFFF memory 
		mov	ecx,64*1024/4		;size = 64K 
else	;Flash_2M_support 
		mov	ecx,192*1024/4		;size = 192K 
endif	;Flash_2M_support 
		db	67h 
		rep	stosd			;clear memory 
 
ifndef	Flash_4M_support			;R10 
ifdef	Flash_2M_support 
		mov	esi,160000h 
		mov	edi,80000h 
		mov	ecx,8000h 
 		db	67h 
 		rep	movsd			;move extend 128k data to 160000h 
endif	;Flash_2M_support 
endif	;Flash_4M_support			;R10 
 
	;clear 1Mb to top of memory 
		mov	edi,1024*1024		;start from 1Mb 
 
		mov	ecx,EXT_MEM_SIZE[bp]	;no of Kb of extended memory 
		shl	ecx,(10-2)		;convert to dword 
		db	67h 
		rep	stosd			;clear all extended memory 
 
	;read base memory to flush L2 cache 
		xor	esi,esi 
		mov	ecx,(640*1024)/4	;number of dword to clear 
		db	67h 
		rep	lodsd			;read memory to invalidate tag 
 
ifndef	Flash_4M_support			;R10 
ifdef	Flash_2M_support 
		mov	esi,80000h 
		mov	edi,160000h 
		mov	ecx,8000h 
 		db	67h 
 		rep	movsd			;move extend 128k data to 160000h 
;----- clear 8000:0 - 9000:FFFF memory 
		xor	eax,eax 
		mov	edi,8*64*1024		;start from 8000:0 
		mov	ecx,128*1024/4		;size = 128K 
		db	67h 
		rep	stosd			;clear all extended memory 
endif	;Flash_2M_support 
endif	;Flash_4M_support			;R10 
 
		F000_CALL A20_Off		;turn gate A20 off 
		call	KBD_A20_OFF		;set KBC gate A20 off 
 
		sti 
		clc 
		ret 
QUICK_Mem_Init	ENDP 
		 
endif	;Quick_POST_Flag	EQ	1 
 
ifdef	S4_SUPPORT 
S4_POST_TABLE: 
		DW	OFFSET	S4_POST_1 
		DW	OFFSET	S4_POST_2 
		DW	OFFSET	S4_POST_3 
		DW	OFFSET	S4_POST_4 
		DW	OFFSET	S4_POST_5 
		DW	OFFSET	S4_POST_6 
		DW	OFFSET	S4_POST_7 
		DW	OFFSET	S4_POST_8 
		DW	OFFSET	S4_POST_9 
		DW	OFFSET	S4_POST_10 
		DW	OFFSET	S4_POST_11 
		DW	OFFSET	S4_POST_12 
		DW	OFFSET	S4_POST_13 
		DW	OFFSET	S4_POST_14 
		DW	OFFSET	S4_POST_15 
		DW	OFFSET	S4_POST_16 
		DW	0 
 
;[]==============================================================[] 
; 
; S4_POST_TESTS: 
; 
;	Execute S4 resume POST tests 
; 
;Saves: NONE 
; 
;Entry: NONE 
;Exit:	NONE 
; 
;Author: Award 
;Date:	 03/03/98 
; 
;[]==============================================================[] 
S4_POST_CODE		EQU	90h 
 
		public	S4_POST_TESTS 
S4_POST_TESTS	PROC	NEAR 
	 
		mov	cx,S4_POST_CODE 
		mov	di,offset S4_POST_TABLE 
		call	Ram_Post_Tests 
 
		jmp	HaltSystem 
 
S4_POST_TESTS	ENDP 
 
;[]==============================================================[] 
; 
;S4_POST_1: 
; 
;Saves: NONE 
; 
;Entry: NONE 
;Exit:	NONE 
; 
;[]==============================================================[] 
		PUBLIC	S4_POST_1 
S4_POST_1	PROC	NEAR 
 
;R06		Call	POST_5S 
		Call	POST_3S		;R06B 
		Call	POST_5S		;R06B 
		Call	POST_7S		;R06B 
		Call	POST_8S		;R06B 
		Call	POST_10S	;R06B 
		ret 
S4_POST_1	ENDP 
 
;[]==============================================================[] 
; 
;S4_POST_2: 
; 
;Saves: NONE 
; 
;Entry: NONE 
;Exit:	NONE 
; 
;[]==============================================================[] 
		PUBLIC	S4_POST_2 
S4_POST_2	PROC	NEAR 
;R06		Call	POST_7S 
		Call	POST_18S		;R06B 
		ret 
S4_POST_2	ENDP 
 
;[]==============================================================[] 
; 
;S4_POST_3: 
; 
;Saves: NONE 
; 
;Entry: NONE 
;Exit:	NONE 
; 
;[]==============================================================[] 
		PUBLIC	S4_POST_3 
S4_POST_3	PROC	NEAR 
;R06		Call	POST_8S 
		Call	POST_20S	;R06B 
		Call	POST_22S	;R06B 
		ret 
S4_POST_3	ENDP 
 
;[]==============================================================[] 
; 
;S4_POST_4: 
; 
;Saves: NONE 
; 
;Entry: NONE 
;Exit:	NONE 
; 
;[]==============================================================[] 
		PUBLIC	S4_POST_4 
S4_POST_4	PROC	NEAR 
;R06		Call	POST_9S 
		Call	POST_24S	;R06B 
		ret 
S4_POST_4	ENDP 
 
;[]==============================================================[] 
; 
;S4_POST_5: 
; 
;Saves: NONE 
; 
;Entry: NONE 
;Exit:	NONE 
; 
;[]==============================================================[] 
		PUBLIC	S4_POST_5 
S4_POST_5	PROC	NEAR 
;R06		Call	POST_10S 
		Call	POST_27S		;R06B 
		Call	POST_29S		;R06B 
		Call	POST_31S		;R06B 
		Call	POST_33S		;R06B 
		ret 
S4_POST_5	ENDP 
 
;[]==============================================================[] 
; 
;S4_POST_6: 
; 
;Saves: NONE 
; 
;Entry: NONE 
;Exit:	NONE 
; 
;[]==============================================================[] 
		PUBLIC	S4_POST_6 
S4_POST_6	PROC	NEAR 
;R06		Call	POST_11S 
		Call	POST_35S		;R06B 
		Call	POST_36S		;R08 
		Call	POST_37S		;R08 
		Call	POST_38S		;R08 
		ret 
S4_POST_6	ENDP 
 
;[]==============================================================[] 
; 
;S4_POST_7: 
; 
;Saves: NONE 
; 
;Entry: NONE 
;Exit:	NONE 
; 
;[]==============================================================[] 
		PUBLIC	S4_POST_7 
S4_POST_7	PROC	NEAR 
;R06		Call	POST_12S 
		Call	POST_39S		;R06B 
		ret 
S4_POST_7	ENDP 
 
;[]==============================================================[] 
; 
;S4_POST_8: 
; 
;Saves: NONE 
; 
;Entry: NONE 
;Exit:	NONE 
; 
;[]==============================================================[] 
		PUBLIC	S4_POST_8 
S4_POST_8	PROC	NEAR 
;R06		Call	POST_13S 
		Call	POST_41S		;R06B 
		Call	POST_42S		;R08 
		Call	POST_43S		;R08 
		ret 
S4_POST_8	ENDP 
 
;[]==============================================================[] 
; 
;S4_POST_9: 
; 
;Saves: NONE 
; 
;Entry: NONE 
;Exit:	NONE 
; 
;[]==============================================================[] 
		PUBLIC	S4_POST_9 
S4_POST_9	PROC	NEAR 
;R06		Call	POST_14S 
		Call	POST_45S		;R06B 
		ret 
S4_POST_9	ENDP 
 
;[]==============================================================[] 
; 
;S4_POST_10: 
; 
;Saves: NONE 
; 
;Entry: NONE 
;Exit:	NONE 
; 
;[]==============================================================[] 
		PUBLIC	S4_POST_10 
S4_POST_10	PROC	NEAR 
;R06		Call	POST_15S 
		Call	POST_51S		;R06B 
		Call	POST_53S		;R06B 
		ret 
S4_POST_10	ENDP 
 
;[]==============================================================[] 
; 
;S4_POST_11: 
; 
;Saves: NONE 
; 
;Entry: NONE 
;Exit:	NONE 
; 
;[]==============================================================[] 
		PUBLIC	S4_POST_11 
S4_POST_11	PROC	NEAR 
		cli 
 
		mov	al,0b8h 		; init controller #1 
		out	a8259+1,al 
		NEWIODELAY 
						; mask channel 4 off 
		mov	al,0bfh 		;mask IRQ 9 
		out	b8259+1,al 
 
		Call	Quick_Mem_Init 
		ret 
S4_POST_11	ENDP 
 
;[]==============================================================[] 
; 
;S4_POST_12: 
; 
;Saves: NONE 
; 
;Entry: NONE 
;Exit:	NONE 
; 
;[]==============================================================[] 
		PUBLIC	S4_POST_12 
S4_POST_12	PROC	NEAR 
;R06		Call	POST_61S 
		Call	POST_99S	;R06B 
		Call	POST_101S	;R06B 
		Call	POST_103S	;R06B 
 
;R06		Call	POST_62S 
		Call	POST_105S	;R06B 
		ret 
S4_POST_12	ENDP 
 
;[]==============================================================[] 
; 
;S4_POST_13: 
; 
;Saves: NONE 
; 
;Entry: NONE 
;Exit:	NONE 
; 
;[]==============================================================[] 
		PUBLIC	S4_POST_13 
S4_POST_13	PROC	NEAR 
 
;R06		Call	POST_65S 
		Call	POST_107S		;R06B 
		Call	POST_109S		;R06B 
		Call	POST_111S		;R06B 
;R06		Call	POST_66S 
		Call	POST_115S		;R06B 
		Call	POST_117S		;R06B 
		ret 
S4_POST_13	ENDP 
 
;[]==============================================================[] 
; 
;S4_POST_14: 
; 
;Saves: NONE 
; 
;Entry: NONE 
;Exit:	NONE 
; 
;[]==============================================================[] 
		PUBLIC	S4_POST_14 
S4_POST_14	PROC	NEAR 
 
		push	bp 
 
		F000_call	Ct_PMRAM_Use_SYSRAM 
		or	al,al 
		jz	short @F 
 
		mov	bx,G_RAM 
		mov	ds,bx 
		assume	DS:G_RAM 
 
		mov	bx,SIZE_SYSRAM 
		xor	ah,ah 
		sub	bx,ax 
		mov	SIZE_SYSRAM,bx 
 
		shl	bx,6				; translate to segment 
		mov	PMRAM_LOC,bx 
 
	@@: 
 
ifdef	USB_SUPPORT				 
 ifndef M1523B_USB				 
  ifndef Dont_turn_cache_in_USB_Final_Init	 
	;Disable internal cache			 
		mov	al,FALSE		 
		call	F000_Cpu_Cache		 
  endif ;Dont_turn_cache_in_USB_Final_Init	 
 endif	;M1523B_USB				 
 
ifndef	SMIHANDLE_IN_XGROUP	 
		call	Usb_Final_Init 
else	;SMIHANDLE_IN_XGROUP	 
		Xcall	Usb_Final_Init 
endif	;SMIHANDLE_IN_XGROUP	 
 
 ifndef M1523B_USB				 
  ifndef Dont_turn_cache_in_USB_Final_Init	 
	;Restore internal cache			 
		call	IntCache_Status 	 
		jz	short CpuCache_Disable	 
		mov	al,TRUE			 
		call	F000_Cpu_Cache		 
  CpuCache_Disable:				 
  endif ;Dont_turn_cache_in_USB_Final_Init	 
 endif	;M1523B_USB				 
endif	;USB_SUPPORT				 
 
		pop	bp 
		clc 
		ret 
S4_POST_14	ENDP 
 
;[]==============================================================[] 
; 
;S4_POST_15: 
; 
;Saves: NONE 
; 
;Entry: NONE 
;Exit:	NONE 
; 
;[]==============================================================[] 
		PUBLIC	S4_POST_15 
S4_POST_15	PROC	NEAR 
		Call	PM_Init 
		clc 
		ret 
S4_POST_15	ENDP 
 
;[]==============================================================[] 
; 
;S4_POST_16: 
; 
;Saves: NONE 
; 
;Entry: NONE 
;Exit:	NONE 
; 
;[]==============================================================[] 
		PUBLIC	S4_POST_16 
S4_POST_16	PROC	NEAR 
		Call	Try_Actual_Cache 
		F000_Call	Ct_PM_Final_Init	 
		call	Notebook_Resume 
		clc 
		ret 
S4_POST_16	ENDP 
 
endif	;S4_SUPPORT 
endif	;ACPI_SUPPORT 
 
ifdef	SIMPLE_BOOT_SUPPORT 
Q_POST_TESTS: 
		DW	OFFSET	QUICK_POST_1 
		DW	OFFSET	QUICK_POST_2 
		DW	OFFSET	QUICK_POST_3 
		DW	OFFSET	QUICK_POST_4 
		DW	OFFSET	QUICK_POST_5 
		DW	OFFSET	QUICK_POST_6 
		DW	OFFSET	QUICK_POST_7 
		DW	OFFSET	QUICK_POST_8 
		DW	OFFSET	QUICK_POST_9 
		DW	OFFSET	QUICK_POST_10 
		DW	OFFSET	QUICK_POST_11 
		DW	OFFSET	QUICK_POST_12 
		DW	OFFSET	QUICK_POST_13 
		DW	OFFSET	QUICK_POST_14 
		DW	OFFSET	QUICK_POST_15 
		DW	OFFSET	QUICK_POST_16 
		DW	OFFSET	QUICK_POST_17 
		DW	OFFSET	QUICK_POST_18 
		DW	OFFSET	QUICK_POST_19 
		DW	OFFSET	QUICK_POST_20 
		DW	OFFSET	QUICK_POST_21 
		DW	OFFSET	QUICK_POST_22 
		DW	OFFSET	QUICK_POST_23 
		DW	OFFSET	QUICK_POST_24 
		DW	OFFSET	QUICK_POST_25 
		DW	OFFSET	QUICK_POST_26 
		DW	OFFSET	QUICK_POST_27 
		DW	OFFSET	QUICK_POST_28 
		DW	0 
 
;[]==============================================================[] 
; 
;QUICK_POST_TESTS: 
; 
;	Execute Quick POST tests 
; 
;Saves: NONE 
; 
;Entry: NONE 
;Exit:	NONE 
; 
;Author: Award 
;Date:	 03/03/98 
; 
;[]==============================================================[] 
QUICK_POST_CODE		EQU	101 
 
			public	QUICK_POST_TESTS 
QUICK_POST_TESTS	PROC	NEAR 
 
		mov	cx,QUICK_POST_CODE 
		mov	di,offset Q_POST_TESTS 
		call	Ram_Post_Tests 
 
		jmp	HaltSystem 
 
QUICK_POST_TESTS	ENDP 
 
;[]==============================================================[] 
; 
;QUICK_POST_1: 
; 
;Saves: NONE 
; 
;Entry: NONE 
;Exit:	NONE 
; 
;[]==============================================================[] 
		PUBLIC	QUICK_POST_1 
QUICK_POST_1	PROC	NEAR 
 
;R06		Call	POST_5S 
		Call	POST_3S		;R06B 
		Call	POST_5S		;R06B 
		Call	POST_7S		;R06B 
		Call	POST_8S		;R06B 
		Call	POST_10S	;R06B 
 
;R06		Call	POST_6S 
		Call	POST_14S	;R06B 
		Call	POST_16S	;R06B 
 
;R06		Call	POST_8S 
		Call	POST_20S	;R06B 
		Call	POST_22S	;R06B 
		mov	al,SIMPLE_BOOT_CMOS NMI_OFF 
		mov	ah,00000010b			;Every thing is OK 
		F000_Call	Set_CMOS 
 
		ret 
QUICK_POST_1	ENDP 
 
;[]==============================================================[] 
; 
;QUICK_POST_2: 
; 
;Saves: NONE 
; 
;Entry: NONE 
;Exit:	NONE 
; 
;[]==============================================================[] 
		PUBLIC	QUICK_POST_2 
QUICK_POST_2	PROC	NEAR 
 
;R06		Call	POST_9S 
		Call	POST_24S	;R06B 
 
;R06		Call	POST_10S 
		Call	POST_27S	;R06B 
		Call	POST_29S	;R06B 
		Call	POST_31S	;R06B 
		Call	POST_33S	;R06B 
		ret 
QUICK_POST_2	ENDP 
 
;[]==============================================================[] 
; 
;QUICK_POST_3: 
; 
;Saves: NONE 
; 
;Entry: NONE 
;Exit:	NONE 
; 
;[]==============================================================[] 
		PUBLIC	QUICK_POST_3 
QUICK_POST_3	PROC	NEAR 
;R06		Call	POST_11S 
		Call	POST_35S		;R06B 
 
;R06		Call	POST_12S 
		Call	POST_39S		;R06B 
		ret 
QUICK_POST_3	ENDP 
 
;[]==============================================================[] 
; 
;QUICK_POST_4: 
; 
;Saves: NONE 
; 
;Entry: NONE 
;Exit:	NONE 
; 
;[]==============================================================[] 
		PUBLIC	QUICK_POST_4 
QUICK_POST_4	PROC	NEAR 
 
;R06		Call	POST_13S 
		Call	POST_41S		;R06B 
 
;R06		Call	POST_14S 
		Call	POST_45S		;R06B 
 
		ret 
QUICK_POST_4	ENDP 
 
;[]==============================================================[] 
; 
;QUICK_POST_5: 
; 
;Saves: NONE 
; 
;Entry: NONE 
;Exit:	NONE 
; 
;[]==============================================================[] 
		PUBLIC	QUICK_POST_5 
QUICK_POST_5	PROC	NEAR 
		cli 
 
		mov	al,0b8h 		; init controller #1 
		out	a8259+1,al 
		NEWIODELAY 
						; mask channel 4 off 
		mov	al,0bfh 		;mask IRQ 9 
		out	b8259+1,al 
 
		clc 
		ret 
QUICK_POST_5	ENDP 
 
;[]==============================================================[] 
; 
;QUICK_POST_6: 
; 
;Saves: NONE 
; 
;Entry: NONE 
;Exit:	NONE 
; 
;[]==============================================================[] 
		PUBLIC	QUICK_POST_6 
QUICK_POST_6	PROC	NEAR 
 
		Call	Quick_Mem_Init 
		ret 
QUICK_POST_6	ENDP 
 
;[]==============================================================[] 
; 
;QUICK_POST_7: 
; 
;Saves: NONE 
; 
;Entry: NONE 
;Exit:	NONE 
; 
;[]==============================================================[] 
		PUBLIC	QUICK_POST_7 
QUICK_POST_7	PROC	NEAR 
;R06		Call	POST_50S 
		Call	POST_85S	;R06B 
		Call	POST_87S	;R06B 
		Call	POST_89S	;R06B 
		Call	POST_91S	;R06B 
		Call	POST_93S	;R06B 
 
;R06		Call	POST_51S	;null 
		ret 
QUICK_POST_7	ENDP 
 
;[]==============================================================[] 
; 
;QUICK_POST_8: 
; 
;Saves: NONE 
; 
;Entry: NONE 
;Exit:	NONE 
; 
;[]==============================================================[] 
		PUBLIC	QUICK_POST_8 
QUICK_POST_8	PROC	NEAR 
;null		Call	POST_52S 
;null		Call	POST_53S 
		ret 
QUICK_POST_8	ENDP 
 
;[]==============================================================[] 
; 
;QUICK_POST_9: 
; 
;Saves: NONE 
; 
;Entry: NONE 
;Exit:	NONE 
; 
;[]==============================================================[] 
		PUBLIC	QUICK_POST_9 
QUICK_POST_9	PROC	NEAR 
;null		Call	POST_54S 
;null		Call	POST_55S 
		ret 
QUICK_POST_9	ENDP 
 
;[]==============================================================[] 
; 
;QUICK_POST_10: 
; 
;Saves: NONE 
; 
;Entry: NONE 
;Exit:	NONE 
; 
;[]==============================================================[] 
		PUBLIC	QUICK_POST_10 
QUICK_POST_10	PROC	NEAR 
;null		Call	POST_56S 
;null		Call	POST_57S 
		ret 
QUICK_POST_10	ENDP 
 
;[]==============================================================[] 
; 
;QUICK_POST_11: 
; 
;Saves: NONE 
; 
;Entry: NONE 
;Exit:	NONE 
; 
;[]==============================================================[] 
		PUBLIC	QUICK_POST_11 
QUICK_POST_11	PROC	NEAR 
;null		Call	POST_58S 
;null		Call	POST_59S 
		ret 
QUICK_POST_11	ENDP 
 
;[]==============================================================[] 
; 
;QUICK_POST_12: 
; 
;Saves: NONE 
; 
;Entry: NONE 
;Exit:	NONE 
; 
;[]==============================================================[] 
		PUBLIC	QUICK_POST_12 
QUICK_POST_12	PROC	NEAR 
;R06		Call	POST_60S 
		Call	POST_96S	;R06B 
 
;R06		Call	POST_61S 
		Call	POST_99S	;R06B 
		Call	POST_101S	;R06B 
		Call	POST_103S	;R06B 
		ret 
QUICK_POST_12	ENDP 
 
;[]==============================================================[] 
; 
;QUICK_POST_13: 
; 
;Saves: NONE 
; 
;Entry: NONE 
;Exit:	NONE 
; 
;[]==============================================================[] 
		PUBLIC	QUICK_POST_13 
QUICK_POST_13	PROC	NEAR 
;R06		Call	POST_62S 
		Call	POST_105S	;R06 
;null		Call	POST_63S 
		ret 
QUICK_POST_13	ENDP 
 
;[]==============================================================[] 
; 
;QUICK_POST_14: 
; 
;Saves: NONE 
; 
;Entry: NONE 
;Exit:	NONE 
; 
;[]==============================================================[] 
		PUBLIC	QUICK_POST_14 
QUICK_POST_14	PROC	NEAR 
;null		Call	POST_64S 
;R06		Call	POST_65S 
		Call	POST_107S		;R06B 
		Call	POST_109S		;R06B 
		Call	POST_111S		;R06B 
		ret 
QUICK_POST_14	ENDP 
 
;[]==============================================================[] 
; 
;QUICK_POST_15: 
; 
;Saves: NONE 
; 
;Entry: NONE 
;Exit:	NONE 
; 
;[]==============================================================[] 
		PUBLIC	QUICK_POST_15 
QUICK_POST_15	PROC	NEAR 
;R06		Call	POST_66S 
		Call	POST_115S		;R06B 
		Call	POST_117S		;R06B 
;R06		Call	POST_67S 
		Call	POST_119S		;R06B 
		ret 
QUICK_POST_15	ENDP 
 
;[]==============================================================[] 
; 
;QUICK_POST_16: 
; 
;Saves: NONE 
; 
;Entry: NONE 
;Exit:	NONE 
; 
;[]==============================================================[] 
		PUBLIC	QUICK_POST_16 
QUICK_POST_16	PROC	NEAR 
;null		Call	POST_68S 
;R06		Call	POST_69S 
		Call	POST_122S		;R06B 
;null		Call	POST_70S 
		ret 
QUICK_POST_16	ENDP 
 
;[]==============================================================[] 
; 
;QUICK_POST_17: 
; 
;Saves: NONE 
; 
;Entry: NONE 
;Exit:	NONE 
; 
;[]==============================================================[] 
		PUBLIC	QUICK_POST_17 
QUICK_POST_17	PROC	NEAR 
;R06		Call	POST_71S 
		Call	POST_124S		;R06B 
;null			Call	POST_72S 
;null			Call	POST_73S 
		ret 
QUICK_POST_17	ENDP 
 
;[]==============================================================[] 
; 
;QUICK_POST_18: 
; 
;Saves: NONE 
; 
;Entry: NONE 
;Exit:	NONE 
; 
;[]==============================================================[] 
		PUBLIC	QUICK_POST_18 
QUICK_POST_18	PROC	NEAR 
;null		Call	POST_74S 
;null		Call	POST_75S 
;null		Call	POST_76S 
		ret 
QUICK_POST_18	ENDP 
 
;[]==============================================================[] 
; 
;QUICK_POST_19: 
; 
;Saves: NONE 
; 
;Entry: NONE 
;Exit:	NONE 
; 
;[]==============================================================[] 
		PUBLIC	QUICK_POST_19 
QUICK_POST_19	PROC	NEAR 
;null		Call	POST_77S 
;R06B		Call	POST_78S 
		Call	POST_127S	;R06B 
;R06A		Call	POST_79S 
		Call	POST_130S	;R06B 
		ret 
QUICK_POST_19	ENDP 
 
;[]==============================================================[] 
; 
;QUICK_POST_20: 
; 
;Saves: NONE 
; 
;Entry: NONE 
;Exit:	NONE 
; 
;[]==============================================================[] 
		PUBLIC	QUICK_POST_20 
QUICK_POST_20	PROC	NEAR 
;R06A		Call	POST_80S 
;R06A		Call	POST_81S 
;R06A		Call	POST_82S 
		Call	POST_131S	;R06B 
		Call	POST_132S	;R06B 
		Call	POST_133S	;R06B 
;R08 - starts 
		call	POST_134S 
		call	POST_135S 
		call	POST_136S 
		call	POST_137S 
		call	POST_138S 
		call	POST_139S 
		call	POST_140S 
		call	POST_141S 
		call	POST_142S 
		call	POST_143S 
		call	POST_144S 
;R08 - ends 
		ret 
QUICK_POST_20	ENDP 
 
;[]==============================================================[] 
; 
;QUICK_POST_21: 
; 
;Saves: NONE 
; 
;Entry: NONE 
;Exit:	NONE 
; 
;[]==============================================================[] 
		PUBLIC	QUICK_POST_21 
QUICK_POST_21	PROC	NEAR 
;R06A		Call	POST_83S 
;R06A		Call	POST_84S 
;R06A		Call	POST_85S 
;R08		Call	POST_134S	;R06B 
;R08		Call	POST_135S	;R06B 
;R08		Call	POST_136S	;R06B 
		call	POST_145S	;R08 
		ret 
QUICK_POST_21	ENDP 
 
;[]==============================================================[] 
; 
;QUICK_POST_22: 
; 
;Saves: NONE 
; 
;Entry: NONE 
;Exit:	NONE 
; 
;[]==============================================================[] 
		PUBLIC	QUICK_POST_22 
QUICK_POST_22	PROC	NEAR 
;R06A		Call	POST_86S 
;R06A		Call	POST_87S 
;R06A		Call	POST_88S 
		Call	POST_137S	;R06B 
		Call	POST_138S	;R06B 
		Call	POST_139S	;R06B 
		ret 
QUICK_POST_22	ENDP 
 
;[]==============================================================[] 
; 
;QUICK_POST_23: 
; 
;Saves: NONE 
; 
;Entry: NONE 
;Exit:	NONE 
; 
;[]==============================================================[] 
		PUBLIC	QUICK_POST_23 
QUICK_POST_23	PROC	NEAR 
;R06A		Call	POST_89S 
;R06A		Call	POST_90S 
;R06A		Call	POST_91S 
;R08		Call	POST_140S	;R06B 
;R08		Call	POST_141S	;R06B 
;R08		Call	POST_142S	;R06B 
		ret 
QUICK_POST_23	ENDP 
 
;[]==============================================================[] 
; 
;QUICK_POST_24: 
; 
;Saves: NONE 
; 
;Entry: NONE 
;Exit:	NONE 
; 
;[]==============================================================[] 
		PUBLIC	QUICK_POST_24 
QUICK_POST_24	PROC	NEAR 
;R06A		Call	POST_92S 
;R06A		Call	POST_93S 
;R06A		Call	POST_94S 
;R08		Call	POST_143S	;R06B 
;R08		Call	POST_144S	;R06B 
;R08		Call	POST_145S	;R06B 
		ret 
QUICK_POST_24	ENDP 
 
;[]==============================================================[] 
; 
;QUICK_POST_25: 
; 
;Saves: NONE 
; 
;Entry: NONE 
;Exit:	NONE 
; 
;[]==============================================================[] 
		PUBLIC	QUICK_POST_25 
QUICK_POST_25	PROC	NEAR 
;R06A		Call	POST_95S 
;R06A		Call	POST_96S 
		Call	POST_146S	;R06B 
		Call	POST_147S	;R06B 
		ret 
QUICK_POST_25	ENDP 
 
;[]==============================================================[] 
; 
;QUICK_POST_26: 
; 
;Saves: NONE 
; 
;Entry: NONE 
;Exit:	NONE 
; 
;[]==============================================================[] 
		PUBLIC	QUICK_POST_26 
QUICK_POST_26	PROC	NEAR 
;R06A		Call	POST_97S 
		Call	POST_148S	;R06B 
		ret 
QUICK_POST_26	ENDP 
 
;[]==============================================================[] 
; 
;QUICK_POST_27: 
; 
;Saves: NONE 
; 
;Entry: NONE 
;Exit:	NONE 
; 
;[]==============================================================[] 
		PUBLIC	QUICK_POST_27 
QUICK_POST_27	PROC	NEAR 
;R06A		Call	POST_98S 
		Call	POST_149S	;R06B 
		ret 
QUICK_POST_27	ENDP 
 
;[]==============================================================[] 
; 
;QUICK_POST_28: 
; 
;Saves: NONE 
; 
;Entry: NONE 
;Exit:	NONE 
; 
;[]==============================================================[] 
		PUBLIC	QUICK_POST_28 
QUICK_POST_28	PROC	NEAR 
;R06A		Call	POST_99S 
		Call	POST_150S	;R06B 
		ret 
QUICK_POST_28	ENDP 
 
endif	;SIMPLE_BOOT_SUPPORT 
 
ECODE		ENDS 
 
FCODE		SEGMENT PARA PUBLIC 'CODE' 
		ASSUME	CS:DGROUP 
FCODE		ENDS 
 
		END