windows-nt/Source/XPSP1/NT/base/mvdm/dos/v86/redir/msgapi.asm
2020-09-26 16:20:57 +08:00

101 lines
2.1 KiB
NASM

page ,132
if 0
/*++
Copyright (c) 1991 Microsoft Corporation
Module Name:
msgapi.asm
Abstract:
This module contains the messenger functions that we marginally support
for VDM
MessengerDispatch
Author:
Richard L Firth (rfirth) 21-Sep-1992
Environment:
Dos mode only
Revision History:
05-Sep-1991 rfirth
Created
--*/
endif
.xlist ; don't list these include files
.xcref ; turn off cross-reference listing
include dosmac.inc ; Break macro etc (for following include files only)
include error.inc ; DOS errors - ERROR_INVALID_FUNCTION
include segorder.inc ; segments
include debugmac.inc ; DbgPrint macro
include localmac.inc ; DbgPrint macro
include asmmacro.inc ; language extensions
include rdrsvc.inc ; BOP and SVC macros/dispatch codes
include rdrmisc.inc ; miscellaneous definitions
.cref ; switch cross-reference back on
.list ; switch listing back on
subttl ; kill subtitling started in include file
.286
ResidentCodeStart
assume cs:ResidentCode
assume ds:nothing
assume es:nothing
assume ss:nothing
MessengerDispatchTable label word
dw MessageInstalled
dw MessageDone
dw MessageLogging
dw MessageUserFunction
dw MessageUnusedFunction
dw MessagePauseContinue
LAST_MESSENGER_FUNCTION = (offset $ - offset MessengerDispatchTable)/2 - 1
public MessengerDispatch
MessengerDispatch proc near
cmp al,LAST_MESSENGER_FUNCTION
jbe @f
mov al,ERROR_INVALID_PARAMETER
stc
ret
@@: cbw
push bx
mov bx,ax
shl bx,1
mov ax,MessengerDispatchTable[bx]
pop bx
jmp ax
MessengerDispatch endp
MessageInstalled:
dec al
MessageDone:
ret
MessageLogging:
MessageUserFunction:
MessageUnusedFunction:
MessagePauseContinue:
; mov ax,ERROR_INVALID_FUNCTION
mov ax,2142 ; NERR_InvalidAPI
stc
retn
ResidentCodeEnd
end