summaryrefslogtreecommitdiff
path: root/v4.0/src/CMD/FORMAT/DISPLAY.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/FORMAT/DISPLAY.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/FORMAT/DISPLAY.ASM')
-rw-r--r--v4.0/src/CMD/FORMAT/DISPLAY.ASM177
1 files changed, 177 insertions, 0 deletions
diff --git a/v4.0/src/CMD/FORMAT/DISPLAY.ASM b/v4.0/src/CMD/FORMAT/DISPLAY.ASM
new file mode 100644
index 0000000..10ea538
--- /dev/null
+++ b/v4.0/src/CMD/FORMAT/DISPLAY.ASM
@@ -0,0 +1,177 @@
1;
2
3;*****************************************************************************
4;*****************************************************************************
5;UTILITY NAME: FORMAT.COM
6;
7;MODULE NAME: DISPLAY.ASM
8;
9;
10; Change List: AN000 - New code DOS 3.3 spec additions
11; AC000 - Changed code DOS 3.3 spec additions
12;*****************************************************************************
13;*****************************************************************************
14
15
16;
17;*****************************************************************************
18; Define Segment ordering
19;*****************************************************************************
20;
21
22
23.SEQ ;
24
25PSP segment public para 'DUMMY'
26PSP ends
27
28data segment public para 'DATA' ;
29Public Test_Data_Start
30Test_Data_Start label byte
31data ends ;
32
33stack segment para stack
34 db 62 dup ("-Stack!-") ; (362-80h) is the additionsal IBM ROM
35 assume ss:stack
36stack ends
37
38
39code segment public para 'CODE' ;
40 assume cs:code,ds:data ;
41code ends
42
43End_Of_Memory segment public para 'BUFFERS' ;
44Public Test_End
45Test_End label byte
46End_Of_Memory ends ;
47
48
49;
50;*****************************************************************************
51; INCLUDE FILES
52;*****************************************************************************
53;
54
55.xlist
56INCLUDE FORCHNG.INC
57INCLUDE FOREQU.INC
58INCLUDE FORMSG.INC
59INCLUDE SYSMSG.INC
60.list
61
62;
63;*****************************************************************************
64; Message Services
65;*****************************************************************************
66;
67
68
69MSG_UTILNAME <FORMAT>
70
71
72data segment public para 'DATA'
73Msg_Services <MSGDATA>
74data ends
75
76code segment public para 'CODE'
77Msg_Services <NEARmsg>
78Msg_Services <LOADmsg>
79Msg_Services <DISPLAYmsg,CHARmsg,NUMmsg>
80Msg_Services <FORMAT.CLA,FORMAT.CLB,FORMAT.CLC,FORMAT.CL1,FORMAT.CL2,FORMAT.CTL>
81code ends
82
83;
84;*****************************************************************************
85; Public Declarations
86;*****************************************************************************
87;
88
89 Public SysDispMsg
90 Public SysLoadMsg
91
92
93;
94;***************************************************************************
95; Message Structures
96;***************************************************************************
97;
98
99
100Message_Table struc ; ;AN000;
101 ;
102Entry1 dw 0 ; ;AN000;
103Entry2 dw 0 ; ;AN000;
104Entry3 dw 0 ; ;AN000;
105Entry4 dw 0 ; ;AN000;
106Entry5 db 0 ; ;AN000;
107Entry6 db 0 ; ;AN000;
108Entry7 dw 0 ; ;AN000;
109 ;
110Message_Table ends ; ;AN000;
111
112
113
114code segment public para 'CODE'
115;*****************************************************************************
116;Routine name&gml Display_Interface
117;*****************************************************************************
118;
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
125;
126;Called Procedures: Message (macro)
127;
128;Change History&gml Created 4/22/87 MT
129;
130;Input&gml ES&gmlDX = pointer to message description
131;
132;Output&gml None
133;
134;Psuedocode
135;----------
136;
137; Save all registers
138; Setup registers for SysDispMsg from Message Description Tables
139; CALL SysDispMsg
140; Restore registers
141; ret
142;*****************************************************************************
143
144Public Display_Interface
145Display_Interface proc ; ;AN000;
146
147 push ds ; ;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
156 mov ds,dx ;
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;
171 pop ds ; ;AN000;
172 ret ;All done ;AN000;
173
174Display_Interface endp ; ;AN000;
175code ends
176 end
177