summaryrefslogtreecommitdiff
path: root/v4.0/src/CMD/RECOVER/RECDISP.ASM
diff options
context:
space:
mode:
authorGravatar Mark Zbikowski2024-04-25 21:24:10 +0100
committerGravatar Microsoft Open Source2024-04-25 22:32:27 +0000
commit2d04cacc5322951f187bb17e017c12920ac8ebe2 (patch)
tree80ee017efa878dfd5344b44249e6a241f2a7f6e2 /v4.0/src/CMD/RECOVER/RECDISP.ASM
parentMerge pull request #430 from jpbaltazar/typoptbr (diff)
downloadms-dos-main.tar.gz
ms-dos-main.tar.xz
ms-dos-main.zip
MZ is back!HEADmain
Diffstat (limited to 'v4.0/src/CMD/RECOVER/RECDISP.ASM')
-rw-r--r--v4.0/src/CMD/RECOVER/RECDISP.ASM159
1 files changed, 159 insertions, 0 deletions
diff --git a/v4.0/src/CMD/RECOVER/RECDISP.ASM b/v4.0/src/CMD/RECOVER/RECDISP.ASM
new file mode 100644
index 0000000..2a72db2
--- /dev/null
+++ b/v4.0/src/CMD/RECOVER/RECDISP.ASM
@@ -0,0 +1,159 @@
1;
2page ,132 ; ;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;*****************************************************************************
19data 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
36MSG_UTILNAME <RECOVER>
37Msg_Services <MSGDATA>
38data ends
39
40
41;
42;***************************************************************************
43; Message Structures
44;***************************************************************************
45;
46code segment PUBLIC para 'CODE'
47Message_Table struc ; ;AN000;
48 ;
49Entry1 dw 0 ; ;AN000;
50Entry2 dw 0 ; ;AN000;
51Entry3 dw 0 ; ;AN000;
52Entry4 dw 0 ; ;AN000;
53Entry5 db 0 ; ;AN000;
54Entry6 db 0 ; ;AN000;
55Entry7 dw 0 ; ;AN000;
56Message_Table ends ; ;AN000;
57
58pathlabl msgret ;an028;bgb
59Msg_Services <NEARmsg>
60Msg_Services <LOADmsg>
61Msg_Services <DISPLAYmsg,CHARmsg,NUMmsg> ;an029;bgb
62pathlabl msgret ;an028;bgb
63Msg_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
102Display_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;
130Display_Interface endp ; ;AN000;
131
132include msgdcl.inc
133
134code 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