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.
 
 
 
 
 
 

115 lines
5.4 KiB

;/*
; * Microsoft Confidential
; * Copyright (C) Microsoft Corporation 1991
; * All Rights Reserved.
; */
CODE SEGMENT PARA PUBLIC 'CODE'
CODE ENDS
DATA SEGMENT PARA PUBLIC 'DATA'
DATA ENDS
STACK SEGMENT PARA STACK 'STACK'
STACK ENDS
ZLOAD SEGMENT PARA PUBLIC 'ZLOAD'
ZLOAD ENDS
CODE SEGMENT PARA PUBLIC 'CODE'
assume cs:code,ds:data
;
;*****************************************************************************
; External Declarations
;*****************************************************************************
;
extrn SysDispMsg:near
;
;***************************************************************************
; Message Structures
;***************************************************************************
;
Message_Table struc ; ;AN000;
;
Entry1 dw 0 ; ;AN000;
Entry2 dw 0 ; ;AN000;
Entry3 dw 0 ; ;AN000;
Entry4 dw 0 ; ;AN000;
Entry5 db 0 ; ;AN000;
Entry6 db 0 ; ;AN000;
Entry7 dw 0 ; ;AN000;
;
Message_Table ends ; ;AN000;
;*****************************************************************************
;Routine name&gml Display_Interface
;*****************************************************************************
;
;DescriptioN&gml Save all registers, set up registers required for SysDispMsg
; routine. This information is contained in a message description
; table pointed to by the DX register. Call SysDispMsg, then
; restore registers. This routine assumes that the only time an
; error will be returned is if an extended error message was
; requested, so it will ignore error returns
;
;Called Procedures: Message (macro)
;
;Change History&gml Created 4/22/87 MT
;
;Input&gml ES&gmlDX = pointer to message description
;
;Output&gml None
;
;Psuedocode
;----------
;
; Save all registers
; Setup registers for SysDispMsg from Message Description Tables
; CALL SysDispMsg
; Restore registers
; ret
;*****************************************************************************
Public Display_Interface
Display_Interface proc ; ;AN000;
push ds ; ;AN000;
push es ; ;AN000;
push ax ;Save registers ;AN000;
push bx ; " " " " ;AN000;
push cx ; " " " " ;AN000;
push dx ; " " " " ;AN000;
push si ; " " " " ;AN000;
push di ; " " " " ;AN000;
mov di,dx ;Change pointer to table ;AN000;
mov dx,SEG data ;Point to data segment
mov ds,dx ;
mov es,dx
mov ax,[di].Entry1 ;Message number ;AN000;
mov bx,[di].Entry2 ;Handle ;AN000;
mov si,[di].Entry3 ;Sublist ;AN000;
mov cx,[di].Entry4 ;Count ;AN000;
mov dh,[di].Entry5 ;Class ;AN000;
mov dl,[di].Entry6 ;Function ;AN000;
mov di,[di].Entry7 ;Input ;AN000;
call SysDispMsg ;Display the message ;AN000;
pop di ;Restore registers ;AN000;
pop si ; " " " " ;AN000;
pop dx ; " " " " ;AN000;
pop cx ; " " " " ;AN000;
pop bx ; " " " " ;AN000;
pop ax ; " " " " ;AN000;
pop es ; ;AN000;
pop ds ; ;AN000;
ret ;All done ;AN000;
Display_Interface endp ; ;AN000;
code ends
end