📄 e0post.asm
字号:
ifdef Graphics_Post
EXTRN FULL_HALT_MSG:NEAR
EXTRN skip_mem_msg1:NEAR
EXTRN TO_ENTER_SETUP1:NEAR
EXTRN BTM_LINE_CLR1:NEAR
EXTRN CLR_SKIP_MEM_MSG1:NEAR
endif; Graphics_Post
EXTRN HD_INSTALL:NEAR
EXTRN Init_Onboard_Io:NEAR
EXTRN INT_TBL:WORD
EXTRN IRET_VECT:NEAR
EXTRN SIGN_ON_CHKSUM:BYTE
EXTRN DISP_BYTE_HEX2:NEAR
extrn SPD_DEF:byte
EXTRN KBD_ERR_MSG:NEAR
EXTRN KB_OUT:NEAR
EXTRN KEY_LOCK_MSG:NEAR
EXTRN MEM_ERROR_MSG:NEAR
EXTRN MS_INSTAL:NEAR
EXTRN OK_MSG:NEAR
EXTRN OUT_8042:NEAR
EXTRN OUT_8042_FULL:NEAR
EXTRN OVERRIDE_ENABLE_STR:NEAR
EXTRN fProc_Prg_Auto:Far
EXTRN fProc_Prg_Chipset:Far
EXTRN fProc_Prg_Chipset_Default:Far
EXTRN REDO:NEAR
EXTRN RST_VECT:NEAR
EXTRN R_MOD_CK:NEAR
EXTRN SEC_HRDWR_INTS:WORD
EXTRN SETSPEED:NEAR
EXTRN SETTINGS:BYTE
EXTRN Setup:NEAR
EXTRN SET_CMOS:NEAR
EXTRN SIGN_ON_MSG:BYTE
EXTRN SIGN_ON_MSG:BYTE
EXTRN SIZE_SYS_INITS:ABS
EXTRN SKIP_MEM_MSG:NEAR
EXTRN SND_SPKR:NEAR
EXTRN SYSTEM1_BYTE:BYTE
EXTRN SYSTEM4_BYTE:BYTE
EXTRN SYSTEM5_BYTE:BYTE
EXTRN SYSTEM_BYTE:BYTE
EXTRN SYS_INITS:WORD
EXTRN TEST_EXT_MSG:NEAR
EXTRN TEST_MEM_MSG:NEAR
EXTRN TO_ENTER_SETUP:NEAR
extrn HDD_Drive0_Err_Str:near
extrn HDD_Drive1_Err_Str:near
extrn HDD_Drive2_Err_Str:near
extrn HDD_Drive3_Err_Str:near
;R267 extrn Disp_Access_mode:near
EXTRN USER_BEGIN:NEAR
EXTRN VCRLF:NEAR
EXTRN VID_SWITCH_MSG:NEAR
EXTRN VNORMAL:NEAR
EXTRN VREVERSE:NEAR
EXTRN WAIT_REFRESH:NEAR
EXTRN WORD_CHECKSUM:BYTE
extrn Unlock_Cyrix:near
extrn Lock_Cyrix:near
extrn Display_String:near
extrn Display_Char:near
extrn Chk_Intel_S_CPU:near
extrn Read_Cmos_To_Stack:near
ifndef NO_FAST_A20
extrn GateA20_Item:near
endif; NO_FAST_A20
ifndef Support_1_FDD
extrn SwapFloppy_Item:near
endif ;Support_1_FDD
extrn Set_High_Speed:near
extrn Load_Auto_Cfg_D4:near
extrn Ct_Disable_E000_Vga:near
extrn Ct_Disable_Onboard_Vga:near
extrn Ct_Enable_Onboard_Vga:near
extrn Ct_Enable_E000_Vga:near
extrn CPU_Type_Clk:near
IF BIOS_SUPPORT_IBM_CPU
;R267 EXTRN IBMCPU_Cacheable_Size:Near
endif ;BIOS_SUPPORT_IBM_CPU
extrn QuickPost_Item:near
extrn CLR_SKIP_MEM_MSG:near
extrn Read_Memory:Near
extrn Later_cache_Sizing:near
extrn A20_Byte:byte
extrn Virus_Item:near
ifdef Support_HDD_Write_Protect
extrn Hdd_Wt_Protect_Item:near
endif ;Support_HDD_Write_Protect
extrn Enter_Setup_Check:near
extrn HaltOn_Item:near
extrn Verify_Password:near
extrn Save_All_Cmos:near
extrn CT_FINAL_INIT:near
extrn DayLight_Item:near
extrn NumLock_Item:near
extrn Get_Item_Setup_D4:near
extrn Get_Item_Bios_D4:near
extrn GetItem_Value:near
extrn Restore_Cyrix_Reg:near
extrn Out_8042_Pin:near
extrn VGA_Buffer:near
EXTRN DRIVE_A_ITEM:Near
EXTRN HDDC_ITEM:Near
ifndef Support_1_FDD
EXTRN DRIVE_B_ITEM:Near
endif ;Support_1_FDD
extrn Get_HDD_CMOS_Info:near
EXTRN Read_Item_Value:Near
EXTRN Video_Item:Near
EXTRN Show_SIX_DIGIT:Near
Extrn Get_Cache_Size:Near
EXTRN Transfer_Hdd_Parms:Near
extrn Wr_Cpu:near
extrn Restore_Speed:near
extrn IntCache_Item:near
extrn ExtCache_Item:near
extrn E000_Shadow_R:near
extrn E000_Shadow_W:near
extrn C000_Shadow_R:near
extrn C000_Shadow_RW:near
extrn C800_Shadow:near
extrn CC00_Shadow:near
extrn D000_Shadow:near
extrn D000_Shadow:near
extrn D400_Shadow:near
extrn D800_Shadow:near
extrn DC00_Shadow:near
extrn Ct_Shadow_Alone_Check:near
extrn Ct_Shadow_Allow:near
;R258 extrn C000_Item:near
ifndef No_C8_DF_Shadow_Item
extrn C800_Item:near
extrn CC00_Item:near
extrn D000_Item:near
extrn D400_Item:near
extrn D800_Item:near
extrn DC00_Item:near
endif ;No_C8_DF_Shadow_Item
extrn Shadow_Dr:near
extrn E000_Move_Codes:near
extrn Clear_Parity:near
extrn Do_F000_Shadow:Near
EXTRN HDDD_ITEM:Near
EXTRN Get_VarString_Offset:Near
EXTRN AX_To_DEC3:Near
EXTRN AX_To_DEC2:Near
extrn Mono_Style:near
extrn Tran_HDD_User_Type:Near
extrn Init_Onboard_Super_IO:near
extrn Init_Onboard_AUDIO:near
extrn Init_Onboard_Sensor:near
extrn Auto_Cfg_SuperIO:near
extrn Preint_19:near
extrn Cmos_Check_Sum:near
extrn F000_SET_CMOS:near
extrn F000_BUFFER_8042_FULL:near
extrn F000_OUT_8042_FULL:near
extrn CHECK_PS2_MOUSE_SUPPORT:near
extrn F000_GET_CMOS:near
extrn F000_GETITEM_VALUE:near
extrn F000_CPU_CACHE:near
extrn F000_OUT_8042:near
extrn F000_CURSOR_SET:near
extrn DISP_STR_IN_BIOS:near
extrn DISP_STR_IN_POST:near
extrn F000_VCRLF:near
extrn Disp_Extra_CPU_Info:Near
extrn SYSCFG_CPU_CLOCK1:near
extrn TRY_SHADOW:near
extrn F000_DISPLAY_CHAR:near
;R235 extrn ISA_POST_CODE:ABS
;R235 extrn ISA_POST_TESTS:near
extrn RAM_POST_TESTS:near
;R235 extrn COMMON_POST_CODE:ABS
;R235 extrn COMMON_POST_TESTS:near
;R235 extrn RAM_POST_TESTS:near
extrn HALTSYSTEM:near
extrn TRY_ACTUAL_CACHE:near
extrn F000_VNORMAL:near
extrn F000_VREVERSE:near
extrn WAIT_REFRESH1:near
extrn Try_Other_Shadow:near
ifdef PCI_BUS
extrn CT_C8_TO_DF_RW:near
extrn CT_SHADOW_UNIT:near
extrn CT_DISABLE_SHADOW:near
extrn LMEM_RESOURCE:ABS
extrn LMEM_BEFORE_ROM:ABS
extrn VGA_BIOS_LENGTH:ABS
endif ;PCI_BUS
extrn Get_Cyrix:near
extrn Set_Cyrix:near
extrn F000_func_end:Near
extrn F000_VECT:Near
extrn Check_Upd:Near
extrn Get_Rtc_Byte:near
extrn Set_Rtc_Byte:near
extrn Valid_Century:near
ifdef FLASH_SUPPORT
ifdef AUTO_DETECT_EEPROM_ID
extrn Ct_ROM_Write_Enable:near
extrn Ct_ROM_Write_Disable:near
extrn CT_Enable_ROM_Shadow:near
extrn CT_Disable_ROM_Shadow:near
extrn Ct_Init:near
;; extrn FLASH_ENTRY_POINT:near
;; extrn FLASH_WRITE_ENTRY_POINT:near
extrn Ct_Get_Flash:near
extrn Ct_Set_Flash:near
extrn Erase_Delay:near
extrn Write_Delay:near
extrn EEPROM_Wait_10ms:near
extrn Detect_EEPROM:Near
endif; AUTO_DETECT_EEPROM_ID
endif; FLASH_SUPPORT
extrn Enable_M1_FarHit:near
extrn MEASURE_CPU_SPEED:Near
extrn MOV_SHAD_SEG:ABS
extrn Set_Cpu_MtRR:Near
IF BIOS_SUPPORT_686
extrn P6_BiosUpdate:near
ifdef MP_SUPPORT
extrn Init_Mtrr:near
endif ;MP_SUPPORT
ENDIF ;BIOS_SUPPORT_686
IF BIOS_SUPPORT_KLAMATH
extrn ConfigurePProL2Cache:Near
ENDIF ;BIOS_SUPPORT_KLAMATH
IF BIOS_SUPPORT_586
extrn Try_Show_PRating:Near
extrn Check_K6_CPU:Near ;R276
ENDIF ;BIOS_SUPPORT_586
;R276 extrn Check_K6_CPU:Near
extrn Prg_K5_Write_Allocate:Near
ifdef CMOS_BACKUP_SUPPORT
extrn Flash_Write:near
extrn Flash_Read:near
extrn Check_CMOS_Sum:near
endif ;CMOS_BACKUP_SUPPORT
extrn Disp_CS_Language:near ;$ML$
ifdef MULTI_LANGUAGE_SUPPORT ;$ML$
extrn fProc_Language_Init:near ;$ML$
endif ;MULTI_LANGUAGE_SUPPORT ;$ML$
ifdef DOUBLE_BYTE_LANGUAGE ;$ML$
extrn Init_Int10h:near ;$ML$
endif ;DOUBLE_BYTE_LANGUAGE ;$ML$
;$ML$ - start
;ifdef MULTI_LANGUAGE_SUPPORT
extrn Award_PnP_Msg:near
extrn Disp_Language:near
;R267 extrn Post_Detect_Msg:near
;endif ;MULTI_LANGUAGE_SUPPORT
extrn F000_Display_String:near
;$ML$ - end
extrn CHECK_BOOT_RECORD:near ;R221B
extrn Clear_Screen_Str:near ;R232
;R259 - start
ifdef Date_DEFAULT_IS_BIOS_MAKE_DAY
extrn E000_64K_shadow_RW:near
extrn E000_64K_shadow_R:near
endif ;Date_DEFAULT_IS_BIOS_MAKE_DAY
;R259 - end
;R281 - start
ifdef Superio_KBC_KBDMOUSE_SWAP
extrn Superio_Swap_KBC:near
endif ;Superio_KBC_KBDMOUSE_SWAP
;R281 - end
;R284 start
ifdef VBU_SUPPORT
ifndef No_VBU_Prompt
ifdef Graphics_Post
extrn To_enter_VBU_MSG1:near
endif ;Graphics_Post
extrn To_enter_VBU_MSG:near
endif ;No_VBU_Prompt
endif ;VBU_SUPPORT
;R284 end
PUBLIC POST_2S
PUBLIC POST_3S
PUBLIC POST_4S
PUBLIC POST_5S
PUBLIC POST_6S
PUBLIC POST_7S
PUBLIC POST_8S
PUBLIC POST_9S
PUBLIC POST_10S
PUBLIC POST_11S
PUBLIC POST_12S
PUBLIC POST_13S
PUBLIC POST_14S
PUBLIC POST_15S
PUBLIC POST_16S
PUBLIC POST_17S
PUBLIC POST_18S
PUBLIC POST_19S
PUBLIC POST_20S
PUBLIC POST_21S
PUBLIC POST_22S
PUBLIC POST_23S
PUBLIC POST_24S
PUBLIC POST_25S
PUBLIC POST_26S
PUBLIC POST_27S
PUBLIC POST_28S
PUBLIC POST_29S
PUBLIC POST_30S
PUBLIC POST_31S
PUBLIC POST_32S
PUBLIC POST_33S
PUBLIC POST_34S
PUBLIC POST_35S
PUBLIC POST_36S
PUBLIC POST_37S
PUBLIC POST_38S
PUBLIC POST_39S
PUBLIC POST_40S
PUBLIC POST_41S
PUBLIC POST_42S
PUBLIC POST_43S
PUBLIC POST_44S
PUBLIC POST_45S
PUBLIC POST_46S
PUBLIC POST_47S
PUBLIC POST_48S
PUBLIC POST_49S
PUBLIC POST_50S
PUBLIC POST_51S
PUBLIC POST_52S
PUBLIC POST_53S
PUBLIC POST_54S
PUBLIC POST_55S
PUBLIC POST_56S
PUBLIC POST_57S
PUBLIC POST_58S
PUBLIC POST_59S
PUBLIC POST_60S
PUBLIC POST_61S
PUBLIC POST_62S
PUBLIC POST_63S
PUBLIC POST_64S
PUBLIC POST_65S
PUBLIC POST_66S
PUBLIC POST_67S
PUBLIC POST_68S
PUBLIC POST_69S
PUBLIC POST_70S
PUBLIC POST_71S
PUBLIC POST_72S
PUBLIC POST_73S
PUBLIC POST_74S
PUBLIC POST_75S
PUBLIC POST_76S
PUBLIC POST_77S
PUBLIC POST_78S
;R267- start
PUBLIC POST_79S
PUBLIC POST_80S
PUBLIC POST_81S
PUBLIC POST_82S
PUBLIC POST_83S
PUBLIC POST_84S
PUBLIC POST_85S
PUBLIC POST_86S
PUBLIC POST_87S
PUBLIC POST_88S
PUBLIC POST_89S
PUBLIC POST_90S
PUBLIC POST_91S
PUBLIC POST_92S
PUBLIC POST_93S
PUBLIC POST_94S
PUBLIC POST_95S
PUBLIC POST_96S
PUBLIC POST_97S
PUBLIC POST_98S
PUBLIC POST_99S
PUBLIC POST_100S
PUBLIC POST_101S
PUBLIC POST_102S
PUBLIC POST_103S
PUBLIC POST_104S
PUBLIC POST_105S
PUBLIC POST_106S
PUBLIC POST_107S
PUBLIC POST_108S
PUBLIC POST_109S
PUBLIC POST_110S
PUBLIC POST_111S
PUBLIC POST_112S
PUBLIC POST_113S
PUBLIC POST_114S
PUBLIC POST_115S
PUBLIC POST_116S
PUBLIC POST_117S
PUBLIC POST_118S
PUBLIC POST_119S
PUBLIC POST_120S
PUBLIC POST_121S
PUBLIC POST_122S
PUBLIC POST_123S
PUBLIC POST_124S
PUBLIC POST_125S
PUBLIC POST_126S
PUBLIC POST_127S
PUBLIC POST_128S
PUBLIC POST_129S
;;;- end
.LIST
;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 <OFFSET F000_VECT>,0F000H
Ret_addr:
ENDM
;[]---------------------------[]
;
; 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
PAGE
EGROUP GROUP ECODE
DGROUP GROUP FCODE
ECODE SEGMENT USE16 PARA PUBLIC 'ECODE'
ASSUME CS:EGROUP,DS:G_RAM,ES:EGROUP
;---------------------------------------------------------------------------------
Public Check_Warm_Boot
Check_Warm_Boot:
push ds
push ax
mov ax,G_RAM
mov ds,ax
assume ds:G_RAM
cmp word ptr [USER_REBOOT],CTRL_ALT_DEL
pop ax
pop ds
ret
;---------------------------------------------------------------------------------
;Function : reset keyboard and detect plugged or not
;Input : non
;Output: CMOS_STATUS[bp] - indicate KB present/absent
Reset_Kb proc near
pushf
cli
;Don't do keyboard selftest if warm boot
mov ax,G_RAM
mov ds,ax
cmp word ptr ds:USER_REBOOT, CTRL_ALT_DEL
je Keybord_Init_Exit
mov dl,15 ; bl = number of retries
p5_4:
;Disable KB interface during KB selftest, otherwise JETKEY failed with
; "kebyard error"
mov al,0ADh ; disable KBD
call F000_Out_8042
mov cx, 256
@@:
NEWIODELAY
loop short @B
in al,DATA8042 ; read return garbage byte
NEWIODELAY
call F000_Buffer_8042_Full; wait til command received
jnz p5_91_1
mov al,KB_RESET ; kbd self test cmd
out DATA8042,al
NEWIODELAY
call F000_Buffer_8042_Full ; wait til command received
jnz short p5_91_1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -