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
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
|
|
|