📄 sus2disk.asm
字号:
extrn AX_To_DEC2:near
extrn Show_SIX_DIGIT:near
ifndef Wakeup_From_UART ;R95
EXTRN GET_SMBASE_SEG:NEAR
endif ;Wakeup_From_UART ;R95
EXTRN A20_ON:NEAR
EXTRN SND_SPKR_TONE:NEAR
ifndef P6_BIOS_ONLY ;R43A
extrn Check_Cyrix_Cpu:near ;R43A
extrn Get_Cyrix:near ;R43A
endif ;P6_BIOS_ONLY ;R43A
ifdef NEW_SUPERIO_KERNEL
ifndef NO_SUPER_IO ;R78
extrn Suspend_Super_IO:near
extrn Restore_Super_IO:near
endif; NO_SUPER_IO ;R78
endif ;NEW_SUPERIO_KERNEL
;R77 - start
ifdef Superio_Support_Sensor
extrn Save_Sensor:Near
extrn Restore_Sensor:Near
endif ;Superio_Support_Sensor
;R77 - end
endif ;STD_Function EQ 1
;R43 - end
;R95 - start
ifdef Wakeup_From_UART
EXTRN GET_SMBASE_SEG:NEAR
endif ;Wakeup_From_UART
;R95 - end
ifdef Notebook_Power_Management
INCLUDE 8259.EQU
;R43 INCLUDE 8042.EQU
INCLUDE 8254.EQU
;R43 extrn Get_PM_RAM_Seg:near ;PMU.ASM
;R43 EXTRN Enable_CRT:NEAR
;R43 EXTRN BUFFER_8042_FULL:NEAR
;R43 EXTRN OUT_8042_FULL:NEAR
EXTRN OUT_AUX:NEAR
;R32 EXTRN A20_ON:NEAR
;R32B ifdef Resume_Turn_on_A20 ;R32A
;R43 EXTRN A20_ON:NEAR ;R32A
;R32B endif ;Resume_Turn_on_A20 ;R32A
EXTRN Multi_Service:near
EXTRN Detect_LBA_Mode:near
;R43 EXTRN Display_String:NEAR
EXTRN Get_Color_Off:NEAR
EXTRN Check_Display_Mode:NEAR
;R43 EXTRN SND_SPKR_TONE:NEAR
;R43 EXTRN SUSPEND_CHIPSET_TABLE:NEAR
;R43 EXTRN GET_CT:NEAR
;R43 EXTRN SET_CT:NEAR
;R43 EXTRN GET_SMBASE_SEG:NEAR
EXTRN CT_DISABLE_SMI:NEAR
;R43 EXTRN CT_0V_SHUTDOWN:NEAR
;R43 EXTRN CT_SYSTEM_WAKEUP:NEAR
EXTRN CT_SAVE_COMA:NEAR
EXTRN CT_SAVE_COMB:NEAR
EXTRN CT_SAVE_FDC:NEAR
EXTRN CT_RESTORE_FDC:NEAR
EXTRN CT_SAVE_8259:NEAR
ifdef NEW_SUPERVGA_KERNEL ;R01
extrn Suspend_Vga:near ;R01
extrn Resume_Vga:near ;R01
extrn Save_VRAM:near ;R01
extrn Restore_VRAM:near ;R01
else ;NEW_SUPERVGA_KERNEL ;R01
EXTRN CT_SAVE_VGA:NEAR
EXTRN CT_RESTORE_VGA:NEAR
endif ;NEW_SUPERVGA_KERNEL ;R01
;R43 EXTRN CT_ALLSHADOW_RW:NEAR
;R43 EXTRN CT_SKIP_ZV_SHADOW:NEAR
;R43 EXTRN CT_SMBASE_OFF:NEAR
;R43 EXTRN CT_SMBASE_ON:NEAR
extrn Set_Full_On_SMM:near
ifndef NEW_SUPERVGA_KERNEL ;R01
extrn Ct_Save_VRAM:near
extrn Ct_Restore_VRAM:near
endif ;NEW_SUPERVGA_KERNEL ;R01
;R43 extrn VIDEO_FUNC:near
;R43 extrn VGA_Buffer:near
;R41 extrn ZV_Resume_Byte:ABS
;R43 extrn E000_64K_shadow_R:near
;R43 extrn Disable_E000_ROM_Shadow:near
;R43A ifndef P6_BIOS_ONLY
;R43A extrn Check_Cyrix_Cpu:near
;R43A extrn Get_Cyrix:near
;R43A endif ;P6_BIOS_ONLY
;R43 extrn Save_Ct_device:near ;R03
;R43 extrn Restore_Ct_device:near ;R03
ifdef NEW_SUPERKBC_KERNEL ;R03
extrn Suspend_KBC:near ;R03
extrn Resume_KBC:near ;R03
endif ;NEW_SUPERKBC_KERNEL ;R03
ifdef NEW_SUPERIO_KERNEL ;R05
ifndef DONT_SAVE_SUPER_IO ;R35
;R43 extrn Suspend_Super_IO:near ;R05
;R43 extrn Restore_Super_IO:near ;R05
endif ;DONT_SAVE_SUPER_IO ;R35
endif ;NEW_SUPERIO_KERNEL ;R05
ifdef Special_Save_VGA_status ;R06
extrn Ct_Special_restore_VGA:near ;R06
endif ;Special_Save_VGA_status ;R06
ifdef PNP_BIOS ;R08
ifndef NO_ISA_PNP ;R54
ifndef ZV_DONT_SAVE_PNP ;R26
extrn Suspend_PnP_Device:near ;R08
extrn Restore_PnP_Device:near ;R08
endif ;ZV_DONT_SAVE_PNP ;R26
endif ;NO_ISA_PNP ;R54
endif ;PNP_BIOS ;R08
ifdef Onboard_Modem_Card ;R08
extrn COMM_VECT:far ;R08
endif ;Onboard_Modem_Card ;R08
;R18 ifdef AUDIO_KERNEL ;R08
ifndef No_Save_Sound ;R57
extrn Save_Sound:near ;R08
extrn Restore_Sound:near ;R08
endif ;No_Save_Sound ;R57
;R18 endif ;AUDIO_KERNEL ;R08
;R12 - start
ifndef NO_STR_SUPPORT
extrn Ct_5V_suspend_VGA:near
extrn Ct_5V_Resume_VGA:near
extrn CT_5V_Shutdown:near
extrn Save_5V_Chipset:near
if Desktop_Power_Management EQ 2 ;R81
ifndef NO_STR_PASSWORD_CHECK ;R16
extrn kb_cntrlr_out:near ;R16
extrn buffer_8042_full:near ;R16
extrn keys:near ;R16
extrn kyb_enable:near ;R16
extrn KB_Out:near ;R16
extrn Ct_Enable_CRT:near ;R16
;R81A extrn Read_Cmos_To_Stack:near ;R16
extrn Fproc_Verify_Password:far ;R16
extrn KEYBOARD:near ;R16
endif ;NO_STR_PASSWORD_CHECK ;R16
endif ;Desktop_Power_Management EQ 2 ;R81
endif ;NO_STR_SUPPORT
;R12 - end
;R43 ifdef ACPI_Support
;R43 extrn ACPINVSAddress:near ;R38
;R43 extrn ACPITableAddress:near ;R38
;R43 ifdef S3_SUPPORT ;R40
;R43 extrn Save_S3_Chipset:near ;R40
;R43 endif ;S3_SUPPORT ;R40
;R43 ifdef S4_SUPPORT ;R41
;R43 extrn Wakeup_Device:near ;R41
;R43 endif ;S4_SUPPORT ;R41
;R43 endif ;ACPI_Support
;R43 extrn ExtMem128Mb:near ;R14
;R43 extrn AX_To_DEC2:near ;R15
;R43 extrn Show_SIX_DIGIT:near ;R15
;R43 extrn Display_Char:near ;R15
ifdef Patch_VGA_Resume_Garbage ;R19
extrn Disable_CRT:near ;R19
endif ;Patch_VGA_Resume_Garbage ;R19
endif ;Notebook_Power_Management
extrn F000_call_proc:near
extrn Post_call_proc:near
;R28 - start
ifndef DONT_RELEASE_E000_FOR_PCI
extrn GET_CMOS:near
extrn SET_CMOS:near
else ;DONT_RELEASE_E000_FOR_PCI
extrn F000_GET_CMOS:near
extrn F000_SET_CMOS:near
endif ;DONT_RELEASE_E000_FOR_PCI
;R28 - end
;R32 extrn Read_A20_Status:near ;R30
;R44A - start
WINBOND_KBC = 0
ifdef W83967AF
WINBOND_KBC = 1
endif ;W83967AF
ifdef W83977AF
WINBOND_KBC = 1
endif ;W83977AF
ifdef W83977ATF
WINBOND_KBC = 1
endif ;W83977ATF
ifdef W83977TF
WINBOND_KBC = 1
endif ;W83977TF
ifdef W83977EF
WINBOND_KBC = 1
endif ;W83977EF
;R44A - end
;R44B - start
ifdef W83627F
WINBOND_KBC = 1
endif ;W83627F
ifdef W83627HF
WINBOND_KBC = 1
endif ;W83627HF
;R44B - end
;R63a - start
if STR_Function EQ 1
if DESKTOP_POWER_MANAGEMENT EQ 1
RES_KBD_RESET EQU 1
endif ;DESKTOP_POWER_MANAGEMENT EQ 1
endif ;STR_Function EQ 1
;R63a - end
G_RAM SEGMENT USE16 AT 0
ORG 04H*4
INCLUDE SEG_0.INC
ORG 400H
INCLUDE G_RAM.INC
G_RAM ENDS
;R43 ifdef Notebook_Power_Management
SM_RAM SEGMENT USE16 AT 0
INCLUDE SM_RAM.INC
SM_RAM ENDS
ZV_Temp_Stack SEGMENT USE16 AT 0
org 1000h
VIDEO_BUFFER LABEL WORD
org 0FFF0h
ZV_STACK_TOP LABEL DWORD
ZV_Temp_Stack ENDS
;R43 endif ;Notebook_Power_Management
PM_RAM SEGMENT USE16 AT 0 ; define PM RAM segment
ORG 0
INCLUDE PM_RAM.INC
PM_RAM ENDS
.LIST
EGROUP GROUP ECODE
DGROUP GROUP FCODE
FCODE SEGMENT USE16 DWORD Public 'CODE'
ASSUME CS:DGROUP
;R43 - start
ifdef ACPI_SUPPORT
if ACPI_RESUME EQ 1
extrn Sx_Resume_Point:near
endif ;ACPI_RESUME EQ 1
if ACPI_CPU_POWEROFF EQ 1
PUBLIC Save_S3_Status
Save_S3_Status PROC FAR
Call E000_64K_shadow_R
FAR_Call <offset E_Save_S3_Status>,<Seg Egroup>
Call Disable_E000_ROM_Shadow
ret
Save_S3_Status Endp
endif ;ACPI_CPU_POWEROFF EQ 1
ifdef S2_SUPPORT
PUBLIC Restore_S2_Status
Restore_S2_Status PROC FAR
Call E000_64K_shadow_R
FAR_Call <offset E_Restore_S2_Status>,<Seg Egroup>
Call Disable_E000_ROM_Shadow
ret
Restore_S2_Status Endp
endif ;S2_SUPPORT
ifdef S3_SUPPORT
PUBLIC Restore_S3_Status
Restore_S3_Status PROC FAR
Call E000_64K_shadow_R
FAR_Call <offset E_Restore_S3_Status>,<Seg Egroup>
Call Disable_E000_ROM_Shadow
ret
Restore_S3_Status Endp
endif ;S3_SUPPORT
ifdef S4_SUPPORT
;[]========================================================================[]
;
; Put system into S4 state.
;
;[]=========================================================================[]
ASSUME DS:G_RAM
Public Do_S4_Suspend
Do_S4_Suspend Proc Far
Call E000_64K_shadow_R
FAR_Call <offset E_S4_Suspend>,<Seg Egroup>
Call Disable_E000_ROM_Shadow
ret
Do_S4_Suspend Endp
;R55 - start
ASSUME DS:G_RAM
Public WakeUp_VGA
WakeUP_VGA Proc Far
Call E000_64K_shadow_R
FAR_Call <offset E_WakeUP_VGA>,<Seg E_WakeUP_VGA>
Call Disable_E000_ROM_Shadow
ret
WakeUP_VGA Endp
;R55 - end
endif ;S4_SUPPORT
endif ;ACPI_SUPPORT
;R43 - end
ifdef Notebook_Power_Management
;圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹
;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -