Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

94 lines
2.2 KiB

;/* himem1.asm
; *
; * Microsoft Confidential
; * Copyright (C) Microsoft Corporation 1988-1991
; * All Rights Reserved.
; *
; * Modification History
; *
; * Sudeepb 14-May-1991 Ported for NT XMS support
; */
page 95,160
title himem1 - A20 Handler stuff
.xlist
include himem.inc
include xmssvc.inc
.list
public A20Handler
extrn TopOfTextSeg:word
extrn fA20Check:byte
extrn A20State:byte
assume cs:_text,ds:nothing
;*--------------------------------------------------------------------------*
;* *
;* A20 Handler Section: *
;* *
;* The Init code copies the proper A20 Handler in place. *
;* *
;* NOTE: the A20 handler may be called from the Int 15h hook which does *
;* not set ds = _text. DO NOT ASSUME DS == _TEXT! *
;* *
;*--------------------------------------------------------------------------*
A20Handler:
;*----------------------------------------------------------------------*
;* *
;* TheA20Handler - Hardware Independent A20 handler for NT himem *
;* *
;* Enable/Disable the A20 line *
;* *
;* ARGS: AX = 0 for Disable, 1 for Enable, 2 for On/Off query *
;* RETS: AX = 1 for success, 0 otherwise *
;* if input AX=2 then Exit AX=0 means off and 1 means on *
;* REGS: AX and flags effected *
;* *
;*----------------------------------------------------------------------*
TheA20Handler proc near
cmp ax, 2
jne @F
mov al, cs:A20State
cbw
ret
@@:
XMSSVC XMS_A20
ret
TheA20Handler endp
End_A20Handler:
; Sudeepb NOTE: DONOT ADD ANY THING after End_A20Handler and before InstallA20.
;*----------------------------------------------------------------------*
;* *
;* InstallA20 - *
;* *
;* Install the A20 Handler *
;* *
;* ARGS: None *
;* RETS: None *
;* REGS: *
;* *
;*----------------------------------------------------------------------*
public InstallA20
InstallA20 proc near
mov fA20Check,1 ; A20 ON/OFF query supported
mov [TopOfTextSeg],offset End_A20Handler
clc
ret
InstallA20 endp
_text ends
end