]> wirehaze git hosting - MS-DOS.git/blob - v4.0/src/CMD/RECOVER/RECDISP.ASM

wirehaze git hosting

MZ is back!
[MS-DOS.git] / v4.0 / src / CMD / RECOVER / RECDISP.ASM
1 ;\ f
2 page ,132 ;\ f ;AN000;bgb
3 ;;*****************************************************************************
4 ; Include files
5 ;*****************************************************************************
6 ;
7 .xlist
8 include pathmac.inc ;an028;bgb
9 include recseg.inc ;AN000;bgb
10 include dossym.inc
11 INCLUDE SYSMSG.INC
12 INCLUDE RECEQU.INC
13 INCLUDE RECMSG.INC
14 .list
15 ;
16 ;*****************************************************************************
17 ; external data
18 ;*****************************************************************************
19 data segment public para 'DATA' ;AC000;bgb
20 EXTRN command_line_buffer:byte ;an031;bgb
21 extrn DrvLet1:Byte ;AN000;bgb
22 extrn DrvLet:Byte ;AN000;bgb
23 extrn rec_num:word ;AN000;bgb
24 Extrn Drive_Letter_Msg:Byte ;AN000;BGB
25 extrn fname_buffer:byte ;AN000;BGB
26 EXTRN x_value_lo:WORD ;AN000;bgb ; AC000;SM
27 EXTRN x_value_hi:WORD ;AN000;bgb ; AC000;SM
28 EXTRN y_value_lo:WORD ;AN000;bgb ; AC000;SM
29 EXTRN y_value_hi:WORD ;AN000;bgb ; AC000;SM
30 extrn DriveLetter:Byte
31
32 ;*****************************************************************************
33 ; Message Services
34 ;*****************************************************************************
35 .xlist
36 MSG_UTILNAME <RECOVER>
37 Msg_Services <MSGDATA>
38 data ends
39
40
41 ;
42 ;***************************************************************************
43 ; Message Structures
44 ;***************************************************************************
45 ;
46 code segment PUBLIC para 'CODE'
47 Message_Table struc ; ;AN000;
48 ;
49 Entry1 dw 0 ; ;AN000;
50 Entry2 dw 0 ; ;AN000;
51 Entry3 dw 0 ; ;AN000;
52 Entry4 dw 0 ; ;AN000;
53 Entry5 db 0 ; ;AN000;
54 Entry6 db 0 ; ;AN000;
55 Entry7 dw 0 ; ;AN000;
56 Message_Table ends ; ;AN000;
57
58 pathlabl msgret ;an028;bgb
59 Msg_Services <NEARmsg>
60 Msg_Services <LOADmsg>
61 Msg_Services <DISPLAYmsg,CHARmsg,NUMmsg> ;an029;bgb
62 pathlabl msgret ;an028;bgb
63 Msg_Services <RECOVER.CLA,RECOVER.CL1,RECOVER.CL2,RECOVER.CTL>
64 .list
65 ;
66 ;*****************************************************************************
67 ; Public Routines
68 ;*****************************************************************************
69 Public SysDispMsg
70 Public SysLoadMsg
71 Public Display_Interface
72
73 ;*****************************************************************************
74 ;Routine name&gml Display_Interface
75 ;*****************************************************************************
76 ;
77 ;DescriptioN&gml Save all registers, set up registers required for SysDispMsg
78 ; routine. This information is contained in a message description
79 ; table pointed to by the DX register. Call SysDispMsg, then
80 ; restore registers. This routine assumes that the only time an
81 ; error will be returned is if an extended error message was
82 ; requested, so it will ignore error returns
83 ;
84 ;Called Procedures: Message (macro)
85 ;
86 ;Change History&gml Created 4/22/87 MT
87 ;
88 ;Input&gml ES&gmlDX = pointer to message description
89 ;
90 ;Output&gml None
91 ;
92 ;Psuedocode
93 ;----------
94 ;
95 ; Save all registers
96 ; Setup registers for SysDispMsg from Message Description Tables
97 ; CALL SysDispMsg
98 ; Restore registers
99 ; ret
100 ;*****************************************************************************
101
102 Display_Interface proc ; ;AN000;
103
104 push ds ; ;AN000;
105 push ax ;Save registers ;AN000;
106 push bx ; " " " " ;AN000;
107 push cx ; " " " " ;AN000;
108 push dx ; " " " " ;AN000;
109 push si ; " " " " ;AN000;
110 push di ; " " " " ;AN000;
111 mov di,dx ;Change pointer to table ;AN000;
112 mov dx,DG ;Point to data segment
113 mov ds,dx ;
114 mov ax,[di].Entry1 ;Message number ;AN000;
115 mov bx,[di].Entry2 ;Handle ;AN000;
116 mov si,[di].Entry3 ;Sublist ;AN000;
117 mov cx,[di].Entry4 ;Count ;AN000;
118 mov dh,[di].Entry5 ;Class ;AN000;
119 mov dl,[di].Entry6 ;Function ;AN000;
120 mov di,[di].Entry7 ;Input ;AN000;
121 call SysDispMsg ;Display the message ;AN000;
122 pop di ;Restore registers ;AN000;
123 pop si ; " " " " ;AN000;
124 pop dx ; " " " " ;AN000;
125 pop cx ; " " " " ;AN000;
126 pop bx ; " " " " ;AN000;
127 pop ax ; " " " " ;AN000;
128 pop ds ; ;AN000;
129 ret ;All done ;AN000;
130 Display_Interface endp ; ;AN000;
131
132 include msgdcl.inc
133
134 code ends
135 end
136
137
138 ;code segment public PARA 'CODE' ;AC000;bgb
139 ;code ends
140 ;
141 ;const segment public para ;AC000;bgb
142 ;const ends
143 ;
144 ;cstack segment stack word 'stack'
145 ;cstack ends
146 ;
147 ;
148 ;data segment public para 'DATA' ;AC000;bgb
149 ;data ends
150 ;
151 ;dg group code,const,data,cstack
152 ;
153 ;code segment public para 'code' ;AC000;bgb
154 ;code ends
155 ; assume cs:dg,ds:dg,es:dg,ss:cstack
156 ;
157 ;
158 ;;;;;;;;;;code segment PUBLIC para 'CODE'
159 ;;;;;;;;;;;;;code ends