summaryrefslogtreecommitdiff
path: root/v4.0/src/CMD/COMP/COMPSM.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/COMP/COMPSM.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/COMP/COMPSM.ASM')
-rw-r--r--v4.0/src/CMD/COMP/COMPSM.ASM159
1 files changed, 159 insertions, 0 deletions
diff --git a/v4.0/src/CMD/COMP/COMPSM.ASM b/v4.0/src/CMD/COMP/COMPSM.ASM
new file mode 100644
index 0000000..9bf26ab
--- /dev/null
+++ b/v4.0/src/CMD/COMP/COMPSM.ASM
@@ -0,0 +1,159 @@
1 PAGE ,132 ;
2 TITLE COMPSM.SAL - COMP SYSTEM MESSAGES
3;****************** START OF SPECIFICATIONS *****************************
4; MODULE NAME: COMPSM.SAL
5;
6; DESCRIPTIVE NAME: Include the DOS system MESSAGE HANDLER in the SEGMENT
7; configuration expected by the modules of COMP.
8;
9;FUNCTION: The common code of the DOS SYSTEM MESSAGE HANDLER is made a
10; part of the COMP module by using INCLUDE to bring in the
11; common portion, in SYSMSG.INC. This included code contains
12; the routines to initialize for message services, to find
13; where a particular message is, and to display a message.
14;
15; ENTRY POINT: SYSDISPMSG:near
16; SYSGETMSG:near
17; SYSLOADMSG:near
18;
19; INPUT:
20; AX = MESSAGE NUMBER
21; BX = HANDLE TO DISPLAY TO (-1 means use DOS functions 1-12)
22; SI = OFFSET IN ES: OF SUBLIST, OR 0 IF NONE
23; CX = NUMBER OF %PARMS, 0 IF NONE
24; DX = CLASS IN HIGH BYTE, INPUT FUNCTION IN LOW
25; CALL SYSDISPMSG ;DISPLAY THE MESSAGE
26;
27; If carry set, extended error already called:
28; AX = EXTENDED MESSAGE NUMBER
29; BH = ERROR CLASS
30; BL = SUGGESTED ACTION
31; CH = LOCUS
32; _ _ _ _ _ _ _ _ _ _ _ _
33;
34; AX = MESSAGE NUMBER
35; DH = MESSAGE CLASS (1=DOS EXTENDED ERROR, 2=PARSE ERROR, -1=UTILITY MSG)
36; CALL SYSGETMSG ;FIND WHERE A MSG IS
37;
38; If carry set, error
39; CX = 0, MESSAGE NOT FOUND
40; If carry NOT set, ok, and resulting regs are:
41; CX = MESSAGE SIZE
42; DS:SI = MESSAGE TEXT
43; _ _ _ _ _ _ _ _ _ _ _ _
44;
45; CALL SYSLOADMSG ;SET ADDRESSABILITY TO MSGS, CHECK DOS VERSION
46; If carry not set:
47; CX = SIZE OF MSGS LOADED
48;
49; If carry is set, regs preset up for SYSDISPMSG, as:
50; AX = ERROR CODE IF CARRY SET
51; AX = 1, INCORRECT DOS VERSION
52; DH =-1, (Utility msg)
53; OR,
54; AX = 1, Error loading messages
55; DH = 0, (Message manager error)
56; BX = STDERR
57; CX = NO_REPLACE
58; DL = NO_INPUT
59;
60; EXIT-NORMAL: CARRY is not set
61;
62; EXIT-ERROR: CARRY is set
63; Call Get Extended Error for reason code, for SYSDISPMSG and
64; SYSGETMSG.
65;
66; INTERNAL REFERENCES:
67; ROUTINES: (Generated by the MSG_SERVICES macro)
68; SYSLOADMSG
69; SYSDISPMSG
70; SYSGETMSG
71;
72; DATA AREAS:
73; INCLUDED "COMPMS.INC" - message defining control blocks
74; INCLUDED "MSGHAN.INC" - Define STRUCs for msg control blocks
75; INCLUDE SYSMSG.INC ;Permit System Message handler definition
76;
77; EXTERNAL REFERENCES:
78; ROUTINES: none
79;
80; DATA AREAS: control blocks pointed to by input registers.
81;
82; NOTES:
83; This module should be processed with the SALUT preprocessor
84; with the re-alignment not requested, as:
85;
86; SALUT COMPSM,nul,;
87;
88; To assemble these modules, the alphabetical or sequential
89; ordering of segments may be used.
90;
91; For LINK instructions, refer to the PROLOG of the main module,
92; COMP1.ASM.
93;
94; REVISION HISTORY: A000 Version 4.0 : add PARSER, System Message Handler,
95; Add compare of code page extended attribute, if present.
96;
97; COPYRIGHT: "The DOS COMP Utility"
98; "Version 4.0 (C)Copyright 1988 Micorsoft "
99; "Licensed Material - Property of Microsoft "
100;
101;PROGRAM AUTHOR: DOS 3.20 Dave L.
102; DOS 3.30 modifications by Russ W.
103; DOS 4.0 modifications by Edwin M. K., Bill L.
104;****************** END OF SPECIFICATIONS *****************************
105; ;AN000;
106 IF1 ;AN000;
107 %OUT COMPONENT=COMP, MODULE=COMPSM.SAL... ;AN000;
108 ENDIF ;AN000;
109; = = = = = = = = = = = = ;AN000;
110; ;AN000;
111HEADER MACRO TEXT ;AN000;
112.XLIST ;AN000;
113 SUBTTL TEXT ;AN000;
114.LIST ;AN000;
115 PAGE ;AN000;
116 ENDM ;AN000;
117; = = = = = = = = = = = = ;AN000;
118 INCLUDE SYSMSG.INC ;PERMIT SYSTEM MESSAGE HANDLER DEFINITION ;AN000;
119 MSG_UTILNAME <COMP> ;IDENTIFY THE UTILITY ;AN000;
120; = = = = = = = = = = = = ;AN000;
121 HEADER <DEFINITION OF MESSAGES> ;AN000;
122; $SALUT (4,12,18,36) ;AN000;
123CSEG SEGMENT PARA PUBLIC 'CODE' ;AN000;
124 ASSUME CS:CSEG,DS:CSEG,ES:CSEG,SS:CSEG ;AN000;
125; ;AN000;
126 PUBLIC COPYRIGHT ;AN000;
127COPYRIGHT DB "The DOS COMP Utility" ;AN000;
128 INCLUDE MSGHAN.INC ;DEFINE THE MESSAGE HANDLER CONTROL BLOCKS ;AN000;
129 INCLUDE COMPMS.INC ;DEFINE THE MESSAGES, AND CONTROL BLOCKS ;AN000;
130 MSG_SERVICES <MSGDATA> ;AN000;
131; = = = = = = = = = = = = ;AN000;
132 HEADER <SYSTEM MESSAGE HANDLER> ;AN000;
133 PUBLIC SYSLOADMSG ;AN000;
134 PUBLIC SYSDISPMSG ;AN000;
135 PUBLIC SYSGETMSG ;AN000;
136; ;AN000;
137; MSG_SERVICES <LOADmsg,GETmsg,DISPLAYmsg,CHARmsg,INPUTmsg,NUMmsg> ;AN000;
138 ;DEFAULT=CHECK DOS VERSION ;AN000;
139 ;DEFAULT=NEARmsg ;AN000;
140 ;DEFAULT=INPUTmsg ;AN000;
141 ;DEFAULT=NUMmsg ;AN000;
142 ;DEFAULT=NO TIMEmsg ;AN000;
143 ;DEFAULT=NO DATEmsg ;AN000;
144.XLIST ;AN000;
145.XCREF ;AN000;
146 MSG_SERVICES <LOADmsg> ;AN000;
147 MSG_SERVICES <GETmsg> ;AN000;
148 MSG_SERVICES <DISPLAYmsg,CHARmsg,INPUTmsg,NUMmsg> ;AN000;
149.LIST ;AN000;
150.CREF ;AN000;
151; ;AN000;
152 MSG_SERVICES <COMP.CLA,COMP.CL1,COMP.CL2> ;TEXTS OF MESSAGES ;AN000;
153; = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = ;AN000;
154CSEG ENDS ;AN000;
155
156 include msgdcl.inc
157
158 END ;AN000;
159 \ No newline at end of file