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

wirehaze git hosting

MZ is back!
[MS-DOS.git] / v4.0 / src / CMD / EDLIN / EDLMES.ASM
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
58 include sysmsg.inc ;an000;message retriever
59
60 msg_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
74 fatal_error equ 30 ;an000;fatal message handler
75 unlim_width equ 00h ;an000;unlimited output width
76 pad_blank equ 20h ;an000;blank pad
77 pre_load equ 00h ;an000;normal pre-load
78
79
80
81 message_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
91 message_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
103 disp_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
130 endm ;an000;end macro disp_message
131
132 ;=========================================================================
133 ; macro disp_message: end macro
134 ;=========================================================================
135
136 CODE SEGMENT PUBLIC BYTE
137 CODE ENDS
138
139 CONST SEGMENT PUBLIC BYTE
140 CONST ENDS
141
142 cstack segment stack
143 cstack ends
144
145 DATA SEGMENT PUBLIC BYTE
146
147 extrn path_name:byte
148
149 DATA ENDS
150
151 DG GROUP CODE,CONST,cstack,DATA
152
153 code 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
161 msg_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
204 printf 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
215 printf 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
225 disp_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
237 disp_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
248 PRE_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
263 PRE_LOAD_MESSAGE endp ;an000;end proc
264
265 include msgdcl.inc
266
267 code ends ;an000;end code segment
268
269
270
271
272 CONST 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
311 ed_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
322 arg_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
333 num_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
353 BAK_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
382 bad_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
391 prompt_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
401 baddrv_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
411 ndname_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
421 opt_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
430 ro_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
439 bcreat_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
448 too_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
457 read_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
468 nobak_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
478 nodir_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
488 dskful_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
497 memful_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
506 filenm_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
515 badcom_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
524 newfil_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
533 nosuch_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
542 ask_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
551 toolng_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
560 eof_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
569 qmes_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
578 dest_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
588 mrgerr_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
598 crlf_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
607 lf_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
616 cont_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
625 arg_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
635 line_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
644 cp_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
654 del_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
663 CONST ENDS
664 END
665 \1a