www.pudn.com > hpbios.rar > APM.INC
; []===========================================================[] ; ; 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 ;---------------------------------------------------------------------------- ;R03 12/01/99 DNL Fixed system halt when OS switch to ACPI mode ;R02 03/25/98 RAX Added code for use MASM6.X compiler APM.ASM. ;R01 12/24/97 RAX Fixed mistake. ;R00 12/19/97 RAX Initial Revison for move APM to SMBASE. ifdef PM_SUPPORT ifdef ADVANCE_POWER_MANAGEMENT ifdef APM_IN_SMBASE ;**************************************************************** ;* * ;* COMPILING STAGE 1 * ;* * ;* MISCELLANEOUS DEFINITION * ;* * ;**************************************************************** IF COMPILE_FOR_APMBIOS EQ 1 extrn APM_SMI_Start:near extrn APM_SMI_End:near extrn APM_SMI_Handler:far ;R02 start extrn Err_Checking_Routines:near extrn APM_FUNC_TBL:near ;R02 end extrn APM_HDD_offset:ABS ;R03 ENDIF ;COMPILE_FOR_APMBIOS EQ 1 ;************************************************************************ ;* * ;* COMPILING STAGE 2 * ;* POST INTERFACE MODULE * ;* * ;************************************************************************ IF COMPILE_FOR_APMBIOS EQ 2 ;[]========================================================================[] ;Procedure: Move_APMCode ;Function: Move APM code to SMBASE ;Input: ES:SMBASE_SEGMENT ;Output: none ;[]========================================================================[] Move_APMCode PROC Near push ds push es mov ax, Xgroup mov ds, ax ;R02 start mov si, offset Err_Checking_Routines mov cl, 8h call Adjust_Func_Table mov si, offset APM_FUNC_TBL mov cl, 14h call Adjust_Func_Table ;R02 end mov si, offset XGroup:APM_SMI_Start mov cx, offset XGroup:APM_SMI_End sub cx, si mov di, SMI_Handler_Len rep movsb pop es pop ds ret Move_APMCode ENDP ;R02 start Adjust_Func_Table: add word ptr DS:[si], SMI_Handler_Len add si,2 loop Adjust_Func_Table ret ;R02 end ENDIF ;COMPILE_FOR_APMBIOS EQ 2 ;**************************************************************** ;* * ;* COMPILING STAGE 3 * ;* RUN-TIME EXECUTION CODES RESIDENT AT SMI RAM * ;* * ;**************************************************************** IF COMPILE_FOR_APMBIOS EQ 3 Public Chk_Kernel_SMI Chk_Kernel_SMI PROC NEAR ;R01 stc ;Assume not kernel call cmp [Software_SMI_Type], APM_SMI stc ;Assume not kernel call ;R01 jne short Not_APMSMI mov si, SMI_Handler_Len call si clc Not_APMSMI: ret Chk_Kernel_SMI ENDP ENDIF ;COMPILE_FOR_APMBIOS EQ 3 endif ;APM_IN_SMBASE endif ;ADVANCE_POWER_MANAGEMENT endif ;PM_SUPPORT