summaryrefslogtreecommitdiff
path: root/v4.0/src/CMD/EDLIN/EDLMES.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/EDLIN/EDLMES.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/EDLIN/EDLMES.ASM')
-rw-r--r--v4.0/src/CMD/EDLIN/EDLMES.ASM665
1 files changed, 665 insertions, 0 deletions
diff --git a/v4.0/src/CMD/EDLIN/EDLMES.ASM b/v4.0/src/CMD/EDLIN/EDLMES.ASM
new file mode 100644
index 0000000..889a044
--- /dev/null
+++ b/v4.0/src/CMD/EDLIN/EDLMES.ASM
@@ -0,0 +1,665 @@
1 PAGE 60,132;
2 title EDLIN Messages
3;======================= START OF SPECIFICATIONS =========================
4;
5; MODULE NAME: EDLMES.SAL
6;
7; DESCRIPTIVE NAME: MESSAGE RETRIEVER INTERFACE MODULE
8;
9; FUNCTION: THIS MODULE PROVIDES AN INTERFACE FOR THE MODULES THAT ARE
10; NEEDED TO INVOKE THE MESSAGE RETRIEVER.
11;
12; ENTRY POINT: PRINTF
13;
14; INPUT: OFFSET CARRIED IN DX TO APPLICABLE MESSAGE TABLE
15;
16; EXIT NORMAL: NO CARRY
17;
18; EXIT ERROR : CARRY
19;
20; INTERNAL REFERENCES:
21;
22; ROUTINE: PRINTF - PROVIDES THE ORIGINAL INTERFACE FOR THE ORIGINAL
23; PRINTF USED PRIOR TO VERSION 4.00. PRINTS MESSAGES.
24;
25; DISP_MESSAGE - BUILDS THE REGISTERS NECESSARY FOR INVOCATION
26; OF THE MESSAGE RETRIEVER, BASED ON THE TABLE
27; POINTED TO BY DX.
28;
29; DISP_FATAL - INVOKED IF AN ERROR OCCURS (CARRY) IN THE
30; MESSAGE RETRIEVER. IT DISPLAYS THE APPROPRIATE
31; MESSAGE.
32;
33; EXTERNAL REFERENCES:
34;
35; ROUTINE: SYSLOADMSG - LOAD MESSAGES FOR THE MESSAGE RETRIEVER
36; SYSDISPMSG - DISPLAYS THE REQUESTED MESSAGE
37;
38; NOTES: THIS MODULE IS TO BE PREPPED BY SALUT WITH THE "PR" OPTIONS
39; LINK EDLIN+EDLCMD1+EDLCMD2+EDLMES+EDLPARSE
40;
41; REVISION HISTORY:
42;
43; AN000 VERSION DOS 4.00 - IMPLEMENTATION OF MESSAGE RETRIEVER
44;
45; COPYRIGHT: "MS DOS EDLIN UTILITY"
46; "VERSION 4.00 (C) COPYRIGHT 1988 Microsoft"
47; "LICENSED MATERIAL - PROPERTY OF Microsoft "
48;
49; MICROSOFT REVISION HISTORY
50;
51; MODIFIED BY: AARON R
52; M.A. U
53; N. P
54;======================= END OF SPECIFICATIONS ===========================
55
56.xlist
57
58include sysmsg.inc ;an000;message retriever
59
60msg_utilname <EDLIN> ;an000;EDLIN messages
61.list
62;-----------------------------------------------------------------------;
63; ;
64; Done for Vers 2.00 (rev 9) by Aaron R ;
65; Update for rev. 11 by M.A. U ;
66; Printf for 2.5 by Nancy P ;
67; ;
68;-----------------------------------------------------------------------;
69
70;=========================================================================
71; revised edlmes.asm
72;=========================================================================
73
74fatal_error equ 30 ;an000;fatal message handler
75unlim_width equ 00h ;an000;unlimited output width
76pad_blank equ 20h ;an000;blank pad
77pre_load equ 00h ;an000;normal pre-load
78
79
80
81message_table struc ;an000;struc for message table
82
83 entry1 dw 0 ;an000;message number
84 entry2 db 0 ;an000;message type
85 entry3 dw 0 ;an000;display handle
86 entry4 dw 0 ;an000;pointer to sublist
87 entry5 dw 0 ;an000;substitution count
88 entry6 db 0 ;an000;use keyb input?
89 entry7 dw 0 ;an000;keyb buffer to use
90
91message_table ends ;an000;end struc
92
93;=========================================================================
94; macro disp_message: this macro takes a pointer to a message table
95; and displays the applicable message based on
96; the table's contents.
97; this is to provide an interface into the module
98; of the message retriever, SYSDISPMSG.
99;
100; Date : 6/11/87
101;=========================================================================
102
103disp_message macro tbl ;an000;display message macro
104
105 push bx ;an000;
106 push cx ;an000;
107 push dx ;an000;
108 push di ;an000;
109 push si ;an000;
110
111 push tbl ;an000;exchange tbl with si
112 pop si ;an000;exchanged
113
114 mov ax,[si].entry1 ;an000;move message number
115 mov bx,[si].entry3 ;an000;display handle
116 mov cx,[si].entry5 ;an000;number of subs
117 mov dl,[si].entry6 ;an000;function type
118 mov di,[si].entry7 ;an000;input buffer if appl.
119 mov dh,[si].entry2 ;an000;message type
120 mov si,[si].entry4 ;an000;sublist
121
122 call sysdispmsg ;an000;display the message
123
124 pop si ;an000;restore affected regs
125 pop di ;an000;
126 pop dx ;an000;
127 pop cx ;an000;
128 pop bx ;an000;
129
130endm ;an000;end macro disp_message
131
132;=========================================================================
133; macro disp_message: end macro
134;=========================================================================
135
136CODE SEGMENT PUBLIC BYTE
137CODE ENDS
138
139CONST SEGMENT PUBLIC BYTE
140CONST ENDS
141
142cstack segment stack
143cstack ends
144
145DATA SEGMENT PUBLIC BYTE
146
147 extrn path_name:byte
148
149DATA ENDS
150
151DG GROUP CODE,CONST,cstack,DATA
152
153code segment public byte ;an000;code segment
154 assume cs:dg,ds:dg,es:dg,ss:CStack ;an000;
155
156 public printf ;an000;share printf
157 public disp_fatal ;an000;fatal error display
158 public pre_load_message ;an000;message loader
159
160.xlist
161msg_services <MSGDATA> ;an000;
162.list
163
164;======================= sysmsg.inc invocation ===========================
165;
166; include sysmsg.inc - message retriever services
167;
168;
169; options selected:
170; NEARmsg
171; DISPLAYmsg
172; LOADmsg
173; CHARmsg
174; NUMmsg
175; CLSAmsg
176; CLSBmsg
177; CLSCmsg
178;
179;=========================================================================
180
181.xlist
182
183 msg_services <LOADmsg> ;an000;no version check
184 msg_services <DISPLAYmsg,CHARmsg,NUMmsg,INPUTmsg> ;an000;display messages
185 msg_services <EDLIN.CLA,EDLIN.CLB,EDLIN.CLC> ;an000;message types
186 msg_services <EDLIN.CL1,EDLIN.CL2> ;an000;message types
187 msg_services <EDLIN.CTL> ;an000;
188
189.list
190
191;=========================================================================
192; printf: printf is a replacement of the printf procedure used in DOS
193; releases prior to 4.00. printf invokes the macro disp_message
194; to display a message through the new message handler. the
195; interface into printf will continue to be a pointer to a message
196; passed in DX. the pointer is pointing to more than a message
197; now. it is pointing to a table for that message containing
198; all relevant information for printing the message. the macro
199; disp_message operates on these tables.
200;
201; Date : 6/11/87
202;=========================================================================
203
204printf proc near ;an000;printf procedure
205
206 disp_message dx ;an000;display a message
207; $if c ;an000;if an error occurred
208 JNC $$IF1
209 call disp_fatal ;an000;display the fatal error
210; $endif ;an000;
211$$IF1:
212
213 ret ;an000;return to caller
214
215printf endp ;an000;end printf proc
216
217
218;=========================================================================
219; disp_fatal: this routine displays a fatal error message in the event
220; an error occurred in disp_message.
221;
222; Date : 6/11/87
223;=========================================================================
224
225disp_fatal proc near ;an000;fatal error message
226
227 mov ax,fatal_error ;an000;fatal_error number
228 mov bx,stdout ;an000;print to console
229 mov cx,0 ;an000;no parameters
230 mov dl,no_input ;an000;no keyboard input
231 mov dh,UTILITY_MSG_CLASS ;an000;utility messages
232
233 call sysdispmsg ;an000;display fatal error
234
235 ret ;an000;return to caller
236
237disp_fatal endp ;an000;end disp_fatal proc
238
239;=========================================================================
240; PRE_LOAD_MESSAGE : This routine provides access to the messages required
241; by EDLIN. This routine will report if the load was
242; successful. An unsuccessful load will cause EDLIN
243; to terminate with an appropriate error message.
244;
245; Date : 6/11/87
246;=========================================================================
247
248PRE_LOAD_MESSAGE proc near ;an000;pre-load messages
249
250
251 call SYSLOADMSG ;an000;invoke loader
252
253; $if c ;an000;if an error
254 JNC $$IF3
255 pushf ;an000;save flags
256 call SYSDISPMSG ;an000;let him say why
257 popf ;an000;restore flags
258; $endif ;an000;
259$$IF3:
260
261 ret ;an000;return to caller
262
263PRE_LOAD_MESSAGE endp ;an000;end proc
264
265include msgdcl.inc
266
267code ends ;an000;end code segment
268
269
270
271
272CONST SEGMENT PUBLIC BYTE
273
274 extrn arg_buf:byte ;an000;
275 extrn line_num:byte ;an000;
276 extrn line_flag:byte ;an000;
277 extrn Temp_Path:byte ;an000;
278
279 public baddrv_ptr,bad_vers_err,opt_err_ptr,nobak_ptr
280 public too_many_ptr,dskful_ptr,memful_ptr,badcom_ptr
281 public nodir_ptr,filenm_ptr,newfil_ptr,read_err_ptr
282 public nosuch_ptr,toolng_ptr,eof_ptr,dest_ptr
283 public mrgerr_ptr,ro_err_ptr,bcreat_ptr,ndname_ptr
284 public ask_ptr,qmes_ptr,crlf_ptr,lf_ptr,yes_byte
285 public prompt_ptr
286 public line_num_buf_ptr ;an000;DMS:6/15/87
287 public arg_buf_ptr ;an000;DMS:6/15/87
288 public cont_ptr ;an000;DMS:6/18/87
289 public cp_err_ptr ;an000;DMS:6/22/87
290 public Del_Bak_Ptr ;an000;dms;
291
292 yes_byte db "y"
293
294;============== REPLACEABLE PARAMETER SUBLIST STRUCTURE ==================
295;
296; byte 1 - substitution list size, always 11
297; byte 2 - reserved for use by message handler
298; byte 3 - pointer to parameter to be used as a substitution
299; byte 7 - which parameter is this to replace, %1, %2, etc.
300; byte 8 - determines how the parameter is to be output
301; byte 9 - determines the maximum width of the parameter string
302; byte 10 - determines the minimum width of the parameter string
303; byte 11 - define what is to be used as a pad character
304;
305;=========================================================================
306
307;=========================================================================
308; replaceable parameter sublists
309;=========================================================================
310
311ed_read_sub label dword ;an000;a read error occurred
312
313 db 11 ;an000;sublist size
314 db 00 ;an000;reserved
315 dd dg:path_name ;an000;pointer to parameter
316 db 01 ;an000;parm 1
317 db Char_Field_ASCIIZ ;an000;left align/asciiz/char.
318 db unlim_width ;an000;unlimited width
319 db 00 ;an000;minimum width of 0
320 db pad_blank ;an000;pad with blanks
321
322arg_sub label dword ;an000;line output buffer
323
324 db 11 ;an000;sublist size
325 db 00 ;an000;reserved
326 dd dg:arg_buf ;an000;pointer to parameter
327 db 01 ;an000;parm 1
328 db Char_Field_ASCIIZ ;an000;left align/asciiz/char.
329 db unlim_width ;an000;unlimited width
330 db 00 ;an000;minimum width of 0
331 db pad_blank ;an000;pad with blank
332
333num_sub label dword ;an000;line number
334
335 db 11 ;an000;sublist size
336 db 00 ;an000;reserved
337 dd dg:line_num ;an000;pointer to parameter
338 db 01 ;an000;parm 1
339 db Right_Align+Unsgn_Bin_Word ;an000;right align/decimal
340 db 08 ;an000;maximum width
341 db 08 ;an000;minimum width of 0
342 db pad_blank ;an000;pad with blank
343
344 db 11 ;an000;optional flag
345 db 00 ;an000;reserved
346 dd dg:line_flag ;an000;pointer to parameter
347 db 02 ;an000;parm 2
348 db Char_Field_Char ;an000;character
349 db 01 ;an000;minimum width of 1
350 db 01 ;an000;maximum width of 1
351 db pad_blank ;an000;pad with blank
352
353BAK_Sub label dword ;an000;line output buffer
354
355 db 11 ;an000;sublist size
356 db 00 ;an000;reserved
357 dd dg:Temp_Path ;an000;pointer to parameter
358 db 00 ;an000;parm 0
359 db Char_Field_ASCIIZ ;an000;left align/asciiz/char.
360 db unlim_width ;an000;unlimited width
361 db 00 ;an000;minimum width of 0
362 db pad_blank ;an000;pad with blank
363
364
365;=========================================================================
366; end replaceable parameter sublists
367;=========================================================================
368
369;======================= TABLE STRUCTURE =================================
370;
371; bute 1-2 : message number of message to be displayed
372; byte 3 : message type to be used, i.e.;class 1, utility, etc.
373; byte 4-5 : display handle, i.e.; console, printer, etc.
374; byte 6-7 : pointer to substitution list, if any.
375; byte 8-9 : number of replaceable parameters, if any.
376; byte 10 : type of input from keyboard, if any.
377; byte 11-12: pointer to buffer for keyboard input, if any.
378;
379;=========================================================================
380
381
382bad_vers_err label word ;an000;"Incorrect DOS version"
383 dw 0001 ;an000;message number
384 db UTILITY_MSG_CLASS ;an000;utility message
385 dw stdout ;an000;display handle
386 dw 00 ;an000;no sublist
387 dw 00 ;an000;no sub
388 db no_input ;an000;no keyboard input
389 dw 00 ;an000;no keyboard buffer
390
391prompt_ptr label word ;an000;"*",0
392 dw 0006 ;an000;message number
393 db UTILITY_MSG_CLASS ;an000;utility message
394 dw stdout ;an000;display handle
395 dw 00 ;an000;no sublist
396 dw 00 ;an000;no sub
397 db no_input ;an000;no keyboard input
398 dw 00 ;an000;no keyboard buffer
399
400
401baddrv_ptr label word ;an000;"Invalid drive or file name"
402 ;an000;,0d,0a,0
403 dw 0007 ;an000;message number
404 db UTILITY_MSG_CLASS ;an000;utility message
405 dw stdout ;an000;display handle
406 dw 00 ;an000;no sublist
407 dw 00 ;an000;no sub
408 db no_input ;an000;no keyboard input
409 dw 00 ;an000;no keyboard buffer
410
411ndname_ptr label word ;an000;"File name must be
412 ;an000;specified",0d,0a,0
413 dw 0008 ;an000;message number
414 db UTILITY_MSG_CLASS ;an000;utility message
415 dw stdout ;an000;display handle
416 dw 00 ;an000;no sublist
417 dw 00 ;an000;no sub
418 db no_input ;an000;no keyboard input
419 dw 00 ;an000;no keyboard buffer
420
421opt_err_ptr label word ;an000;"Invalid parameter",0d,0a,0
422 dw 0010 ;an000;message number
423 db Parse_Err_Class ;an000;utility message
424 dw StdErr ;an000;display handle
425 dw 00 ;an000;no sublist
426 dw 00 ;an000;no sub
427 db no_input ;an000;no keyboard input
428 dw 00 ;an000;no keyboard buffer
429
430ro_err_ptr label word ;an000;"File is READ-ONLY",0d,0a,0
431 dw 0010 ;an000;message number
432 db UTILITY_MSG_CLASS ;an000;utility message
433 dw stdout ;an000;display handle
434 dw 00 ;an000;no sublist
435 dw 00 ;an000;no sub
436 db no_input ;an000;no keyboard input
437 dw 00 ;an000;no keyboard buffer
438
439bcreat_ptr label word ;an000;"File Creation Error",0d,0a,0
440 dw 0011 ;an000;message number
441 db UTILITY_MSG_CLASS ;an000;utility message
442 dw stdout ;an000;display handle
443 dw 00 ;an000;no sublist
444 dw 00 ;an000;no sub
445 db no_input ;an000;no keyboard input
446 dw 00 ;an000;no keyboard buffer
447
448too_many_ptr label word ;an000;"Too many files open",0d,0a,0
449 dw 0012 ;an000;message number
450 db UTILITY_MSG_CLASS ;an000;utility message
451 dw stdout ;an000;display handle
452 dw 00 ;an000;no sublist
453 dw 00 ;an000;no sub
454 db no_input ;an000;no keyboard input
455 dw 00 ;an000;no keyboard buffer
456
457read_err_ptr label word ;an000;"Read error in:",
458 ;an000;0d,0a,"%1",0d,0a,0
459 dw 0013 ;an000;message number
460 db UTILITY_MSG_CLASS ;an000;utility message
461 dw stdout ;an000;display handle
462 dw dg:ed_read_sub ;an000;point to sublist
463 dw 0001 ;an000;1 sub
464 db no_input ;an000;no keyboard input
465 dw 00 ;an000;no keyboard buffer
466
467
468nobak_ptr label word ;an000;"Cannot edit .BAK file
469 ;an000;--rename file",0d,0a,0
470 dw 0014 ;an000;message number
471 db UTILITY_MSG_CLASS ;an000;utility message
472 dw stdout ;an000;display handle
473 dw 00 ;an000;no sublist
474 dw 00 ;an000;no sub
475 db no_input ;an000;no keyboard input
476 dw 00 ;an000;no keyboard buffer
477
478nodir_ptr label word ;an000;"No room in directory
479 ;an000;for file",0d,0d,0
480 dw 0015 ;an000;message number
481 db UTILITY_MSG_CLASS ;an000;utility message
482 dw stdout ;an000;display handle
483 dw 00 ;an000;no sublist
484 dw 00 ;an000;no sub
485 db no_input ;an000;no keyboard input
486 dw 00 ;an000;no keyboard buffer
487
488dskful_ptr label word ;an000;"Disk full. Edits lost.",0d,0a,0
489 dw 0016 ;an000;message number
490 db UTILITY_MSG_CLASS ;an000;utility message
491 dw stdout ;an000;display handle
492 dw 00 ;an000;no sublist
493 dw 00 ;an000;no sub
494 db no_input ;an000;no keyboard input
495 dw 00 ;an000;no keyboard buffer
496
497memful_ptr label word ;an000;"Insufficient memory",0d,0a,0
498 dw 0008 ;an000;message number
499 db Ext_Err_Class ;an000;extended error
500 dw stderr ;an000;display handle
501 dw 00 ;an000;no sublist
502 dw 00 ;an000;no sub
503 db no_input ;an000;no keyboard input
504 dw 00 ;an000;no keyboard buffer
505
506filenm_ptr label word ;an000;"File not found",0d,0a
507 dw 0002 ;an000;message number
508 db Ext_Err_Class ;an000;utility message
509 dw stderr ;an000;display handle
510 dw 00 ;an000;no sublist
511 dw 00 ;an000;no sub
512 db no_input ;an000;no keyboard input
513 dw 00 ;an000;no keyboard buffer
514
515badcom_ptr label word ;an000;"Entry error",0d,0a,0
516 dw 0018 ;an000;message number
517 db UTILITY_MSG_CLASS ;an000;utility message
518 dw stdout ;an000;display handle
519 dw 00 ;an000;no sublist
520 dw 00 ;an000;no sub
521 db no_input ;an000;no keyboard input
522 dw 00 ;an000;no keyboard buffer
523
524newfil_ptr label word ;an000;"New file",0d,0a,0
525 dw 0019 ;an000;message number
526 db UTILITY_MSG_CLASS ;an000;utility message
527 dw stdout ;an000;display handle
528 dw 00 ;an000;no sublist
529 dw 00 ;an000;no sub
530 db no_input ;an000;no keyboard input
531 dw 00 ;an000;no keyboard buffer
532
533nosuch_ptr label word ;an000;"Not found",0d,0a,0
534 dw 0020 ;an000;message number
535 db UTILITY_MSG_CLASS ;an000;utility message
536 dw stdout ;an000;display handle
537 dw 00 ;an000;no sublist
538 dw 00 ;an000;no sub
539 db no_input ;an000;no keyboard input
540 dw 00 ;an000;no keyboard buffer
541
542ask_ptr label word ;an000;"O.K.? ",0
543 dw 0021 ;an000;message number
544 db UTILITY_MSG_CLASS ;an000;utility message
545 dw stdout ;an000;display handle
546 dw 00 ;an000;no sublist
547 dw 00 ;an000;no sub
548 db DOS_KEYB_INP ;an000;keyboard input - AX
549 dw 00 ;an000;no keyboard buffer
550
551toolng_ptr label word ;an000;"Line too long",0d,0a,0
552 dw 0022 ;an000;message number
553 db UTILITY_MSG_CLASS ;an000;utility message
554 dw stdout ;an000;display handle
555 dw 00 ;an000;no sublist
556 dw 00 ;an000;no sub
557 db no_input ;an000;no keyboard input
558 dw 00 ;an000;no keyboard buffer
559
560eof_ptr label word ;an000;"End of input file",0d,0a,0
561 dw 0023 ;an000;message number
562 db UTILITY_MSG_CLASS ;an000;utility message
563 dw stdout ;an000;display handle
564 dw 00 ;an000;no sublist
565 dw 00 ;an000;no sub
566 db no_input ;an000;no keyboard input
567 dw 00 ;an000;no keyboard buffer
568
569qmes_ptr label word ;an000;"Abort edit (Y/N)? ",0
570 dw 0024 ;an000;message number
571 db UTILITY_MSG_CLASS ;an000;utility message
572 dw stdout ;an000;display handle
573 dw 00 ;an000;no sublist
574 dw 00 ;an000;no sub
575 db DOS_KEYB_INP ;an000;keyboard input - AX
576 dw 00 ;an000;no keyboard buffer
577
578dest_ptr label word ;an000;"Must specify destination
579 ;an000;line number",0d,0a,0
580 dw 0025 ;an000;message number
581 db UTILITY_MSG_CLASS ;an000;utility message
582 dw stdout ;an000;display handle
583 dw 00 ;an000;no sublist
584 dw 00 ;an000;no sub
585 db no_input ;an000;no keyboard input
586 dw 00 ;an000;no keyboard buffer
587
588mrgerr_ptr label word ;an000;"Not enough room to
589 ;an000;merge the entire file",0d,0a,0
590 dw 0026 ;an000;message number
591 db UTILITY_MSG_CLASS ;an000;utility message
592 dw stdout ;an000;display handle
593 dw 00 ;an000;no sublist
594 dw 00 ;an000;no sub
595 db no_input ;an000;no keyboard input
596 dw 00 ;an000;no keyboard buffer
597
598crlf_ptr label word ;an000;0d,0a,0
599 dw 0027 ;an000;message number
600 db UTILITY_MSG_CLASS ;an000;utility message
601 dw stdout ;an000;display handle
602 dw 00 ;an000;no sublist
603 dw 00 ;an000;no sub
604 db no_input ;an000;no keyboard input
605 dw 00 ;an000;no keyboard buffer
606
607lf_ptr label word ;an000;0a,0
608 dw 0028 ;an000;message number
609 db UTILITY_MSG_CLASS ;an000;utility message
610 dw stdout ;an000;display handle
611 dw 00 ;an000;no sublist
612 dw 00 ;an000;no sub
613 db no_input ;an000;no keyboard input
614 dw 00 ;an000;no keyboard buffer
615
616cont_ptr label word ;an000;"Continue (Y/N)?"
617 dw 0029 ;an000;message number
618 db UTILITY_MSG_CLASS ;an000;utility message
619 dw stdout ;an000;display handle
620 dw 00 ;an000;no sublist
621 dw 00 ;an000;no sub
622 db DOS_KEYB_INP ;an000;keyboard input
623 dw 00 ;an000;no keyboard buffer
624
625arg_buf_ptr label word ;an000;argument buffer for
626 ; line output
627 dw 0031 ;an000;message number
628 db UTILITY_MSG_CLASS ;an000;utility message
629 dw stdout ;an000;display handle
630 dw dg:arg_sub ;an000;argument sublist
631 dw 01 ;an000;1 sub
632 db no_input ;an000;no keyboard input
633 dw 00 ;an000;no keyboard buffer
634
635line_num_buf_ptr label word ;an000;holds line numbers
636 dw 0032 ;an000;message number
637 db UTILITY_MSG_CLASS ;an000;utility message
638 dw stdout ;an000;display handle
639 dw dg:num_sub ;an000;argument sublist
640 dw 02 ;an000;2 subs
641 db no_input ;an000;no keyboard input
642 dw 00 ;an000;no keyboard buffer
643
644cp_err_ptr label word ;an000;"Cannot merge - Code page
645 ; mismatch",0d,0a
646 dw 0033 ;an000;message number
647 db UTILITY_MSG_CLASS ;an000;utility message
648 dw stdout ;an000;display handle
649 dw 00 ;an000;no sublist
650 dw 00 ;an000;no subs
651 db no_input ;an000;no keyboard input
652 dw 00 ;an000;no keyboard buffer
653
654del_bak_ptr label word ;an000;"Access Denied - xxxxxxxx.BAK"
655 dw 0005 ;an000;message number
656 db Ext_Err_Class ;an000;utility message
657 dw stderr ;an000;display handle
658 dw dg:BAK_Sub ;an000;no sublist
659 dw 01 ;an000;no subs
660 db no_input ;an000;no keyboard input
661 dw 00 ;an000;no keyboard buffer
662
663CONST ENDS
664 END
665 \ No newline at end of file