]>
wirehaze git hosting - MS-DOS.git/blob - v4.0/src/CMD/FORMAT/DISPLAY.ASM
3 ;*****************************************************************************
4 ;*****************************************************************************
5 ;UTILITY NAME: FORMAT.COM
7 ;MODULE NAME: DISPLAY.ASM
10 ; Change List: AN000 - New code DOS 3.3 spec additions
11 ; AC000 - Changed code DOS 3.3 spec additions
12 ;*****************************************************************************
13 ;*****************************************************************************
17 ;*****************************************************************************
18 ; Define Segment ordering
19 ;*****************************************************************************
25 PSP
segment public para
'DUMMY'
28 data segment public para
'DATA' ;
29 Public Test_Data_Start
30 Test_Data_Start
label byte
33 stack segment para
stack
34 db 62 dup ("-Stack!-") ; (362-80h) is the additionsal IBM ROM
39 code segment public para
'CODE' ;
40 assume
cs:code,ds:data ;
43 End_Of_Memory
segment public para
'BUFFERS' ;
50 ;*****************************************************************************
52 ;*****************************************************************************
63 ;*****************************************************************************
65 ;*****************************************************************************
72 data segment public para
'DATA'
73 Msg_Services
<MSGDATA
>
76 code segment public para
'CODE'
77 Msg_Services
<NEARmsg
>
78 Msg_Services
<LOADmsg
>
79 Msg_Services
<DISPLAYmsg
,CHARmsg
,NUMmsg
>
80 Msg_Services
<FORMAT.CLA
,FORMAT.CLB
,FORMAT.CLC,FORMAT.CL1
,FORMAT.CL2
,FORMAT.CTL
>
84 ;*****************************************************************************
86 ;*****************************************************************************
94 ;***************************************************************************
96 ;***************************************************************************
100 Message_Table
struc ; ;AN000;
102 Entry1 dw 0 ; ;AN000;
103 Entry2 dw 0 ; ;AN000;
104 Entry3 dw 0 ; ;AN000;
105 Entry4 dw 0 ; ;AN000;
106 Entry5 db 0 ; ;AN000;
107 Entry6 db 0 ; ;AN000;
108 Entry7 dw 0 ; ;AN000;
110 Message_Table ends
; ;AN000;
114 code segment public para
'CODE'
115 ;*****************************************************************************
116 ;Routine name&gml Display_Interface
117 ;*****************************************************************************
119 ;DescriptioN&gml Save all registers, set up registers required for SysDispMsg
120 ; routine. This information is contained in a message description
121 ; table pointed to by the DX register. Call SysDispMsg, then
122 ; restore registers. This routine assumes that the only time an
123 ; error will be returned is if an extended error message was
124 ; requested, so it will ignore error returns
126 ;Called Procedures: Message (macro)
128 ;Change History&gml Created 4/22/87 MT
130 ;Input&gml ES&gmlDX = pointer to message description
138 ; Setup registers for SysDispMsg from Message Description Tables
142 ;*****************************************************************************
144 Public Display_Interface
145 Display_Interface proc
; ;AN000;
148 push ax ;Save registers ;AN000;
149 push bx ; " " " " ;AN000;
150 push cx ; " " " " ;AN000;
151 push dx ; " " " " ;AN000;
152 push si ; " " " " ;AN000;
153 push di ; " " " " ;AN000;
154 mov di,dx ;Change pointer to table ;AN000;
155 mov dx,data ;Point to data segment
157 mov ax,[di].Entry1
;Message number ;AN000;
158 mov bx,[di].Entry2
;Handle ;AN000;
159 mov si,[di].Entry3
;Sublist ;AN000;
160 mov cx,[di].Entry4
;Count ;AN000;
161 mov dh,[di].Entry5
;Class ;AN000;
162 mov dl,[di].Entry6
;Function ;AN000;
163 mov di,[di].Entry7
;Input ;AN000;
164 call SysDispMsg
;Display the message ;AN000;
165 pop di ;Restore registers ;AN000;
166 pop si ; " " " " ;AN000;
167 pop dx ; " " " " ;AN000;
168 pop cx ; " " " " ;AN000;
169 pop bx ; " " " " ;AN000;
170 pop ax ; " " " " ;AN000;
172 ret ;All done ;AN000;
174 Display_Interface endp
; ;AN000;